var sMissingErrMsg = "";
var sInvalidErrMsg = "";
var gsPopulateDropDown = "";
function check_user_avability(url, user_name, div_id, bCheckSpecial){
    if(exists_special_character(user_name) || !bCheckSpecial){
        SendAjaxRequestByURL(url, div_id);
    }else{
        document.getElementById(div_id).innerHTML = "<span class='validate_error'>Special characters and spaces are not allowed in username.</span>";
    }
}
function exists_special_character(user_name){
   var iChars = "!@#$%^&*()+=-[]\\\';,./{}|\":<>?~_ ";
   for (var i = 0; i < user_name.length; i++) {
  	 if (iChars.indexOf(user_name.charAt(i)) != -1) {
        return false;
  	 }
  }
  return true;
}

function removeRow(sIDPrefix, nRow, sFields){
    var e = document.getElementById(sIDPrefix + "_" + nRow);
    if(e){
        sFieldsArr = sFields.split(",");
        for(n=0;n<sFieldsArr.length;n++){
            var e2 =  document.getElementById(sFieldsArr[n] + "_" + nRow);
            if(e2){
                e2.value = "";
            }
        }
        e.style.display = "none";
    }
}
function showNextRow(sIDPrefix, nRows){
    for(n=1;n<nRows;n++){
        var e = document.getElementById(sIDPrefix + "_" + n);
        if(e){
            if(e.style.display=="none"){
                e.style.display="";
                break; 
            }
        }
    }
}
function show_tabular_data(sID){
    document.getElementById("top_employers").className = 'featured_bar unselected_tab';
    document.getElementById("top_vacancy").className = 'featured_bar unselected_tab';
    document.getElementById(sID).className = 'featured_bar selected_tab';
}

function populateFields(sURL){
	xmlHTTP=GetXmlHttpObject();
	if (xmlHTTP==null){
	  alert ("Your browser does not support XMLHTTP!");
	  return;
	}
	xmlHTTP.open("GET",sURL,true);
	xmlHTTP.onreadystatechange=updatePopulateFields;
	xmlHTTP.send(null);
}

function updatePopulateFields(){
	if (xmlHTTP.readyState==4){
        var sResponseText = xmlHTTP.responseText;
        sResponseTextArr = sResponseText.split("~~~");
        for(n=0;n<sResponseTextArr.length;n++){
            sResponseTextArr2 = sResponseTextArr[n].split("===");
            if(sResponseTextArr2.length==2){
                if(document.getElementById(sResponseTextArr2[0])){
                    document.getElementById(sResponseTextArr2[0]).value = sResponseTextArr2[1];
                }
            }
        }
    }
}


function populateDropDown(sURL, sListID){
    gsPopulateDropDown = sListID;
	var e = document.getElementById(gsPopulateDropDown);
	if(e){
		e.length = 0;
       try
       {
    	   e.add(new Option("Loading...", ""), null);
       }
       catch(ex)
       {
    	   e.add(new Option("Loading...", ""));
       }
        
		xmlHTTP=GetXmlHttpObject();
		if (xmlHTTP==null){
		  alert ("Your browser does not support XMLHTTP!");
		  return;
		}
		xmlHTTP.open("GET",sURL,true);
		xmlHTTP.onreadystatechange=updatePopulateDropDown;
		xmlHTTP.send(null);
	}
}
function updatePopulateDropDown(){
	if (xmlHTTP.readyState==4){
		var e = document.getElementById(gsPopulateDropDown);
		if(e){
            e.length = 0;
            try
            {
         	   e.add(new Option("Select One", ""), null);
            }
            catch(ex)
            {
         	   e.add(new Option("Select One", ""));
            }
            var sResponseText = xmlHTTP.responseText;
            sResponseTextArr = sResponseText.split("\n");
            for(n=0;n<sResponseTextArr.length;n++)
            {
               sResponseTextArr2 = sResponseTextArr[n].split(":");
               if(sResponseTextArr2.length>1){
                   try
                   {
                	   e.add(new Option(sResponseTextArr2[1], sResponseTextArr2[0]), null);
                   }
                   catch(ex)
                   {
                	   e.add(new Option(sResponseTextArr2[1], sResponseTextArr2[0]));
                   }
               }
            }
            
        }
   }
}
function GetXmlHttpObject(){
	if (window.XMLHttpRequest){
	  // code for IE7+, Firefox, Chrome, Opera, Safari
	  return new XMLHttpRequest();
	}
	if (window.ActiveXObject){
	  // code for IE6, IE5
	  return new ActiveXObject("Microsoft.XMLHTTP");
	}
	return null;
}

