// JavaScript Document

var triedZipValidation = false;  // indicates whether validation has been attempted yet
var zipInDatabase = false;  // indicates whether the entered zip code was found in our db

function displayPageParts() {

	if (!vLeadScoring) {
		document.getElementById("displayLeadScoringFields").style.display = "none";
	}

}

/*
 *	Called from faux submit button
 *	For US: trigger the hidden frame to validate the zip code
 *	For non-US: start javascript validation
 */
function checkGeography() {
	triedZipValidation = true;

	copyValues();

	if (isUsa()) {

		if (validateZIP(document.getElementById("zip").value)) {

			document.getElementById("submitbtn").disabled = true;
			document.getElementById("parZIP").style.color = txtColor;
			var frame = document.getElementById("getZipInfo");
			frame.src = "/enrollment/asp/validateZip.asp?zip=" + document.getElementById("zip").value;

		} else {
			document.getElementById("submitbtn").disabled = false;
			document.getElementById("parZIP").style.color = validateColor;
			document.getElementById("formErrorMsg").style.display = "block";
			document.getElementById("formErrorMsg").style.color = validateColor;
			document.getElementById("zip_entry").focus();
		}

	} else {
		displayCityState();
		validateAndSubmit();
	}

}

/*
 *	Called from child iframe.
 *	Copies over any valid geography-related items to hidden form and starts javascript validation
 */
function childLoaded()
{
	var frame = document.getElementById("getZipInfo");
	zipInDatabase = (window.frames[0].document.getElementById('ZipOK').innerHTML == "true");

	displayCityState();

	if (zipInDatabase) {

		document.getElementById("00N70000001gNrp").value = window.frames[0].document.getElementById('Region').innerHTML;
		document.getElementById("00N70000001gNrq").value = window.frames[0].document.getElementById('MSA').innerHTML;
		document.getElementById("city").value = window.frames[0].document.getElementById('City').innerHTML;
		if (vChairFields) {
			document.getElementById("city_entry").value = window.frames[0].document.getElementById('City').innerHTML;
		}
		document.getElementById("state").value = window.frames[0].document.getElementById('State').innerHTML;

	} else {
		document.getElementById("00N70000001gNrp").value = "";
		document.getElementById("00N70000001gNrq").value = "";
	}

	validateAndSubmit();

}

/*
 *	simply copies values from entry form to hidden form
 */
function copyValues() {
	document.getElementById("first_name").value = document.getElementById("first_name_entry").value;
	document.getElementById("last_name").value = document.getElementById("last_name_entry").value;
	if (!vLeadScoring) {
		document.getElementById("title").value = document.getElementById("title_entry").value;
	}
	document.getElementById("00N70000001zAiQ").value = document.getElementById("company_entry").value;
	//document.getElementById("00N70000001zmoj").value = document.getElementById("sales_entry").value;
	//document.getElementById("00N70000001ydiK").value = document.getElementById("employee_entry").value;
	document.getElementById("email").value = document.getElementById("email_entry").value;
	document.getElementById("phone").value = document.getElementById("phone_entry").value;
	document.getElementById("city").value = document.getElementById("city_entry").value;
	document.getElementById("state").value = document.getElementById("state_entry").value;
	document.getElementById("zip").value = document.getElementById("zip_entry").value;
	//document.getElementById("country").value = document.getElementById("country_entry").value;

	if (vLeadScoring) {
		document.getElementById("00N70000002LaHE").value = document.getElementById("familiar_entry").value;
		document.getElementById("00N70000002LaH9").value = document.getElementById("role_entry").value;
		document.getElementById("00N70000001zn5t").value = document.getElementById("org_type_entry").value;
		document.getElementById("00N70000002LaHO").value = document.getElementById("tenure_entry").value;
		document.getElementById("00N70000002LaHn").value = document.getElementById("challenges_entry").value;
		document.getElementById("00N70000002LaGz").value = document.getElementById("experience_entry").value;
	}

	if (vChairFields) {
		document.getElementById("street").value = document.getElementById("address_entry").value;
		document.getElementById("00N70000001xwzM").value = document.getElementById("howFamiliar_entry").value;
		document.getElementById("00N70000001xwzH").value = document.getElementById("companySize_entry").value;
		document.getElementById("00N70000002J4fB").value = document.getElementById("referred_entry").value;
		document.getElementById("00N70000001xwxB").value = document.getElementById("highestExperience_entry").value;
		document.getElementById("00N70000001xwxL").value = getMultipleValues(document.getElementById("specialty_entry"));
		document.getElementById("00N70000002Zs0Z").value = document.getElementById("fivemillion_entry").value;
		document.getElementById("00N70000002Zs0Q").value = document.getElementById("reportsCount_entry").value;
		document.getElementById("00N70000002Zs0U").value = document.getElementById("fourtyHours_entry").value;
		document.getElementById("00N70000002Zs0j").value = document.getElementById("listening_entry").value;
		document.getElementById("street").value = document.getElementById("address_entry").value;
		document.getElementById("city").value = document.getElementById("city_entry").value;
	}
}

