// +++++++++++++++++++++++++++++++++++
// (C) Copyright 2003 - 2008 Niro Solutions Pty Limited ABN 89 106 967 140
// +++++++++++++++++++++++++++++++++++
// Version: July 2008
// +++++++++++++++++++++++++++++++++++
// Original author: Miles Glisovic
// Last update completed by: Roland Beerling
// Modification date: 25/06/08
// +++++++++++++++++++++++++++++++++++

var LOWINCOMETTAXOFFSET=1200;
var LOWINCOMETTAXOFFSET_REDUCESFROM=30000;
var LOWINCOMETTAXOFFSET_REDUCESBY=0.04;//4 cents
var LOWINCOMETTAXOFFSET_REDUCTIONSTOPS=60000;
var MEDICARE_MIN = 17309;
var MEDICARE_MID = 20363;
var MEDICARE_PCT_02 = 0.1;
var MEDICARE_PCT_0015 = 0.015;
var TAX_THRESHOLD_1 = 6000;
var TAX_THRESHOLD_2 = 34000;
var TAX_THRESHOLD_3 = 80000;
var TAX_THRESHOLD_4 = 180000;
var TAX_BASE_1 = 4200;
var TAX_BASE_2 = 18000;
var TAX_BASE_3 = 58000;
var TAX_RATE_1 = 0.15;
var TAX_RATE_2 = 0.30;
var TAX_RATE_3 = 0.40;
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
}
function getPAYETaxTotal(tax1)
{
var t
t = tax1
if( t < 0 )
	t = 0
return t
}
