function popUp(URL){

pop = window.open(URL,"window","width=650,height=550,resizable=1,scrollbars=1,location=no,menubar=no")

pop.focus() 

} 
function popUpHelp(URL){

pop = window.open(URL,"help","width=450,height=360,resizable=1,scrollbars=1,location=no,menubar=yes")

pop.focus() 

} 

function popUpCount(URL){

pop = window.open(URL,"count","width=560,height=435,resizable=1,scrollbars=1,location=no,menubar=yes")

pop.focus() 

} 

function popUpOutside(URL){

pop = window.open(URL,"outside","width=700,height=550,resizable=1,scrollbars=1,location=yes,menubar=yes,toolbar=yes")

pop.focus() 

} 

function popUpPdf(URL){

pop = window.open(URL,"pdf","width=800,height=600,resizable=1,scrollbars=1")

pop.focus() 

} 

function openImageWindow( url ) {
	newWindow = window.open(url, "NewWindow", "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=300,height=300,left=220,top=250");
	newWindow.focus();
}	

function openAttachmentWindow( url ) {
	newWindow = window.open(url, "NewWindow", "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=600,height=600,left=120,top=250");
	newWindow.focus();
}	

function openViewerWindow( url ) {
	newWindow = window.open(url, "Viewer", "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=820,height=600,left=120,top=100");
	newWindow.focus();
}	



/*  THE FOLLOWING TWO FUNCTIONS CHECK THAT ALL NUMERIC VALUES ARE REAL NUMBER AND REMOVE DOUBLE DECIMALS */
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;
}

/* FUNCTION CONFIRMS THAT THE VALUE ENTERED INTO A FIELD FALLS WITHIN THE PRE-DETERMINED MINIMUM AND MAXIMUM VALUES */
function checkNumber(quest,input, min, max, 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 != '.') {
            alert(msg);
            return false;
        }
    }
    if(input.value!="")
    {
    var num = 0 + str
    if (num < min || max < num) {
 var sendn = "Question " + quest + ": ("+ msg + ")";
    var sendq = "You have entered " + input.value + ". Please enter a number between " + min + " and " + max + ".";
  fixpro(sendn,sendq);

        return false;
    }
    input.value = str;
    return true;
	}
	
}


/* CALLS UPON THE FUNCTIONS TO DETERMINE IF THE NUMBERS ENTERED ARE VALID AND TO CALCULATE THE RESULTS OF THE ENTERED DATA */
function computeField(quest,input,min,max,msage)
{
doSum(input); 
checkNumber(quest,input,min,max,msage);     
}        

/* ROUNDS OFF MONETARY NUMBERS TO TWO DECIMALS (PENNIES) */
function roundPen(n)
{
if(n > 0){
pennies = n*100;
pennies = Math.round(pennies);
strPennies = "" + pennies;
len = strPennies.length;

return strPennies.substring(0, len - 2) + "." + strPennies.substring(len -2, len);
}
else return 0;
}

/* CALCULATES VALUES DISPLAYED WHEN COMPUTE IS CLICKED. FIRST CHECKS THAT THERE ARE VALUES IN ALL OF THE FIELDS. THE RESULTS ARE SENT TO THE TEXT BOXES - MAXIMUM MORTGAGE AND MONTHLY PAYMENT */

function calcMax(){

if((document.calcafford.totinc.value == null || document.calcafford.totinc.value.length == 0)|| (document.calcafford.totinc.value < 10000 || document.calcafford.totinc.value > 1000000)){
fixpro('Question 1: (Annual Family Income)','Please enter a number between 10000 and 1000000.');return;}


if((document.calcafford.protax.value == null || document.calcafford.protax.value.length == 0)|| (document.calcafford.protax.value < 100 || document.calcafford.protax.value > 50000)){
fixpro('Question 2: (Annual Property Taxes)','Please enter a number between 100 and 50000.');return;}

if((document.calcafford.proheat.value == null || document.calcafford.proheat.value.length == 0)|| (document.calcafford.proheat.value < 20 || document.calcafford.proheat.value > 1500)){
fixpro('Question 3: (Monthly Heating Costs/Condo Fees)','Please enter a number between 20 and 1500.');return;}

if((document.calcafford.debt.value == null || document.calcafford.debt.value.length == 0)|| (document.calcafford.debt.value < 0 || document.calcafford.debt.value > 5000)){
fixpro('Question 4: (Monthly Debt Payments)','Please enter a number between 0 and 5000.');return;}

if((document.calcafford.second.value == null || document.calcafford.second.value.length == 0)|| (document.calcafford.second.value < 0 || document.calcafford.second.value > 5000)){
fixpro('Question 5: (Secondary Financing Payment)','Please enter a number between 0 and 5000.');return;}

if((document.calcafford.rate.value == null || document.calcafford.rate.value.length == 0)|| (document.calcafford.rate.value < 2 || document.calcafford.rate.value > 25)){
fixpro('Question 6: (Interest Rate)','Please enter a number between 2.0 and 25.0.');return;}


var RATE = document.calcafford.rate.value/100;
var income = document.calcafford.totinc.value;
var tax = document.calcafford.protax.value;
var heat = document.calcafford.proheat.value*12;
var debt = document.calcafford.debt.value*12;
var second = document.calcafford.second.value*12;
var compound = 2/12;
var monTime = 25 * 12;
var yrRate = RATE/2;
var rdefine    = Math.pow((1.0 + yrRate),compound)-1.0;
var purchcompound = Math.pow((1.0 + rdefine),monTime);


var maxgdsr =.32;
var maxtdsr =.42;


var GDSPAY = (maxgdsr*income) - tax - heat - second;
var TDSPAY = (maxtdsr*income) - tax - heat - second - debt;

var PAYMENT = (GDSPAY<TDSPAY) ? GDSPAY/12 : TDSPAY/12;
var MORTGAGE = (0 +((PAYMENT*(purchcompound-1.0))/rdefine))/purchcompound;


document.calcafford.amt.value = '$'+roundPen(MORTGAGE);
document.calcafford.pay.value = '$'+roundPen(PAYMENT);
return;
}

/* 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 WINDOW FOR PRESENCE & DATA VALIDATION */
 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+'maxem.asp';
		}
fix = window.open(winNam,'FIX','toolbar=no,location=no,directories=no,status=no,scrollbars=yes,resizable=no,copyhistory=no,width=300,height=100,outerWidth=350,outerHeight=150');
		if(navigator.appName.substring(0,8) == "Netscape"){
			fix.focus();
		}
