
var ajax_idlastjob = 0;
var ajax_count_jobs = 0;
var ajax_jobarray = new Array();

function cAjaxJob(idjob,sget,spost,starget,shandlefunction) {
	//alert('cAjaxJob idjob='+idjob+' sget='+sget+' spost='+spost+' starget='+starget+' shandlefunction='+shandlefunction);
	this.idjob = idjob;
	this.sget = sget;
	this.spost = spost;

	if(starget==undefined) starget = "ajaxtarget";
	this.starget = starget;

	if(shandlefunction==undefined) shandlefunction = "ajax_handle_response";
	this.shandlefunction = shandlefunction;

	var ohttp;
   // TWORZENIE OBIEKTU AJAX
	if(navigator.appName == "Microsoft Internet Explorer")
	{
		ohttp = new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		ohttp = new XMLHttpRequest();
	}
   this.ohttp = ohttp;
   //alert(spost+' len='+spost.length);
   if(spost.length>0) this.startRetrieval = ajax_start_retrieval_post;
   else this.startRetrieval = ajax_start_retrieval_get;
   this.handleResponse = eval(this.shandlefunction);
}



function ajax_start_retrieval_get() {
	this.ohttp.open("GET", this.sget, true);
	//this.ohttp.onreadystatechange = eval(this.shandlefunction);
	this.ohttp.onreadystatechange = new Function("var obj=ajax_jobarray["+this.idjob+"]; obj.handleResponse();");
	//this.ohttp.onreadystatechange = eval(this.handleResponse);
   this.ohttp.send(null);
}

function ajax_start_retrieval_post() {
	this.ohttp.open("POST", this.sget, true);
	//this.ohttp.onreadystatechange = this.handleResponse();
	//this.ohttp.onreadystatechange = eval(this.shandlefunction);
	this.ohttp.onreadystatechange = new Function("var obj=ajax_jobarray["+this.idjob+"]; obj.handleResponse();");
	this.ohttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
   this.ohttp.send(this.spost);
}



function ajax_handle_response() {
	//alert('ajax_handle_response this='+this.ohttp);
	if(core_functions_loaded)
	if(isObject(this.ohttp)) {
		//alert('ajax_handle_response this='+this.ohttp+' state='+this.ohttp.readyState+' text='+this.ohttp.responseText);
		if(this.ohttp.readyState==4) {
			//alert("respons target="+this.starget);
			var obj = getObject(this.starget);
			if(isObject(obj))	obj.innerHTML = this.ohttp.responseText;

			/* wyciagamy javascript */
			var buf = this.ohttp.responseText;
			var i=1;
			while(buf.indexOf("<script ")>0) {
				var sodscript = buf.substring(buf.indexOf("<script "),buf.length);
				var sodpoczatku = sodscript.substring(sodscript.indexOf(">")+1,sodscript.length);
				var sjustscript = sodpoczatku.substring(1,sodpoczatku.indexOf("</script>"));

				//alert("just:"+sjustscript);
				i++;
				setTimeout(sjustscript,i*100);

				buf = buf.substring(buf.indexOf("<script ")+sodscript.indexOf(">")+sodpoczatku.indexOf("</script>")+10,buf.length);
			}
			ajax_count_jobs--;
		}
	}
}



function ajax_loadget(sget,starget,shandlefunction) {
	ajax_idlastjob++;
	ajax_count_jobs++;
	//alert('ajax_loadget ajax_jobarray['+ajax_idlastjob+'] = new cAjaxJob(ajax_idlastjob='+ajax_idlastjob+',sget='+sget+',null,starget='+starget+',shandlefunction='+shandlefunction+');');
	ajax_jobarray[ajax_idlastjob] = new cAjaxJob(ajax_idlastjob,sget,'',starget,shandlefunction);
	setTimeout("var obj=ajax_jobarray["+ajax_idlastjob+"]; obj.startRetrieval();",100);
}

function js_ajax_loadurl(sget,starget,shandlefunction,npostponed) {
	if(starget==undefined) starget = "ajaxtarget";
	var obj = getObject(starget);
	//alert(starget);
	//alert(obj);
	if(isObject(obj)) obj.innerHTML = '<img src="img/ajax/working.gif" />';
	//else alert(obj);
	return ajax_loadget(sget,starget,shandlefunction);
}


function ajax_loadpost(sget,spost,starget,shandlefunction) {
	//window.status += "axp target="+starget;
	ajax_idlastjob++;
	ajax_count_jobs++;
	//alert('ajax_loadpost ajax_jobarray['+ajax_idlastjob+'] = new cAjaxJob(ajax_idlastjob='+ajax_idlastjob+',sget='+sget+"\n"+',spost='+spost+"\n"+',starget='+starget+',shandlefunction='+shandlefunction+');');
	ajax_jobarray[ajax_idlastjob] = new cAjaxJob(ajax_idlastjob,sget,spost,starget,shandlefunction);
	setTimeout("var obj=ajax_jobarray["+ajax_idlastjob+"]; obj.startRetrieval();",100);
}

function js_ajax_loadpost(sget,spost,starget,shandlefunction,npostponed) {
	if(starget==undefined) starget = "ajaxtarget";
	var obj = getObject(starget);
	if(isObject(obj)) obj.innerHTML = "<img src='img/ajax/working.gif' />";
	return ajax_loadpost(sget,spost,starget,shandlefunction);
}

