var valid;

var emailExp = /(^[a-zA-Z_0-9-'\+~]+(\.[a-zA-Z_0-9-'\+~]+)*@([a-zA-Z_0-9-]+\.)+[a-zA-Z]{2,7}$)/;
var objPhone1 = /^\([1-9]\d{2}\)\s?\d{3}\-\d{4}[\s\da-zA-Z\.]{0,16}$/; // (123)456-7890+
var objPhone2 = /^(\d{3})\-(\d{3})\-(\d{4})([\s\da-zA-Z\.]{0,16})$/; // 123-456-7890+
var objPhone3 = /^(\d{3})\.(\d{3})\.(\d{4})([\s\da-zA-Z\.]{0,16})$/; // 123.456.7890+
var objPhone4 = /^(\d{3})(\d{3})(\d{4})([\s\da-zA-Z\.]{0,16})$/; // 1234567890+
var canadaZip = /^[A-Za-z]\d[A-Za-z]\s?\d[A-Za-z]\d$/;
var usZip1 = /^\d{5}$/;
var usZip2 = /^\d{5}\-\d{4}$/;


function validate(form)
{
	valid = true;
	var id = form.elements.length - 1;
	for (var i = 0; i < form.elements.length; i++)
	{
		if (form.elements[i].name != 'oid' && form.elements[i].name != 'retURL' && form.elements[i].name != 'submit'  && form.elements[i].name != 'lead_source'  && form.elements[i].name != '00N50000001ZhpG' && form.elements[i].name != 'sfga'){
		checkValid(form.elements[i]);
		if (!valid && i < id){
			id = i;
		}
		}
	}
	form.elements[id].focus();
	return valid;
}

function attachFocusActions(elem){
	elem.style.background = "#ffffcc";
	elem.onblur = function()
	{
		elem.style.background = "#ffffff";
		checkValid(elem);
	}
}

function checkValid(elem){
if (elem.name == "first_name" || elem.name == "last_name" || elem.name == "company" || elem.name == "street" || elem.name == "city" || elem.name == "zip" || elem.name == "email" || elem.name == "phone" || 'event' || 'location'  || 'barcode' || 'fname' || 'lname' || 'note'){
			if (elem.value != ""){
				isValid(elem);
			}
			else
			{
				isNotValid(elem);
			}
			if (elem.name == "zip" && elem.value != "")
			{
				if (canadaZip.test(elem.value) || usZip1.test(elem.value) || usZip2.test(elem.value))
				{
					document.getElementById('zip_t').innerHTML = 'Required Field';
					isValid(elem);
				}
			
				else
				{
					document.getElementById('zip_t').innerHTML = 'Check Zip Format';
					isNotValid(elem);
				}
			}
			if (elem.name == "email" && elem.value != "")
			{
				if (emailExp.test(elem.value))
				{
					document.getElementById('email_t').innerHTML = 'Required Field';
					isValid(elem);
				}
			
				else
				{
					document.getElementById('email_t').innerHTML = 'Check Email Format';
					isNotValid(elem);
				}
			}
			if (elem.name == "mailfrom" && elem.value != "")
			{
				if (emailExp.test(elem.value))
				{
					document.getElementById('mailfrom_t').innerHTML = 'Required Field';
					isValid(elem);
				}
			
				else
				{
					document.getElementById('mailfrom_t').innerHTML = 'Check Email Format';
					isNotValid(elem);
				}
			}
			if (elem.name == "phone" && elem.value != "")
			{
				if (objPhone2.test(elem.value))
				{
					elem.value = elem.value.replace(objPhone2, "($1) $2-$3$4").replace(/\s+$4\s+$/, ' $4')
				}
				
				if (objPhone3.test(elem.value))
				{
					elem.value = elem.value.replace(objPhone3, "($1) $2-$3$4").replace(/\s+$4\s+$/, ' $4')
				}
				
				if (objPhone4.test(elem.value))
				{
					elem.value = elem.value.replace(objPhone4, "($1) $2-$3$4").replace(/\s+$4\s+$/, ' $4')
				}
				
				if (objPhone1.test(elem.value))
				{
					document.getElementById('phone_t').innerHTML = 'Required Field';
					isValid(elem);
				}
				else
				{
					document.getElementById('phone_t').innerHTML = 'Format:(999)999-9999';
					isNotValid(elem);
				}
			}
		}
		else if (elem.name == "state")
		{
			checkSelect(elem);
		}
		else if (elem.name == "lead_source" || elem.name == "00N50000001ZhpG")
		{
			isValid(elem);
		}
}

function checkSelect(elem){
	if (elem.selectedIndex != 0)
	{
		isValid(elem);	
	}
	else
	{
		isNotValid(elem);
	}
}

function isValid(elem)
{
	if (elem.name != 'oid' && elem.name != 'retURL' && elem.name != 'submit'  && elem.name != 'lead_source'  && elem.name != '00N50000001ZhpG'){
		document.getElementById(elem.name + "_v").style.display = "inline";
		document.getElementById(elem.name + "_n").style.display = "none";
		document.getElementById(elem.name + "_u").style.display = "none";
		document.getElementById(elem.name + "_t").style.display = "none"; 
	}
}

function isNotValid(elem)
{
	valid = false;
	document.getElementById(elem.name + "_v").style.display = "none";
	document.getElementById(elem.name + "_n").style.display = "inline";
	document.getElementById(elem.name + "_u").style.display = "none";
	document.getElementById(elem.name + "_t").style.display = "inline";
	//elem.style.background = "#ffccaa";
}