var spouse=new Array("","","","","","","");

function checkSubmit(form){									

	//Company name cannot contain a number
	if(!noNum(form.group_company.value)) {
		alert("Your company name appears to have been entered incorrectly. Please re-enter your first name.");
		form.group_company.focus();
		return false;
	}
	
	//Company name cannot be left blank
	if(form.group_company.value == "") {
		alert("Please enter your company name.");
		form.group_company.focus();
		return false;
	}

	//First name cannot contain a number
	if(!noNum(form.first_name.value)) {
		alert("Your first name appears to have been entered incorrectly. Please re-enter your first name.");
		form.first_name.focus();
		return false;
	}
	
	//First name cannot be left blank
	if(form.first_name.value=="") {
		alert("Please enter your first name.");
		form.first_name.focus();
		return false;
	}

	//Last name cannot contain a number
	if(!noNum(form.last_name.value)) {
		alert("Your last name appears to have been entered incorrectly. Please re-enter your first name.");
		form.last_name.focus();
		return false;
	}
	
	//Last name must be at least two characters long
	if(form.last_name.value=="" || form.last_name.value.length < 2) {
		alert("Please enter your last name.");
		form.last_name.focus();
		return false;
	}

	//Street address must contain at least 1 letter and 1 number
	if(form.address_1_street1.value=="" || !validAddress(form.address_1_street1.value)) {
		alert("Your address appears to have been entered incorrectly. Please re-enter your address, including your street name and number.");
		form.address_1_street1.focus();
		return false;
	}

	//City cannot contain a number
	if(!noNum(form.address_1_city.value)) {
		alert("The name of your city appears to have been entered incorrectly. Please re-enter the name of your city or town.");
		form.address_1_city.focus();
		return false;
	}
	
	//City cannot be blank
	if(form.address_1_city.value=="") {
		alert("Please enter the name of your city or town.");
		form.address_1_city.focus();
		return false;
	}
		
	//State must be selected
	if(form.address_1_state.value=="") {
		alert("Please select the state you live in.");
		form.address_1_state.focus();
		return false;
	}

	//Zip must be 5 numbers
	if(form.address_1_zip.value=="" || isNaN(form.address_1_zip.value) || form.address_1_zip.value.length != 5) {
		alert("Your Zip code appears to have been entered incorrectly. Please re-enter your Zip code.");
		form.address_1_zip.value="";
		form.address_1_zip.focus();
		return false;
	}

	//First section of phone number must contain 3 characters, second section 3 charaters, third section 4 characters
	if(form.phone1_1.value == "" || form.phone1_2.value == "" || form.phone1_3.value == "" || form.phone1_1.value.length < 3 || form.phone1_2.value.length < 3 || form.phone1_3.value.length < 4) {
		alert("Your phone number appears to have been entered incorrectly. Please re-enter your phone number.");
		form.phone1_1.focus();
		return false;
	}

	document.getElementById('phone').value = document.getElementById('phone1_1').value+document.getElementById('phone1_2').value+document.getElementById('phone1_3').value;

	var stripped=form.phone.value.replace(/[\(\)\.\-\ ]/g,'');

	if(isNaN(parseInt(stripped))) {
		alert("Your phone number appears to have been entered incorrectly. Please re-enter your phone number.");
		document.getElementById('phone1_1').focus();
		return false;
	}

	//Email cannot be left blank
	if(form.email.value == "") {
		alert("Please enter your email address.");
		form.email.focus();
		return false;
	}

	//Email must be in a proper format
	if (!emailCheck(form.email.value)) {
		alert ("Your email address appears to have been entered incorrectly. Please re-enter your email address, using the format \"name@domain.com\"");
		form.email.focus();
		return false;
	}
	
	//Email domain must have a valid extension
	if(!validDomain(form.email.value)) {
		alert("Your email address appears to have been entered incorrectly. Please re-enter your email address, using the format \"name@domain.com\"");
		form.email.focus();
		return false;
	}

	var coverages = "";
	for(var i=0; i<10; i++){
		var e = document.getElementById("coverage_type_item_"+i);
		if(e!=null && e.checked){
			if(coverages.length>0)
				coverages += ", ";
			coverages += e.value;
			form.coverage_type.value = coverages;
		}
	}
	
	if (coverages=="") {
		alert("Please enter at least one plan type.");
		return false;
	}

	if (form.number_of_employees.value == 0) {
		alert("Please enter the number of employees.");
		return false;
	}
	if(!employeeCheck(form.number_of_employees.value)) {
		return false;
	}
	if(form.address_1_state.value=="CA" || form.address_1_state.value=="NV" || form.addresss_1_state.value=="CO") {
		form.action="/SiteLever/quoteMail.jsp";
		return true;
	}
	
	return true;
}

