// FORM VALIDATORS

function isBlank(field) {
	if ( field.value == null || field.value == "") {
		return true;
	} else {
		return false;
	}
}
var numb = '0123456789';
var lwr = 'abcdefghijklmnopqrstuvwxyz';
var upr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';

function isValid(parm,val) {
if (parm == "") return true;
for (i=0; i<parm.length; i++) {
if (val.indexOf(parm.charAt(i),0) == -1) return false;
}
return true;
}

function isNum(parm) {return isValid(parm,numb);}
function isLower(parm) {return isValid(parm,lwr);}
function isUpper(parm) {return isValid(parm,upr);}
function isAlpha(parm) {return isValid(parm,lwr+upr);}
function isAlphanum(parm) {return isValid(parm,lwr+upr+numb);}

function isNumeric( fText ) {
	var lowCode = 48;
	var highCode = 57;
	var isNumber = true;
	var charCode;

	for (i = 0; i < fText.length && isNumber == true; i++) {
		charCode = fText.charCodeAt(i);
		if ( charCode < lowCode || charCode > highCode ) {
			isNumber = false;
		}
	}
	return isNumber;
}

function isValidPhoneSegment( f, length ) {
	if ( ! isBlank( f ) && isNumeric( f.value ) && ( f.value.length == length ) ) {
		return true;
	} else {
		return false;
	}
}

function isValidAreaCode( f ) {
	if( !(/^[2-9]\d{2}$/.test(f)) || (/^[5]{3}$/.test(f)) )
		return false;
	else
		return true;
}

function isValidPhonePrefix( f ) {
	if(/^[5]{3}$/.test(f))
		return false;
	else
		return true;
}

function isInvalidEmailField( f ) {
	if ( isBlank( f ) )
		return true;
	var address = f.value;
	var atLoc = address.indexOf( '@' );
	var dotLoc = address.lastIndexOf( '.' );
	if ( ( atLoc <= 0 ) || ( dotLoc <= 0 ) || ( dotLoc < atLoc ) || ( dotLoc-atLoc == 1 ) || ( ( dotLoc + 1 ) == address.length ) ) return true;
	else
		return false;
}

function isAnytown ( f ) {
	if( /anytown/.test( f.toLowerCase() ) ){
		return true;
	}else {
		return false;}
}

function isInteger(s)
{   var i;
	for (i = 0; i < s.length; i++)
	{   
		// Check that current character is number.
		var c = s.charAt(i);
		if (((c < "0") || (c > "9"))) return false;
	}
	// All characters are numbers.
	return true;
}


function stripCharsInBag(s, bag)
{   var i;
	var returnString = "";
	// Search through string's characters one by one.
	// If character is not in bag, append to returnString.
	for (i = 0; i < s.length; i++)
	{   
		// Check that current character isn't whitespace.
		var c = s.charAt(i);
		if (bag.indexOf(c) == -1) returnString += c;
	}
	return returnString;
}

function isValidPhone ( strPhone ) {

// Declaring required variables
var digits = "0123456789";
// non-digit characters which are allowed in phone numbers
var phoneNumberDelimiters = "()- .";
// characters which are allowed in international phone numbers
// (a leading + is OK)
var validWorldPhoneChars = phoneNumberDelimiters + "+";
// Minimum no of digits in an international phone no.
var minDigitsInIPhoneNumber = 10;

s=stripCharsInBag(strPhone,validWorldPhoneChars);

if ( !(/^[2-9]\d{9}$/.test(s)) || (/^[5]{3}\d{7}$/.test(s)) || (/^\d{3}[5]{3}\d{4}$/.test(s)) )
{
	return false;
}
else
	return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}

function isSwear ( f ) {
	// Enter the words to be filtered in the line below:
	var badwords=new Array("ass","arse","butt","assbang","assclown","assface","assfuck","asshole","asslicker","assmunch","asswipe","bastard","bitch","blowjob","blowme","boner","bullshit","chinc","chink","chode","clit","cock","cocksucker","cooter","cum","cunt","damn","dickhead","dickhole","dicks","dickwod","dildo","dipshit","dookie","douche","douchebag","dumbass","faggot","fagtard","fatass","fuck","fucker","fuckface","fuckhole","fuckin","fucking","fucktard","fuckwad","fuckwit","goddamn","gook","hell","jackass","jizz","kike","kootch","kyke","motherfucker","motherfucking","nigga","nigger","niglet","panooch","peckerhead","pissed","poon","poonany","prick","punta","pussy","puto","queef","queer","queerbait","rimjob","scrote","shit","shitface","shitfaced","shithead","shitter","shittiest","shitty","skank","slut","slutbag","spic","spick","thundercunt","titfuck","tit","tits","twat","twats","vagina","wank","whore","wop");
	
	var badwords_inline=new Array("assbang","assclown","assface","assfuck","asshole","asslicker","assmunch","asswipe","bastard","bitch","blowjob","blowme","bullshit","cocksucker","cooter","cunt","dickhead","dickhole","dickwod","dildo","dipshit","dookie","douchebag","dumbass","faggot","fagtard","fatass","fuck","goddamn","jackass","kyke","nigger","niglet","panooch","peckerhead","pissed","poonany","pussy","queef","queer","queerbait","rimjob","shit","slutbag","thundercunt","titfuck","vagina","whore");

	var booBad = 0;
	fvalue = f;  // entered words  

	wordsArray = fvalue.split(" ");
	wordsNospace = fvalue.toLowerCase();
	
	//check individual words
	for (i = 0; i < badwords.length; i++)
	{

		for ( j=0; j < wordsArray.length; j++)
		{
			if ( (wordsArray[j].toLowerCase() == badwords[i]))
			{
				booBad = 1;

			}
		}
	}
	
	//check for swears inside words
	for (k = 0; k < badwords_inline.length; k++)
	{

		for ( m = 0; m < fvalue.length; m++)
		{
			if (badwords_inline[k] == fvalue.substr(m, badwords_inline[k].length ) )
			{
				booBad = 1;

			}
		}
	}
	
	if (booBad != 1) { return false; }
	else {return true;}
} // end 



