var qList = new Array(true, true, true, true, true, true);
var qListString = new Array ("q1div","q2div","q3div","q4div","q5div","q6div");

var curQ = 0;
var lastQ = 0;

window.isMsnHomepage = false;

function resizeDisplayWindow(){
  var screenWidth = screen.availWidth;
  var screenHeight = screen.availHeight;
  if(screenWidth <=0) {
      screenWidth = 800;
  }
  if(screenHeight <=0) {
      screenHeight = 600;
  }
  window.moveTo(0,0);
  window.resizeTo(screenWidth-10,screenHeight-10);
  if(window.focus) {
    window.focus();
  }
}

var checkQueryString = window.location.search;
if(checkQueryString.indexOf("resizeDisplay=true")>=0) {
  resizeDisplayWindow();
}

function nextQ(field) {
    if(field == window.document.form1.HOUSE_VALUE_01) {
      initQ5();
      initQ6();
    } else if(field == window.document.form1.FIRST_MORTGAGE_BALANCE_01 || field == window.document.form1.SECOND_MORTGAGE_BALANCE_01 
              || field == window.document.form1.DESIRED_LOAN_TYPE_01) {
        initQ6();
        initSecondMortgage();
        if(field == window.document.form1.DESIRED_LOAN_TYPE_01) {
            initOptDiv_DESIRED_LOAN_TYPE_01();
            initDiv_FHA_LOAN();
            showPage1ProductPath();
        }
    } else if(field == window.document.form1.MORT_HOME_FOUND_01) {
        showFoundHomeQuestions();
    } else if(field == window.document.form1.SECOND_MORTGAGE_01) {
        initSecondMortgage();
    } else if(field == window.document.form1.MORT_AGENT_01 || field == window.document.form1.MORT_MATCH_AGENT_01) {
        showAgentQuestions();
    } else if(field == window.document.form1.MORT_PURCHASE_PRICE_01) {
        initDownPayment();
    } else if(field == window.document.form1.MORT_OWN_HOME_01) {
    	showOwnHomeQuestions(); 
    }
    return;
}

function showNextQ(field) {
    if(!validate(field)) {
        return;
    }
    if(field == window.document.form1.HOUSE_VALUE_01) {
    initQ5();
    initQ6();
        hideAll();
    } else if(field == window.document.form1.FIRST_MORTGAGE_BALANCE_01) {
        initQ6();
        initSecondMortgage();
        hideAll();
    } else if(field == window.document.form1.SECOND_MORTGAGE_01) {
    initSecondMortgage();
    }
    lastQ = curQ;
    curQ++;
    while(curQ<qList.length) {
        if(qList[curQ]) {
            hide(qListString[lastQ]);
            show(qListString[curQ]);
            return;
        }
        curQ++;
    }
    submitForm();
}

function validate(field) {
    if(field==window.document.form1.HOUSE_TYPE_01) {
        return validate_HOUSE_TYPE_01();
    } else if(field==window.document.form1.PROP_ZIP_01) {
        return validate_PROP_ZIP_01();
    } else if(field==window.document.form1.PROP_STATE_01) {
        return validate_PROP_STATE_01();
    } else if(field==window.document.form1.PROP_PURP_01) {
        return validate_PROP_PURP_01();
    } else if(field==window.document.form1.HOUSE_VALUE_01) {
        return validate_HOUSE_VALUE_01();
    } else if(field==window.document.form1.FIRST_MORTGAGE_BALANCE_01) {
        return validate_FIRST_MORTGAGE_BALANCE_01();
    } else if(field==window.document.form1.CURRENT_INTEREST_RATE_DECIMAL_01) {
        return validate_CURRENT_INTEREST_RATE_01();
    } else if(field==window.document.form1.CURRENT_INTEREST_RATE_DECIMAL_TEXT_01) {
        return validate_CURRENT_INTEREST_RATE_TEXT_01();
    } else if(field==window.document.form1.SECOND_MORTGAGE_01) {
        return validate_SECOND_MORTGAGE_01();
    } else if(field==window.document.form1.SECOND_MORTGAGE_BALANCE_01) {
        return validate_SECOND_MORTGAGE_BALANCE_01();
    } else if(field==window.document.form1.SECOND_INTEREST_RATE_DECIMAL_01) {
        return validate_SECOND_INTEREST_RATE_01();
    } else if(field==window.document.form1.SECOND_INTEREST_RATE_DECIMAL_TEXT_01) {
        return validate_SECOND_INTEREST_RATE_TEXT_01();
    } else if(field==window.document.form1.DESIRED_LOAN_TYPE_01) {
        return validate_DESIRED_LOAN_TYPE_01();
    } else if(field==window.document.form1.ADDITIONAL_CASH_TO_BORROW_01) {
        return validate_ADDITIONAL_CASH_TO_BORROW_01();
    } else if(field==window.document.form1.LOAN_TYPE_01) {
        return validate_LOAN_TYPE_01();
    } else if(field==window.document.form1.LOAN_PURP_01) {
        return validate_LOAN_PURP_01();
    } else if(field==window.document.form1.CREDIT_STATUS_01) {
        return validate_CREDIT_STATUS_01();
    } else if(field==window.document.form1.EMAIL_01) {
        return validate_EMAIL_01(window.document.form1);
    } 
    return true;
}

function hideAll() {
    i=0;
    while(i<qListString.length) {
        hide(qListString[i]);
        i++;
    }
}

function initQ5() {
	if (!window.document.form1.HOUSE_VALUE_01){
		return;
	}
    var houseValue = window.document.form1.HOUSE_VALUE_01.options[window.document.form1.HOUSE_VALUE_01.selectedIndex].value;
    houseValue = (houseValue/1000);
    var q5=window.document.form1.FIRST_MORTGAGE_BALANCE_01;
    var q5Value = getFieldValueLB(q5);
    var qSecondMortgage=window.document.form1.SECOND_MORTGAGE_BALANCE_01;
    var qSecondMortgageValue = getFieldValueLB(qSecondMortgage);
    q5.length=0;
    qSecondMortgage.length=0;
    q5.options[q5.length] = new Option("Select One","");
    q5.options[q5.length] = new Option("$0","0");
    qSecondMortgage.options[qSecondMortgage.length] = new Option("Select One","");
    qSecondMortgage.options[qSecondMortgage.length] = new Option("$0","0");
    if(houseValue>2) {
        q5.options[q5.length] = new Option("$1 - $5,000","2500");
        qSecondMortgage.options[qSecondMortgage.length] = new Option("$1 - $5,000","2500");
    }
    var counter=5;
    while(counter<houseValue && counter<980) {
        var rightEnd=counter;
        if(counter<200) {
            rightEnd+=5;
            q5.options[q5.length] = new Option("$"+counter+",001 - $"+rightEnd+",000" ,(counter+rightEnd)*500);
            qSecondMortgage.options[qSecondMortgage.length] = new Option("$"+counter+",001 - $"+rightEnd+",000" ,(counter+rightEnd)*500);
            counter+=5;
        } else if(counter < 400) {
            rightEnd+=10;
            q5.options[q5.length] = new Option("$"+counter+",001 - $"+rightEnd+",000" ,(counter+rightEnd)*500);
            qSecondMortgage.options[qSecondMortgage.length] = new Option("$"+counter+",001 - $"+rightEnd+",000" ,(counter+rightEnd)*500);
            counter+=10;
        } else {
            rightEnd+=20;
            q5.options[q5.length] = new Option("$"+counter+",001 - $"+rightEnd+",000" ,(counter+rightEnd)*500);
            qSecondMortgage.options[qSecondMortgage.length] = new Option("$"+counter+",001 - $"+rightEnd+",000" ,(counter+rightEnd)*500);
            counter+=20;
        }
    }
    if(houseValue>=1000) {
        q5.options[q5.length] = new Option("$980,000 - $1,000,000","990000");
        qSecondMortgage.options[qSecondMortgage.length] = new Option("$980,000 - $1,000,000","990000");
    }
    if(houseValue>=1001) {
        q5.options[q5.length] = new Option("Over $1,000,000","1000001");
        qSecondMortgage.options[qSecondMortgage.length] = new Option("Over $1,000,000","1000001");
    }
    selectValue(q5,q5Value);
    selectValue(qSecondMortgage,qSecondMortgageValue);
    return;
}

