var sMissingErrMsg = "";
var sInvalidErrMsg = "";
function matchValues(objFirst, objSecond)
{
	var e = document.getElementById(objFirst);
	var f = document.getElementById(objSecond);
	if(e && f){
		if(e.value!=f.value){
			alert("Password do not match");
			return false;
		}
	}
	return true;
}


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){
			arrElements[n].attachEvent("onkeyup",validInput);
			arrElements[n].obj = arrElements[n];
		}else{
			arrElements[n].addEventListener("keyup",function (){
				if(this.value!=""){
					this.className = this.className.replace("invalidInput","");
				}
			},false);
		}
	}
}
function showCustomDialogBox(sDivID, sInnerText){
	var b = document.getElementById("bgTransparent")
	if(b){
		b.style.top=0;
		b.style.left=0;
		b.style.width = document.body.offsetWidth-25;
		b.style.height = (document.body.scrollHeight-document.body.offsetHeight) + document.body.offsetHeight-10+"px";
		b.style.display='';
		b.style.zIndex=10000;
	}
	var e = document.getElementById(sDivID);
	if(e){
		e.innerHTML = sInnerText;
		e.style.zIndex=10001;
		e.style.display='block';
		e.style.left = (document.body.offsetWidth/2)-e.clientWidth/2;
		e.style.top = (document.body.scrollHeight)-(document.body.clientHeight/2)-((e.clientHeight/2));
	}
}
function validatePage(objForm)
{
	sMissingErrMsg = "";
	sInvalidErrMsg = "";
	var sErrMsg = ""
	validateElements(objForm,"input");
	validateElements(objForm,"select");
	validateElements(objForm,"textarea");
	if(sMissingErrMsg!=""){
		sErrMsg = sErrMsg + "<b>Following information(s) is missing:</b> \n" + sMissingErrMsg;
	}
	if(sInvalidErrMsg!=""){
		sErrMsg = sErrMsg + "<b>Following information(s) is invalid:</b> \n" + sInvalidErrMsg;
	}
	if(sErrMsg!=""){
		sErrMsg = replaceAll(sErrMsg, "_", " ")
		sErrMsg = replaceAll(sErrMsg, "\n", "<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;")
		var sResponse = "<table width=\"350\" align=\"center\" cellpadding=\"5\" cellspacing=\"0\" class=\"normal-text\" style=\"border-top:2px solid #AAAAAA;border-right:2px solid #AAAAAA;border-left:1px solid #000000;border-bottom:1px solid #000000\" bgcolor=\"#BD301F\">\n";
			sResponse = sResponse + "<tr bgcolor=\"#AA3300\" height=\"20\">\n";
				sResponse = sResponse + "<td><font color=\"#FFFFFF\"><font size=\"2\"><b>Validation Failed</b></font></td>\n";
			sResponse = sResponse + "</tr>\n";
			sResponse = sResponse + "<tr height=\"50\">\n";
				sResponse = sResponse + "<td id=\"boxContent\">\n";
					sResponse = sResponse + "<font size=\"2\" color=\"white\">" + sErrMsg + "\n";
				sResponse = sResponse + "</td>\n";
			sResponse = sResponse + "</tr>\n";
			sResponse = sResponse + "<tr height=\"40\" valign=\"top\">\n";
				sResponse = sResponse + "<td align=\"center\">\n";
					sResponse = sResponse + "<input type=\"button\" value=\"     OK     \" onclick=\"document.getElementById('confirmationBox').style.display='none';document.getElementById('bgTransparent').style.display='none'\">\n";
				sResponse = sResponse + "</td>\n";
			sResponse = sResponse + "</tr>\n";
		sResponse = sResponse + "</table>\n";
		
		
		showCustomDialogBox("confirmationBox", sResponse)
		//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++){

		sValue = arrElements[n].value.replace("Mobile No.","");
		sValue = sValue.replace("Tel No.","");
	
		if(arrElements[n].className.indexOf("required")>-1 && sValue==""){
			sMissingErrMsg = sMissingErrMsg + "      " + arrElements[n].name +"\n";
			arrElements[n].className = arrElements[n].className + " invalidInput";
			attachInputEvents(arrElements[n]);
		}
		if(arrElements[n].className.indexOf("Num")>-1 && sValue!="" && isNaN(sValue)){
			sInvalidErrMsg = sInvalidErrMsg + "      " + arrElements[n].name +"\n";
			arrElements[n].className = arrElements[n].className + " invalidInput";
			attachInputEvents(arrElements[n]);
		}
		if(arrElements[n].className.indexOf("Email")>-1 && sValue!="" && (sValue.indexOf("@")==-1 ||sValue.indexOf(".")==-1)){
			sInvalidErrMsg = sInvalidErrMsg + "      " + arrElements[n].name +"\n";
			arrElements[n].className = arrElements[n].className + " invalidInput";
			attachInputEvents(arrElements[n]);
		}
		if(arrElements[n].className.indexOf("STDCode")>-1 && sValue!=""){
			if(sValue.length>5){
				sInvalidErrMsg = sInvalidErrMsg + "      " + arrElements[n].name +"\n";
				arrElements[n].className = arrElements[n].className + " invalidInput";
			}
		}
		if(arrElements[n].className.indexOf("MobilePhone")>-1 && sValue!=""){
			var sPhoneNumber = arrElements[n].value;
			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 && sValue!=""){
			var sPhoneNumber = arrElements[n].value;
			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]);
			}
		}
		
	}
}
function attachInputEvents(sObj)
{
	if(sObj.attachEvent){
		sObj.attachEvent("onkeyup",validInput);
		sObj.obj = sObj;
	}else{
		sObj.addEventListener("keyup",function (){
			if(this.value!=""){
				this.className = this.className.replace("invalidInput","");
			}
		},false);
	}
}

function SendAjaxRequestByURL(sURL, sDivID)
{
	gsDivID = sDivID;
	var e = document.getElementById(gsDivID);
	if(e){
		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;
		}
		xmlHTTP.onreadystatechange=UpdateAjaxRequest;
		xmlHTTP.open("GET",sURL,true);
		xmlHTTP.send(null);
	}
}
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;
			}
			nFillPOS = sResponseText.indexOf("<!--Fill:")
			if(nFillPOS>-1){
				sResponseText = sResponseText.substring(nFillPOS)
				sResponseText = sResponseText.replace("<!--Fill:","");
				sResponseText = sResponseText.replace("-->","");
				sResponseTextArr = sResponseText.split("~~");
				document.getElementById(sResponseTextArr[2]).value = sResponseTextArr[0];
				document.getElementById(sResponseTextArr[3]).value = sResponseTextArr[1];
				hs.close();
			}
		}
	}
}
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;
}
