/********************************************************************************************/
/* AHAH functions by Phil Ballard                                                           */
/* This code is intended for study purposes.                                                */
/* You may use these functions as you wish, for commercial or non-commercial applications,  */
/* but please note that the author offers no guarantees to their usefulness, suitability or */
/* correctness, and accepts no liability for any losses caused by their use.                */
/********************************************************************************************/
//var marker = new Array(50);
var marker0;
var marker1;
var marker2;
var marker3;
var marker4;
var marker5;
var marker6;
var marker7;
var marker8;
var marker9;
var marker10;
function callAHAH(url, pageElement, callMessage, errorMessage) {
	if(Effect)
		Effect.Appear(document.getElementById(pageElement));
	if(document.getElementById(pageElement))
		setLoadingImage("inProgress");
	try {
     req = new XMLHttpRequest(); /* e.g. Firefox */
     } catch(e) {
       try {
       req = new ActiveXObject("Msxml2.XMLHTTP");  /* some versions IE */
       } catch (e) {
         try {
         req = new ActiveXObject("Microsoft.XMLHTTP");  /* some versions IE */
         } catch (E) {
          req = false;
         } 
       } 
     }
     req.onreadystatechange = function() {responseAHAH(pageElement, errorMessage);};
     req.open("GET",url,true);
     req.send(null);
  }

function responseAHAH(pageElement, errorMessage) {
   var output = '';
   if(req.readyState == 4) {
		if($("inProgress")){
			$("inProgress").style.display = "none";
		}
      if(req.status == 200) {
			output = req.responseText;
			if(pageElement=="displayAgent"){
				document.location=output;
				return "";
			}else if(pageElement=="mapDivResp"){
				var ar = new Array();
				ar = output.split("|");
				if(!map)
					map = new GMap2(document.getElementById("map"));
				
				arSub1 = ar[0].split("^");
				map.setCenter(new GLatLng(arSub1[0], arSub1[1]), 13);
				var html = new Array(50);

				for(i=0;i<=10;i++){
					eval('if(marker' + i + ')map.removeOverlay(marker' + i + ');');
				}
				jobDesc = '';
				for(i=0;i<ar.length;i++){
					arSub = ar[i].split("^");
					eval('marker' + i + '= new GMarker(new GLatLng(' + arSub[0] + ', ' + arSub[1] + '));');
					arSub[2] = arSub[2].replace(/\r|\n|\r\n/g, '');
					if(jobDesc=='') jobDesc = arSub[2];

					eval('GEvent.addListener(marker' + i + ', "click", function() {	var html' + i + ' = \'<div style="width: 210px; padding-right: 10px">' + jobDesc.replace(/\n/, '<br>') + '<\/div>\'; marker' + i + '.openInfoWindowHtml(html' + i + ');}); map.addOverlay(marker' + i+ ');');
					document.getElementById("div_map_address").innerHTML= arSub[2] + document.getElementById("div_map_address").innerHTML;
				}
				 //GEvent.trigger(marker, "click");
				 return "";
			}else if(pageElement.indexOf("letesavedsearch")!=-1){
				fncallgetSavedsearchesNumber('savedSearchesNumber_dup');
				obj = document.getElementById("inProgress"); 
				obj.style.display="none";
			}else if(pageElement.indexOf("removeAllSavedjobs")!=-1){
				if($('savedJobadsNumber')){
					fncallgetSavedjobadsNumber('savedJobadsNumber');
				}
			}else if(pageElement.indexOf("moveAllViewedjobs")!=-1){
				if($('viewedJobadsNumber')){
					fncallgetViewedjobadsNumber('viewedJobadsNumber','');
				}
			}else if(pageElement.indexOf("savejobDiv")!=-1 || pageElement.indexOf("removesave_jobDiv")!=-1){
				if(pageElement.indexOf("removesave_jobDiv")!=-1)
					document.getElementById("DivRemoveall").innerHTML = output;
				if($('savedJobadsNumber')){
					fncallgetSavedjobadsNumber('savedJobadsNumber');
				}
				if(pageElement.indexOf("removesave_jobDiv")!=-1 && pageElement.indexOf("savejobDiv")==-1 ){
					if(output.indexOf("tp[tp_id][]")==-1)
						fnCallSavedJobadsList('page');
					else
						document.getElementById("DivRemoveall").innerHTML = output;
					return false;
				}

			}else if(pageElement.indexOf("removeviewedjobDiv")!=-1){
				document.getElementById("DivRemoveall").innerHTML = output;
				if($('viewedJobadsNumber')){
					fncallgetViewedjobadsNumber('viewedJobadsNumber','');
				}
				if(output.indexOf("tp[tp_id][]")==-1)
					fnCallViewedJobadsList('page'); 
				else
					document.getElementById("DivRemoveall").innerHTML = output;
				return false;
			}else if(pageElement.indexOf("check_password")!=-1 && output.indexOf("|")!=-1){
				res = output.split('|');
				fnLoginUser(res[1],res[2],res[3],res[4],res[5]);
				return false;
			}else if(pageElement.indexOf("get_subscribed_user")!=-1 && output.indexOf("radio")!=-1){
				document.getElementById("submitDiv").style.display = "none";
			}else if(pageElement.indexOf("get_subscribed_user")!=-1 && output.indexOf("radio")==-1){
				document.getElementById("submitDiv").style.display = "block";
			}else if(pageElement.indexOf("check_password")!=-1 && output.indexOf("success!")!=-1){
				document.getElementById("getalertDiv").innerHTML = "<font color='#00cc00'>Az állásértesítő létrehozása sikeresen megtörtént. Kérjük, ellenőrizze az e-mail fiókját, és a CV-Online-tól érkezett üzenetben megadott tájékoztatás szerint  aktiválja az ingyenes napi Állásértesítőt.</font>";
				if($('emailalertsNumber'))
					fncallgetEmailAlertsNumber('emailalertsNumber','');
				return false;
			}else if(pageElement.indexOf("save_alert")!=-1){
				if(output.indexOf("Alert Created")!=-1){
					document.getElementById("getalertDiv").innerHTML = "<font color='#00cc00'>Az állásértesítő létrehozása sikeresen megtörtént. Kérjük, ellenőrizze az e-mail fiókját, és a CV-Online-tól érkezett üzenetben megadott tájékoztatás szerint  aktiválja az ingyenes napi Állásértesítőt.</font>";
					if($('emailalertsNumber'))
						fncallgetEmailAlertsNumber('emailalertsNumber','');
					return false;
				}
			}else if(pageElement.indexOf("savesearchDiv")!=-1 || pageElement.indexOf("searchesDiv")!=-1){
				if(output.indexOf("Duplicate")==-1 && output.indexOf("<form")==-1){
					fncallgetSavedsearchesNumber('savedSearchesNumber');
				}else{
					document.getElementById(pageElement).innerHTML = output;
					return false;
				}
			}
			if(document.getElementById(pageElement))
	         document.getElementById(pageElement).innerHTML = output;
         } else {
         document.getElementById(pageElement).innerHTML = errorMessage+"\n"+output;
         }
      }
 }

