// (C) Copyright 2004 - 2011 Jeppessen Productions cc and TraciDesign.
// Prepared for the Property Power Disc.
// Copyright: This software is protected by copyright laws and international copyright treaties, 
// as well as other intellectual property laws and treaties. The software is licensed not sold.
// Restriction: You may not attempt to reverse compile, modify, translate or disassemble this software 
// in whole or in part. You may not remove or modify any copyright notice.

function RoundNumbers(TheNum) {
	return Math.abs(TheNum);
	//return TheNum;
}

function addComma(TheNum)
{
    numVar=String(TheNum);
    var commaNumber = "";
    var thenumber = ""
    var thefraction = "";
    var j = numVar.indexOf(".");
    var l = numVar.length;
	var minus = 0;
    
    if (j > 0)
    {    //found a period.
	 tvar=numVar+"00"; 
	 numVar=numVar.substr(0,j);
         for(i = j; i<j+3; i++) {     
               thefraction = thefraction + tvar.charAt(i); }
    }  else { //no period found
	    thefraction = ".00"; }
		
	j = numVar.length;
	if (j > 0) {
		c=numVar.charAt(0);
		//alert("c=" + c + " numVar=" + numVar);
		if (c == "-") {
			minus = 1;
			numVar=numVar.substr(1,j);
			j = numVar.length;
			//alert("--->" + numVar);
		}
	}
		
    for (i = j; i > 0; i--) {
         if ((i != j) && ((j - i) % 3 == 0))
                thenumber = thenumber + ",";
         thenumber = thenumber + numVar.charAt(i-1);
    }
    j = thenumber.length;
    for (i = j; i >= 0; i--)
        commaNumber = commaNumber + thenumber.charAt(i);
    
    commaNumber=commaNumber+thefraction;
	if (minus==1) {
		 commaNumber="-" + commaNumber;
		}
    return commaNumber;
}

function RemoveComma(TheNum) {
    numVar=String(TheNum);
    var thenumber = "";
    var i = 0;
    
	if (numVar == "NaN") {
		numVar="0";
	}
	var l = numVar.length;
	
	if (l == 0) {
		thenumber = "0";
	} else {
		for (i = l; i >= 0; i--) {
			//alert ("i" + i);
			if (numVar.charAt(i) != ",") {
				thenumber=numVar.charAt(i)+thenumber;
			}
		}
	}
	//alert ("x=" + thenumber);
	i=(thenumber*1);
	//alert ("TheNum=" + TheNum + " : numVar=" + numVar + " : len=" + l + " : output=" + i);
	//alert ("i=" + i);
    return (i);
}

function CalculateRemainder() {
	TotalIncome=RoundNumbers(RemoveComma(document.frmBudget.TotalInc.value));
	TotalExpenses=RoundNumbers(RemoveComma(document.frmBudget.TotalExp.value));
	document.frmBudget.Remainder.value=addComma(TotalIncome-TotalExpenses);
	
	document.frmBudget.TotalInc2.value=addComma(TotalIncome);
	document.frmBudget.TotalExp2.value=addComma(TotalExpenses);
}

function CalculateIncome() {

	NetSalary=RoundNumbers(RemoveComma(document.frmBudget.NetSalary.value*1));
	Commission=RoundNumbers(RemoveComma(document.frmBudget.Commission.value*1));
	PartTimeIncome = RoundNumbers(RemoveComma(document.frmBudget.PartTimeIncome.value*1));
	RentalIncome = RoundNumbers(RemoveComma(document.frmBudget.RentalIncome.value*1));
	Interest = RoundNumbers(RemoveComma(document.frmBudget.Interest.value*1));
	Dividends = RoundNumbers(RemoveComma(document.frmBudget.Dividends.value*1));
	Bonus = RoundNumbers(RemoveComma(document.frmBudget.Bonus.value*1));
	OtherInc1 = RoundNumbers(RemoveComma(document.frmBudget.OtherInc1.value*1));
	OtherInc2 = RoundNumbers(RemoveComma(document.frmBudget.OtherInc2.value*1));
	
	NetSalary2 = RoundNumbers(RemoveComma(document.frmBudget.NetSalary2.value*1));
	Commission2 = RoundNumbers(RemoveComma(document.frmBudget.Commission2.value*1));
	PartTimeIncome2 = RoundNumbers(RemoveComma(document.frmBudget.PartTimeIncome2.value*1));
	RentalIncome2 = RoundNumbers(RemoveComma(document.frmBudget.RentalIncome2.value*1));
	Interest2 = RoundNumbers(RemoveComma(document.frmBudget.Interest2.value*1));
	Dividends2 = RoundNumbers(RemoveComma(document.frmBudget.Dividends2.value*1));
	Bonus2 = RoundNumbers(RemoveComma(document.frmBudget.Bonus2.value*1));
	OtherInc3 = RoundNumbers(RemoveComma(document.frmBudget.OtherInc3.value*1));
	OtherInc4 = RoundNumbers(RemoveComma(document.frmBudget.OtherInc4.value*1));

	document.frmBudget.TotalInc.value=addComma(NetSalary+Commission+PartTimeIncome+RentalIncome+Interest+Dividends+Bonus+OtherInc1+OtherInc2+NetSalary2+Commission2+PartTimeIncome2+RentalIncome2+Interest2+Dividends2+Bonus2+OtherInc3+OtherInc4);
	CalculateRemainder();
}

