// JavaScript Document
var AFE = AFE || {};

AFE.addHandler = function(element, eventName, handler) {
	var element = element.style ? element : document.getElementById(element);
	if (element.addEventListener)
		element.addEventListener(eventName, handler, false);
	else if (element.attachEvent)
		element.attachEvent("on" + eventName, handler);
}
AFE.emailRe = new RegExp('^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$', "i");



AFE.validateMail = function(element) {
	var element = element.style ? element : document.getElementById(element);
	
	if (!AFE.emailRe.test(element.value))
	{
		alert("Please enter valid e-mail.");
		element.focus();
		return false;
	}
	return true;
}

AFE.alphaInput = function(e) {
	var code = e.which || e.keyCode;
	
	if (code < 47)
		return;	

	var s = String.fromCharCode(e.which || e.keyCode);	
	if (s.length > 0 && !(/[a-zA-Z.']|\s|-/.test(s)))
	{
		if (e.preventDefault)
			e.preventDefault()
		else
			e.returnValue = false;
	}
}

AFE.numericInput = function(e) {
	var code = e.which || e.keyCode;
	
	if (code < 47)
		return;	

	var s = String.fromCharCode(e.which || e.keyCode);	
	if (s.length > 0 && (/\D/.test(s)))
	{
		if (e.preventDefault)
			e.preventDefault()
		else
			e.returnValue = false;
	}
}

AFE.validate = function()
{
	return 	AFE.valid("first name", "firstname") 
		&&
		AFE.valid("last name", "lastname")
		&&
		AFE.validateMail("email")
		&&
		AFE.valid("address", "address1")
		&&
		AFE.valid("city", "city")
		&&
		AFE.valid("state", "state")
		&&
		AFE.validateZip()
		&&
		AFE.validatePhone("phone")
		&& 
		AFE.validatePhone("cphone");
}

AFE.valid = function(strName, strID)
{
	var test;
	test = document.getElementById(strID);
	//alert(test);
	if (!test)
		alert(strID);
	if ((test.value == "") || (test.value == null)){
		alert("Please enter your " + strName + ".");
		test.focus();
		return false;
	}
	return true;	
}

AFE.validatePhone = function(prefix)
{	
	var e = document.getElementById(prefix +"1");
	if (prefix == "cphone" && (!e || (e.value + document.getElementById(prefix +"2").value + document.getElementById(prefix +"3").value) == ""))
	return true;
	
	if (!/^\d{3}$/.test(e.value)) {
		return AFE.error(e,"phone");
	}
	else if (!/^\d{3}$/.test((e = document.getElementById(prefix +"2")).value)) {
		return AFE.error(e,"phone");
	}
	else if (!/^\d{4}$/.test((e = document.getElementById(prefix +"3")).value)) {
		return AFE.error(e,"phone");
	}
	return true;
}

AFE.validateZip = function()
{
	var e = document.getElementById("zip1");
	
	if (!/^\d{5}$/.test(e.value)) {
		return AFE.error(e,"zip");
	}
	else if (!((e = document.getElementById("zip2")).value == "" || /^\d{4}$/.test(e.value))) {
		return AFE.error(e,"zip");
	}
	document.getElementById("zip").value = '' + document.getElementById("zip1").value + (document.getElementById("zip2").value!=''
	? '-' + document.getElementById("zip2").value
	: '');
	return true;
}

AFE.error = function(elem,name) {
		alert("Please enter your " + name + ".");
		elem.focus();
		return false;	
}










 