﻿/*
------------------------------------------------------
Javascript for Calculating Federal Government Rebate
------------------------------------------------------
@author			:	Fulvio Cusumano
@date			:	14/03/2007

@name           :   rebateCalc()
@description    :   Calculates based on payment
					frequency, premium and claim
					rebate.

@prerequisites  :   [ objNum(), dollars() ]
@argument(s)    :   [ val, num ]
@return         :   dollar and value object.
------------------------------------------------------
*/

function objNum(val)
{
	this.val = val;
	return val;
}

function RemoveDollar(str)
{
	var _str = str.replace('\$','');
	return _str;
}

cost = new objNum(0);
week = new objNum(0);
fortnight = new objNum(0);
month = new objNum(0);
quarter = new objNum(0);
half = new objNum(0);
year = new objNum(0);
cost2 = new objNum(0);
period = new objNum(0);

function rebateCalc(ddlPaymentFrequency, txtPremium, txtWeekly, txtFortnightly, txtMonthly, txtHalfyearly, txtYearly)
{
	var rdo = document.getElementsByTagName('input');

	var el = document.getElementById(ddlPaymentFrequency);
	var Premium = document.getElementById(txtPremium);
	var Weekly = document.getElementById(txtWeekly);
	var Fortnightly = document.getElementById(txtFortnightly);
	var Monthly = document.getElementById(txtMonthly);
	var HalfYearly = document.getElementById(txtHalfyearly);
	var Yearly = document.getElementById(txtYearly);
	var claim = "";
	
	for (i = 0; i < rdo.length; i++)
	{
		if (rdo[i].type == "radio" && rdo[i].checked)
		{
			claim = rdo[i].value;
		}
	}
	
	if (claim == 'As a reduced premium')
	{
		if (el.value == "week")
		{
			Weekly.value = (RemoveDollar(Premium.value) / 0.7) - RemoveDollar(Premium.value);
			Fortnightly.value = Weekly.value * 2;
			Yearly.value = Weekly.value * 52;
			HalfYearly.value = Weekly.value * 26;
			Monthly.value = Yearly.value / 12;
		}
		else if (el.value == "fortnight")
		{
			Fortnightly.value = (RemoveDollar(Premium.value) / 0.7) - RemoveDollar(Premium.value);
			Weekly.value = Fortnightly.value / 2;
			Yearly.value = Weekly.value * 52;
			HalfYearly.value = Weekly.value * 26;
			Monthly.value = Yearly.value / 12;
		}
		else if (el.value == "directmonth")
		{
			Monthly.value = (RemoveDollar(Premium.value) / 0.7) - RemoveDollar(Premium.value);
			Yearly.value = Monthly.value * 12;
			Weekly.value = Yearly.value / 52;
			HalfYearly.value = Weekly.value * 26;
			Fortnightly.value = Weekly.value * 2;
		}
		else if (el.value == "halfyear")
		{
			HalfYearly.value = (RemoveDollar(Premium.value) / 0.7) - RemoveDollar(Premium.value);
			Monthly.value = HalfYearly.value / 6;
			Yearly.value = HalfYearly.value * 2 ;
			Weekly.value = Yearly.value / 52;
			Fortnightly.value = Weekly.value * 2;
		}
		else if (el.value == "year")
		{
			Yearly.value = (RemoveDollar(Premium.value) / 0.7) - RemoveDollar(Premium.value);
			Monthly.value = Yearly.value / 12;
			Weekly.value = Yearly.value / 52;
			Fortnightly.value = Weekly.value * 2;
			HalfYearly.value = Weekly.value * 26;
		}
	}
	else if (claim == 'Tax return, or from a Medicare Office')
	{
		if (el.value == "week")
		{
	   		Weekly.value = RemoveDollar(Premium.value) * 0.3;
			Fortnightly.value = Weekly.value * 2;
			Yearly.value = Weekly.value * 52;
			Monthly.value = Yearly.value / 12;
			HalfYearly.value = Weekly.value * 26;
		}
		else if (el.value == "fortnight")
		{
			Fortnightly.value = RemoveDollar(Premium.value) * 0.3;
			Weekly.value = Fortnightly.value / 2;
			Yearly.value = Weekly.value * 52;
			Monthly.value = Yearly.value / 12;
			HalfYearly.value = Weekly.value * 26;
	    }
	    else if (el.value == "directmonth")
	    {
			Monthly.value = RemoveDollar(Premium.value) * 0.3;
			Yearly.value = Monthly.value * 12;
			Weekly.value = Yearly.value / 52;
			Fortnightly.value = Weekly.value * 2;
			HalfYearly.value = Weekly.value * 26;
		}
		else if (el.value == "halfyear")
		{
			HalfYearly.value = RemoveDollar(Premium.value) * 0.3;
			Yearly.value = HalfYearly.value * 2;
			Monthly.value = Yearly.value / 12;
			Weekly.value = Yearly.value / 52;
			Fortnightly.value = Weekly.value * 2;
	    }
	    else if (el.value == "year")
	    {
			Yearly.value = RemoveDollar(Premium.value) * 0.3;
			Monthly.value = Yearly.value / 12;
			Weekly.value = Yearly.value / 52;
			Fortnightly.value = Weekly.value * 2;
			HalfYearly.value = Weekly.value * 26;
	    }
	}
	
	Weekly.value = dollars(Weekly.value);
	Fortnightly.value = dollars(Fortnightly.value);
	Monthly.value = dollars(Monthly.value);
	HalfYearly.value = dollars(HalfYearly.value);  
	Yearly.value = dollars(Yearly.value);
}

function dollars(num)
{
	num = num.toString().replace(/\$|\,/g,'');

	if(isNaN(num))
    {
		num = "0";
	}
	
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num * 100 + 0.50000000001);
	cents = num % 100;
	num = Math.floor(num / 100).toString();

	if(cents < 10)
    {
		cents = "0" + cents;
	}

	for (var i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++)
	{
		num = num.substring(0, num.length - (4 * i + 3)) + ',' + num.substring(num.length - (4 * i + 3));
	}
	
	return (((sign) ? '' : '-') + '$' + num + '.' + cents);
}
