//          +++++++++++++++++++++++++++++++++++
//          (C) Copyright 2003 - 2010 Niro Solutions Pty Limited ABN 89 106 967 140
//			+++++++++++++++++++++++++++++++++++
//			Version: July 2010
//			+++++++++++++++++++++++++++++++++++
//			Original author: Miles Glisovic
//			Last update completed by: Nina Beerling
//			Modification date: 28/05/2010
//			+++++++++++++++++++++++++++++++++++

var LOWINCOMETTAXOFFSET=1500;
var LOWINCOMETTAXOFFSET_REDUCESFROM=30000;
var LOWINCOMETTAXOFFSET_REDUCESBY=0.04;//4 cents
var LOWINCOMETTAXOFFSET_REDUCTIONSTOPS=67500;
var MEDICARE_MIN = 18488;
var MEDICARE_MID = 21751;
var MEDICARE_PCT_02 = 0.1;
var MEDICARE_PCT_0015 = 0.015;
var TAX_THRESHOLD_1 = 6000;
var TAX_THRESHOLD_2 = 37000;
var TAX_THRESHOLD_3 = 80000;
var TAX_THRESHOLD_4 = 180000;
var TAX_BASE_1 = 4650;
var TAX_BASE_2 = 17550;
var TAX_BASE_3 = 54550;
var TAX_RATE_1 = 0.15;
var TAX_RATE_2 = 0.30;
var TAX_RATE_3 = 0.37;
var TAX_RATE_4 = 0.45;

function getPAYETax(taxableInc)
{
    var incomeTax
    if(taxableInc <= TAX_THRESHOLD_1)
	    incomeTax = 0
    else if(taxableInc <= TAX_THRESHOLD_2)
	    incomeTax = TAX_RATE_1 * (taxableInc - TAX_THRESHOLD_1)
    else if(taxableInc <= TAX_THRESHOLD_3)
	    incomeTax = TAX_BASE_1 + TAX_RATE_2 * (taxableInc - TAX_THRESHOLD_2)
    else if(taxableInc <= TAX_THRESHOLD_4)
	    incomeTax = TAX_BASE_2 + TAX_RATE_3 * (taxableInc - TAX_THRESHOLD_3)
    else
	    incomeTax = TAX_BASE_3 + TAX_RATE_4 * (taxableInc - TAX_THRESHOLD_4)
    return incomeTax
}

function getMedicareLevy(taxableInc)
{
    if(taxableInc <= MEDICARE_MIN)
     return 0
    else
    {
     if(taxableInc < MEDICARE_MID)
      return ((taxableInc - MEDICARE_MIN) * MEDICARE_PCT_02)
     else
      return (taxableInc * MEDICARE_PCT_0015)
    }
}

function getLowIncomeTaxOffset_2006_07(taxableIncome)
{
    var ret=0
    if(taxableIncome < LOWINCOMETTAXOFFSET_REDUCESFROM)
	    ret = LOWINCOMETTAXOFFSET
    else
    {
	    ret = LOWINCOMETTAXOFFSET - (taxableIncome - LOWINCOMETTAXOFFSET_REDUCESFROM)*LOWINCOMETTAXOFFSET_REDUCESBY
    }
    ret=Math.max(0,ret)
    return ret
}