// 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);
	var down = form.down.value.replace(',','');

        if (apr1 < 0) {
         alert("You entered an Interest Rate less than 0. Example: 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") {
		var paymentVal  = form.pmt.value.replace(',','');
               testpmt = paymentVal;

               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(paymentVal);
		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 < 0) {
	      alert("You entered an Interest Rate less than 0. Example: please enter 8.5 if you want an interest rate of 8.5%!");
         return;
	  }

      if(what == 'pmt'){
		  var vCost = form.vcost.value.replace(',','');
		  var vDown = form.down.value.replace(',','');
    	  form.cost.value = (vCost - vDown);
	  }

	  var apr  = form.apr.value;
	  var term = form.term.value;
	  var displayAPRs = new Array;
      
	  if ((apr - 1.0) < 0) {
          displayAPRs[0] = 0.1;
      }
      else {
          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;

	  if(document.getElementById('ContractLength') != null){
		  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++;
		  }
	  }
	  else{
		  calculate(form, what,apr,term);
		  if(what == 'pmt'){
		      form.monthly.value = estPrice;
		  }

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

  function evalPayment_Wdgt(form,what){

	  if(what == 'pmt'){
		  var vCost = form.vcost.value.replace(',','');
		  var vDown = form.down.value.replace(',','');
		  form.cost.value = (vCost - vDown);
	  }

	  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;
      }
  }



