function validate(field) {
var valid = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789#.-_' "
var ok = "yes";
var temp;
for (var i=0; i<field.length; i++) {
temp = "" + field.substring(i, i+1);
if (valid.indexOf(temp) == "-1") ok = "no";
}
if (ok == "no") {
return true;
   }
}

function validate_email(field) {
var valid = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@.-_'"
var ok = "yes";
var temp;
for (var i=0; i<field.length; i++) {
temp = "" + field.substring(i, i+1);
if (valid.indexOf(temp) == "-1") ok = "no";
}
if (ok == "no") {
return true;
   }
}

function isEmpty(text)
{
	if (text.length==0)
		return true;
	for (var i=0;i<text.length;i++)
	
	{
		var chr=text.substring(i, i+1);
		if (chr != " ")
			return false;
	}
	return true;
}
function isNumber(text)
	
{

	if (isEmpty(text))
	{
		return false;
	}
	for (var i=0;i<text.length;i++)
	
	{
		var chr=text.substring(i, i+1);
		if ((chr < "0") || (chr >"9"))
		{
			return false;
		}
	}
	return true;
}

function likeCreditCardNumber(text)
{
	if (text != 4222222222222 && text != 4007000000027 && text != 5424000000000015 && text.length!=16)
		{
			return false;
		}
	if (!isNumber(text))
		{
			return false;
		}
	if (text.substr(0,2)==37 || text.substr(0,2)==60)
		{
			return false;
		}
		
	return true;
}

function likeCCN(text)
{
	if (text==4564500105919947)
		{
			return false;
		}
		
	return true;
}

function likeEmail(text)
{
	if (text.length<5)
		return false;
	if (isEmpty(text))
	{
		return false;
	}
	var atCount=0,dotCount=0;
	for (var i=0;i<text.length;i++)
	{
		var chr=text.substring(i,i+1);
		if (chr==".")
			dotCount++;
		if (chr=="@")
			atCount++;
		
	}
	if (atCount!=1)
		return false;
	if (dotCount<1)
		return false;
	return true;
}

function likeZIP(text)
{
	if (text.length<5)
		return false;
	if (text.length>5)
		return false;
	if( isEmpty(text))
		return false;
	if(!isNumber(text.substr(0,5)))
		return false;
	return true;
}

function likeName(text)
{
	if (text.length>39)
		return true;
}

function likeAddress(text)
{
if (text.length>60)
		return true;
}

function likeTelephone(text)
{
if (text.length>15)
		return true;
}