function validatePage(objForm){
	sMissingErrMsg = "";
	sInvalidErrMsg = "";
	var sErrMsg = ""
	bSetFocus = false;
	validateElements(objForm,"input");
	validateElements(objForm,"select");
	validateElements(objForm,"textarea");
	if(sMissingErrMsg!=""){
		sErrMsg = sErrMsg + "Following information(s) is missing: \n" + sMissingErrMsg;
	}
	if(sInvalidErrMsg!=""){
		sErrMsg = sErrMsg + "Following information(s) is invalid: \n" + sInvalidErrMsg;
	}
	if(sErrMsg!==""){
		sErrMsg = replaceAll(sErrMsg, "_", " ")
		alert(sErrMsg);
		return false;
	}
	return true;
}


function replaceAll(sMainStr, sReplaceWhat, sReplaceWith){
	while(sMainStr.indexOf(sReplaceWhat)>-1){
		sMainStr = sMainStr.replace(sReplaceWhat,sReplaceWith);
	}
	return sMainStr;
}

function validateElements(objForm,sElementName){	
	var arrElements = objForm.getElementsByTagName(sElementName);
	for(n=0;n<arrElements.length;n++){
        alert(arrElements[n].name);
		if(arrElements[n].className.indexOf("required")>-1 && arrElements[n].value==""){
			sMissingErrMsg = sMissingErrMsg + "      " + arrElements[n].name +"\n";
			arrElements[n].className = arrElements[n].className + " invalidInput";
			attachInputEvents(arrElements[n]);
		}
		if(arrElements[n].className.indexOf("Num")>-1 && arrElements[n].value!="" && fSafeNum(arrElements[n].value)==0 && isNaN(arrElements[n].value)){
			sInvalidErrMsg = sInvalidErrMsg + "      " + arrElements[n].name +"\n";
			arrElements[n].className = arrElements[n].className + " invalidInput";
			attachInputEvents(arrElements[n]);
		}
		if(arrElements[n].className.indexOf("Email")>-1 && arrElements[n].value!="" && (arrElements[n].value.indexOf("@")==-1 ||arrElements[n].value.indexOf(".")==-1)){
			sInvalidErrMsg = sInvalidErrMsg + "      " + arrElements[n].name +"\n";
			arrElements[n].className = arrElements[n].className + " invalidInput";
			attachInputEvents(arrElements[n]);
		}
		if(arrElements[n].className.indexOf("MobilePhone")>-1 && arrElements[n].value!=""){
			var sPhoneNumber = arrElements[n].value;
			sPhoneNumber = replaceAll(sPhoneNumber , ",", "")
			sPhoneNumber = replaceAll(sPhoneNumber , "+", "")
			sPhoneNumber = replaceAll(sPhoneNumber , " ", "")
			sPhoneNumber = replaceAll(sPhoneNumber , "(", "")
			sPhoneNumber = replaceAll(sPhoneNumber , ")", "")
			sPhoneNumber = replaceAll(sPhoneNumber , "-", "")
			if(isNaN(sPhoneNumber) || sPhoneNumber.length<10){
				sInvalidErrMsg = sInvalidErrMsg + "      " + arrElements[n].name +"\n";
				arrElements[n].className = arrElements[n].className + " invalidInput";
				attachInputEvents(arrElements[n]);
			}
		}
		if(arrElements[n].className.indexOf("HomePhone")>-1 && arrElements[n].value!=""){
			var sPhoneNumber = arrElements[n].value;
			sPhoneNumber = replaceAll(sPhoneNumber , ",", "")
			sPhoneNumber = replaceAll(sPhoneNumber , "+", "")
			sPhoneNumber = replaceAll(sPhoneNumber , " ", "")
			sPhoneNumber = replaceAll(sPhoneNumber , "(", "")
			sPhoneNumber = replaceAll(sPhoneNumber , ")", "")
			sPhoneNumber = replaceAll(sPhoneNumber , "-", "")
			if(isNaN(sPhoneNumber) || sPhoneNumber.length<6){
				sInvalidErrMsg = sInvalidErrMsg + "      " + arrElements[n].name +"\n";
				arrElements[n].className = arrElements[n].className + " invalidInput";
				attachInputEvents(arrElements[n]);
			}
		}
		if((sMissingErrMsg!="" || sInvalidErrMsg!="") && !bSetFocus){
			arrElements[n].focus();
			bSetFocus = true;
		}
		
	}
}
function fSafeNum(str){
	str = str + "";
	str = replaceAll(str,",","");
	if(isNaN(str) || str==""){
		return 0;
	} else {
		return parseFloat(str);
	}
}
function attachInputEvents(objForm){
	attachInputEventsElements(objForm,"input");
	attachInputEventsElements(objForm,"select");
	attachInputEventsElements(objForm,"textarea");
}
function validInput(evt){
	sElement = evt["srcElement"]["obj"];
	if(sElement){
		if(sElement.value!=""){
			sElement.className = sElement.className.replace("invalidInput","");
		}
	}
}
function attachInputEventsElements(objForm,sTagNames){
	var arrElements = objForm.getElementsByTagName(sTagNames);
	for(n=0;n<arrElements.length;n++){
		if(arrElements[n].attachEvent){
			if(sTagNames=="select"){
				arrElements[n].attachEvent("onchange",validInput);
			}else{
    			arrElements[n].attachEvent("onkeyup",validInput);
    			arrElements[n].obj = arrElements[n];
            }
		}else{
			if(sTagNames=="select"){
				arrElements[n].addEventListener("onchange",function (){
					if(this.value!=""){
						this.className = this.className.replace("invalidInput","");
					}
				},false);
			}else{
    			arrElements[n].addEventListener("keyup",function (){
    				if(this.value!=""){
    					this.className = this.className.replace("invalidInput","");
    				}
    			},false);
            }
		}
	}
}
function toggleCheckAll(sID, bChecked){
    var f = document.getElementById("checkbox_select_num");
    if(f){
        if(f.value>0){
            nInex = f.value; 
        }else{
            nInex = 999999; 
        }
    }else{
        nInex = 999999; 
    }
    if(!bChecked){
        nInex = 999999;
    }
    for(n=0;n<nInex;n++){
        var e = document.getElementById(sID+"_"+n);
        if(e){
            e.checked = bChecked;
        }else{
            break;
        }
    }
}
function getFormElements(objForm)
{
	var sAjaxParams1 = getElementsVals(objForm,"input");
	var sAjaxParams2 = getElementsVals(objForm,"select");
	var sAjaxParams3 = getElementsVals(objForm,"textarea");
	var retParams = sAjaxParams1 + sAjaxParams2 + sAjaxParams3;
	retParams = replaceAll(retParams,"&&","&"); 
	if(retParams.indexOf("&")==0){
		retParams = retParams.substring(1);
	}
	if(retParams.indexOf("&")==retParams.length){
		retParams = retParams.substring(0,retParams.length-1);
	}
	return retParams;
}
var gsDivID="";

