//======================= GENERAL FUNCTIONS =====================

function expend_dyn(elem){
	elem = document.getElementById(elem);
	if (elem.className == 'hidden') elem.className = '';
	else elem.className = 'hidden';
}

function expend(elem, cond){
	elem = document.getElementById(elem);
	if (cond) elem.className = '';
	else elem.className = 'hidden';
}

function grayed_check(elem, def_class){
	elem = document.getElementById(elem);
	if (elem.value != '') {
		if (elem.value != elem.defaultValue) elem.className = def_class;
	} else {
		elem.className = def_class + ' grayed';
		elem.value = elem.defaultValue;
	}
}

function reveal_valid(elem, cond){
	alert(cond);
}

function changeToNumeric(nowField, max_val){
	tmpValue = document.getElementById(nowField).value;
	tmpValue = tmpValue.replace(/[^-^0-9]/ig, "");
	document.getElementById(nowField).value=tmpValue;
	if(max_val!=-1)if(parseInt(document.getElementById(nowField).value)*1>max_val)document.getElementById(nowField).value=max_val;
}

function checkLivePhone(elemID, nextElemID, step) {
	var elem = document.getElementById(elemID);
	switch (step) {
		case 1:
		case 2:
			if (elem.value.length == 3)
				//document.getElementById(nextElemID).focus();
			break;
		case 3:
			if (elem.value.length == 4)
				//document.getElementById(nextElemID).focus();
			break;
	}
}


function verify_live_phone() {
	document.getElementById('lbl_phone1a').className = '';
	var phone = document.getElementById("phone1a").value + 
				document.getElementById("phone1b").value + 
				document.getElementById("phone1c").value
	if(parseInt(phone) && (phone.length == 10))
		verify_phone(phone);
	else if (phone.length == 10)
		document.getElementById('lbl_phone1a').className = 'valid no';
}

//================================================================

function onload_process(){
	//grayed_check('other11', 'mid');
	//grayed_check('drug11', 'mid');
	//if (document.getElementById('conMe1').checked) expend('dyn_ex_con', true);
	//if (document.getElementById('other1').checked) expend('dyn_other', true);
	//if (document.getElementById('drug1').checked) expend('dyn_drug', true);
}

var now=new Date();
now.setDate(now.getDate() + 1); //add a day to the date so the bDay will be matched exactly!
Month=now.getMonth();              
Day=now.getDate();                 
Year=now.getYear();

function checkAge() {
	if(document.getElementById('birthMonth').value!=""&&document.getElementById('birthDay').value!=""&&document.getElementById('birthYear').value!=""){
		if(Year<1000)Year+=1900;
		by=document.getElementById('birthYear').value;
		bm=document.getElementById('birthMonth').value;
		bd=document.getElementById('birthDay').value;
		BDate=Date.UTC(by,bm,bd);
		if(Year<2000)CDate = Date.UTC(Year,Month,Day);
		else CDate = Date.UTC(Year,Month,Day);
		Age=CDate-BDate + (1000*60*60*24*30); 
		Age=parseInt(((((Age/1000)/60)/60)/24)/365.25,10);
		if(Age>=64){
			document.getElementById('alert_medicare').className='visible';
			reveal_alert_pop(true);
		}
	}
}

