<!--
function dynAnimation() {}
function clickSwapImg() {}
//-------------------------------------



pd = 'paydata'; /* SAVING CALCULATOR DATA */

numDays       = 60;  /* DAYS UNTIL COOKIE EXPIRES (EG. 183 DAYS = 6 MONTHS) */



/** This function checks to see if the value */

/** inputed is a true number 				*/

function doSum(a)

{

a.value=check(a.value);

}



function check(a) 

{

   var pest = 0;

   var b = "";

   for(i=0;i<=a.length;i++)

   {

   var u = a.charAt(i);

      if((u>="0"&&u<="9")||u==".")

      {

      	if(u=="."){

      	var pest = pest+1;

      	if(pest==2){break;}}

var b = b + u;

}

}

return b;

}





/* CALLS UPON THE FUNCTIONS TO DETERMINE IF THE NUMBERS ENTERED ARE VALID AND TO CALCULATE THE RESULTS OF THE ENTERED DATA FOR EXAMPLE - MORTGAGE PAYMENT, GDS AND TDS RATIOS, AND LOAN TO VALUE. THIS FUNCTION IS EXECUTED EVERYTIME A VALUE IS CHANGED IN A FIELD */

function computeField(quest,input,min,msage)

{

doSum(input);

checkNumber(quest,input,min,msage);

} 



function checkNumber(quest,input,min,msg)

{

    var str = input.value;

    for (var i = 0; i < str.length; i++) {

        var ch = str.substring(i, i + 1)

        if ((ch < "0" || "9" < ch) && ch != '.') {

            return false;

        }

    }

    if(input.value!="")

    {

    var num = 0 + str

    if (num < min) {

    var sendn = "Question " + quest + ": ("+ msg + ")";

    var sendq = "You have entered " + input.value + ". Please enter a number greater than " + min +".";

  fixpro(sendn,sendq);



        return false;

    }

    input.value = str;

    return true;

    }

}





//---------------------------



/* TESTS VERSIONS FOR WHICH WILL SUPPORT POP UP WINDOWS */

function versTest()

{

var one = '';

var two = '';



if (

(navigator.appName.substring(0,8)=="Netscape" && (navigator.appVersion.substring(0,3) == "3.0" ||  navigator.appVersion.substring(0,3) =="4.0")))

{var one='true';}

if(

 (navigator.appName.substring(0,9) == "Microsoft" && navigator.appVersion.substring(0,3) == "3.0" && navigator.appVersion.indexOf("Macintosh")>=0))

{var two='true';}



if(one=='true' || two=='true' ||

(navigator.appName.substring(0,9) == "Microsoft" && navigator.appVersion.indexOf("MSIE 3.0")>=0 && 

navigator.appVersion.indexOf("Windows 3.1")>=0)

)

{return true;}

else

{return false;}

}



/* TESTS IF VERSION IS MSIE 3.0 FOR MAC */

function msTest()

{

if(navigator.appName.substring(0,9) == "Microsoft" && 		(navigator.appVersion.substring(0,3) == "3.0" && navigator.appVersion.indexOf("Macintosh")>=0))

{return true;}

else

{return false;}



}



function nineTest()

{

if(navigator.appName.substring(0,9) == "Microsoft" && (navigator.appVersion.substring(0,3)=="3.0" || navigator.appVersion.indexOf("MSIE 3.0")>=0) && (navigator.appVersion.indexOf("Macintosh")==-1 || navigator.appVersion.indexOf("Windows 3.1")== -1)

)

{return true;}

else

{return false;}

}



//-----------------------------



/* OPENS POP UP WINDOW TO DISPLAY VALIDATION MESSAGES IN NETSCAPE 3.0 AND 4.0 */



function fixpro(n,q)



{

if(versTest() == true){

		if(msTest()==true){

			var winNam='';

		}

		else{

			var slash = location.href.lastIndexOf("/")+1;

			var filNam = location.href.substring(0,slash);

			var winNam = filNam+'empty.html';

		}

fix = window.open(winNam,'FIX','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,width=300,height=100');

if(navigator.appName.substring(0,8) == "Netscape"){

			fix.focus();

		}

fix.document.write('<html><head><title>Calculators</title>');

fix.document.write('</head><body bgcolor=ffffff><form name=fixer>');

fix.document.write('<FONT SIZE=2 FACE="Arial, Helvetica" color=306798>'+n+'</font><p><font size=2 face="Arial, Helvetica">'+q+'<p>');

fix.document.write('<center><input type=button value=OK onClick=self.close()>');

fix.document.write('</center></form></body></html>');

fix.document.close();

}

else{alert(n+'\n'+q)}

}

		

//----------------------------



function roundPen(n,num)

{

if(n > 0){

var nums = num*1.0;

if(num==2){

pennies = n*100;}

if(num==3){

pennies = n*1000;}



pennies = Math.round(pennies);

strPennies = "" + pennies;

len = strPennies.length;

return strPennies.substring(0, len - nums) + "." + strPennies.substring(len - nums, len);



}

else return 0;

}





