/* 
# Modul : JS Module 
# Loc : global
# Path : js/xmlhttp.js
# Rev : 011
# Regenerate : 310310 - DDMMYY
# code by: ~Idx. .::[ http://www.ocean-leecher.net ]::.
*/
d = document;
var xhttp = new Array();
var myObj = new Object();
myObj['acc'] = new Array();

//--------------------
var _xml_DEBUG = false;
//--------------------
	
if(typeof(retDATA) == 'undefined') retDATA = new Object();
Array.prototype.inArray = function(valeur) {
 for (var i in this) { if (this[i] == valeur) return i; }
 return -1;
}

function AJAXInteraction(url, callback, dvwait, dvcaller, myObj) {
    var req = init();
	req.onreadystatechange = processRequest;

    function init() {
		if (typeof XMLHttpRequest == 'undefined') {
			objects = Array('Microsoft.XmlHttp','MSXML2.XmlHttp','MSXML2.XmlHttp.3.0','MSXML2.XmlHttp.4.0','MSXML2.XmlHttp.5.0'	);
			for (i = 0; i < objects.length; i++) {
				try { return new ActiveXObject(objects[i]);	} catch (e) {}
			}
		} else {
			return new XMLHttpRequest();
		}
	}
    
    function processRequest () {
      if (req.readyState == 4) {
        if (req.status == 200) {
		  if(_xml_DEBUG) alert(req.responseText);
          if (callback) callback(req.responseXML, dvwait, myObj);
        }
	  }
    }

    this.doGet = function() {
      req.open("GET", url, true);
      req.send(null);
    }
    
    this.doPost = function(body) {
      req.open("POST", url, true);
      req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
      req.setRequestHeader("Content-length",body.length);
      req.send(body);
    }
}
//====end static XHR lib

  // Function inside function to handle request result
var fcallback = function(ret,retdvwait,_myacc) {
	var gs_set = ['gs1', 'gs2', 'gs3', 'gs4', 'gs5', 'gs6', 'gs7', 'gs8', 'gs9'];
	var eng_set = ['eng1', 'eng2', 'eng3'];
	switch(_myacc.method)
	{
	 case "jobfetch" : 
	   objCreator(ret, retdvwait);
	   break;
	 case "eppscach" :
	   pascaAutosave(ret, retdvwait, 'epps_caching');
	   setProgress(lastProgress);
	   break;
	 case "chkuname" : case "chkemail" :
	   cek_regs_val(ret, retdvwait);
	   break;
	 case "chkusia" :
	   cek_usia(ret, retdvwait);
	   break;
	 default: break;	
	}
	if(gs_set.inArray(_myacc.method) != -1){
	   pascaAutosave(ret, retdvwait, 'gs_saving');
	   setTimeout("deadtime()", 200);
	}
	if(eng_set.inArray(_myacc.method) != -1){
	   pascaAutosave(ret, retdvwait, 'eng_saving');
	   setTimeout("deadtime()", 200);
	}
	//callAjax('acchk.php', retdvwait, _myacc);
  } // end inner function handle result
  //--------------------------------------