function verify(step){
	//collect_error_me_multi = "";
	first_element_error_me_multi = ""
	first_message_error_me_multi = "";
	first_caption_error_me_multi = "";
	err_error_me_multi = false;
	error_me_multi_clean();
	if (!ajaxWorking) {
		switch(step){
			case 1:
				now_field="firstName";
					if(document.getElementById(now_field).value=="") error_me_multi(now_field, 'Please enter First Name');
				now_field="lastName";
					if(document.getElementById(now_field).value=="") error_me_multi(now_field, 'Please enter Last Name');
				
				now_field="gender";
					if(!document.getElementById(now_field+'1').checked && !document.getElementById(now_field+'0').checked) error_me_multi(now_field+'0', 'Please select Gender', now_field);
				
				now_field="birthMonth";
					if(document.getElementById(now_field).value=="") error_me_multi(now_field, 'Please select Date of Birth', 'birth');
				now_field="birthDay";
					if(document.getElementById(now_field).value=="") error_me_multi(now_field, 'Please select Date of Birth', 'birth');
				now_field="birthYear";
					if(document.getElementById(now_field).value=="") error_me_multi(now_field, 'Please select Date of Birth', 'birth');
					
				now_field="marital";
					if(document.getElementById(now_field).value=="") error_me_multi(now_field, 'Please select Marital Status');
				now_field="kids";
					if(document.getElementById(now_field).value=="") error_me_multi(now_field, 'Please select Number of Children');
					
				now_field="income";
					if(document.getElementById(now_field).value=="") error_me_multi(now_field, 'Please select Annual Household Income');
					
				now_field="selfEmployed";
					if(!document.getElementById(now_field+'1').checked && !document.getElementById(now_field+'0').checked) error_me_multi(now_field+'0', 'Please answer: Are you self employed?', now_field);
					
				now_field="owner";
					if(!document.getElementById(now_field+'1').checked && !document.getElementById(now_field+'0').checked) error_me_multi(now_field+'0', 'Please answer: Do you own or rent your home?', now_field);
					
				break;
				
			case 2:
				now_field="insured";
					if(!document.getElementById(now_field+'1').checked && !document.getElementById(now_field+'0').checked) error_me_multi(now_field+'0', 'Are you currently insured?', now_field);
					if(document.getElementById(now_field+'1').checked){
						now_field="insComp";
						if(document.getElementById(now_field).value=="") error_me_multi(now_field, 'Current insurance company');
					}
				now_field="height";
					if(document.getElementById(now_field+'1').value=="") error_me_multi(now_field+'1', 'Height', now_field);
					if(document.getElementById(now_field+'2').value=="") error_me_multi(now_field+'2', 'Height', now_field);
				now_field="weight";
					if(document.getElementById(now_field).value=="") error_me_multi(now_field, 'Weight');
				now_field="pregnant";
					if(!document.getElementById(now_field+'1').checked && !document.getElementById(now_field+'0').checked) error_me_multi(now_field+'0', 'Please answer: Is anyone to be insured currently pregnant?', now_field);
				now_field="deniedInsurance";
					if(!document.getElementById(now_field+'1').checked && !document.getElementById(now_field+'0').checked) error_me_multi(now_field+'0', 'Please answer: Has anyone to be insured ever been denied health coverage?', now_field);
				now_field="conMe";
					if(!document.getElementById(now_field+'1').checked && !document.getElementById(now_field+'0').checked) error_me_multi(now_field+'0', 'Do you currently have any existing health conditions?', now_field);
					
				//SPOUSE
				if (document.getElementById('firstName_')) {
					now_field="firstName_";
						if(document.getElementById(now_field).value=="") error_me_multi(now_field, 'Please enter Spouse First Name');
					now_field="lastName_";
						if(document.getElementById(now_field).value=="") error_me_multi(now_field, 'Please enter Spouse Last Name');
					now_field="birthMonth_";
						if(document.getElementById(now_field).value=="") error_me_multi(now_field, 'Please select Spouse Date of Birth', 'birth_');
					now_field="birthDay_";
						if(document.getElementById(now_field).value=="") error_me_multi(now_field, 'Please select Spouse Date of Birth', 'birth_');
					now_field="birthYear_";
						if(document.getElementById(now_field).value=="") error_me_multi(now_field, 'Please select Spouse Date of Birth', 'birth_');
					now_field="height";
						if(document.getElementById(now_field+'1_').value=="") error_me_multi(now_field+'1_', 'Height', now_field + "_");
						if(document.getElementById(now_field+'2_').value=="") error_me_multi(now_field+'2_', 'Height', now_field + "_");
					now_field="weight_";
						if(document.getElementById(now_field).value=="") error_me_multi(now_field, 'Weight');
					now_field="conMe_";
						if(!document.getElementById(now_field+'1').checked && !document.getElementById(now_field+'0').checked) error_me_multi(now_field+'0', 'Do you currently have any existing health conditions?', now_field);
				}
				
				//KIDS
				for (j = 1; j <= 5; j++){
					if (document.getElementById('birthMonth_child' + j)) {
						now_field="birthMonth_child" + j;
							if(document.getElementById(now_field).value=="") error_me_multi(now_field, 'Please select Child Date of Birth', 'birth_child' + j);
						now_field="birthDay_child" + j;
							if(document.getElementById(now_field).value=="") error_me_multi(now_field, 'Please select Child Date of Birth', 'birth_child' + j);
						now_field="birthYear_child" + j;
							if(document.getElementById(now_field).value=="") error_me_multi(now_field, 'Please select Child Date of Birth', 'birth_child' + j);
					}
				}
				
				break;
				
			case 3:
				now_field="phone1";
					//verify_phone(document.getElementById(now_field).id);
					if(document.getElementById(now_field + 'a').value=="" || document.getElementById(now_field + 'b').value=="" || document.getElementById(now_field + 'c').value=="") error_me_multi(now_field+'a', 'Please enter Primary Phone');
					if (document.getElementById('val_phone1').value != "ok") error_me_multi(now_field+'a', 'Please enter Primary Phone');
					//if(document.getElementById('val_'+now_field).value!="ok") error_me_multi(now_field, 'Please enter a valid Phone Number');
				now_field="address1";
						if(document.getElementById(now_field).value=="") error_me_multi(now_field, 'Please enter Street Address');
				now_field="zip";
					//verify_zip(document.getElementById(now_field).id);
					if(document.getElementById('val_'+now_field).value=="0") error_me_multi(now_field, 'Please enter valid Zip Code');
				now_field="email";
				//	if(document.getElementById('val_'+now_field).value!="valid") error_me_multi(now_field, 'Please enter Email');
				if (((document.getElementById(now_field).value.search(exclude) != -1)||(document.getElementById(now_field).value.search(check)) == -1)||(document.getElementById(now_field).value.search(checkend) == -1)) document.getElementById(now_field).value = "";
					
				break;
		}
		document.getElementById('js').value = "js_here";
		if (err_error_me_multi) {
			error_me_multi_alert();
			return false;
		} else return true;
	} else return false;
}


