var lastname;

function restrictNumbersOnly(keyEvent)
	{
		var charCode = (keyEvent.charCode) ? keyEvent.charCode : ((keyEvent.keyCode) ? keyEvent.keyCode : ((keyEvent.which) ? keyEvent.which : 0));
		if ((charCode >= 48 && charCode <= 57) //between 0 and 9
			|| charCode == 46 //Delete
			|| charCode == 8 //Backspace
			|| charCode == 9 //Tab
			|| charCode == 37 //Left Arrow
			|| charCode == 39) //Right Arrow
		{
			return true;
		}
		return false;
	}
   function restrictNumbersWithDecimalOnly(keyEvent)
	{
		var charCode = (keyEvent.charCode) ? keyEvent.charCode : ((keyEvent.keyCode) ? keyEvent.keyCode : ((keyEvent.which) ? keyEvent.which : 0));
            
		if ((charCode >= 48 && charCode <= 57) //between 0 and 9
			|| charCode == 46 //Delete
			|| charCode == 8 //Backspace
			|| charCode == 9 //Tab
			|| charCode == 37 //Left Arrow
			|| charCode == 39 //Right Arrow
			|| charCode == 46)//Dot 
		{
			return true;
		}

		return false;
	}

   function checkNumber(input,calc)
   {
       if (input.name == 'purchaseprice' || input.name == 'monthlypayment')
      {
         lastname = input.name;
      }
      if(input.value == '')
      {
          input.value=input.defaultValue;
      }
       if(input.value > 9999999 || input.value < 0)
      {
          alert('Value out of bounds');
          input.value=input.defaultValue;
      }
           var str = input.value;
           if (isNaN(str)) {
          var straray = str.split(',');
          if (straray[1]) {
         str = straray[0].concat(straray[1]);
          }
          if (straray[2]) {
         str = str.concat(straray[2]);
          }
          if (str.substr(0, 1) == "$") {
         str = str.substr(1, str.length);
          }
          if (str.substr((str.length - 1), str.length) == "%") {
         str = str.substr(0, (str.length - 1));
          }

          input.value = str;
          if(isNaN(input.value)) {
         alert('This field requires numeric data');
         input.value=input.defaultValue;
         }
           }
            add_input(calc);
   }

   function add_input(calc) {
          if (lastname == 'monthlypayment') {
              check_payment(calc);
          }
          else
          {
	           var puchaseprice = cleanPurchasePrice(calc.purchaseprice.value);
	           var total_cost= (puchaseprice * 1 - calc.downpayment.value);
	           if( document.SearchForm != null)
	           	   document.SearchForm.price_point.value = Math.round(total_cost);	
			   var i = calc.interestrate.value;
	           i = i / 100.0;
	           i /= 12;
	           var pow = 1;
	           for (var j = 0; j < calc.loanterm.options[calc.loanterm.selectedIndex].value; j++) {
				pow = pow * (1 + i);
	         	}
	         	calc.monthlypayment.value = Math.round((total_cost * pow * i) / (pow - 1)/4.33);
	         	if(isNaN(calc.monthlypayment.value)) {
	            	 alert('This field requires a non-zero value');
	         	}
	         	return false;
         	}
   }

   function cleanPurchasePrice(pp){
    for (var i=0, new_pp='', valid="0123456789"; i<pp.length; i++){
       if (valid.indexOf(pp.charAt(i)) != -1) {
          new_pp += pp.charAt(i);
       }
    }
    return new_pp;
   }

   function check_payment(calc) {
      var puchaseprice = cleanPurchasePrice(calc.purchaseprice.value);
           var purchase;
      purchase = calc.monthlypayment.value;

           var i = calc.interestrate.value;
      i = i / 100.0;
      i /= 12;
      var pow = 1;
           for (var j = 0; j < calc.loanterm.options[calc.loanterm.selectedIndex].value; j++) {
               pow = pow * (1 + i);
      }
      var total_cost = (calc.monthlypayment.value * (pow - 1)) / (pow * i);
      total_cost = ((total_cost * 1) + (calc.downpayment.value * 1));
      if( document.SearchForm != null)
	      document.SearchForm.price_point.value = Math.round(total_cost);
      calc.purchaseprice.value = Math.round(total_cost);
      calc.monthlypayment.value = purchase;

      return false;

   }

   function selectField(field) {
           field.select();
   }
