function GetXmlHttpObject() {	
	var xmlHttp=null;	
	try {	xmlHttp=new XMLHttpRequest(); 	} catch (e) {	
	try {	
	xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");	
	} catch (e) {	
	xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");	
	} }	
	return xmlHttp;	
}	
	
function CheckForm(onload){

	var Submit = true;
	var aa = "";
	var Allfields = new Array();	
		Allfields = ["err_AcctName", "err_Contact", "err_Email", "err_MSISDN", "err_Password", "err_cfPassword", "err_AccountPlans", "err_Agree", "err_Cardname", "err_CardNumber", "err_CVS", "err_ZIPCode", "err_PromoCode"]; 	

	var ArrLen = 12;
	
	try {
		if (document.getElementById('pay').style.display == "none") { 	var ArrLen = 6; 	}
	} catch(err) { }
	
	try {		for (i = 0; i < Allfields.length; i++){  document.getElementById(Allfields[i]).innerHTML = ""; } 		} catch(err) { }	
	try {		for (i = 0; i < ArrLen; i++){ 	if (document.getElementById(String(Allfields[i]).substring(4)).value == "") { document.getElementById(Allfields[i]).innerHTML = err_required; Submit = false; } }	 	} catch(err) { }
	
	if (document.getElementById("Password").value.length < 4) { 	
		document.getElementById("err_Password").innerHTML = err_4char; 	
		document.getElementById("err_cfPassword").innerHTML = "";	
		Submit = false; 
	}	
	if (document.getElementById("Password").value != document.getElementById("cfPassword").value) { 	
		document.getElementById("err_cfPassword").innerHTML = err_different;	
		Submit = false;
	}	
	
	if (document.getElementById("Agree").checked == false) { 	
		document.getElementById("err_Agree").innerHTML = err_required;	
		Submit = false;

	}
	
	
	if (document.getElementById("Email").value != ""){	
		if(!String(document.getElementById("Email").value).match(/^([0-9a-zA-Z]|[-]|[.]|[_])+[@]([0-9a-zA-Z]|[-]|[_]|[.])+[.]([0-9a-zA-Z])+$/)) { document.getElementById("err_Email").innerHTML = err_email; Submit = false; }	
	}	
	if (document.getElementById("AccountPlans").value == "-1") { document.getElementById("err_AccountPlans").innerHTML = err_plan; Submit = false; }	
			
	var fromfield = document.getElementById("MSISDN");  
		mobilelength = String(fromfield.value).substring(0,2) == "07" ? 11 : 10;
		if (fromfield.value.length != mobilelength) {
			document.getElementById("err_MSISDN").innerHTML = err_mobile;	
			Submit = false;
		}
	
	if (!UsernameOK) { Submit = false; document.getElementById("err_Email").innerHTML = err_inuse; }
	
	 if (Submit) {	
	
		// good to go
		document.Frm2.submit();
	}		
	return false;		
 }	


function CheckUsername() {
	xmlHttp=GetXmlHttpObject();	
			if (xmlHttp==null) { alert ("Your browser does not support AJAX! Please use IE 6, IE 7 or Firefox"); return false;	
		} else { 
		UsernameOK = false;
		var URL = "validate.asp?Email="+document.getElementById('Email').value;
			xmlHttp.onreadystatechange=stateChanged;	
			xmlHttp.open("GET",URL,true);	
			xmlHttp.send(null);	
		}
}

function stateChanged(){
	if (xmlHttp.readyState==4)	{

		if (String(xmlHttp.responseText) == "|UserInUse|") {
			document.getElementById("err_Email").innerHTML = err_inuse;
			 UsernameOK = false;
		} else {
			document.getElementById("err_Email").innerHTML = "";
			 UsernameOK = true;
		}
	
	}
}	
	
function IsNumericField(chkfield){
	
	var fromfield = String(document.getElementById(chkfield).value);
	
	mobilelength = fromfield.substring(0,2) != "07" ? 10 : 11;

	if (isNumeric(fromfield)) {
		if(fromfield.length > mobilelength) {
          document.getElementById(chkfield).value = document.getElementById(chkfield).value.substring(0, mobilelength);
		  document.getElementById(chkfield).focus();
 		} 
	} else {
		document.getElementById(chkfield).value = document.getElementById(chkfield).value.substring(0, String(document.getElementById(chkfield).value).length-1);
		document.getElementById(chkfield).focus();
	}


}