//---------------------------------



function controlVarst(n)

{

if(controlVars(n)==true){}

}



function controlVars(n)

{

if(compute(n)==true){



if(n!=2){var AMORT = document.paycalc.NAMORT.value * 1.0;}

if(n!=3){var MORTGAGE = document.paycalc.AMOUNT.value * 1.0;}

if(n!=4){var INRATE = (document.paycalc.INTEREST.value * 1.0)/100;}

if(n!=5){var PAYMENT = document.paycalc.PAYMENT.value * 1.0;}

var FREQ = (document.paycalc.PFREQ.selectedIndex)*1.0;



if(n==2){if(compAmort(MORTGAGE,INRATE,PAYMENT,FREQ)==false){return false;}else{return true;}}

if(n==3){if(compAmnt(AMORT,INRATE,PAYMENT,FREQ)==false){return false;}else{return true;}}

if(n==4){if(compInt(AMORT,MORTGAGE,PAYMENT,FREQ)==false){return false;}else{return true;}}

if(n==5){if(compPay(AMORT,MORTGAGE,INRATE,FREQ)==false){return false;}else{return true;}}



else{return true;}

}

else{return false;}

}





function compPay(AMORT,MORTGAGE,INRATE,FREQ){



var compound = 2/12;

var monTime = AMORT * 12;



var yrRate = INRATE/2;

var rdefine = Math.pow((1.0 + yrRate),compound)-1.0;

var comfact = Math.pow((1.0 + rdefine),monTime);

var PAYMNT = (MORTGAGE*rdefine * comfact)/  (comfact - 1.0);



if(FREQ==0){

var rPAYMENT = PAYMNT;}

if(FREQ==1||FREQ==2){

var rPAYMENT = PAYMNT/2.0;}

if(FREQ==3){

var rPAYMENT = PAYMNT/4.0;}

document.paycalc.PAYMENT.value=roundPen(rPAYMENT,2);



return true;

}



//--------------------------------------------------

function compAmnt(AMORT,INRATE,PAYMENT,FREQ){





	if(FREQ==0){

	var rPAYMENT = PAYMENT;}

	if(FREQ==1||FREQ==2){

	var rPAYMENT = PAYMENT*2.0;}

	if(FREQ==3){

	var rPAYMENT = PAYMENT*4.0;}



var compound = 2/12;

var monTime = AMORT * 12;

var yrRate = INRATE/2;

var rdefine    = Math.pow((1.0 + yrRate),compound)-1.0;

var comfact = Math.pow((1.0 + rdefine),monTime);

var bal = rPAYMENT*(comfact-1)/(rdefine*comfact);

document.paycalc.AMOUNT.value=roundPen(bal,2);

return true;



}



//----------------------------

function findRate(q,n,MORTGAGE,AMORT,COMPOUND,PAYMENT){



var compound = COMPOUND/12;

var monTime = AMORT * 12;

var newpay = 0;

for(i=q;newpay<=PAYMENT;i=i+n){



var RATE = i/100;

var yrRate = RATE/COMPOUND;

var rdefine    = Math.pow((1.0 + yrRate),compound)-1.0;

var comfact = Math.pow((1.0 + rdefine),monTime);

var newpay = (MORTGAGE*rdefine * comfact)/  (comfact - 1.0);

}

return i-n-n;

}

//----------------------------



function compInt(AMORT,MORTGAGE,PAYMENTx,FREQ){



var COMPOUND = 2;

var intpayment = PAYMENTx;

if(FREQ==1||FREQ==2){

var intpayment = PAYMENTx*2.0;}

if(FREQ==3){

var intpayment = PAYMENTx*4.0;}

var wholerate = findRate(1,1,MORTGAGE,AMORT,COMPOUND,intpayment);

var solverate = findRate(wholerate,.001,MORTGAGE,AMORT,COMPOUND,intpayment);

document.paycalc.INTEREST.value = roundPen(solverate,3);

return true;



}



//-------------------------



function findAmort(q,n,MORTGAGE,RATE,COMPOUND,PAYMENTAG){

var compound = COMPOUND/12;

var yrRate = RATE/COMPOUND;

var rdefine    = Math.pow((1.0 + yrRate),compound)-1.0;

var newpay = 1000000000;



for(i=q;newpay>=PAYMENTAG;i=i+n){

var monTime = i * 12;

var comfact = Math.pow((1.0 + rdefine),monTime);

var newpay = (MORTGAGE*rdefine * comfact)/  (comfact - 1.0);

}

return i-n-n;

}

//--------------------------





function compAmort(MORTGAGE,INRATE,PAYMENTt,FREQ){



var returnpay = PAYMENTt*1.0;

var COMPOUND = 2;



if(FREQ==1){

var returnpay = PAYMENTt*2.0;}

if(FREQ==2){

var returnpay = PAYMENTt*2.0;}

if(FREQ==3){

var returnpay = PAYMENTt*4.0;}



var wholecom = findAmort(1,1,MORTGAGE,INRATE,COMPOUND,returnpay);

var solvecom = findAmort(wholecom,.001,MORTGAGE,INRATE,COMPOUND,returnpay);

document.paycalc.NAMORT.value = roundPen(solvecom,2);

return true;



}