function CalculateExpenses() {

	Medical = RoundNumbers(RemoveComma(document.frmBudget.Medical.value*1));
	LongTerm = RoundNumbers(RemoveComma(document.frmBudget.LongTerm.value*1));
	CarFinance = RoundNumbers(RemoveComma(document.frmBudget.CarFinance.value*1));
	CarMaintenance = RoundNumbers(RemoveComma(document.frmBudget.CarMaintenance.value*1));
	Petrol = RoundNumbers(RemoveComma(document.frmBudget.Petrol.value*1));
	Medical2 = RoundNumbers(RemoveComma(document.frmBudget.Medical2.value*1));
	LongTerm2 = RoundNumbers(RemoveComma(document.frmBudget.LongTerm2.value*1));
	CarFinance2 = RoundNumbers(RemoveComma(document.frmBudget.CarFinance2.value*1));
	CarMaintenance2 = RoundNumbers(RemoveComma(document.frmBudget.CarMaintenance2.value*1));
	Petrol2 = RoundNumbers(RemoveComma(document.frmBudget.Petrol2.value*1));

	ShortTerm = RoundNumbers(RemoveComma(document.frmBudget.ShortTerm.value*1));
	HP = RoundNumbers(RemoveComma(document.frmBudget.HP.value*1));
	Personal = RoundNumbers(RemoveComma(document.frmBudget.Personal.value*1));
	Overdraft = RoundNumbers(RemoveComma(document.frmBudget.Overdraft.value*1));
	CreditCard = RoundNumbers(RemoveComma(document.frmBudget.CreditCard.value*1));
	BankCharges = RoundNumbers(RemoveComma(document.frmBudget.BankCharges.value*1));

	SchoolFees = RoundNumbers(RemoveComma(document.frmBudget.SchoolFees.value*1));
	School = RoundNumbers(RemoveComma(document.frmBudget.School.value*1));
	PetCare = RoundNumbers(RemoveComma(document.frmBudget.PetCare.value*1));
	Security = RoundNumbers(RemoveComma(document.frmBudget.Security.value*1));
	WaterLights = RoundNumbers(RemoveComma(document.frmBudget.WaterLights.value*1));
	RatesTaxes = RoundNumbers(RemoveComma(document.frmBudget.RatesTaxes.value*1));
	Levies = RoundNumbers(RemoveComma(document.frmBudget.Levies.value*1));

	Phone = RoundNumbers(RemoveComma(document.frmBudget.Phone.value*1));
	Cellular = RoundNumbers(RemoveComma(document.frmBudget.Cellular.value*1));
	Groceries = RoundNumbers(RemoveComma(document.frmBudget.Groceries.value*1));
	Clothing = RoundNumbers(RemoveComma(document.frmBudget.Clothing.value*1));
	Entertainment = RoundNumbers(RemoveComma(document.frmBudget.Entertainment.value*1));
	Luxuries = RoundNumbers(RemoveComma(document.frmBudget.Luxuries.value*1));
	Gifts = RoundNumbers(RemoveComma(document.frmBudget.Gifts.value*1));
	LuxuriesOther1 = RoundNumbers(RemoveComma(document.frmBudget.LuxuriesOther1.value*1));
	LuxuriesOther2 = RoundNumbers(RemoveComma(document.frmBudget.LuxuriesOther2.value*1));
	Housekeeper = RoundNumbers(RemoveComma(document.frmBudget.Housekeeper.value*1));
	Garden = RoundNumbers(RemoveComma(document.frmBudget.Garden.value*1));

	CashHand = RoundNumbers(RemoveComma(document.frmBudget.CashHand.value*1));
	Savings = RoundNumbers(RemoveComma(document.frmBudget.Savings.value*1));
	Holiday = RoundNumbers(RemoveComma(document.frmBudget.Holiday.value*1));	
	OtherExp1 = RoundNumbers(RemoveComma(document.frmBudget.OtherExp1.value*1));
	OtherExp2 = RoundNumbers(RemoveComma(document.frmBudget.OtherExp2.value*1));
	OtherExp3 = RoundNumbers(RemoveComma(document.frmBudget.OtherExp3.value*1));
	OtherExp4 = RoundNumbers(RemoveComma(document.frmBudget.OtherExp4.value*1));
	OtherExp5 = RoundNumbers(RemoveComma(document.frmBudget.OtherExp5.value*1));
	Bond = RoundNumbers(RemoveComma(document.frmBudget.Bond.value*1));

	document.frmBudget.TotalExp.value=addComma(Medical+LongTerm+CarFinance+CarMaintenance+Petrol+Medical2+LongTerm2+CarFinance2+CarMaintenance2+Petrol2+
ShortTerm+HP+Personal+Overdraft+CreditCard+BankCharges+SchoolFees+School+PetCare+Security+WaterLights+RatesTaxes+Levies+Phone+Cellular+Groceries+Clothing+Entertainment+Luxuries+Gifts+LuxuriesOther2+Housekeeper+Garden+CashHand+Savings+Holiday+OtherExp1+OtherExp2+OtherExp3+OtherExp4+OtherExp5+Bond);

CalculateRemainder();
}

function ValidateNumberOnlyInput(allowdot) {
	str=event.srcElement.value;
	p=str.indexOf(".");
	r=(str.length-p);
	
	if (!((event.keyCode>=48) && (event.keyCode<=57))) {
		//not between 0 and 9
    	event.returnValue = false;
		} else {
			//valid number
			if ((p > -1) && (r > 2)) {
				//more than 2 characters after the "."
				event.returnValue = false;
			}
		}
	
    if ((allowdot>0) && (event.keyCode==46) && (p==-1)) {
		//no "." found, allow
		event.returnValue = true;
	}
}




