function ValidateSignUP()
{
	non_alphabetic = /[^A-Za-z. \']+/;
	special_symbol = /[\<\>\:\;\/\"\'\%\=\[\]]+/;
	non_numeric = /[^0-9+ ]+/;

	var ObjFrm = document.frmsignup;
	document.getElementById("fname").style.color="black";
	document.getElementById("lname").style.color="black";
	document.getElementById("aname").style.color="black";
	document.getElementById("phoneno").style.color="black";
	document.getElementById("email").style.color="black";
	if(!ObjFrm.first_name.value.trim())
	{
		document.getElementById("fname").style.color="red";
		alert("Please enter first name.");
		ObjFrm.first_name.focus();
		return false;
	}
	if(!ObjFrm.last_name.value.trim())
	{
		document.getElementById("lname").style.color="red";
		alert("Please enter last name.");
		ObjFrm.last_name.focus();
		return false;
	}
	if(!ObjFrm.association_name.value.trim())
	{
		document.getElementById("aname").style.color="red";
		alert("Please enter association name.");
		ObjFrm.association_name.focus();
		return false;
	}
//	if(ObjFrm.phone_no.value.trim() )
//	{
//		//&& non_numeric.test(ObjFrm.phone_no.value.trim())
//		document.getElementById("phoneno").style.color="red";
//		alert("Please enter valide phone no.");
//		ObjFrm.phone_no.focus();
//		return false;
//	}
	if(!ObjFrm.email_address.value.trim())
	{
		document.getElementById("email").style.color="red";
		alert("Please enter email address.");
		ObjFrm.email_address.focus();
		return false;
	}
	var emailStr1 = ObjFrm.email_address.value.trim();
	if(isEmail(emailStr1) == false)
	{
		document.getElementById("email").style.color="red";		
		ObjFrm.email_address.focus();
		return false;
	}
	if(!ObjFrm.terms.checked)
	{
		alert("Please read and agree to our Terms of Service.");
		ObjFrm.terms.focus();
		return false;
	}
	
	return true;
}

function ValidateCart()
{
	non_alphabetic = /[^A-Za-z. \']+/;
	special_symbol = /[\<\>\:\;\/\"\'\%\=\[\]]+/;
	non_numeric = /[^0-9+ ]+/;

	var ObjFrm = document.frmcart;
	document.getElementById("lfirst_name").style.color="black";
	document.getElementById("llast_name").style.color="black";
	document.getElementById("laddress1").style.color="black";
	document.getElementById("lcity").style.color="black";
	document.getElementById("lzip_code").style.color="black";
	document.getElementById("lphone").style.color="black";
	document.getElementById("lemail").style.color="black";
	document.getElementById("lcartholdername").style.color="black";
	document.getElementById("lcartno").style.color="black";
	document.getElementById("lexp_date").style.color="black";
	document.getElementById("lcvv2").style.color="black";		
	document.getElementById("ldiscount_code").style.color="black";		
	document.getElementById("ls_name").style.color="black";
	document.getElementById("ls_address").style.color="black";
	document.getElementById("ls_city").style.color="black";
	document.getElementById("ls_state").style.color="black";		
	document.getElementById("ls_zipcode").style.color="black";
	document.getElementById("ls_phone").style.color="black";
	
	if(!ObjFrm.first_name.value.trim())
	{
		document.getElementById("lfirst_name").style.color="red";
		alert("Please enter first name.");
		ObjFrm.first_name.focus();
		return false;
	}
	if(!ObjFrm.last_name.value.trim())
	{
		document.getElementById("llast_name").style.color="red";
		alert("Please enter last name.");
		ObjFrm.last_name.focus();
		return false;
	}
	if(!ObjFrm.address1.value.trim())
	{
		document.getElementById("laddress1").style.color="red";
		alert("Please enter address.");
		ObjFrm.address1.focus();
		return false;
	}
	if(!ObjFrm.city.value.trim())
	{
		document.getElementById("lcity").style.color="red";
		alert("Please enter city.");
		ObjFrm.city.focus();
		return false;
	}
	if(!ObjFrm.zip_code.value.trim())
	{
		document.getElementById("lzip_code").style.color="red";
		alert("Please enter zip code.");
		ObjFrm.zip_code.focus();
		return false;
	}
	if(!ObjFrm.phone.value.trim())
	{
		 //|| non_numeric.test(ObjFrm.phone.value.trim())
		document.getElementById("lphone").style.color="red";
		alert("Please enter valide phone no.");
		ObjFrm.phone.focus();
		return false;
	}
	if(!ObjFrm.email.value.trim())
	{
		document.getElementById("lemail").style.color="red";
		alert("Please enter email address.");
		ObjFrm.email.focus();
		return false;
	}
	var emailStr1 = ObjFrm.email.value.trim();
	if(isEmail(emailStr1) == false)
	{
		document.getElementById("lemail").style.color="red";		
		ObjFrm.email.focus();
		return false;
	}
	if(!ObjFrm.cartholdername.value.trim())
	{
		document.getElementById("lcartholdername").style.color="red";
		alert("Please enter cardholder's name.");
		ObjFrm.cartholdername.focus();
		return false;
	}

	validcard = Mod10(ObjFrm.cartno.value);
	if(!validcard)
	{
		document.getElementById("lcartno").style.color="red";
		alert("Please enter valid credit card number.");
		ObjFrm.cartno.focus();
		return false;
	}

	if(!ObjFrm.month.value.trim())
	{
		document.getElementById("lexp_date").style.color="red";
		alert("Please select month.");
		ObjFrm.month.focus();
		return false;
	}
	if(!ObjFrm.year.value.trim())
	{
		document.getElementById("lexp_date").style.color="red";
		alert("Please select year.");
		ObjFrm.year.focus();
		return false;
	}
	if((ObjFrm.cvv2.value.trim() && NaN(ObjFrm.cvv2.value.trim())) || (ObjFrm.cvv2.value.trim() && ObjFrm.cvv2.value.length < 3))
	{
		document.getElementById("lcvv2").style.color="red";
		alert("Please enter valid CVV2.");
		ObjFrm.cvv2.focus();
		return false;
	}	
	if(ObjFrm.discount_code.value.trim() && (ObjFrm.discount_code.value.trim() != ObjFrm.discountcode.value.trim()))
	{
		document.getElementById("ldiscount_code").style.color="red";
		alert("Please enter valid association discount code.");
		ObjFrm.discount_code.focus();
		return false;
	}	
	if(!ObjFrm.s_name.value.trim())
	{
		document.getElementById("ls_name").style.color="red";
		alert("Please enter name.");
		ObjFrm.s_name.focus();
		return false;
	}
	if(!ObjFrm.s_address.value.trim())
	{
		document.getElementById("ls_address").style.color="red";
		alert("Please enter address.");
		ObjFrm.s_address.focus();
		return false;
	}
	if(!ObjFrm.s_city.value.trim())
	{
		document.getElementById("ls_city").style.color="red";
		alert("Please enter city.");
		ObjFrm.s_city.focus();
		return false;
	}
	if(!ObjFrm.s_state.value.trim())
	{
		document.getElementById("ls_state").style.color="red";
		alert("Please enter state.");
		ObjFrm.s_state.focus();
		return false;
	}
	if(!ObjFrm.s_zipcode.value.trim())
	{
		document.getElementById("ls_zipcode").style.color="red";
		alert("Please enter zip code.");
		ObjFrm.s_zipcode.focus();
		return false;
	}
	if(!ObjFrm.s_phone.value.trim())
	{
		// || non_numeric.test(ObjFrm.s_phone.value.trim())
		document.getElementById("ls_phone").style.color="red";
		alert("Please enter valide phone no.");
		ObjFrm.s_phone.focus();
		return false;
	}	
}

function IsSame()
{
	non_alphabetic = /[^A-Za-z. \']+/;
	special_symbol = /[\<\>\:\;\/\"\'\%\=\[\]]+/;
	non_numeric = /[^0-9+ ]+/;

	var ObjFrm = document.frmcart;		

	if(ObjFrm.issame.checked)
	{
		if(ObjFrm.address2.value !="")
			var address2 = ", " + ObjFrm.address2.value.trim();
		else
			address2 = "";

		ObjFrm.s_name.value    = ObjFrm.first_name.value.trim() +" "+ ObjFrm.last_name.value.trim();
		ObjFrm.s_address.value = ObjFrm.address1.value.trim() + address2;
		ObjFrm.s_city.value    = ObjFrm.city.value.trim();
		ObjFrm.s_state.value   = ObjFrm.state.value.trim();
		ObjFrm.s_zipcode.value = ObjFrm.zip_code.value.trim();
		ObjFrm.s_phone.value   = ObjFrm.phone.value.trim();
	}	
	else
	{
		ObjFrm.s_name.value    = "";
		ObjFrm.s_address.value = "";
		ObjFrm.s_city.value    = "";
		ObjFrm.s_state.value   = "";
		ObjFrm.s_zipcode.value = "";
		ObjFrm.s_phone.value   = "";
	}
}

//to trim string functions
String.prototype.trim = function(){ return this.replace(/^\s+|\s+$/g,"");};

function isEmail(emailStr1)
{
		var emailPat=/^(.+)@(.+)$/
		var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
		var validChars="\[^\\s" + specialChars + "\]"
		var quotedUser="(\"[^\"]*\")"
		var ipDomainPat=/^\[(\d{1,4})\.(\d{1,4})\.(\d{1,4})\.(\d{1,4})\]$/
		var atom=validChars + '+'
		var word="(" + atom + "|" + quotedUser + ")"
		var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
		var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")

		var matchArray=emailStr1.match(emailPat)
		if (matchArray==null) {
			alert("Email address seems incorrect (check @ and .'s)")		
			return false
		}
		
		var user=matchArray[1]
		var domain=matchArray[2]
		if (user.match(userPat)==null) {
			alert("The user name doesn't seem to be valid.")
			return false
		}

		var IPArray=domain.match(ipDomainPat)
		if (IPArray!=null) {
			  for (var i=1;i<=4;i++) {
				if (IPArray[i]>255) {
					alert("Destination IP address is invalid!")
					return false
				}
			}	    
			return true
		}

		var domainArray=domain.match(domainPat)
		if (domainArray==null) {
			alert("The domain name doesn't seem to be valid.")
			return false
		}

		var atomPat=new RegExp(atom,"g")
		var domArr=domain.match(atomPat)
		var len=domArr.length
		if (domArr[domArr.length-1].length<2 || 
			domArr[domArr.length-1].length>4) {
		   alert("The address must end in a three-letter domain or four-letter domain or two letter country.")
		   return false
		}

		if (len<2) {
		   var errStr="This address is missing a hostname!"
		   alert(errStr)
		   return false
		}	
		return true
 }