function startbuildObj(retXML, vresWait) {
 var dv = d.createElement("div");
 var jnsker = d.getElementById("jn_ker");
 var s = d.createElement("select");
 
 dv.setAttribute("style", "width:300px;");
 s.setAttribute("id", "jenis_pekerjaan");
 s.setAttribute("name", "jenis_pekerjaan");
 s.setAttribute("class", "links");
 s.setAttribute("style", "width:265px;float:left;");
 s.setAttribute("onfocus", "cumicumi(this, 'Pekerjaan yang diinginkan', 4)");
 s.setAttribute("onchange", "whatisthis(this)");
 
 var tag_count = retXML.getElementsByTagName('jobcount').item(0);
 var w = retXML.getElementsByTagName('joblist').item(0);
 var nulo = d.createElement("option"); var idxke = 0;
 var nult = d.createTextNode(" -- pilih satu -- "); 
 //nulo.setAttribute("onclick", "whatisthis(this)");
 nulo.setAttribute("value", 0);
 nulo.appendChild(nult);
 for (var x = 0; x < w.childNodes.length; x++) {
   var y = w.childNodes.item(x);
   for (var j = 0; j < y.childNodes.length; j++) {
     var z = y.childNodes.item(j);
	 var tmpdata = z.data.split(":::", 3);
	 retDATA[tmpdata[0]] = new Object();
	 retDATA[tmpdata[0]]["jobname"] = tmpdata[1];
	 retDATA[tmpdata[0]]["jobdesc"] = tmpdata[2];
	 var o = d.createElement("option");
	 o.id = "j_" + tmpdata[0];
	 o.setAttribute("value", tmpdata[0]);
	 //o.setAttribute("onclick", "whatisthis(document.getElementById('bid_pekerjaan'))");
	 if(jnsker && jnsker.value==tmpdata[0]){
	   o.setAttribute("selected", "selected");	   
	 }
	 s.setAttribute("onkeyup", "whatisthis(document.getElementById('bid_pekerjaan'))");
	 var t = d.createTextNode(tmpdata[1]);
	 o.appendChild(t);
	 if(idxke==0){s.appendChild(nulo);}
	 s.appendChild(o); 
	 idxke++;
   }			
 }
 var reciever = d.getElementById(vresWait)
 var sp = d.createElement("span");
 var a = d.createElement("a");
 var spImg = d.createElement("img");
 sp.setAttribute("id", "jobdesc");
 a.setAttribute("id", "tooltiplink");
 a.setAttribute("style", "display:'none'");
 a.setAttribute("class", "tooltip");
 a.href="javascript:void(0);"; 
 sp.setAttribute("style", "float:right; margin-left:10px;");
 spImg.setAttribute("alt", " ? ");
 spImg.setAttribute("border", "0");
 spImg.src = "images/b_help.png";
 a.appendChild(spImg);
 sp.appendChild(a);
 
 dv.appendChild(sp);
 dv.appendChild(s);
 reciever.innerHTML = '';
 reciever.appendChild(dv);
 
 //anu = d.getElementById("tooltiplink");
 //alert(anu.getAttribute("type"));
 //tooltiplink = d.getElementById("tooltiplink");
 //tooltiplink.style.display = "none";
 if(jnsker && jnsker.value!=""){
    whatisthis(d.getElementById('jenis_pekerjaan'));
 } 
 
};

function objCreator(retXML, dvwait) {
 var f = false;
 f = retXML;
 if(f){
   var h = f.getElementsByTagName('data').item(0);
   var c = f.getElementsByTagName('jobcount').item(0).childNodes.item(0).data;
   if (!h) {
      alert('Invalid XML root');
   }
   if (c && c == 0) {
      d.getElementById(dvwait).innerHTML = "<span id=\"retID\">No Data Found</span>";
   }else if (h) {
      startbuildObj(f, dvwait);	  
   }
 } 
};

function pascaAutosave(retXML, dvwait, tag) {
 var xf = false;
 var xf = retXML;
 if(xf){
   var h = xf.getElementsByTagName('data').item(0);
   var c = xf.getElementsByTagName(tag).item(0).childNodes.item(0).data;
   if (!h) {
      alert('Invalid XML root');
   }
   if (c && c == 0) {
      var m = xf.getElementsByTagName('msg').item(0).childNodes.item(0).data;
      d.getElementById(dvwait).innerHTML = "<span id=\"retID\">"+m+"</span>";
   }else if (h) {
      var m = xf.getElementsByTagName('msg').item(0).childNodes.item(0).data;
      d.getElementById(dvwait).innerHTML = "<span id=\"retID\">"+m+"</span>";
   }
   setTimeout("auClose('"+dvwait+"')", (c==0?1500:3500));
 } 
};

function cek_regs_val(retXML, dvwait){
 var f = false; var m;
 f = retXML;
 if(f){
   var h = f.getElementsByTagName('data').item(0);
   var c = f.getElementsByTagName('chk_regs_value').item(0).childNodes.item(0).data;
   if (!h) {
      alert('Invalid XML root');
   }
   if (c && c == 1) {
	  m = f.getElementsByTagName('msg').item(0).childNodes.item(0).data;
	  d.getElementById(dvwait).className = "kofailed";
	  d.getElementById(dvwait).title = "Error";
      d.getElementById(dvwait).innerHTML = "<span>"+m+"</span>";
   }else if (h) {
      m = f.getElementsByTagName('msg').item(0).childNodes.item(0).data;
	  d.getElementById(dvwait).className = "oksuccess";
	  d.getElementById(dvwait).title = "Ok";
      d.getElementById(dvwait).innerHTML = "<span>"+m+"</span>";
	  
   }
 } 
}