function changeEmployees(value) {
	for (var i=1; i <= 50; i++) {
		var htmlBlock = "";
		if (i <= value) {
			// create the htmlBlock if the div is empty
			if (document.getElementById('employee_option' + i).innerHTML == "") {
				htmlBlock = '<table cellpadding="2" cellspacing="1" border="0" class="table1" style="margin-left: 6px;">';
				htmlBlock += '<tr>' +
	                           '<td class="col1"><input type="text" maxlength="30" name="gh_insured_' + i + '_first_name" id="gh_insured_' + i + '_first_name" style="width: 90px;"></td>' +
	                           '<td class="col2"><input type="text" maxlength="30" name="gh_insured_' + i + '_last_name" id="gh_insured_' + i + '_last_name" style="width: 90px;"></td>' +
	                           '<td class="col3"><input type="text" maxlength="5" name="gh_insured_' + i + '_zip" id="gh_insured_' + i + '_zip" style="width: 45px;"></td>' +
	                           '<td class="col4" nowrap>' + 
	                             '<input type="text" name="gh_insured_' + i + '_dobMM" id="gh_insured_' + i + '_dobMM" value="" maxlength="2" style="width: 17px;">/' +
	                             '<input type="text" name="gh_insured_' + i + '_dobDD" id="gh_insured_' + i + '_dobDD" value="" maxlength="2" style="width: 17px;">/' +
	                             '<input type="text" name="gh_insured_' + i + '_dobYYYY" id="gh_insured_' + i + '_dobYYYY" value="" maxlength="4" style="width: 29px;"></td>' +
	                           '<td class="col5">' +
	                             '<select name="gh_insured_' + i + '_gender" id="gh_insured_' + i + '_gender" size="1">' +
	                               '<option value="">--</option>' +
	                               '<option value="Male">M</option>' + 
	                               '<option value="Female">F</option>' +
	                             '</select>' +
	                           '</td>' +
	                           '<td class="col6"><input type="checkbox" value="Yes" name="gh_insured_' + i + '_spouse" id="gh_insured_' + i + '_spouse" class="no-border"></td>' +
	                           '<td class="col7"><input type="checkbox" value="Yes" name="gh_insured_' + i + '_children" id="gh_insured_' + i + '_children" class="no-border"></td>' +
	                         '</tr>';
	        	htmlBlock += '</table>';
	        	document.getElementById('employee_option' + i).innerHTML += htmlBlock;
	        }
	        // display the employee input line
	        eval(document.getElementById('employee_option' + i)).style.display = '';
       	} else {
       		if (document.getElementById('employee_option' + i).innerHTML != "") {
				eval(document.getElementById('employee_option' + i)).style.display = 'none';
			}
       	}
	}
}

function printDepententcontainers(){ 
    document.write('<table cellpadding="2" cellspacing="1" class="form" id="census-data-head" border="0" style="display: none; margin-left: 6px;">'
	+'<tbody>'
    +'<tr>'
    +'<td class="col1">First Name</td>'
    +'<td class="col2">Last Name</td>'
    +'<td class="col3">ZIP</td>'
    +'<td class="col4">Birth date</td>'
    +'<td class="col5">Gender</td>'
    +'<td class="col6">Spouse</td>'
    +'<td class="col7">Children</td>'
    +'</tr>'
	+'</tbody>'
    +'</table>');
    for(var i=1;i<=50;i++){ document.write('<div id=employee_option'+i+' style="display:none"></div>'); } 
}

