
//RESULTS VARIABLES
var mc_principalInterest, mc_monthlyMI, mc_monthlyTax, mc_monthlyInsurance, mc_monthlyPayment, mc_homeownDues = "";

var g_mc_pLoan_termSlider        = null;
var g_mc_pInterest_rateSlider    = null;
var g_mc_pHome_priceSlider       = null;
var g_mc_pLoan_amountSlider      = null;
var g_mc_pProperty_taxesSlider   = null;
var g_mc_pHazard_insuranceSlider = null;
var g_mc_pHoa_duesSlider         = null; 

var g_mc_bInInitialize = false;
var g_mc_bGraphReady = false;
var m_mc_submitnow = false;

var g_mc_bInInitialize = false;

function mc_saveCalculatorToMyC21(pObj, strId){
    if( g_lMyC21Account == null ) {
        if( !processMyC21Account() ){
            //not logged in, display login form
            displayMyC21Login(pObj);
            return false;
        }
    }

    var fm = document.monthlypayments;
    if( mc_checkForm(fm, strId) ){
      var loanTerm     = cleanAndParseInt(fm.monthly_payments_loan_term.value);
      var interestRate = cleanAndParseFloat(cleanInput(fm.monthly_payments_interest_rate.value));
      var homePrice    = cleanAndParseInt(cleanInput(fm.monthly_payments_home_price.value));
      var loanAmount   = cleanAndParseInt(cleanInput(fm.monthly_payments_loan_amount.value));
      var taxes        = cleanAndParseInt(cleanInput(fm.monthly_payments_property_taxes.value));
      var insurance    = cleanAndParseInt(fm.monthly_payments_hazard_insurance.value);
      var hoadues      = cleanAndParseInt(fm.monthly_payments_hoa_dues.value);


       var parms = 'calctype=M&loanterm='+ escape(loanTerm) +'&interestrate='+ escape(interestRate) +'&homeprice='+ escape(homePrice);
       parms += '&loanamount='+ escape(loanAmount) +'&taxes='+ escape(taxes) +'&insurance='+ escape(insurance);
       parms += '&hoadues='+ escape(hoadues);

       displayMyC21SaveItemPopup(pObj, 'type=C&'+ parms, 'save_img');
       //dcsMultiTrack('WT.cg_n', 'Engage', 'WT.z_engage_type', 'Engage', 'WT.z_engage_event', 'Save Search');
    }
    return false;
}

function mc_calculate() {
   try{

     

      var downPayment = (cleanInput(document.monthlypayments.monthly_payments_home_price.value) - cleanInput(document.monthlypayments.monthly_payments_loan_amount.value));
      var LTV = (cleanInput(document.monthlypayments.monthly_payments_loan_amount.value)/cleanInput(document.monthlypayments.monthly_payments_home_price.value));
      var PMIRate = true;
      var LTVThreshold = 0.800;
   
      if (LTV <= LTVThreshold) {
         PMIRate = false;
      }
   
      if (PMIRate) {
         if ((LTV < 0.85)||(LTV == 0.85)) {
            PMIRate = 0.0032;
         } else if ((LTV < 0.90)||(LTV == 0.90)) {
            PMIRate = 0.0052;
         } else if ((LTV < 0.95)||(LTV == 0.95)) {
            PMIRate = 0.0078;
         } else {
            PMIRate = 0.0090;
         }
      }
   
      var mi = cleanInput(document.monthlypayments.monthly_payments_interest_rate.value) / 1200;
      var base = 1;
      var mbase = 1 + mi;
   
      for (i=0; i< (cleanInput(document.monthlypayments.monthly_payments_loan_term.value) * 12); i++) {
         base = base * mbase
      }
   
      //These calculations make the same changes, but apply the values to JavaScript variables (as strings)
      mc_principalInterest = floor(cleanInput(document.monthlypayments.monthly_payments_loan_amount.value) * mi / ( 1 - (1/base))).toString();
      mc_monthlyMI = floor(cleanInput(document.monthlypayments.monthly_payments_loan_amount.value) * (PMIRate / 12)).toString();
      mc_monthlyTax = floor(cleanInput(document.monthlypayments.monthly_payments_property_taxes.value) / 12).toString();
      mc_monthlyInsurance = floor(cleanInput(document.monthlypayments.monthly_payments_hazard_insurance.value) / 12).toString();
      var dasum = (cleanInput(document.monthlypayments.monthly_payments_loan_amount.value)) * mi / ( 1 - (1/base)) + cleanInput(document.monthlypayments.monthly_payments_property_taxes.value) / 12 + cleanInput(document.monthlypayments.monthly_payments_hoa_dues.value) / 12 + cleanInput(document.monthlypayments.monthly_payments_loan_amount.value) * (PMIRate / 12) + cleanInput(document.monthlypayments.monthly_payments_hazard_insurance.value) / 12;
      mc_monthlyPayment = floor(dasum).toString();
      mc_homeownDues = floor((cleanInput(document.monthlypayments.monthly_payments_hoa_dues.value) / 12)).toString();
   }catch (e){
   }
}

