var nd = new Date();
var bgColor = '#feed88';
var fgColor = '#fff';

function stripCharacter(words,character) 
{
	//documentation for this script at http://www.shawnolson.net/a/499/
	  var spaces = words.length;
	  for(var x = 1; x<spaces; ++x){
	   words = words.replace(character, "");   
	 }
	 return words;
}

function $(element) {
    return document.getElementById(element);
}

function compute() {
    var a = $("LoanAmount").value.replace(/,/g, "") - $("Deposit").value.replace(/,/g, "");
    var b = $("Rate").value
    var c = $("Term").value

    if ((a=="") || (b=="") || (c=="")) {


        $("LoanAmount").style.background = bgColor;
        $('Rate').style.background = bgColor;
        $('Term').style.background = bgColor;
        $("LoanAmount").style.color = fgColor;
        $('Rate').style.color = fgColor;
        $('Term').style.color = fgColor;
    } else {
        var month = eval(pmt(a,(b*.01)/12,c*12));
        var fnight = eval(pmt(a,(b*.01)/26,c*26));
        var week = eval(pmt(a,(b*.01)/52,c*52));
        $("Monthly").value = rounding(month);
        $("RegFee").value = rounding(bondFees(a));
    } //else
}
function pmt(ppl,rate,mths) { return x = eval((ppl*rate)/(eval(1-Math.pow(eval(rate+1),eval(0-mths))))); }
function rounding(n) {
    var p = Math.round(n*100) ;
    var P = "" + p;
    var Plen = P.length ;
    return P.substring(0, Plen - 2) + "." + P.substring((Plen - 2), Plen);
}

/*
function nper(obj) {
  var fv = 0;
  var origterm = parseFloat($("Term").value);
  var origpay = parseFloat($("Monthly").value);
  var ex = $("Extra").value.replace(/,/g, "");
  //var extpay = parseFloat($("Extra").value);
  var extpay = parseFloat($("Extra").value);
  var rate = $("Rate").value;
  var pv = parseFloat($("LoanAmount").value.replace(/,/g, "")-$("Deposit").value.replace(/,/g,""));
  var per = 12;
  pv = -pv;
  var pay = origpay + extpay;
  
  if ($("Extra").value == "") {
     $('Extra').style.background = bgColor;
     $('Extra').style.color = fgColor;
  } else {
    rate = eval((rate)/(per * 100));
    
    if ( rate == 0 ) {   
        nper_value = - (fv + pv)/pay;
    } else {
        nper_value = Math.log((-fv * rate + pay)/(pay+ rate * pv))/ Math.log(1 + rate);
    }
    new_nper =  rounding(nper_value);
    orig_total_amt = origpay * origterm * 12;
    new_total_amt = pay * new_nper;
    var save = orig_total_amt - new_total_amt;
    $("NewTerm").value = rounding(nper_value/12);
    $("Saving").value = Math.round(save);
  }
}
*/
function nper(obj) {
  fv = 0;
  origterm = parseFloat(obj.Term.value);
  origpay = parseFloat(obj.Monthly.value);
  extpay = parseFloat(obj.Extra.value.replace(/,/g, ""));
  pv = parseFloat(obj.LoanAmount.value.replace(/,/g, "")-obj.Deposit.value.replace(/,/g, ""));
  //alert(pv);
  per = 12;
  pv = -pv;
  pay = origpay + extpay;
  rate = obj.Rate.value;
   if (obj.Extra.value == "") {
     $('Extra').style.background = bgColor;
     $('Extra').style.color = fgColor;
   } else {
     rate = eval((rate)/(per * 100));
     if ( rate == 0 ) {
       nper_value = - (fv + pv)/pay; 
     } else {
       nper_value = Math.log((-fv * rate + pay)/(pay+ rate * pv))/ Math.log(1 + rate);
     }
    new_nper =  rounding(nper_value);
    orig_total_amt = origpay * origterm * 12;
    new_total_amt = pay * new_nper;
    save = orig_total_amt - new_total_amt;
    obj.NewTerm.value = rounding(nper_value/12);
    obj.Saving.value = Math.round(save);
   }
}

function bondFees(finance) {
	if ((finance >= 100) && (finance <= 10000))
		fees = 550;
	else if ((finance > 10000) && (finance <= 15000))
		fees = 700;
	else if ((finance > 15000) && (finance <= 20000))
		fees = 750;
	else if ((finance > 20000) && (finance <= 25000))
		fees = 850;
	else if ((finance > 25000) && (finance <= 30000))
		fees = 900;
	else if ((finance > 30000) && (finance <= 35000))
		fees = 1000;
	else if ((finance > 35000) && (finance <= 40000))
		fees = 1100;
	else if ((finance > 40000) && (finance <= 45000))
		fees = 1150;
	else if ((finance > 45000) && (finance <= 50000))
		fees = 1200;
	else if ((finance > 50000) && (finance <= 60000))
		fees = 1300;
	else if ((finance > 60000) && (finance <= 70000))
		fees = 1400;
	else if ((finance > 70000) && (finance <= 80000))
		fees = 1600;
	else if ((finance > 80000) && (finance <= 90000))
		fees = 1700;
	else if ((finance > 90000) && (finance <= 100000))
		fees = 1800;
	else if ((finance > 100000) && (finance <= 125000))
		fees = 1900;
	else if ((finance > 125000) && (finance <= 150000))
		fees = 2000;
	else if ((finance > 150000) && (finance <= 175000))
		fees = 2100;
	else if ((finance > 175000) && (finance <= 200000))
		fees = 2200;
	else if ((finance > 200000) && (finance <= 250000))
		fees = 2400;
	else if ((finance > 250000) && (finance <= 300000))
		fees = 2700
	else if ((finance > 300000) && (finance <= 350000))
		fees = 3000;
	else if ((finance > 350000) && (finance <= 400000))
		fees = 3400;
	else if ((finance > 400000) && (finance <= 450000))
		fees = 3700;
	else if ((finance > 450000) && (finance <= 500000))
		fees = 4000;
	else if ((finance > 500000) && (finance <= 600000))
		fees = 4600;
	else if ((finance > 600000) && (finance <= 700000))
		fees = 5200;
	else if ((finance > 700000) && (finance <= 800000))
		fees = 5800;
	else if ((finance > 800000) && (finance <= 900000))
		fees = 6400;
	else if ((finance > 900000) && (finance <= 1000000))
		fees = 7000;
	else if ((finance > 1000000) && (finance < 5100000))
		fees = (((finance - 1000000) / 100000) * 300) + 7000;
	else if (finance >= 5100000)
		fees = (((finance - 5000000) / 100000) * 150) + 19000;

	return Math.round(fees);
} //bondFees