function submitForm()
{
	NoPopUp = 0;
		if (isEmpty(document.forms[0].card_fname.value))
	{
		alert ("Please enter your first name");
		document.forms[0].card_fname.focus();
		document.forms[0].card_fname.select();
		return;
	}
		if (likeName(document.forms[0].card_fname.value))
	{
		alert ("Please enter your first name using less than 40 characters.");
		document.forms[0].card_fname.focus();
		document.forms[0].card_fname.select();
		return;
	}
		if (validate(document.forms[0].card_fname.value))
	{
		alert("Please only enter valid characters or numbers.");
		document.forms[0].card_fname.focus();
		document.forms[0].card_fname.select();
		return;
	}
		if (isEmpty(document.forms[0].card_lname.value))
	{
		alert ("Please enter your last name");
		document.forms[0].card_lname.focus();
		document.forms[0].card_lname.select();
		return;
	}
		if (likeName(document.forms[0].card_lname.value))
	{
		alert ("Please enter your last name using less than 40 characters.");
		document.forms[0].card_lname.focus();
		document.forms[0].card_lname.select();
		return;
	}
		if (validate(document.forms[0].card_lname.value))
	{
		alert ("Please only enter valid characters or numbers.");
		document.forms[0].card_lname.focus();
		document.forms[0].card_lname.select();
		return;
	}
		if (isEmpty(document.forms[0].card_address1.value))
	{
		alert ("Please enter your Address");
		document.forms[0].card_address1.focus();
		document.forms[0].card_address1.select();
		return;
	}
		if (likeAddress(document.forms[0].card_address1.value))
	{
		alert ("Please enter your address using less than 61 characters.");
		document.forms[0].card_address1.focus();
		document.forms[0].card_address1.select();
		return;
	}
		if (validate(document.forms[0].card_address1.value))
	{
		alert ("Please only enter valid characters or numbers.");
		document.forms[0].card_address1.focus();
		document.forms[0].card_address1.select();
		return;
	}
		if (validate(document.forms[0].card_address2.value))
	{
		alert ("Please only enter valid characters or numbers.");
		document.forms[0].card_address2.focus();
		document.forms[0].card_address2.select();
		return;
	}
		if (likeAddress(document.forms[0].card_address2.value))
	{
		alert ("Please enter your address using less than 61 characters.");
		document.forms[0].card_address2.focus();
		document.forms[0].card_address2.select();
		return;
	}
		if (validate_email(document.forms[0].email.value))
	{
		alert ("Please only enter valid characters or numbers.");
		document.forms[0].email.focus();
		document.forms[0].email.select();
		return;
	}
	
	if (document.forms[0].card_cvv == null)
	{
	}
	else
	{
		if (document.forms[0].card_cvv.value == "")
		{
		alert ("Please enter a CVV2 value");
		document.forms[0].card_cvv.focus();
		document.forms[0].card_cvv.select();
		return;
		}	
		if (document.forms[0].card_cvv.value.length > 4 || document.forms[0].card_cvv.value.length < 3)
		{
		alert ("Please enter a CVV2 value of at least 3 digits.");
		document.forms[0].card_cvv.focus();
		document.forms[0].card_cvv.select();
		return;
		}
		if (!isNumber(document.forms[0].card_cvv.value))
		{
		alert ("Please enter only digits for your CVV2 value.");
		document.forms[0].card_cvv.focus();
		document.forms[0].card_cvv.select();
		return;
		}
	}

	
	
		if (!likeZIP(document.forms[0].card_zip.value))
	{
		alert ("Please enter your five digit ZIP code");
		document.forms[0].card_zip.focus();
		document.forms[0].card_zip.select();
		return;
	}
		if (likeTelephone(document.forms[0].phone.value))
	{
		alert ("Please enter your telephone number using less than 16 characters.");
		document.forms[0].phone.focus();
		document.forms[0].phone.select();
		return;
	}
		if (!likeCreditCardNumber(document.forms[0].card_number.value))
	{
		alert ("Please enter your credit card number\nVISA or Mastercard only\nEnter numbers only, no spaces or hyphens");
		document.forms[0].card_number.focus();
		document.forms[0].card_number.select();
		return;
	}
	if (!likeCCN(document.forms[0].card_number.value))
	{
		alert ("We're sorry.\nWe can not process this credit card.");
		return;
	}
		if (expired())
			{
			alert("Please enter a valid expiration date");
			return;
			}
		if (!likeEmail(document.forms[0].email.value))
	{
		alert ("Please enter your valid email address");
		document.forms[0].email.focus();
		document.forms[0].email.select();
		return;
	}
        NoPopUp = 1;
	document.forms[0].testtodo.value = 'Click here to continue';
	if (document.all || document.getElementById) 
	{
		for (i = 0; i < document.forms[0].length; i++) 
		{
			var tempobj = document.forms[0].elements[i];
			if (tempobj.type.toLowerCase() == "button") 
			{
				tempobj.disabled = true;
			}
		}
	}
	document.forms[0].submit();
	return true;
}

var newWin
function preload()
{
    if (submitForm())
    {
        newWin = window.open("http://www.ahamembership.com/preload.html","","status,height=200,width=500,left=0,top=0")
    }
}
function closeWin()
{
    if (newWin)
    {
        newWin.close();
    }
}

function expired()
{
var today= new Date();
var experation=new Date(eval("20" + document.forms[0].year_exp[document.forms[0].year_exp.selectedIndex].value), document.forms[0].month_exp[document.forms[0].month_exp.selectedIndex].value, 1);
if (today>experation)
	return true;
else 
	return false;
}

