<!--hide this script from non-javascript-enabled browsers

// CONSTANT DEFINITIONS...

var CONSUMER_BROKERAGE = 0;	              // 195 Not inc. GST, $ or 0-1 for %
var CONSUMER_ADVANCE_PAYMENTS = 0;           // No. of payments to be in advance.

var COMMERCIAL_BROKERAGE = 0;	              // 195 Not inc. GST, $ or 0-1 for %
var COMMERCIAL_ADVANCE_PAYMENTS = 1;           // No. of payments to be in advance.

var BROKERAGE_GST = 0.1;	// 10% GST

// FLAGS...
var ALLOW_CONSUMER_RESIDUAL = 0;	// Consumer loan residuals NOT allowed
var USE_DEFAULT_INTEREST_RATES = 0; // 

function MM_findObj(n, d) { //v3.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
}
/* Functions that swaps images. */
function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

  function popup( url, name, width, height )
	{
		var left = ( screen.width - width ) / 2;
	  var top = ( screen.height - height ) / 3;
		var attrib = 'width=' + width + ',height=' + height + ',top=' + top + ',left=' + left + ',status=no,scrollbars=yes,toolbar=no,menubar=no,resizable=yes';
		window.open( url, name, attrib );
	}

/* Functions that handle preload. */
function MM_preloadImages() { //v3.0
 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
   var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
   if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function openWindow(args) {
	var myURL;
	var str;

	if (args == "Applications") {
		str = "left=" + ((screen.availWidth - 400)/2) + ", ";
		str += "top=100, toolbar=no, location=no, scrollbars=no, menubar=no, status=no, directories=no, resizable=0, width=350, ";
		str += "height=150";
		myURL = "loanchoices.asp";
	} else if (args == "Personal") {
		str = "left=" + ((screen.availWidth - 720)/2) + ", ";
		str += "top=5, toolbar=no, location=no, scrollbars=yes, menubar=no, status=yes, directories=no, resizable=1, width=740, ";
		str += "height=" + (screen.availHeight - 55);
		myURL = "https://www.autofin.com.au/PersonalLoan/default.aspx?referrer=ozcredit";
	}
	var newWindow = window.open(myURL, "newWin",  str)
}

function calculate(formname,loan_subtype) {

	var month = 0;
	var term,loan_type;
	var residual = 0;
	var i=0;				// index variable
	var term_residual=0;
	var a = 0;				// advance payments flag variable

	var loanAmount = removeBits(formname.FINANCE_AMOUNT.value);
	var rate = removeBits(formname.Rate.value);

	if (formname.quotetype[0].checked) {
		loan_type = "CONSUMER";
	}
	else if (formname.quotetype[1].checked) {
	    	loan_type = "COMMERCIAL";
	} else {
		loan_type = "PERSONAL";
	}

	if ((loan_type == "CONSUMER")||(loan_type == "PERSONAL")) {
		i = formname.TermYears.options.selectedIndex;
		term = removeBits(formname.TermYears.options[i].value);
		residual = 0;
		a = CONSUMER_ADVANCE_PAYMENTS;			// 1 or 0

		// Define PV, Present Value, as the amount for later calculation,
		// inlcuding the brokerage, defined as a dollar value (if > 1) or
		// a percentage if a decimal fraction.
		if (CONSUMER_BROKERAGE > 1) { // Dollar value...
			PV = loanAmount + (CONSUMER_BROKERAGE * (1 + BROKERAGE_GST));
		}
		else if ((CONSUMER_BROKERAGE > 0) && (CONSUMER_BROKERAGE <= 1)) { // Percentage value...
			PV = loanAmount + (loanAmount * CONSUMER_BROKERAGE * (1 + BROKERAGE_GST));
		}
		else { PV = loanAmount; // no brokerage
		}

//		alert("Private quote selected for $"+loanAmount+" ...total=$"+PV);

		// CHECK REQUIRED INPUT HAS BEEN RECEIVED...
		if (loanAmount == 0) {
			alert("You must specify a Finance Amount."); }
		else if (term == 0) {
			alert("You must specify a Term for the loan (in YEARS)."); }
		else if (rate == 0) {
			alert("You must specify an Interest Rate for the loan.");
		}
		
		// RESET COMMERCIAL LOAN SUBTYPE OPTIONS...
	    formname.comm_light.options.selectedIndex = 0;
		formname.comm_salesrep.options.selectedIndex = 0;
		formname.comm_traveller.options.selectedIndex = 0;
    	formname.comm_heavy.options.selectedIndex = 0;
	
	}  // END CONSUMER LOAN PREPARATION
	
	else {	// loan_type == "COMMERCIAL"

		a = COMMERCIAL_ADVANCE_PAYMENTS;			// 1 or 0

		// Define PV, Present Value, as the amount for later calculation,
		// inlcuding the brokerage, defined as a dollar value (if > 1) or
		// a percentage if a decimal fraction.
		if (COMMERCIAL_BROKERAGE > 1) { // Dollar value...
			PV = loanAmount + (COMMERCIAL_BROKERAGE * (1 + BROKERAGE_GST));
		}
		else if ((COMMERCIAL_BROKERAGE > 0) && (COMMERCIAL_BROKERAGE <= 1)) { // Percentage value...
			PV = loanAmount + (loanAmount * COMMERCIAL_BROKERAGE * (1 + BROKERAGE_GST));
		}
		else { PV = loanAmount; // no brokerage.
		}

		
		// DETERMINE WHICH LOAN SUBTYPE SELECTED...
		if (loan_subtype == "comm_light") {
          i = formname.comm_light.options.selectedIndex;
		  term_residual = formname.comm_light.options[i].value; 
		  formname.comm_salesrep.options.selectedIndex = 0;
		  formname.comm_traveller.options.selectedIndex = 0;
		  formname.comm_heavy.options.selectedIndex = 0;
		  formname.Residual.value = "";
		  // new code 
		  formname.TermYears.options.selectedIndex = formname.comm_light.options.selectedIndex + 1;		}
		else if (loan_subtype == "comm_salesrep") {
          i = formname.comm_salesrep.options.selectedIndex;
		  term_residual = formname.comm_salesrep.options[i].value;
		  formname.comm_light.options.selectedIndex = 0;
		  formname.comm_traveller.options.selectedIndex = 0;
		  formname.comm_heavy.options.selectedIndex = 0;
		  formname.Residual.value = "";
		  // new code 
		  formname.TermYears.options.selectedIndex = formname.comm_salesrep.options.selectedIndex + 1;		
		}
		else if (loan_subtype == "comm_traveller") {
          i = formname.comm_traveller.options.selectedIndex;
		  term_residual = formname.comm_traveller.options[i].value; 
		  formname.comm_light.options.selectedIndex = 0;
		  formname.comm_salesrep.options.selectedIndex = 0;
		  formname.comm_heavy.options.selectedIndex = 0;
		  formname.Residual.value = "";
		  // new code 
		  formname.TermYears.options.selectedIndex = formname.comm_traveller.options.selectedIndex + 1;	
		}
		else if (loan_subtype == "comm_heavy") {
          i = formname.comm_heavy.options.selectedIndex;
		  term_residual = formname.comm_heavy.options[i].value; 
		  formname.comm_light.options.selectedIndex = 0;
		  formname.comm_salesrep.options.selectedIndex = 0;
		  formname.comm_traveller.options.selectedIndex = 0;
		  formname.Residual.value = "";
		  // new code 
		  formname.TermYears.options.selectedIndex = formname.comm_heavy.options.selectedIndex + 1;	
//		  alert("HEAVY...term_resid="+term_residual+"  i="+i);
        }
		else if (loan_subtype == "calcbutton") {
		  // Check all, as subtype has not been passed by selection
		  // of a commercial loan subtype residual...
          if (formname.comm_light.options.selectedIndex) {
          	i = formname.comm_light.options.selectedIndex;
            term_residual = formname.comm_light.options[i].value; 
		  }
          else if (formname.comm_salesrep.options.selectedIndex) {
          	i = formname.comm_salesrep.options.selectedIndex;
            term_residual = formname.comm_salesrep.options[i].value; 
		  }
          else if (formname.comm_traveller.options.selectedIndex) {
          	i = formname.comm_traveller.options.selectedIndex;
            term_residual = formname.comm_traveller.options[i].value; 
		  }
		  else if (formname.comm_heavy.options.selectedIndex) {
          	i = formname.comm_heavy.options.selectedIndex;
            term_residual = formname.comm_heavy.options[i].value; 
		  }
		  else {
          	i = formname.TermYears.options.selectedIndex;
            term_residual = formname.TermYears.options[i].value; 
		  }

//		  alert("HEAVY...term_resid="+term_residual+"  i="+i);
        }
    
		else { term_residual = 0;
		}

		// CHECK REQUIRED INPUT HAS BEEN RECEIVED...
		if (loanAmount == 0) {
			alert("You must specify a Finance Amount."); }
		else if (rate == 0) {
			alert("You must specify an Interest Rate for the loan.");
		}
		
		// EXTRACT LOAN SUBTYPE, TERM and RESIDUAL (FV) from passed info,
		// WITH RESIDUAL CONVERTED TO DOLLAR VALUE...
		term = Math.floor(term_residual);
		residual = loanAmount * (term_residual - Math.floor(term_residual)); 

//		alert("Term_resid="+term_residual+"Loan="+PV+" Term="+term+" Residual="+residual);
		
		// RESET OTHER COMM LOAN SUBTYPE OPTIONS...
		
	
	} // END COMMERCIAL LOAN PREPARATION	




	// SETUP VARIABLES FOR FORMULA...
	var r_month = (rate/12)/100;		     // Interest rate per month
	var r_week = (rate*(7/365.25))/100;  // Interest rate per week

	var n_month = term * 12;		 // Number of payment (monthly)
	var n_week = term * (365.25/7);  // Number of payments (weekly)

	var FV = residual;					// Final value amount

	// FORMULA...
	
	var top = PV - (FV* (Math.pow(1+r_month,-n_month)));
	var bot = ((1 - Math.pow(1+r_month,-n_month + a)) / r_month) + a;	
	
//	alert("bit="+bit+" PV="+PV+" a="+a+" r="+r_month+" n="+n_month+" TOP = "+top+"  BOT ="+bot);
	
	var month = top / bot;

	var top = PV - (FV* (Math.pow(1+r_week,-n_week)));
	var bot = ((1 - Math.pow(1+r_week,-n_week + a)) / r_week) + a;	
	var week = month / 4.33; //week = top / bot; As requested By Garry 30/07/2008



	   	formname.Monthly.value = commas(rounding(month));

//    	week = eval(month * (12/52));
    	formname.Weekly.value = commas(rounding(week));
    	formname.Residual.value = commas(rounding(residual));

}

function removeBits(theString) {
	// Removes dollar signs, commas and blanks from the passed string.

	var aString = "" + theString;	// Ensures that its a string.
	var newString = "";
	var kblank = " ";
	var kcomm_a = ",";
	var kdollar = "$";
	
	if (theString) {
		for (var i=0; i<aString.length; i++) {
	
			if ((aString.charAt(i) != kcomm_a) && (aString.charAt(i) != kdollar) && (aString.charAt(i) != kblank))
				newString = newString + aString.charAt(i);
		}
	}
	else 
		newString = 0;
	
	newString = eval(newString);	// Converts to number type.
	return newString;
}

function commas(aNumber) {
	var theResult = "";
	if (aNumber < 1000) {
		theResult = "" + aNumber;
	}
	else {
	 	var leftPart = commas(Math.floor(aNumber/1000));
	 	var rightPart = aNumber % 1000;
	 	rightPart = Math.floor(rightPart*100) / 100;
	 	if (rightPart < 10)
	 		rightPart = "00" + rightPart;
	 	else if (rightPart < 100)
	 		rightPart = "0" + rightPart;
	 	theResult = "" + leftPart + "," + rightPart;
	 }
	 return theResult;
}

function doSum(formname) {

	var total = 0;

	var pprice = removeBits(formname.Purchase_Price.value);
	var deposit = removeBits(formname.Cash_Deposit.value);
	var trade = removeBits(formname.Tradein_Value.value);
	var tradepayout = removeBits(formname.Payout_on_Tradein.value);
	var insurance = removeBits(formname.Insurances.value);
	var other = removeBits(formname.Other_Costs.value);

	total = Math.round(pprice - deposit - trade + tradepayout + insurance + other);

	if (total) {
		formname.FINANCE_AMOUNT.value = commas(total);
	}
	
}

function focusdoSum(formname) {

	var total = 0;

	var pprice = removeBits(formname.Purchase_Price.value);
	var deposit = removeBits(formname.Cash_Deposit.value);
	var trade = removeBits(formname.Tradein_Value.value);
	var tradepayout = removeBits(formname.Payout_on_Tradein.value);
	var insurance = removeBits(formname.Insurances.value);
	var other = removeBits(formname.Other_Costs.value);

	total = Math.round(pprice - deposit - trade + tradepayout + insurance + other);

	if (total) {
		formname.FINANCE_AMOUNT.value = commas(total);
	}
  	
   	formname.Monthly.value = "";
	formname.Weekly.value = "";
	formname.Residual.value = "";
}

function erase(formname) {
	formname.FINANCE_AMOUNT.value = "";
	formname.Monthly.value = "";
	formname.Weekly.value = "";
	formname.Residual.value = "";
    formname.comm_light.options.selectedIndex = 0;
	formname.comm_salesrep.options.selectedIndex = 0;
	formname.comm_traveller.options.selectedIndex = 0;
    formname.comm_heavy.options.selectedIndex = 0;
}

function erase_results(formname) {
	var quoteOption = -1;

	formname.Monthly.value = "";
	formname.Weekly.value = "";
	formname.Residual.value = "";
    	formname.comm_light.options.selectedIndex = 0;
	formname.comm_salesrep.options.selectedIndex = 0;
	formname.comm_traveller.options.selectedIndex = 0;
    	formname.comm_heavy.options.selectedIndex = 0;

	//*** add appropriate interest rate to calculator		
	for (i=0; i<formname.quotetype.length; i++){
		if (formname.quotetype[i].checked)
		quoteOption = i;
	}

	if (quoteOption == -1){
		formname.quotetype[0].checked = true;
		formname.Rate.value = 9.95;
	}else if (quoteOption == 0){
		formname.Rate.value = 9.95;
	} else if (quoteOption == 1) {
		formname.Rate.value = 9.70;
	} else if (quoteOption == 2) {
		formname.Rate.value = 14.24;
	}
	//alert(quoteOption);
}

function rounding(n)
{
        var x = n * 100 ;
        var y = Math.round(x) ;

        strX = "" + y ;
        len = strX.length ;
        if (x) {
        	x = strX.substring(0, len - 2) + "." + strX.substring((len - 2), len);
 			return x;
        }
        else {
        	return 0;
        }
}


function popup(url,topic) {

    aPopUp=window.open(url,'rates','toolbar=no,location=no,directories=no,status=no,scrollbars=yes,resizable=yes,copyhistory=no,width=300,height=200');


}

// stop hiding -->
