//<!- hide the script

function FormatNumber(Number,Decimals)
{
 // **********************************************************
 // Placed in the public domain by Affordable Production Tools
 // March 21, 1998
 // Web site: http://www.apt.simplenet.com
 // **********************************************************
 Number = "" + Number         // Force argument to string.
 Decimals = "" + Decimals     // Force argument to string.
 var OriginalNumber = Number  // Save for number too large.
 var Sign = 1
 var Pad = ""
 var Count = 0
 // If no number passed, force number to 0.
 if(parseFloat(Number)){
  Number = parseFloat(Number)} else {
  Number = 0}
 // If no decimals passed, default decimals to 2.
 if((parseInt(Decimals,10)) || (parseInt(Decimals,10) == 0)){
  Decimals = parseInt(Decimals,10)} else {
  Decimals = 2}
 if(Number < 0)
 {
  Sign = -1         // Remember sign of Number.
  Number *= Sign    // Force absolute value of Number.
 }
 if(Decimals < 0)
  Decimals *= -1    // Force absolute value of Decimals.
 // Next, convert number to rounded integer and force to string value.
 // (Number contains 1 extra digit used to force rounding)
 Number = "" + Math.floor(Number * Math.pow(10,Decimals + 1) + 5)
 if((Number.substring(1,2) == '.')||(Number=='NaN'))
  return(OriginalNumber) // Number too large to format as specified.
 // If length of Number is less than number of decimals requested +1,
 // pad with zeros to requested length.
 if(Number.length < Decimals +1) // Construct pad string.
 {
  for(Count = Number.length; Count <= Decimals; Count++)
   Pad += "0"
 }
 Number = Pad + Number // Pad number as needed.
 if(Decimals == 0){
  // Drop extra digit -- Number is formatted.
  Number = Number.substring(0, Number.length -1)} else {
  // Or, format number with decimal point and drop extra decimal digit.
 Number = Number.substring(0,Number.length - Decimals -1) +
          "." +
          Number.substring(Number.length - Decimals -1,
          Number.length -1)}
 if(Sign == -1)
  Number = "-" + Number  // Set sign of number.
 return(Number)
}

//Main function used to calculate the repayments
function CalRepay(Amount,InterestRate,I)
{
var Payment
 Payment = (Amount*InterestRate*I)/(1200*(I-1));
 return(Payment);
}

//Calculates the gross interest rate
function GrossRate(InterestRate)
{
var Gross
 Gross = (InterestRate/100)+1;
 return(Gross);
}

//Returns M to the power T
function CalI(M,T)
{
 return(Math.pow(M,T));
}

function calculatepayments(form)
{

//check to see if they've selected a mortgage type
    if (form.HPratemenu.value ==0){
         alert("Please select a mortgage type.")
	return false}


var staffsmortgage; //Holds mortgage amount
var charnumber; //Temp variable to convert numbers
var InterestRate; //Holds
var Years; //Holds Term of the mortgage
var MortgagePayments; 
var InterestOnly;
var NetOnly

//Calculates the Term of the mortgage in years
 charnumber=form.term.value;
 Years=eval(CheckNumber(charnumber));
 charnumber=form.lenloanmonth.value;
 Months=eval(CheckNumber(charnumber));
 Years=Years+(Months/12);

//Gets mortgage amount
 charnumber=form.staffsmortgage.value;
 staffsmortgage=eval(CheckNumber(charnumber));

//Gets interest rate
 charnumber=form.percentagerate.value;
 InterestRate=eval(CheckNumber(charnumber));

//Calculates the Gross and net interest rates
var GrRate;
var NRate;
 GrRate = InterestRate;


//Displays the mortgage amount
 form.MortgageInputted.value=FormatNumber(staffsmortgage,2);

 var amountMiras
 var amountNoMiras
 var Total
  
  //Calculates and displays Repayment Payments (month) using CalI and GrossRate functions.
  //This calculates the Gross Repayment Payments (month) ie, with out any miras.
  MortgagePayments = CalRepay(staffsmortgage,InterestRate,CalI(GrossRate(InterestRate),Years));
  form.MortgagePayments.value=FormatNumber(MortgagePayments,2);  
   
  Total = CalRepay(staffsmortgage,GrRate,CalI(GrossRate(InterestRate),Years));
  
  //Calculates Interest Only Payments (month), ie with out miras
  InterestOnly=((staffsmortgage*GrRate)/12)/100;
  form.InterestOnly.value=FormatNumber(InterestOnly,2);
  window.location="#Repay";
 
}

//sets the percentage rate box equal to the value in the pull down menu
function SelRate(form)
{
form.percentagerate.value = form.HPratemenu.value

//updated :  23-11-06
//refreshing the mortgages paytment values
form.MortgageInputted.value = "";
form.MortgagePayments.value = "";
form.InterestOnly.value 	= "";


}

function emptyPayments(form){	
//updated :  23-11-06
//refreshing the mortgages paytment values
form.MortgageInputted.value = "";
form.MortgagePayments.value = "";
form.InterestOnly.value 	= "";
}

function CheckNumber(charnumber) 
{
newstring=""
for (var i = 0; i < charnumber.length; i++) 
{
var dig = charnumber.substring(i, i+1)
if (dig < "0" || dig > "9")
 {
 if (dig != ".")
 {
dig=""
 }

 }
newstring=newstring + dig
 }
 return newstring
}

// ***********************************************************
// Placed in the public domain by Affordable Production Tools
// Web site: http://www.apt.simplenet.com
//
// It is requested that if you use the functions in this
// library, the origination notices remain with the functions. 
// ***********************************************************


function PadLeft(String,Length)
{
 // **********************************************************
 // Placed in the public domain by Affordable Production Tools
 // March 23, 1998
 // Web site: http://www.apt.simplenet.com
 // **********************************************************
 String += ""
 Length += ""
 var Count = 0
 var PadLength = 0
 Length = parseInt(0 + Length,10)
 if(Length <= String.length) // No padding necessary.
  return(String)
 PadLength = Length - String.length
 for(Count = 0; Count < PadLength; Count++)
  String = " " + String
 return(String)
}

function FormatNumberField(Object,Decimals,Pad)
{
 // **********************************************************
 // Placed in the public domain by Affordable Production Tools
 // March 23, 1998
 // Web site: http://www.apt.simplenet.com
 // **********************************************************
 if(Object == null)
  return(null)
 if(!(Object.value))
  return(null)
 Object.value = FormatNumber(Object.value,Decimals)
 Object.value = PadLeft(Object.value,Pad)
 return(Object.value)
}


// end hiding ->