function initQ6() {
    if(window.document.form1.ADDITIONAL_CASH_TO_BORROW_01==null) {
        return;
    }
    var maxAdditionalCash = 0;

    var loadTypeValue;
    if(window.document.form1.DESIRED_LOAN_TYPE_HID_01 != null) {
        loadTypeValue = window.document.form1.DESIRED_LOAN_TYPE_HID_01.value;
    } else if(window.document.form1.DESIRED_LOAN_TYPE_01 != null) {
        loadTypeValue = getFieldValueLB(window.document.form1.DESIRED_LOAN_TYPE_01);
    } else {
        loadTypeValue = "";
    }

    if(window.document.form1.MAX_ADD_HID_01 != null) {
        maxAdditionalCash = window.document.form1.MAX_ADD_HID_01.value;
    } else {
        var firstMortgage = 0;
        if(window.document.form1.FIRST_MORTGAGE_BALANCE_HID_01 != null) {
            firstMortgage = window.document.form1.FIRST_MORTGAGE_BALANCE_HID_01.value;    
        } else if(window.document.form1.FIRST_MORTGAGE_BALANCE_01 != null) {
            firstMortgage = window.document.form1.FIRST_MORTGAGE_BALANCE_01.options[window.document.form1.FIRST_MORTGAGE_BALANCE_01.selectedIndex].value;
        }

        var houseValue = 0;
        if(window.document.form1.HOUSE_VALUE_HID_01 != null) {
            houseValue = window.document.form1.HOUSE_VALUE_HID_01.value;
        } else if(window.document.form1.HOUSE_VALUE_01 != null) {
            houseValue = window.document.form1.HOUSE_VALUE_01.options[window.document.form1.HOUSE_VALUE_01.selectedIndex].value;
        }

        var secondMortgage = 0;
        if(window.document.form1.SECOND_MORTGAGE_BALANCE_HID_01 != null) {
            secondMortgage = window.document.form1.SECOND_MORTGAGE_BALANCE_HID_01.value;    
        } else if(window.document.form1.SECOND_MORTGAGE_BALANCE_01 != null && getFieldValueRB(window.document.form1.SECOND_MORTGAGE_01) == "YES") {
            secondMortgage = window.document.form1.SECOND_MORTGAGE_BALANCE_01.options[window.document.form1.SECOND_MORTGAGE_BALANCE_01.selectedIndex].value;

        }

        if(loadTypeValue == "Home Improvement" || loadTypeValue == "Home Equity Loan") {
            maxAdditionalCash = houseValue*1.05-firstMortgage-secondMortgage;
        } else {
            maxAdditionalCash = houseValue*0.9-firstMortgage-secondMortgage;
        }
    }
    maxAdditionalCash = maxAdditionalCash/1000;
    var q6=window.document.form1.ADDITIONAL_CASH_TO_BORROW_01;
    var value = getFieldValueLB(q6);
    q6.length=0;
    var counter=5;
    if(loadTypeValue == "Home Improvement" || loadTypeValue == "Home Equity Loan") {
        if(maxAdditionalCash >= 15) {
            q6.options[q6.length] = new Option("$15,000", "15000");
            counter = 20;
        } else {
            q6.options[q6.length] = new Option("NA", "0");
        }
    } else {
        if(maxAdditionalCash > 0) {
            q6.options[q6.length] = new Option("Select One","");
            q6.options[q6.length] = new Option("$0","0");
        } else {
            q6.options[q6.length] = new Option("Select One","");
            q6.options[q6.length] = new Option("NA", "0");
        }
        if(maxAdditionalCash>2) {
        q6.options[q6.length] = new Option("$2,500","2500");
        }
    }
    while(counter<maxAdditionalCash && counter<1000) {
        q6.options[q6.length] = new Option("$"+counter+",000",counter+"000");
        if(counter<200) {
            counter+=5;
        } else if(counter < 400) {
            counter+=10;
        } else {
            counter+=20;
        }
    }
    if(maxAdditionalCash>=1000) {
        q6.options[q6.length] = new Option("$1,000,000","1000000");
    }
    if(maxAdditionalCash>=1001) {
        q6.options[q6.length] = new Option("Over $1,000,000","1000001");
    }
    selectValue(q6,value);
    return;
}

function initSecondMortgage() {
    if ((!homePurchaseSelected()) && (getFieldValueRB(window.document.form1.SECOND_MORTGAGE_01) == "YES")) {
        if (document.getElementById("qDiv_SECOND_MORTGAGE_1") != null && document.getElementById("qDiv_SECOND_MORTGAGE_2") != null) {
            showElement2("qDiv_SECOND_MORTGAGE_1");
            showElement2("qDiv_SECOND_MORTGAGE_2");
        } else {
            show("qDiv_SECOND_MORTGAGE");
        }

        var houseValue = window.document.form1.HOUSE_VALUE_01.options[window.document.form1.HOUSE_VALUE_01.selectedIndex].value;
        houseValue = (houseValue/1000);
        var q5=window.document.form1.FIRST_MORTGAGE_BALANCE_01;
        var q5Value = getFieldValueLB(q5)/1000;
        var qSecondMortgage=window.document.form1.SECOND_MORTGAGE_BALANCE_01;
        var qSecondMortgageValue = getFieldValueLB(qSecondMortgage);
        qSecondMortgage.length=0;
        qSecondMortgage.options[qSecondMortgage.length] = new Option("Select One","");
        qSecondMortgage.options[qSecondMortgage.length] = new Option("$0","0");
        if(houseValue-q5Value>2) {
            qSecondMortgage.options[qSecondMortgage.length] = new Option("$1 - $5,000","2500");
        }
        var counter=5;
        var endValue = houseValue - q5Value;
        while(counter<endValue && counter<980) {
            var rightEnd=counter;
            if(counter<200) {
                rightEnd+=5;
                qSecondMortgage.options[qSecondMortgage.length] = new Option("$"+counter+",001 - $"+rightEnd+",000" ,(counter+rightEnd)*500);
                counter+=5;
            } else if(counter < 400) {
                rightEnd+=10;
                qSecondMortgage.options[qSecondMortgage.length] = new Option("$"+counter+",001 - $"+rightEnd+",000" ,(counter+rightEnd)*500);
                counter+=10;
            } else {
                rightEnd+=20;
                qSecondMortgage.options[qSecondMortgage.length] = new Option("$"+counter+",001 - $"+rightEnd+",000" ,(counter+rightEnd)*500);
                counter+=20;
            }
        }
        if(houseValue>=1000) {
            qSecondMortgage.options[qSecondMortgage.length] = new Option("$980,000 - $1,000,000","990000");
        }
        if(houseValue>=1001) {
            qSecondMortgage.options[qSecondMortgage.length] = new Option("Over $1,000,000","1000001");
        }
        selectValue(qSecondMortgage,qSecondMortgageValue);

    } else {
        if(document.getElementById("qDiv_SECOND_MORTGAGE_1") != null && document.getElementById("qDiv_SECOND_MORTGAGE_2") != null) {
            hideElement2("qDiv_SECOND_MORTGAGE_1");
            hideElement2("qDiv_SECOND_MORTGAGE_2");
        } else {
            hide("qDiv_SECOND_MORTGAGE");
        }
    }
}

function fPayOption(num,rate) {
   if(isNaN(num)) {
     num = "0";
   }
   num = Math.floor(num);
   num = num.toString();
   //add commas
   for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++) {
     num = num.substring(0,num.length-(4*i+3))+','+num.substring(num.length-(4*i+3));
   }

   return ('$' + num + ' ('+rate+'%)');
}

function initDownPayment() {
    if(window.document.form1.MORT_DOWN_PAYMENT_01 && window.document.form1.MORT_PURCHASE_PRICE_01) {
      var houseValue = window.document.form1.MORT_PURCHASE_PRICE_01.options[window.document.form1.MORT_PURCHASE_PRICE_01.selectedIndex].value;
      var qDownPayment=window.document.form1.MORT_DOWN_PAYMENT_01;
      var qDownPaymentValue = getFieldValueLB(qDownPayment);

      qDownPayment.length=0;
      qDownPayment.options[qDownPayment.length] = new Option("Please select one","");
      if(validateIsRequired(houseValue)) {
        qDownPayment.options[qDownPayment.length] = new Option(fPayOption(0,0),"0");
      }
      if(houseValue > 0) {
        rate = 3;
        qDownPayment.options[qDownPayment.length] = new Option(fPayOption(houseValue * (rate/100),rate),rate);
        rate = 5;
        while(rate<100) {
          qDownPayment.options[qDownPayment.length] = new Option(fPayOption(houseValue * (rate/100),rate),rate);
          rate+=5;
        }
      }
      selectValue(qDownPayment, qDownPaymentValue);
    }
}

function initOptDiv_DESIRED_LOAN_TYPE_01() {
    if(document.getElementById("optDiv_DESIRED_LOAN_TYPE_01") != null) {
        loadTypeValue = getFieldValueLB(window.document.form1.DESIRED_LOAN_TYPE_01);
        if(validateIsRequired(loadTypeValue)) {
            if(loadTypeValue == "Home Equity Loan") {
                show("optDiv_DESIRED_LOAN_TYPE_01");
            } else {
                hide("optDiv_DESIRED_LOAN_TYPE_01");
            }
        }
    }
}

function initDiv_FHA_LOAN() {
	var loanTypeField = window.document.form1.DESIRED_LOAN_TYPE_01;
	if(loanTypeField == null || loanTypeField == undefined ||
			document.getElementById("div_FHA_LOAN_01") == null || document.getElementById("div_FHA_LOAN_01") == undefined ||
			document.getElementById("div_FHA_LOAN_02") == null || document.getElementById("div_FHA_LOAN_02") == undefined) {
		return;
	}
    
    var loanTypeValue = getFieldValueLB(loanTypeField);
    if(loanTypeValue == "Home Purchase") {
        hide("div_FHA_LOAN_01");
        hide("div_FHA_LOAN_02");
    } else {
        show("div_FHA_LOAN_01");
        show("div_FHA_LOAN_02");
    }
}

function homePurchaseSelected() {
  var loanTypeValue = "";
  if(window.document.form1.DESIRED_LOAN_TYPE_HID_01) {
    loanTypeValue = getFieldValueTF(window.document.form1.DESIRED_LOAN_TYPE_HID_01);
  } else if(window.document.form1.DESIRED_LOAN_TYPE_01) {
    loanTypeValue = getFieldValueLB(window.document.form1.DESIRED_LOAN_TYPE_01);
  }
  return loanTypeValue == "Home Purchase";
}

