function ErrorAlert(objField,sText)
{
    objField.select();
    alert(sText);
    return false;
}

function GetMonthlyValues(totalAmount, Number_Months)
{
    var aROI=new Array(0.00869,0.00793,0.00716,0.00639);
    var aPayment=new Array();
    var selectedAmt=0;
    var vAPR="";
    var posDecimal=0;
    var vPayment="";
    
    for (var i=0;i<5;i++)
    {
        aPayment[i]=(totalAmount * ( 1-( Math.pow((1 / (aROI[i] + 1)),(Number_Months)) ) ) / aROI[i]) + 0.005;
    }
    
    for (var c=0;c<5;c++)
    {
        if (aPayment[c]>=5000 && aPayment[c]<14999)
        {
            vAPR="10.9";
            selectedAmt=aPayment[0];
            break;
        }
        else if (aPayment[c]>=15000 && aPayment[c]<24999)
        {
            vAPR="9.9";
            selectedAmt=aPayment[1];
            break;
        }
        else if (aPayment[c]>=25000 && aPayment[c]<34999)
        {
            vAPR="8.9";
            selectedAmt=aPayment[2];
            break;
        }
        else if (aPayment[c]>=35000) 
        {
            vAPR="7.9";
            selectedAmt=aPayment[3];
            break;
        }
    }

    vPayment=String(selectedAmt);
    posDecimal=vPayment.indexOf(".");

    if (vPayment.charAt(posDecimal+2)=="") vPayment+="0";
    vPayment=vPayment.substring(0,posDecimal+3);

    return new Array(vPayment,vAPR);
     
   
}

function populateAPR() {


var f=document.frmCalc;

//get loan amount
var vLoanAmount= eval(removeCommas(f.Total_Loan.value));

		if (vLoanAmount<3000)
        {
            //null all options
	    for (s = f.APR.options.length; s >= 1; s--)
	    {	f.APR.options[s] = null;}
	    f.APR.options[0] = new Option ("");
	    f.APR.options[0].value = "";
		f.APR.style.backgroundColor = "#DAF7FF";
	    }
		
		if (vLoanAmount>=3000 && vLoanAmount<9999)
        {
            //null all options
	    for (s = f.APR.options.length; s >= 1; s--)
	    {	f.APR.options[s] = null;}
	    f.APR.options[0] = new Option ("");
		f.APR.options[0].value = "";
	    f.APR.options[1] = new Option ("9.9%");
	    f.APR.options[1].value = "0.00793";
	    f.APR.options[2] = new Option ("10.9%");
	    f.APR.options[2].value = "0.00869";
	    f.APR.options[3] = new Option ("11.9%");
	    f.APR.options[3].value = "0.00945";
	    f.APR.options[4] = new Option ("12.7%");
	    f.APR.options[4].value = "0.01001";
		f.APR.options[5] = new Option ("14.9%");
	    f.APR.options[5].value = "0.01164";
	    f.APR.options[6] = new Option ("16.9%");
	    f.APR.options[6].value = "0.01310";
	    f.APR.options[7] = new Option ("19.9%");
	    f.APR.options[7].value = "0.01521";
		f.APR.style.backgroundColor = "#DAF7FF";
        }
        else if (vLoanAmount>=10000 && vLoanAmount<24999)
        {
            //null all options
	    	    for (s = f.APR.options.length; s >= 1; s--)
	    	    {	f.APR.options[s] = null;}
	    f.APR.options[0] = new Option ("");
		f.APR.options[0].value = "";
	    f.APR.options[1] = new Option ("8.9%");
	    f.APR.options[1].value = "0.00716";	    
	    f.APR.options[2] = new Option ("9.9%");
	    f.APR.options[2].value = "0.00793";
	    f.APR.options[3] = new Option ("10.9%");
	    f.APR.options[3].value = "0.00869";
	    f.APR.options[4] = new Option ("12.7%");
	    f.APR.options[4].value = "0.01001";
		f.APR.options[5] = new Option ("14.9%");
	    f.APR.options[5].value = "0.01164";
	    f.APR.options[6] = new Option ("16.9%");
	    f.APR.options[6].value = "0.01310";
	    f.APR.options[7] = new Option ("19.9%");
	    f.APR.options[7].value = "0.01521";
		f.APR.style.backgroundColor = "#DAF7FF";
        }
		
		else if (vLoanAmount>=25000 && vLoanAmount<100001)
        {
            //null all options
	    	    for (s = f.APR.options.length; s >= 1; s--)
	    	    {	f.APR.options[s] = null;}
	    f.APR.options[0] = new Option ("");
		f.APR.options[0].value = "";
	    f.APR.options[1] = new Option ("7.4%");
	    f.APR.options[1].value = "0.00597";	    
		f.APR.options[2] = new Option ("8.9%");
	    f.APR.options[2].value = "0.00716";
	    f.APR.options[3] = new Option ("9.9%");
	    f.APR.options[3].value = "0.00793";
	    f.APR.options[4] = new Option ("10.9%");
	    f.APR.options[4].value = "0.00869";
	    f.APR.options[5] = new Option ("12.7%");
	    f.APR.options[5].value = "0.01001";
	    f.APR.options[6] = new Option ("13.9%");
	    f.APR.options[6].value = "0.01094";
		f.APR.options[7] = new Option ("14.9%");
	    f.APR.options[7].value = "0.01164";
		f.APR.options[8] = new Option ("16.9%");
	    f.APR.options[8].value = "0.01310";
	    f.APR.options[9] = new Option ("19.9%");
	    f.APR.options[9].value = "0.01521";
		f.APR.style.backgroundColor = "#DAF7FF";
        }
        

}


