function StampDuty_recalculate()
{
    var __reg2 = calc.calcInit.getValue("loan");
    var __reg1 = calc.calcInit.getValue("property");
    if (__reg2 > __reg1 * 1.1) 
    {
        calc.calcInit.getObject("loan").setValue(__reg1 * 1.1);
    }
    notesResult.text = "";
}
function calculateACT(loan, amt, propType, firsthome)
{    

		$("#wa-eligible").hide();

    var __reg1 = amt;
    var duty;
    var notes;
    var mortReg = 96;
    var __reg3 = 189;
    var __reg2 = 0;
    
    if (firsthome && propType && __reg1 < 422000)
    {
        if (__reg1 <= 349800) 
        {
            duty = 20;
        }
        else 
        {
            duty = (__reg1 - 349800) * 0.2245;
            if (duty < 20) 
            {
                duty = 20;
            }
        }
    }
    else 
    {
        if (__reg1 <= 100000) 
        {
            duty = Math.max(Math.ceil(__reg1 / 100) * 2, 20);
        }
        else 
        {
            if (__reg1 <= 200000) 
            {
                duty = Math.ceil((__reg1 - 100000) / 100) * 3.5 + 2000;
            }
            else 
            {
                if (__reg1 <= 300000) 
                {
                    duty = Math.ceil((__reg1 - 200000) / 100) * 4 + 5500;
                }
                else 
                {
                    if (__reg1 <= 500000) 
                    {
                        duty = Math.ceil((__reg1 - 300000) / 100) * 5.5 + 9500;
                    }
                    else 
                    {
                        if (__reg1 <= 1000000) 
                        {
                            duty = Math.ceil((__reg1 - 500000) / 100) * 5.75 + 20500;
                        }
                        else 
                        {
                            duty = Math.ceil((__reg1 - 1000000) / 100) * 6.75 + 49250;
                        }
                    }
                }
            }
        }
    }
    __reg2 = 0;
    notes = "- Eligibility for the home buyer concession is determined by income, the number of dependent children and property ownership in the last 2 years.\n- Home buyer concession is available for vacant blocks is determined by the value of the land.";
    display(duty, __reg2, mortReg, __reg3, notes);
}
function calculateNSW(loan, amt, propType, firsthome)
{

		$("#wa-eligible").hide();

    var __reg1 = amt;
    var __reg3 = loan;
    var __reg2 = undefined;
    var loanduty;
    var mortReg;
    var trans;
    var notes;
    var loandutyPercentage = 1;
    mortReg = 95;
    trans = 190;
    if (firsthome && __reg1 < 600000 && propType) 
    {
        if (__reg1 <= 500000) 
        {
            __reg2 = 0;
        }
        else 
        {
            __reg2 = __reg1 * 0.2249 - 112450;
        }
    }
    else 
    {
        __reg1 = Math.ceil(__reg1 / 100) * 100;
        if (__reg1 <= 14000) 
        {
            __reg2 = __reg1 / 100 * 1.25;
        }
        else 
        {
            if (__reg1 <= 30000) 
            {
                __reg2 = (__reg1 - 14000) / 100 * 1.5 + 175;
            }
            else 
            {
                if (__reg1 <= 80000) 
                {
                    __reg2 = (__reg1 - 30000) / 100 * 1.75 + 415;
                }
                else 
                {
                    if (__reg1 <= 300000) 
                    {
                        __reg2 = (__reg1 - 80000) / 100 * 3.5 + 1290;
                    }
                    else 
                    {
                        if (__reg1 <= 1000000) 
                        {
                            __reg2 = (__reg1 - 300000) / 100 * 4.5 + 8990;
                        }
                        else 
                        {
                            if (__reg1 < 3000000) 
                            {
                                __reg2 = (__reg1 - 1000000) / 100 * 5.5 + 40490;
                            }
                            else 
                            {
                                __reg2 = (__reg1 - 3000000) / 100 * 7 + 150490;
                            }
                        }
                    }
                }
            }
        }
    }
    var modded = __reg3 % 1000;
    if (modded != 0) 
    {
        var mod = 1000 - modded;
        __reg3 = 0 - (0 - __reg3 - mod);
    }
    if (__reg3 <= 16000) 
    {
        loanduty = 5;
    }
    else 
    {
        loanduty = (__reg3 - 16000) / 1000 * 4 + 5;
    }
    if (propType) 
    {
        loandutyPercentage = 0;
    }
    loanduty = 0;
    notes = "First home buyers purchasing a vacant block of residential land may be exempt from paying stamp duty or eligible for a discount depending on the value of the land.A reduction in duty on the purchase of new homes by people who are not first home buyers may also be available. Please visit the Office of State Revenue website for more details about the Housing Construction Acceleration Plan initiative.";
    display(__reg2, loanduty, mortReg, trans, notes);
}
function calculateNT(loan, amt, propType, firsthome)
{

		$("#wa-eligible").hide();

    var __reg2 = amt;
    var __reg1 = undefined;
    var loanduty;
    var mortReg;
    var trans;
    var __reg3 = undefined;
    mortReg = 105;
    trans = 105;
    loanduty = 0;
    __reg3 = "If property is your principal place of residence you may be eligible for a stamp duty rebate of up to $2,500. There may be stamp duty concessions available. Please contact the Territory Revenue Office for more details.";
    if (__reg2 <= 525000) 
    {
        __reg1 = 0.06571441 * Math.pow(__reg2 / 1000, 2) + 15 * (__reg2 / 1000);
    }
    else 
    {
        __reg1 = 0.0495 * __reg2;
    }
    if (firsthome && propType && __reg2 <= 750000) 
    {
        __reg1 = __reg1 - 15515.5;
    }
    if (__reg1 < 0) 
    {
        __reg1 = 0;
    }
    display(__reg1, loanduty, mortReg, trans, __reg3);
}