function hasOwnHome() {
  var ownHomeValue = "";
  if(homePurchaseSelected() && window.document.form1.MORT_OWN_HOME_01) {
	ownHomeValue = getFieldValueRB(window.document.form1.MORT_OWN_HOME_01);
  } 
  return ownHomeValue == "YES";
}

function refinanceSelected() {
  var loanTypeValue = "";
  if(window.document.form1.DESIRED_LOAN_TYPE_HID_01) {
    loanTypeValue = getFieldValueTF(window.document.form1.DESIRED_LOAN_TYPE_HID_01);
  } else if(window.document.form1.DESIRED_LOAN_TYPE_01) {
    loanTypeValue = getFieldValueLB(window.document.form1.DESIRED_LOAN_TYPE_01);
  }
  return loanTypeValue == "Refinance" || loanTypeValue == "Refinance with Cash Out" || loanTypeValue == "Debt Consolidation";
}

function hasAgent() {
  if(homePurchaseSelected() && window.document.form1.MORT_AGENT_01) {
    agentValue = getFieldValueRB(window.document.form1.MORT_AGENT_01);
    if(validateIsRequired(agentValue)) {
      return agentValue == "YES";
    }
  }
  return false;
}

function answeredAgentQuestion() {
  if(homePurchaseSelected() && window.document.form1.MORT_AGENT_01) {
    agentValue = getFieldValueRB(window.document.form1.MORT_AGENT_01);
    if(validateIsRequired(agentValue)) {
      return true;
    }
  }
  return false;
}

function foundHome() {
  if(homePurchaseSelected() && window.document.form1.MORT_HOME_FOUND_01) {
    foundHomeValue = getFieldValueRB(window.document.form1.MORT_HOME_FOUND_01);
    if(validateIsRequired(foundHomeValue)) {
      return foundHomeValue == "YES";
    }
  }
  return false;
}

function matchToAgent() {
  if(homePurchaseSelected() && !hasAgent() && window.document.form1.MORT_MATCH_AGENT_01) {
    matchAgentValue = getFieldValueRB(window.document.form1.MORT_MATCH_AGENT_01);
    if(validateIsRequired(matchAgentValue)) {
      return matchAgentValue == "YES";
    }
  }
  return false;
}

function showAgentQuestions() {
    if(document.getElementById("mortNoAgent") != null && document.getElementById("mortHasAgent") != null) {
        if(hasAgent()) {
            show("mortHasAgent");
            hide("mortNoAgent");
        } else if(homePurchaseSelected() && answeredAgentQuestion()) {
            hide("mortHasAgent");
            show("mortNoAgent");
        } else {
            hide("mortHasAgent");
            hide("mortNoAgent");
        }
    } else if(document.getElementById("mortNoAgent_1") != null && document.getElementById("mortHasAgent_1") != null) {
        if(hasAgent()) {
            showElement2("mortHasAgent_1");
            showElement2("mortHasAgent_2");
            showElement2("mortHasAgent_3");
            hideElement2("mortNoAgent_1");
        } else if(homePurchaseSelected() && answeredAgentQuestion()) {
            hideElement2("mortHasAgent_1");
            hideElement2("mortHasAgent_2");
            hideElement2("mortHasAgent_3");
            showElement2("mortNoAgent_1");
        } else {
            hideElement2("mortHasAgent_1");
            hideElement2("mortHasAgent_2");
            hideElement2("mortHasAgent_3");
            hideElement2("mortNoAgent_1");
        }
    }
    if(document.getElementById("mortMatchAgent") != null) {
        if(matchToAgent()) {
            show("mortMatchAgent");
        } else {
            hide("mortMatchAgent");
        }
    } else if(document.getElementById("mortMatchAgent_1") != null) {
        if(matchToAgent()) {
            showElement2("mortMatchAgent_1");
            showElement2("mortMatchAgent_2");
            showElement2("mortMatchAgent_3");
        } else {
            hideElement2("mortMatchAgent_1");
            hideElement2("mortMatchAgent_2");
            hideElement2("mortMatchAgent_3");
        }
    }
}

function showFoundHomeQuestions() {
    if(document.getElementById("mortFoundHome") != null) {
        if(foundHome()) {
            show("mortFoundHome");
        } else {
            hide("mortFoundHome");
        }
    } else if(document.getElementById("mortFoundHome_1") != null) {
        if(foundHome()) {
            showElement2("mortFoundHome_1");
        } else {
            hideElement2("mortFoundHome_1");
        }
    }
}

function showOwnHomeQuestions() {
    if(document.getElementById("mortOwnHome_1") != null) {
        if(hasOwnHome()) {
            hide("mortOwnHome_1");
        } else {
            show("mortOwnHome_1");
        }
    } 
}

function showPage3ProductPath() {
	if(document.getElementById("mortPage2NotHP_4pageG_hp_1") != null && document.getElementById("mortPage2HP_4pageG_hp_1") != null) {
        if(homePurchaseSelected()) {
            showElement2("mortPage3HP_4pageG_hp_1");
            showElement2("mortPage3HP_4pageG_hp_2");
        } else {
            hideElement2("mortPage3HP_4pageG_hp_1");
            hideElement2("mortPage3HP_4pageG_hp_2");
        }
    }
}

function showPage2ProductPath() {
    if(document.getElementById("mortPage2NotHP") != null && document.getElementById("mortPage2HP") != null) {
        if(homePurchaseSelected()) {
            show("mortPage2HP");
            hide("mortPage2NotHP");
        } else {
            hide("mortPage2HP");
            show("mortPage2NotHP");
        }
    } else if(document.getElementById("mortPage2NotHP_1") != null && document.getElementById("mortPage2HP_1") != null) {
        if(homePurchaseSelected()) {
            showElement2("mortPage2HP_1");
            showElement2("mortPage2HP_2");
            showElement2("mortPage2HP_3");
            showElement2("mortPage2HP_4");
            hideElement2("mortPage2NotHP_1");
            hideElement2("mortPage2NotHP_2");
        } else {
            hideElement2("mortPage2HP_1");
            hideElement2("mortPage2HP_2");
            hideElement2("mortPage2HP_3");
            hideElement2("mortPage2HP_4");
            showElement2("mortPage2NotHP_1");
            showElement2("mortPage2NotHP_2");
        }
    } else if(document.getElementById("mortPage2NotHP_3pageN_hp_1") != null && document.getElementById("mortPage2HP_3pageN_hp_1") != null) {
        if(homePurchaseSelected()) {
            showElement2("mortPage2HP_3pageN_hp_1");
            showElement2("mortPage2HP_3pageN_hp_2");
            hideElement2("mortPage2NotHP_3pageN_hp_1");
            hideElement2("mortPage2NotHP_3pageN_hp_2");
            hideElement2("mortPage2NotHP_3pageN_hp_3");
            hideElement2("div_FHA_LOAN_01");
        } else {
            hideElement2("mortPage2HP_3pageN_hp_1");
            hideElement2("mortPage2HP_3pageN_hp_2");
            showElement2("mortPage2NotHP_3pageN_hp_1");
            showElement2("mortPage2NotHP_3pageN_hp_2");
            showElement2("mortPage2NotHP_3pageN_hp_3");
            showElement2("div_FHA_LOAN_01");
        }
    } else if(document.getElementById("mortPage2NotHP_4pageG_hp_1") != null && document.getElementById("mortPage2HP_4pageG_hp_1") != null) {
        if(homePurchaseSelected()) {
            showElement2("mortPage2HP_4pageG_hp_1");
            showElement2("mortPage2HP_4pageG_hp_2");
            showElement2("mortPage2HP_4pageG_hp_3");
            showElement2("mortPage2HP_4pageG_hp_4");
            showElement2("mortPage2HP_4pageG_hp_5");
            hideElement2("mortPage2NotHP_4pageG_hp_1");
            hideElement2("mortPage2NotHP_4pageG_hp_2");
            hideElement2("mortPage2NotHP_4pageG_hp_3");
            hideElement2("mortPage2NotHP_4pageG_hp_4");
            hideElement2("mortPage2NotHP_4pageG_hp_5");
            hideElement2("mortPage2NotHP_4pageG_hp_6");
            
            hideElement2("div_FHA_LOAN_01");
            showElement2("divLOAN_TYPE_02");
            hideElement2("divLOAN_TYPE_01");            
        } else {
            hideElement2("mortPage2HP_4pageG_hp_1");
            hideElement2("mortPage2HP_4pageG_hp_2");
            hideElement2("mortPage2HP_4pageG_hp_3");
            hideElement2("mortPage2HP_4pageG_hp_4");
            hideElement2("mortPage2HP_4pageG_hp_5");
            showElement2("mortPage2NotHP_4pageG_hp_1");
            showElement2("mortPage2NotHP_4pageG_hp_2");
            showElement2("mortPage2NotHP_4pageG_hp_3");
            showElement2("mortPage2NotHP_4pageG_hp_4");
            showElement2("mortPage2NotHP_4pageG_hp_5");
            showElement2("mortPage2NotHP_4pageG_hp_6");
            
            showElement2("div_FHA_LOAN_01");
            showElement2("divLOAN_TYPE_01");
            hideElement2("divLOAN_TYPE_02");            
        }
        initSecondMortgage();
    }
    showAgentQuestions();
    initDownPayment();
}

