function put_commas(input) {

	var result, len;

    input += "";
	len = input.indexOf(".");
	if(len == -1) {
		len = input.length;
		result = "";
	}
	else {
		result = input.substring(len, input.length);
	}

	while(len > 3) {
		result = input.substring(len-3, len) + result;
		result = "," + result;
		len -= 3;
	}

	result = input.substring(0, len) + result;
	return result;

}

function strip_commas(input) {

        var newnum;
        var ch;

        newnum ="";
        for(var i=0; i<input.length; i++) {
                ch = input.charAt(i);
                if(ch != ",") {
                        newnum += ch;
                }
        }
        return parseFloat(newnum);
}

function checkNum(input) {

	var oldnum;
	var newnum;
	var ch;

	oldnum = input.value;
	newnum ="";
	for(var i=0; i<oldnum.length; i++) {
		ch = oldnum.charAt(i);
		if(ch != ",") {
			newnum += ch;
		}
	}

	return parseFloat(newnum);
}

function checkNumPeriods(input) {

	input.value = checkNum(input);
	input.value = parseInt(input.value);
	if(input.value == null ||
         input.value.length == 0 ||
	   input.value == "NaN") {
		input.value = "";
	}
	else {
		if(parseFloat(input.value) <= 0) {
			input.value = "";
		}
	}
	input.value = put_commas(input.value);
}

function checkPayment(input) {

	input.value = checkNum(input);
	if(input.value == null ||
         input.value.length == 0 ||
	   input.value == "NaN") {
		input.value = "";
	}
	else {
		if(parseFloat(input.value) < 0) {
			input.value = "";
		}
	}

	input.value = put_commas(input.value);
}

function checkInterest(input) {

	input.value = parseFloat(input.value);
	if(input.value == null ||
         input.value.length == 0 ||
	   input.value == "NaN") {
		input.value = "";
	}
	else {
		if(parseFloat(input.value) <= 0 ||
		   parseFloat(input.value) > 100.0) {
			input.value = "";
		}
	}
}



function calcTotal(input) {

	if(input.interest.value == "" ||
	   input.nper.value == "" ||
	   input.pmt.value == "") {
		input.total.value = "";
	}
	else {

var salary=strip_commas(input.pmt.value);
var tmp1=0;
var tmp2=0;
var rawIncome=0;

if (salary<20000) {tmp1=0; window.alert("Your salary must be $20,000 or greater.");}
else if (salary==20000) {tmp1=(salary-6000)*0.17;}
else if ((salary>20000) && (salary<=50000)) {tmp1=2380+(salary-20000)*0.3;}
else if ((salary>50000) && (salary<=60000)) {tmp1=11380+(salary-50000)*0.42;}
else if (salary>60000) {tmp1=15580+(salary-60000)*0.47;}

// window.alert(tmp1);

if (salary<20000) {input.pmt.focus();}
else if (salary>=20000){


if (salary<13127) {tmp2=0;}
else {tmp2=salary*0.015;}

// window.alert(tmp2);

rawIncome=(salary-tmp1-tmp2)/12;

// window.alert(rawIncome);



		i = strip_commas(input.interest.value) / 1200;
		n = strip_commas(input.nper.value) * 12;

		tmp = 1000*(i+(i/(Math.pow((1+i),n) -1)))+1;
		tmp = 1000*rawIncome/tmp;


//		tmp = (1/i) * (1 - Math.pow(1/(1+i), n));
//		tmp = rawIncome * tmp;
		tmp = Math.round(tmp*100) / 100;
		input.total.value = put_commas(tmp);


		if(input.total.value == null ||
	         input.total.value.length == 0 ||
		   input.total.value == "NaN") {
			input.total.value = "";



//		i = strip_commas(input.interest.value) / 100;
//		i = i / 12;
//		n = strip_commas(input.nper.value) * 12;
//		tmp = (1/i) * (1 - Math.pow(1/(1+i), n));
//		tmp = strip_commas(input.pmt.value) * tmp;
//		tmp = Math.round(tmp*100) / 100;
//		input.total.value = put_commas(tmp);
//		if(input.total.value == null ||
//	         input.total.value.length == 0 ||
//		   input.total.value == "NaN") {
//			input.total.value = "";
		}}
	}
}

// // // // // // // // // // // // // // // // // // // // // // //
// // // // // // // // // // // // // // // // // // // // // // //

var dblInterestRate, intNumPeriods, dblLoan, dblContribution, dblTerm, intNumMonths, intPeriod, varNumPeriods, tmp
var bRc