function verify_phone(phoneNo) {
//	changeToNumeric(elem, -1);
//	elem = document.getElementById(elem);
	document.getElementById('lbl_phone1a').className = '';
	if (phoneNo.length == 10) {
		val_string = "";
		val_string += "plan=1|~|";
		val_string += "checkfor=phone|~|";
		val_string += "v=" + phoneNo + "|~|";
		doAjax('/ws/dataValidations.asp', val_string, "POST", true, "phone");
	} else document.getElementById('lbl_phone1a').className = "valid no";
}

/*
function verify_phone(elmnt) {
	elem = document.getElementById(elmnt);
	if (elem.value.trim().length >= 10) {
		val_string = "";
		val_string += "checkfor=phone|~|";
		val_string += "v=" + elem.value + "|~|";
		doAjax('zz_validation.asp', val_string, "POST", true, "phone");
	} else ajaxFail("phone")
}
*/

function verify_email(elmnt) {
	elem = document.getElementById(elmnt);
	if (elem.value == '') {}
	else if (((elem.value.search(exclude) != -1)||(elem.value.search(check)) == -1)||(elem.value.search(checkend) == -1)){}
	else {
		val_string = "";
		val_string += "plan=1|~|";
		val_string += "checkfor=email|~|";
		val_string += "v=" + elem.value + "|~|";
		doAjax('/ws/dataValidations.asp', val_string, "POST", true, "email");
	}
}

function verify_zip(elmnt) {
	changeToNumeric(elmnt, -1);
	elem = document.getElementById(elmnt);
	if (elem.value.trim().length == 5) {
		val_string = "";
		val_string += "plan=1|~|";
		val_string += "checkfor=zip|~|";
		val_string += "v=" + elem.value + "|~|";
		doAjax('/ws/dataValidations.asp', val_string, "POST", true, "zip");
	} else ajaxFail("zip")
}