/* VALIDATES ALL THE FIELDS AND CALCULATES VALUES TO BE ENTERED INTO THE TEXT BOXES AT THE BOTTOM OF THE PAGE WHEN THE USER CLICKS ON COMPUTE OR COMPUTE AMORTIZATION */

function compute(n){



if (n!=2) {

if((document.paycalc.NAMORT.value == null|| document.paycalc.NAMORT.value.length == 0)|| (document.paycalc.NAMORT.value < 1)){

fixpro('Question 2: (Amortization Period)','Please enter a number greater than 1.');

return false;

}

}



if (n!=3) {

if((document.paycalc.AMOUNT.value == null|| document.paycalc.AMOUNT.value.length == 0)|| (document.paycalc.AMOUNT.value <10000) ){ 		

fixpro('Question 3: (Mortgage Amount)','Please enter a number greater than 10000.');

return false;

}

}



if (n!=4) {

if((document.paycalc.INTEREST.value == null|| document.paycalc.INTEREST.value.length == 0)|| (document.paycalc.INTEREST.value <2))

{fixpro('Question 4: (Interest Rate)','Please enter a number greater than 2.0.');

return false;}

}



if (n!=5) {

if((document.paycalc.PAYMENT.value == null || document.paycalc.PAYMENT.value.length == 0)||(document.paycalc.PAYMENT.value < 1))

{fixpro('Question 5: (Mortgage Payment)','Please enter a number greater than 1.0.');return false;}

}



return true;

}



/* OPENS WINDOW USED TO DISPLAY HELP MESSAGES WHEN THE USER CLICKS ON A HELP BUTTON. THE HELP MESSAGE DISPLAYED IS DETERMINED IN THE ARRAY WHICH IS REFERENCED ACCORDING TO THE HELP BUTTON WHICH WAS CLICKED */

function winopen(name)

{

var linkit = "help/"+name;

if(versTest() == true||nineTest()==true){	

qc=window.open(linkit,'helpscreen','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,width=250,height=180');

if(navigator.appName.substring(0,8) == "Netscape")

{qc.focus();}

}

else{location.href=linkit;}

}



function retFreq(n){

if(n==0){return 12;}

if(n==1){return 24;}

if(n==2){return 26;}

if(n==3){return 52;}

}



/* SAVES COOKIE CONTAINING DATA TO BE USED IN AMORTIZATION SCHEDULE */

function quickCook(MTGAMT,AMORT,RATE,TERM,FREQ)

{

var AMORTPMT = document.forms[0].PAYMENT.value;

var intrate = RATE/100;

var INTFACTOR = Math.pow((1+intrate/2),(2/FREQ))-1;



var expire = new Date ();

expire.setTime (expire.getTime() + (numDays * 24 * 3600000));/* 2 MONTHS */

var pdData = " " ;

pdData = pdData + '`' + MTGAMT + '`' + AMORTPMT + '`' + INTFACTOR + '`' + FREQ + '`' + (AMORT*FREQ) + '`' + 0 + '`' + 0 +'`' + 3 + '`' + 1 + '`' + RATE*1.0/100 + '`' + 0 + '`' + 0 + '`' + 0 + '`' + 0 + '`' + 0 + '`' + 0 + '`' + 0;

document.cookie = pd +"=" + escape(pdData) +"; expires=" + expire.toGMTString()+"; path=/" ;

}



function computeAm(form)

{



var count=0;

var which="";

var freq = retFreq(form.PFREQ.selectedIndex)*1.0;

var amort = form.NAMORT.value;

var amount = form.AMOUNT.value;

var rate = form.INTEREST.value;

var payment = form.PAYMENT.value;



if(amort==null||amort.length==0){count=count+1;which="am";}

if(amount==null||amount.length==0){count=count+1;which="amt";}

if(rate==null||rate.length==0){count=count+1;which="rate";}

if(payment==null||payment.length==0){count=count+1;which="pay";}





if(count>1){fixpro('','You must complete three out of the four questions');return false;}



if(count<=1){

	if(which=="pay"||which==""){if(controlVars(5)==false){return false;}}

	if(which=="am"){if(controlVars(2)==false){return false;}}

	if(which=="amt"){if(controlVars(3)==false){return false;}}

	if(which=="rate"){if(controlVars(4)==false){return false;}}



var amount=form.AMOUNT.value;

var amort = form.NAMORT.value;

var rate = form.INTEREST.value;

setTimeout("quickCook("+amount+","+amort+","+rate+",12,"+freq+")",100);

return true;

}

return false;

}



function amortLink()

{

var timere = computeAm(document.forms[0]);

if(timere==true){setTimeout("document.form2.submit()",100);}

}



function amortonLink()

{

if(computeAm(document.forms[0])==true){

setTimeout("document.form2.submit()",100);return false;

}

else{return false;}

}

//-->