function GetMonthlyAmountFromLoanAmount(loanAmt, outstandingAmt, Number_Months, ppType,roi,apr)
{
     
    var aPayment=new Array();
    var selectedAmt=0;
    var posDecimal=0;
    var vPayment="";
    
    roi= eval(roi);
    
    if (outstandingAmt==null) outstandingAmt=loanAmt;

    vPayment=String((outstandingAmt/((1-Math.pow(1/(1+roi),(Number_Months)))/roi))+0.005);
    
    posDecimal=vPayment.indexOf(".");

    if (vPayment.charAt(posDecimal+2)=="") vPayment+="0";
    vPayment=vPayment.substring(0,posDecimal+3);


    return new Array(vPayment, apr);
}

function formatCurrency(num) {
num = num.toString().replace(/\$|\,/g,'');
if(isNaN(num))
num = "0";
sign = (num == (num = Math.abs(num)));
num = Math.floor(num*100+0.50000000001);
pence = num%100;
num = Math.floor(num/100).toString();
if(pence<10)
pence = "0" + pence;
for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
num = num.substring(0,num.length-(4*i+3))+','+
num.substring(num.length-(4*i+3));
return (((sign)?'':'-') + '£' + num + '.' + pence);
}

function removeCommas(aNum) {

//remove any commas

aNum=aNum.replace(/,/g,"");

//remove any spaces

aNum=aNum.replace(/\s/g,"");

return aNum;

}

function Calculate()
{

    var f=document.frmCalc;

    
    
    var loanAmt=removeCommas(f.Total_Loan.value);
    
    var Number_Months=f.Total_Number_Months.value;
    var MonthlyPayment=f.MonthlyPayment.value
    var ppType=3;
    var roi=f.APR.options[f.APR.selectedIndex].value; 
    var apr=f.APR.options[f.APR.selectedIndex].text; 
    
    var aReturn=GetMonthlyAmountFromLoanAmount(loanAmt,null,Number_Months,ppType,roi,apr);
    
    f.OverallFig.value= formatCurrency((aReturn[0]*Number_Months));
    f.MonthlyPayment.value=String(aReturn[0]);
    
 
}

function ClearResults()
{
    with (document.frmCalc)
    {
        //Total_Loan.style.background="#FFFFFF";
        //Total_Number_Months.style.background="#FFFFFF";
		MonthlyPayment.value="";
        OverallFig.value="";
        //APR.value="";
    }
}

function isEmpty(aTextField) {
   if ((aTextField.value.length==0) ||
   (aTextField.value==null)) {
      return true;
   }
   else { return false; }
}


function g(id) {
return document.getElementById(id);
}