fix.document.write('<html><head><title>OME</title>');
fix.document.write('</head><body bgcolor=ffffff><form name=fixer>');
fix.document.write('<font size=2 face="Arial, Helvetica" color=0000FF>'+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);
	}
}

/* OPENS POP UP WINDOW TO DISPLAY HELP MESSAGES IN NETSCAPE 3.0 AND 4.0 */
function winopen(name)
{
//var linkit = "help/"+name;
var linkit = name;

if(versTest() == true || nineTest()==true){	
maxMo=window.open(linkit,'helpscreen','toolbar=no,location=no,directories=no,status=no,scrollbars=yes,resizable=no,copyhistory=no,width=250,height=180,outerWidth=300,outerHeight=230');
if(navigator.appName.substring(0,8) == "Netscape")
{maxMo.focus();}
}

else{location.href=linkit;}

}


function StringArray(n)
{
this.length = n;
for (var i = 1; i <= n; i++)
this[i] = '' 
return this
}


maxtitle = new StringArray(9);
maxtitle['A'] = 'Total Annual Income';
maxtitle['B'] = 'Annual Property Taxes';
maxtitle['C'] = 'Monthly Heating Costs';
maxtitle['D'] = 'Other Monthly Debt Payments';
maxtitle['E'] = 'Mortgage Term';
maxtitle['F'] = 'Interest Rate';
maxtitle['G'] = 'Special Circumstances';
maxtitle['H'] = 'Second Mortgage Payments';
maxtitle['I'] = 'Maintenance Fees';



function browTest()
{
if((navigator.appVersion.substring(0,3) == 3.0 || navigator.appVersion.substring(0,3) == 4.0)&& navigator.appName.substring(0,8)=="Netscape"){
	return true;
}
else{
	return false;
}
}

/* Mortgage Payment Calculator */
function compAmort(MORTGAGE,INRATE,PAYMENTt,FREQ){

var form=document.calcmortpay;
var MORTGAGE=form.mtgamnt.value;
var AMORT= form.amortperiod.value;
var INRATE= form.intrate.value/100;
var RATE= form.intrate.value;
var COMPOUND = 2;

if(FREQ==2){
var returnpay = PAYMENTt*2.0;}
if(FREQ==3){
var returnpay = PAYMENTt*2.0;}
if(FREQ==4){
var returnpay = PAYMENTt*4.0;}

var wholecom = findAmort(1,1,MORTGAGE,INRATE,COMPOUND,returnpay,FREQ);
var solvecom = findAmort(wholecom,.001,MORTGAGE,INRATE,COMPOUND,returnpay,FREQ);
if(FREQ==2){

form.semiMonth.value= roundPen(solvecom,2);

return form.semiMonth.value;
}
if(FREQ==3){

form.AccelBi.value= roundPen(solvecom,2);
return form.AccelBi.value;
}
if(FREQ==4){
form.AccelWeek.value= roundPen(solvecom,2);
return form.AccelWeek.value;
}
}


function findAmort(q,n,MORTGAGE,RATE,COMPOUND,PAYMENTAG,FREQ){
var compound = COMPOUND/12;
var yrRate = RATE/COMPOUND;
var rdefine    = Math.pow((1.0 + yrRate),compound)-1.0;
var newpay = 1000000000;

if (FREQ==2) {
var p=12;

}
if (FREQ==3) {
var p=13;

}
if (FREQ==4) {
var p=13;

}

for(i=q;newpay>=PAYMENTAG;i=i+n){

var monTime = i * p;
var comfact = Math.pow((1.0 + rdefine),monTime);
var newpay = (MORTGAGE*rdefine * comfact)/  (comfact - 1.0);
}
return i-n-n;
}

/** function compPayThis function computes the mortgage payment */

function compPay(){
var form=document.calcmortpay;
var MORTGAGE=form.mtgamnt.value;
var AMORT= form.amortperiod.value;
var INRATE= form.intrate.value/100;

if (form.mtgamnt.value!="" && form.intrate.value!="" && form.amortperiod.value!="") {

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);
	
		var rPAYMENT = PAYMNT;
		
		var rPAYMENT2 = PAYMNT/2.0;
		
		var rPAYMENT3 = PAYMNT/4.0;
		
		
	
	form.payMonth.value=roundPen(rPAYMENT,2);
	form.paysemiMonth.value=roundPen(rPAYMENT2,2);

	form.payAccelBi.value = roundPen(rPAYMENT2,2);
	
	form.payAccelWeek.value = roundPen(rPAYMENT3,2);

	
	form.Month.value= form.amortperiod.value*1.0;                                                                                                                                                                          
	form.semiMonth.value= compAmort(MORTGAGE,INRATE,rPAYMENT2,2);
	form.AccelBi.value= compAmort(MORTGAGE,INRATE,rPAYMENT2,3);
	form.AccelWeek.value= compAmort(MORTGAGE,INRATE,rPAYMENT3,4);
	}
else {}
}

/*  THE FOLLOWING TWO FUNCTIONS CHECK THAT ALL NUMERIC VALUES ARE REAL NUMBER AND REMOVE DOUBLE DECIMALS */

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;
}

function doSum(a){ 
   a.value = check(a.value);
}

/** function roundPen */
/**						*/
/** This function rounds the payment to pennies */



/* FUNCTION CONFIRMS THAT THE VALUE ENTERED INTO A FIELD FALLS WITHIN THE PRE-DETERMINED MINIMUM AND MAXIMUM VALUES, AND DISPLAYS AN ERROR MESSAGE WITH THE ALLOWABLE NUMERIC RANGE FOR THE FIELD DATA IN A POP UP VALIDATION WINDOW */


