function consolidatedebtmontly(prefield)
{
	if (eval("document.debt." + prefield + "outstanding.value.replace(/,/g,'') == ''") || eval("document.debt." + prefield + "terms.value.replace(/,/g,'') == ''") || eval("document.debt." + prefield + "interest.value.replace(/,/g,'') == ''"))
	{
		eval("document.debt." + prefield + "interestpaid.value = 0;");
		eval("format_num(document.debt." + prefield + "interestpaid);");
		return false;
	}
	var amount = parseInt(eval("document.debt." + prefield + "outstanding.value.replace(/,/g,'');"));
	var term = ((parseInt(eval("document.debt." + prefield + "terms.value.replace(/,/g,'');")))*12)*-1;
	var rate = ((eval("document.debt." + prefield + "interest.value.replace(/,/g,'');")) / 100) / 12;
	var deposit = 0;
	var bond = amount - deposit;
	var monthly = 0;
	
	monthly = bond * (rate / (1 - (Math.pow((1 + rate), term))));
	eval("document.debt." + prefield + "interestpaid.value = " +  parseFloat((monthly * -term) - amount) + ".toFixed(2);");
	eval("format_num(document.debt." + prefield + "interestpaid);");
	return monthly;
}

function consolidatedebtstep1(form)
{
	fieldArray = Array('cc1', 'cc2', 'ra1', 'ra2', 'vf1', 'vf2', 'o1', 'o2');
	
	avgmonthlyrepayments = 0;
	// calculate interest to be paid
	for (i = 0; i < fieldArray.length; i++)
		avgmonthlyrepayments += consolidatedebtmontly(fieldArray[i]);
	
	// caculate total cost of debt
	totalcostdebt = 0;
	for (i = 0; i < fieldArray.length; i++)
		totalcostdebt += parseFloat(eval("document.debt." + fieldArray[i] + "interestpaid.value.replace(/,/g,'');"));
	document.debt.totalcostdebt.value = totalcostdebt.toFixed(2);
	format_num(document.debt.totalcostdebt);

	// calculate total amount of debt
	totalamntdebt = 0;
	for (i = 0; i < fieldArray.length; i++)
		if (eval("document.debt." + fieldArray[i] + "outstanding.value.replace(/,/g,'') != ''") && eval("document.debt." + fieldArray[i] + "terms.value.replace(/,/g,'') != ''") && eval("document.debt." + fieldArray[i] + "interest.value.replace(/,/g,'') != ''"))
			totalamntdebt += parseFloat(eval("document.debt." + fieldArray[i] + "outstanding.value.replace(/,/g,'');"));
	document.debt.totalamntdebt.value = totalamntdebt.toFixed(2);
	format_num(document.debt.totalamntdebt);

	// calculate cost of debt per m/y
	totalterms = 0;
	termcount = 0;
	for (i = 0; i < fieldArray.length; i++)
		if (eval("document.debt." + fieldArray[i] + "outstanding.value.replace(/,/g,'') != ''") && eval("document.debt." + fieldArray[i] + "terms.value.replace(/,/g,'') != ''") && eval("document.debt." + fieldArray[i] + "interest.value.replace(/,/g,'') != ''"))
		{
			totalterms += parseFloat(eval("document.debt." + fieldArray[i] + "terms.value.replace(/,/g,'');"));
			termcount++;
		}
	document.debt.totalcostdebtpm.value = (totalcostdebt / (totalterms * 12 / termcount)).toFixed(2);
	format_num(document.debt.totalcostdebtpm);
	
	document.debt.totalcostdebtpa.value = (totalcostdebt / (totalterms / termcount)).toFixed(2);
	format_num(document.debt.totalcostdebtpa);
	
	/*avgmonthlyrepayments = 0;
	for (i = 0; i < fieldArray.length; i++)
		if (eval("document.debt." + fieldArray[i] + "outstanding.value.replace(/,/g,'') != ''") && eval("document.debt." + fieldArray[i] + "terms.value.replace(/,/g,'') != ''") && eval("document.debt." + fieldArray[i] + "interest.value.replace(/,/g,'') != ''"))
			avgmonthlyrepayments += (parseFloat(eval("document.debt." + fieldArray[i] + "interestpaid.value.replace(/,/g,'');")) / parseFloat(eval("document.debt." + fieldArray[i] + "terms.value.replace(/,/g,'');")) / 12);*/
			
	document.debt.avgmonthlyrepayments.value = (avgmonthlyrepayments).toFixed(2);
	format_num(document.debt.avgmonthlyrepayments);
	
	return true;
}

