AC_FL_RunContent = 0;

function sendToJavaScript(value) {
 result = $.x_event_displayEvents(value);
 document.getElementById("calendarEventsList").innerHTML=result;
}
function eventQuickLinks(day, month, year) {
 var date = day + "/" + month + "/" + year;
 result = $.x_event_displayEvents(date);
 document.getElementById("calendarEventsList").innerHTML=result;
}
var jqSajax = {
		debug_mode : false,request_type : "POST",
		target_id : '',failure_redirect : "",
		friendly_url : false,requests: new Array(),data_return:"",

		debug:function(text) {if (this.debug_mode)alert(text);},	
		cancel: function() {for (var i = 0; i < this.requests.length; i++)this.requests[i].abort();},
		
		serialize:function(inp){
			var getType=function(inp){var type=typeof inp,match;if(type=='object'&&!inp){return'null'}if(type=="object"){if(!inp.constructor){return'object'}var cons=inp.constructor.toString();if(match=cons.match(/(\w+)\(/)){cons=match[1].toLowerCase()}var types=["boolean","number","string","array"];for(key in types){if(cons==types[key]){type=types[key];break}}}return type};var type=getType(inp);var val;switch(type){case"undefined":val="N";break;case"boolean":val="b:"+(inp?"1":"0");break;case"number":val=(Math.round(inp)==inp?"i":"d")+":"+inp;break;case"string":val="s:"+inp.length+":\""+inp+"\"";break;case"array":val="a";case"object":if(type=="object"){var objname=inp.constructor.toString().match(/(\w+)\(\)/);if(objname==undefined){return}objname[1]=this.serialize(objname[1]);val="O"+objname[1].substring(1,objname[1].length-1)}var count=0;var vals="";var okey;for(key in inp){okey=(key.match(/^[0-9]+$/)?parseInt(key):key);vals+=this.serialize(okey)+this.serialize(inp[key]);count++}val+=":"+count+":{"+vals+"}";break}if(type!="object"&&type!="array")val+=";";return val;
		},
		unserialize:function(inp){
			error=0;if(inp==""||inp.length<2){errormsg="";return}var val,kret,vret,cval;var type=inp.charAt(0);var cont=inp.substring(2);var size=0,divpos=0,endcont=0,rest="",next="";switch(type){case"N":if(inp.charAt(1)!=";"){errormsg=""}rest=cont;break;case"b":if(!/[01];/.test(cont.substring(0,2))){errormsg=""}val=(cont.charAt(0)=="1");rest=cont.substring(2);break;case"s":val="";divpos=cont.indexOf(":");if(divpos==-1){errormsg="";break}size=parseInt(cont.substring(0,divpos));if(size==0){if(cont.length-divpos<4){errormsg="";break}rest=cont.substring(divpos+4);break}if((cont.length-divpos-size)<4){errormsg="";break}if(cont.substring(divpos+2+size,divpos+4+size)!="\";"){errormsg=""}val=cont.substring(divpos+2,divpos+2+size);rest=cont.substring(divpos+4+size);break;case"i":case"d":var dotfound=0;for(var i=0;i<cont.length;i++){cval=cont.charAt(i);if(isNaN(parseInt(cval))&&!(type=="d"&&cval=="."&&!dotfound++)){endcont=i;break}}if(!endcont||cont.charAt(endcont)!=";"){errormsg=""}val=cont.substring(0,endcont);val=(type=="i"?parseInt(val):parseFloat(val));rest=cont.substring(endcont+1);break;case"a":if(cont.length<4){errormsg="";return}divpos=cont.indexOf(":",1);if(divpos==-1){errormsg="";return}size=parseInt(cont.substring(1*divpos,0));cont=cont.substring(divpos+2);val=new Array();if(cont.length<1){errormsg="";return}for(var i=0;i+1<size*2;i+=2){kret=this.unserialize(cont,1);if(error||kret[0]==undefined||kret[1]==""){errormsg="";return}vret=this.unserialize(kret[1],1);if(error){errormsg="";return}val[kret[0]]=vret[0];cont=vret[1]}if(cont.charAt(0)!="}"){errormsg="";return}rest=cont.substring(1);break;case"O":divpos=cont.indexOf(":");if(divpos==-1){errormsg="";return}size=parseInt(cont.substring(0,divpos));var objname=cont.substring(divpos+2,divpos+2+size);if(cont.substring(divpos+2+size,divpos+4+size)!="\":"){errormsg="";return}var objprops=this.unserialize("a:"+cont.substring(divpos+4+size),1);if(error){errormsg="";return}rest=objprops[1];var objout="function "+objname+"(){";for(key in objprops[0]){objout+="this['"+key+"']=objprops[0]['"+key+"'];"}objout+="}val=new "+objname+"();";eval(objout);break;default:errormsg=""}return(arguments.length==1?val:[val,rest]);
		},
		fhasilc:function(text){this.debug("the data return is: " + text);var txt = text.replace(/^\s*|\s*$/g,"");
			if(txt.substring(2,5)=='var')return this.unserialize(eval(txt.substring(2)));
		},
		fhasil:function(text){
			jqSajax.debug("PHP method/function Result is: \n"+text);
			jqSajax.data_return=eval(text);		},
			
		do_call:function(func_name, args, obj) {
			var i,post_data,target_id,uri;	
			this.debug("in jqSajax.do_call()...\nRequest Type: " + this.request_type + "\nTarget Id: " + this.target_id);
			target_id = this.target_id;
			if (typeof(this.request_type) == "undefined" || this.request_type == "")this.request_type = "GET";
			uri = "/summatives/05/?pg=events.tpl&id=46";
			if (this.request_type == "GET") {
				if (uri.indexOf("?") == -1 && this.friendly_url==false)uri += "?rs=" + escape(func_name);
				else uri += "&rs=" + escape(func_name);
				uri += "&rst=" + escape(target_id);
				uri += "&rsrnd=" + new Date().getTime();
				uri += "&rsobj=" + obj;
				for (i = 0; i < args.length; i++)uri += "&rsargs[]=" + escape(args[i]);
				post_data = null;
			}
			else if (this.request_type == "POST") {
				post_data = "rs=" + escape(func_name);
				post_data += "&rst=" + escape(this.target_id);
				post_data += "&rsrnd=" + new Date().getTime();
				post_data += "&rsobj=" + obj;
				for (i = 0; i < args.length; i++)post_data = post_data + "&rsargs[]=" + escape(args[i]);				
			}
			else this.debug("Illegal request type: " + this.request_type);
			
			this.debug("Do requested page with JQUERY ajax...");
			this.debug("URI: "+uri);
			this.debug("Post Data: "+post_data);
			$.ajax({
				async:false,
				type: this.request_type,
				url	: uri,
				data: post_data,
				dataType:"json",
				success:this.fhasil
			});			
		}	
		};

				$.x_displayEvents=function(){jqSajax.do_call("displayEvents",$.x_displayEvents.arguments,"");return jqSajax.data_return};
				$.x_event_displayEvents=function(){jqSajax.do_call("displayEvents",$.x_event_displayEvents.arguments,"event->");return jqSajax.data_return};