/* 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,max,msage)
{
       doSum(input);
checkNumber(quest,input,min,max,msage);
} 


/* 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 computemortgagepayment(){
var testNum=0;
if((document.calcmortpay.mtgamnt.value == null || document.calcmortpay.mtgamnt.value.length==0) || (document.calcmortpay.mtgamnt.value*1.0 < 10000 || document.calcmortpay.mtgamnt.value*1.0 > 1000000)){
fixpro('Question 1: (Mortgage Amount)','Please enter a number between 10,000 and 1,000,000.');testNum=1;}

if((document.calcmortpay.intrate.value == null || document.calcmortpay.intrate.value.length == 0)|| (document.calcmortpay.intrate.value*1.0 < 2 || document.calcmortpay.intrate.value*1.0 > 25)){
fixpro('Question 2: (Mortgage Interest Rate)','Please enter a number between 2.0 and 25.0.');testNum=1;}

if((document.calcmortpay.amortperiod.value == null|| document.calcmortpay.amortperiod.value.length == 0)|| (document.calcmortpay.amortperiod.value*1.0 < 1|| document.calcmortpay.amortperiod.value*1.0 > 40) )
{fixpro('Question 3: (Amortization Period)','Please enter a number between 1 and 40.');testNum=1;}

if(testNum==0){compPay();}
}

function computeForm()
{
if(navigator.appVersion.substring(0,3) == 2.0 &&  navigator.appName.substring(0,8)=="Netscape" && navigator.appVersion.indexOf("Macintosh")>=0){
	setTimeout("compute(document.forms[0])",200);
}
else{compute(document.forms[0]);}
}


/* 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+'maxem.asp';
		}
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>OME</title>');
fix.document.write('</head><body bgcolor=ffffff><form name=fixer>');
fix.document.write('<font size=2 face="Arial, Helvetica" color=0000FF>'+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)}
}

/* CalcMortgagePayoff.asp */
pd = 'paydata'; /* SAVING CALCULATOR DATA */
numDays = 60;  /* DAYS UNTIL COOKIE EXPIRES (EG. 183 DAYS = 6 MONTHS) */


var p = "";

var m = "";

var tx = "";

var cf = "";


// Change the ref1 and ref2 to accomodate the data coming from Coldwell

var ref1 = "";

var ref2 = "";

var ref3 = "";

var ref4 = "";

var ref5 = "";

var ref6 = "";



/* FUNCTION THAT ADDS COMMAS TO THE CURRENCY VALUE (i.e. $1000000.00 -> $1,000,000.00) */

function addCommas(currencyValue){
	currencyValue = "" + currencyValue;
	var dollars = 0;
	var cents = "";
	if ( currencyValue.indexOf(",") != -1 ) {
		return currencyValue;
	} else if ( currencyValue.indexOf(".") != -1 ){
		dollars = currencyValue.substring(0,currencyValue.indexOf("."));
		cents = currencyValue.substring(currencyValue.indexOf("."),currencyValue.length);
	} else if ( currencyValue > 0 ){
		dollars = currencyValue;
	} else {
		return currencyValue;
	}
	var returnValue = "";
	for (var i=1;i<=dollars.length;i++){
		if (i % 3 == 1 && i != 1){
			returnValue = "," + returnValue;
		}
		returnValue = dollars.charAt(dollars.length - i) + returnValue;
	}
	returnValue += cents;
	return returnValue;
}


/*  THE FOLLOWING TWO FUNCTIONS CHECK THAT ALL NUMERIC VALUES ARE REAL NUMBER AND REMOVE DOUBLE DECIMALS */

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;
}

function doSum(a){
   a.value = check(a.value);
}

/* FUNCTION CONFIRMS THAT THE VALUE ENTERED INTO A FIELD FALLS WITHIN THE PRE-DETERMINED MINIMUM AND MAXIMUM VALUES, AND DISPLAYS AN ERROR MESSAGE WITH THE ALLOWABLE NUMERIC RANGE FOR THE FIELD DATA IN A POP UP VALIDATION WINDOW */


/* 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,max,msage)
{
       doSum(input);
	return (checkNumber(quest,input,min,max,msage));
}

/* RETURNS THE SELECTED INDEX VALUE OF SELECT LISTS IN THE CALCULATOR TO BE USED IN CALCULATIONS */
function getIndex(n){return n.selectedIndex;}

function calcRdefine(intrate,compound, freq){
 return Math.pow((1.0 + ((intrate/100)/compound)),(compound/freq))-1.0;}

function calcBal(mortgage,intrate,compound,freq,payment,term){
rdefine = calcRdefine(intrate,compound, freq);
return (mortgage*(Math.pow((1.0 + rdefine),(term)))) -  ((payment * ((Math.pow((1.0 + rdefine),(term))) - 1.0))/rdefine);
}

function changeDownpay(downpaypercent){

document.paycalc.DOWNPAY.value = document.paycalc.LISTING.value * downpaypercent;

}
/* ROUNDS OFF MONETARY NUMBERS TO TWO DECIMALS (PENNIES) */



/* THIS FUNCTION CALCULATES THE LOAN TO VALUE RATIO */
function LTVcalc(MORTGAGE, MORTGAGE2, APPRAISE){
return (MORTGAGE/APPRAISE) + (MORTGAGE2/APPRAISE);
}


function Ratios(PAY1, PAY2, HEAT, TAX, DEBT, INCOME){
return (PAY1/INCOME)+(PAY2/INCOME)+(HEAT/INCOME)+(TAX/INCOME)+(DEBT/INCOME);
}

/* THIS FUNCTION CALCULATES THE AMOUNT OF THE MORTGAGE BASED ON LISTING, DOWNPAYMENT AND LTV.  ADDS THE INSURANCE AMOUNT 
function calcMort(LISTING, DOWNPAY){

var MORTGAGE = (LISTING - DOWNPAY);
var LTV = LTVcalc(MORTGAGE,0,LISTING);

if(LTV<=.75){
	return MORTGAGE;
}
if(LTV>.75&&LTV<=.80){
	return MORTGAGE*1.0125;
}
if(LTV>.80&&LTV<=.85){
	return MORTGAGE*1.02;
}
if(LTV>.85&&LTV<=.90){
	return MORTGAGE*1.025;
}
if(LTV>.90){
	return MORTGAGE*1.0375;
}
}
*/
/* THIS FUNCTION CALCULATES THE MONTHLY MORTGAGE PAYMENT BASED ON THE USER'S INPUT */
function calcPay(MORTGAGE, AMORTYEARS, AMORTMONTHS, INRATE, COMPOUND, FREQ){
var compound = COMPOUND/12;
var monTime = (AMORTYEARS * 12) + (1 * AMORTMONTHS);
var RATE = (INRATE*1.0)/100;
var yrRate = RATE/COMPOUND;
var rdefine    = Math.pow((1.0 + yrRate),compound)-1.0;
var PAYMENT = (MORTGAGE*rdefine * (Math.pow((1.0 + rdefine),monTime)))/  ((Math.pow((1.0 + rdefine),monTime)) - 1.0);
if(FREQ==12){
	return PAYMENT;}
if(FREQ==26){
	return PAYMENT/2.0;}
if(FREQ==52){
	return PAYMENT/4.0;}
if(FREQ==24){
	var compound2 = COMPOUND/FREQ;
	var monTime2 = (AMORTYEARS * FREQ) + (AMORTMONTHS * 2);
	var rdefine2 = Math.pow((1.0 + yrRate),compound2)-1.0;
	var PAYMENT2 = (MORTGAGE*rdefine2 * (Math.pow((1.0 + rdefine2),monTime2)))/  ((Math.pow((1.0 + rdefine2),monTime2)) - 1.0);
	return PAYMENT2;
}
}

