/**
* Site obj
*
* @author Szijártó Tamás ( szicsu )
**/
Site = new function(){

    this.alert = function( str ){

        html = new Array(
            '<div class="fromWhite_toBlue alerterror">',
                '<div class="corners"><span class="topLeft">&nbsp;</span><span class="topRight">&nbsp;</span></div>',
                '<div class="boxcontent">',
                    '<div class="alertDialog"><strong>Figyelem!</strong><br />{text}</div>',
                    '<div class="dialogButtons">',
                        '<input type="button" id="btn_ok" class="cancel button" />',
                        '<div class="clr">&nbsp;</div>',
                    '</div>',
                '</div>',
                '<div class="corners"><span class="bottomLeft">&nbsp;</span><span class="bottomRight">&nbsp;</span></div>',
                '<div class="clr">&nbsp;</div>',
            '</div>'
        );
        html = $.template( html.join('') ).apply({text:str});

        Site.Component.PopUp.open({
            height:200,
            width:200,
            template:'dialog',
            text:html
        },function( win ){
            $('#btn_ok').bind('click' , Site.Component.PopUp.close );
        });

        delete html;
        return false;
    }

    this.error = function( str ){
        html = new Array(

            '<div class="fromWhite_toBlue alerterror">',
                '<div class="corners"><span class="topLeft">&nbsp;</span><span class="topRight">&nbsp;</span></div>',
                '<div class="boxcontent">',
                    '<div class="errorDialog"><strong>Hiba!</strong><br />{text}</div>',
                    '<div class="dialogButtons">',
                        '<input type="button" id="btn_ok" class="cancel button" />',
                        '<div class="clr">&nbsp;</div>',
                    '</div>',
                '</div>',
                '<div class="corners"><span class="bottomLeft">&nbsp;</span><span class="bottomRight">&nbsp;</span></div>',
                '<div class="clr">&nbsp;</div>',
            '</div>'
        );
        html = $.template( html.join('') ).apply({text:str});

        Site.Component.PopUp.open({
            height:200,
            width:200,
            template:'dialog',
            text:html
        },function( win ){
            $('#btn_ok').bind('click' , Site.Component.PopUp.close );
        });

        delete html;
        return false;
    }
	
	this.confirm = function( str, callBack, callBackParams ){

        html = new Array(
            '<div class="fromWhite_toBlue alerterror">',
                '<div class="corners"><span class="topLeft">&nbsp;</span><span class="topRight">&nbsp;</span></div>',
                '<div class="boxcontent">',
                    '<div class="alertDialog">{text}</div>',
                    '<div class="dialogButtons confirmbuttons">',
                        '<span><input type="button" id="btn_ok" class="cancel button" /></span>',
                        '<span><input type="button" id="btn_cancel" class="cancel button" /></span>',
                        '<div class="clr">&nbsp;</div>',
                    '</div>',
                '</div>',
                '<div class="corners"><span class="bottomLeft">&nbsp;</span><span class="bottomRight">&nbsp;</span></div>',
                '<div class="clr">&nbsp;</div>',
            '</div>'
        );
        html = $.template( html.join('') ).apply({text:str});

        Site.Component.PopUp.open({
            height:200,
            width:200,
            template:'dialog',
            text:html
        },function( win ){
            $('#btn_cancel').bind('click' , Site.Component.PopUp.close );
            $('#btn_ok').bind('click' , function(){
				
				if( typeof callBack == 'function'){
					callBack( callBackParams );
				}
				
				Site.Component.PopUp.close();
				return false;
			});
        });

        delete html;
        return false;
    }
}