function calculateDCC() {
var t1 = g("dccBankTot");
t1 = parseFloat((isEmpty(t1))?0:t1.value);
var t2 = g("dccCredTot");
t2 = parseFloat((isEmpty(t2))?0:t2.value);
var t3 = g("dccCarTot");
t3 = parseFloat((isEmpty(t3))?0:t3.value);
var t4 = g("dccFurnTot");
t4 = parseFloat((isEmpty(t4))?0:t4.value);
var t5 = g("dccHPTot");
t5 = parseFloat((isEmpty(t5))?0:t5.value);
var t6 = g("dccOtherTot");
t6 = parseFloat((isEmpty(t6))?0:t6.value);

var totTotal = t1+t2+t3+t4+t5+t6;
if(isNaN(totTotal)) {
alert("Please make sure all owed amounts are numbers (or blank).");
return false;
} else if(totTotal == 0) {
alert("Please fill in at least one owed amount.");
return false;
}


var m1 = g("dccBankMon");
m1 = parseFloat((isEmpty(m1))?0:m1.value);
var m2 = g("dccCredMon");
m2 = parseFloat((isEmpty(m2))?0:m2.value);
var m3 = g("dccCarMon");
m3 = parseFloat((isEmpty(m3))?0:m3.value);
var m4 = g("dccFurnMon");
m4 = parseFloat((isEmpty(m4))?0:m4.value);
var m5 = g("dccHPMon");
m5 = parseFloat((isEmpty(m5))?0:m5.value);
var m6 = g("dccOtherMon");
m6 = parseFloat((isEmpty(m6))?0:m6.value);

var monTotal = m1+m2+m3+m4+m5+m6;
if(isNaN(monTotal)) {
alert("Please make sure all monthly payments are numbers (or blank).");
return false;
} else if(monTotal == 0) {
alert("Please fill in at least one monthly payment.");
return false;
}


if((t1>0&&m1==0)||(t2>0&&m2==0)||(t3>0&&m3==0)||(t4>0&&m4==0)||(t5>0&&m5==0)||(t6>0&&m6==0)) {
alert("Please make sure you fill in a monthly payment for each amount owed you have added.");
return false;
}

if((m1>0&&t1==0)||(m2>0&&t2==0)||(m3>0&&t3==0)||(m4>0&&t4==0)||(m5>0&&t5==0)||(m6>0&&t6==0)) {
alert("Please make sure you fill in an amount owed for each monthly payment you have added.");
return false;
}


var numMonths = document.getElementById("dccRepayPeriod").value;
var aReturn=GetMonthlyAmountFromLoanAmountDCC(totTotal,numMonths,"0.01164","14.9%");
var monRepay = aReturn[0];


var saving = monTotal - parseFloat(monRepay);

if(saving>0) {
	//alert("Beech Finance can save you: £" + saving + " a month.");
	saving = formatCurrencyDCC(saving);
} else {
	//alert("Can't save you anything");
	saving = 0;
}

document.getElementById("dccTotToRepay").innerHTML = formatCurrencyDCC(totTotal);
document.getElementById("dccCurrMon").innerHTML = formatCurrencyDCC(monTotal);
document.getElementById("dccNewMon").innerHTML = formatCurrencyDCC(monRepay);
document.getElementById("dccSaving").innerHTML = saving;
document.getElementById("dccAPR").innerHTML = aReturn[1];
document.getElementById("dccResults").style.display = "block";
}

function GetMonthlyAmountFromLoanAmountDCC(loanAmt, Number_Months,roi,apr)
{
     
    var aPayment=new Array();
    var selectedAmt=0;
    var posDecimal=0;
    var vPayment="";
    
    roi= eval(roi);

    vPayment=String((loanAmt/((1-Math.pow(1/(1+roi),(Number_Months)))/roi))+0.005);
    
    posDecimal=vPayment.indexOf(".");

    if (vPayment.charAt(posDecimal+2)=="") vPayment+="0";
    vPayment=vPayment.substring(0,posDecimal+3);


    return new Array(vPayment, apr);
}

function formatCurrencyDCC(num) {
num = num.toString().replace(/\$|\,/g,'');
if(isNaN(num))
num = "0";
sign = (num == (num = Math.abs(num)));
num = Math.floor(num*100+0.50000000001);
pence = num%100;
num = Math.floor(num/100).toString();
if(pence<10)
pence = "0" + pence;
for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
num = num.substring(0,num.length-(4*i+3))+','+
num.substring(num.length-(4*i+3));
return (((sign)?'':'-') + num + '.' + pence);
}