function callAHAH_Map(url, pageElement, callMessage, errorMessage) {
	if(Effect)
		Effect.Appear(document.getElementById(pageElement));
     try {
     req = new XMLHttpRequest(); /* e.g. Firefox */
     } catch(e) {
       try {
       req = new ActiveXObject("Msxml2.XMLHTTP");  /* some versions IE */
       } catch (e) {
         try {
         req = new ActiveXObject("Microsoft.XMLHTTP");  /* some versions IE */
         } catch (E) {
          req = false;
         } 
       } 
     }
     req.onreadystatechange = function() {responseAHAH_map(pageElement, errorMessage);};
     req.open("GET",url,true);
     req.send(null);
  }

function responseAHAH_map(pageElement, errorMessage) {
   var output = '';
   if(req.readyState == 4) {
      if(req.status == 200) {
         output = req.responseText;
		 	document.getElementById(pageElement).style.display="none";	
			 if(output=="-"){
				 fnDisplayMessage();
 				 if(curdiv){
 					field = 'tp[mapaddress' + curdiv + ']';
					divStr = "loader" + curdiv;
					document.getElementById(divStr).style.display="none";
				 }else{
 					field = 'tp[aadress]';
					divStr = "loader";
					document.getElementById(divStr).style.display="none";
				}
			 }else{
 				 if(curdiv)
 					field = 'tp[mapaddress' + curdiv + ']';
 				else{
 					field = 'tp[aadress]';
					divStr = "loader";
					document.getElementById(divStr).style.display="none";
				}
 				document.getElementById("tp[mapaddress]").value= document.getElementById("tp[mapaddress]").value + document.getElementById(field).value + '|';					 	
				divStr= "invalidMapAddress" + curdiv;
				obj = document.getElementById(divStr);
				obj.style.display="none";
				divStr= "validMapAddress" + curdiv;
				obj = document.getElementById(divStr);
				obj.style.display="block";
				divStr= "td_checkaddress" + curdiv;
				document.getElementById(divStr).style.display="none";
				divStr= "td_previewaddress" + curdiv;
				document.getElementById(divStr).style.display="block";
				divStr = "loader" + curdiv;
				document.getElementById(divStr).style.display="none";
			 }
         } else {
         document.getElementById(pageElement).innerHTML = errorMessage+"\n"+output;
         }
      }
  }