function retTerm(n){
if(n==0){return 0;}
if(n==1){return 6;}
if(n==2){return 12;}
if(n==3){return 24;}
if(n==4){return 36;}
if(n==5){return 60;}
if(n==6){return 84;}
if(n==7){return 120;}
}

function retFreq(n){
if(n==0){return 0;}
if(n==1){return 12;}
if(n==2){return 24;}
if(n==3){return 26;}
if(n==4){return 52;}
}

function calcTotal(MORTGAGE, LTV){
	if(LTV<=.75){
		return MORTGAGE;
	}
	if(LTV>.75&&LTV<=.80){
		return MORTGAGE*1.0125;
	}
	if(LTV>.80&&LTV<=.85){
		return MORTGAGE*1.02;
	}
	if(LTV>.85&&LTV<=.90){
		return MORTGAGE*1.025;
	}
	if(LTV>.90){
		return MORTGAGE*1.0375;
	}
}

/* SAVES COOKIE CONTAINING DATA TO BE USED IN AMORTIZATION SCHEDULE */
function quickCook(MTGAMT,AMORTYEARS,AMORTMONTHS,RATE,TERM,FREQ,WHATYEAR)
{
if (WHATYEAR && WHATYEAR == -1 ){
	var timeKindA = 0;
}else{
	WHATYEAR = 0;
	var timeKindA = 1;
}


var AMORTPMT = calcPay(MTGAMT, AMORTYEARS, AMORTMONTHS, RATE, 2, FREQ);
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 + '`' + ((AMORTYEARS*FREQ)+(AMORTMONTHS * FREQ/12)) + '`' + 0 + '`' + 0 + '`' + (TERM/12) + '`' + timeKindA + '`' + RATE*1.0/100 + '`' + 0 + '`' + WHATYEAR + '`' + 0 + '`' + 0 + '`' + 0 + '`' + 0 + '`' + 0;
document.cookie = pd +"=" + escape(pdData) +"; expires=" + expire.toGMTString()+"; path=/" ;
}

/* 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(form,year){

if((document.paycalc.LISTING.value == null || document.paycalc.LISTING.value.length == 0) || (document.paycalc.LISTING.value < 0)) {fixpro('Question 1: (Listing Amount)','Please enter a value for a home you are considering purchasing.');return false;}

if((document.paycalc.DOWNPAY.value == null || document.paycalc.DOWNPAY.value.length == 0) || (document.paycalc.DOWNPAY.value < 0)) {fixpro('Question 2: (Down Payment Amount)','Please enter a down payment amount or chose a percentage of the listing price.');return false;}

if(document.paycalc.desterm.selectedIndex == 0){
fixpro('Question 3: (Mortgage Term)','You have not answered this question, click on the PLEASE CHOOSE button to select your option.');return false;}

if(document.paycalc.PFREQ.selectedIndex == 0){
fixpro('Question 4: (Payment Frequency)','You have not answered this question, click on the PLEASE CHOOSE button to select your option.');return false;}

if((document.paycalc.NAMORTYEARS.value == null || document.paycalc.NAMORTYEARS.value.length == 0)|| (document.paycalc.NAMORTYEARS.value < 0 || document.paycalc.NAMORTYEARS.value > 40)){
fixpro('Question 5: (Amortization Period - Years)','Please enter a number between 0 and 40.');return false;}

if((document.paycalc.NAMORTMONTHS.value == null || document.paycalc.NAMORTMONTHS.value.length == 0)|| (document.paycalc.NAMORTMONTHS.value < 0 || document.paycalc.NAMORTMONTHS.value > 11)){
fixpro('Question 5: (Amortization Period - Months)','Please enter a number between 0 and 11.');return false;}

/*if(document.paycalc.NAMORTMONTHS.value < 6 && document.paycalc.NAMORTYEARS.value == 0){
fixpro('Question 6: (Amortization Period)','Please enter an Amortization Period of at least 6 months long.');return false;}

if((document.paycalc.mortamt.value == null|| document.paycalc.mortamt.value.length == 0)|| (document.paycalc.mortamt.value <10000|| document.paycalc.mortamt.value > 1000000) ){fixpro('Question 4: (Mortgage Amount)','Please enter a number between 10000 and 1000000.');return false;}*/

if((document.paycalc.rate.value == null || document.paycalc.rate.value.length == 0)||(document.paycalc.rate.value < 2 || document.paycalc.rate.value > 25))
{fixpro('Question 6: (Interest Rate)','Please enter a number between 2.0 and 25.0.');return false;}

if(retTerm(document.paycalc.desterm.selectedIndex) > (document.paycalc.NAMORTYEARS.value*12 + document.paycalc.NAMORTMONTHS.value)){
fixpro('Question 3: (Mortgage Term)','The selected mortgage term is greater than the amortization period entered.  Increase the amortization period or choose a shorter mortgage term.');return false;}

if(retTerm((document.paycalc.DOWNPAY.value / document.paycalc.LISTING.value) < 0.05)){fixpro('Question 2: (Down Payment)','The downpayment is less than 5% of the listing amount.  Increase the down payment amount, or decrease the listing price amount.');return false;}

listing = document.paycalc.LISTING.value;
downpay = document.paycalc.DOWNPAY.value;
term = retTerm(document.paycalc.desterm.selectedIndex);
freq = retFreq(document.paycalc.PFREQ.selectedIndex);
amortyears = document.paycalc.NAMORTYEARS.value;
amortmonths = document.paycalc.NAMORTMONTHS.value;
//mortgage = document.paycalc.mortamt.value;
intrate = document.paycalc.rate.value;

var netmortgage = listing - downpay;
var LTV = LTVcalc(netmortgage,0,listing);
var grossmortgage = calcTotal(netmortgage,LTV);
var insuranceamount = (grossmortgage-netmortgage);
var insurancepercent = (insuranceamount/netmortgage);


var payment = calcPay(grossmortgage, amortyears, amortmonths, intrate, 2, freq);

var intFact = Math.pow((1+(intrate/100)/2),(2/freq))-1;


// need to determin the number of payments so we can correctly determin the Amortization period and the remaing balance
var principalBal = grossmortgage;
var aYear = 0;
var annualCount = 1;

var year1 = 0;
var year2 = 0;
var year3 = 0;
var year5 = 0;
var year10 = 0;

