    //  LOAN.JS
    //  Date: 5-18-00
    
    function LoanEstimate(f, iType)
    {                     
       //  Check to make sure that the necessary fields are not BLANK!
       //  Loan Amount
       if ( f.LoanAmount.value == "" || f.LoanAmount.value == 0 ) {
            alert("Type a number greater than zero in the loan amount box.");
            f.LoanAmount.focus();
            return;
       }
       if ( ValidData(f.LoanAmount,0) == 0 ) {
            alert("Use only numbers (0-9); don't use letters or any special characters (for example, #).");
            f.LoanAmount.focus();
            return;
       }

       //  Interest Rate
       if ( f.InterestRate.value == "" || f.InterestRate.value == 0 ) {
            alert("Type a number greater than zero in the interest rate box.");
            f.InterestRate.focus();
            return;
       }
       if ( ValidData(f.InterestRate,1) == 0 ) {
            alert("Use only numbers (0-9); don't use letters or any special characters (for example, #).");
            f.InterestRate.focus();
            return;
       }

       //  Length of Loan       
       if ( f.Years.value == "" || f.Years.value == 0) {
            alert("Type a number greater than zero in the length of loan box.");
            f.Years.focus();
            return;
       }
       if ( ValidData(f.Years,1) == 0 ) {
            alert("Use only numbers (0-9); don't use letters or any special characters (for example, #).");
            f.Years.focus();
            return;
       }
       // Remove commas from Loan Amount
       var loanamount = RemoveCommas(f.LoanAmount.value);       

       var iMonthlyPayment = CalcMonthlyPayment( loanamount, f.InterestRate.value, f.Years.value );
       var iTotalPaid = iMonthlyPayment * 12 * f.Years.value;

       // Get values to two decimal places
       iMonthlyPayment = Math.floor(iMonthlyPayment) + Math.floor((iMonthlyPayment - Math.floor(iMonthlyPayment)) * 100) / 100;
       iTotalPaid = Math.floor(iTotalPaid) + Math.floor((iTotalPaid - Math.floor(iTotalPaid)) * 100) / 100;

       var strMonth = FormatValue( iMonthlyPayment );
       var strTot = FormatValue( iTotalPaid );

       // Are we Using IE or Nav
       if ( iType == 1 ) {
            var objText;        
            objText = document.all.item("monpay");
            objText.innerText = strMonth;
            objText = document.all.item("totpay");
            objText.innerText = strTot;
       }
       else {
            f.monpay.value = strMonth;            
            f.totpay.value = strTot;
       }	     
    }

    function CalcMonthlyPayment( iLoan, fInterestRate, iYears)
    {  
       var fInterest = ( (fInterestRate / 100) / 12 ) + 1.0;
       var fpvifa = Math.pow( fInterest, (iYears * 12) );

       fpvifa = 1 - ( 1 / fpvifa );
       fpvifa = ( fpvifa / ( fInterest - 1 ) );
       return ( iLoan / fpvifa);
    }

    function FormatValue( iValue ) 
    {
       //  Create String Value
       var oldStr = new String(iValue);
       var newStr = new String();
       var i = 1;
       var iCounter = 0;
       var iDiff;
       
       //  Look for Decimal point
       if ( -1 != oldStr.indexOf(".") ) {
            //  Check for digits behind the decimal point
            iDiff = oldStr.length - oldStr.indexOf(".");
            if ( 1 == iDiff ) {             
                 newStr = ".00";
            }
            else if ( 2 == iDiff )
                 {  
                     newStr = "0";
                     newStr = oldStr.substring( oldStr.indexOf("."), oldStr.length) + newStr;
                 }
                 else
                     newStr = oldStr.substring( oldStr.indexOf("."), oldStr.length); 
            oldStr = oldStr.substring(0, oldStr.indexOf("."));
       }
       //  Format New String
       while ( i <= oldStr.length )
       {
	   //  Get Character
           var cLetter = oldStr.charAt(oldStr.length-i);
           newStr = cLetter + newStr;
           iCounter++;
           if ( ( iCounter == 3 ) && (( oldStr.length - i ) > 0 ) ) 
           {
                iCounter = 0;
                newStr = "," + newStr;
           }
           i++;
       }
       return ( newStr );        
    }

    function ValidData(objData,iFlag)
    {
       // Convert Data to a string object
       var strData = new String(objData.value);

       var i = 0;
       if ( iFlag ) 
            var strDigits = new String("0123456789.");
       else
            var strDigits = new String("0123456789.,"); 

       while( i < strData.length ) 
       {
       	   if ( -1 == strDigits.indexOf(strData.charAt(i)) )
                 return 0;
           i = i + 1;
       }

       return 1;
    }
    
    function RemoveCommas( iLoan )    
    {
       //  Create String Value
       var oldStr = new String(iLoan);
       var newStr = new String();
       var i = 0;
       var iCounter = 0;

       while ( i <= oldStr.length )
       {
	   //  Get Character
           var cLetter = oldStr.charAt(oldStr.length-i);
           if ( cLetter != "," )
           {
                if ( iCounter )       
                     newStr = cLetter + newStr;
                else
                     newStr = cLetter;
                iCounter++;
           }
          
           i++;
       }
       return ( newStr );        
    }