function mc_showResults(strId)
{
   var strPrincipalInterest = commasDecimals(mc_principalInterest);
   var strMonthlyMI = commasDecimals(mc_monthlyMI);
   var strMonthlyTax = commasDecimals(mc_monthlyTax);
   var strMonthlyPayment = commasDecimals(mc_monthlyPayment);
   var strMonthlyInsurance = commasDecimals(mc_monthlyInsurance);
   var strHomeownDues = commasDecimals(mc_homeownDues);

   //BUILDS RESULTS
   var changeMsg =
   "<TABLE CELLPADDING=\"0\" CELLSPACING=\"0\" WIDTH=\"0\">" +
   "  <TR VALIGN=\"top\">" +
   "    <TD CLASS=\"inside\" COLSPAN=\"5\" HEIGHT=\"30\" VALIGN=\"MIDDLE\"><FONT CLASS=\"results\"><B>Results</B></FONT></TD>" +
   "  </TR>" +
   "  <TR VALIGN=\"top\">" +
   "    <TD COLSPAN=\"2\" VALIGN=\"MIDDLE\"><FONT CLASS=\"basic\">Your estimated monthly principal and interest payment is</FONT></TD>" +
   "    <TD><FONT CLASS=\"basic\">&nbsp;</FONT></TD>" +
   "    <TD COLSPAN=\"2\" ALIGN=\"RIGHT\" VALIGN=\"MIDDLE\"><FONT CLASS=\"basic\">" + "$" + strPrincipalInterest + "</FONT></TD>" +
   "  </TR>" +
   "  <TR VALIGN=\"top\">" +
   "    <TD COLSPAN=\"2\" VALIGN=\"MIDDLE\"><FONT CLASS=\"basic\">Your estimated monthly private mortgage insurance payment is</FONT></TD>" +
   "    <TD><FONT CLASS=\"basic\">&nbsp;</FONT></TD>" +
   "    <TD COLSPAN=\"2\" ALIGN=\"RIGHT\" VALIGN=\"MIDDLE\"><FONT CLASS=\"basic\">" + "$" + strMonthlyMI + "</FONT></TD>" +
   "  </TR>" +
   "  <TR VALIGN=\"top\">" +
   "    <TD COLSPAN=\"2\" VALIGN=\"MIDDLE\"><FONT CLASS=\"basic\">Your estimated monthly property tax payment is</FONT></TD>" +
   "    <TD><FONT CLASS=\"basic\">&nbsp;</FONT></TD>" +
   "    <TD COLSPAN=\"2\" ALIGN=\"RIGHT\" VALIGN=\"MIDDLE\"><FONT CLASS=\"basic\">" + "$" + strMonthlyTax + "</FONT></TD>" +
   "  </TR>" +
   "  <TR VALIGN=\"top\">" +
   "    <TD COLSPAN=\"2\" VALIGN=\"MIDDLE\"><FONT CLASS=\"basic\">Hazard Insurance</FONT></TD>" +
   "    <TD><FONT CLASS=\"basic\">&nbsp;</FONT></TD>" +
   "    <TD COLSPAN=\"2\" ALIGN=\"RIGHT\" VALIGN=\"MIDDLE\"><FONT CLASS=\"basic\">" + "$" + strMonthlyInsurance + "</FONT></TD>" +
   "  </TR>" +
   "  <TR VALIGN=\"top\">" +
   "    <TD COLSPAN=\"2\" VALIGN=\"MIDDLE\"><FONT CLASS=\"basic\">Homeowner's Association Dues</FONT></TD>" +
   "    <TD><FONT CLASS=\"basic\">&nbsp;</FONT></TD>" +
   "    <TD COLSPAN=\"2\" ALIGN=\"RIGHT\" VALIGN=\"MIDDLE\"><FONT CLASS=\"basic\">" + "$" + strHomeownDues + "</FONT></TD>" +
   "  </TR>" +
   "  <TR VALIGN=\"top\">" +
   "    <TD COLSPAN=\"2\" VALIGN=\"MIDDLE\"><FONT CLASS=\"basic\"><b>Your total estimated monthly payment is</b></FONT></TD>" +
   "    <TD><FONT CLASS=\"basic\">&nbsp;</FONT></TD>" +
   "    <TD COLSPAN=\"2\" ALIGN=\"RIGHT\" VALIGN=\"MIDDLE\"><FONT CLASS=\"basic\"><b>" + "$" + strMonthlyPayment + "</b></FONT></TD>" +
   "  </TR>" +
   "</TABLE>";

   var objResults = document.getElementById('objResults_'+strId);
   if( objResults != null ) {
      objResults.innerHTML = changeMsg;
   }else{
      objResults = document.getElementById('objResults');
      if( objResults != null ) {
         objResults.innerHTML = changeMsg;
      }
   }
   mc_DrawChart(strId);

}

/*function SimpleBarGraph_Ready()
{
   ProxySimpleBarGraph_SetImage('/images/calculator/default_mortgage.jpg', strId);
   ProxySimpleBarGraph_ShowImage(true,strId);

   g_bGraphReady = true;
}*/

/*function SimpleBarGraph_Ready(strId)
{
   if( window.SimpleBarGraph_Ready_foo ) {
      setTimeout(function() { SimpleBarGraph_Ready_foo(strId);}, 50);
      } 
   else {
      alert('implementation of XyChartReady missing...');
      }
}*/

