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;

	
	
	//END Declarations

	//NSW----------------------------------------------------------------------------------------------
	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;
	
	//VIC----------------------------------------------------------------------------------------------
	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;
	
	
	//QLD----------------------------------------------------------------------------------------------

/*
http://www.osr.qld.gov.au/duties/transfer-duty/exemptions-and-concessions/home-transfer-duty-concession-rates.shtml
http://www.osr.qld.gov.au/duties/about-duties/rates-of-duty.shtml

STAMPT SUTY AS AT 1st JULY 2008

PRIMARY RESIDENCE
	  $0 to $350,000  	$1.00 for each $100 or part of $100
$350,001 to $540,000 	$3,500 + $3.50 for every $100 or part of $100 over $350,000
$540,001 to $980,000 	$10,150 + $4.50 for every $100 or part of $100 over $540,000
$980,000 to	above    	$29,950 + $5.25 for every $100 or part of $100 over $980,000

INVESTMENT PROPERTY
	  $0 to $5,000  	 Nil
  $5,000 to $75,000  	$1.50 for each $100, or part of $100, by which the dutiable value is more than $5,000
 $75,000 to $540,000 	$1,050 plus $3.50 for each $100, or part of $100, by which the dutiable value is more than $75,000
$540,000 to $980,000  	$17,325 plus $4.50 for each $100, or part of $100, by which the dutiable value is more than $540,000
$980,000 to above	 	$37,125 plus $5.25 for each $100, or part of $100, by which the dutiable value is more than $980,000
*/

	form.qldStampDuty.value = tempAmount; 
		
		if (form.type.value == 'Primary'){
			if (form.property.value >0 && form.property.value <= 350000) 
				{ 
				tempProperty = (tempProperty / 100);
				form.qldStampDuty2.value = tempProperty * 1;
				}
			
			if (form.property.value > 350000 && form.property.value <= 540000) 
				{
				tempProperty = (tempProperty - 350000) / 100;
				form.qldStampDuty2.value = (tempProperty * 3.5) + 3500;
				}
			
			if (form.property.value > 540000 && form.property.value <= 980000) 
				{
				tempProperty = (tempProperty - 540000) / 100;
				form.qldStampDuty2.value = (tempProperty * 4.5) + 10150;
				}
			
			if (form.property.value >= 980000) 
				{
				tempProperty = (tempProperty - 980000) / 100;
				form.qldStampDuty2.value = (tempProperty * 5.25) + 29950;
				}
		} else {
			if (form.property.value >0 && form.property.value <= 5000) 
				{ 
				form.qldStampDuty2.value = 0;
				}
			
			if (form.property.value > 5000 && form.property.value <= 75000) 
				{ 
				tempProperty = (tempProperty - 5000) / 100;
				form.qldStampDuty2.value = tempProperty * 1.5;
				}
			
			if (form.property.value > 75000 && form.property.value <= 540000) 
				{
				tempProperty = (tempProperty - 75000) / 100;
				form.qldStampDuty2.value = (tempProperty * 3.5) + 1050;
				}
				
			if (form.property.value > 540000 && form.property.value <= 980000) 
				{
				tempProperty = (tempProperty - 540000) / 100;
				form.qldStampDuty2.value = (tempProperty * 4.5) + 17325;
				}
			
			if (form.property.value >= 980000) 
				{
				tempProperty = (tempProperty - 980000) / 100;
				form.qldStampDuty2.value = (tempProperty * 5.25) + 37125;
				}
		}
	
		
		
		
		
		
		
	form.qldTransfer.value = 87;
	tempAmount = form.amount.value;
	tempProperty = form.property.value;
	
	
	// SA----------------------------------------------------------------------------------------------
	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;
	
	//WA----------------------------------------------------------------------------------------------
	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;
	
	//NT----------------------------------------------------------------------------------------------
	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;
	
	//TAS----------------------------------------------------------------------------------------------
	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;
	
	//TRANSFER DUTY
	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));

} //END FUNCTION--------------------------------------------------------------------------------------------------
	
	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 = "";
	}