for(payAdd = 1; principalBal>0; payAdd++){

	var checkLump = 0;

	var printPayments =Math.ceil(1/freq);//Expressed in Years    
	var printYear = printPayments*freq;//Expressed in Payments



	//SET FLAG IF THIS PAYMENT IS AN ANNIVERSARY
	if((payAdd-1)/Math.floor(freq)==annualCount){
		var aYear = 1;}

	//INTEREST AND PRINCIPAL PAYMENT
	var interestPayment = roundPen(principalBal * intFact)*1.0;
	var principalPayment =  roundPen(payment - interestPayment)*1.0;
	var checkBal = (principalPayment > principalBal) ? principalBal : principalPayment;
	var principalBal =  roundPen(principalBal-checkBal)*1.0;

	//LUMPSUM PAYMENT IF REQUESTED
	if(aYear==1&&0>=annualCount){
		var checkLump = (lumpAmt > principalBal) ? principalBal : lumpAmt;
		var principalBal = roundPen(principalBal - checkLump)*1.0;}

	//ELIMINATES BALANCE (ADDS IT TO PRINCIPAL PAID) IF LESS THAN HALF
	if(principalBal<((interestPayment+principalPayment)/2)){
		var checkBal = checkBal+principalBal;
		var principalBal = 0;}

	//RESETS THE ANNIVERSARY
	if(aYear==1){
		var annualCount = annualCount+1;
		var aYear = 0;}


	if((payAdd/freq) == 1){
		year1 = principalBal;
	} else if((payAdd/freq) == 2){
		year2 = principalBal;
	} else if((payAdd/freq) == 3){
		year3 = principalBal;
	} else if((payAdd/freq) == 5){
		year5 = principalBal;
	} else if((payAdd/freq) == 10){
		year10 = principalBal;
	}

}


var totalYears = (payAdd-1)/freq;

form.newamortyears.value = Math.floor(totalYears);;
form.newamortmonths.value = (Math.round((totalYears % 1)*120)/10);



/*
form.mainpay.value = '$' + addCommas(roundPen(payment));
form.mainyr1.value = '$' + addCommas(roundPen(calcBal(mortgage,intrate,2,freq,payment,(12/(12/freq)))));
form.mainyr2.value = '$' + addCommas(roundPen(calcBal(mortgage,intrate,2,freq,payment,(24/(12/freq)))));
form.mainyr3.value = '$' + addCommas(roundPen(calcBal(mortgage,intrate,2,freq,payment,(36/(12/freq)))));
form.mainyr5.value = '$' + addCommas(roundPen(calcBal(mortgage,intrate,2,freq,payment,(60/(12/freq)))));
form.mainyr10.value = '$' + addCommas(roundPen(calcBal(mortgage,intrate,2,freq,payment,(120/(12/freq)))));
*/

form.mortamt.value = '$' + addCommas(roundPen(grossmortgage));
form.insurancepercent.value = (roundPen(insurancepercent*100)) + '%';
form.insuranceamount.value = '$' + addCommas(roundPen(insuranceamount));
form.mainpay.value = '$' + addCommas(roundPen(payment));
form.mainyr1.value = '$' + addCommas(roundPen(year1));
form.mainyr2.value = '$' + addCommas(roundPen(year2));
form.mainyr3.value = '$' + addCommas(roundPen(year3));
form.mainyr5.value = '$' + addCommas(roundPen(year5));
form.mainyr10.value = '$' + addCommas(roundPen(year10));


quickCook(grossmortgage,amortyears,amortmonths,intrate,term,freq,year);
return true;
}



function StringArray(n)
{
this.length = n;
for (var i = 1; i <= n; i++)
this[i] = ''
return this
}

/* LOADS THE AMORTIZATION SCHEDULE FILE ONCE IT IS CERTAIN THAT ALL VALUES ENTERED INTO THE FORM ARE CORRECT. */
function amortLink(whatyear){
	if(navigator.appVersion.substring(0,3) == 2.0 &&  navigator.appName.substring(0,8)=="Netscape" && (navigator.appVersion.indexOf("Macintosh")>=0||navigator.appVersion.indexOf("PowerPC")>=0)){
		var timere = compute(document.forms[0],whatyear);
		if(timere==true){
			setTimeout("document.form2.submit()",100);
		}
	}else{
		if(compute(document.forms[0],whatyear)==true){
			document.form2.submit();
		}
	}
}

function amortonLink()
{
if(compute(document.forms[0])==true){document.form2.submit();return false;}
else{return false;}
}

function linkToQual ()
{

p = document.paycalc.LISTING.value;
m = (p - document.paycalc.DOWNPAY.value);
f = document.paycalc.PFREQ.value;
a = document.paycalc.NAMORTYEARS.value;
prod = document.paycalc.desterm.value;

location = 'FinanceOptionsApply1.asp?p='+ p +'&m='+ m +'&tx='+ tx +'&f='+ f +'&a='+ a +'&cf='+ cf+'&prod='+prod+'&ref1='+ref1+'&ref2='+ref2+'&ref3='+ref3+'&ref4='+ ref4 +'&ref5='+ref5+'&ref6='+ ref6;

}

function payBal()
{
//if (document.paycalc.LISTING.value == ""){
//	return;// get out of calculating if no info has been passed from listing
//}
if(navigator.appVersion.substring(0,3) == 2.0 &&  navigator.appName.substring(0,8)=="Netscape" && navigator.appVersion.indexOf("Macintosh")>=0){
	setTimeout("compute(document.forms[0])",200);
}
else{compute(document.forms[0]);}
}

/* CalcRentBuy.asp */

rb = 'rentbuydata';
numDays = 60;  /* DAYS UNTIL COOKIE EXPIRES (EG. 183 DAYS = 6 MONTHS) */