function SimpleBarGraph_Ready_Mortgage(strId){
   ProxySimpleBarGraph_SetImage('/images/calculator/default_mortgage.jpg', strId);
   ProxySimpleBarGraph_ShowImage(true, strId);

   g_bGraphReady = true;
   if(m_mc_submitnow == true) {
      mc_checkForm(document.monthlypayments, strId);
   }
}

function mc_DrawChart(strId)
{
   ProxySimpleBarGraph_Clear(strId);
   ProxySimpleBarGraph_ShowImage(true, strId);
   
   if ( !g_bGraphReady ) {
      return;
   }
   fm = document.monthlypayments;

   var aHomePrices = new Array();
   var aLoanPrices = new Array();
   var aMonthlyPayments = new Array();

   var strSaveLoanAmount = cleanInput(fm.monthly_payments_loan_amount.value);
   var strSaveHomeAmount = cleanInput(fm.monthly_payments_home_price.value);

   var fLoanAmount = parseFloat(GetCleanedHiddenFieldIntValue('monthly_payments_loan_amount'));
   var fHomeAmount = parseFloat(GetCleanedHiddenFieldIntValue('monthly_payments_home_price'));

   var fHomePriceIncrement = parseFloat(fHomeAmount * 0.03).toNearest(1000);
   var fLoanPriceIncrement = parseFloat(fLoanAmount * 0.03).toNearest(1000);

   //Set our scenarios:
   aHomePrices[0] = fHomeAmount - (fHomePriceIncrement*2);
   aLoanPrices[0] = fLoanAmount - (fLoanPriceIncrement*2);
   aMonthlyPayments[0] = 0;

   aHomePrices[1] = fHomeAmount - fHomePriceIncrement;
   aLoanPrices[1] = fLoanAmount - fLoanPriceIncrement;
   aMonthlyPayments[1] = 0;

   aHomePrices[2] = fHomeAmount;
   aLoanPrices[2] = fLoanAmount;
   aMonthlyPayments[2] = parseFloat(mc_monthlyPayment);

   aHomePrices[3] = fHomeAmount + fHomePriceIncrement;
   aLoanPrices[3] = fLoanAmount + fLoanPriceIncrement;
   aMonthlyPayments[3] = 0;

   aHomePrices[4] = fHomeAmount + (fHomePriceIncrement*2);
   aLoanPrices[4] = fLoanAmount + (fLoanPriceIncrement*2);
   aMonthlyPayments[4] = 0;

   //Now calculate our scenarios:
   fm.monthly_payments_loan_amount.value = aLoanPrices[0];
   fm.monthly_payments_home_price.value = aHomePrices[0];
   mc_calculate();
   aMonthlyPayments[0] = parseFloat(mc_monthlyPayment);

   fm.monthly_payments_loan_amount.value = aLoanPrices[1];
   fm.monthly_payments_home_price.value = aHomePrices[1];
   mc_calculate();
   aMonthlyPayments[1] = parseFloat(mc_monthlyPayment);

   //Indicee 2 was our first calculation, we don't need to re-do that one

   fm.monthly_payments_loan_amount.value = aLoanPrices[3];
   fm.monthly_payments_home_price.value = aHomePrices[3];
   mc_calculate();
   aMonthlyPayments[3] = parseFloat(mc_monthlyPayment);

   fm.monthly_payments_loan_amount.value = aLoanPrices[4];
   fm.monthly_payments_home_price.value = aHomePrices[4];
   mc_calculate();
   aMonthlyPayments[4] = parseFloat(mc_monthlyPayment);

   fm.monthly_payments_loan_amount.value = strSaveLoanAmount;
   fm.monthly_payments_home_price.value =  strSaveHomeAmount;

   var iPaymentSpread = aMonthlyPayments[4] - aMonthlyPayments[0];
   var iPaymentIncrement = parseFloat(iPaymentSpread / 3).toNearest(25);
   if( iPaymentIncrement < 25 ) {
      iPaymentIncrement = 25;
   }
   var iPaymentMin = parseFloat(aMonthlyPayments[0] - (iPaymentIncrement*3)).toNearest(50);
   if( iPaymentMin < 0 ) {
      iPaymentMin = 0;
   }

   var oVert = new Object();
   oVert['padding'] = 30;
   oVert['offset'] = 10;
   oVert['min'] = iPaymentMin;
   oVert['increment'] = iPaymentIncrement;
   oVert['legend'] = '<font color="#FFFFFF" size="13" face="ARIAL"><b>Monthly Payment</b></font>';
   oVert['label_prefix'] = '$';
   oVert['ticks'] = 9;
   oVert['grid'] = true;
   oVert['css'] = ".label { font-family: Arial; font-size: 12; font-weight: bold; color: #FFFFFF; text-align: right;}";

   var oHorz = new Object();
   oHorz['padding'] = 80;
   oHorz['offset'] = 30;
   oHorz['min'] = aLoanPrices[0];// aHomePrices[0];
   oHorz['increment'] = fLoanPriceIncrement; //fHomePriceIncrement;
   oHorz['legend'] = '<font color="#000000" size="13" face="ARIAL"><b>Loan Amount</b></font>';
   oHorz['label_prefix'] = '$';
   oHorz['ticks'] = 5;
   oHorz['grid'] = false;
   oHorz['css'] = ".label { font-family: Arial; font-size: 12; font-weight: bold; color: #000000; text-align: center;}";
   ProxySimpleBarGraph_Setup( oHorz, oVert, strId );

   xData1 = new Object();
   xData1['color1'] = 0xFFFB01;                   
   xData1['color2'] = 0xFF9600; 
   xData1['width'] = 40;
   xData1['offset'] = 0;

   xData2 = new Object();
   xData2['color1'] = 0xFC9001;                   
   xData2['color2'] = 0x971200; 
   xData2['width'] = 40;
   xData2['offset'] = 0;

   xData1[0] = aMonthlyPayments[0];
   xData1[1] = aMonthlyPayments[1];
   xData1[2] = aMonthlyPayments[2];
   xData1[3] = aMonthlyPayments[3];
   xData1[4] = aMonthlyPayments[4];

   xData2[2] = aMonthlyPayments[2];

   ProxySimpleBarGraph_Plot( xData1, strId );
   ProxySimpleBarGraph_Plot( xData2, strId );

   ProxySimpleBarGraph_ShowImage(false, strId);

   var iPrice = cleanInput(document.monthlypayments.monthly_payments_loan_amount.value);
   var iTop = getTopNum(iPrice);
   var iMult = getMultiplier(iTop);
   var iMax = iTop + (4 * iMult);
   var iMin = iTop - (4 * iMult);
   
   setSearchRanges(iMin, iMax);

}