function showPage1ProductPath() {
    if(document.getElementById("mortPage1NotHP") != null && document.getElementById("mortPage1HP") != null) {
        if(homePurchaseSelected()) {
            show("mortPage1HP");
            hide("mortPage1NotHP");
        } else {
            show("mortPage1NotHP");
            hide("mortPage1HP");
        }
    } else if(document.getElementById("mortPage1NotHP_1") != null && document.getElementById("mortPage1HP_1") != null) {
        if(homePurchaseSelected()) {
            showElement2("mortPage1HP_1");
            showElement2("mortPage1HP_2");
            hideElement2("mortPage1NotHP_1");
            hideElement2("mortPage1NotHP_2");
            hideElement2("mortPage1NotHP_3");
            hideElement2("mortPage1NotHP_4");
        } else {
            showElement2("mortPage1NotHP_1");
            showElement2("mortPage1NotHP_2");
            showElement2("mortPage1NotHP_3");
            showElement2("mortPage1NotHP_4");
            hideElement2("mortPage1HP_1");
            hideElement2("mortPage1HP_2");
        }
    } else if (document.getElementById("mortPage1NotHP_3pageN_hp_1") != null && document.getElementById("mortPage1HP_3pageN_hp_1") != null) {
        if(homePurchaseSelected()) {
            showElement2("mortPage1HP_3pageN_hp_1");
            showElement2("mortPage1HP_3pageN_hp_2");
            showElement2("mortPage1HP_3pageN_hp_3");
            showElement2("mortPage1HP_3pageN_hp_4");  
            showElement2("mortPage1HP_3pageN_hp_5");  
            hideElement2("mortPage1NotHP_3pageN_hp_1");
            hideElement2("mortPage1NotHP_3pageN_hp_2");
            hideElement2("mortPage1NotHP_3pageN_hp_3");
            hideElement2("mortPage1NotHP_3pageN_hp_4");
            
            showElement2("divLOAN_TYPE_02");
            hideElement2("divLOAN_TYPE_01");
        } else {
            showElement2("mortPage1NotHP_3pageN_hp_1");
            showElement2("mortPage1NotHP_3pageN_hp_2");
            showElement2("mortPage1NotHP_3pageN_hp_3");
            showElement2("mortPage1NotHP_3pageN_hp_4");
            hideElement2("mortPage1HP_3pageN_hp_1");
            hideElement2("mortPage1HP_3pageN_hp_2");
            hideElement2("mortPage1HP_3pageN_hp_3");
            hideElement2("mortPage1HP_3pageN_hp_4"); 
            hideElement2("mortPage1HP_3pageN_hp_5");
            
            showElement2("divLOAN_TYPE_01");
            hideElement2("divLOAN_TYPE_02");
        }
        initSecondMortgage();
    }
    showFoundHomeQuestions();
}

function hideElement2(element) {
   myElement = document.getElementById(element);
   if(myElement) {
     myElement.className = "hidden";
   }
}

function showElement2(element) {
   myElement = document.getElementById(element);
   if(myElement) {
     myElement.className = "visible";
   }
}

function optDesiredLoanTypeQ(selection) {
    if("Yes" == selection) {
        selectValue(window.document.form1.DESIRED_LOAN_TYPE_01, "Refinance with Cash Out");
    }
    hide("optDiv_DESIRED_LOAN_TYPE_01");
    window.document.form1.DESIRED_LOAN_TYPE_01.focus();
}

function selectValue(field, value) {
    for (var i = 0; i < field.options.length; i++) {
        if (field.options[i].value == value) {
            field.options[i].selected = true;
            field.selectedIndex = i;
            return;
        }
    }
    return;
}

function validate_HOUSE_TYPE_01() {
    field = window.document.form1.HOUSE_TYPE_01;
    value = getFieldValueLB(field)
    if(!validateIsRequired(value)) {
        alert( "Please indicate the Type of Property you want to refinance." );
        field.focus();
        return false;
    }
    return true;
}

function validate_DESIRED_RATE_TYPE_01() {
	field = window.document.form1.DESIRED_RATE_TYPE_01;
    value = getFieldValueRB(field)
    if(homePurchaseSelected() && !validateIsRequired(value)) {
        alert( "Please indicate your desired type of rate." );
        return false;
    }
    return true;
}

function validate_MORT_OWN_HOME_01() {
    field = window.document.form1.MORT_OWN_HOME_01;
    value = getFieldValueRB(field)
    if(homePurchaseSelected() && !validateIsRequired(value)) {
        alert( "Please indicate if you currently own a home." );
        return false;
    }
    return true;
}

function validate_MORT_FIRST_HOME_01() {
    field = window.document.form1.MORT_FIRST_HOME_01;
    value = getFieldValueRB(field)
    if(homePurchaseSelected() && !validateIsRequired(value)) {
        alert( "Please indicate if this is your first home purchase." );
        return false;
    }
    return true;
}

function validate_MORT_FIRST_HOME_02() {
    field = window.document.form1.MORT_FIRST_HOME_02;
    value = getFieldValueRB(field)
    if(homePurchaseSelected() && !hasOwnHome() && !validateIsRequired(value)) {
        alert( "Please indicate if this is your first home purchase." );
        return false;
    }
    return true;
}

function validate_MORT_HOME_FOUND_01() {
    field = window.document.form1.MORT_HOME_FOUND_01;
    value = getFieldValueRB(field)
    if(homePurchaseSelected() && !validateIsRequired(value)) {
        alert( "Please indicate if you have found a specific home." );
        return false;
    }
    return true;
}

function validate_MORT_CONTRACT_01() {
    if(!foundHome()) {
      return true;
    }
    field = window.document.form1.MORT_CONTRACT_01;
    value = getFieldValueRB(field)
    if(homePurchaseSelected() && !validateIsRequired(value)) {
        alert( "Please indicate if you have a purchase contract." );
        return false;
    }
    return true;
}

function validate_MORT_LOAN_TIME_01() {
    field = window.document.form1.MORT_LOAN_TIME_01;
    value = getFieldValueLB(field)
    if(homePurchaseSelected() && !validateIsRequired(value)) {
        alert( "Please select a timeframe to buy a home." );
        field.focus();
        return false;
    }
    return true;
}

function validate_MORT_AGENT_01() {
    field = window.document.form1.MORT_AGENT_01;
    value = getFieldValueRB(field)
    if(homePurchaseSelected() && !validateIsRequired(value)) {
        alert( "Please indicate if you have a real estate agent." );
        return false;
    }
    return true;
}

var warnedAboutAgentName = false;

function validate_MORT_AGENT_NAME_01() {
    if(!hasAgent() || warnedAboutAgentName) {
        return true;
    }
    field = window.document.form1.MORT_AGENT_NAME_01;
    value = getFieldValueTF(field)
    if(homePurchaseSelected() && validateIsRequired(value)) {
        if(!validateAlphaChar(value)) {
            warnedAboutAgentName = true;
            alert( "Please enter your agent's name." );
            field.focus();
            return false;
        }
    }
    return true;
}

function validate_MORT_AGENT_PHONE_01(form) {
    if(!hasAgent()) {
        return true;
    }
    dayMessage = "Please enter a valid phone number.";
    dayAreaCode = getFieldValueTF(form.MORT_AGENT_PHONE_AREA_01);
    dayPrefix = getFieldValueTF(form.MORT_AGENT_PHONE_PREFIX_01);
    daySuffix = getFieldValueTF(form.MORT_AGENT_PHONE_SUFFIX_01);


    //this is supposed to be optional
    if(!(validateIsRequired(dayAreaCode) || validateIsRequired(dayPrefix) || validateIsRequired(daySuffix))) {
       return true;
    }

    if(!validate_PHONE_GENERIC_AREA_01_with_messages(form.MORT_AGENT_PHONE_AREA_01, "USA", dayMessage, dayMessage)) {
        return false;
    }

    if(!validate_PHONE_2PART_01(form.MORT_AGENT_PHONE_PREFIX_01, form.MORT_AGENT_PHONE_SUFFIX_01, dayMessage)) {
        return false;
    }

    return true;
}

function validate_MORT_AGENT_COMPANY_01() {
    //field = window.document.form1.MORT_AGENT_COMPANY_01;
    //alert( "Please enter your agent's company name." );
    return true;
}

function validate_MORT_MATCH_AGENT_01() {
    field = window.document.form1.MORT_MATCH_AGENT_01;
    value = getFieldValueRB(field)
    if(homePurchaseSelected() && !hasAgent() && !validateIsRequired(value)) {
        alert( "Please indicate if you would like to be matched with a real estate agent." );
        return false;
    }
    return true;
}

function validate_MORT_SQUARE_FOOTAGE_01() {
    if(!matchToAgent()) {
        return true;
    }
    field = window.document.form1.MORT_SQUARE_FOOTAGE_01;
    value = getFieldValueLB(field)
    if(homePurchaseSelected() && !validateIsRequired(value)) {
        alert( "Please select the desired square footage." );
        field.focus();
        return false;
    }
    return true;
}

function validate_MORT_BEDROOMS_01() {
    if(!matchToAgent()) {
        return true;
    }
    field = window.document.form1.MORT_BEDROOMS_01;
    value = getFieldValueLB(field)
    if(homePurchaseSelected() && !validateIsRequired(value)) {
        alert( "Please select the number of bedrooms." );
        field.focus();
        return false;
    }
    return true;
}

