var inputErr = 0;			// input error flag
var SubmitButton = false;	// Submit Button clicked flag

function valid_email(address) {
	var emailreg = new RegExp("^([-!#\$%&'*+./0-9=?A-Z^_`a-z{|}])+@([-!#\$%&'*+/0-9=?A-Z^_`a-z{|}]+\\.)+[a-zA-Z]{2,6}\$");
	return address == '' ? true : emailreg.test(address);
}

function valid_phone(number) {
	//  // simply remove non-numeric characters
	//  number = number.replace(/[^0-9.]/g,"");
	//  // then check for 10 digits
	//  if(number.match(/^(\d{3})(\d{3})(\d{4})$/))	
	//     alert("matches");
	var phonereg = new RegExp(/(\(?\d{3}\)?)?(\-| )?\d{3}(\-| )?\d{4}/); 
	return phonereg.test(number)
}

function check_transaction_type() {
  var f1 = document.forms[0];
  
  switch(f1.transaction_type.value) {
	case '1': // turn off lender section if Cash
	  //alert(f1.transaction_type.value);
	  document.getElementById('seller_section').style.display = ''; 
      document.getElementById('lender_section').style.display = 'none';
	  break;
  	case '6': // turn off seller section if Refinance or Home Equity
	case '8': 
	  //alert(f1.transaction_type.value);
      document.getElementById('seller_section').style.display = 'none'; 
      document.getElementById('lender_section').style.display = '';	
	  break;
	default:  // turn on all sections
	  document.getElementById('seller_section').style.display = ''; 
      document.getElementById('lender_section').style.display = '';
	  break;
  }
  // set form transaction type in hidden input
  f1.transaction_type_selected.value = f1.transaction_type.value;
  check_required();
}

function check_survey_required() {	
  var f1 = document.forms[0];
  
  if(f1.survey_required.value == '1')
    document.getElementById('need_survey_order').style.display = ''; // turn on survey "ordered by" if survey is required
  else {
    document.getElementById('need_survey_order').style.display = 'none';	// turn off survey "ordered by" if survey is not required
	f1.survey_order.value='';
  }
  check_required();
}

function rm_xwhite(f1) {
	// remove extra white spaces from text fields		
  for (var i=0; i < f1.elements.length; i++) {
    if(f1.elements[i].type == 'text' || f1.elements[i].type == 'textarea')
	  f1.elements[i].value = f1.elements[i].value.replace(/^\s*|\s*$/g,'').replace(/\s+/g,' ');			
	}	
  return f1;
}

function show_required(boxname, text, iserror) {
  // show required field
  if(iserror)
    document.getElementById(boxname).innerHTML = "<font color='red'>"+text+"</font>";
  else
	document.getElementById(boxname).innerHTML = text;
  if (!inputErr && iserror) inputErr = iserror;
}		