function mc_checkForm(form, strId)
{
   var errorMsg = "";
   var i;
   var message = new Array();
   var inputs = new Array(form.length);
   var interestrate, loanamount, propertytaxes, hazardinsurance, hoadues = "";
   var homeprice = "";

   mc_clearResults(strId);

   for (i = 0; i < form.length; i++) {
      inputs[i] = form.elements[i].name;
   }

   for (i = 0; i < form.length; i++) {
      if (inputs[i] == "monthly_payments_interest_rate")
         interestrate = i;
      else if (inputs[i] == "monthly_payments_loan_amount")
         loanamount = i;
      else if (inputs[i] == "monthly_payments_home_price")
         homeprice = i;
      else if (inputs[i] == "monthly_payments_property_taxes")
         propertytaxes = i;
      else if (inputs[i] == "monthly_payments_hazard_insurance")
         hazardinsurance = i;
      else if (inputs[i] == "monthly_payments_hoa_dues")
         hoadues = i;
   }

   message[0] = "Please enter your interest rate.";
   message[1] = "The value for interest rate should be free of special characters or letters.";
   message[2] = "The value for interest rate should be greater than 0% and less than 51%.";
   message[3] = "Please enter your loan amount.";
   message[4] = "Your loan amount should be free of special characters or letters.";
   message[5] = "Your loan amount should be greater than $20000 and less than $1,000,000,000.";
   message[6] = "Your property taxes value should be free of special characters or letters.";
   message[7] = "Your property taxes value should be a minimum of $0 and less than $1,000,000,000.";
   message[8] = "Your hazard insurance value should be free of special characters or letters.";
   message[9] = "Your hazard insurance value should be a minimum of $0 and less than $1,000,000,000.";
   message[10] = "Your homeowner's association dues value should be free of special characters or letters.";
   message[11] = "Your homeowner's association dues value should be a minimum of $0 and less than $1,000,000,000.";
   message[12] = "Please enter the sales price of the home.";
   message[13] = "The sales price or the estimated value of the home should be free of special  characters or letters.";
   message[14] = "The sales price or the estimated value of the home should be greater than $less than $1,000,000,000.";
   message[15] = "The loan amount cannot be greater than the expected sales price/estimated value of the home";

   var interestRate = cleanInput(form.elements[interestrate].value);
   var loanAmount = cleanInput(form.elements[loanamount].value);
   var propertyTaxes = cleanInput(form.elements[propertytaxes].value);
   var hazardInsurance = cleanInput(form.elements[hazardinsurance].value);
   var hoaDues = cleanInput(form.elements[hoadues].value);
   var homePrice = cleanInput(form.elements[homeprice].value);
   errorMsg +=validateRangedNumberValue(interestRate, message[0], message[1], message[2], 1, 50);
   errorMsg +=validateRangedNumberValue(loanAmount, message[3], message[4], message[5], 20001, 99999999);
   errorMsg +=validateEmptyOrRangedNumberValue(propertyTaxes, message[6], message[7], 0, 99999999);
   errorMsg +=validateEmptyOrRangedNumberValue(hazardInsurance, message[8], message[9], 0, 99999999);
   errorMsg +=validateEmptyOrRangedNumberValue(hoaDues, message[10], message[11], 0, 99999999);
   errorMsg +=validateRangedNumberValue(homePrice, message[12], message[13], message[14], 0, 99999999);
   
    var lamount = new Number(loanAmount);
    var hprice = new Number(homePrice);

   if (lamount > hprice)
      errorMsg += message[15];
   //No need to return anything here
   if (errorMsg.length == 0) {
      //If there's no error message, calculate
      mc_clearResults(strId);
      mc_calculate();
      mc_showResults(strId);
      return true;
   } else {
      //If there's an error message, just show it
      alert("Before continuing, the following fields require attention: " + errorMsg);
   }
   return false;
}