function calcBondDeeds(finance) {
	if ((finance >= 100) && (finance <= 60000))
		deedsB = 55;
	else if ((finance > 60000) && (finance <= 150000))
		deedsB = 200;
	else if ((finance > 150000) && (finance <= 300000))
		deedsB = 260;
	else if ((finance > 300000) && (finance <= 500000))
		deedsB = 340;
	else if ((finance > 500000) && (finance <= 1000000))
		deedsB = 400;
	else if (finance > 1000000)
		deedsB = 500;
	
	return deedsB;
}

function bondFees(finance) {
	if ((finance >= 100) && (finance <= 10000))
		fees = 550;
	else if ((finance > 10000) && (finance <= 15000))
		fees = 700;
	else if ((finance > 15000) && (finance <= 20000))
		fees = 750;
	else if ((finance > 20000) && (finance <= 25000))
		fees = 850;
	else if ((finance > 25000) && (finance <= 30000))
		fees = 900;
	else if ((finance > 30000) && (finance <= 35000))
		fees = 1000;
	else if ((finance > 35000) && (finance <= 40000))
		fees = 1100;
	else if ((finance > 40000) && (finance <= 45000))
		fees = 1150;
	else if ((finance > 45000) && (finance <= 50000))
		fees = 1200;
	else if ((finance > 50000) && (finance <= 60000))
		fees = 1300;
	else if ((finance > 60000) && (finance <= 70000))
		fees = 1400;
	else if ((finance > 70000) && (finance <= 80000))
		fees = 1600;
	else if ((finance > 80000) && (finance <= 90000))
		fees = 1700;
	else if ((finance > 90000) && (finance <= 100000))
		fees = 1800;
	else if ((finance > 100000) && (finance <= 125000))
		fees = 1900;
	else if ((finance > 125000) && (finance <= 150000))
		fees = 2000;
	else if ((finance > 150000) && (finance <= 175000))
		fees = 2100;
	else if ((finance > 175000) && (finance <= 200000))
		fees = 2200;
	else if ((finance > 200000) && (finance <= 250000))
		fees = 2400;
	else if ((finance > 250000) && (finance <= 300000))
		fees = 2700
	else if ((finance > 300000) && (finance <= 350000))
		fees = 3000;
	else if ((finance > 350000) && (finance <= 400000))
		fees = 3400;
	else if ((finance > 400000) && (finance <= 450000))
		fees = 3700;
	else if ((finance > 450000) && (finance <= 500000))
		fees = 4000;
	else if ((finance > 500000) && (finance <= 600000))
		fees = 4600;
	else if ((finance > 600000) && (finance <= 700000))
		fees = 5200;
	else if ((finance > 700000) && (finance <= 800000))
		fees = 5800;
	else if ((finance > 800000) && (finance <= 900000))
		fees = 6400;
	else if ((finance > 900000) && (finance <= 1000000))
		fees = 7000;
	else if ((finance > 1000000) && (finance < 5100000))
		fees = (((finance - 1000000) / 100000) * 300) + 7000;
	else if (finance >= 5100000)
		fees = (((finance - 5000000) / 100000) * 150) + 19000;	

	return fees;
}

function calcPersonDutie(pValue) {
	if ((pValue >= 0) && (pValue <= 500000)) {
		transDutie = 0
		} else if ((pValue >= 500001) && (pValue <= 1000000)) {
			transDutie = ((pValue - 500000) / 100) * 5;
			//transDutie = (pValue / 100) * 5;
		} else if (pValue >= 1000001) {
			transDutie = (((pValue - 1000000) / 100) * 8) + 25000;
		}
		
		return transDutie;
}