function ajaxObject(url, callbackFunction,pageEle,action) {
  var that=this;      
  this.pageElement = pageEle;
  this.action = action;
  this.updating = false;
  this.abort = function() {
    if (that.updating) {
      that.updating=false;
      that.AJAX.abort();
      that.AJAX=null;
    }
  }
  this.update = function(passData,postMethod) { 
    if (that.updating) { return false; }
    that.AJAX = null;                          
    if (window.XMLHttpRequest) {              
      that.AJAX=new XMLHttpRequest();              
    } else {                                  
      that.AJAX=new ActiveXObject("Microsoft.XMLHTTP");
    }                                             
    if (that.AJAX==null) {                             
      return false;                               
    } else {
	  setLoadingImage("inProgress");
      that.AJAX.onreadystatechange = function() {  
        if (that.AJAX.readyState==4) {             
          that.updating=false;                
          that.callback(that.AJAX.responseText,that.AJAX.status,that.pageElement,that.action);        
          that.AJAX=null;                                         
        }                                                      
      }                                                        
      that.updating = new Date();                              
      if (/post/i.test(postMethod)) {
        var uri=urlCall+'?'+that.updating.getTime();
        that.AJAX.open("POST", uri, true);
        that.AJAX.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        that.AJAX.setRequestHeader("Content-Length", passData.length);
        that.AJAX.send(passData);
      } else {
        var uri=urlCall+'?'+passData+'&timestamp='+(that.updating.getTime()); 
        that.AJAX.open("GET", uri, true);                             
        that.AJAX.send(null);                                         
      }              
      return true;                                             
    }                                                                           
  }
  var urlCall = url;        
  this.callback = function processData(responseText, responseStatus,pageElement,action) {
  if (responseStatus==200) {
		if(document.getElementById("inProgress")){
			document.getElementById("inProgress").style.display = "none";
		}
	 if(responseText.indexOf("tp[tp_id][]")==-1 && action=="savedjobs"){
		fnCallSavedJobadsList('page');
	 }else if(responseText.indexOf("tp[tp_id][]")==-1 && action=="viewedjobs"){
		fnCallViewedJobadsList('page');
	 }
	try{
	    document.getElementById(pageElement).innerHTML = responseText;
		if(document.getElementById("passwordActionResultMessages")){
			__evaluateJs(document.getElementById("passwordActionResultMessages"));
			document.getElementById("nouserfound").innerHTML="";
		}
	}catch(ex){
		//alert(ex.message);
	}
  } else {
	if(document.getElementById("inProgress")){
		document.getElementById("inProgress").style.display = "none";
	}
    //alert(responseStatus + ' -- Error Processing Request');
  }
};
}

function __evaluateJs(obj)
{
	window.jsCode = new Array();
	var scriptTags = obj.getElementsByTagName('SCRIPT');
	var head = document.getElementsByTagName('HEAD')[0];
	for(var no=0;no<scriptTags.length;no++){                  
		if (scriptTags[no].src){
			var head = document.getElementsByTagName("head")[0];
			var scriptObj = document.createElement("script");            
			scriptObj.setAttribute("type", "text/javascript");
			scriptObj.setAttribute("src", scriptTags[no].src);             
			head.appendChild(scriptObj);
	
		}else{                      
				var code = scriptTags[no].innerHTML;                        
				window.jsCode[no] = code;
				setTimeout('eval(window.jsCode[' + no + '])',100);      // Has to wait because we want to make all objects part of the window object(global variables) instead of locale
		}            
	}      
}
