/**
 * Site
 * 
 * Az site object 
 *
 * @package    mivilagunk
 * @subpackage Site
 * @author     Szijártó Tamás ( szicsu ) <szicsu@jquery.hu>
 * @version    SVN: $Id: $
 */

/**
 * Site object inicailázása
 */
var Site = {};


/**
 * Site.Init
 *
 * Azok a methodusok kerülnek ide, amik minden oldalbetöltésnél lefutnak.
 * Külső fájlből is bővíthető
 *
 */
Site.Init = new function(){
	var self = this;

	/**
     * ajaxSetup
     *
     * beállítja az alapértelemzett ajax paramétereket
	 * 
	 * @see http://docs.jquery.com/Ajax/jQuery.ajax#options
	 */
    this.ajaxSetup = function(){
        $.ajaxSetup({
            type: "GET",
            async: false,
            cache: true,
            dataType: 'html',
            timeout: 15000,
            complete: function(){

            },
            error:function (XMLHttpRequest, textStatus, errorThrown){
				str = "AjaxError("+ textStatus +")\n";
				alert( str );
            }
        });
    }

	/**
	 *
	 */
	this.cacheIgnoreInit = function(){
			
		if( Site.Helper.checkSfIgnoreCache() ){
			
			$('a').each(function(){
				this.href = Site.Helper.addSfIgnoreCacheString( this.href );
			});
		}	
	}
	
	/**
	 * style Init
	 */
	this.siteStyleInit = function(){
		Site.Style.init();
	}
	
	/**
	 * i18nInit
	 */
	this.i18nInit = function(){
		window.__= Site.I18N.get;
	}
	
	/**
	 * eventsInit
     * 
     * Body class alapján inicializáljuk az egyes eventeket
     */
    this.eventsInit = function(){
        events = $('body').attr('class').split( /\s/g );

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

    /**
     * Oldal betöltéskor lefutó kód, ami lefutatj az egyes methodokat
     */
    $(document).ready(function(){
        for( var i in self){
            if( typeof self[i] == 'function' ){
                self[i]();
            }
        }
    });
}  

/**
 * Site.Events object
 *
 * Itt kapnak helyet az egyes evenetek, amiket futatni lehet az egész siten
 * Küldő fájlből is bővíthető az object
 */
Site.Events = new function(){

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

/**
 * Site.Component object
 *
 * Itt kapnak helyet az componentek actiopjai amiket dinamikusan töltönk
 * Küldő fájlből is bővíthető az object
 */
Site.Component = new function(){
	var self = this;
	this.componentPath = 'site/component/';
	
	/**
	 * betöti a komponetst és be is röffenti :)
	 */
	this.run = function( methodName, args ){
		
		if( args === undefined ){
			args = new Array();
		}
		else if( !args instanceof Array  ){
			args = new Array( args );
		}
		
		
		$.require( this.componentPath + methodName + '.js' );
		try{
			if( this[methodName].require instanceof Object && this[methodName].require != null ){
				this.runInclude( this[methodName].require );
			}
			this[methodName].run.apply( {}, args );
		}
		catch( error ){
			alert( error.toSource() );
			//alert( error.toString() );
			//throw error;
		}

	}
	

	/**
     * Betölti a componetshez szükséges fájlokat
	 */	
	this.runInclude = function( data ){
	
		if( data.js && data.js instanceof Array && data.js.length > 0 ){
			$.require( data.js );
		}
		
		if( data.css && data.css instanceof Array && data.css.length > 0){
			$.requireCss( data.css );
		}
	
	} 

} 


/**
 *  Site.I18N
 *
 * Itt kapnak helyet a a js localizációja
 * @see /js/site/i18n/%lang%/message.js
 */
 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;
	}
	
}
 
 /**
  *  Ajaxos mobilszám validálás - magyar
  */
 $(document).ready( function(){
     $('#ajax_sms_button').click(function() {
    	 mobile = $('#mvo_users_mobile').attr('value'); 
    	 $.ajax({
    		   type: "POST",
    		   url: "/ajax/SendSMS",
    		   data: "phone="+mobile,
    		   success: function( msg ){
    		 		if ( msg=='["ok"]')
    		 		{
    		 			$("#mobile_code_div").show("fast");
    		 			msg = 'Köszönjük! Hamarosan SMS-ben megkapod a hitelesítő kódot, mellyel hitelesítheted mobilszámodat. Kérjük a kapott kódot írd be a Hitelesítő kód mezőbe, majd kattints az adatlap alján a <span style="color: red; font-weight: bolder;">MENTÉS</span> gombra.';
    		 		} 
    		 		else if ( msg=='["mobile_is_exists"]') 
    		 		{
    		 			msg = 'A megadott számot már használja egy másik regisztrált felhasználó!';
    		 			$("#mobile_code_div").hide();
    		 		
    		 		}
    		 		else if ( msg=='["mobil_num_is_valid"]') 
    		 		{
    		 			msg = 'A megadott szám már ellenőrzött!';
    		 			$("#mobile_code_div").hide();
    		 		
    		 		}
    		 		else if ( msg=='["only_admin_delete"]') 
    		 		{
    		 			msg = 'Ha törölni szeretnéd hitelesített mobilszámodat, kérjük írj a <a href="mailto:klub@mivilagunk.hu">klub@mivilagunk.hu</a> email címre!';
    		 			$("#mobile_code_div").hide();
    		 		}
    		 		else if ( msg=='["user_is_send_number"]') 
    		 		{
    		 			msg = 'Ön már beküldött egy telefonszámot, melyre kiküldtünk egy SMS-t, kérjük adja meg a Hitelesítő kódot! Amennyiben nem kapta meg az SMS-t, vagy elgépelte telefonszámát kérjük írjon a <a href="mailto:klub@mivilagunk.hu">klub@mivilagunk.hu</a> email címre, hogy adminisztrátoraink javítani tudják!';
    		 			$("#mobile_code_div").show("fast");
    		 		}
    		 		
    		 		if ( msg!='[""]')
    		 		{
    		 			alert( msg );
    		 		}
    		   }
    		 });}
     );
     
     
   });
 
 
 /**
  *  Ajaxos mobilszám validálás - cseh
  */
 $(document).ready( function(){
     $('#ajax_sms_button_cz').click(function() {
    	 mobile = $('#mvo_users_mobile').attr('value'); 
    	 $.ajax({
    		   type: "POST",
    		   url: "/ajax/SendSMS",
    		   data: "phone="+mobile,
    		   success: function( msg ){
    		 		if ( msg=='["ok"]')
    		 		{
    		 			$("#mobile_code_div").show("fast");
    		 			msg = 'Děkujeme! V SMS brzy obdržíte ověřovací kód, pomocí kterého můžete ověřit Vaše mobilní číslo. Tento kód laskavě napište do kolonky Ověřovací kód a poté klikněte na <span style="color: red; font-weight: bolder;">ULOŽIT</span> na konci registračního formuláře.';
    		 		} 
    		 		else if ( msg=='["mobile_is_exists"]') 
    		 		{
    		 			msg = 'Toto telefonní číslo je již používáno jiným uživatelem!';
    		 			$("#mobile_code_div").hide();
    		 		
    		 		}
    		 		else if ( msg=='["mobil_num_is_valid"]') 
    		 		{
    		 			msg = 'Toto telefonní číslo je již ověřené!';
    		 			$("#mobile_code_div").hide();
    		 		
    		 		}
    		 		else if ( msg=='["only_admin_delete"]') 
    		 		{
    		 			msg = 'Pokud chcete smazat své mobilní číslo, napište laskavě na <a href="mailto:program@nadoma.cz">program@nadoma.cz.</a>';
    		 			$("#mobile_code_div").hide();
    		 		}
    		 		else if ( msg=='["user_is_send_number"]') 
    		 		{
    		 			msg = 'O ověřovací kód jste již zažádal/a a byl Vám zaslán pomocí SMS. Laskavě jej vyplňte do ověřovacího okénka ve svém profilu v sekci Změna informací. Pokud jste SMS neobdržel/a nebo jste špatně zadal/a své mobilní číslo, pošlete nám prosím email na <a href="mailto:program@nadoma.cz">program@nadoma.cz.</a> a naši administrátoři chybu opraví.';
    		 			$("#mobile_code_div").show("fast");
    		 		}
    		 		
    		 		if ( msg!='[""]')
    		 		{
    		 			alert( msg );
    		 		}
    		   }
    		 });}
     );
     
     
   });
 
