<!--------- calculations for affordability -------



	var WGdc=".";  
	var WGgc=",";
	var WGnc="-";
	var WGcs="";

function WGformatMoney(A,W) 
{  
// Author   : Jonathan Weesner (http://cyberstation.net/~jweesner/)
// Copyright: Use freely. Keep Author and Copyright lines intact.

	var N=Math.abs(Math.round(A*100));
   var S=((N<10)?"00":((N<100)?"0":""))+N;

   S=WGcs+((A<0)?WGnc:"")+WGgroup(S.substring(0,(S.length-2)))+WGdc+
      S.substring((S.length-2),S.length)+((A<0&&WGnc=="(")?")":"");
   return (S.length>W)?"Over":S;
}

// WGgroup inspired by Bill Dortch's usenet post (www.hidaho.com)
function WGgroup(S) 
{
   return (S.length<4)?S:(WGgroup(S.substring(0,S.length-3))+
      WGgc+S.substring(S.length-3,S.length));
}

function roundOff(value, precision) {	// Precision = 2 decimal places
		if(parseInt(value) <= 0) {
			// Incorrect Value
			return 0;
			}

        value = "" + value //convert value to string
        precision = parseInt(precision);
        var whole = "" + Math.round(value * Math.pow(10, precision));
        var decPoint = whole.length - precision;        if(decPoint != 0)
        {                result = whole.substring(0, decPoint);
                result += ".";
                result += whole.substring(decPoint, whole.length);        }
        else        {                result = whole;        }
        return result;
}

function roundToNextHighestEighth ( inVal ){
	var rVal, tVal;
	if(inVal.match(".")<=0){
		// no decimal part
		rVal = inVal.concat(".125");
		return rVal;
		}
	else {
		var tArray = inVal.split(".")
		tVal = tArray[1];
		var dPlace = tVal.length;
		switch(dPlace){
			case 1 :
				tVal *= 10
				break;
			case 3 :
				tVal *= 0.1
				break;
			case 2 :
			default:
				break;
			}
		if(tVal <= 12.5){
			rVal = tArray[0].concat(".125");
			}
		if((tVal <= 25) && (tVal > 12.5)){
			rVal = tArray[0].concat(".25");
			}
		if((tVal <= 37.5) && (tVal > 25)){
			rVal = tArray[0].concat(".375");
			}
		if((tVal <= 50) && (tVal > 37.5)){
			rVal = tArray[0].concat(".50");
			}
		if((tVal <= 62.5) && (tVal > 50)){
			rVal = tArray[0].concat(".625");
			}
		if((tVal <= 87.5) && (tVal > 62.5)){
			rVal = tArray[0].concat(".875");
			}
		if(tVal > 87.5){
			var tmp = parseFloat(tArray[0]);
			tmp++;
			tArray[0] = "" + tmp;
			rVal = tArray[0].concat(".00");
			}
			if(rVal > 8.25)
				rVal = 8.25;
		return rVal;
		}
}


function removeComma( inVal ){
	var rVal = inVal.replace(",", "");
	return rVal;
	}

function calc(form) {

	form.eq1.value = roundOff(removeComma(form.calcBalance1.value)*form.calcInterest1.value/100, 2);
	form.eq2.value = roundOff(removeComma(form.calcBalance2.value)*form.calcInterest2.value/100, 2);
	form.eq3.value = roundOff(removeComma(form.calcBalance3.value)*form.calcInterest3.value/100, 2);
	form.eq4.value = roundOff(removeComma(form.calcBalance4.value)*form.calcInterest4.value/100, 2);
	form.eq5.value = roundOff(removeComma(form.calcBalance5.value)*form.calcInterest5.value/100, 2);
	form.eq6.value = roundOff(removeComma(form.calcBalance6.value)*form.calcInterest6.value/100, 2);
	form.eq7.value = roundOff(removeComma(form.calcBalance7.value)*form.calcInterest7.value/100, 2);
	form.eq8.value = roundOff(removeComma(form.calcBalance8.value)*form.calcInterest8.value/100, 2);

	eq1 = form.eq1.value*1;
	eq1 = eq1+form.eq2.value*1;
	eq1 = eq1+form.eq3.value*1;
	eq1 = eq1+form.eq4.value*1;
	eq1 = eq1+form.eq5.value*1;
	eq1 = eq1+form.eq6.value*1;
	eq1 = eq1+form.eq7.value*1;
	eq1 = eq1+form.eq8.value*1;

	form.factorcalc.value = roundOff(eq1, 2);

	calcBalance1 = form.calcBalance1.value*1;
	calcBalance1 = calcBalance1+form.calcBalance2.value*1;
	calcBalance1 = calcBalance1+form.calcBalance3.value*1;
	calcBalance1 = calcBalance1+form.calcBalance4.value*1;
	calcBalance1 = calcBalance1+form.calcBalance5.value*1;
	calcBalance1 = calcBalance1+form.calcBalance6.value*1;
	calcBalance1 = calcBalance1+form.calcBalance7.value*1;
	calcBalance1 = calcBalance1+form.calcBalance8.value*1;

	form.totalloan.value = roundOff(calcBalance1, 2);
	form.percentcalc.value = form.factorcalc.value/form.totalloan.value*100;
	form.percentcalc.value = roundOff(form.percentcalc.value, 3);

	
	// These two lines show you how to use the eighth function

	var tVal = removeComma(form.percentcalc.value);
	var nVal = roundToNextHighestEighth(tVal);
	form.ratecalc.value = nVal;
}



