var sMissingErrMsg = "";
var sInvalidErrMsg = "";


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 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++){
		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 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 fSafeNum(str){
	str = str + "";
	str = replaceAll(str,",","");
	if(isNaN(str) || str==""){
		return 0;
	} else {
		return parseFloat(str);
	}
}

function AddCity()
{
	var e = document.getElementById("Country");
	if(e)
	{
		sURL = "register.asp?action=renderCity&Country="+e.value+"&ref=<%=cDbl(Now())%>";
		populateDropDown("City", sURL);
	}
}

function AddCurrencyValue()
{
	var e = document.getElementById("Currency");
	if(e)
	{
		sURL = "eGift-Certificate.asp?action=renderCurrency&Currency="+e.value+"&ref=<%=cDbl(Now())%>";
		populateDropDown("CurrenctValue", sURL);
	}
}

function CheckCustomValue()
{
	var e = document.getElementById("CustomCurrency");
	if(e)
	{
		sURL = "eGift-Certificate.asp?action=renderCustom&CustomCurrency="+e.value+"&ref=<%=cDbl(Now())%>";
		populateTextBox("CustomAmount", sURL);
	}
}

var gsTextBoxID = ""
function populateTextBox(sTextBoxID, sURL)
{
	gsTextBoxID=sTextBoxID;
	var e = document.getElementById(sTextBoxID)
	if (e)
	{
		xmlhttp=GetXmlHttpObject();
		if (xmlhttp==null)
		{
			alert("Your browser does not support XMLHTTP");
			return;
		}
		xmlhttp.onreadystatechange=fillTextBox;
		xmlhttp.open("GET",sURL,true);
		xmlhttp.send(null);
	}
}

function fillTextBox()
{
	if (xmlhttp.readyState==4)
	{
		var e = document.getElementById(gsTextBoxID)
		if (e)
		{
			e.length = 0;
			sResponseText=xmlhttp.responseText;
			e.value=sResponseText;
			document.getElementById('MinimumValue').value=sResponseText;
		}
	}
}

var gsDropDownID = ""
function populateDropDown(sDropDownID, sURL)
{
	gsDropDownID = sDropDownID;
	var e = document.getElementById(sDropDownID)
	if(e)
	{
		xmlhttp=GetXmlHttpObject();
		if (xmlhttp==null)
		{
		  alert ("Your browser does not support XMLHTTP!");
		  return;
		}
		xmlhttp.onreadystatechange=stateChanged;
		xmlhttp.open("GET",sURL,true);
		xmlhttp.send(null);
	}		
}

function stateChanged()
{
	if (xmlhttp.readyState==4)
	{
	   var e = document.getElementById(gsDropDownID)
	   if(e)
	   {
		   e.length = 0;
		   if (e=="City")
		   {
			   e.add(new Option('Select City',''));
		   }
		   sResponseText = xmlhttp.responseText;
		   
		   sResponseTextArr = sResponseText.split("~");
		   for(n=0;n<sResponseTextArr.length;n++)
		   {
			   sResponseTextArr2 = sResponseTextArr[n].split("==");
			   try
			   {
				   e.add(new Option(sResponseTextArr2[0], sResponseTextArr2[1]), null);
			   }
			   catch(ex)
			   {
				   e.add(new Option(sResponseTextArr2[0], sResponseTextArr2[1]));
			   }
		   }
		}			  
	}
}

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 CheckDisplay(SourceID, TargetID)
{
	if (document.getElementById(SourceID).value=='Other')
	{
		document.getElementById(TargetID).style.display='';
	} else {
		document.getElementById(TargetID).style.display='none';
	}
}

function RefreshImage(valImageId) {
	var objImage = document.images[valImageId];
	if (objImage == undefined) {
		return;
	}
	var now = new Date();
	objImage.src = objImage.src.split('?')[0] + '?x=' + now.toUTCString();
}

function CheckCurrenyValue()
{
	if (document.eGift.Amount[0].checked)
	{
		document.getElementById('Currency').disabled=false;
		document.getElementById('CurrenctValue').disabled=false;
		document.getElementById('CustomCurrency').disabled=true;
		document.getElementById('CustomAmount').disabled=true;
		
	} else if (document.eGift.Amount[1].checked) {
		document.getElementById('Currency').disabled=true;
		document.getElementById('CurrenctValue').disabled=true;
		document.getElementById('CustomCurrency').disabled=false;
		document.getElementById('CustomAmount').disabled=false;
		
	}		
}

function CheckPage(eGift)
{
	validatePage(eGift);
	
	if (document.getElementById('CustomAmount').value < document.getElementById('MinimumValue').value)
	{
		alert("Your minimum value is " + document.getElementById('MinimumValue').value);
		document.getElementById('CustomAmount').focus();
		return false;
	}
	
	if (!document.getElementById('Terms').checked)
	{
		alert("Please agree with Terms & Conditions");
		return false;
	}
}

function CheckeGift()
{
	if (document.FinalBag.PaymentOption[0].checked)
	{
		document.getElementById('eGift').style.display='none';
	} else if (document.FinalBag.PaymentOption[1].checked) {
		document.getElementById('eGift').style.display='';
	}
}

function CheckPageForm(FinalBag)
{
	if (document.FinalBag.PaymentOption[1].checked)
	{
		return validatePage(FinalBag);
	}
}

function selectGateway(sGateway) {
    document.getElementById(sGateway).checked = true;
    if(sGateway == 'Gateway_Paypal') {
        document.getElementById('form10').action = 'https://www.paypal.com/cgi-bin/webscr';
        document.getElementById('PayPalFields').style.display = '';
        document.getElementById('ccAvenueFields').style.display = 'none';
    } else if(sGateway == 'Gateway_CCAvenue') {
        document.getElementById('form10').action = 'https://www.ccavenue.com/shopzone/cc_details.jsp';
        document.getElementById('ccAvenueFields').style.display = '';
        document.getElementById('PayPalFields').style.display = 'none';    
    }
}

