var error = false;

function validateForm()
{
	error = false;
	form = document.forms['GiftForm']
	if (form.elements["shipTo"][0].checked == true)
	{
	shipTo = "purchaser"
	}
	else
	{
	shipTo = "recipient"
	}
	for (var i=0; i<form.elements.length; i++)
	{
		if (form.elements[i].className == "validate") 
		{
			if (form.elements[i].value =="")
			{
				document.getElementById(form.elements[i].id+"Error").innerHTML = "The above field is required."
				error = true
			}
			else
			{
				document.getElementById(form.elements[i].id+"Error").innerHTML = "";
			}
		}
		if (form.elements[i].className == "validateRecipient")
		{
			if (shipTo=="recipient" && form.elements[i].value =="" ) 
			{
				document.getElementById(form.elements[i].id+"Error").innerHTML = "The above field is required."
				error = true
			}
			else
			{
				document.getElementById(form.elements[i].id+"Error").innerHTML = "";
			}
		}
		
	}
	if (form.elements["purchaserEmail"].value =="")
	{
	document.getElementById("purchaserEmailError").innerHTML = "The above field is required."
	error = true
	}
	else
	{
		var emailpat = /^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9])+(\.[a-zA-Z0-9_-]+)+$/;
		if( !emailpat.test(form.elements["purchaserEmail"].value) )
		{
		document.getElementById("purchaserEmailError").innerHTML = "Please enter a valid email address"
		error = true
		}
		else
		{
		document.getElementById("purchaserEmailError").innerHTML = "";
		}
	}
	if (form.elements["purchaserEmail"].value != form.elements["purchaserEmail2"].value)
	{
		document.getElementById("purchaserEmail2Error").innerHTML = "The second email must match the first"
		error = true
	}
	else
	{
		document.getElementById("purchaserEmail2Error").innerHTML = "";
	}
	
	var d = new Date();
	if (form.elements["expirationYear"].value < d.getFullYear() || (form.elements["expirationYear"].value == d.getFullYear() && form.elements["expirationMonth"].value < d.getMonth()))
	{
		document.getElementById("cardExpiryError").innerHTML = "Please enter a valid expiry date"
		error = true
	}
	else
	{
		document.getElementById("cardExpiryError").innerHTML = "";
	}
	if (cardval(form.elements["cardNumber"].value) == false)
	{
		document.getElementById("cardNumberError").innerHTML = "Please enter a valid card number"
		error = true
	}
	else
	{
		document.getElementById("cardNumberError").innerHTML = "";
	}
	
	if (form.elements["readTerms"].checked == false)
	{
		document.getElementById("readTermsError").innerHTML = "Please read the Terms and Conditions and check the box."
		error = true
	}
	else
	{
		document.getElementById("readTermsError").innerHTML = "";
	}
	
	if (error == true)
	{
	return false;
	}
	
}

function cardval(s) {
// remove non-numerics
var v = "0123456789";
var w = "";
for (i=0; i < s.length; i++) {
x = s.charAt(i);
if (v.indexOf(x,0) != -1)
w += x;
}
// validate number
j = w.length / 2;
if (j < 6.5 || j > 8 || j == 7) return false;
k = Math.floor(j);
m = Math.ceil(j) - k;
c = 0;
for (i=0; i<k; i++) {
a = w.charAt(i*2+m) * 2;
c += a > 9 ? Math.floor(a/10 + a%10) : a;
}
for (i=0; i<k+m; i++) c += w.charAt(i*2+1-m) * 1;
return (c%10 == 0);
}


function changeState($where)
{
	stateSelect = document.getElementById($where+"State")
	countrySelect = document.getElementById($where+"Country")
	if (stateSelect.options[stateSelect.selectedIndex].className == "canada")
	{
		countrySelect.selectedIndex = 1
	}
	else if (stateSelect.options[stateSelect.selectedIndex].className == "none")
	{
		countrySelect.selectedIndex = 0
	}
	else 
	{
		countrySelect.selectedIndex = 2
	}
}

function changeCountry($where)
{
	stateSelect = document.getElementById($where+"State")
	countrySelect = document.getElementById($where+"Country")
	if (countrySelect.value != "Canada" && countrySelect.value != "United States")
	{
		stateSelect.selectedIndex = 1
	}
}

function calcPrice(shipping)
{		
		tmp = (parseInt(document.getElementById("amount50").value) * 50)
		tmp = tmp + (parseInt(document.getElementById("amount100").value) * 100)
		if (shipping == "courier")
		{
			tmp = tmp + 15;
		}
		document.getElementById("totalCostText").value = tmp;
}