function employeeCheck(number_of_employees) {
	if (number_of_employees == 0) {
		alert("Please choose the number of employees.");
		return false;
	} else {
		for (var i = 1; i <= number_of_employees; i++) {
			if (document.getElementById("gh_insured_" + i + "_first_name").value=="") {
				alert("Please enter the " + i + " employee's first name.");
				return false;
			}
			if(!noNum(document.getElementById("gh_insured_"+i+"_first_name").value)) {
				alert("The " + i + " employee's first name appears incorrect. Please re-enter the " + i + " employee's first name.");
				return false;
			}
			if (document.getElementById("gh_insured_" + i + "_last_name").value=="") {
				alert("Please enter the " + i + " employee's last name.");
				return false;
			}
			if(!noNum(document.getElementById("gh_insured_"+i+"_last_name").value)) {
				alert("The " + i + " employee's last name appears incorrect. Please re-enter the " + i + " employee's last name.");
				return false;
			}
			if (document.getElementById("gh_insured_" + i + "_zip").value=="") {
				alert("Please enter the " + i + " employees's ZIP code.");
				return false;
			}
			if (isNaN(document.getElementById("gh_insured_" + i + "_zip").value) || document.getElementById("gh_insured_" + i + "_zip").value.length!=5) {
				alert("The " + i + " employees's ZIP code appears incorrect. Please re-enter the " + i + " employees's ZIP code.");
				return false;
			}
			if (document.getElementById("gh_insured_" + i + "_dobMM").value=="" ||
				document.getElementById("gh_insured_" + i + "_dobDD").value=="" ||
				document.getElementById("gh_insured_" + i + "_dobYYYY").value=="") {
				alert("Please enter the " + i + " employee's birth date.");
				return false;
			}
			if (isNaN(document.getElementById("gh_insured_" + i + "_dobMM").value) || isNaN(document.getElementById("gh_insured_" + i + "_dobDD").value) || isNaN(document.getElementById("gh_insured_" + i + "_dobYYYY").value) || document.getElementById("gh_insured_" + i + "_dobMM").value>12 || document.getElementById("gh_insured_" + i + "_dobDD").value>31 || document.getElementById("gh_insured_" + i + "_dobYYYY").value<1886 || document.getElementById("gh_insured_" + i + "_dobYYYY").value>2007) {
				alert("The " + i + " employee's date of birth appears incorrect. Please re-enter the " + i + " employee's date of birth.");
				return false;
			}
			if (document.getElementById("gh_insured_" + i + "_gender").value=="") {
				alert("Employee " + i + " Gender is not set.");
				return false;
			}
		}
	}
	return true;
}

function unSetConditions() {

	document.getElementById("aids").checked=false;
	document.getElementById("alzheimer").checked=false;
	document.getElementById("heart-disease").checked=false;
	document.getElementById("kidney-disease").checked=false;
	document.getElementById("liver-disease").checked=false;
	document.getElementById("mental-illness").checked=false;
	document.getElementById("pulmonary-disease").checked=false;
	document.getElementById("stroke").checked=false;

}

function makePopUp(whereTo,winWidth,winHeight) {
	remote= window.open("","remotewin","width="+winWidth+",height="+winHeight+",menubar=0,toolbar=no,scrollbars=yes");
	remote.location.href = whereTo;remote.focus();
}