function ajaxSuccess(xmlDocument, flag){
	var err_here = false;
	
	switch(flag){
		case "phone":
			if (xmlDocument.getElementsByTagName('valid').item(0)) {
				var valid = xmlDocument.getElementsByTagName('valid').item(0).firstChild.data;
				//alert(xmlDocument.getElementsByTagName('response').item(0).firstChild.data);
		    	if (valid == "Yes") {
					document.getElementById('vld_phone1').className = "valid";
					document.getElementById('vld_phone1').innerHTML = "";
					document.getElementById('val_phone1').value = "ok";
					}
		    	else err_here = true;
			} else err_here = true;
			if (err_here) ajaxFailXml(xmlDocument, flag);
			
			break;
			
		case "email":
			if (xmlDocument.getElementsByTagName('valid').item(0)) {
				var valid = xmlDocument.getElementsByTagName('valid').item(0).firstChild.data;
		    	if (valid == "Yes") {
					//document.getElementById('vld_email').className = "valid ok";
					//document.getElementById('vld_email').innerHTML = "valid";
					}
		    	else err_here = true;
			} else err_here = true;
			if (err_here) ajaxFail(flag)
			
			break;
			
		case "zip":
			document.getElementById('val_zip').value = "";
			if (xmlDocument.getElementsByTagName('valid').item(0)) {
				var valid = xmlDocument.getElementsByTagName('valid').item(0).firstChild.data;
		    	if (valid == "1") {
					var state = xmlDocument.getElementsByTagName('state').item(0).firstChild.data;
					var city = xmlDocument.getElementsByTagName('city').item(0).firstChild.data;
					document.getElementById('vld_city').innerHTML = city + ", ";
					document.getElementById('vld_state').innerHTML = state;
					document.getElementById('dyn_location').className = 'elem visible';
					document.getElementById('val_zip').value = state;
					if (state=="OR") {
						document.getElementById('alert_pop').style.top = "300px";
						document.getElementById('alert_oregon').className='visible';
						reveal_alert_pop(true);
						}
					}
				else err_here = true;
			} else err_here = true;
			if (err_here) ajaxFail(flag)
			
			break;
	}
}

function ajaxFailXml(xmlDocument, flag) {
	switch(flag){
		case "phone":
			document.getElementById('vld_phone1').className = "valid no";
			document.getElementById('vld_phone1').innerHTML = "invalid";
			document.getElementById('val_phone1').value = "0";
			if (xmlDocument.getElementsByTagName('duplicate').item(0)) {
				var dup = xmlDocument.getElementsByTagName('duplicate').item(0).firstChild.data;
				if (dup == "true"){
					document.getElementById('invalid-phone-div').className = 'visible';
					reveal_alert_pop(true);
				}
			}
			break;
			
		case "email":
			document.getElementById('vld_email').className = "valid no";
			document.getElementById('vld_email').innerHTML = "invalid";
			break;
			
		case "zip":
			document.getElementById('vld_city').innerHTML = "";
			document.getElementById('vld_state').innerHTML = "";
			document.getElementById('dyn_location').className = 'hidden';
			document.getElementById('val_zip').value = "0";
			break;
		case "phone":

	}
}

function ajaxFail(flag){
	switch(flag){
		case "phone":
			document.getElementById('vld_phone1').className = "valid no";
			document.getElementById('invalid-phone-div').className = "";
			document.getElementById('vld_phone1').innerHTML = "invalid";
			document.getElementById('val_phone1').value = "0";
			break;
			
		case "email":
			document.getElementById('vld_email').className = "valid no";
			document.getElementById('vld_email').innerHTML = "invalid";
			break;
			
		case "zip":
			document.getElementById('vld_city').innerHTML = "";
			document.getElementById('vld_state').innerHTML = "";
			document.getElementById('dyn_location').className = 'hidden';
			document.getElementById('val_zip').value = "0";
			break;
	}
}