function calcMaxRentBuy(){
var error=0;


if((document.rentcalc.monpay.value == null || document.rentcalc.monpay.value.length == 0) || (document.rentcalc.monpay.value < 200 || document.rentcalc.monpay.value > 10000)){
error=1;
fixpro('Question 1: (Monthly Payment)','Please enter a number between 200 and 10000.');}


if (error==0) {
if ((document.rentcalc.downp.value == null || document.rentcalc.downp.value.length == 0) || (document.rentcalc.downp.value < 2000 || document.rentcalc.downp.value > 1000000)){
error=1;
fixpro('Question 2: (Downpayment)','Please enter a number between 2000 and 1000000.');}


}
if (error==0) {
if ((document.rentcalc.protax.value == null || document.rentcalc.protax.value.length == 0) || (document.rentcalc.protax.value < 300 || document.rentcalc.protax.value > 10000)){
var error=1;
fixpro('Question 3: (Property Taxes)','Please enter a number between 300 and 10000.');}

}
if (error==0) {
if ((document.rentcalc.rate.value == null || document.rentcalc.rate.value.length == 0) || (document.rentcalc.rate.value < 2  || document.rentcalc.rate.value > 25)){
var error=1;
fixpro('Question 4: (Interest Rate)','Please enter a number between 2 and 25.');}
}

if (error==0) {

if(document.rentcalc.incr.selectedIndex == 0){
var error=1;
fixpro('Question 5: (Home Value Increase)','You have not answered this question, click on the CHOOSE button to select your option.');}

}

if (error==0) {
if ((document.rentcalc.rent.value < 0  || document.rentcalc.rent.value.length == 0) || (document.rentcalc.rent.value < 0  || document.rentcalc.rent.value > 5000)){
var error=1;
fixpro('Question 6: (Monthly Rent)','Please enter a number between 0 and 5000.');}

}

if (error==0) {
if(document.rentcalc.compare.selectedIndex == 0){
var error=1;
fixpro('Question 7: (Years of Comparison)','You have not answered this question, click on the CHOOSE button to select your option.');}

}

if (error==0) {     
var RATE = document.rentcalc.rate.value/100;
var downp = document.rentcalc.downp.value*1.0;
var tax = document.rentcalc.protax.value;
var incr = document.rentcalc.incr[document.rentcalc.incr.selectedIndex].value;
var monpay = document.rentcalc.monpay.value;
var rent = document.rentcalc.rent.value;
var compare = document.rentcalc.compare[document.rentcalc.compare.selectedIndex].value;

var expire = new Date ();
expire.setTime (expire.getTime() + (numDays * 24 * 3600000));/* 2 MONTHS */
var rbData = " ";
var rbData = rbData + '`' + RATE + '`' + downp + '`' + tax + '`' + incr + '`' + monpay + '`' + rent + '`' + compare;
document.cookie = rb +"=" + escape(rbData) +"; expires=" + expire.toGMTString()+"; path=/" ;

if(versTest() == true||nineTest()==true){	
	sumW=window.open('rentbuyresults.asp','Results','toolbar=no,location=no,directories=no,status=no,menubar=yes,scrollbars=yes,resizable=yes,width=550,height=300');
	if(navigator.appName.substring(0,8) == "Netscape"){
		sumW.focus();
	}
}
else{

	window.open('rentbuyresults.asp', 'Results', 'toolbar=no,location=no,directories=no,status=no,menubar=yes,scrollbars=yes,resizable=yes,width=550,height=300');
	//location.href='rentbuyresults.asp';
}

}
else {}
}

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.asp';
		}
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=0000FF>'+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)}
}


/* CalcFinanceOptions.asp */
/*__________________GLOBAL VARIABLES__________________*/

/* DECLARE GLOBAL VARIABLES */
financialinfo = 'qualdata'; /* SAVING QUALIFIER DATA */
numDays       = 60;  /* DAYS UNTIL COOKIE EXPIRES (EG. 183 DAYS = 6 MONTHS) */
lendinfo = 'lendata'; /* QUALIFIER AND LENDER DATA COOKIE */

/*__________________DATA VALIDATION__________________*/

FVa = new makeArray2(25,4)
FVa = new makeArray2(25,4)
/* FIELD VALIDATION ON SUBMIT */
FVa[1][3] = "Purpose of Mortgage";
FVa[2][3] = "Mortgage Product";
FVa[3][3] = "Payment Frequency";

FVa[4][1] = 1; /* MINIMUM */
FVa[4][2] = 40; /* MAXIMUM */
FVa[4][3] = "Amortization Period";  /* TITLE */

FVa[5][3] = "Five Percent Down Program";

FVa[6][1] = 10000;
FVa[6][2] = 1000000;
FVa[6][3] = "Mortgage Amount";

FVa[7][1] = 100;
FVa[7][2] = 50000;
FVa[7][3] = "Property Taxes";

FVa[8][1] = 0;
FVa[8][2] = 5000;
FVa[8][3] = "Monthly Debt Payments";

FVa[9][1] = 20;
FVa[9][2] = 1500;
FVa[9][3] = "Heating Costs/Condo Fees";

FVa[10][1] = 0;
FVa[10][2] = 500000;
FVa[10][3] = "Secondary Financing";

FVa[11][1] = 0;
FVa[11][2] = 5000;
FVa[11][3] = "Secondary Payments";

FVa[12][1] = 10000;
FVa[12][2] = 1000000;
FVa[12][3] = "Family Income";

FVa[13][1] = 20000;
FVa[13][2] = 10000000;
FVa[13][3] = "Value of Property";

FVa[14][3] = "Judgement or Collection";

FVa[15][3] = "Lateness of Credit Cards";

FVa[16][1] = 0;
FVa[16][2] = 20;
FVa[16][3] = "Bankruptcy Discharge";

FVa[17][1] = 500;
FVa[17][2] = 20000;
FVa[17][3] = "Square Footage";

FVa[18][3] = "Occupancy";
FVa[19][3] = "Usage";
FVa[20][3] = "UFFI";
FVa[21][3] = "Property Location";
FVa[22][3]= "Water/Sewage";
FVa[23][3]= "Property Province";


function makeArray2(X,Y)
{
var Count;
this.length = X;
for (var Count=1; Count <= X; Count++)
this[Count] = new makeArray(Y);
}

function makeArray(NumElements)
{
var Count;
this.length = NumElements;
for (Count=1; Count<=NumElements; Count++)
this[Count] = 0;
return(this);
}