function calcForm(input) {

		bRc = ioCalcRepayment(input);

}

function checkLoan(input) {

	  input.value = checkNum(input);

        input.value = parseFloat(input.value);

        if(input.value == null ||

         input.value.length == 0 ||

           input.value == "NaN") {

                input.value = "";

        }

        else {

                if(parseFloat(input.value) < 0) {

                        input.value = "";

                }

        }


		input.value = put_commas(input.value);

}

function ioCalcLoan(input) {

	if(input.InterestRate.value == "" ||
	   input.RepaymentAmount.value == "") {
		input.LoanAmount.value = "";
	}

	else {


		intPeriod = input.lstPeriod.value
		varNumPeriods = input.lstTerm.value * intPeriod

		dblInterestRate = strip_commas(input.InterestRate.value) / 100;
	    dblInterestRate = dblInterestRate / intPeriod

		if (varNumPeriods > 1) {

			tmp = (1/dblInterestRate) * (1 - Math.pow(1/(1+dblInterestRate), varNumPeriods));
			tmp = strip_commas(input.RepaymentAmount.value) * tmp;
			tmp = Math.round(tmp*100) / 100;
			input.LoanAmount.value = put_commas(tmp);
			if(input.LoanAmount.value == null ||
				 input.LoanAmount.value.length == 0 ||
			   input.LoanAmount.value == "NaN") {
				input.LoanAmount.value = "";
			}
		}
	}
}

function ioCalcRepayment(input) {

	if(input.InterestRate.value == "" ||
	   input.LoanAmount.value == "") {
		input.RepaymentAmount.value = "";
	}

	else if (input.loanType[1].checked) {
		dblInterestRate = strip_commas(input.InterestRate.value) / 100
		tmp = strip_commas(input.LoanAmount.value) * dblInterestRate / 12;
		tmp = Math.round(tmp*100) / 100;
		input.RepaymentAmount.value = put_commas(tmp);
	}

        else {

		intPeriod = getListValue(input.lstPeriod)
		varNumPeriods = input.lstTerm.value * intPeriod

		dblInterestRate = strip_commas(input.InterestRate.value) / 100;
	    dblInterestRate = dblInterestRate / intPeriod


			if (varNumPeriods > 1) {

                tmp = (1/dblInterestRate) * (1 - Math.pow(1/(1+dblInterestRate), varNumPeriods));

                tmp = strip_commas(input.LoanAmount.value) / tmp;

                tmp = Math.round(tmp*100) / 100;

				input.RepaymentAmount.value = put_commas(tmp);

                if(input.RepaymentAmount.value == null ||

                 input.RepaymentAmount.value.length == 0 ||

                   input.RepaymentAmount.value == "NaN") {

                        input.RepaymentAmount.value = "";

                }
			}
        }

}

function getListValue(input) {
	for (var i = 0; i < input.length; i++) {
		if (input.options[i].selected == true) {
			return input.options[i].value
		}
	}
	return null
}


// // // // // // // // // // // // // // // // // // // // // // //
// // // // // // // // // // // // // // // // // // // // // // //


function evalTiers(pAmount,sTier,sRate,per,sFixed){
	per = parseInt(per);
	var tier = sTier.split(",");
	var rate = sRate.split(",");
	var fixed = sFixed.split(",");
	var amount = Math.ceil(pAmount/per)*per;
	var amt = 0;
	var add = 0;
	var ded = 0;
	for(i=0; i < tier.length; i = i + 1){
		if(rate[i] == 0)
			amt = pAmount;
		else
			amt = amount;
		if(amt <= tier[i])
			return (amt - ded) * rate[i] / per + add + parseInt(fixed[i]);
		add = Math.floor((tier[i] - ded) * rate[i] / per + add);
		ded = tier[i];
	}
	return (amt - ded) * rate[i] / per + add + parseInt(fixed[i]);
}