// FUNCTION TO VALIDATE BROCHURE FORM ON YELLOW BANNER


function validateBrochureBannerForm() {
	//create the complete phone number.
	document.getElementById("phone").value = document.getElementById("phoneAreaCodeInput").value + document.getElementById("phonePrefixInput").value + document.getElementById("phoneSuffixInput").value;

	
	var msg = "";
	if ( isBlank( document.getElementById("first_name") ) ) {
		msg += "First Name is required.\n";
	}else if( document.getElementById("first_name").value.length < 2){
		msg += "First Name is invalid.\n";
	}
	else if( isSwear(document.getElementById("first_name").value)){
		msg += "First Name is invalid.\n";
	}
	if ( isBlank( document.getElementById("last_name") ) ) {
		msg += "Last Name is required.\n";
	}else if( document.getElementById("last_name").value.length < 2){
		msg += "Last Name is invalid.\n";
	}
	else if( isSwear(document.getElementById("last_name").value)){
		msg += "Last Name is invalid.\n";
	}
	if( isBlank( document.getElementById("email") ) ) {
		msg += "Email is required.\n";
	}
	else if ( isInvalidEmailField( document.getElementById("email") ) ) {
		msg += "Email Address is invalid.\n";
	}
	else if( isSwear(document.getElementById("email").value)){
		msg += "Email Address is invalid.\n";
	}
	if ( isBlank( document.getElementById("street") ) ) {
		msg += "Street Address is required.\n";
	}else if( isSwear(document.getElementById("street").value)){
		msg += "Street Address is invalid.\n";
	}
	if ( isBlank( document.getElementById("city") ) ) {
		msg += "City is required.\n";
	}else if ( isAnytown( document.getElementById("city").value ) ) {
		msg += "City is invalid.\n";
	}
	else if( isSwear(document.getElementById("city").value)){
		msg += "City is invalid.\n";
	}
	if ( !isValidPhoneSegment( document.getElementById("phoneAreaCodeInput"), 3 ) || !isValidPhoneSegment( document.getElementById("phonePrefixInput"), 3 ) || !isValidPhoneSegment( document.getElementById("phoneSuffixInput"), 4 ) ) {
		msg += "Valid Phone Number is required.\n";
	}
	else if ( !isValidPhone( document.getElementById("phone").value) ){
		msg += "Phone Number is invalid.\n";
	}
	else if ( !isValidAreaCode(document.getElementById("phoneAreaCodeInput").value) || !isValidPhonePrefix(document.getElementById("phonePrefixInput").value) ){
		msg += "Phone Number is invalid.\n";
	}
	if ( isBlank( document.getElementById("state") ) ) {
		msg += "State is required.\n";
	}else if (document.getElementById("state").value.length != 2){
		msg += "State is invalid.\n";
	}else if (!isAlpha(document.getElementById("state").value)){
		msg += "State is invalid.\n";
	}
	if ( isBlank( document.getElementById("zip") ) ) {
		msg += "Zip code is required.\n";
	}else if (document.getElementById("zip").value.length < 5){
		msg += "Zip code is invalid.\n";
	}
	else if (!isNumeric(document.getElementById("zip").value)){
		msg += "Zip code is invalid.\n";
	}
	if ( isBlank( document.getElementById("country") ) ) {
		msg += "Country is required.\n";
	}

	//assign the customer's full name to the company field.  It may be no longer than 80 characters.
	var fullname = document.getElementById("first_name").value + ' ' + document.getElementById("last_name").value;
	if ( fullname.length > 80 ) {
		fullname = fullname.substr( 0, 80 );
	}
	document.getElementById("company").value = fullname;

	
	//	
	
	if ( msg.length > 0 ) {
		alert ( msg );
		return false;
	} else {
		urchinTracker('/brochure_thankyou_lactagen');
		return true;
	}
}