function validate_MORT_BATHS_01() {
    if(!matchToAgent()) {
        return true;
    }
    field = window.document.form1.MORT_BATHS_01;
    value = getFieldValueLB(field)
    if(homePurchaseSelected() && !validateIsRequired(value)) {
        alert( "Please select the number of bathrooms." );
        field.focus();
        return false;
    }
    return true;
}

function validate_MORT_PURCHASE_PRICE_01() {
    field = window.document.form1.MORT_PURCHASE_PRICE_01;
    value = getFieldValueLB(field)
    if(homePurchaseSelected() && !validateIsRequired(value)) {
        alert( "Please select an estimate of the home purchase price." );
        field.focus();
        return false;
    }
    return true;
}

function validate_MORT_DOWN_PAYMENT_01() {
    field = window.document.form1.MORT_DOWN_PAYMENT_01;
    value = getFieldValueLB(field)
    if(homePurchaseSelected() && !validateIsRequired(value)) {
        alert( "Please select the estimated down payment." );
        field.focus();
        return false;
    }
    return true;
}

function validate_MORT_INCOME_01() {
    field = window.document.form1.MORT_INCOME_01;
    value = getFieldValueLB(field)
    if(!validateIsRequired(value)) {
        alert( "Please select your pre-tax income." );
        field.focus();
        return false;
    }
    return true;
}

function validate_MORT_OCCUPATION_STATUS_01() {
    field = window.document.form1.MORT_OCCUPATION_STATUS_01;
    value = getFieldValueLB(field)
    if(!validateIsRequired(value)) {
        alert( "Please select your occupational status." );
        field.focus();
        return false;
    }
    return true;
}

function validate_MORT_BANKRUPTCY_STATUS_01() {
    field = window.document.form1.MORT_BANKRUPTCY_STATUS_01;
    value = getFieldValueLB(field)
    if(!validateIsRequired(value)) {
        alert( "Please select your bankruptcy status." );
        field.focus();
        return false;
    }
    return true;
}

function validate_MORT_FORECLOSURE_STATUS_01() {
	field = window.document.form1.MORT_FORECLOSURE_STATUS_01;
	value = getFieldValueRB(field)
	if(homePurchaseSelected() && !validateIsRequired(value)) {
		alert("Please indicate if you have had any foreclosures.");
		return false;
	}
	return true;
}

function validate_MORT_LATE_PAYMENT_01() {
    field = window.document.form1.MORT_LATE_PAYMENT_01;
    value = getFieldValueRB(field)
    if(latePaymentQuestionIsRequired() && !validateIsRequired(value)) {
        alert( "Please indicate if you have had any late mortgage payments." );
        return false;
    }
    return true;
}
function validate_MORT_FRIEND_FAMILY_LOAN() {
    field = window.document.form1.MORT_FRIEND_FAMILY_LOAN;
    value = getFieldValueRB(field)
    if(homePurchaseSelected() && !validateIsRequired(value)) {
        alert( "Please indicate if you have family or friends that could loan you money." );
        return false;
    }
    return true;
}

function validate_MORT_VETERAN_STATUS_01() {
    field = window.document.form1.MORT_VETERAN_STATUS_01;
    value = getFieldValueRB(field)
    if(!validateIsRequired(value)) {
        alert( "Please indicate your U.S. Military status." );
        return false;
    }
    return true;
}

function validate_MORT_REVERSE_MORTGAGE_01() {
    field = window.document.form1.MORT_REVERSE_MORTGAGE_01;
    value = getFieldValueRB(field)
    if(reverseMortgageQuestionIsRequired() && !validateIsRequired(value)) {
        alert( "Please indicate if you are interested in a reverse mortgage." );
        return false;
    }
    return true;
}

function reverseMortgageQuestionIsRequired() {
    age = getFieldValueLB(window.document.form1.MORT_AGE_01)
    if(refinanceSelected() && age >= 62) {
        return true;
    } else {
        return false;
    }
}

function showReverseMortgageQuestion() {
    if(document.getElementById("qDiv_MORT_REVERSE_MORTGAGE_01") != null) {
        if(reverseMortgageQuestionIsRequired()) {
            show("qDiv_MORT_REVERSE_MORTGAGE_01");
        } else {
            hide("qDiv_MORT_REVERSE_MORTGAGE_01");
        }
    } else if(document.getElementById("qDiv_MORT_REVERSE_MORTGAGE_01_1") != null) {
        if(reverseMortgageQuestionIsRequired()) {
            showElement2("qDiv_MORT_REVERSE_MORTGAGE_01_1");
        } else {
            hideElement2("qDiv_MORT_REVERSE_MORTGAGE_01_1");
        }
    }
}

function showAgeQuestion() {
    if(document.getElementById("qDiv_MORT_AGE_01") != null) {
        if(refinanceSelected()) {
            show("qDiv_MORT_AGE_01");
        } else {
            hide("qDiv_MORT_AGE_01");
        }
    } else if(document.getElementById("qDiv_MORT_AGE_01_1") != null) {
        if(refinanceSelected()) {
            showElement2("qDiv_MORT_AGE_01_1");
        } else {
            hideElement2("qDiv_MORT_AGE_01_1");
        }
    }
}

function latePaymentQuestionIsRequired() {
    answer = "NOTANSWERED";
    if(window.document.form1.MORT_FIRST_HOME_HID_01 != null) {
        answer = getFieldValueTF(window.document.form1.MORT_FIRST_HOME_HID_01);
    } else if(window.document.form1.MORT_FIRST_HOME_01 != null) {
        answer = getFieldValueRB(window.document.form1.MORT_FIRST_HOME_01);
    }
    if(!homePurchaseSelected() || answer != "YES") {
        return true;
    } else {
        return false;
    }
}

function showLatePaymentQuestion() {
    if(document.getElementById("qDiv_MORT_LATE_PAYMENT_01") != null) {
        if(latePaymentQuestionIsRequired()) {
            show("qDiv_MORT_LATE_PAYMENT_01");
        } else {
            hide("qDiv_MORT_LATE_PAYMENT_01");
        }
    } else if(document.getElementById("qDiv_MORT_LATE_PAYMENT_01_1") != null) {
        if(latePaymentQuestionIsRequired()) {
            showElement2("qDiv_MORT_LATE_PAYMENT_01_1");
        } else {
            hideElement2("qDiv_MORT_LATE_PAYMENT_01_1");
        }
    }
}
function showFriendLoanQuestion() {
    if(document.getElementById("qDiv_MORT_FRIEND_LOAN") != null) {
        if(homePurchaseSelected()) {
            show("qDiv_MORT_FRIEND_LOAN");
        } else {
            hide("qDiv_MORT_FRIEND_LOAN");
        }
    } else if(document.getElementById("qDiv_MORT_FRIEND_LOAN_1") != null) {
        if(homePurchaseSelected()) {
            showElement2("qDiv_MORT_FRIEND_LOAN_1");
        } else {
            hideElement2("qDiv_MORT_FRIEND_LOAN_1");
        }
    }
}

function validate_MORT_AGE_01() {
    field = window.document.form1.MORT_AGE_01;
    value = getFieldValueLB(field)
    if(refinanceSelected() && !validateIsRequired(value)) {
        alert( "Please select your age." );
        field.focus();
        return false;
    }
    return true;
}

function validate_PROP_STATE_01() {
    field = window.document.form1.PROP_STATE_01;
    value = getFieldValueLB(field)
    if(!validateIsRequired(value)) {
        alert( "Please indicate the Property Location." );
        field.focus();
        return false;
    } else if(nonLicensedState(value)) {
        alert( "Sorry, we can't help you for properties in this state." );
        field.focus();
        return false;
    }
    return true;
}

function nonLicensedState(value) {
    if(value=='MA' || value=='RI' || value=='DE' || value=='DC') {
    	return true;
    } else {
    	return false;
    }
}

function validate_PROP_ZIP_01() {
    field = window.document.form1.PROP_ZIP_01;
    value = getFieldValueTF(field)
    if(!validateIsRequired(value)) {
        alert( "Please provide a valid Property Zip Code." );
        field.focus();
        return false;
    }
    if(!isUSZip(value)) {
        alert( "Please provide a valid Property Zip Code." );
        field.focus();
        return false;
    }
    return true;
}

function validate_PROP_PURP_01() {
    if(homePurchaseSelected()) {
      return true;
    }
    field = window.document.form1.PROP_PURP_01;
    value = getFieldValueLB(field)
    if(!validateIsRequired(value)) {
        alert( "Please indicate the Property Use." );
        field.focus();
        return false;
    }
    return true;
}

function validate_HOUSE_VALUE_01() {
    if(homePurchaseSelected()) {
      return true;
    }
    field = window.document.form1.HOUSE_VALUE_01;
    value = getFieldValueLB(field)
    if(!validateIsRequired(value)) {
        alert( "Please provide the Estimated Value of your property." );
        field.focus();
        return false;
    }

    if(value<75000) {
        alert( "We're sorry.  Your property value needs to be higher in order to match with any lenders in our network." );
        field.focus();
        return false;
    }
    return true;
}