//Stamp duty - get all the values
function getCBB(loan,price,state){
	var TF = 0;
	var SDP = 0;
	var SDL = 0;
	var MI = 0;
	var result = new Array();
	switch(state){
		case "NSW":{
			TF = 60;
			SDP = evalTiers(price,"14000,30000,80000,300000,1000000","1.25,1.5,1.75,3.5,4.5,5.5",100,"0,0,0,0,0,0");
			SDL = evalTiers(loan,"16000","0,4",1000,"5,5");
			break;
		}
		case "Qld":{
			TF = evalTiers(price,"180000","0,21.5",10000,"90.8,90.8");
			SDP = evalTiers(price,"250000,500000","1,3.5,3.75",100,"0,0,0");
			SDL = evalTiers(loan,"70000","0,0.4",100,"0,0");
			break;
		}
	}
	//MI = price * evalTiers(loan/price*100,"80,85","0,0,0",1,"0,0.5,1")/100;
	result[3] = TF + SDP + SDL;
	result[2] = TF;
	result[1] = SDP;
	result[0] = SDL;
	//result[5] = MI;
	return result;
}
function computeForm(form){

	tSDL = 0; tSDP = 0; tTF = 0; tT = 0;
	propertyPrice = parseInt(form.property.value);
	loanSize = parseInt(form.amount.value);

	x = getCBB(loanSize, propertyPrice,"NSW");
	form.nswStampDuty.value = format(x[0]);
	form.nswStampDuty2.value = format(x[1]);
	form.nswTransfer.value = format(x[2]);
	form.nswTotalDuty.value = format(x[3]);
	tSDL += x[0]; tSDP += x[1]; tTF += x[2]; tT += x[3];

	x = getCBB(loanSize, propertyPrice,"Qld");
	form.qldStampDuty.value = format(x[0]);
	form.qldStampDuty2.value = format(x[1]);
	form.qldTransfer.value = format(x[2]);
	form.qldTotalDuty.value = format(x[3]);
	tSDL += x[0]; tSDP += x[1]; tTF += x[2]; tT += x[3];

}

function format(num){
	dp = 0;
	if(isNaN(num)) return "-";
	dp=isNaN(dp)?0:dp;
	if(Math.round(num*10000000000)==0) return "0";
	var sign='';
	if(num<0) sign='-';
	num=Math.abs(num);
	var number=new String(Math.round(num*Math.pow(10,dp)));
	var dec="0000000000"+number.substring(number.length-dp,number.length);
	dec = dec.substring(dec.length-dp,dec.length);
	number=number.substring(0,number.length-dp);
	for(var i=Math.floor((number.length-1)/3)*3;i>=3;i-=3)
		number=number.substring(0,number.length-i)+","+number.substring(number.length-i,number.length);
	return sign+"$"+(number.length==0?'0':'')+number+(dp<1?'':'.')+dec;
}


// // // // // // // // // // // // // // // // // // // // // // //
// // // // // // // // // // // // // // // // // // // // // // //


var ftrep, term, ftamt, locamt, rate, locrep, adcst, chcst, rep, inc, nok, noa, fttot, loctot, ftper, locper, mnth;

function ftrepamt(form)
{
	term= document.calcform.term.value * 12;
	rate= document.calcform.rate.value / 100 / 12;
	ftamt= document.calcform.amount.value;
	locamt= document.calcform.amount.value;
	inc= document.calcform.income.value;
	rep= document.calcform.currep.value;
	fttot = 0;
	loctot= 0;
	ftper= 0;
	locper= 0;
	mnth= 0;

	ftrep= Math.floor((ftamt*rate)/(1-Math.pow((1+rate),(-1*term)))*100)/100;

	if (ftamt ==0)
		alert('Please enter a loan amount');
	else if (rate == 0)
		alert('Please enter an interest rate');
	else if (term == 0)
		alert('Please enter a loan term');
	else if (inc == 0)
		alert('Please enter a monthly income');
	else

		locrep= inc - rep;

		if (locrep < ftrep){
			alert('You do not have sufficient Surplus');
		}
		else{
			while (ftamt >= 0){
				ftamt = (ftamt * (1 + (rate))) - ftrep;
				fttot = ftrep + fttot;
				ftper = ftper + 1;
			}

			while (locamt >= 0){
				locamt = (locamt * (1 + (rate))) - locrep;
				loctot = locrep + loctot;
				locper= locper + 1;
			}
			document.calcform.result1.value= Math.round(fttot - loctot);
			document.calcform.result2.value= Math.round((ftper - locper)/12);
			mnth= ((ftper - locper)%12);
			//mnth=mnth*12;
			document.calcform.result3.value= mnth;
		}

}

// // // // // // //