function allNumeric(chkfield){

	var fromfield = String(document.getElementById(chkfield).value);
	if (!isNumeric(fromfield)) {
		document.getElementById(chkfield).value = document.getElementById(chkfield).value.substring(0, String(document.getElementById(chkfield).value).length-1);
		document.getElementById(chkfield).focus();
	}


}

function isNumeric(inputStr){
	for (var i = 0; i < inputStr.length; i++) {
		var oneChar = inputStr.charAt(i)
		if (oneChar < "0" || oneChar > "9") { return false }
	}
	return true
}


function ChangePlan(){
	var amount = String(document.getElementById("AccountPlans").value).split(":");

	document.getElementById("PromoCode").value = "";
	document.getElementById('err_PromoCode').innerHTML = "";
	
	if (String(document.getElementById("AccountPlans").value) == "-1") {
		document.getElementById("Month").innerHTML = "";
		document.getElementById("Initial").innerHTML = "";
	} else {
		document.getElementById("Month").innerHTML = currency+parseFloat(amount[2]).toFixed(2);
		document.getElementById("Initial").innerHTML = currency+parseFloat(amount[1]).toFixed(2);
	}
	
	try {
		if (parseFloat(amount[1]) == 0) {
			document.getElementById('pay').style.display = "none";
		} else {
			document.getElementById('pay').style.display = "";
		}
	} catch (err) { 
		document.getElementById('pay').style.display = "";
	}
}

function CheckPromo() {
		
		if (String(document.getElementById('PromoCode').value).length < 1) {
			document.getElementById('err_PromoCode').innerHTML = "";
			document.getElementById('pay').style.display = "";
			ChangePlan()
			return
		}
		
		xmlHttp=GetXmlHttpObject();	
		
		document.getElementById('err_PromoCode').innerHTML = "Checking...";	
		
		
		if (xmlHttp==null) { alert ("Your browser does not support AJAX! Please use IE 6, IE 7 or Firefox"); return false;	
		} else {
			var URL = "updateprice.asp?Email="+document.getElementById('Email').value+"&Promocode="+document.getElementById('PromoCode').value+"&PlanID="+String(document.getElementById('AccountPlans').value).substring(0 , String(document.getElementById('AccountPlans').value).indexOf(":"));
				xmlHttp.onreadystatechange=UpdatePrice2;	
				xmlHttp.open("GET",URL,true);	
				xmlHttp.send(null);
					
		}
}

function UpdatePrice2() {

	if (xmlHttp.readyState==4)	{
	var ResponseText = String(xmlHttp.responseText);

		if (ResponseText == "|Invalid|") {
			document.getElementById('err_PromoCode').innerHTML = "Invalid";
		} else if (ResponseText == "|Expired|") {
			document.getElementById('err_PromoCode').innerHTML = "Expired";
		} else if (ResponseText == "|Used|") {
			document.getElementById('err_PromoCode').innerHTML = "Used";
		} else  {
			
			if (ResponseText.substring(0,1) == "A") {
						// add plan to the menu
						var passedValues = ResponseText.split("#");
						
						// add an option to the drop down
						var option = new Option(passedValues[2], passedValues[1]);
						document.getElementById("AccountPlans").options[document.getElementById("AccountPlans").options.length] = option;
						
						// select the option
						document.getElementById('AccountPlans').value = passedValues[1];
						
						// refresh drop down function
						ChangePlan();
									
			} else {
						/* --------- discount amounts ------------------*/
						var NetAmounts = ResponseText.split(":");
							document.getElementById("Initial").innerHTML = currency+parseFloat(parseFloat(NetAmounts[0])*(1+parseFloat(TaxRate))).toFixed(2);
							document.getElementById("Month").innerHTML = currency+parseFloat(parseFloat(NetAmounts[1])*(1+parseFloat(TaxRate))).toFixed(2);
			

			}
			
			
			document.getElementById('err_PromoCode').innerHTML = "";
			
		}
	}
	
}