function validate_FIRST_MORTGAGE_BALANCE_01() {
    if(homePurchaseSelected()) {
      return true;
    }
    field = window.document.form1.FIRST_MORTGAGE_BALANCE_01;
    value = getFieldValueLB(field)
    if(!validateIsRequired(value)) {
        alert( "Please provide the Balance on your 1st Mortgage." );
        field.focus();
        return false;
    }

    if(value<10000) {
        alert( "We're sorry. In order to match with lenders in our network, your 1st mortgage balance needs to be higher. Be sure to include outstanding Home Equity Loan or Line of Credit balances." );
        field.focus();
        return false;
    }

    return true;
}

function validate_CURRENT_INTEREST_RATE_TEXT_01() {
    if(homePurchaseSelected()) {
      return true;
    }
    
    var field1 = window.document.form1.CURRENT_INTEREST_RATE_INT_TEXT_01;
    var field2 = window.document.form1.CURRENT_INTEREST_RATE_DECIMAL_TEXT_01;
    var rateInt = getFieldValueLB(field1);
    var rateDec = getFieldValueLB(field2);
    
    if(!validateIsRequired(rateInt) && !validateIsRequired(rateDec)) {
        alert( "Please provide the current interest rate on your current mortgage." );
        field1.focus();
        return false;
    }
    
    if (!validatePercentageText(rateInt + "." + rateDec, field1, "Current Interest Rate")){
        return false;	
    }
    
    return true;
}

function validate_SECOND_INTEREST_RATE_TEXT_01() {
	if(homePurchaseSelected()) {
	    return true;
	}
	    
	if(getFieldValueRB(window.document.form1.SECOND_MORTGAGE_01) == "YES") {    	
	    // perform the same validation as the current interest rate
	    var field1 = window.document.form1.SECOND_INTEREST_RATE_INT_TEXT_01;
	    var field2 = window.document.form1.SECOND_INTEREST_RATE_DECIMAL_TEXT_01;
	    var rateInt = getFieldValueLB(field1);
	    var rateDec = getFieldValueLB(field2);

	    // make sure current interest rate is entered first
	    if(!validate_CURRENT_INTEREST_RATE_TEXT_01()) {
	        alert( "Please provide a valid Current Interest Rate on your current mortgage first." );
	        field.focus();
	        return false;
	    }
	    if(!validateIsRequired(rateInt) && !validateIsRequired(rateDec)) {
	        alert( "Please provide the current interest rate on Additional Mortgage" );
	        field1.focus();
	        return false;
	    }
	        
	    if (!validatePercentageText(rateInt + "." + rateDec, field1, "Current Interest Rate on Additional Mortgage")){
	        return false;	
	    }
	}
	
    return true;
}

function validatePercentageText(rate, field, fieldName){
    
    var rateDouble = parseFloat(rate);
    var minValue = 0.001;
    var maxValue = 15.000;
    
    if (isNaN(rate)) {
    	alert("The " + fieldName + " should be a numeric value.");
    	field.focus();
        return false;
    }
    
    if (rateDouble < minValue){
    	alert("Interest rates cannot be 0. Please select interest rate above 0");
        field.focus();
        return false;
    }
    
    if (rateDouble > maxValue){
    	alert("Interest rates cannot exceed " + maxValue
            + ". Please select interest rates below " + maxValue);
        field.focus();
        return false;
    }
    
    return true;
}


function validate_CURRENT_INTEREST_RATE_01() {
    if(homePurchaseSelected()) {
      return true;
    }
    var field1 = window.document.form1.CURRENT_INTEREST_RATE_INT_01;
    var field2 = window.document.form1.CURRENT_INTEREST_RATE_DECIMAL_01;
    var rateInt = getFieldValueLB(field1);
    var rateDec = getFieldValueLB(field2);
    if(!validateIsRequired(rateInt)) {
        alert( "Please provide the Interest Rate on your current mortgage." );
        field1.focus();
        return false;
    }
    if(!validateIsRequired(rateDec)) {
        alert( "Please provide the Interest Rate on your current mortgage." );
        field2.focus();
        return false;
    }
    return true;
}

function validate_DESIRED_LOAN_TYPE_01() {
    field = window.document.form1.DESIRED_LOAN_TYPE_01;
    value = getFieldValueLB(field)
    if(!validateIsRequired(value)) {
        alert( "Please indicate what Type of Loan you want." );
        field.focus();
        return false;
    }
    return true;
}

function validate_FHA_LOAN_01() {
	if(homePurchaseSelected()) {
		return true;
	}

	field = window.document.form1.FHA_LOAN_01;
	if(field == null) {
		return true;
	}

	value = getFieldValueRB(field)
	if(!validateIsRequired(value)) {
		alert( "Please indicate if you are in an FHA loan." );
		return false;
	}
	return true;
}

function validate_SECOND_MORTGAGE_01() {
    if(homePurchaseSelected()) {
      return true;
    }
    field = window.document.form1.SECOND_MORTGAGE_01;
    value = getFieldValueRB(field)
    if(!validateIsRequired(value)) {
        alert( "Please indicate Are there additional mortgages on this property." );
        field.focus();
        return false;
    }
    return true;
}

function validate_SECOND_MORTGAGE_BALANCE_01() {
    if(homePurchaseSelected()) {
      return true;
    }
    if(getFieldValueRB(window.document.form1.SECOND_MORTGAGE_01) == "YES") {
        field = window.document.form1.SECOND_MORTGAGE_BALANCE_01;
        value = getFieldValueLB(field)
        if(!validateIsRequired(value)) {
            alert( "Please provide Balance on Additional Mortgage." );
            field.focus();
            return false;
        }
    }
    return true;
}

function validate_SECOND_INTEREST_RATE_01() {
    if(homePurchaseSelected()) {
      return true;
    }
    if(getFieldValueRB(window.document.form1.SECOND_MORTGAGE_01) == "YES") {
        var field1 = window.document.form1.SECOND_INTEREST_RATE_INT_01;
        var field2 = window.document.form1.SECOND_INTEREST_RATE_DECIMAL_01;
        var rateInt = getFieldValueLB(field1);
        var rateDec = getFieldValueLB(field2);
        if(!validateIsRequired(rateInt)) {
            alert( "Please provide the Interest Rate on your additional mortgage." );
            field1.focus();
            return false;
        }
        if(!validateIsRequired(rateDec)) {
            alert( "Please provide the Interest Rate on your additional mortgage." );
            field2.focus();
            return false;
        }
    }
    return true;
}

function validate_ADDITIONAL_CASH_TO_BORROW_01() {
    if(homePurchaseSelected()) {
      return true;
    }
    var firstMortgage = 0;
    if(window.document.form1.FIRST_MORTGAGE_BALANCE_HID_01 != null) {
    firstMortgage = window.document.form1.FIRST_MORTGAGE_BALANCE_HID_01.value;    
    } else {
        firstMortgage = window.document.form1.FIRST_MORTGAGE_BALANCE_01.options[window.document.form1.FIRST_MORTGAGE_BALANCE_01.selectedIndex].value;
        
    }
    var secondMortgage = 0;
    if(window.document.form1.SECOND_MORTGAGE_BALANCE_HID_01 != null) {
        secondMortgage = window.document.form1.SECOND_MORTGAGE_BALANCE_HID_01.value;    
    } else {
        secondMortgage = window.document.form1.SECOND_MORTGAGE_BALANCE_01.options[window.document.form1.SECOND_MORTGAGE_BALANCE_01.selectedIndex].value;
        
    }
    if(window.document.form1.HOUSE_VALUE_HID_01 != null) {
        houseValue = window.document.form1.HOUSE_VALUE_HID_01.value;
    } else {
        houseValue = window.document.form1.HOUSE_VALUE_01.options[window.document.form1.HOUSE_VALUE_01.selectedIndex].value;
    }
    field = window.document.form1.ADDITIONAL_CASH_TO_BORROW_01;
    value = getFieldValueLB(field);
    var additionalCash = 0;
    if (value.length > 0) {
        additionalCash = parseInt(additionalCash)+parseInt(value);
    }

    var ltv = (parseInt(additionalCash)+parseInt(firstMortgage))/parseInt(houseValue);
    if((parseInt(additionalCash)+parseInt(firstMortgage)+parseInt(secondMortgage))<=0) {
        alert( "In order to Refinance, your First Mortgage Balance plus Additional Cash to Borrow should be greater than $0.  Please try again." );
        field.focus();
        return false;
    }

    var loanType;
    if(window.document.form1.DESIRED_LOAN_TYPE_HID_01 != null) {
        loanType = window.document.form1.DESIRED_LOAN_TYPE_HID_01;
    } else if(window.document.form1.DESIRED_LOAN_TYPE_01 != null) {
        loanType = getFieldValueLB(window.document.form1.DESIRED_LOAN_TYPE_01);
    } else {
        loanType = "";
    }

    if(loanType=="Refinance" || loanType=="Refinance with Cash Out" || loanType=="Debt Consolidation") {
        if((parseInt(additionalCash)+parseInt(firstMortgage)+parseInt(secondMortgage))<50000) {
            var loanPurpose = getFieldValueLB(window.document.form1.LOAN_PURP_01);
            if(loanPurpose == "make_improvements" && (loanType=="Refinance" || loanType=="Refinance with Cash Out")) {
                return true; // will be changed to "Home Equity Loan" and Addicational Cash $15000 (Bug 627)
            } else {
                alert( "We're sorry. In order to match with lenders, your loan size needs to be bigger. Please try increasing Additional Cash to Borrow." );
                field.focus();
                return false;
            }
        } else {
            return true;
        }
    } else if(loanType=="Home Equity Loan" || loanType == "Home Improvement") {
        if((parseInt(additionalCash)+parseInt(firstMortgage)+parseInt(secondMortgage))<15000) {
            alert( "We're sorry. In order to match with lenders, your loan size needs to be bigger. Please try increasing Additional Cash to Borrow." );
            field.focus();
            return false;
        } else {
            return true;
        }
    }

    if(ltv>.90 && (parseInt(additionalCash)+parseInt(firstMortgage)) < 50000) {
        alert( "We're sorry.  We are unable to match you with any Lenders in our network.  Please make sure the Estimated Value of Your Property is accurate." );
        field.focus();
        return false;
    }
    return true;
}