function mc_clearResults(strId)
{
   var objResults = document.getElementById('objResults_'+strId);
   if( objResults != null ) {
      objResults.innerHTML = "";
   }else{
      objResults = document.getElementById('objResults');
      if( objResults != null ) {
         objResults.innerHTML = "";
      }
   }
   ProxySimpleBarGraph_Clear(strId);
   ProxySimpleBarGraph_ShowImage(true, strId);
}

function UpdateCalculatorResults_Mortgage() {
   if( !g_mc_bInInitialize )
      mc_checkForm(document.forms.monthlypayments, 'mortgage');
}

function onChangeLoan_termSlider_Mortgage( pSlider ) {
   onMovingLoan_termSlider_Mortgage( pSlider );
   UpdateCalculatorResults_Mortgage();
}
function onMovingLoan_termSlider_Mortgage( pSlider ) {
   var iValue = pSlider.GetLowValue();
   document.getElementById('mortgcalclabel_monthly_payments_loan_term').innerHTML = iValue + 'years';
   document.getElementById('monthly_payments_loan_term').value = AddCommas(iValue);
}

function onChangeInterest_rateSlider_Mortgage( pSlider ) {
   onMovingInterest_rateSlider_Mortgage( pSlider );
   UpdateCalculatorResults_Mortgage();
}
function onMovingInterest_rateSlider_Mortgage( pSlider ) {
   var iValue = pSlider.GetLowValue();
   document.getElementById('mortgcalclabel_monthly_payments_interest_rate').innerHTML = iValue + '%';
   document.getElementById('monthly_payments_interest_rate').value = AddCommas(iValue);
}

function onChangeHome_priceSlider_Mortgage( pSlider ) {
   onMovingHome_priceSlider_Mortgage( pSlider );
   UpdateCalculatorResults_Mortgage();
}
function onMovingHome_priceSlider_Mortgage( pSlider ) {
   var iValue = pSlider.GetLowValue();
   document.getElementById('mortgcalclabel_monthly_payments_home_price').innerHTML = '$' + AddCommas(iValue);
   document.getElementById('monthly_payments_home_price').value = AddCommas(iValue);
}

function onChangeLoan_amountSlider_Mortgage( pSlider ) {
   onMovingLoan_amountSlider_Mortgage( pSlider );
   UpdateCalculatorResults_Mortgage();
}
function onMovingLoan_amountSlider_Mortgage( pSlider ) {
   var iValue = pSlider.GetLowValue();
   document.getElementById('mortgcalclabel_monthly_payments_loan_amount').innerHTML = '$' + AddCommas(iValue);
   document.getElementById('monthly_payments_loan_amount').value = AddCommas(iValue);
}

function onChangeProperty_taxesSlider_Mortgage( pSlider ) {
   onMovingProperty_taxesSlider_Mortgage( pSlider );
   UpdateCalculatorResults_Mortgage();
}
function onMovingProperty_taxesSlider_Mortgage( pSlider ) {
   var iValue = pSlider.GetLowValue();
   document.getElementById('mortgcalclabel_monthly_payments_property_taxes').innerHTML = '$' + AddCommas(iValue)  ;
   document.getElementById('monthly_payments_property_taxes').value = AddCommas(iValue);
}

function onChangeHazard_insuranceSlider_Mortgage( pSlider ) {
   onMovingHazard_insuranceSlider_Mortgage( pSlider );
   UpdateCalculatorResults_Mortgage();
}
function onMovingHazard_insuranceSlider_Mortgage( pSlider ) {
   var iValue = pSlider.GetLowValue();
   document.getElementById('mortgcalclabel_monthly_payments_hazard_insurance').innerHTML = '$' + AddCommas(iValue);
   document.getElementById('monthly_payments_hazard_insurance').value = AddCommas(iValue);
}

function onChangeHoa_duesSlider_Mortgage( pSlider ) {
   onMovingHoa_duesSlider_Mortgage( pSlider );
   UpdateCalculatorResults_Mortgage();
}
function onMovingHoa_duesSlider_Mortgage( pSlider ) {
   var iValue = pSlider.GetLowValue();
   document.getElementById('mortgcalclabel_monthly_payments_hoa_dues').innerHTML = '$' + AddCommas(iValue);
   document.getElementById('monthly_payments_hoa_dues').value = AddCommas(iValue);
}

