/**
 * Az a szerver felől érkező ajax parancsokat hajtja végre 
 */
if ( typeof(ml)=="undefined" ) ml={};
if ( typeof(ml.ajax) == "undefined" ) {ml.ajax={};};

ml.ajax.ajaxCommands = {

	cmdMessage: function ( parameter ) {
		if ( parameter.type == 'info') {
			ml.Notifier.globalInfo(parameter.message);
		}else if ( parameter.type == 'error') {
			ml.Notifier.globalError(parameter.message);
		}
	},
	cmdMessageLocal: function ( parameter ) {
		if ( parameter.type == 'remove') {
			ml.Notifier.localRemove(parameter.id);
		}else{
			ml.Notifier.local(parameter.id, parameter.message, parameter.type, parameter.delay);
		}
	}
	,cmdRun: function ( parameter ) {
		//		console.log('run: '+parameter.script);
		try {
			eval(parameter.script);
		}catch(err) {
			console.log('Catched exception:');
			console.log(err);
		}
	}
	,cmdScrollTop: function () {
		jQuery('html, body').animate({scrollTop:0}, 500, 'swing');
	}
	,cmdSwfCacheRun: function ( parameter ) {
//		console.log('run: '+parameter.script);
		try {
			ml.swf.cacheRun(parameter.id, parameter.script);
		}catch(err) {
			console.log('Catched exception:');
			console.log(err);
		}
	}
	,cmdSwfCacheStore: function ( parameter ) {
		try {
			ml.swf.cacheStore(parameter.id, parameter.key, parameter.val);
		}catch(err) {
			console.log('Catched exception:');
			console.log(err);
		}
	}
	,cmdDomInsert: function ( parameter ) {
		jQuery(parameter.target).html(parameter.html);
	}
	,cmdDomReplace: function ( parameter ) {
		jQuery(parameter.target).replaceWith(parameter.html);
	}
	,cmdReload: function ( parameter ) {
		if ( parameter.page ) {
			document.location = parameter.page;
		}else{
			document.location.reload();	
		}
	}
	
	,parseCommand: function ( parameter ) {
//		console.log(parameter);
		switch( parameter.cmd ) {
			case "message": this.cmdMessage(parameter); break; 
			case "messagelocal": this.cmdMessageLocal(parameter); break; 
			case "run": this.cmdRun(parameter); break; 
			case "scrolltop": this.cmdScrollTop(); break; 
			case "swfcacherun": this.cmdSwfCacheRun(parameter); break; 
			case "swfcachestore": this.cmdSwfCacheStore(parameter); break; 
			case "dom_insert": this.cmdDomInsert(parameter); break; 
			case "dom_replace": this.cmdDomReplace(parameter); break; 
			case "reload": this.cmdReload(parameter); break; 
			case "set_pagestate": this.cmdSetPagestate(parameter); break; 
		}
	}
	,parseCommands: function ( commands ) {
		for(var i=0; i<commands.length; i++) {
			this.parseCommand(commands[i]);
		}
	}
};