function validate_CREDIT_STATUS_01() {
    field = window.document.form1.CREDIT_STATUS_01;
    value = getFieldValueLB(field);
    if(!validateIsRequired(value)) {
        alert( "Please indicate your Credit Status." );
        field.focus();
        return false;
    }
    return true;
}

function validate_LOAN_TYPE_01() {
    field = window.document.form1.LOAN_TYPE_01;
    value = getFieldValueLB(field);
    if(!validateIsRequired(value)) {
    	if (homePurchaseSelected()){
    		alert("Please select your Preferred Rate Type.")
        } else {
            alert("Please select your current rate type.");
        }
        field.focus();
        return false;
    }
    return true;
}

function validate_LOAN_PURP_01() {
    if(homePurchaseSelected()) {
      return true;
    }
    field = window.document.form1.LOAN_PURP_01;
    value = getFieldValueLB(field);
    if(!validateIsRequired(value)) {
        alert( "Please indicate your Loan purpose." );
        field.focus();
        return false;
    }
    return true;
}

function validate_PREF_CALLTIME_01() {
    field1 = window.document.form1.PREF_CALLTIME_PART1_01;
    value1 = getFieldValueLB(field1);
    field2 = window.document.form1.PREF_CALLTIME_PART2_01;
    value2 = getFieldValueLB(field1);
    if(!validateIsRequired(value1) || !validateIsRequired(value1)) {
        alert( "Please indicate your best call time." );
        field.focus();
        return false;
    }
    return true;
}

function validate_AGENT_NAME_01() {
    var hasAgent = getFieldValueRB(window.document.form1.HAS_AGENT_01);
    if(hasAgent == "YES" || hasAgent == "Yes") {
        var field = window.document.form1.AGENT_NAME_01;
        var value = getFieldValueTF(field);
        if(!validateIsRequired(value)) {
            alert( "Please enter your real estate agent's name." );
            field.focus();
            return false;
        }
    }
    return true;
}

function validate_AGENT_COMPANY_01() {
    var hasAgent = getFieldValueRB(window.document.form1.HAS_AGENT_01);
    if(hasAgent == "YES" || hasAgent == "Yes") {
        var field = window.document.form1.AGENT_COMPANY_01;
        var value = getFieldValueTF(field);
        if(!validateIsRequired(value)) {
            alert( "Please enter the company your real estate agent works for." );
            field.focus();
            return false;
        }
    }
    return true;
}

function validate_AGENT_PHONE_AREA_01(form) {
    var hasAgent = getFieldValueRB(window.document.form1.HAS_AGENT_01);
    if(hasAgent == "NO" || hasAgent == "No") {
        return true;
    }
    var field = form.AGENT_PHONE_AREA_01;
    var value = getFieldValueTF(field)
    if(!validateIsRequired(value)) {
        alert( "Please enter your real estate agent's phone area code." );
        form.AGENT_PHONE_AREA_01.focus();
        return false;
    }
    value=stripAwayNonDigits(value);
    if(!validateMinLength(value,3)) {
        alert( "Please enter a valid agent's phone number." );
        field.focus();
        return false;
    } else if(!validateMaxLength(value,3)) {
        alert( "Please enter a valid agent's phone number." );
        field.focus();
        return false;
    } else if(value.charAt(0)=="0" || value.charAt(0)=="1") {
        alert( "Please enter a valid agent's phone number." );
        field.focus();
        return false;
    } else if(allCharsTheSame(value)) {
        alert( "Please enter a valid agent's phone number." );
        field.focus();
        return false;
    }
    return true;
}

function validate_AGENT_PHONE_01(form) {
    var hasAgent = getFieldValueRB(window.document.form1.HAS_AGENT_01);
    if(hasAgent == "NO" || hasAgent == "No") {
        return true;
    }
    var field = form.AGENT_PHONE_01;
    var value = getFieldValueTF(field);
    if(!validateIsRequired(value)) {
        alert( "Please enter your agent's phone number." );
        field.focus();
        return false;
    }
    value=stripAwayNonDigits(value);
    if(!validateMinLength(value,7)) {
        alert( "Please enter a valid agent's phone number." );
        field.focus();
        return false;
    } else if(!validateMaxLength(value,7)) {
        alert( "Please enter a valid agent's phone number." );
        field.focus();
        return false;
    } else if(allCharsTheSame(value)) {
        alert( "Please enter a valid agent's phone number." );
        field.focus();
        return false;
    } else if(value.charAt(0)=="0" || value.charAt(0)=="1") {
        alert( "Please enter a valid agent's phone number." );
        field.focus();
        return false;
    } else if(value == "5551212") {
        alert( "Please enter a valid agent's phone number." );
        field.focus();
        return false;
    }
    return true;
}

function geoStateText() {
var geoStateTextField = '';
if(window.document.form1.GeoState) {
  geoStateTextField = window.document.form1.GeoState.value;
}
if(geoStateTextField == "AL") {
  geoStateTextField = ' in Alaska ';
} else if(geoStateTextField == "AZ") {
  geoStateTextField = ' in Arizona ';
} else if(geoStateTextField == "CA") {
  geoStateTextField = ' in California ';
} else if(geoStateTextField == "CO") {
  geoStateTextField = ' in Colorado ';
} else if(geoStateTextField == "CT") {
  geoStateTextField = ' in Connecticut ';
} else if(geoStateTextField == "DE") {
  geoStateTextField = ' in Delaware ';
} else if(geoStateTextField == "FL") {
  geoStateTextField = ' in Florida ';
} else if(geoStateTextField == "GA") {
  geoStateTextField = ' in Georgia ';
} else if(geoStateTextField == "HI") {
  geoStateTextField = ' in Hawaii ';
} else if(geoStateTextField == "ID") {
  geoStateTextField = ' in Idaho ';
} else if(geoStateTextField == "IL") {
  geoStateTextField = ' in Illinois ';
} else if(geoStateTextField == "IN") {
  geoStateTextField = ' in Indiana ';
} else if(geoStateTextField == "MA") {
  geoStateTextField = ' in Massachusetts ';
} else if(geoStateTextField == "ME") {
  geoStateTextField = ' in Maine ';
} else if(geoStateTextField == "MD") {
  geoStateTextField = ' in Maryland ';
} else if(geoStateTextField == "MI") {
  geoStateTextField = ' in Michigan ';
} else if(geoStateTextField == "MN") {
  geoStateTextField = ' in Minnesota ';
} else if(geoStateTextField == "MO") {
  geoStateTextField = ' in Missouri ';
} else if(geoStateTextField == "MT") {
  geoStateTextField = ' in Montana ';
} else if(geoStateTextField == "NV") {
  geoStateTextField = ' in Nevada ';
} else if(geoStateTextField == "NH") {
  geoStateTextField = ' in New Hampshire ';
} else if(geoStateTextField == "NJ") {
  geoStateTextField = ' in New Jersey ';
} else if(geoStateTextField == "NM") {
  geoStateTextField = ' in New Mexico ';
} else if(geoStateTextField == "NY") {
  geoStateTextField = ' in New York ';
} else if(geoStateTextField == "OH") {
  geoStateTextField = ' in Ohio ';
} else if(geoStateTextField == "OK") {
  geoStateTextField = ' in Oklahoma ';
} else if(geoStateTextField == "OR") {
  geoStateTextField = ' in Oregon ';
} else if(geoStateTextField == "PA") {
  geoStateTextField = ' in Pennsylvania ';
} else if(geoStateTextField == "RI") {
  geoStateTextField = ' in Rhode Island ';
} else if(geoStateTextField == "VA") {
  geoStateTextField = ' in Virginia ';
} else if(geoStateTextField == "WA") {
  geoStateTextField = ' in Washington ';
} else if(geoStateTextField == "DC") {
  geoStateTextField = ' in Washington D.C. ';
} else if(geoStateTextField == "WV") {
  geoStateTextField = ' in West Virgina ';
} else if(geoStateTextField == "WI") {
  geoStateTextField = ' in Wisconsin ';
} else {
  geoStateTextField = '';
}
var geoStateSpan = document.getElementById('geoStateSpan');
if(geoStateSpan) {
  geoStateSpan.innerHTML = geoStateTextField;
}
}

function NonResidents() {
    if(window.document.form1.COUNTRY_01 != null) {
        window.document.form1.COUNTRY_01.value= "other";
    }
    submitForm();
    return true;
}