function getMultipleValues(ob)
{
	var allValues = '';

    while (ob.selectedIndex != -1)
    {
		allValues += ob.options[ob.selectedIndex].value + ';';
        ob.options[ob.selectedIndex].selected = false;
    }
	if (allValues.length > 0 ) {
		allValues = allValues.substring(0,allValues.length-1);
	}
	//alert(allValues);
	return allValues;
}

/*
 *	Displays or hides city and state entry boxes if needed
 */
function displayCityState() {

	if (isUsa()) {
    //alert("zipindatabase" + zipInDatabase + " tried: " + triedZipValidation);
		if (zipInDatabase || !triedZipValidation) {
//			document.getElementById("needCity").style.display = "none";
			document.getElementById("needState").style.display = "none";
		} else {
//			document.getElementById("needCity").style.display = "inline";
			document.getElementById("needState").style.display = "inline";
		}

	} else {
//		document.getElementById("needCity").style.display = "inline";
		document.getElementById("needState").style.display = "none";
	}
}

function isUsa() {
	return (document.getElementById("country").value == 'US');
}


/*Cut and paste code pulled from web 
Courtesy of http://javascript.internet.com/forms/val-zip-code.html
*/
function validateZIP(field) {

	var valid = "0123456789-";
	var hyphencount = 0;

	if (!isUsa()) {
		return true;
	}

	if (field.length!=5 && field.length!=10) {
		return false;
	}

	for (var i=0; i < field.length; i++) {
		temp = "" + field.substring(i, i+1);

		if (temp == "-") hyphencount++;

		if (valid.indexOf(temp) == "-1") {
			return false;
		}

		if ((hyphencount > 1) || ((field.length==10) && ""+field.charAt(5)!="-")) {
			return false;
		}
	}

	return true;
}

/*
 *	Main javascript validation
 *	Notifies user of any missing or wrong looking values
 *	(Note: values should already have been copied to the hidden form)
 *	Submits hidden form if no problems
 */