// FUNCTION TO VALIDATE BROCHURE FORM IN CONTENT

function validateBrochureContentForm() {
	var msg = "";
	if ( isBlank( document.getElementById("first_name") ) ) {
		msg += "First Name is required.\n";
	}
	else if( document.getElementById("first_name").value.length < 2){
		msg += "First Name is invalid.\n";
	}
	else if( isSwear(document.getElementById("first_name").value)){
		msg += "First Name is invalid.\n";
	}
	if ( isBlank( document.getElementById("last_name") ) ) {
		msg += "Last Name is required.\n";
	}else if( document.getElementById("last_name").value.length < 2){
		msg += "Last Name is invalid.\n";
	}
	else if( isSwear(document.getElementById("last_name").value)){
		msg += "Last Name is invalid.\n";
	}
	if( isBlank( document.getElementById("email") ) ) {
		msg += "Email is required.\n";
	} 
	else if ( isInvalidEmailField( document.getElementById("email") ) ) {
		msg += "Email Address is invalid.\n";
	}
	else if( isSwear(document.getElementById("email").value)){
		msg += "Email Address is invalid.\n";
	}
	if ( isBlank( document.getElementById("street") ) ) {
		msg += "Street Address is required.\n";
	}else if( isSwear(document.getElementById("street").value)){
		msg += "Street Address is invalid.\n";
	}
	if ( isBlank( document.getElementById("city") ) ) {
		msg += "City is required.\n";
	}else if ( isAnytown( document.getElementById("city").value ) ) {
		msg += "City is invalid.\n";
	}
	else if( isSwear(document.getElementById("city").value)){
		msg += "City is invalid.\n";
	}
	if ( isBlank( document.getElementById("phone") ) ) {
		msg += "Phone is required.\n";
	} else if ( !isNumeric( document.getElementById("phone") ) ) {
		msg += "Phone must include only numeric characters.\n";
	} else if ( !isValidPhone( document.getElementById("phone").value) ){
		msg += "Phone Number is invalid.\n";
	}
	if ( isBlank( document.getElementById("00N30000000i9Cz") ) ) {
		msg += "Phone Type is required.\n";
	}
	if ( isBlank( document.getElementById("street") ) ) {
		msg += "A Street Address is required.\n";
	}
	if ( isBlank( document.getElementById("city") ) ) {
		msg += "A City is required.\n";
	}
	if ( isBlank( document.getElementById("state") ) ) {
		msg += "A State is required.\n";
	}
	else if (document.getElementById("state").value.length != 2){
		msg += "State is invalid.\n";
	}
	else if ( !isAlpha(document.getElementById("state").value) ){
		msg += "State is invalid.\n";
	}
	if ( isBlank( document.getElementById("zip") ) ) {
		msg += "A Zip code is required.\n";
	}else if (document.getElementById("zip").value.length < 5){
		msg += "Zip code is invalid.\n";
	}
	else if (!isNumeric(document.getElementById("zip").value)){
		msg += "Zip code is invalid.\n";
	}
	if ( isBlank( document.getElementById("country") ) ) {
		msg += "An Country is required.\n";
	}

	//assign the customer's full name to the company field.  It may be no longer than 80 characters.
	var fullname = document.getElementById("first_name").value + ' ' + document.getElementById("last_name").value;
	if ( fullname.length > 80 ) {
		fullname = fullname.substr( 0, 80 );
	}
	document.getElementById("company").value = fullname;

	//create the complete phone number.
	//document.getElementById("phone.value = document.getElementById("phoneAreaCodeInput.value + '-' + document.getElementById("phonePrefixInput.value + '-' + document.getElementById("phoneSuffixInput.value;

	//convert the email opt out to the correct value for SalesForce storage.
	//If the box is checked this means they want to receive correspondence, and should not be marked as opt out in salesforce.
	//alert("opt in: "+document.getElementById("emailOptIn").checked);
	if ( document.getElementById("emailOptIn").checked == false ) {
		document.getElementById("emailOptOut").value = 1;
	} else {
		document.getElementById("emailOptOut").value = 0;
	}

	

	if ( msg.length > 0 ) {
		alert ( msg );
		return false;
	} else {
		urchinTracker('/brochure_thankyou_lactagen');
		return true;
	}
}


// FUNCTION TO VALIDATE IS RIGHT? FORM ON SIDEBAR

function Checkreg()
{	

	 if (document.yesno.ga_1.value == 0 ) {
		alert("What foods give you the most discomfort?");
		document.yesno.ga_1.focus();
		return false;
	}
	 if (document.yesno.ga_2.value == 0 ) {
		alert("What symptoms do you experience from dairy products? ");
		document.yesno.ga_2.focus();
		return false;
	}
	 if (document.yesno.ga_3.value == 0 ) {
		alert("How long have you had symptoms for? ");
		document.yesno.ga_3.focus();
		return false;
	}
	
}
