function computeStampForm(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 = "";
}