function validateAndSubmit() {

	var valid = true;
	var textbox;
	var label;
	var cursor;

	document.getElementById("formErrorMsg").style.display = "none";

	textbox = document.getElementById("zip");
	entrybox = document.getElementById("zip_entry");
	label = document.getElementById("parZIP");
	if(textbox.value == '') { 
		label.style.color = validateColor;
		cursor = entrybox;
		valid = false;
	} else {label.style.color = txtColor;}

	// state is only required for US addresses where we don't recognize the zip
	if (isUsa() && !zipInDatabase) {
		textbox = document.getElementById("state");
		entrybox = document.getElementById("state_entry");
		label = document.getElementById("parState");
		if(textbox.value == '') { 
			label.style.color = validateColor;
			cursor = entrybox;
			valid = false;
		} else {label.style.color = txtColor;}
	}

	// city is only required for when we don't recognize the zip
	if (!zipInDatabase) {
		textbox = document.getElementById("city");
		entrybox = document.getElementById("city_entry");
		label = document.getElementById("parCity");
		if(textbox.value == '') { 
			label.style.color = validateColor;
			cursor = entrybox;
			valid = false;
		} else {label.style.color = txtColor;}
	}

	if (vPhoneReqd) {
		textbox = document.getElementById("phone");
		entrybox = document.getElementById("phone_entry");
		label = document.getElementById("parPhone");
		if(textbox.value == '') { 
			label.style.color = validateColor;
			cursor = entrybox;
			valid = false;
		} else {label.style.color = txtColor;}
	}

	textbox = document.getElementById("email");
	entrybox = document.getElementById("email_entry");
	label = document.getElementById("parEmail");
	if (!echeck(textbox.value)) {
		label.style.color = validateColor;
		cursor = entrybox;
		valid = false;
	} else {label.style.color = txtColor;}

	// Some forms don't require company
	if (vCompanyReqd) {
		textbox = document.getElementById("00N70000001zAiQ"); // company
		entrybox = document.getElementById("company_entry");
		label = document.getElementById("parCompany");
		if(textbox.value == '') { 
			label.style.color = validateColor;
			cursor = entrybox;
			valid = false;
		} else {label.style.color = txtColor;}
	}

	textbox = document.getElementById("last_name");
	entrybox = document.getElementById("last_name_entry");
	label = document.getElementById("parLastName");
	if(textbox.value == '') { 
		label.style.color = validateColor;
		cursor = entrybox;
		valid = false;
	} else {label.style.color = txtColor;}

	textbox = document.getElementById("first_name");
	entrybox = document.getElementById("first_name_entry");
	label = document.getElementById("parFirstName");
	if(textbox.value == '') { 
		label.style.color = validateColor;
		cursor = entrybox;
		valid = false;
	} else {label.style.color = txtColor;}

/*add on 6/2/08 for annual sales, number of employees and title reqd*/

	// no title if we display the lead scoring "role in org" question
	// 12/4/09 - no longer want title to be required per chair selection
	/*
	if (!vLeadScoring) {
		textbox = document.getElementById("title");
		entrybox = document.getElementById("title_entry");
		label = document.getElementById("parTitle");
		if(textbox.value == '') { 
			label.style.color = validateColor;
			cursor = entrybox;
			valid = false;
		} else {label.style.color = txtColor;}
	}
	*/

	if (vSales) {
		textbox = document.getElementById("00N70000001zmoj");
		entrybox = document.getElementById("sales_entry");
		label = document.getElementById("parSales");
		if(textbox.value == '') { 
			label.style.color = validateColor;
			cursor = entrybox;
			valid = false;
		} else {label.style.color = txtColor;}

		textbox = document.getElementById("00N70000001ydiK");
		entrybox = document.getElementById("employee_entry");
		label = document.getElementById("parEmployee");
		if(textbox.value == '') { 
			label.style.color = validateColor;
			cursor = entrybox;
			valid = false;
		} else {label.style.color = txtColor;}
	}
/*end on add on reqd**/

	if (vLeadScoring) {
		textbox = document.getElementById("00N70000002LaHE");
		entrybox = document.getElementById("familiar_entry");
		label = document.getElementById("parFamiliar");
		if(textbox.value == '') { 
			label.style.color = validateColor;
			cursor = entrybox;
			valid = false;
		} else {label.style.color = txtColor;}

		textbox = document.getElementById("00N70000002LaH9");
		entrybox = document.getElementById("role_entry");
		label = document.getElementById("parRole");
		if(textbox.value == '') { 
			label.style.color = validateColor;
			cursor = entrybox;
			valid = false;
		} else {label.style.color = txtColor;}

		textbox = document.getElementById("00N70000001zn5t");
		entrybox = document.getElementById("org_type_entry");
		label = document.getElementById("parOrgType");
		if(textbox.value == '') { 
			label.style.color = validateColor;
			cursor = entrybox;
			valid = false;
		} else {label.style.color = txtColor;}

		textbox = document.getElementById("00N70000002LaHO");
		entrybox = document.getElementById("tenure_entry");
		label = document.getElementById("parTenure");
		if(textbox.value == '') { 
			label.style.color = validateColor;
			cursor = entrybox;
			valid = false;
		} else {label.style.color = txtColor;}

		textbox = document.getElementById("00N70000002LaHn");
		entrybox = document.getElementById("challenges_entry");
		label = document.getElementById("parChallenges");
		if(textbox.value == '') { 
			label.style.color = validateColor;
			cursor = entrybox;
			valid = false;
		} else {label.style.color = txtColor;}

		textbox = document.getElementById("00N70000002LaGz");
		entrybox = document.getElementById("experience_entry");
		label = document.getElementById("parPriorPeerGroup");
		if(textbox.value == '') { 
			label.style.color = validateColor;
			cursor = entrybox;
			valid = false;
		} else {label.style.color = txtColor;}
	}

	if (vChairFields) {
		textbox = document.getElementById("title");
		entrybox = document.getElementById("title_entry");
		label = document.getElementById("parTitle");
		if(textbox.value == '') { 
			label.style.color = validateColor;
			cursor = entrybox;
			valid = false;
		} else {label.style.color = txtColor;}

		textbox = document.getElementById("00N70000001zAiQ"); // company
		entrybox = document.getElementById("company_entry");
		label = document.getElementById("parCompany");
		if(textbox.value == '') { 
			label.style.color = validateColor;
			cursor = entrybox;
			valid = false;
		} else {label.style.color = txtColor;}

		textbox = document.getElementById("street");
		entrybox = document.getElementById("address_entry");
		label = document.getElementById("parAddress");
		if(entrybox.value == '') { 
			label.style.color = validateColor;
			cursor = entrybox;
			valid = false;
		} else {label.style.color = txtColor;}

		textbox = document.getElementById("city");
		entrybox = document.getElementById("city_entry");
		label = document.getElementById("parCity");
		if(entrybox.value == '') { 
			label.style.color = validateColor;
			cursor = entrybox;
			valid = false;
		} else {label.style.color = txtColor;}

		textbox = document.getElementById("00N70000001xwzM");
		entrybox = document.getElementById("howFamiliar_entry");
		label = document.getElementById("parHowFamilar");
		if(textbox.value == '') { 
			label.style.color = validateColor;
			cursor = entrybox;
			valid = false;
		} else {label.style.color = txtColor;}

		textbox = document.getElementById("00N70000001xwzH");
		entrybox = document.getElementById("companySize_entry");
		label = document.getElementById("parCompanySize");
		if(textbox.value == '') { 
			label.style.color = validateColor;
			cursor = entrybox;
			valid = false;
		} else {label.style.color = txtColor;}

		textbox = document.getElementById("00N70000001xwxB");
		entrybox = document.getElementById("highestExperience_entry");
		label = document.getElementById("parHighestExperience");
		if(textbox.value == '') { 
			label.style.color = validateColor;
			cursor = entrybox;
			valid = false;
		} else {label.style.color = txtColor;}

		textbox = document.getElementById("00N70000001xwxL");
		entrybox = document.getElementById("specialty_entry");
		label = document.getElementById("parSpecialty");
		if(textbox.value == '') { 
			label.style.color = validateColor;
			cursor = entrybox;
			valid = false;
		} else {label.style.color = txtColor;}

		textbox = document.getElementById("00N70000002Zs0Z");
		entrybox = document.getElementById("fivemillion_entry");
		label = document.getElementById("parFivemillion");
		if(textbox.value == '') { 
			label.style.color = validateColor;
			cursor = entrybox;
			valid = false;
		} else {label.style.color = txtColor;}

		textbox = document.getElementById("00N70000002Zs0Q");
		entrybox = document.getElementById("reportsCount_entry");
		label = document.getElementById("parReportsCount");
		if(textbox.value == '') { 
			label.style.color = validateColor;
			cursor = entrybox;
			valid = false;
		} else {label.style.color = txtColor;}

		textbox = document.getElementById("00N70000002Zs0U");
		entrybox = document.getElementById("fourtyHours_entry");
		label = document.getElementById("parFourtyHours");
		if(textbox.value == '') { 
			label.style.color = validateColor;
			cursor = entrybox;
			valid = false;
		} else {label.style.color = txtColor;}

		textbox = document.getElementById("00N70000002Zs0j");
		entrybox = document.getElementById("listening_entry");
		label = document.getElementById("parListening");
		if(textbox.value == '') { 
			label.style.color = validateColor;
			cursor = entrybox;
			valid = false;
		} else {label.style.color = txtColor;}
	}  // chair fields

	if (!valid) {
		// display generic error message
		document.getElementById("submitbtn").disabled = false;
		document.getElementById("formErrorMsg").style.display = "block";
		document.getElementById("formErrorMsg").style.color = validateColor;
		cursor.focus();
	}

	if (valid) {
		document.getElementById("realSubmitButton").click();
		document.getElementById("submitbtn").disabled = true;	
	}

}