function CalcConFee(pValue) {
	if ((pValue > 0) && (pValue <= 18000))  {
			transfer = 760;
		 } else if ((pValue > 18000) && (pValue <= 30000)) { 
			transfer = 1250;
		 } else if ((pValue > 30000) && (pValue <= 45000)) { 
			transfer = 1500;
		 } else if ((pValue > 45000) && (pValue <= 70000)) { 
			transfer = 1800;
		 } else if ((pValue > 70000) && (pValue <= 80000)) { 
			transfer = 2500;
		 } else if ((pValue > 80000) && (pValue <= 90000)) { 
			transfer = 2700;
		 } else if ((pValue > 90000) && (pValue <= 100000)) { 
			transfer = 2900;
		 } else if ((pValue > 100000) && (pValue <= 125000)) { 
			transfer = 3000;
		 } else if ((pValue > 125000) && (pValue <= 150000)) { 
			transfer = 3100;
		 } else if ((pValue > 150000) && (pValue <= 175000)) { 
			transfer = 3300;
		 } else if ((pValue > 175000) && (pValue <= 200000)) { 
			transfer = 3500;
		 } else if ((pValue > 200000) && (pValue <= 250000)) { 
			transfer = 3800;
		 } else if ((pValue > 250000) && (pValue <= 300000)) { 
			transfer = 4400;
		 } else if ((pValue > 300000) && (pValue <= 350000)) { 
			transfer = 4700;
		 } else if ((pValue > 350000) && (pValue <= 400000)) { 
			transfer = 5100;	
		 } else if ((pValue > 400000) && (pValue <= 450000)) { 
			transfer = 5500;	
		 } else if ((pValue > 450000) && (pValue <= 500000)) { 
			transfer = 6000;
		 } else if ((pValue > 500000) && (pValue <= 600000)) { 
			transfer = 6800;
		 } else if ((pValue > 600000) && (pValue <= 700000)) { 
			transfer = 7600;	
		 } else if ((pValue > 700000) && (pValue <= 800000)) { 
			transfer = 8400;	
		 } else if ((pValue > 800000) && (pValue <= 900000)) { 
			transfer = 9200;	
		 } else if ((pValue > 900000) && (pValue <= 1000000)) { 
			transfer = 10000;	
		 } else if ((pValue > 1000000) && (pValue <= 1100000)) { 
			transfer = 10400;	
		 } else if ((pValue > 1100000) && (pValue <= 1200000)) { 
			transfer = 10800;
		 } else if ((pValue > 1200000) && (pValue <= 1300000)) { 
			transfer = 11200;
		 } else if ((pValue > 1300000) && (pValue <= 1400000)) { 
			transfer = 11600;
		 } else if ((pValue > 1400000) && (pValue <= 1500000)) { 
			transfer = 12000;
		 } else if ((pValue > 1500000) && (pValue <= 1600000)) { 
			transfer = 12400;	
		 } else if ((pValue > 1600000) && (pValue <= 1700000)) { 
			transfer = 12800;	
		 } else if ((pValue > 1700000) && (pValue <= 1800000)) { 
			transfer = 13200;
		 } else if ((pValue > 1800000) && (pValue <= 1900000)) { 
			transfer = 13600;	
		 } else if ((pValue > 1900000) && (pValue <= 2000000)) { 
			transfer = 14000;	
		 } else if ((pValue > 2000000) && (pValue <= 2100000)) { 
			transfer = 14400;	
		 } else if ((pValue > 2100000) && (pValue <= 2200000)) { 
			transfer = 14800;	
		 } else if ((pValue > 2200000) && (pValue <= 2300000)) { 
			transfer = 15200;	
		 } else if ((pValue > 2300000) && (pValue <= 2400000)) { 
			transfer = 15600;	
		 } else if ((pValue > 2400000) && (pValue <= 2500000)) { 
			transfer = 16000;
		 } else if ((pValue > 2500000) && (pValue <= 2600000)) { 
			transfer = 16400;
		 } else if ((pValue > 2600000) && (pValue <= 2700000)) { 
			transfer = 16800;
		 } else if ((pValue > 2700000) && (pValue <= 2800000)) { 
			transfer = 17200;
		 } else if ((pValue > 2800000) && (pValue <= 2900000)) { 
			transfer = 17600;
		 } else if ((pValue > 2900000) && (pValue <= 3000000)) { 
			transfer = 18000;	
		 } else if ((pValue > 3000000) && (pValue <= 3100000)) { 
			transfer = 18400;
		 } else if ((pValue > 3100000) && (pValue <= 3200000)) { 
			transfer = 18800;
		 } else if ((pValue > 3200000) && (pValue <= 3300000)) { 
			transfer = 19200;			
		 } else if ((pValue > 3300000) && (pValue <= 3400000)) { 
			transfer = 19600;
		 } else if ((pValue > 3400000) && (pValue <= 3500000)) { 
			transfer = 20000;
		 } else if ((pValue > 3500000) && (pValue <= 3600000)) { 
			transfer = 20400;
		 } else if ((pValue > 3600000) && (pValue <= 3700000)) { 
			transfer = 20800;
		 } else if ((pValue > 3700000) && (pValue <= 3800000)) { 
			transfer = 21200;
		 } else if ((pValue > 3800000) && (pValue <= 3900000)) { 
			transfer = 21600;
		 } else if ((pValue > 3900000) && (pValue <= 4000000)) { 
			transfer = 22000;
		 } else if ((pValue > 4000000) && (pValue <= 4100000)) { 
			transfer = 22400;
		 } else if ((pValue > 4100000) && (pValue <= 4200000)) { 
			transfer = 22800;
		 } else if ((pValue > 4200000) && (pValue <= 4300000)) { 
			transfer = 23200;
		 } else if ((pValue > 4300000) && (pValue <= 4400000)) { 
			transfer = 23600;
		 } else if ((pValue > 4400000) && (pValue <= 4500000)) { 
			transfer = 24000;
		 } else if ((pValue > 4500000) && (pValue <= 4600000)) { 
			transfer = 24400;
		 } else if ((pValue > 4600000) && (pValue <= 4700000)) { 
			transfer = 24800;
		 } else if ((pValue > 4700000) && (pValue <= 4800000)) { 
			transfer = 25200;
		 } else if ((pValue > 4800000) && (pValue <= 4900000)) { 
			transfer = 25600;
		 } else if ((pValue > 4900000) && (pValue <= 5000000)) { 
			transfer = 26000;
		 } else if ((pValue > 5000000) && (pValue <= 5100000)) { 
			transfer = 26200;
		 } else if ((pValue > 5100000) && (pValue <= 5200000)) { 
			transfer = 26400;
		 } else if ((pValue > 5200000) && (pValue <= 530000)) { 
			transfer = 26600;
		 } else if ((pValue > 5300000) && (pValue <= 5400000)) { 
			transfer = 26800;
		 } else if ((pValue > 5400000) && (pValue <= 5500000)) { 
			transfer = 27000;
		 } else if ((pValue > 5500000) && (pValue <= 5600000)) { 
			transfer = 27200;
		 } else if ((pValue > 5600000) && (pValue <= 5700000)) { 
			transfer = 27400;
		 } else if ((pValue > 5700000) && (pValue <= 5800000)) { 
			transfer = 27600;
		 } else if ((pValue > 5800000) && (pValue <= 5900000)) { 
			transfer = 27800;	
		 } else if ((pValue > 5900000) && (pValue <= 6000000)) { 
			transfer = 28000;
		 } else if ((pValue > 6000000) && (pValue <= 6100000)) { 
			transfer = 28200;
		 } else if ((pValue > 6100000) && (pValue <= 6200000)) { 
			transfer = 28400;
		 } else if ((pValue > 6200000) && (pValue <= 6300000)) { 
			transfer = 28600;
		 } else if ((pValue > 6300000) && (pValue <= 6400000)) { 
			transfer = 28800;
		 } else if ((pValue > 6400000) && (pValue <= 6500000)) { 
			transfer = 29000;
		 } else if ((pValue > 6500000) && (pValue <= 6600000)) { 
			transfer = 29200;
		 } else if ((pValue > 6600000) && (pValue <= 6700000)) { 
			transfer = 29400;
		 } else if ((pValue > 6700000) && (pValue <= 6800000)) { 
			transfer = 29600;
		 } else if ((pValue > 6800000) && (pValue <= 6900000)) { 
			transfer = 29800;
		 } else if ((pValue > 6900000) && (pValue <= 7000000)) { 
			transfer = 30000;
		 } else if ((pValue > 7000000) && (pValue <= 7100000)) { 
			transfer = 30200;
		 } else if ((pValue > 7100000) && (pValue <= 7200000)) { 
			transfer = 30400;
		 } else if ((pValue > 7200000) && (pValue <= 7300000)) { 
			transfer = 30600;
		 } else if ((pValue > 7300000) && (pValue <= 7400000)) { 
			transfer = 30800;
		 } else if ((pValue > 7400000) && (pValue <= 7500000)) { 
			transfer = 31000;
		 } else if ((pValue > 7500000) && (pValue <= 7600000)) { 
			transfer = 31200;
		 } else if ((pValue > 7600000) && (pValue <= 7700000)) { 
			transfer = 31400;
		 } else if ((pValue > 7700000) && (pValue <= 7800000)) { 
			transfer = 31600;
		 } else if ((pValue > 7800000) && (pValue <= 7900000)) { 
			transfer = 31800;
		 } else if ((pValue > 7900000) && (pValue <= 8000000)) { 
			transfer = 32000;
		 } else if ((pValue > 8000000) && (pValue <= 8100000)) { 
			transfer = 32200;
		 } else if ((pValue > 8100000) && (pValue <= 8200000)) { 
			transfer = 32400;
		 } else if ((pValue > 8200000) && (pValue <= 8300000)) { 
			transfer = 32600;
		 } else if ((pValue > 8300000) && (pValue <= 8400000)) { 
			transfer = 32800;
		 } else if ((pValue > 8400000) && (pValue <= 8500000)) { 
			transfer = 33000;
		 } else if ((pValue > 8500000) && (pValue <= 8600000)) { 
			transfer = 33200;
		 } else if ((pValue > 8600000) && (pValue <= 8700000)) { 
			transfer = 33400;
		 } else if ((pValue > 8700000) && (pValue <= 8800000)) { 
			transfer = 33600;
		 } else if ((pValue > 8800000) && (pValue <= 8900000)) { 
			transfer = 33800;
		 } else if ((pValue > 8900000) && (pValue <= 9000000)) { 
			transfer = 34000;
		 } else if ((pValue > 9000000) && (pValue <= 9100000)) { 
			transfer = 34200;
		 } else if ((pValue > 9100000) && (pValue <= 9200000)) { 
			transfer = 34400;
		 } else if ((pValue > 9200000) && (pValue <= 9300000)) { 
			transfer = 34600;
		 } else if ((pValue > 9300000) && (pValue <= 9400000)) { 
			transfer = 34800;
		 } else if ((pValue > 9400000) && (pValue <= 9500000)) { 
			transfer = 35000;
		 } else if ((pValue > 9500000) && (pValue <= 9600000)) { 
			transfer = 35200;
		 } else if ((pValue > 9600000) && (pValue <= 9700000)) { 
			transfer = 35400;
		 } else if ((pValue > 9700000) && (pValue <= 9800000)) { 
			transfer = 35600;
		 } else if ((pValue > 9800000) && (pValue <= 9900000)) { 
			transfer = 35800;
		 } else if ((pValue > 9900000) && (pValue <= 10000000)) {
			transfer = 36000;
		}
		
		return transfer;
}

