	
	var cr='\n'
	var msg='';
		

function isEmailAddr(email){
		var re = /[\w\.-]*[a-zA-Z0-9_]@[\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]/;
	if(!re.test(email)) {
		return false;
	}
	
	if (/\s/.test(email)){
		return false;
	}

	return true;
} // end isEmailAddr

function f_checkDigit(mpNum) {
	//test numeric and length
	 var re2 = /^\d{11}$/;
	 
    if (!re2.test(mpNum)) {
			alert("The Mileage Plus number must have 11-digits and no letters or spaces.");
			return false;
		}

    var factor = [5,4,3,2,7,6,5,4,3,2];
    var check = 0;
    for (var digit = 0; digit < 10; digit++)
        check += mpNum.charAt(digit) * factor[digit];
    check = (((11 - (check % 11)) % 11) % 10);
    // return (check == mpNum.charAt(10));
    
    if(check == mpNum.charAt(10)) {
      return true;
    } else {
      alert("The Mileage Plus number you entered is invalid, please try again.");
      return false;
    }
}

function validateForm(f) {
		clearElements("span");//reset color if necessary
		if (f.company_name.value == "") {
			changeStyleById("compna","bolder","normal","#cc0000");
			alert("Please enter the company name");
			f.company_name.focus();
			return false;
		}
		if (f.address1.value == "") {
			changeStyleById("adr1","bolder","normal","#cc0000");
			alert("Please enter an address");
			f.address1.focus();
			return false;
		}
		if (f.city.value == "") {
			changeStyleById("cty","bolder","normal","#cc0000");
			alert("Please enter a city");
			f.city.focus();
			return false;
		}
		if (f.state[f.state.selectedIndex].value==0) {
			changeStyleById("st","bolder","normal","#cc0000");
			alert("Please enter the state or province");
			f.state.focus();
			return false;
		}
		if (f.zip.value == "") {
			alert("Please enter a zip/postal code");
			changeStyleById("zppr","bolder","normal","#cc0000");
			f.zip.focus();
			return false;
		}

		if (f.tax_id.value == "" || !IsNumeric(f.tax_id)) {
			alert("Please enter a federal tax payer id number in this format: 363803855");
			changeStyleById("feinn","normal","normal","#cc0000");
			f.tax_id.select();
			f.tax_id.focus();
			return false;
		}
		if (f.business_type[f.business_type.selectedIndex].value==0) {
			changeStyleById("typeo","bolder","normal","#cc0000");
			alert("Please enter the type of business");
			f.business_type.focus();
			return false;
		}
		if (f.employees[f.employees.selectedIndex].value==0) {
			changeStyleById("noemp","normal","normal","#cc0000");
			alert("Please enter the number of employees");
			f.employees.focus();
			return false;
		}
		if (f.travelers[f.travelers.selectedIndex].value==0) {
			changeStyleById("notvlrs","normal","normal","#cc0000");
			alert("Please enter the number of travelers");
			f.travelers.focus();
			return false;
		}
		if (f.depart_airport.value == "") {
			changeStyleById("dpcd","bolder","normal","#cc0000");
			alert("Please enter the departure airport");
			f.depart_airport.focus();
			return false;
		}
		if (f.lead_source[f.lead_source.selectedIndex].value==0) {
			changeStyleById("leadsotype","bolder","normal","#cc0000");
			alert("Please enter how you heard about PerksPlus");
			f.lead_source.focus();
			return false;
		}
		if (f.name.value == "") {
			changeStyleById("conname","bolder","normal","#cc0000");
			alert("Please enter your name");
			f.name.focus();
			return false;
		}
		if (f.email.value == "" || !isEmailAddr(f.email.value)) {
			changeStyleById("coeml","bolder","normal","#cc0000");
			alert("Please enter a complete email address in the form: yourname@yourdomain.com");
			f.email.select();
			f.email.focus();
			return false;
		}
		if (f.phone.value == "") {
			changeStyleById("bpn","bolder","normal","#cc0000");
			alert("Please enter your business phone number");
			f.phone.focus();
			return false;
		}

		if (f.mp.value.length > 0) {
			if (!f_checkDigit(f.mp.value)){
			changeStyleById("mpnumm","bolder","normal","#cc0000");
				f.mp.focus();
				return false;
			}
		}
		if (f.travel_coordinator[0].checked == false && f.travel_coordinator[1].checked == false) {
			changeStyleById("tc","bolder","normal","#cc0000");
			alert("Please indicate if you manage your organization's travel program");
			return false;
		}
		if ( f.book_online[0].checked == false && f.book_online[1].checked == false) {
			changeStyleById("bol","bolder","normal","#cc0000");
			alert("please indicate if you book travel online");
			return false;
		}
		if ( f.book_online[0].checked == true) {
			if (f.booking_sites.value == "") {
			changeStyleById("wsbtn","bolder","normal","#cc0000");
				alert("Please indicate online booking site(s)");
				f.booking_sites.focus();
				return false;
			}
		}
		if (f.travel_exp[f.travel_exp.selectedIndex].value==0) {
			changeStyleById("ttlexp","normal","normal","#cc0000");
			alert("Please enter your total air travel expenditure");
			f.travel_exp.focus();
			return false;
		}
		if (f.united_exp[f.united_exp.selectedIndex].value==0) {
			changeStyleById("uaexp","normal","normal","#cc0000");
			alert("Please select your potential United expenditure");
			f.united_exp.focus();
			return false;
		}
		if (f.corp_agreement[0].checked == false && f.corp_agreement[1].checked == false) {
			changeStyleById("crpag","bolder","normal","#cc0000");
			alert("Please indicate if your corporation currently has an agreement");
			return false;
		}

		if ( f.corp_agreement[0].checked == true) {
			if (f.corp_program.value == "") {
			changeStyleById("wcpn","bolder","normal","#cc0000");
				alert("Please indicate which corporate agreement you have with United");
				f.corp_program.focus();
				return false;
			}
		}
		if (f.travel_agency[0].checked == false && f.travel_agency[1].checked == false) {
			changeStyleById("user","bolder","normal","#cc0000");
			alert("Please indicate if company uses a travel agent");
			return false;
		}
		if (f.agent[0].checked == true) {
			if (f.agent_name.value == "") {
				changeStyleById("agname","bolder","normal","#cc0000");
				alert("Since you are an agent, please enter your name in Agent Name");
				f.agent_name.focus();
				return false;
			}
			if (f.agency_name.value == "") {
				changeStyleById("agyname","bolder","normal","#cc0000");
				alert("Since you are an agent, please enter your Agency Name");
				f.agency_name.focus();
				return false;
			}
			if( f.trvlMgtARCNo.value == "" || f.trvlMgtARCNo2.value == "") {
				changeStyleById("arc","bolder","normal","#cc0000");
				alert("Since you are an agent, please enter your Agency ARC/IATA number");
				f.trvlMgtARCNo.focus();
				return false;
			}
			if (f.agency_phone.value == "") {
				changeStyleById("agph","bolder","normal","#cc0000");
				alert("Since you are an agent, please enter your Agency phone number");
				f.agency_phone.focus();
				return false;
			}
			if (f.agency_email.value == "" || !isEmailAddr(f.agency_email.value)) {
				changeStyleById("ageml","bolder","normal","#cc0000");
				alert("Since you are an agent,\nplease enter a complete email address in the form: yourname@yourdomain.com for Agency");
				f.agency_email.focus();
				return false;
			}
			if (f.agency_address.value == "") {
				changeStyleById("agadr","bolder","normal","#cc0000");
				alert("Since you are an agent,\nplease enter the Agency address");
				f.agency_address.focus();
				return false;
			}	
		}
		if (f.agent[0].checked == false && f.agent[1].checked == false) {
			changeStyleById("tagent","bolder","normal","#cc0000");
			alert("Please indicate if you are filling this out as a travel agent");
			return false;
		}
		
		if (f.agree.checked == false) {
			changeStyleById("terms","bolder","normal","#cc0000");
			alert("Please confirm that you have read and agree with the terms and conditions");
			return false;
		}
		
		return true;

	} // end validate Form