/*
 * Validates email for subscribe to e-newsletter form only
 */
function validateEmail() {
	if ( !echeck(document.getElementById("f_vchEmailAddress").value)) {
		document.getElementById("eMailErrorMsg").style.display = "block";
		return false;
	} else {
		document.getElementById("eMailErrorMsg").style.display = "none";
		return true;
	}
}
/*
 * Validates email for subscribe to e-newsletter form only
 */
function validateEloqEmail() {
  
	if ( !echeck(document.getElementById("email_news").value)) {
		document.getElementById("eMailErrorMsg").style.display = "block";
		return false;
	} else {
		document.getElementById("eMailErrorMsg").style.display = "none";
		return true;
	}
}
/*Cut and paste code pulled from web 
Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
*/
function echeck(str) {

	var at = "@";
	var dot = ".";
	var lat = str.indexOf(at);
	var lstr = str.length;
	var ldot = str.indexOf(dot);

	if (str.indexOf(at) == -1) {
		return false;
	}

	if (str.indexOf(at) == -1 || str.indexOf(at) == 0 || str.indexOf(at) == lstr) {
		return false;
	}

	if (str.indexOf(dot) == -1 || str.indexOf(dot) == 0 || str.indexOf(dot) == lstr) {
		return false;
	}

	if (str.indexOf(at, (lat+1)) != -1) {
		return false;
	}

	if (str.substring(lat-1, lat) == dot || str.substring(lat+1, lat+2) == dot) {
		return false;
	}

	if (str.indexOf(dot, (lat+2)) == -1) {
		return false;
	}

	if (str.indexOf(" ") != -1) {
		return false;
	}

	return true;
}
