// JavaScript Document
function pv(y,pmt,i) {
	return ( pmt / i * ( 1 - Math.pow( 1 + i, -y)) ) ;
  }

  function pmt(y,pv,i) {
	return ( i * Math.pow( 1 + i, y) * pv  / (1 - Math.pow( 1 + i, y) ) );
  }

  function curr(n) {
        n = "" + Math.round(n*100)/100;
        var k = n.indexOf(".");
        if (k != -1) {
                var n1 = n.substring(0,k);
                var n2 = n.substring(k,n.length);
        }
        else {
                n1 = n;
                 n2=".00";
        }
        var n3 = "";
        for (var i=0; i <= n1.length; i++) {
                n3 = n1.charAt(i) + n3;
        }
        var n4 = "";
        for (var i=0; i < n3.length; i++) {
                if ((i%3 == 0) && (i != 0)) {
                        n4 = n3.charAt(i) + "," + n4;
                }
                else {
                        n4 = n3.charAt(i) + n4;
                }
        }

		if(n2.length == 2) { n2 = n2 + '0';}
        return ("$ " + n4 + n2);
  }

  /*function calculate(form, what) {
	apr1 = parseFloat(form.apr.value);
	term = parseInt(form.term.value);*/
	function calculate(form, what,apr1,term) {
	//apr1 = parseFloat(form.apr.value);
	//term = parseInt(form.term.value);
	down = form.down.value ;

        if (apr1 < 1.) {
         alert("You entered an Interest Rate less than 1.0, please enter 8.5 if you want an interest rate of 8.5%!");
         return;
        }

        apr = apr1 / 1200;

        for ( i = 0; i < down.length; i++) {
               testchar = down.charAt(i);
               if ( (testchar < "0" || testchar > "9") && testchar != ".") {
                  alert("Please use only numbers and decimal points.  Do not use \"$\" or \",\" !");
                  return;
               }
        }

	down = parseFloat(down);

	if (what == "cc") {

               testpmt = form.pmt.value;

               for ( i = 0; i < testpmt.length; i++) {
                      testchar2 = testpmt.charAt(i);
                      if ( (testchar2 < "0" || testchar2 > "9") && testchar2 != ".") {
                         alert("Please use only numbers and decimal points.  Do not use \"$\" or \",\" !");
                         return;
                      }
               }

		var payment = parseFloat(form.pmt.value);
		var carCost = pv(term,payment,apr) + down;
		//form.amount.value = curr(carCost);
		//form.ti.value = curr((payment * term) - carCost + down);

		estPrice       = curr(carCost);
		estTiOfRequest = curr((payment * term) - carCost + down);
	}

	if (what == "pmt") {

               testcost = form.cost.value ;

               for ( i = 0; i < testcost.length; i++) {
                      testchar3 = testcost.charAt(i);
                      if ( (testchar3 < "0" || testchar3 > "9") && testchar3 != ".") {
                         alert("Please use only numbers and decimal points.  Do not use \"$\" or \",\" !");
                         return;
                      }
               }

		/*
		* Already Subtracting down on form
		*** carCost = parseFloat(form.cost.value) - down;
		************************************************/
		carCost = parseFloat(form.cost.value);
		payment = -1*pmt(term,carCost,apr);

		/*form.monthly.value = curr(payment);
		form.ti.value = curr((payment * term) - carCost);*/

		estPrice = curr(payment);
		estTiOfRequest = curr((payment * term) - carCost);
	}

  }

  var estPrice;
  var estTiOfRequest;

  function evalPayment(form,what){

	  if (form.apr.value < 1.) {
	      alert("You entered an Interest Rate less than 1.0, please enter 8.5 if you want an interest rate of 8.5%!");
         return;
	  }

      if(what == 'pmt'){
		  form.cost.value = (form.vcost.value - form.down.value);
	  }

	  var apr  = form.apr.value;
	  var term = form.term.value;
	  var displayAPRs = new Array;
	  displayAPRs[0] = apr - 1.0;
	  displayAPRs[1] = apr;
	  displayAPRs[2] = ((apr * 100)+100)/100;
	  displayAPRs[3] = ((apr * 100)+200)/100;
	  displayAPRs[4] = ((apr * 100)+300)/100;

	  var displayTerms      = new Array;
	  displayTerms[0]       = 24;
	  displayTerms[1]       = 36;
	  displayTerms[2]       = 48;
	  displayTerms[3]       = 60;
	  displayTerms[4]       = 66;
	  displayTerms[5]       = 72;
	  displayTerms[6]       = 84;

	  var cntAPRs     = displayAPRs.length;
	  var cntTerms    = displayTerms.length;

	  //loop term
	  var currentTerm = 0;
	  while(currentTerm < cntTerms)
	  {
		  var currentAPR = 0;
		  while(currentAPR < cntAPRs){

			  var colAPR  = 'apr_col'+ currentAPR;
			  var colTerm = 'months_row'+currentTerm+'_'+'col'+currentAPR;

			  calculate(form, what,displayAPRs[currentAPR],displayTerms[currentTerm]);

			  if((currentAPR == 1) && (displayTerms[currentTerm] == term)){

				  if(what == 'pmt'){
				      form.monthly.value = estPrice;
				  }

				  if(what == 'cc'){
				      form.amount.value = estPrice;
				  }

	              form.ti.value      = estTiOfRequest;

				  document.getElementById(colAPR).innerHTML  = displayAPRs[currentAPR]+'%';
			      document.getElementById(colTerm).innerHTML = estPrice;
				  document.getElementById(colTerm).style.fontWeight = 'normal';
				  document.getElementById(colTerm).style.backgroundColor = '#FFFF00';
			  }
			  else{
			      document.getElementById(colAPR).innerHTML  = displayAPRs[currentAPR]+'%';
			      document.getElementById(colTerm).innerHTML = estPrice;
				  document.getElementById(colTerm).style.fontWeight = 'normal';
			  }
			  currentAPR++;
		  }

		  currentAPR = 0;
		  currentTerm++;
	  }
  }

  function evalPayment_Wdgt(form,what){

	  if(what == 'pmt'){
		  form.cost.value = (form.vcost.value - form.down.value);
	  }

	  if (form.apr.value < 1.) {
         alert("You entered an Interest Rate less than 1.0, please enter 8.5 if you want an interest rate of 8.5%!");
         return;
      }
      else{
          calculate(form, what,form.apr.value,form.term.value);
          document.getElementById('wdgt_PaymentAmt').innerHTML  = estPrice;
      }
  }



