<!-- Hide from older browsers
      function makeNumValid( p_value ) {
        var strchar;
        var strctr;
        var strlen;
        var instr = p_value;
        var newstr;
        var tempstr;
  
              if( instr.indexOf('.') != instr.lastIndexOf('.') ) 
            return(-1); 
  
              newstr = removeCommas( instr );
  
              strlen = newstr.length;
        exit = 0;
        tempstr = '';
        for( strctr=0; strctr <strlen; strctr++) {
  	  strchar = newstr.charAt(strctr);
  	  if( (strchar == '.') || (strchar == '0') || (strchar == '1') || (strchar == '2') 
             || (strchar == '3') || (strchar == '4') || (strchar == '5') || (strchar == '6') 
             || (strchar == '7') || (strchar == '8') || (strchar == '9')) 
                tempstr = tempstr + strchar;
        }
        newstr = tempstr;
  
        if( exit == 1 ) 
            return(0);
        else 
            return(newstr); 
    }
    
      function roundFloat( s_value ) {
        var newval;
  
        s_value = parseFloat(s_value);
        newval = (Math.floor(s_value*100))/100;
        newval = newval + "";
  
        if ( newval.indexOf('.') == -1 ) 
            newval = newval + ".00"; 
  
        return(newval);
    }
    
      function removeCommas( t_value ) {
        var ctr;
        var newstr = t_value;
        var commapos;
        var strlen = t_value.length - 1;
  
        commapos = newstr.indexOf(',');
        while ( commapos != -1 ) {
            newstr = newstr.substring(0,commapos) +  
                     newstr.substring(commapos + 1, newstr.length );
  
  	  commapos = newstr.indexOf(',');
         }
         return(newstr);
    }
      function addCommas( u_value ) {
        var ctr;
        var decCtr=0;
        var decIndex;
        var decIncr = 3;
        var newstr = u_value;
        var strlen = u_value.length;
  
        decIndex = u_value.indexOf('.');
        if ( decIndex == -1 ) 
            decIndex = strlen; 
  
        for ( ctr = decIndex-1; ctr > 0; ctr-- ) {
            decCtr++;
            if ( decCtr == 3 ) { 
                newstr = newstr.substring(0,ctr) +
                         "," +
                         newstr.substring(ctr, strlen );
                strlen++;
                decCtr = 0; 
            }
        }
        return(newstr);
    }
    
      function isDigit( v_value ) {
        if ( (v_value >= 0) || (v_value <= 9) ) 
            return(true);
        else 
            return(false);
    }
  
      function resetTextField( textField ) {
        textField.value = roundFloat("0");
        textField.focus();
        textField.select();
    }
    var v_MonthlyPaymentHold='';  // hold montly payment for onchange event
      function calcMonthlyPayment() {
        var v_HomePrice,
            v_InterestRate,
            v_DownPayment,
            v_InterestRate,
            v_Term,
            v_MonthlyPayment,
            v_Principle,
            v_formName = document.calc;
  
      // check values used to compute montly payment
      if ( confirmTermValues() ) {
              v_HomePrice = roundFloat( makeNumValid( v_formName.HomePrice.value ) );
        if ( v_formName.DownPayment.value == '' ) {
          v_DownPayment = 0;
        } else {
          v_DownPayment = roundFloat( makeNumValid( v_formName.DownPayment.value ) );
        }
        v_InterestRate = makeNumValid( v_formName.InterestRate.value ) / 100;
        v_Term = makeNumValid( v_formName.Term.value );
        v_Principle = v_HomePrice - v_DownPayment;
              if ( v_Term == "" || v_Term == 0 ) 
            v_MonthlyPayment = v_Principle;
        else {
            v_MonthlyRate = v_InterestRate/12;
            if ( v_MonthlyRate != 0 ) 
                v_MonthlyPayment = Math.floor((v_Principle*v_MonthlyRate)/(1-Math.pow((1+v_MonthlyRate),
                                              (-1*(v_Term*12))))*100)/100;
            else  // no monthly rate
                v_MonthlyPayment = Math.floor((v_Principle / (v_Term*12)) * 100) / 100;
  
                      if ( isNaN(v_MonthlyPayment) || v_MonthlyPayment <0 ) 
                v_MonthlyPayment = 0;
        }
  
              v_formName.MonthlyPayment.value = addCommas(roundFloat(v_MonthlyPayment));
        v_MonthlyPaymentHold = v_formName.MonthlyPayment.value; 
      }
    }
  
      function initializeCalc() {
        var form = document.calc;
  
        form.HomePrice.value = addCommas(roundFloat(form.HomePrice.value));
    }
  
      function confirmTermValues() {
      var v_form = document.calc,
          v_HomePrice = v_form.HomePrice.value,
          v_DownPayment = v_form.DownPayment.value,
  	v_InterestRate = v_form.InterestRate.value,
  	v_Term = v_form.Term.value,
  	v_tHomePrice,
  	v_tDownPayment,
  	t_tInterestRate,
  	v_tTerm,
  	v_errorflag = 0,
  	v_errorstr,
  	v_returnval;
      // get values from fields  
      v_tHomePrice = parseFloat(makeNumValid(v_HomePrice));
      v_tDownPayment = parseFloat(makeNumValid(v_DownPayment));
      v_tInterestRate = parseFloat(makeNumValid(v_InterestRate));
      v_tTerm = Math.round(makeNumValid(v_Term)); 
      if ( v_tHomePrice == '' || isNaN(v_tHomePrice) ) {
        v_form.HomePrice.value = 0;
        v_tHomePrice = 0;
      }
      if ( v_tDownPayment <0 ) { // N3.x fix; -1 bleeds thru when 0
        v_tDownPayment = 0;
      }
      if ( v_tInterestRate == '' || isNaN(v_tInterestRate) ) { 
        v_tInterestRate = 0;
      }
      // Home price <0 or  > 100,000,000
      if ( v_tHomePrice >= 100000000 || v_tHomePrice <= 0 ) {
        v_errorstr = "Sorry.  $" + v_HomePrice + " is an invalid price.\nPlease enter a price between $0 and $100,000,000.00"; 
        v_form.HomePrice.value = '';
        v_errorflag = 1;
      // Down payment <0 or > home price 
      } else if ( v_tDownPayment <0 || v_tDownPayment > v_tHomePrice ) {
        v_errorstr = "Sorry.  Your down payment of $" + v_DownPayment + " must\nbe less than your home price of $" + v_HomePrice + ".";
        v_form.DownPayment.value = '';
        v_errorflag = 1;
      // Interest rate <1 or > 25
      } else if ( v_tInterestRate <1 || v_tInterestRate > 25 ) {
        v_errorstr = "Sorry.  An interest rate of " + v_InterestRate + " is invalid.\nPlease enter a value between 1% and 25%.";
        v_form.InterestRate.value = '';
        v_errorflag = 1;
      // Term <5 ; textfield limited to 2 chars so not > 99 by default
      }
      else if ( v_tTerm <5 ) {
        v_errorstr = "Sorry.  Your term of " + v_Term + " is invalid.\nPlease enter a minimum value of 5 years.";
        v_form.Term.value = '';
        v_errorflag = 1;
      }
  
      // display error and clear result
      if ( v_errorflag ) {
        alert ( v_errorstr );
        clearMonthlyPayment();
        v_returnval = 0;
      } else {
        v_returnval = 1;
      }
  
     return ( v_returnval );
    }
  
    function clearMonthlyPayment () {
       var v_form = document.calc;
  
       v_form.MonthlyPayment.value = '';
    }
  //-->