function enableMortgageExplore()
{
   g_mc_bInInitialize = true;

   SetOnEmpty('monthly_payments_loan_term', 30);
   SetOnEmpty('monthly_payments_interest_rate', 4.75);
   SetOnEmpty('monthly_payments_home_price', 200000);
   SetOnEmpty('monthly_payments_loan_amount', 160000);
   SetOnEmpty('monthly_payments_property_taxes', 3000);
   SetOnEmpty('monthly_payments_hazard_insurance', 481);
   SetOnEmpty('monthly_payments_hoa_dues', 0);

   var iLoan_term        = GetCleanedHiddenFieldIntValue('monthly_payments_loan_term');        
   var fInterest_rate    = GetCleanedHiddenFieldFloatValue('monthly_payments_interest_rate');  
   var iHome_price       = GetCleanedHiddenFieldIntValue('monthly_payments_home_price');   
   var iLoan_amount      = GetCleanedHiddenFieldIntValue('monthly_payments_loan_amount');  
   var iProperty_taxes   = GetCleanedHiddenFieldIntValue('monthly_payments_property_taxes');
   var iHazard_insurance = GetCleanedHiddenFieldIntValue('monthly_payments_hazard_insurance');
   var iHoa_dues         = GetCleanedHiddenFieldIntValue('monthly_payments_hoa_dues');

   g_mc_pLoan_termSlider.SetValues(iLoan_term, 0, true);
   g_mc_pInterest_rateSlider.SetValues(fInterest_rate, 0, true);
   g_mc_pHome_priceSlider.SetValues(iHome_price, 0, true);
   g_mc_pLoan_amountSlider.SetValues(iLoan_amount, 0, true);
   g_mc_pProperty_taxesSlider.SetValues(iProperty_taxes, 0, true);
   g_mc_pHazard_insuranceSlider.SetValues(iHazard_insurance, 0, true);
   g_mc_pHoa_duesSlider.SetValues(iHoa_dues, 0, true);

   g_mc_bInInitialize = false;
   UpdateCalculatorResults_Mortgage();
}

function InitializeMortgageCalculator()
{

   var iLoan_term        = GetCleanedHiddenFieldIntValue('monthly_payments_loan_term');        
   var fInterest_rate    = GetCleanedHiddenFieldFloatValue('monthly_payments_interest_rate');  
   var iHome_price       = GetCleanedHiddenFieldIntValue('monthly_payments_home_price');   
   var iLoan_amount      = GetCleanedHiddenFieldIntValue('monthly_payments_loan_amount');  
   var iProperty_taxes   = GetCleanedHiddenFieldIntValue('monthly_payments_property_taxes');
   var iHazard_insurance = GetCleanedHiddenFieldIntValue('monthly_payments_hazard_insurance');
   var iHoa_dues         = GetCleanedHiddenFieldIntValue('monthly_payments_hoa_dues');

   var pDivLoan_term        = document.getElementById('mortgcalcslide_monthly_payments_loan_term');       
   var pDivInterest_rate    = document.getElementById('mortgcalcslide_monthly_payments_interest_rate');   
   var pDivHome_price       = document.getElementById('mortgcalcslide_monthly_payments_home_price');      
   var pDivLoan_amount      = document.getElementById('mortgcalcslide_monthly_payments_loan_amount');     
   var pDivProperty_taxes   = document.getElementById('mortgcalcslide_monthly_payments_property_taxes');
   var pDivHazard_insurance = document.getElementById('mortgcalcslide_monthly_payments_hazard_insurance');
   var pDivHoa_dues         = document.getElementById('mortgcalcslide_monthly_payments_hoa_dues');        

   document.getElementById('mortgcalclabel_monthly_payments_loan_term').innerHTML        = iLoan_term + 'years';
   document.getElementById('mortgcalclabel_monthly_payments_interest_rate').innerHTML    = fInterest_rate + '%';
   document.getElementById('mortgcalclabel_monthly_payments_home_price').innerHTML       = '$' + AddCommas(iHome_price)      ;
   document.getElementById('mortgcalclabel_monthly_payments_loan_amount').innerHTML      = '$' + AddCommas(iLoan_amount)     ;
   document.getElementById('mortgcalclabel_monthly_payments_property_taxes').innerHTML   = '$' + AddCommas(iProperty_taxes)  ;
   document.getElementById('mortgcalclabel_monthly_payments_hazard_insurance').innerHTML = '$' + AddCommas(iHazard_insurance);
   document.getElementById('mortgcalclabel_monthly_payments_hoa_dues').innerHTML         = '$' + AddCommas(iHoa_dues)        ;

   try {
      g_mc_bInInitialize = true;

      g_mc_pLoan_termSlider = new CyberC21Slider( pDivLoan_term.id, false, 15, 30, 15,
                                          iLoan_term, 0,
                                          '/images/sidebar/sliderbg_122.gif', '/images/sidebar/slideractivearea.gif', 122, 16, '',
                                          '/images/sidebar/grabwidget.gif', '/images/sidebar/grabwidget.gif', 15, 16,
                                          1, 1,
                                          onChangeLoan_termSlider_Mortgage, onMovingLoan_termSlider_Mortgage );
      g_mc_pInterest_rateSlider = new CyberC21Slider( pDivInterest_rate.id, false, 2, 12, 0.25,
                                          fInterest_rate, 0,
                                          '/images/sidebar/sliderbg_122.gif', '/images/sidebar/slideractivearea.gif', 122, 16, '',
                                          '/images/sidebar/grabwidget.gif', '/images/sidebar/grabwidget.gif', 15, 16,
                                          1, 1,
                                          onChangeInterest_rateSlider_Mortgage, onMovingInterest_rateSlider_Mortgage );
      g_mc_pHome_priceSlider = new CyberC21Slider( pDivHome_price.id, false, 50000, 950000, 10000,
                                          iHome_price, 0,
                                          '/images/sidebar/sliderbg_122.gif', '/images/sidebar/slideractivearea.gif', 122, 16, '',
                                          '/images/sidebar/grabwidget.gif', '/images/sidebar/grabwidget.gif', 15, 16,
                                          1, 1,
                                          onChangeHome_priceSlider_Mortgage, onMovingHome_priceSlider_Mortgage );
      g_mc_pLoan_amountSlider = new CyberC21Slider( pDivLoan_amount.id, false, 50000, 950000, 10000,
                                          iLoan_amount, 0,
                                          '/images/sidebar/sliderbg_122.gif', '/images/sidebar/slideractivearea.gif', 122, 16, '',
                                          '/images/sidebar/grabwidget.gif', '/images/sidebar/grabwidget.gif', 15, 16,
                                          1, 1,
                                          onChangeLoan_amountSlider_Mortgage, onMovingLoan_amountSlider_Mortgage );
      g_mc_pProperty_taxesSlider = new CyberC21Slider( pDivProperty_taxes.id, false, 100, 10000, 100,
                                          iProperty_taxes, 0,
                                          '/images/sidebar/sliderbg_122.gif', '/images/sidebar/slideractivearea.gif', 122, 16, '',
                                          '/images/sidebar/grabwidget.gif', '/images/sidebar/grabwidget.gif', 15, 16,
                                          1, 1,
                                          onChangeProperty_taxesSlider_Mortgage, onMovingProperty_taxesSlider_Mortgage );
      g_mc_pHazard_insuranceSlider = new CyberC21Slider( pDivHazard_insurance.id, false, 0, 10000, 100,
                                          iHazard_insurance, 0,
                                          '/images/sidebar/sliderbg_122.gif', '/images/sidebar/slideractivearea.gif', 122, 16, '',
                                          '/images/sidebar/grabwidget.gif', '/images/sidebar/grabwidget.gif', 15, 16,
                                          1, 1,
                                          onChangeHazard_insuranceSlider_Mortgage, onMovingHazard_insuranceSlider_Mortgage );

      g_mc_pHoa_duesSlider = new CyberC21Slider( pDivHoa_dues.id, false, 0, 4000, 25,
                                          iHoa_dues, 0,
                                          '/images/sidebar/sliderbg_122.gif', '/images/sidebar/slideractivearea.gif', 122, 16, '',
                                          '/images/sidebar/grabwidget.gif', '/images/sidebar/grabwidget.gif', 15, 16,
                                          1, 1,
                                          onChangeHoa_duesSlider_Mortgage, onMovingHoa_duesSlider_Mortgage );

      g_mc_bInInitialize = false;
   } catch ( e ) {
      alert( e.message );
   }
}