function validateCriteriaForm(f) {
	
		
		if (f.travelers[f.travelers.selectedIndex].value == "0" || f.travelers[f.travelers.selectedIndex].value == "1 to 4 employees") {
			return false;
		}		
		
		if (f.united_exp[f.united_exp.selectedIndex].value == "0" || f.united_exp[f.united_exp.selectedIndex].value == "$4,999 or less" || f.united_exp[f.united_exp.selectedIndex].value == "$5,000 to $19,999") {
			return false;
		}

		return true;
	}
	
function packData() {

		var f = document.emailForm;
		
		if (validateForm(f)) {

			var from_address = "";
			var subject = "";
			var body = "";

			var to_address 	= "";
			
			from_address =  escape(f.email.value);
			if (from_address=="") {
				from_address="businessection@ual.com";
			}
			subject = escape("United.com Enrollment Request form {"+ f.name.value + "} (" + f.email.value+ ")");
			to_address = escape(f.toName.value);
			var travel_coordinator = "";
			var travel_agency = "";
			var book_online = "";
			var corp_agreement = "";
			var agent = "";
			travel_coordinator = (f.travel_coordinator[0].checked == true) ? "Yes" :"No";
			travel_agency = (f.travel_agency[0].checked == true) ? "Yes" : "No";
			book_online = (f.book_online[0].checked == true) ? "Yes" : "No";
			corp_agreement = (f.corp_agreement[0].checked == true) ? "Yes" : "No";
			agent = (f.agent[0].checked == true) ? "Yes" : "No";

			body =  "United.com Enrollment Request form {"+ f.name.value + "} (" + f.email.value+ ")" +
			"\r\nCompany info:" +
			"\r\n\tName: " + f.company_name.value +
			"\r\n\tAddr1: " + f.address1.value +
			"\r\n\tAddr2: " + f.address2.value +
			"\r\n\tCity: " + f.city.value +
			"\r\n\tState: " + f.state[f.state.selectedIndex].value +
			"\r\n\tZip: " + f.zip.value +
			"\r\n\tFEIN: "+f.tax_id.value +
			"\r\n\tBus type: " + f.business_type.options[f.business_type.selectedIndex].text +
			"\r\n\tNo employees: " + f.employees[f.employees.selectedIndex].value +
			"\r\n\tNo travelers: " + f.travelers[f.travelers.selectedIndex].value +
			"\r\n\tDeparture airport: " + f.depart_airport.value +
			"\r\n\tLead source: " + f.lead_source.value +
			"\r\nContact Info:" +
			"\r\n\tName: " + f.name.value +
			"\r\n\tBus phone: " + f.phone.value +
			"\r\n\tExt: " + f.ext.value + 
			"\r\n\tDirect phone: " + f.dphone.value + 
			"\r\n\tEmail: " + f.email.value + 
			"\r\n\tMP No: " + f.mp.value + 
			"\r\n\tTravel coordinator: " + travel_coordinator + 
			"\r\nBook online: " + book_online;
			if ( f.book_online[0].checked == true) {
				body += "\r\n\tOnline sites: " + f.booking_sites.value;
			}
			body +=	"\r\nTravel expenditure: " + f.travel_exp[f.travel_exp.selectedIndex].value + 
			"\r\nPotential United travel expenditure: " + f.united_exp[f.united_exp.selectedIndex].value + 
			"\r\nCorporate agreement:  " + corp_agreement;
			if (f.corp_agreement[0].checked == true) { 
				body += "\r\n\tCorporate program: " + f.corp_program.value; 
			}
			body += "\r\nUses travel agency: " + travel_agency;
			if (f.travel_agency[0].checked == true || f.agent[0].checked == true) {
				body += "\r\n\tTvl Mgr: " + f.agent_name.value + 
				"\r\n\tTMC name: " + f.agency_name.value +
				"\r\n\tARC number: " + f.trvlMgtARCNo.value + f.trvlMgtARCNo2.value + 
				"\r\n\tTMC Phone: " + f.agency_phone.value + 
				"\r\n\tTMC Email address: " + f.agency_email.value + 
				"\r\n\tTMC address: " + f.agency_address.value + "";
			}
			body += "\r\nAre you a travel agent: " + agent + "\r\n";
			f.body.value=body;
			//alert(f.body.value);   //testing only
			var action = "";
			if (validateCriteriaForm(f)) {
				// send an email messsage and then redirect to a jump link, that will
				// take the user to the orphan page.
				
				//action for development and staging - includes link to staging CMA page, which redirects to thank you URL
				//action = "http://www.united.com/ualweb" + "/cda/form/processor.jsp?locPageId=" + 3524 + "&to_address=" + to_address + "&from_address=" + from_address + "&subject=" + subject + "&page_confirmation=/page/genericpage/1,,52466,00.html";	
				
				//action for production - includes link to production CMA page, which redirects to thank you URL
				action = "http://www.united.com/ualweb" + "/cda/form/processor.jsp?locPageId=" + 3524 + "&to_address=" + to_address + "&from_address=" + from_address + "&subject=" + subject + "&page_confirmation=/page/genericpage/0,6660,52585,00.html";	
				} else {
				// this is the link that works in DEV.
				//action = "noAccept.html"; 
				
				//action for production  - includes link to production CMA page, which redirects to no accept URL. 
				action = "http://www.united.com/page/genericpage/0,6660,52587,00.html";
			}			
			
			f.action=action;
			return true;

		} else {
			return false;
		}

	} // end packData