function amtround(num)
{
	numrnd = 0;
	numrnd = num * 100;
	numrnd = Math.round(numrnd);
	temp1 = numrnd.toString(10);
	temp1n = temp1.length;
	numrnd = temp1.substring(0,temp1n-2) + "." + temp1.substring(temp1n-2,temp1n);	
	numrnd = parseFloat(numrnd);
}

function amtround2(num)
{
	numrnd2 = 0;
	numrnd2 = num * 100;
	numrnd2 = Math.round(numrnd2);
	temp1 = numrnd2.toString(10);
	temp1n = temp1.length;
	numrnd2 = temp1.substring(0,temp1n-2) + "." + temp1.substring(temp1n-2,temp1n);	
	numrnd2 = parseFloat(numrnd2);
}
		
	function calc2(form) {
	T1 = form.T1.value*1;
	T1 = T1+form.T2.value*1;
	T1 = T1+form.T3.value*1;
	T1 = T1+form.T4.value*1;
	T1 = T1+form.T5.value*1;
	T1 = T1+form.T6.value*1;
	T1 = T1+form.T7.value*1;
	T1 = T1+form.T8.value*1;
	T1 = T1+form.T9.value*1;
	T1 = T1+form.T10.value*1;
	amtround(T1);
	T1 = numrnd;
	
	form.totbal.value = WGformatMoney(numrnd);
		
	
	document.menuform.debt1.value = numrnd;
	document.menuform.debt2.value = numrnd;
	
	
	}
	
	function calc3(form) {
	irate2 = form.irate2.value*1;
	irate2 = irate2-form.irate1.value*1;
	amtround(irate2);
	irate2 = numrnd;
	form.aprpay.value=form.irate2.value*(form.debt3.value/100/12)*1;
	form.aprsave.value = WGformatMoney(numrnd);
	
	form.aprsave.value = WGformatMoney(numrnd);
	
	}
	
function calc5(form){
amt = eval (document.menuform.debt1.value);
yrs = eval (document.menuform.term1.value)*12;
rte = eval (document.menuform.rate1.value)/1200;
pmt=(rte+(rte/(Math.pow((1+rte),(yrs/12))-1)))*amt;
pmt = pmt*100;pmt=Math.round(pmt);pmt=pmt/100;
document.menuform.pay1.value=roundOff(pmt, 2);
}

function calc6(form){
rte = eval (document.menuform.rate2.value)/1200;
pmt = eval (document.menuform.pay2.value);
amt = eval (document.menuform.debt2.value);
yrs=(Math.log(1+(rte/(pmt/(amt)-rte)))/Math.log(1+rte))/12;
yrs=yrs*1000;
yrs=Math.round(yrs);
yrs=roundOff(yrs/1000, 2);
document.menuform.term2.value=yrs;
document.menuform.term2.value=WGformatMoney(yrs);
document.menuform.term2b.value=yrs*12;
document.menuform.term2b.value=WGformatMoney(yrs*12);
}		

function calc7(form){
recurcount=0
pmt = eval (document.inputform.pay3.value)
amt = eval (document.inputform.debt3.value)
yrs = eval (document.inputform.term3.value)*12
k=pmt/amt;
ans=0;
ct=0;
ct2=0;
stpL=.08333333333333;<!--stpL=STEP LIMIT-->
stp=.008333333333333;<!--stp=STEP INCREMENT-->
while(ct2<6)
{while (ct<stpL)
{n=(k-((ans+ct)+(ans+ct)/(Math.pow((1+ans+ct),yrs)-1)));
if(n<0) {ans = ans + (ct-stp); ct=stpL;ct2=ct2+1;stpL=(stpL/10);stp=(stp/10)}
ct=ct+stp
}

ct=0;
recurcount=recurcount+1;
if (recurcount>6) ct2=7;
}
ans=ans*1200;
ans=ans*1000;ans=Math.floor(ans);ans=ans/1000; 
document.inputform.rate3.value=ans;
}


// End -->