function initField(field, value) {
    if(field[0].type == 'radio')
        setFieldValueRB(field, value);
    else if(field[0].type == 'text')
        setFieldValueTF(field[0], value);
    else if(field[0].type == 'select-one')
        setFieldValueLB(field[0], value);
    else if(field[0].type == 'checkbox')
        setFieldValueCB(field, value);
    else {
        return;
    }
    
    if(field[0].onclick != undefined && field[0].onclick != null)
        field[0].onclick();
    if(field[0].onchange != undefined && field[0].onchange != null)
        field[0].onchange();
}

function initParams() {
    var q = window.location.search;
    if(q != null && q.length > 1) {
        q = q.substring(1, q.length);
        var keyValuePairs = q.split("&");
        for(var index=0; index < keyValuePairs.length; index++) {
            var delim = keyValuePairs[index].indexOf("=");
            if(delim > 0 && delim < (keyValuePairs[index].length - 1)) {
                var name = keyValuePairs[index].substring(0,delim);
                var value = keyValuePairs[index].substring(++delim,keyValuePairs[index].length);
                value = replaceSpecialSymbols(value);
                var field = window.document.getElementsByName(name);
                if(field != null && field.length > 0) {
                    initField(field, value);
                    nextQ(field[0]);
                }
            }
        }
    }
}

function replaceSpecialSymbols(value) {
 if (value && value.length) {
  var re = /%20/gi;
  value = value.replace(re, " ");
  re = /\+/gi;
  value = value.replace(re, " ");
  re = /%25/gi;
  value = value.replace(re, "%");
  re = /%26/gi;
  value = value.replace(re, "&");
  re = /%A9/gi;
  value = value.replace(re, "@");
  re = /%3B/gi;
  value = value.replace(re, ";");
  re = /%3C/gi;
  value = value.replace(re, "<");
  re = /%3E/gi;
  value = value.replace(re, ">");
 }
 
 return value;
}

var warnedAboutPhone=false;

function validate_MORTGAGE_PHONE_01(form) {
    dayMessage = "Please enter a valid work phone number.";
    eveningMessage = "Please enter a valid home phone number.";
    dayAreaCode = getFieldValueTF(form.PHONE_DAY_AREA_01);
    dayPrefix = getFieldValueTF(form.PHONE_DAY_PREFIX_01);
    daySuffix = getFieldValueTF(form.PHONE_DAY_SUFFIX_01);

    eveningAreaCode = getFieldValueTF(form.PHONE_EVENING_AREA_01);
    eveningPrefix = getFieldValueTF(form.PHONE_EVENING_PREFIX_01);
    eveningSuffix = getFieldValueTF(form.PHONE_EVENING_SUFFIX_01);
    
    if(!validateIsRequired(dayAreaCode) && !validateIsRequired(dayPrefix) && !validateIsRequired(daySuffix) && validateIsRequired(eveningAreaCode) && validateIsRequired(eveningPrefix) && validateIsRequired(eveningSuffix)) {
    if(!validate_PHONE_EVENING_AREA_01_with_messages(form, "Please enter your home Area Code.", eveningMessage)) {
        return false;
    }
    if(!validate_PHONE_2PART_01(form.PHONE_EVENING_PREFIX_01, form.PHONE_EVENING_SUFFIX_01, eveningMessage)) {
	return false;
    }
        if(warnedAboutPhone) {
            setFieldValueTF(form.PHONE_DAY_AREA_01, eveningAreaCode);
            setFieldValueTF(form.PHONE_DAY_PREFIX_01, eveningPrefix);
            setFieldValueTF(form.PHONE_DAY_SUFFIX_01, eveningSuffix);
        } else {
            warnedAboutPhone=true;
            alert( dayMessage );
            return false;
        }
    } else if(!validateIsRequired(eveningAreaCode) && !validateIsRequired(eveningPrefix) && !validateIsRequired(eveningSuffix) && validateIsRequired(dayAreaCode) && validateIsRequired(dayPrefix) && validateIsRequired(daySuffix)) {
    if(!validate_PHONE_DAY_AREA_01_with_messages(form, "Please enter your work Area Code.", dayMessage)) {
        return false;
    }
    if(!validate_PHONE_2PART_01(form.PHONE_DAY_PREFIX_01, form.PHONE_DAY_SUFFIX_01, dayMessage)) {
        return false;
    }
        if(warnedAboutPhone) {
            setFieldValueTF(form.PHONE_EVENING_AREA_01, dayAreaCode);
            setFieldValueTF(form.PHONE_EVENING_PREFIX_01, dayPrefix);
            setFieldValueTF(form.PHONE_EVENING_SUFFIX_01, daySuffix);
        } else {
            warnedAboutPhone=true;
            alert( eveningMessage );
            return false;
        }
    }

    if(!validate_PHONE_DAY_AREA_01_with_messages(form, "Please enter your work Area Code.", dayMessage)) {
        return false;
    }
    if(!validate_PHONE_2PART_01(form.PHONE_DAY_PREFIX_01, form.PHONE_DAY_SUFFIX_01, dayMessage)) {
        return false;
    }
    if(!validate_PHONE_EVENING_AREA_01_with_messages(form, "Please enter your home Area Code.", eveningMessage)) {
        return false;
    }
    if(!validate_PHONE_2PART_01(form.PHONE_EVENING_PREFIX_01, form.PHONE_EVENING_SUFFIX_01, eveningMessage)) {
	return false;
    }

    return true;
}

function validate_PHONE_2PART_01(prefixField, suffixField, message) {
    prefix = getFieldValueTF(prefixField);
    suffix = getFieldValueTF(suffixField);

    if(!validateIsRequired(prefix)) {
            alert( message );
            prefixField.focus()
            return false;
    }
    if(!validateIsRequired(suffix)) {
            alert( message );
            suffixField.focus()
            return false;
    }
    value = stripAwayNonDigits(prefix) + stripAwayNonDigits(suffix);

    if(!validateMinLength(value,7)) {
        alert( message );
        prefixField.focus();
        return false;
    } else if(!validateMaxLength(value,7)) {
        alert( message );
        prefixField.focus();
        return false;
    } else if(allCharsTheSame(value)) {
        alert( message );
        prefixField.focus();
        return false;
    } else if(value.charAt(0)=="0" || value.charAt(0)=="1") {
        alert( message );
        prefixField.focus();
        return false;
    } else if(value == "5551212") {
        alert( message );
        prefixField.focus();
        return false;
    }

    return true;
}

function validate_CONFIRM_CONTACT() {
    var cbField = window.document.form1.confirm_contact;
    if(cbField) {
      if(cbField.checked == false) {
        alert("Please check the box indicating your acknowledgment to be contacted.");
        return false;
      }
    }
    return true;
}

function submitFailField(field) {
    if(field == window.document.form1.COUNTRY_01) {
      var country = getFieldValueLB(field);
      if(country != null && country == "other") {
        submitForm();
        return;
      }
    } else if(field == window.document.form1.PROP_STATE_01) {
        var propState = getFieldValueLB(field);
        if(propState != null && propState == "Not a US Resident") {
          submitForm();
          return;
        }
    } 
//    we are running homepurchase form msnhp
//    if (window.isMsnHomepage || window.redirect4LoanType) {
//      if(field == window.document.form1.DESIRED_LOAN_TYPE_01) {
//        var product = getFieldValueLB(field);
//        if(product != null && product == "Home Purchase") {
//          submitForm();
//          return;
//        }
//      }
//    } 
    if (window.isMsnHomepage || window.redirect4Ltv) {
      if(field == window.document.form1.FIRST_MORTGAGE_BALANCE_01 || field == window.document.form1.HOUSE_VALUE_01){
        //|| field == window.document.form1.SECOND_MORTGAGE_BALANCE_01 || field == window.document.form1.ADDITIONAL_CASH_TO_BORROW_01) {
        var firstMortgage = null;
        if(window.document.form1.FIRST_MORTGAGE_BALANCE_01) {
          firstMortgage = getFieldValueLB(window.document.form1.FIRST_MORTGAGE_BALANCE_01);
        }
/*        var secondMortgage = 0;
        if (window.document.form1.SECOND_MORTGAGE_BALANCE_01) {
          secondMortgage = getFieldValueLB(window.document.form1.SECOND_MORTGAGE_BALANCE_01);
        }
        var addCache = 0;
        if (window.document.form1.ADDITIONAL_CASH_TO_BORROW_01) {
          addCache = getFieldValueLB(window.document.form1.ADDITIONAL_CASH_TO_BORROW_01);
        }
        */
        var houseValue = null;
        if (window.document.form1.HOUSE_VALUE_01) {
          houseValue = getFieldValueLB(window.document.form1.HOUSE_VALUE_01);
        }
  //FIRST_MORTGAGE_BALANCE + SECOND_MORTGAGE_BALANCE + ADDITIONAL_CASH_TO_BORROW) / HOUSE_VALUE
        if(firstMortgage != null && houseValue != null && houseValue != "0") {
          var ltv = parseInt(firstMortgage)/parseInt(houseValue);
          if(ltv>.90) {
            submitForm();
            return;
          }
        }
      }
    }
    if (window.isMsnHomepage || window.redirect4Credit) {
      if (field == window.document.form1.CREDIT_STATUS_01) {
         var crStatus = getFieldValueLB(field);
         if (crStatus == 'Poor') {
           submitForm();
           return;
         }
      }
    }
}
function displayNextQ(field)
{
    submitFailField(field);
    nextQ(field);
}