function calcPurchaseDeeds(pValue) {
	if ((pValue >= 100) && (pValue <= 60000))
		deeds = 55;
	else if ((pValue > 60000) && (pValue <= 150000))
		deeds = 200;
	else if ((pValue > 150000) && (pValue <= 300000))
		deeds = 260;
	else if ((pValue > 300000) && (pValue <= 500000))
		deeds = 340;
	else if ((pValue > 500000) && (pValue <= 1000000))
		deeds = 400;
	else if (pValue > 1000000)
		deeds = 500;
	
	return deeds;
}

function calcPurchasePostTax(transfer) {
	return transfer * 0.145
}

function FinanceNeeded() {
		totalP = transfer + transDutie + deeds + petties + tax + fica + edg;
		
		endPrice = totalP + pValue;
		finance = endPrice - deposit;
		document.form.transferfees2.value = totalP;
		document.form.financeNeeded.value = finance;
		document.form.totalp.value = pValue;
		
		format_num(document.form.transferfees2);
		format_num(document.form.financeNeeded);
		format_num(document.form.totalp);
		
}

function monthly_payment( p, apr, n )
{
    var i = apr/1200;
    var m = p*i*Math.pow((1 + i), n)/(Math.pow((1 + i), n) - 1);

    return (0.01*Math.ceil(100*m));   // round up
}