function check_required() {
   // check for required fields
   var f1 = rm_xwhite(document.forms[0]);	
   inputErr = 0;
   //(f1.order_month.value==""||f1.order_day.value==""||f1.order_year.value=="")?show_required("order_dateRqd", "*", true):show_required("order_dateRqd", "", false);
   (f1.close_month.value==""||f1.close_day.value==""||f1.close_year.value=="")?show_required("close_dateRqd", "*", true):show_required("close_dateRqd", "", false);
   (f1.order_name.value=="")?show_required("order_nameRqd", "*", true):show_required("order_nameRqd", "", false);
   (f1.order_company.value=="")?show_required("order_companyRqd", "*", true):show_required("order_companyRqd", "", false);
   (f1.order_address.value=="")?show_required("order_addressRqd", "*", true):show_required("order_addressRqd", "", false);
   (f1.order_city.value=="")?show_required("order_cityRqd", "*", true):show_required("order_cityRqd", "", false);
   (f1.order_state.value=="")?show_required("order_stateRqd", "*", true):show_required("order_stateRqd", "", false);
   (f1.order_zip.value=="")?show_required("order_zipRqd", "*", true):show_required("order_zipRqd", "", false);
   (f1.order_email.value=="")?show_required("order_emailRqd", "*", true):show_required("order_emailRqd", "", false);
   (f1.order_phone.value=="")?show_required("order_phoneRqd", "*", true):show_required("order_phoneRqd", "", false);
   //(f1.order_fax.value=="")?show_required("order_faxRqd", "*", true):show_required("order_faxRqd", "", false);
   (f1.transaction_type.value=="")?show_required("transaction_typeRqd", "*", true):show_required("transaction_typeRqd", "", false);
   (f1.b_name.value=="")?show_required("b_nameRqd", "*", true):show_required("b_nameRqd", "", false);
   (f1.b_address.value=="")?show_required("b_addressRqd", "*", true):show_required("b_addressRqd", "", false);
   (f1.b_city.value=="")?show_required("b_cityRqd", "*", true):show_required("b_cityRqd", "", false);
   (f1.b_state.value=="")?show_required("b_stateRqd", "*", true):show_required("b_stateRqd", "", false);
   (f1.b_zip.value=="")?show_required("b_zipRqd", "*", true):show_required("b_zipRqd", "", false);
   (f1.b_email.value=="")?show_required("b_emailRqd", "*", true):show_required("b_emailRqd", "", false);
   (f1.b_phone.value=="")?show_required("b_phoneRqd", "*", true):show_required("b_phoneRqd", "", false);
   //(f1.b_fax.value=="")?show_required("b_faxRqd", "*", true):show_required("b_faxRqd", "", false);
   //(f1.b_attorney.value=="")?show_required("b_attorneyRqd", "*", true):show_required("b_attorneyRqd", "", false);
   //(f1.b_attorney_phone.value=="")?show_required("b_attorney_phoneRqd", "*", true):show_required("b_attorney_phoneRqd", "", false);
   //(f1.b_real_estate_agent.value=="")?show_required("b_real_estate_agentRqd", "*", true):show_required("b_real_estate_agentRqd", "", false);
   //(f1.b_real_estate_phone.value=="")?show_required("b_real_estate_phoneRqd", "*", true):show_required("b_real_estate_phoneRqd", "", false);
   if(f1.transaction_type_selected.value != 6 &&  f1.transaction_type_selected.value != 8) { //// Seller not required if Refinance or Home Equity
     (f1.s_name.value=="")?show_required("s_nameRqd", "*", true):show_required("s_nameRqd", "", false);
     (f1.s_address.value=="")?show_required("s_addressRqd", "*", true):show_required("s_addressRqd", "", false);
     (f1.s_city.value=="")?show_required("s_cityRqd", "*", true):show_required("s_cityRqd", "", false);
     (f1.s_state.value=="")?show_required("s_stateRqd", "*", true):show_required("s_stateRqd", "", false);
     (f1.s_zip.value=="")?show_required("s_zipRqd", "*", true):show_required("s_zipRqd", "", false);
     (f1.s_email.value=="")?show_required("s_emailRqd", "*", true):show_required("s_emailRqd", "", false);
     (f1.s_phone.value=="")?show_required("s_phoneRqd", "*", true):show_required("s_phoneRqd", "", false);
     //(f1.s_fax.value=="")?show_required("s_faxRqd", "*", true):show_required("s_faxRqd", "", false);
     //(f1.s_attorney.value=="")?show_required("s_attorneyRqd", "*", true):show_required("s_attorneyRqd", "", false);
     //(f1.s_attorney_phone.value=="")?show_required("s_attorney_phoneRqd", "*", true):show_required("s_attorney_phoneRqd", "", false);
     //(f1.s_real_estate_agent.value=="")?show_required("s_real_estate_agentRqd", "*", true):show_required("s_real_estate_agentRqd", "", false);
     //(f1.s_real_estate_agent_phone.value=="")?show_required("s_real_estate_agent_phoneRqd", "*", true):show_required("s_real_estate_agent_phoneRqd", "", false);
   }
   if(f1.transaction_type_selected.value != 1) { // Lender not required if Cash
     (f1.l_company.value=="")?show_required("l_companyRqd", "*", true):show_required("l_companyRqd", "", false);
     (f1.l_contact.value=="")?show_required("l_contactRqd", "*", true):show_required("l_contactRqd", "", false);
     (f1.l_address.value=="")?show_required("l_addressRqd", "*", true):show_required("l_addressRqd", "", false);
     (f1.l_city.value=="")?show_required("l_cityRqd", "*", true):show_required("l_cityRqd", "", false);
     (f1.l_state.value=="")?show_required("l_stateRqd", "*", true):show_required("l_stateRqd", "", false);
     (f1.l_zip.value=="")?show_required("l_zipRqd", "*", true):show_required("l_zipRqd", "", false);
     //(f1.l_email.value=="")?show_required("l_emailRqd", "*", true):show_required("l_emailRqd", "", false);
     (f1.l_phone.value=="")?show_required("l_phoneRqd", "*", true):show_required("l_phoneRqd", "", false);
     //(f1.l_fax.value=="")?show_required("l_faxRqd", "*", true):show_required("l_faxRqd", "", false);
     (f1.is_mortgagebroker.value=="")?show_required("is_mortgagebrokerRqd", "*", true):show_required("is_mortgagebrokerRqd", "", false);
  }
   (f1.o_title_policy.value=="")?show_required("o_title_policyRqd", "*", true):show_required("o_title_policyRqd", "", false);
   (f1.m_title_policy.value=="")?show_required("m_title_policyRqd", "*", true):show_required("m_title_policyRqd", "", false);
   //(f1.icb.value=="")?show_required("icbRqd", "*", true):show_required("icbRqd", "", false);
   //(f1.runsheet.value=="")?show_required("runsheetRqd", "*", true):show_required("runsheetRqd", "", false);
   (f1.survey_required.value=="")?show_required("survey_requiredRqd", "*", true):show_required("survey_requiredRqd", "", false);
   (f1.survey_required.value=='1' && f1.survey_order.value=="")?show_required("survey_orderRqd", "*", true):show_required("survey_orderRqd", "", false); // required if survey required is YES
   (f1.prop_address.value=="")?show_required("prop_addressRqd", "*", true):show_required("prop_addressRqd", "", false);
   (f1.prop_city.value=="")?show_required("prop_cityRqd", "*", true):show_required("prop_cityRqd", "", false);
   (f1.prop_county.value=="")?show_required("prop_countyRqd", "*", true):show_required("prop_countyRqd", "", false);
   (f1.prop_zip.value=="")?show_required("prop_zipRqd", "*", true):show_required("prop_zipRqd", "", false);
   (f1.prop_description.value=="")?show_required("prop_descriptionRqd", "*", true):show_required("prop_descriptionRqd", "", false);
   if(inputErr)   
     document.getElementById('complete_fields').innerHTML = "<b> Please complete fields marked with an <span style=\"color:red;font-size: 16px;\">*</span></b>";
   else
     document.getElementById('complete_fields').innerHTML = "&nbsp;";
}

function validate_oderform() {
	var f1 = document.forms[0];
    // validate form for required fields and return true if required fields are entered, otherwise throw up an alert and return false.
	// Note: there are no field format requirements such as date, email, etc.  It is left to the user to enter properly
	// formatted values.
	if(inputErr) {
		alert("Please complete all required fields.");
		return false;
	}
	/*
	Format checks here
	*/
	return true;
}