/**
* Site.Init obj
*
* az itt definialt method-ok vegregajtodnak az oldal betoltodese utan automatikusan
**/
Site.Init = new function(){
    var self=this;


    /**
    * Ajax setup
    **/
    this.ajaxSetup = function(){
        $.ajaxSetup({
            type: "POST",
            async: false,
            cache: false,
            data:'noData=true',
            dataType: 'html',
            timeout: 15000,
            beforeSend: function(){

            },
            complete: function(){

            },
            error:function (XMLHttpRequest, textStatus, errorThrown){
                /*
                if( textStatus == 'timeout' ){
                    Site.error('AJAX TIMEOUT!');
                }
                else{
                    Site.error('AJAX ERROR!');
                }
                */
            }
        });
    }


    /**
    * Minden ami bongeszkulonbseg
    **/
    this.browsersModify = function(){

        if( $.browser.mozilla == true && parseFloat( $.browser.version ) < 1.9 ){
            $('select.fp_input').css({
                height:19
            });
        }

    }

    /**
    * Kereses bind
    **/
    this.kereses = function(){
		
		
		activeIconId = Site.Search.getActiveIconIdOfCookie();
	
        if( window.location.hash == '#reszletesKereso' || window.location.hash == '#keresesMentese' ){
            activeIconId = 'reszletesKereso';
        }
        Site.Search.init( activeIconId );

        $(window).bind('unload', Site.Search.destruct );
    }



    /* linkek uj ablakba */

    this.linkujablakba = function() {

        $('body.tartalom').find('div.textbox').find('a').attr('target' , '_blank');

    }

    /* kukac */

    this.kukac = function() {

        $('div.columnLeft').find("a[href*='##kukac##']").each(function(){
            this.href = this.href.replace('##'+'kukac'+'##',String.fromCharCode(64) );
            this.innerHTML = this.innerHTML.replace('##'+'kukac'+'##', String.fromCharCode(64) );
        });
    }


    /**
    * Form mezok bind
    **/
    this.formFilds = function() {

        $('div.columnLeft')
            .find('input.numeric').bind('keydown' , function( e ) {
                (e.keyCode) ? keyCode=e.keyCode : keyCode=e.which;
                // spec bill
                if( keyCode==8 || keyCode==9 ){
                    return true;
                }

                //csak szamok
                if( ( keyCode > 57 || keyCode < 48 ) && ( keyCode < 96 || keyCode > 105 ) ){
                    return false;
                }

                return true;
            }).end()
            .find('input.datumvalaszo').datepicker();
    }


    /* toolbox -> továbbküldés */
    this.toolsMenu = function(){
        return Site.Component.ToolsMenu();
    }

    /**
    * az oldalokon levo pagerhez
    **/
    this.pagerInit = function(){
        $('select#input_talalat_rendezes').bind('change',function(){

            formObj = $(this).parents('form');

            action =  formObj.attr('action') + '/' + $(this).val();
            formObj.attr('action',  action );
            formObj.find('#input_talalat_referer').val( window.location.href );
            formObj.submit();
        });
    }
    /**
    * Az oldalt itt inicializáluk
    * ezt futatjuk legutoljara ;)
    **/
    this.pageInit = function(){
        pages = $('body').attr('class').split( /\s/g );

        for( var i=0; i < pages.length; i++ ){
            Site.Pages.run( pages[i] );
        }
    }

    /**
    * Itt futatjuk le az a methodokat
    **/
    $('window').ready(function(){
        for( var i in self){
            if( typeof( self[i] == 'function' ) ){
                self[i]();
            }
        }
    });
}


