//======================= 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);
}

function verify(){
	if (!ajaxWorking) {
		now_field="firstName";
			if(document.getElementById(now_field).value=="") return error_me(now_field, 'Please enter First Name');
		now_field="lastName";
			if(document.getElementById(now_field).value=="") return error_me(now_field, 'Please enter Last Name');
			
		now_field="company";
			if(document.getElementById(now_field).value=="") return error_me(now_field, 'Please enter Company Name');
			
		now_field="orginized";
			if(
				!document.getElementById(now_field+'1').checked 
				&& !document.getElementById(now_field+'2').checked
				&& !document.getElementById(now_field+'3').checked
				&& !document.getElementById(now_field+'4').checked
				&& !document.getElementById(now_field+'5').checked
				) return error_me(now_field+'1', 'Please choose: This company is organized as', now_field);
		
		/*
		now_field="insured";
			if(!document.getElementById(now_field+'1').checked && !document.getElementById(now_field+'0').checked) return error_me(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=="") return error_me(now_field, 'Current insurance company');
			}
			*/
		
		now_field="locations";
			if(document.getElementById(now_field).value=="") return error_me(now_field, 'Please select Number of Locations');
			
		now_field="employees";
			if(document.getElementById(now_field).value=="") return error_me(now_field, 'Please select Number of Employees');
			
		now_field="addInsurance";
			if(document.getElementById(now_field).value=="") return error_me(now_field, 'Please answer: Interested in any of the following?');
		
		now_field="phone1";
			//verify_phone(document.getElementById(now_field).id);
			//if(document.getElementById('val_'+now_field).value!="ok") return error_me(now_field, 'Please enter a valid Phone Number');
			if(document.getElementById(now_field + 'a').value=="" || document.getElementById(now_field + 'b').value=="" || document.getElementById(now_field + 'c').value=="") return error_me(now_field+'a', 'Please enter Primary Phone');
			if (document.getElementById('val_phone1').value != "ok") return error_me(now_field+'a', 'Please enter Primary Phone');

		now_field="address1";
				if(document.getElementById(now_field).value=="") return error_me(now_field, 'Please enter Street Address');
		now_field="zip";
			//verify_zip(document.getElementById(now_field).id);
			if(document.getElementById('val_'+now_field).value=="0") return error_me(now_field, 'Please enter valid Zip Code');
		now_field="email";
		//	if(document.getElementById('val_'+now_field).value!="valid") return error_me(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 = "";
		
		document.getElementById('js').value = "js_here";
		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=7|~|";
		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=7|~|";
		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=7|~|";
		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 = "850px";
						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 ajaxFail(flag){
	switch(flag){
		case "phone":
			document.getElementById('vld_phone1').className = "valid no";
			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;
	}
}

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;
	}
}