/* OPENS A WINDOW DISPLAYING A VALIDATION MESSAGE IF THERE IS AN ERROR IN THE USER'S ENTRY OR IF THEY HAVE ATTEMPTED TO CLICK QUALIFY ME AND THERE ARE STILL SOME FIELDS WHICH HAVE BEEN LEFT EMPTY */
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+'qualem.asp';
		}
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>OME</title>');
fix.document.write('</head><body bgcolor=ffffff><form name=fixer>');
fix.document.write('<font size=2 face="Arial, Helvetica" color=0000FF>'+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 CONFIRMS THAT THE VALUE ENTERED INTO A FIELD FALLS WITHING THE PRE-DETERMINED MINIMUM AND MAXIMUM VALUES, AND DISPLAYS AN ERROR MESSAGE WITH THE ALLOWABLE NUMERIC RANGE FOR THE FIELD DATA IN A POP UP VALIDATION WINDOW */
function checkNumber(quest,input, min, max, msg)
{   
var str = input.value;
var num = 0+str;
if (num < min || max < num) {

var sendn = "Question " + quest + ": ("+ msg + ")";
    var sendq = "You have entered " + input.value + ". Please enter a number between " + min + " and " + max + ".";
  fixpro(sendn,sendq);
return false;
}
input.value = str;
return true;
}

/* CALLS UPON THE FUNCTION WHICH CALCULATES 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)
{
var lookdv = FVa[quest];
var input = document.qual.elements[quest];
var min = lookdv[1];
var max = lookdv[2];
var msage = lookdv[3];
doSum(input);
var one = checkNumber(quest,input,min,max,msage);
return one;        
}

/* CALLS FUNCTION TO OPEN A POP UP VALIDATION WINDOW WHEN THE USER CLICKS QUALIFY ME AND A SELECT LIST HAS NOT BEEN COMPLETED BY THE USER */
function chksel(num)
{
var lookdv = FVa[num];
var msage = lookdv[3];
fixpro('Question '+ num + ': ('+ msage + ')','You have not answered this question, click on the PLEASE CHOOSE button to select your option.');
}

/*__________________COOKIE FUNCTIONS__________________*/

/*  REMOVES SPACES AUTOMATICALLY ENTERED INTO THE FORM WHEN THE QUALIFIER IS RELOADED WITH THE SAVED DATA IF THERE WAS NOT A VALUE ENTERED INTO THAT FIELD WHEN THE COOKIE WAS ORIGINALLY STORED */
function qualspa()
{
var cookSpace = " ";
var remSpace = "";
var field = document.qual.elements.length;
for (i = 0; i<field ; i++)
{
if (document.qual.elements[i].value == cookSpace)
{document.qual.elements[i].value = remSpace;}}
}

/* STORES ALL THE VALUES ENTERED INTO THE QUALIFIER IN AN HTTP COOKIE WHEN THE USER CLICKS ON STORE INFO.  IF THERE IS A TEXT FIELD WITH NO VALUE ENTERED, A SPACE IS SAVES AS THE VALUE OF THAT FIELD */
function Writeomedata () 
{
var iVal=23;
var expire = new Date ();
expire.setTime (expire.getTime() + (numDays * 24 * 3600000));/* 2 MONTHS */
var ALLDATA = " " ;
z=0;
for(b=1;b<=iVal;b++)
{p=0;
p2=p+b;
if((document.qual.elements[p2].name.indexOf('_')) != -1){
if(document.qual.elements[p2].selectedIndex != "0"){
var z = z+1;}}
else
{if(checknull(document.qual.elements[p2].value) != " ")
{var z = z+1;}}}
if(z>0)
{for(i=1;i<=iVal;i++)
{x=0;
x2 = x+i;
if((document.qual.elements[x2].name.indexOf('_')) != -1){
ALLDATA = ALLDATA + '`' + document.qual.elements[x2].selectedIndex;}
else
{ALLDATA = ALLDATA + '`' + checknull (document.qual.elements[x2].value);}}
document.cookie = financialinfo +"=" + escape(ALLDATA) +"; expires=" + expire.toGMTString()+"; path=/" ;
}
}

/* RELOADS ALL VALUES FROM THE STORED COOKIE INTO THE APPROPRIATE FIELDS IN THE QUALIFIER FORM WHEN THE RELOAD INFO BUTTON IS CLICKED.  CALLS UPON THE FUNCTION TO DELETE THE SPACES WHICH WERE SAVED BY THE SAVE FUNCTION IF THERE WERE NO VALUES ENTERED INTO THE FIELDS */
function UpdateForm () 
{
if(GetCookie(financialinfo)!=" "){
var iVal=23;
var ALLDATAVALUE =  GetCookie(financialinfo);
for(i=0;i<=iVal;i++)
{x=0;
x2=x+i;
if((document.qual.elements[x2].name.indexOf('_'))!= -1)
{if(parseCookie(ALLDATAVALUE,i) != " ")
{document.qual.elements[x2].selectedIndex = parseCookie(ALLDATAVALUE,i);}}
else
{document.qual.elements[x2].value = parseCookie(ALLDATAVALUE,i);}}
qualspa();
}
else{fixpro('You do not have any Stored Qualifier data.',' ');}
}

/* RETURNS A SPACE IF THERE IS NO ENTRY IN THE FIELD WHEN THE USER CLICKS STORE INFO */
function checknull(theEntry) 
{
if (theEntry == "") return " "; 
return theEntry; 
}

/* GET THE COOKIE REQUIRED FROM A LIST OF POSSIBLE COOKIES */
function GetCookie (CookieName) 
{
var cname = CookieName + "=";
var i = 0;
while (i < document.cookie.length) {
var j = i + cname.length;
if (document.cookie.substring(i, j) == cname){
var leng = document.cookie.indexOf (";", j);
if (leng == -1) leng = document.cookie.length;
return unescape(document.cookie.substring(j, leng));
}
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return " ";
}

/* DELETE THE COOKIE INDICATED BY THE VARIABLE NAME PASSED TO THIS FUNCTION */
function DelEatCookie (name) 
{
var expire = new Date();
expire.setTime (expire.getTime() - 2 * 86400001);/* -2 DAYS AGO-STALE COOKIE */
document.cookie = name + "=*; expires=" + expire.toGMTString();
}

/* PARSES THE COOKIE REQUIRED RETURNING THE REQUESTED VALUE - THE VALUE WHICH IS AT THE REQUESTED POSITION WITHIN THE SPECIFIED COOKIE */
function parseCookie(cookieValue, citem) 
{
var indx = 0, citemlen =0;
if ( cookieValue == null ) return " "/* DATA HAS EXPIRED OR NEVER ENTERED. */
if ( cookieValue == " "  ) return " "/* DATA HAS EXPIRED OR NEVER ENTERED. */
for(var i=0; i < citem; i++) {
indx = ( citem==0 )?0:cookieValue.indexOf("`", indx + 1)+1;}
citemlen=(cookieValue.indexOf("`",indx)>0)
?cookieValue.indexOf("`", indx+1):cookieValue.length;
return cookieValue.substring(indx, citemlen);
}


/*__________________HELP__________________*/

msgtitle = new StringArray(22)
msgtitle['UFFIX'] = 'UFFI';
msgtitle['HIRATIO'] = 'Mortgage Amount';
msgtitle['TAXES'] = 'Property Taxes';
msgtitle['DEBT']     = 'Loans/Credit Cards';
msgtitle['CONDO']       = 'Condo and Heating Costs';
msgtitle['SECPAY']   = 'Payment for Secondary Financing';
msgtitle['SECMTG']     = 'Amount of Secondary Financing';
msgtitle['INCOME']     = 'Provable Income';
msgtitle['APPRAISE']     = 'Value of Property/Home';
msgtitle['FHLIP']     = '5% Down Program';
msgtitle['OCCU']     = 'Occupancy of Property';
msgtitle['MISS']     = 'Purpose of Loan';
msgtitle['MISS2']     = 'Judgement or Collection';
msgtitle['BANK']     = 'Status of Bankruptcy';
msgtitle['LATE']     = 'Late on Credit Cards or Loans';
msgtitle['PROX']     = 'Property Location/Sewage & Water Facilities';
msgtitle['USAGE']     =  'Property Usage';
msgtitle['SQUARE']     = 'Square Footage';
msgtitle['FPAY']     = 'Payment Frequency';
msgtitle['NAMORT']     = 'Amortization Period';
msgtitle['TERMD']     = 'Preferred Mortgage Type';
msgtitle['PROV']     = 'Location of Property to be Financed';

/* OPENS HELP WINDOW DISPLAYING THE APPROPRIATE HELP MESSAGE FROM THE ARRAY ACCORDING TO THE VALUES PASSED TO THIS FUNCTION FROM THE HELP BUTTON IN THE QUALIFIER FORM */
function message (button)
{
//var linkit = "../help/"+button;
var linkit = button;
if(versTest() == true || nineTest() == true){
		
helpwindow = 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")
{helpwindow.focus();}
}
else{location.href=linkit;}
}

/* ARRAY OF ALL MESSAGES WHICH APPEAR IN THE STATUS BAR OF THE BROWSER WINDOW WHEN THE USER'S MOUSE MOVES OVER A LINK OR LINKABLE GRAPHIC */
stat = new StringArray(25)
stat['MISSW'] = 'Help on Purpose Of Mortgage'
stat['LATEW'] = 'Late'
stat['HIRATIOW'] = 'Help on Mortgage Amount'
stat['TAXESW'] = 'Help on Annual Property Taxes'
stat['DEBTW'] = 'Help on Minimum Monthly Payments for Loans/Credit Cards'
stat['CONDOW'] = 'Help on Monthly Heating Costs/Condo Fees'
stat['SECPAYW'] = 'Help on Monthly Payment for Secondary Financing'
stat['SECMTGW'] = 'Help on Secondary Financing Amount'
stat['INCOMEW'] = 'Help on Annual Family Income'
stat['APPRAISEW'] = 'Help on Value of Property/Home'
stat['FHLIPW'] = 'Help on 5% Down Program'
stat['MISS2W'] = 'Help on Judgement or Collection'
stat['LATE2W'] = 'Help on Lateness of Payments'
stat['BANKW'] = 'Help on Years Since Bankruptcy Discharged'
stat['SQUAREW'] = 'Help on Square Footage of Home'
stat['OCCUW'] = 'Help on Occupancy of Property'
stat['USAGEW'] = 'Help on Usage of Property'
stat['UFFIXW'] = 'Help on Insulated With UFFI'
stat['PROXW'] = 'Help on Property Location'
stat['PROX2W'] = 'Help on Water/Sewage Facilities'
stat['APPROVEW'] = 'See which lenders will qualify you'
stat['CLEARW'] = 'Reset the qualifier'
stat['TERMD'] = 'Help on Mortgage Product'
stat['FPAY'] = 'Help on Payment Frequency'
stat['NAMORT'] = 'Help on Amortization Period'
stat['PROVW'] = 'Help on Property\'s Province'

/* THIS FUNCTION TAKES THE MESSAGE FROM THE ARRAY OF STATUS BAR MESSAGES AND PUTS IT IN THE STATUS BAR OF THE BROWSER WINDOW. THE MESSAGE TO DISPLAY IS DETERMINED BY THE VALUE THAT IS PASSED FROM THE LINK WITHIN THE QUALIFIER FORM */
function stats(n)
{
parent.status = stat[n];
}




/*__________________DISPLAY RESULTS__________________*/





/* CHECKS FOR PRESENCE OF DATA IN ALL FIELDS OF THE QUALIFIER WHEN QUALIFY ME IS CLICKED, IF ALL FIELDS HAVE BEEN COMPLETE, THE LENDER RESULTS WINDOW IS OPENED AND RESULT VALUES ARE DISPLAYED, LENDERS ARE DISPLAYED RANDOMLY ACCORDING TO NUMBERS RETURNED IN THE RANDOMIZING FUNCTION ABOVE.  THIS FUNCTION ALSO DETERMINES WHICH LENDERS TO DISPLAY IN THE LENDER RESULTS WINDOW BASED ON THE STATUS OF THE LOCATION OF PROPERTY SELECT LIST WITHIN THE QUALIFIER FORM */

function UnderWrite(){

for(b=1;b<=23;b++)
{
	lookdv = FVa[b];
	if(document.qual.elements[b].name.indexOf('_') != -1){
		if(document.qual.elements[b].selectedIndex== "0"){
			chksel(b);return false;}
	}
	else
	{
		if(document.qual.elements[b].value ==null || 	
		document.qual.elements[b].value.length==0)
{fixpro('Question '+b+': ('+lookdv[3]+')','Please enter a number between '+lookdv[1]+' and '+lookdv[2]+'.');return false;}
			else
			{
			var chkIt = 	
			computeField(b);
			if(chkIt==false){return false;}
		}
	}
}
Writeomedata();
return true;

}
 
 function underLink()
 {
 	if(navigator.appVersion.substring(0,3) == 2.0 &&  navigator.appName.substring(0,8)=="Netscape" && (navigator.appVersion.indexOf("Macintosh")>=0||navigator.appVersion.indexOf("PowerPC")>=0)){
		var timere = UnderWrite();
		if(timere==true){setTimeout("document.form2.submit()",100);}
		}
	else{
		//if(UnderWrite()==true){document.form2.submit();}
		if(UnderWrite()==true){
			//window.open('financeoptionsresults.asp', 'Results', 'toolbar=no,location=no,directories=no,status=no,menubar=yes,scrollbars=yes,resizable=yes,width=550,height=300');
			location.href="financeoptionsresults.asp"
		}
	}
 }

function underonLink()
{
if(UnderWrite()==true){document.form2.submit();return false;}
else{return false;}
}