function changeStyleById(id,fw,fs,colr){
	if (document.getElementById) {
	   var nodeObj = document.getElementById(id);
	   nodeObj.style.fontWeight = fw;
	   nodeObj.style.fontStyle = fs;
	   nodeObj.style.color = colr;
   }
}
function getCollection(tagname) {
	var coll = [], el, i = 0;
	var subcoll = document.getElementsByTagName(tagname);
	while (el = subcoll.item(i++))
		coll[coll.length] = el;
	return coll;
}

function clearElements(type) {
	var el, i = 0, str = '', all_spans = getCollection(type);
	while (el = all_spans[i]) {
		if(all_spans[i].id != "") {
			changeStyleById(all_spans[i].id,"normal","normal","#333333")
		}
		++i;
	}
}

var downStrokeField;
function autojump(fieldName,nextFieldName,fakeMaxLength)
{
var myForm=document.forms[document.forms.length - 1];
var myField=myForm.elements[fieldName];
myField.nextField=myForm.elements[nextFieldName];

if (myField.maxLength == null)
   myField.maxLength=fakeMaxLength;

myField.onkeydown=autojump_keyDown;
myField.onkeyup=autojump_keyUp;
}

function autojump_keyDown()
{
this.beforeLength=this.value.length;
downStrokeField=this;
}

function autojump_keyUp()
{
if (
   (this == downStrokeField) && 
   (this.value.length > this.beforeLength) && 
   (this.value.length >= this.maxLength)
   )
   this.nextField.focus();
	 downStrokeField=null;
}