function emailCheck(emailStr){
   var emailPat=/^(.+)@(.+)$/
   var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
   var validChars="\[^\\s" + specialChars + "\]"
   var quotedUser="(\"[^\"]*\")"
   var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
   var atom=validChars + '+';
   var word="(" + atom + "|" + quotedUser + ")";
   var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
   var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
   var matchArray=emailStr.match(emailPat)
   if(matchArray==null){return false;}
   var user=matchArray[1];
   var domain=matchArray[2];
   if(user.match(userPat)==null){return false;}
   var IPArray=domain.match(ipDomainPat);
   if(IPArray!=null){for(var i=1;i<=4;i++){if(IPArray[i]>255){return false;}}return true;}
   var domainArray=domain.match(domainPat);
   if(domainArray==null){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>3){return false;}
   if(len<2){var errStr="This address is missing a hostname!";return false;}
   return true;
}

function ltrim(s){return s.replace(/^\s*/,"");}
function rtrim(s){return s.replace(/\s*$/,"");}
function trim(s){return rtrim(ltrim(s));}

function noNum(s){
	for(var i = 0; i < s.length; i++)
		if(!isNaN(s.charAt(i)) && s.charAt(i)!=" ")
			return false;
	return true;
}

function validAddress(s) {
	var numbers = false;
	var letters = false;
	for(var i = 0; i < s.length; i++) {
		if(!isNaN(s.charAt(i)) && s.charAt(i)!=" ")
			numbers = true;
		else
			letters = true;
		if(numbers && letters)
			return true;
	}
	return false;	
}

function validDomain(email){
	//Divide email by @
	var split_email = email.split("@");
	
	var domain=split_email[1];
	
	while(domain.indexOf(".")!=-1){
		//Find extension by splitting domain by .
		domain = domain.slice(domain.indexOf(".")+1);
	}

	var valid=false;
	
	//Array of possible domain extensions
	var valid_domains = new Array("aero","asia","biz","cat","com","coop","edu","gov","info","int","jobs","mil","mobi","museum","name","net","org","pro","tel","travel","ac","ad","ae","af","ag","ai","al","am","an","ao","aq","ar","as","at","au","aw","ax","az","ba","bb","bd","be","bf","bg","bh","bi","bj","bm","bn","bo","br","bs","bt","bv","bw","by","bz","ca","cc","cd","cf","cg","ch","ci","ck","ch","ci","ck","cl","cm","cn","co","cr","cu","cv","cx","cy","cz","de","dj","dk","dm","do","dz","ec","ee","eg","er","es","et","eu","fi","fj","fk","fm","fo","fr","ga","gb","gd","ge","gf","gg","gh","gi","gl","gm","gn","gp","gq","gr","gs","gt","gu","gw","gy","hk","hm","hn","hr","ht","hu","id","ie","il","im","in","io","iq","ir","is","it","je","jm","jo","jp","ke","kg","kh","ki","km","kn","kr","kw","ky","la","lb","lc","li","lk","lr","ls","lt","lu","lv","ly","ma","mc","md", "mg","mh","mk","ml","mm","mn","mo","mp","mq","mr","ms","mt","mu","mv","mw","mx","my","mz","na","nc","ne","nf","ng","ni","nl","no","np","nr","nu","nz","om","pa","pe","pf","pg","ph","pk","pl","pm","pn","pr","ps","pt","pw","py","qa","re","ro","ru","rw","sa","sb","sc","sd","se","sg","sh","si","sj","sk","sl","sm","sn","so","sr","st","su","sv","sy","sz","tc","td","tf","tg","th","tj","tk","tl","tm","tn","to","tp","tr","tt","tv","tw","tz","ua","ug","uk","um","us","uy","uz","va","vc","ve","vg","vi","vn","vu","wf","ws","ye","yt","yu","za","zm","zw");
	
	//Check if domain extension is valid
	for(var i = 0; i < valid_domains.length; i++) {
		if(domain==valid_domains[i])
			valid=true;
	}
	
	return valid;
}

function showHidden(id, flag) {
	if(flag.toLowerCase()=="yes") 
		document.getElementById(id).style.display="block";
	else
		document.getElementById(id).style.display="none";
}

function clearComment() {
	document.getElementById('comments').value="";
}