function cek_usia(retXML, dvwait){
 var f = false; var m; var alr;
 f = retXML;
 if(f){
   var h = f.getElementsByTagName('data').item(0);
   var c = f.getElementsByTagName('chk_usia').item(0).childNodes.item(0).data;
   if (!h) {
      alert('Invalid XML root');
   }
   if (c && c == 1) {
	  m = f.getElementsByTagName('msg').item(0).childNodes.item(0).data.split(":::", 2); // msg ::: usia	  
	  alr = f.getElementsByTagName('doalert').item(0).childNodes.item(0).data;
	  d.getElementById(dvwait).className = "kofailed";
	  d.getElementById(dvwait).title = "Error: Melampaui Batas usia";
      d.getElementById(dvwait).innerHTML = "<span>"+m[1]+" Thn</span>";
	  if(alr && alr==1) {	   
	   errMsg = m[0].replace(/\(nn\)/g, "\n");	   
	   tset = setTimeout("forcealert()", 1000);	   
	  }
	  
   }else if (h) {
      m = f.getElementsByTagName('msg').item(0).childNodes.item(0).data.split(":::", 2);;
	  d.getElementById(dvwait).className = "oksuccess";
	  d.getElementById(dvwait).title = "Ok";
      d.getElementById(dvwait).innerHTML = "<span>"+m[0]+", "+ m[1] + " Thn"+"</span>";	  
   }
   var tusia = getHiddenObj('t_usia');
   tusia.value=m[1];
 } 
}


function callAjax(url, dvwait, dvcaller, myObj) {
  ai = null;
  ai = new AJAXInteraction(url, fcallback, dvwait, dvcaller, myObj);
  ai.doPost(myObj.param);
}

function getHiddenObj(fldname){
  var inpElm = document.regs.getElementsByTagName('input');
  for(var i=0; i<inpElm.length; i++) {
    if (inpElm[i].getAttribute("type") == "hidden" && inpElm[i].getAttribute("name") == fldname) {
      return inpElm[i];
    }
  }
}

function dump(arr,level) {
 var dumped_text = ""; if(!level){level = 0;}
 //The padding given at the beginning of the line.
 var level_padding = "";
 for(var j=0;j<level+1;j++) level_padding += "    ";
 if(typeof(arr) == 'object') { //Array/Hashes/Objects 
  for(var item in arr) {
   var value = arr[item];		
    if(typeof(value) == 'object') { //If it is an array,
     dumped_text += level_padding + "'" + item + "' ...\n";
     dumped_text += dump(value,level+1);
    } else {
 	dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
    }
   }
 } else { //Stings/Chars/Numbers etc.
 dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
 }
 return dumped_text;
};

function buildQueryString(theFormName, etype) {
	theForm = document.forms[theFormName];
	if(undefined==etype) etype == '';
	var qs = '';
	for (e=0;e<theForm.elements.length;e++) {
	  if (theForm.elements[e].name!='') {
		if(etype=='radio'){		 
		  qs+=(theForm.elements[e].checked ? '&'+theForm.elements[e].name+'='+escape(theForm.elements[e].value) : '');		 
		}else{
		 qs+='&'+theForm.elements[e].name+'='+escape(theForm.elements[e].value)
		}
	  }
	}
	return qs
}


//---------------------
// MAIN Function to 
//---------------------
function get(txacc, dvwait, dvcall, sendvalue) {
  var gs_set = ['gs1', 'gs2', 'gs3', 'gs4', 'gs5', 'gs6', 'gs7', 'gs8', 'gs9'];
  var gs_set_txt = ['gs4', 'gs5', 'gs6'];
  var eng_set = ['eng1', 'eng2', 'eng3'];
  var d_elemen;
  myObj.method = txacc;
  switch(txacc){
    case 'jobfetch':
		myObj.index_status = true;
	break; 
    case 'eppscach':
	break;
    case 'chkuname':  case 'chkemail': case 'chkusia':
		d.getElementById(dvwait).className="";
	break;
	
    default: 
	break;
  }
  myObj.param ='do='+txacc+'_ajax';
  
  if(gs_set.inArray(txacc) != -1){
    d_elemen = (gs_set_txt.inArray(txacc) ? buildQueryString(sendvalue, 'text') : buildQueryString(sendvalue, 'radio') );
	myObj.param='do='+txacc+'_ajax' + d_elemen;
  }
  if(eng_set.inArray(txacc) != -1){
    d_elemen = buildQueryString(sendvalue, 'radio');
	myObj.param='do='+txacc+'_ajax' + d_elemen;
  }
  myObj.param+='&dsv=' + sendvalue;
  
  d.getElementById(dvwait).innerHTML='<span style="background-color:transparent;color:#808080;">&nbsp;<img alt="loading.. " src="images/fbload.gif">&nbsp;&nbsp;<b class="o">Please&nbsp;wait..</b>&nbsp;</span>';
  d.getElementById(dvwait).style.display='';
  if(myObj.param!=''){
	callAjax('ajax_main.php', dvwait, dvcall, myObj);
  }
}