function InitializeSimpleMortgageCalculator()
{

   var iLoan_term        = GetCleanedHiddenFieldIntValue('monthly_payments_loan_term');        
   var fInterest_rate    = GetCleanedHiddenFieldFloatValue('monthly_payments_interest_rate');  
   var iHome_price       = GetCleanedHiddenFieldIntValue('monthly_payments_home_price');   
   var iLoan_amount      = GetCleanedHiddenFieldIntValue('monthly_payments_loan_amount');  
   var iProperty_taxes   = GetCleanedHiddenFieldIntValue('monthly_payments_property_taxes');
   var iHazard_insurance = GetCleanedHiddenFieldIntValue('monthly_payments_hazard_insurance');
   var iHoa_dues         = GetCleanedHiddenFieldIntValue('monthly_payments_hoa_dues');

   var pDivLoan_term        = document.getElementById('mortgcalcslide_monthly_payments_loan_term');       
   var pDivInterest_rate    = document.getElementById('mortgcalcslide_monthly_payments_interest_rate');   
   var pDivHome_price       = document.getElementById('mortgcalcslide_monthly_payments_home_price');      
   var pDivLoan_amount      = document.getElementById('mortgcalcslide_monthly_payments_loan_amount');     
   var pDivProperty_taxes   = document.getElementById('mortgcalcslide_monthly_payments_property_taxes');
   var pDivHazard_insurance = document.getElementById('mortgcalcslide_monthly_payments_hazard_insurance');
   var pDivHoa_dues         = document.getElementById('mortgcalcslide_monthly_payments_hoa_dues');        

   document.getElementById('mortgcalclabel_monthly_payments_loan_term').innerHTML        = iLoan_term + 'years';
   document.getElementById('mortgcalclabel_monthly_payments_interest_rate').innerHTML    = fInterest_rate + '%';
   document.getElementById('mortgcalclabel_monthly_payments_home_price').innerHTML       = '$' + AddCommas(iHome_price)      ;
   document.getElementById('mortgcalclabel_monthly_payments_loan_amount').innerHTML      = '$' + AddCommas(iLoan_amount)     ;
   document.getElementById('mortgcalclabel_monthly_payments_property_taxes').innerHTML   = '$' + AddCommas(iProperty_taxes)  ;
   document.getElementById('mortgcalclabel_monthly_payments_hazard_insurance').innerHTML = '$' + AddCommas(iHazard_insurance);
   document.getElementById('mortgcalclabel_monthly_payments_hoa_dues').innerHTML         = '$' + AddCommas(iHoa_dues)        ;

   try {
      g_mc_bInInitialize = true;

      g_mc_pLoan_termSlider = new CyberC21Slider( pDivLoan_term.id, false, 15, 30, 15,
                                          iLoan_term, 0,
                                          '/images/sidebar/sliderbg_122.gif', '/images/sidebar/slideractivearea.gif', 87, 16, '',
                                          '/images/sidebar/grabwidget.gif', '/images/sidebar/grabwidget.gif', 15, 16,
                                          1, 1,
                                          onChangeLoan_termSlider_Mortgage, onMovingLoan_termSlider_Mortgage );
      g_mc_pInterest_rateSlider = new CyberC21Slider( pDivInterest_rate.id, false, 2, 12, 0.25,
                                          fInterest_rate, 0,
                                          '/images/sidebar/sliderbg_122.gif', '/images/sidebar/slideractivearea.gif', 87, 16, '',
                                          '/images/sidebar/grabwidget.gif', '/images/sidebar/grabwidget.gif', 15, 16,
                                          1, 1,
                                          onChangeInterest_rateSlider_Mortgage, onMovingInterest_rateSlider_Mortgage );
      g_mc_pHome_priceSlider = new CyberC21Slider( pDivHome_price.id, false, 50000, 950000, 10000,
                                          iHome_price, 0,
                                          '/images/sidebar/sliderbg_122.gif', '/images/sidebar/slideractivearea.gif', 87, 16, '',
                                          '/images/sidebar/grabwidget.gif', '/images/sidebar/grabwidget.gif', 15, 16,
                                          1, 1,
                                          onChangeHome_priceSlider_Mortgage, onMovingHome_priceSlider_Mortgage );
      g_mc_pLoan_amountSlider = new CyberC21Slider( pDivLoan_amount.id, false, 50000, 950000, 10000,
                                          iLoan_amount, 0,
                                          '/images/sidebar/sliderbg_122.gif', '/images/sidebar/slideractivearea.gif', 87, 16, '',
                                          '/images/sidebar/grabwidget.gif', '/images/sidebar/grabwidget.gif', 15, 16,
                                          1, 1,
                                          onChangeLoan_amountSlider_Mortgage, onMovingLoan_amountSlider_Mortgage );
      g_mc_pProperty_taxesSlider = new CyberC21Slider( pDivProperty_taxes.id, false, 100, 10000, 100,
                                          iProperty_taxes, 0,
                                          '/images/sidebar/sliderbg_122.gif', '/images/sidebar/slideractivearea.gif', 87, 16, '',
                                          '/images/sidebar/grabwidget.gif', '/images/sidebar/grabwidget.gif', 15, 16,
                                          1, 1,
                                          onChangeProperty_taxesSlider_Mortgage, onMovingProperty_taxesSlider_Mortgage );
      g_mc_pHazard_insuranceSlider = new CyberC21Slider( pDivHazard_insurance.id, false, 0, 10000, 100,
                                          iHazard_insurance, 0,
                                          '/images/sidebar/sliderbg_122.gif', '/images/sidebar/slideractivearea.gif', 87, 16, '',
                                          '/images/sidebar/grabwidget.gif', '/images/sidebar/grabwidget.gif', 15, 16,
                                          1, 1,
                                          onChangeHazard_insuranceSlider_Mortgage, onMovingHazard_insuranceSlider_Mortgage );

      g_mc_pHoa_duesSlider = new CyberC21Slider( pDivHoa_dues.id, false, 0, 4000, 25,
                                          iHoa_dues, 0,
                                          '/images/sidebar/sliderbg_122.gif', '/images/sidebar/slideractivearea.gif', 87, 16, '',
                                          '/images/sidebar/grabwidget.gif', '/images/sidebar/grabwidget.gif', 15, 16,
                                          1, 1,
                                          onChangeHoa_duesSlider_Mortgage, onMovingHoa_duesSlider_Mortgage );

      g_mc_bInInitialize = false;
   } catch ( e ) {
      alert( e.message );
   }
}

function getMultiplier(num)
{
   var len = num.toString().length;
   if (len > 2) {
      return  Math.pow(10, len-2);
      }
   return 10;

}

function getTopNum(num)
{
//   if (num <= 100) num = 1000;
   var mult = getMultiplier(num) * 10;
   var topNum = num / mult;
   var dec = topNum - parseInt(topNum);
   
   if ((dec < 0.5) && (dec > 0)) dec = topNum += 0.5 - dec;
   else topNum = Math.ceil(topNum);

   topNum *= mult;

   return topNum;

}
try{
   if(!g_IsSimple) {
      RfgQueueCommand('InitializeMortgageCalculator();');
   }else{
      RfgQueueCommand('InitializeSimpleMortgageCalculator();');
   }
}catch (e){
   RfgQueueCommand('InitializeMortgageCalculator();');
}