function consolidatedebtstep2(form)
{
	if (document.debt.bondamount.value == "" || document.debt.loanterms.value == "" || document.debt.interestrate.value == "")
	{
		alert("Please fill in the 'New Bond Amount, Term of loan in years and Interest Rate");
		return false;
	}
	
	if (document.debt.totalcostdebt.value.replace(/,/g,"") == '')
	{
		alert("Please calculate step 1 first");
		return false;
	}
	
	if (document.debt.extramonthlypayment.value == "")
		document.debt.extramonthlypayment.value = 0;

	// Calculate Total Estimated cost to register a bond
	pettiesB = 570;
	fica = 250.8;
	edg = 114;
	bankinit = 4500;
	petties = 570;
	
	finance = parseFloat(document.debt.bondamount.value.replace(/,/g,''));
	
	transDutie = calcPersonDutie(finance);
	transfer = CalcConFee(finance);
	deeds = calcPurchaseDeeds(finance);
	tax = transfer * 0.145;
	
	totalP = transfer + transDutie + deeds + petties + tax + fica + edg;
	
	finance = totalP + finance;
	
	fees = bondFees(finance);
	deedsB = calcBondDeeds(finance);
	taxB = (fees * 0.145);
	
	totalB = fees + deedsB + taxB + pettiesB + fica + edg + bankinit;

	document.debt.registerbond.value = totalB.toFixed(2);
	format_num(document.debt.registerbond);
		
	// Calculate Minimum Monthly payment
	amount = parseInt(document.debt.bondamount.value.replace(/,/g,""));
	term = ((parseInt(document.debt.loanterms.value.replace(/,/g,""))) * 12) * -1;
	rate = ((document.debt.interestrate.value.replace(/,/g,"")) / 100) / 12;
	bond = amount;
	monthly = 0;
	
	monthly = Math.floor((amount * rate)/(1 - Math.pow(1 + rate,(term))) * 100) / 100;
	document.debt.minmonthlypayment.value = monthly.toFixed(2);
	format_num(document.debt.minmonthlypayment);
	
	// calculate Total interest paid
	principle = parseFloat(document.debt.bondamount.value.replace(/,/g,""));
	term = ((parseInt(document.debt.loanterms.value.replace(/,/g,"")))*12)
	payment = Math.round(monthly + parseFloat(document.debt.extramonthlypayment.value.replace(/,/g,"")));
	interestpaid = 0;
	
	for (i = 0; i <= term; i++)
	{
		if (principle <=  0)
			break;
		interestpaid += principle * rate;
		principle += (principle * rate) - payment;
	}
	
	document.debt.totalinterestpaid.value = interestpaid.toFixed(2);
	format_num(document.debt.totalinterestpaid);
	
	// do results (ie step 3)
	document.debt.oncecosttoconsolidate.value = totalB.toFixed(2);
	format_num(document.debt.oncecosttoconsolidate);
	
	totalcostdebt = parseFloat(document.debt.totalcostdebt.value.replace(/,/g,""));
	if (interestpaid < totalcostdebt)
	{
		document.debt.savedinterest.value = (totalcostdebt - interestpaid).toFixed(2);
		document.debt.paidextrainterest.value = 0;
	}
	else
	{
		document.debt.savedinterest.value = 0;
		document.debt.paidextrainterest.value = (interestpaid - totalcostdebt).toFixed(2);
	}
	
	format_num(document.debt.savedinterest);
	format_num(document.debt.paidextrainterest);
	
	return true;
}