/**
* Site.Pages obj
*
* itt vannak az oldalra vonatkozo methodusok
**/
Site.Pages = new function(){


    this.index = function(){
        Site.Carousel.kiemeltInit();
        Site.Carousel.hirdetesInit();
        Site.Carousel.newsInit();
        Site.Carousel.ajanloInit();
    }


    this.regisztracio = function(){

        Site.Component.MultiFile();

        $('form.validation').midgardValidation({
            validFailedDisplayType:'class_outer',
            validFailedClass: 'error',
            validFailedOterContener: $('p.error')
        });

    }



    this.partnerek = function(){

        Site.Component.Tooltip.init({
            selector:'ul.partnerek_kereso_talalat li a',
            tooltipConf:{
                showURL: false
            },
            bodySrc: 'rel',
            bodyStyle: 'width:250px;'
        });

        $('.column03').find('input.checkradio').bind('click' , function( e ) {
            window.location.href = $(this).val();
        });
    }

    this.motorboltok = function(){

        Site.Component.Tooltip.init({
            selector:'ul.motorboltok_kereso_talalat li a',
            tooltipConf:{
                showURL: false
            },
            bodySrc: 'rel',
            bodyStyle: 'width:250px;'
        });
    }


    this.lopottmotorok = function(){

        Site.Component.MultiFile();
        Site.Component.AjaxPager.init();
        Site.Component.Galery();


        $('#input_leiras').after('<div id="leiras_counter">200</div>');
        Site.Component.TextareCounter({
            max:200,
            textarea: '#input_leiras',
            counter: '#leiras_counter'
        });


        $('#input_megjegyzes').after('<div id="megjegyzes_counter">200</div>');
        Site.Component.TextareCounter({
            max:200,
            textarea: '#input_megjegyzes',
            counter: '#megjegyzes_counter'
        });
		
		$('#lopotmotorok_validation').bind('submit.varjal',function(){
			Site.Pages.varjal();	
		});
		
		$('#btn_level_a_hirdetonek').bind('click',function(){
			
			Site.Component.PopUp.open({
				height:390,
				width:223,
				template:'oldaltovabbkuldes',
				text:$('#jsEmailKuldesConteiner').html()
			},function( win ){
            
				$('.btn_megse').bind('click' , Site.Component.PopUp.close );
				
				Site.Component.TextareCounter({
					max:500,
					textarea: '#PU_widow #input_email_hozzaszolas',
					counter: '#PU_widow #hozzaszolas_counter'
				});
				
				Site.Pages.emailKuldes( $('#PU_widow') );
			});
		});

    }

    this.varjal = function() {
        Site.Component.PopUp.open({template: 'dialog', text: '<br /><h2>Adatok feldolgozása folyamatban!<h2>'});
    }

    /**
    * motorHirdetesFeladas -nal válassza ki a tipusokat.
    **/
    this.motorHirdetesFeladas = function(){

        $('select#input_gyartmany').bind('change',function(){
            $.ajax({
                url: '/ajaxhirdetesfeladas/gettipuslistbygyartmany',
                data: {id: $(this).val()},
                async: false,
                dataType: "json",
                success: function( data ){
                    Site.Component.Select.newOptions( $('select#input_tipus') ,  data );
                }
            });
        });
    }

    this.hirdeteseim = function(){
        Site.Component.MultiFile();

        $('.uploadedpics').find('.ajaxPicRemove')
            .bind('click', Site.Component.PicRemove.confirm);


        $('form.validation').midgardValidation({
            validFailedDisplayType:'class',
            validFailedClass: 'error',
            validFailedOterContener: $('p.error')
        }, function( formObj ){
			Site.Pages.varjal();
			formObj.element.unbind('submit');
			formObj.element.submit();	
		}, function( oData ){
			
			var aText = new Array();
			for( var i in oData ){
				aText.push('<li>'+oData[i]+'</li>');
			}
			
			Site.alert( '<ul id="form_alert_error">'+aText.join('')+'</ul>' );
		});

        Site.Component.TextareCounter({
            max:500,
            textarea: '#input_leiras',
            counter: '.textareaCounter'
        });

        Site.Component.TextareCounter({
            max:200,
            textarea: '#input_hitelajanlat',
            counter: '.textareaCounter2'
        });

        Site.Component.Tooltip.init({
            selector:'div.sajat_hirdeteseim_lista ul li a.btn_kiemelesACTIVE',
            tooltipConf:{
                showURL: false,
                left: -250
            },
            bodyHtml: $('div#hirdetesKiemelesTooltip').html(),
            bodyStyle: 'width:250px;'
        });
		
		Site.Component.Tooltip.init({
            selector:'.jsUploadTooltip',
            tooltipConf:{
                showURL: false
            },
            bodySrc: 'rel',
            bodyStyle: 'width:250px;'
        });


        $('.hitelezheto').bind('click' , function() {
            var attr = $('.hitelezheto').attr ( 'checked' );
            if ( attr ) {
                $('.hitelajanlatdoboz').show();
            }
            else {
                $('.hitelajanlatdoboz').hide();
                $('#input_hitelajanlat').val('');
            }
        });

        var attr = $('.hitelezheto').attr ( 'checked' );
            if ( attr ) {
                $('.hitelajanlatdoboz').show();
            }
            else {
                $('.hitelajanlatdoboz').hide();
            }
			
			
		$('select#jsSajatHirdeteseimOrdering').bind('change',function(){
			
			path = window.location.href.replace(/([0-9\/]*)$/, '');
			path+= '/' + $(this).val();
			window.location.href = path;
			return false;
		});	
		
		$('a.btn_torlesACTIVE').bind('click',function(){
			
			Site.confirm(
				'Biztos törölni szeretnéd?',
				function( sUrl ){ 
					window.location.href= sUrl; 
					return false; 
				},
				$(this).attr('href')
			);
			return false;
		});

    }



    this.klubok = function(){
        Site.Component.MultiFile();

        Site.Component.Tooltip.init({
            selector:'ul.klubok_talalat li a',
            tooltipConf:{
                showURL: false
            },
            bodySrc: 'rel',
            bodyStyle: 'width:250px;'
        });



    }

    /**
    * Ez a hirdetesek egyedi oldaon fut csak le, mert a tobbire ezek nem kellenek
    **/
    this.hirdetesekEgyedi = function(){

		$('#btn_level_a_hirdetonek').bind('click',function(){
			
			Site.Component.PopUp.open({
				height:390,
				width:223,
				template:'oldaltovabbkuldes',
				text:$('#jsEmailKuldesConteiner').html()
			},function( win ){
            
				$('.btn_megse').bind('click' , Site.Component.PopUp.close );
				
				Site.Component.TextareCounter({
					max:500,
					textarea: '#PU_widow #input_email_hozzaszolas',
					counter: '#PU_widow #hozzaszolas_counter'
				});
				
				Site.Pages.emailKuldes( $('#PU_widow') );
			});
		});
		
		
		
        Site.Component.Tooltip.init({
            selector:'.hitelre_is',
            tooltipConf:{
                showURL: false
            },
            bodyHtml: $('#hitelajanlat_szoveg').html(),
            bodyStyle: 'width:250px;'
        });

        Site.Component.Tooltip.init({
            selector:'a.notLoggedinAddKedvencek',
            tooltipConf:{
                showURL: false
            },
            bodyHtml: '<p>Kérlek jelentkezz be!</p>',
            bodyStyle: 'width:250px;'
        });

        $.ajax({
            url: "/ajaxkedvenc/checkFav",
            data: {hirdetesid: location.pathname },
            async: true,
            dataType: "json",
            success: function( data ){
                if ( data == 0 ) {
                    $('#btn_add_a_kedvencekhez').removeClass('hidden');
                    $('#btn_mar_nem_kedvencem').addClass('hidden');
                }
                else {
                    $('#btn_add_a_kedvencekhez').addClass('hidden');
                    $('#btn_mar_nem_kedvencem').removeClass('hidden');
                }
            }
        });

        $('.ajaxkedvenc').bind ( 'click' , function( e ) {
            $.ajax({
                url: '/ajaxkedvenc/',
                data: { hirdetesid: location.pathname },
                async: true,
                dataType: "json",
                success: function( data ){
                    if ( data == "marnemkedvenc" ) {
                        $('#btn_add_a_kedvencekhez').removeClass('hidden');
                        $('#btn_mar_nem_kedvencem').addClass('hidden');
                    }
                    else {
                        $('#btn_add_a_kedvencekhez').addClass('hidden');
                        $('#btn_mar_nem_kedvencem').removeClass('hidden');
                    }
                }
            });
        });

        Site.Component.Galery();
        Site.Component.AjaxPager.init();
		
    }
	
	this.emailKuldes = function( context ){
		
		$('#jsEmailKuldesForm', context ).bind('submit', function(){
			
			if( !$('#input_email_nev', this ).val() ){
				Site.error('Kérem adja meg a nevét!');
				return false;
			}
			
			if( !$('#input_email_hozzaszolas', this ).val() ){
				Site.error('Kérem adja meg az üzenet szövegét!');
				return false;
			}
			
			if( 
				!$('#input_email_email', this ).val() ||
				!Site.Component.CheckMail( $('#input_email_email', this ).val() )	
			){
				Site.error('Kérem adja meg az email címét');
				return false;
			}
			return true;
		});
	}

	this.motorvadasz = function(){
		
		$('.jsDelete').bind('click',function(){
			
			Site.confirm(
				'Biztos törölni szeretnéd?',
				function( sUrl ){ 
					window.location.href= sUrl; 
					return false; 
				},
				$(this).attr('href')
			);
			return false;
		});
		
	}
	
	

    /**
    * run function
    *
    * ezzel tudjunk lefutatni az oldalra vonatkozo methodusokat
    **/
    this.run = function( page ){
        for( var i in this){
            if( i == page && typeof( this[i] == 'function' ) ){
                this[i]();
                break;
            }
        }
    }
}

/**
 * i18n megvalositas
 */

Site.I18N = new function(){
  var self = this;
  this.data = {};
  this.get = function( key ){
    if( self.data[ key ] ){
      return self.data[ key ] ;
    } else {
      return key;
    }
  }
  this.set = function( key, val ){
    this.data[ key ] = val;
  }
}

/**
 * __ function
 * a php-s es smarty-s szintaktika megtartasara
 */
__ = Site.I18N.get;