function computeForm(form)
	{
	    if (form.property.value == null || form.property.value.length == 0)
		form.property.value = 0;
	    if (form.amount.value == null || form.amount.value.length == 0)
		form.amount.value = 0;

	    form.nswStampDuty.value = 0;
	    form.vicStampDuty.value = 0;
	    form.qldStampDuty.value = 0;
	    form.saStampDuty.value = 0;
	    form.waStampDuty.value = 0;
	    form.ntStampDuty.value = 0;
	    form.actStampDuty.value = 0;
	    form.tasStampDuty.value = 0;
	    form.nswStampDuty2.value = 0;
	    form.vicStampDuty2.value = 0;
	    form.qldStampDuty2.value = 0;
	    form.saStampDuty2.value = 0;
	    form.waStampDuty2.value = 0;
	    form.ntStampDuty2.value = 0;
	    form.actStampDuty2.value = 0;
	    form.tasStampDuty2.value = 0;
	    form.nswTransfer.value = 0;
	    form.vicTransfer.value = 0;
	    form.qldTransfer.value = 0;
	    form.saTransfer.value = 0;
	    form.waTransfer.value = 0;
	    form.ntTransfer.value = 0;
	    form.actTransfer.value = 0;
	    form.tasTransfer.value = 0;

	    var tempAmount = form.amount.value;
	    var tempProperty = form.property.value;


		if (form.amount.value >0 && form.amount.value <= 16000)
		    form.nswStampDuty.value = 5;
	    if (form.amount.value > 16000)
		{
		 tempAmount = (tempAmount - 16000) / 1000;
		 for (var i=0, k=1; tempAmount >i && tempAmount > k ; i++, k++);
		 form.nswStampDuty.value = (k * 4) + 5;
		}

		if (form.property.value >0 && form.property.value <= 14000)
		{
		    tempProperty = (tempProperty / 100);
		for (var i=0, k=1; tempProperty >i && tempProperty > k ; i++, k++);
		form.nswStampDuty2.value = eval(form.nswStampDuty2.value) + (k * 1.25);
	    }

	    if (form.property.value > 14000 && form.property.value <= 30000)
		{
		    tempProperty = (tempProperty - 14000) / 100;
		    for (var i=0, k=1; tempProperty >i && tempProperty > k ; i++, k++);
		form.nswStampDuty2.value = eval(form.nswStampDuty2.value) + (k * 1.5) + 175;
	     }

	    if (form.property.value > 30000 && form.property.value <= 80000)
		{
			tempProperty = (tempProperty - 30000) / 100;
		    for (var i=0, k=1; tempProperty >i && tempProperty > k ; i++, k++);
		form.nswStampDuty2.value = eval(form.nswStampDuty2.value) + (k * 1.75) + 415;
	    }

	    if (form.property.value > 80000 && form.property.value <= 300000)
		{
		tempProperty = (tempProperty - 80000) / 100;
		for (var i=0, k=1; tempProperty >i && tempProperty > k ; i++, k++);
		form.nswStampDuty2.value = eval(form.nswStampDuty2.value) + (k * 3.5) + 1290;
	     }

	    if (form.property.value > 300000 && form.property.value <= 1000000)
		{
		tempProperty = (tempProperty - 300000) / 100;
		for (var i=0, k=1; tempProperty >i && tempProperty > k ; i++, k++);
		form.nswStampDuty2.value = eval(form.nswStampDuty2.value) + (k * 4.5) + 8990;
	    }
		if (form.property.value > 1000000)
		 {
		tempProperty = (tempProperty - 1000000) / 100;
		for (var i=0, k=1; tempProperty >i && tempProperty > k ; i++, k++);
		form.nswStampDuty2.value = eval(form.nswStampDuty2.value) + (k * 5.5) + 40490;
	    }


		form.nswTransfer.value = 56;



		tempAmount = form.amount.value;
		tempProperty = form.property.value;
		if (form.amount.value >0 && form.amount.value <= 10000)
		  form.vicStampDuty.value = 4;

		if (form.amount.value > 10000)
		{
			tempAmount = (tempAmount - 10000) / 200;
			for (var i=0, k=1; tempAmount >i && tempAmount > k ; i++, k++);
			form.vicStampDuty.value = 4 + (k * 0.8);
		}


		if (form.property.value >0 && form.property.value <= 20000)
		{
			form.vicStampDuty2.value = eval(tempProperty) * 0.014;
		}

		if (form.property.value > 20000 && form.property.value <=115000)
		{
			tempProperty = (tempProperty - 20000);
			form.vicStampDuty2.value = eval(tempProperty) * 0.024 + 280;
		}

		if (form.property.value > 115000 && form.property.value <=870000)
		{
			tempProperty = (tempProperty - 115000);
			form.vicStampDuty2.value = eval(tempProperty) * 0.06 + 2560;
		}

		if (form.property.value > 870000)
		{
			form.vicStampDuty2.value = eval(tempProperty) * 0.055;
		}


		tempProperty = form.property.value;
		if (form.property.value >0 && form.property.value <= 500000)
			form.vicTransfer.value = (tempProperty / 1000) * 2.46 + 90;
		if (form.property.value > 500000)
			form.vicTransfer.value = 1320;



		tempAmount = form.amount.value;
		tempProperty = form.property.value;
		tempAmount *= 0.004;
	    form.qldStampDuty.value = tempAmount;



	    if (form.property.value >0 && form.property.value <= 250000)
		{
			tempProperty = (tempProperty / 100);
		for (var i=0, k=1; tempProperty >i && tempProperty > k ; i++, k++);
		form.qldStampDuty2.value = eval(form.qldStampDuty2.value) + (k * 1.0);
	    }
	    if (form.property.value > 250000 && form.property.value < 500000)
		{
		tempProperty = (tempProperty - 250000) / 100;
		for (var i=0, k=1; tempProperty >i && tempProperty > k ; i++, k++);
		form.qldStampDuty2.value = eval(form.qldStampDuty2.value) + (k * 3.5) + 2500;
	    }
	    if (form.property.value >= 500000)
		{
		tempProperty = (tempProperty - 500000) / 100;
		for (var i=0, k=1; tempProperty >i && tempProperty > k ; i++, k++);
		form.qldStampDuty2.value = eval(form.qldStampDuty2.value) + (k * 3.75) + 11250;
	    }


	    tempProperty = form.property.value;
	    if (form.property.value <= 180000)
		form.qldTransfer.value = 87;
	    if (form.property.value > 180000)
		{
		tempProperty = (tempProperty - 180000) / 10000;
		for (var i=0, k=1; tempProperty >i && tempProperty > k ; i++, k++);
		form.qldTransfer.value = eval(form.qldTransfer.value) + (k * 20) + 87;
	     }




	    tempAmount = form.amount.value;
	    tempProperty = form.property.value;
	    if (form.amount.value <= 400)
		form.saStampDuty.value = 0;
	    if (form.amount.value > 400 && form.amount.value <= 4000)
		form.saStampDuty.value = 10;
	    if (form.amount.value > 4000 && form.amount.value <= 10000)
		{
		tempAmount = (tempAmount - 4000) / 100;
		for (var i=0, k=1; tempAmount >i && tempAmount > k ; i++, k++);
		form.saStampDuty.value = (k * 0.25) + 10;
	    }
	    if (form.amount.value > 10000)
		{
		tempAmount = (tempAmount - 10000) / 100;
		for (var i=0, k=1; tempAmount >i && tempAmount > k ; i++, k++);
		form.saStampDuty.value = (k * 0.35) + 25.00000000000001;
	    }

	    if (form.property.value >0 && form.property.value <= 12000)
		{
		tempProperty = (tempProperty / 100);
		for (var i=0, k=1; tempProperty >i && tempProperty > k ; i++, k++);
		form.saStampDuty2.value = eval(form.saStampDuty2.value) + (k * 1);
	    }
	    if (form.property.value > 12000 && form.property.value <=30000)
		{
		tempProperty = (tempProperty - 12000) / 100;
		for (var i=0, k=1; tempProperty >i && tempProperty > k ; i++, k++);
		form.saStampDuty2.value = eval(form.saStampDuty2.value) + (k * 2) + 120;
	    }
	    if (form.property.value > 30000 && form.property.value <=50000)
		{
		tempProperty = (tempProperty - 30000) / 100;
		for (var i=0, k=1; tempProperty >i && tempProperty > k ; i++, k++);
		form.saStampDuty2.value = eval(form.saStampDuty2.value) + (k * 3) + 480;
	    }
	    if (form.property.value > 50000 && form.property.value <=100000)
		{
		tempProperty = (tempProperty - 50000) / 100;
		for (var i=0, k=1; tempProperty >i && tempProperty > k ; i++, k++);
		form.saStampDuty2.value = eval(form.saStampDuty2.value) + (k * 3.5) + 1080;
	    }
	    if (form.property.value > 100000 && form.property.value <=1000000)
		{
		tempProperty = (tempProperty - 100000) / 100;
		for (var i=0, k=1; tempProperty >i && tempProperty > k ; i++, k++);
		form.saStampDuty2.value = eval(form.saStampDuty2.value) + (k * 4) + 2830;
	    }
	    if (form.property.value > 1000000)
		{
		tempProperty = (tempProperty - 1000000) / 100;
		for (var i=0, k=1; tempProperty >i && tempProperty > k ; i++, k++);
		form.saStampDuty2.value = eval(form.saStampDuty2.value) + (k * 4.5) + 38830;
	    }

	    tempProperty = form.property.value;



		if (form.property.value <= 5000)
		form.saTransfer.value = 80;
	    if (form.property.value > 5000 && form.property.value <= 20000)
		form.saTransfer.value = 90;
	    if (form.property.value > 20000 && form.property.value <= 40000)
		form.saTransfer.value = 100;
	    if (form.property.value > 40000 && form.property.value <= 50000)
		form.saTransfer.value = 142;
	    if (form.property.value > 50000) {
		tempProperty = (tempProperty - 50000) / 10000;
		for (var i=0, k=1; tempProperty >i && tempProperty > k ; i++, k++);
		form.saTransfer.value = (k * 45) + 142;
		}





		tempAmount = form.amount.value;
		tempProperty = form.property.value;
		form.waStampDuty.value = tempAmount * 0.0025;


	    if (form.property.value >0 && form.property.value <= 80000)
		{
		tempProperty = (tempProperty / 100);
		for (var i=0, k=1; tempProperty >i && tempProperty > k ; i++, k++);
		form.waStampDuty2.value = eval(form.waStampDuty2.value) + (k * 1.95);
	    }
	    if (form.property.value > 80000 && form.property.value <= 100000)
		{
		tempProperty = (tempProperty - 80000) / 100;
		for (var i=0, k=1; tempProperty >i && tempProperty > k ; i++, k++);
		form.waStampDuty2.value = eval(form.waStampDuty2.value) + (k * 2.85) + 1560;
	    }
	    if (form.property.value > 100000 && form.property.value <= 250000)
		{
		tempProperty = (tempProperty - 100000) / 100;
		for (var i=0, k=1; tempProperty >i && tempProperty > k ; i++, k++);
		form.waStampDuty2.value = eval(form.waStampDuty2.value) + (k * 3.7) + 2130;
	    }
	    if (form.property.value > 250000 && form.property.value <= 500000)
		{
		tempProperty = (tempProperty - 250000) / 100;
		for (var i=0, k=1; tempProperty >i && tempProperty > k ; i++, k++);
		form.waStampDuty2.value = eval(form.waStampDuty2.value) + (k * 4.55) + 7680;
	    }
	    if (form.property.value > 500000)
		{
		tempProperty = (tempProperty - 500000) / 100;
		for (var i=0, k=1; tempProperty >i && tempProperty > k ; i++, k++);
		form.waStampDuty2.value = eval(form.waStampDuty2.value) + (k * 4.85) + 19055;
	    }

	    tempProperty = form.property.value;
	    if (form.property.value <= 85000)
		form.waTransfer.value = 64;
	    if (form.property.value > 85000 && form.property.value <= 120000)
		form.waTransfer.value = 74;
	    if (form.property.value > 120000 && form.property.value <= 200000)
		form.waTransfer.value = 94;
	    if (form.property.value > 200000)
		{
		tempProperty = (tempProperty - 200000) / 100000;
		for (var i=0, k=1; tempProperty >i && tempProperty > k ; i++, k++);
		form.waTransfer.value = (k * 20) + 94;
	    }



		 tempAmount = form.amount.value;
		 tempProperty = form.property.value;
	    form.ntStampDuty.value = 0;

	    tempProperty /= 1000;

	    var tempP = tempProperty;
	    tempProperty *= tempProperty;

	      if (form.property.value <= 500000 )
		  {
			form.ntStampDuty2.value = eval(tempProperty * 0.065) + eval(21 * tempP);
	      }

	      if (form.property.value > 500000)
		  {
		  form.ntStampDuty2.value = (form.property.value * 0.054);
	      }
	      form.ntTransfer.value = 90;







		tempAmount = form.amount.value;
		tempProperty = form.property.value;
	    form.actStampDuty.value = 0;

	    if (form.property.value >0 && form.property.value <= 14000)
		{
		tempProperty = (tempProperty / 100);
		for (var i=0, k=1; tempProperty >i && tempProperty > k ; i++, k++);
		form.actStampDuty.value = eval(form.actStampDuty.value) + (k * 1.25);
	    }
	    if (form.property.value > 14000 && form.property.value <= 30000)
		{
		tempProperty = (tempProperty -1400) / 100;
		for (var i=0, k=1; tempProperty >i && tempProperty > k ; i++, k++);
		form.actStampDuty2.value = eval(form.actStampDuty2.value) + (k * 1.5) + 175;
	    }
	    if (form.property.value > 30000 && form.property.value <= 60000)
		{
		tempProperty = (tempProperty - 30000) / 100;
		for (var i=0, k=1; tempProperty >i && tempProperty > k ; i++, k++);
		form.actStampDuty2.value = eval(form.actStampDuty2.value) + (k * 2) + 415;
	    }
	    if (form.property.value > 60000 && form.property.value <= 100000)
		{
		tempProperty = (tempProperty - 60000) / 100;
		for (var i=0, k=1; tempProperty >i && tempProperty > k ; i++, k++);
		form.actStampDuty2.value = eval(form.actStampDuty2.value) + (k * 2.5) + 1015;
	    }
	    if (form.property.value > 100000 && form.property.value <= 300000)
		{
		tempProperty = (tempProperty - 100000) / 100;
		for (var i=0, k=1; tempProperty >i && tempProperty > k ; i++, k++);
		form.actStampDuty2.value = eval(form.actStampDuty2.value) + (k * 3.5) + 2015;
	    }
	    if (form.property.value > 300000 && form.property.value <= 1000000)
		{
		tempProperty = (tempProperty - 300000) / 100;
		for (var i=0, k=1; tempProperty >i && tempProperty > k ; i++, k++);
		form.actStampDuty2.value = eval(form.actStampDuty2.value) + (k * 4.5) + 9015;
	    }

	    form.actTransfer.value = 140;


		tempAmount = form.amount.value;
		tempProperty = form.property.value;
	    if (form.amount.value >0 && form.amount.value <= 8000)
		form.tasStampDuty.value = 20;
	    if (form.amount.value > 8000 && form.amount.value <= 10000)
		{
		tempAmount = (tempAmount - 8000) / 100;
		for (var i=0, k=1; tempAmount >i && tempAmount > k ; i++, k++);
		form.tasStampDuty.value = (k * 0.25) + 20.00000000000001;
		}
	    if (form.amount.value > 10000)
		{
		tempAmount = (tempAmount - 10000) / 100;
		for (var i=0, k=1; tempAmount >i && tempAmount > k ; i++, k++);
		form.tasStampDuty.value = (k * 0.35) + 25.00000000000001;
	    }

	    if (form.property.value >0 && form.property.value <= 1300)

		form.tasStampDuty2.value = eval(form.tasStampDuty2.value) + 20;
	    if (form.property.value > 1300 && form.property.value <= 10000)
		{
		tempProperty = (tempProperty - 1300) / 100;
		for (var i=0, k=1; tempProperty >i && tempProperty > k ; i++, k++);
		form.tasStampDuty2.value = eval(form.tasStampDuty2.value) + (k * 1.5) + 20;
	    }
	    if (form.property.value > 10000 && form.property.value <= 30000)
		{
		tempProperty = (tempProperty - 10000) / 100;
		for (var i=0, k=1; tempProperty >i && tempProperty > k ; i++, k++);
		form.tasStampDuty2.value = eval(form.tasStampDuty2.value) + (k * 2) + 150;
	    }
	    if (form.property.value > 30000 && form.property.value <= 75000)
		{
		tempProperty = (tempProperty - 30000) / 100;
		for (var i=0, k=1; tempProperty >i && tempProperty > k ; i++, k++);
		form.tasStampDuty2.value = eval(form.tasStampDuty2.value) + (k * 2.5) + 550;
	    }
	    if (form.property.value > 75000 && form.property.value <= 150000)
		{
		tempProperty = (tempProperty - 75000) / 100;
		for (var i=0, k=1; tempProperty >i && tempProperty > k ; i++, k++);
		form.tasStampDuty2.value = eval(form.tasStampDuty2.value) + (k * 3) + 1675;
	    }
	    if (form.property.value > 150000 && form.property.value <= 225000)
		{
		tempProperty = (tempProperty - 150000) / 100;
		for (var i=0, k=1; tempProperty >i && tempProperty > k ; i++, k++);
		form.tasStampDuty2.value = eval(form.tasStampDuty2.value) + (k * 3.5) + 3925;
	    }
	    if (form.property.value > 225000)
		{
		tempProperty = (tempProperty - 225000) / 100;
		for (var i=0, k=1; tempProperty >i && tempProperty > k ; i++, k++);
		form.tasStampDuty2.value = eval(form.tasStampDuty2.value) + (k * 4) + 6550;
	    }

	    form.tasTransfer.value = 130;


		form.nswTotalDuty.value = eval(form.nswStampDuty.value) + eval(form.nswStampDuty2.value)
			+ eval(form.nswTransfer.value);
		form.vicTotalDuty.value = eval(form.vicStampDuty.value) + eval(form.vicStampDuty2.value)
					+ eval(form.vicTransfer.value);
		form.qldTotalDuty.value = eval(form.qldStampDuty.value) + eval(form.qldStampDuty2.value)
			    + eval(form.qldTransfer.value);
		form.saTotalDuty.value = eval(form.saStampDuty.value) + eval(form.saStampDuty2.value)
			    + eval(form.saTransfer.value);
		form.waTotalDuty.value = eval(form.waStampDuty.value) + eval(form.waStampDuty2.value)
			    + eval(form.waTransfer.value);
		form.ntTotalDuty.value = eval(form.ntStampDuty.value) + eval(form.ntStampDuty2.value)
			    + eval(form.ntTransfer.value);
		form.actTotalDuty.value = eval(form.actStampDuty.value) + eval(form.actStampDuty2.value)
			    + eval(form.actTransfer.value);
		form.tasTotalDuty.value = eval(form.tasStampDuty.value) + eval(form.tasStampDuty2.value)
			    + eval(form.tasTransfer.value);



		form.nswStampDuty.value = format(round(form.nswStampDuty.value));
		form.vicStampDuty.value = format(round(form.vicStampDuty.value));
		form.qldStampDuty.value = format(round(form.qldStampDuty.value));
		form.saStampDuty.value = format(round(form.saStampDuty.value));
		form.waStampDuty.value = format(round(form.waStampDuty.value));
		form.ntStampDuty.value = format(round(form.ntStampDuty.value));
		form.actStampDuty.value = format(round(form.actStampDuty.value));
		form.tasStampDuty.value = format(round(form.tasStampDuty.value));

		form.nswStampDuty2.value = format(round(form.nswStampDuty2.value));
		form.vicStampDuty2.value = format(round(form.vicStampDuty2.value));
		form.qldStampDuty2.value = format(round(form.qldStampDuty2.value));
		form.saStampDuty2.value = format(round(form.saStampDuty2.value));
		form.waStampDuty2.value = format(round(form.waStampDuty2.value));
		form.ntStampDuty2.value = format(round(form.ntStampDuty2.value));
		form.actStampDuty2.value = format(round(form.actStampDuty2.value));
		form.tasStampDuty2.value = format(round(form.tasStampDuty2.value));

		form.nswTotalDuty.value = format(round(form.nswTotalDuty.value));
		form.vicTotalDuty.value = format(round(form.vicTotalDuty.value));
		form.qldTotalDuty.value = format(round(form.qldTotalDuty.value));
		form.saTotalDuty.value = format(round(form.saTotalDuty.value));
		form.waTotalDuty.value = format(round(form.waTotalDuty.value));
		form.ntTotalDuty.value = format(round(form.ntTotalDuty.value));
		form.actTotalDuty.value = format(round(form.actTotalDuty.value));
		form.tasTotalDuty.value = format(round(form.tasTotalDuty.value));


		form.nswTransfer.value = format(round(form.nswTransfer.value));
		form.vicTransfer.value = format(round(form.vicTransfer.value));
		form.qldTransfer.value = format(round(form.qldTransfer.value));
		form.saTransfer.value = format(round(form.saTransfer.value));
		form.waTransfer.value = format(round(form.waTransfer.value));
		form.ntTransfer.value = format(round(form.ntTransfer.value));
		form.actTransfer.value = format(round(form.actTransfer.value));
		form.tasTransfer.value = format(round(form.tasTransfer.value));
	}





	function format(number)
	{
		if (number.length > 9 && number.length <= 12)
		{
		   number = "$" + (number.substring(0,number.length-9) +
		   "," + number.substring(number.length-9,number.length-6) +
		   "," + number.substring(number.length-6,number.length));
		   return number;
		}

		if (number.length > 6 && number.length <= 9)
		{
			number = "$" + (number.substring(0,number.length-6) +
			"," + (number.substring(number.length-6,number.length)));
			return number;
		}
		return "$" + number;
	}


	function round(number)
	{
		var dollars = Math.floor(number);
		for (var decimalAt = 0; decimalAt < number.length; decimalAt++)
		{
			if (number.charAt(decimalAt)==".")
			break;
		}
		var cents = "" + Math.round(number * 100);
		cents = cents.substring(cents.length-2, cents.length);
		dollars += ((number.charAt(decimalAt+2)=="9")&&(cents=="00"))? 1 : 0;
		return (dollars + "." + cents)
	}


	function clearForm(form)
	{
		form.amount.value = "";
		form.property.value = "";
	}