function getElementsVals(objForm,sTagNames)
{
	var sAjaxParams = ""
	var arrElements = objForm.getElementsByTagName(sTagNames);
	for(n=0;n<arrElements.length;n++){
		if(sTagNames=="select"){
			for(i=0;i<arrElements[n].length;i++){
				if(arrElements[n].options[i].selected){
					sAjaxParams = sAjaxParams + "&" + arrElements[n].name + "=" + escape(arrElements[n].options[i].value);	
				}
			}
		}
		else if(arrElements[n].type=="checkbox"){
			if(arrElements[n].checked){
				sAjaxParams = sAjaxParams + "&" + arrElements[n].name + "=" + escape(arrElements[n].value);
			}
		}
		else if(arrElements[n].type=="radio"){
			if(arrElements[n].checked){
				sAjaxParams = sAjaxParams + "&" + arrElements[n].name + "=" + escape(arrElements[n].value);
			}		
		}
		else{
			sAjaxParams = sAjaxParams + "&" + arrElements[n].name + "=" + escape(arrElements[n].value);
		}
	}
	return sAjaxParams;
}
function SendAjaxRequest(sRequestFile, objForm, sDivID)
{
	var sURL = sRequestFile
	sParams = getFormElements(objForm);
	sParams  = sParams + "&ref="+Math.floor(Math.random()*10001)
	sURL = sURL + "?" + sParams;
	SendAjaxRequestByURL(sURL, sDivID)
}
function SendAjaxRequestByURL(sURL, sDivID)
{
	gsDivID = sDivID;
	var e = document.getElementById(gsDivID);
	if(e){
		e.style.display='';
		e.innerHTML = "<br/><br/><center><img src=\"../imgs/loading.gif\" border=\"0\"></center>";
		xmlHTTP=GetXmlHttpObject();
		if (xmlHTTP==null){
		  alert ("Your browser does not support XMLHTTP!");
		  return;
		}
        sParams = "";
		nPOS = sURL.indexOf("?");
		if(nPOS>-1){
			sParams = sURL.substring(nPOS+1);
			sURL = sURL.substring(0,nPOS);
		}
		xmlHTTP.open("POST",sURL,true);
		xmlHTTP.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlHTTP.setRequestHeader("Content-length", sParams.length);
		xmlHTTP.setRequestHeader("Connection", "close");
		xmlHTTP.onreadystatechange=UpdateAjaxRequest;
		xmlHTTP.send(sParams);
	}
}
function UpdateAjaxRequest()
{
	if (xmlHTTP.readyState==4){
		var e = document.getElementById(gsDivID);
		if(e){
			var sResponseText = xmlHTTP.responseText;
			e.innerHTML =  sResponseText;
			nRedirectPOS = sResponseText.indexOf("<!--Redirect:")
			if(nRedirectPOS>-1){
				sResponseText = sResponseText.substring(nRedirectPOS)
				sResponseText = sResponseText.replace("<!--Redirect:","");
				sResponseText = sResponseText.replace("-->","");
				window.location.href = sResponseText;
			}
		}
	}
}

function change_form(source_div, destination_div){
    document.getElementById(source_div).style.display = 'none'; 
    document.getElementById(destination_div).style.display = '';
}