function calculateQLD(loan, property_value, propType, firsthome) {

		$("#wa-eligible").hide();

    var __reg2 = undefined;
    var loanduty;
    var mortReg;
    var trans;
    var notes;
    
    notes = "A new first home owner transfer duty concession will be available for the purchase of vacant land, where a residence is to be constructed, and will be determined by the value of the land.";
    trans = 132.5;
    
    if (property_value > 180000)  {
        trans = trans + Math.ceil((property_value - 180000) / 10000) * 27.9;
    }
    
    mortReg = 132.5;
    loanduty = 0;
     
    __reg2 = 0;
    
    var __reg3 = 0;
    if (firsthome) {
        if (property_value < 509999.99) {
            __reg3 = 15525;
        } else {
            if (property_value < 519999.99) {
                __reg3 = 13925;
            } else {
                if (property_value < 529999.99) {
                    __reg3 = 12325;
                } else {
                    if (property_value < 539999.99) {
                        __reg3 = 10725;
                    } else {
                        if (property_value < 549999.99) {
                            __reg3 = 9125;
                        } else {
                            if (property_value < 559999.99) {
                                __reg3 = 7750;
                            } else {
                                if (property_value < 569999.99) {
                                    __reg3 = 6000;
                                } else {
                                    if (property_value < 579999.99) {
                                        __reg3 = 4500;
                                    } else {
                                        if (property_value < 589999.99) {
                                            __reg3 = 3000;
                                        } else {
                                            if (property_value < 599999.99) {
                                                __reg3 = 1500;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }

       __reg2 = __reg3;
    }

    if (property_value < 5000) {
        __reg2 = 0;
    } else {
        if (property_value <= 105000) {
            __reg2 = Math.ceil((property_value - 5000) / 100) * 1.5;
        } else {
            if (property_value <= 480000) {
                __reg2 = 1500 + Math.ceil((property_value - 105000) / 100) * 3.5;
            } else {
                if (property_value <= 980000) {
                    __reg2 = 14625 + Math.ceil((property_value - 480000) / 100) * 4.5;
                } else {
                    __reg2 = 37125 + Math.ceil((property_value - 980000) / 100) * 5.25;
                }
            }
        }
    }

		if(propType) {
			//__reg2 = 0;
		}

    display(__reg2, loanduty, mortReg, trans, notes);
}
function calculateSA(loan, amt, propType, firsthome)
{

		$("#wa-eligible").hide();

    var __reg1 = amt;
    var transfer;
    var __reg2 = undefined;
    var __reg3 = undefined;
    var mortReg;
    var loanduty;
    if (__reg1 <= 5000) 
    {
        trans = 117;
    }
    else 
    {
        if (__reg1 <= 20000) 
        {
            trans = 131;
        }
        else 
        {
            if (__reg1 <= 40000) 
            {
                trans = 146;
            }
            else 
            {
                trans = Math.ceil((__reg1 - 50000) / 10000) * 65 + 209;
            }
        }
    }
    mortReg = 117;
    __reg3 = "A First Home Buyers Grant of $4,000 is available for first home purchases with a market value of up to $400,000 and phases out for property with market values between $400,000 and $450,000 by $8 for every $100 in excess of $400,000.\n\n The FHBG is in addition to the $7,000 First Home Owner Grant.\n\n A First Home Owners Boost Scheme is available to contracts entered into on or after 14 October 2008, it provides an additional $7,000 to first home buyers purchasing an established home or $14,000 for a newly-constructed home on contracts signed before the end of June 2009.";
    __reg1 = Math.ceil(__reg1 / 100) * 100;
    if (__reg1 <= 12000) 
    {
        __reg2 = __reg1 / 100 * 1;
    }
    else 
    {
        if (__reg1 <= 30000) 
        {
            __reg2 = (__reg1 - 12000) / 100 * 2 + 120;
        }
        else 
        {
            if (__reg1 <= 50000) 
            {
                __reg2 = (__reg1 - 30000) / 100 * 3 + 480;
            }
            else 
            {
                if (__reg1 <= 100000) 
                {
                    __reg2 = (__reg1 - 50000) / 100 * 3.5 + 1080;
                }
                else 
                {
                    if (__reg1 <= 200000) 
                    {
                        __reg2 = (__reg1 - 100000) / 100 * 4 + 2830;
                    }
                    else 
                    {
                        if (__reg1 <= 250000) 
                        {
                            __reg2 = (__reg1 - 200000) / 100 * 4.25 + 6830;
                        }
                        else 
                        {
                            if (__reg1 <= 300000) 
                            {
                                __reg2 = (__reg1 - 250000) / 100 * 4.75 + 8955;
                            }
                            else 
                            {
                                if (__reg1 <= 500000) 
                                {
                                    __reg2 = (__reg1 - 300000) / 100 * 5 + 11330;
                                }
                                else 
                                {
                                    __reg2 = (__reg1 - 500000) / 100 * 5.5 + 21330;
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    if (firsthome && propType) 
    {
        __reg1 = Math.ceil(__reg1 / 100) * 100;
        if (__reg1 <= 12000) 
        {
            __reg2 = __reg1 / 100 * 1;
        }
        else 
        {
            if (__reg1 <= 30000) 
            {
                __reg2 = (__reg1 - 12000) / 100 * 2 + 120;
            }
            else 
            {
                if (__reg1 <= 50000) 
                {
                    __reg2 = (__reg1 - 30000) / 100 * 3 + 480;
                }
                else 
                {
                    if (__reg1 <= 100000) 
                    {
                        __reg2 = (__reg1 - 50000) / 100 * 3.5 + 1080;
                    }
                    else 
                    {
                        if (__reg1 <= 200000) 
                        {
                            __reg2 = (__reg1 - 100000) / 100 * 4 + 2830;
                        }
                        else 
                        {
                            if (__reg1 <= 250000) 
                            {
                                __reg2 = (__reg1 - 200000) / 100 * 4.25 + 6830;
                            }
                            else 
                            {
                                if (__reg1 <= 300000) 
                                {
                                    __reg2 = (__reg1 - 250000) / 100 * 4.75 + 8955;
                                }
                                else 
                                {
                                    if (__reg1 <= 500000) 
                                    {
                                        __reg2 = (__reg1 - 300000) / 100 * 5 + 11330;
                                    }
                                    else 
                                    {
                                        __reg2 = (__reg1 - 500000) / 100 * 5.5 + 21330;
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    loanduty = 0;
    display(__reg2, loanduty, mortReg, trans, __reg3);
}
function calculateTAS(loan, amt, propType, firsthome)
{

		$("#wa-eligible").hide();

    var __reg1 = amt;
    duty;
    loanduty;
    mortReg;
    trans;
    notes;
    mortReg = 85.5;
    trans = 131;
    notes = "There may be concessions available for purchasing vacant land, depending on the value of the land.";
    if (__reg1 <= 1300) 
    {
        duty = 20;
    }
    else 
    {
        if (__reg1 <= 10000) 
        {
            duty = Math.ceil(__reg1 / 100) * 1.5;
        }
        else 
        {
            if (__reg1 <= 30000) 
            {
                duty = Math.ceil((__reg1 - 10000) / 100) * 2 + 150;
            }
            else 
            {
                if (__reg1 <= 75000) 
                {
                    duty = Math.ceil((__reg1 - 30000) / 100) * 2.5 + 550;
                }
                else 
                {
                    if (__reg1 <= 150000) 
                    {
                        duty = Math.ceil((__reg1 - 75000) / 100) * 3 + 1675;
                    }
                    else 
                    {
                        if (__reg1 <= 225000) 
                        {
                            duty = Math.ceil((__reg1 - 150000) / 100) * 3.5 + 3925;
                        }
                        else 
                        {
                            duty = Math.ceil((__reg1 - 225000) / 100) * 4 + 6550;
                        }
                    }
                }
            }
        }
    }
    notes = "";
    if (firsthome && propType) 
    {
        if (__reg1 < 140000) 
        {
            duty = 0;
        }
        else 
        {
            if (__reg1 < 350000) 
            {
                notes = "A rebate of up to $4,000 is available to First Home Owners purchasing property valued between $140,000 and $350,000. Other concessions may be available, contact the State Revenue Office for full details.";
            }
        }
    }
    if (NotesTas.length == 0) 
    {
        notes = "Other concessions may be available, contact the State Revenue Office for full details.";
    }
    loanduty = 0;
    display(duty, loanduty, mortReg, trans, notes);
}
function calculateVIC(loan, amt, propType, firsthome)
{

		$("#wa-eligible").hide();

    var __reg1 = amt;
    var __reg3 = undefined;
    var modded;
    var __reg2 = undefined;
    var notes;
    var mortReg;
    var loanduty;
    __reg3 = Math.ceil(Math.floor(__reg1 / 1000) * 2.46 + 119.4);
    if (__reg3 > 1350) 
    {
        __reg3 = 1350;
    }
    __reg3 = Math.ceil(__reg3);
    mortReg = 98;
    loanduty = 0;
    if (propType) 
    {
        if (__reg1 <= 25000) 
        {
            __reg2 = __reg1 / 100 * 1.4;
        }
        else 
        {
            if (__reg1 > 25000 && __reg1 <= 130000) 
            {
                __reg2 = (__reg1 - 25000) / 100 * 2.4 + 350;
            }
            else 
            {
                if (__reg1 > 130000 && __reg1 <= 440000) 
                {
                    __reg2 = (__reg1 - 130000) / 100 * 5 + 2870;
                }
                else 
                {
                    if (__reg1 > 440000 && __reg1 <= 550000) 
                    {
                        __reg2 = (__reg1 - 440000) / 100 * 6 + 18370;
                    }
                    else 
                    {
                        if (__reg1 > 550000 && __reg1 <= 960000) 
                        {
                            __reg2 = (__reg1 - 550000) / 100 * 6 + 28070;
                        }
                        else 
                        {
                            __reg2 = __reg1 / 100 * 5.5;
                        }
                    }
                }
            }
        }
    }
    else 
    {
        if (__reg1 <= 25000) 
        {
            __reg2 = __reg1 / 100 * 1.4;
        }
        else 
        {
            if (__reg1 > 25000 && __reg1 <= 130000) 
            {
                __reg2 = (__reg1 - 25000) / 100 * 2.4 + 350;
            }
            else 
            {
                if (__reg1 > 130000 && __reg1 <= 960000) 
                {
                    __reg2 = (__reg1 - 130000) / 100 * 6 + 2870;
                }
                else 
                {
                    __reg2 = __reg1 / 100 * 5.5;
                }
            }
        }
    }
    notes = "- First home buyers now are eligible for both the First Home Bonus and the Principle Place of Residence (PPR) concession. \n- Further concessions are available for Home Buyers with Concession Cards and First Home Buyers with families. For full details of available concessions & eligibility requirements please contact the State Revenue Office.";
    display(__reg2, loanduty, mortReg, __reg3, notes);
}
function calculateWA(loanamount, amount, propType, firsthome)
{

		$("#wa-eligible").show();

    var __reg1 = amount;
    var __reg2 = undefined;
    if (__reg1 <= 85000) 
    {
        __reg2 = 110;
    }
    else 
    {
        if (__reg1 <= 120000) 
        {
            __reg2 = 120;
        }
        else 
        {
            if (__reg1 <= 200000) 
            {
                __reg2 = 140;
            }
            else 
            {
                if (__reg1 <= 300000) 
                {
                    __reg2 = 160;
                }
                else 
                {
                    if (__reg1 <= 400000) 
                    {
                        __reg2 = 180;
                    }
                    else 
                    {
                        if (__reg1 <= 500000) 
                        {
                            __reg2 = 200;
                        }
                        else 
                        {
                            if (__reg1 <= 600000) 
                            {
                                __reg2 = 220;
                            }
                            else 
                            {
                                if (__reg1 <= 700000) 
                                {
                                    __reg2 = 240;
                                }
                                else 
                                {
                                    if (__reg1 <= 800000) 
                                    {
                                        __reg2 = 260;
                                    }
                                    else 
                                    {
                                        if (__reg1 <= 900000) 
                                        {
                                            __reg2 = 280;
                                        }
                                        else 
                                        {
                                            if (__reg1 <= 1000000) 
                                            {
                                                __reg2 = 300;
                                            }
                                            else 
                                            {
                                                if (__reg1 <= 1100000) 
                                                {
                                                    __reg2 = 320;
                                                }
                                                else 
                                                {
                                                    if (__reg1 <= 1200000) 
                                                    {
                                                        __reg2 = 340;
                                                    }
                                                    else 
                                                    {
                                                        if (__reg1 <= 1300000) 
                                                        {
                                                            __reg2 = 360;
                                                        }
                                                        else 
                                                        {
                                                            if (__reg1 <= 1400000) 
                                                            {
                                                                __reg2 = 380;
                                                            }
                                                            else 
                                                            {
                                                                if (__reg1 <= 1500000) 
                                                                {
                                                                    __reg2 = 400;
                                                                }
                                                                else 
                                                                {
                                                                    if (__reg1 <= 1600000) 
                                                                    {
                                                                        __reg2 = 420;
                                                                    }
                                                                    else 
                                                                    {
                                                                        if (__reg1 <= 1700000) 
                                                                        {
                                                                            __reg2 = 440;
                                                                        }
                                                                        else 
                                                                        {
                                                                            if (__reg1 <= 1800000) 
                                                                            {
                                                                                __reg2 = 460;
                                                                            }
                                                                            else 
                                                                            {
                                                                                if (__reg1 <= 1900000) 
                                                                                {
                                                                                    __reg2 = 480;
                                                                                }
                                                                                else 
                                                                                {
                                                                                    if (__reg1 <= 2000000) 
                                                                                    {
                                                                                        __reg2 = 500;
                                                                                    }
                                                                                    else 
                                                                                    {
                                                                                        __reg2 = Math.ceil((__reg1 - 2000000) / 100000) * 20 + 500;
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    var mortgage = 110;
    var notes = "There may be concessions or rebates available for first home buyers purchasing vacant land and building homes.";
    var __reg3 = undefined;
    if (firsthome && propType && __reg1 <= 600000) 
    {
        if (__reg1 <= 500000) 
        {
            __reg3 = 0;
        }
        else 
        {
            if (__reg1 <= 600000) 
            {
                __reg3 = Math.ceil((__reg1 - 500000) / 100) * 22.51;
            }
        }
    }
    else 
    {
        if (__reg1 <= 120000) 
        {
            __reg3 = Math.ceil(__reg1 / 100) * 1.9;
        }
        else 
        {
            if (__reg1 > 120000 && __reg1 <= 150000) 
            {
                __reg3 = Math.ceil((__reg1 - 120000) / 100) * 2.85 + 2280;
            }
            else 
            {
                if (__reg1 > 150000 && __reg1 <= 360000) 
                {
                    __reg3 = Math.ceil((__reg1 - 150000) / 100) * 3.8 + 3135;
                }
                else 
                {
                    if (__reg1 > 360000 && __reg1 <= 725000) 
                    {
                        __reg3 = Math.ceil((__reg1 - 360000) / 100) * 4.75 + 11115;
                    }
                    else 
                    {
                        __reg3 = Math.ceil((__reg1 - 725000) / 100) * 5.15 + 28453;
                    }
                }
            }
        }
    }
    var loanduty = 0;
    display(__reg3, loanduty, mortgage, __reg2, notes);
}
function btnCalculateClick()
{
    var __reg2 = $("#loan").toNumber().val();
    var __reg3 = $("#property").toNumber().val();
    var propType = $('#living_property').is(':checked');
    var __reg1 = $('#first_home_buyer').is(':checked');

    switch ($('#state').val()) {
        case "0":calculateACT(__reg2, __reg3, propType, __reg1);break;
        case "1":calculateNSW(__reg2, __reg3, propType, __reg1);break;
        case "2":calculateNT(__reg2, __reg3, propType, __reg1);break;
        case "3":calculateQLD(__reg2, __reg3, propType, __reg1);break;
        case "4":calculateSA(__reg2, __reg3, propType, __reg1);break;
        case "5":calculateTAS(__reg2, __reg3, propType, __reg1);break;
        case "6":calculateVIC(__reg2, __reg3, propType, __reg1);break;
        case "7":calculateWA(__reg2, __reg3, propType, __reg1);break;
    }
}

function display(duty, loanduty, mortReg, trans, notes)
{
    $('#registration_fee').val(mortReg);
    $('#transfer_fee').val(trans);
    $('#stamp_duty_property').val(duty);
    $('#stamp_duty_loan').val(loanduty);
    $('#total').html(duty + loanduty + mortReg + trans);
    $('#text_area').html(notes);
    //calc.repaint("text"); //??

    $('#registration_fee').formatCurrency();
    $('#transfer_fee').formatCurrency();
    $('#stamp_duty_property').formatCurrency();
    $('#stamp_duty_loan').formatCurrency();
    $('#total').formatCurrency();
    
    $('#property').formatCurrency({roundToDecimalPlace:-2});
    $('#loan').formatCurrency({roundToDecimalPlace:-2});
}

