/*
' Version: 1.00 (69036)
*/
var applicants = new Array();

function doNumber(e,min,max,dp)
{
	// Strip out commas etc
	var s = e.value;
	s = s.replace(/[,$]/g,"");
	
	// Validate
	var n=parseFloat(s);
	if(n=='' || isNaN(n)) n=0;
	if(dp==-2)
	{
		// Year
		if(n==0)
		{
			e.value='';
		}
		else
		{
			if(n<70)
			{
				n+=2000;
			}
			else
			{
				if(n<100)
					n+=1900;
			}
			if(n<min)n=min;
			if(n>max)n=max;
			e.value=n.toFixed(0);
		}
	}		
	else
	{
		// General
		if(n<min)n=min;
		if(n>max)n=max;
		e.value=n.toFixed(dp);
	}

	// Set value property on applicant object if part of a calculation
	var c=document.getElementsByName(e.name)[0];
	var a=parseFloat(c.getAttribute('applicant'));
	var f=c.getAttribute('field');
	if(a>0)
	{
		applicants[a][f]=n;
		doCalculated();
	}

	return true;
}

function doDate(e,part,historic)
{
	if(e.value=='dd' || e.value=='mm' || e.value=='yyyy' || e.value=='') return;

	var n=parseFloat(e.value);
	if(n=='' || isNaN(n)) n=0;
	if(n<1) n=1;

	switch(part)
	{
		case 1:
			if(n>31) n=31;
			break;
		case 2:
			if(n>12) n=12;
			break;
		case 3:
			if(n<100)
			{
				var y=new Date().getYear();
				if(y<200) y+=1900;
				var y2=Math.floor(y / 100) * 100;
				n=n+y2;
				if(n>y && historic) n=n-100;
			}
			break;
	}


	e.value=n;
}

function doCalculated()
{
	var c=document.getElementsByTagName('input');
	var i, a, f, dp, n;

	for(i=0;i<c.length;i++)
	{
		a=parseFloat(c[i].getAttribute('applicant'));
		f=c[i].getAttribute('calcfield');
		dp=parseFloat(c[i].getAttribute('dp'));
		if(f!=null)
		{
			try
			{
				n=applicants[a][f]().toFixed(dp);
				c[i].setAttribute('value',n);
			}
			catch(e) {}
		}	
	}
}

function applicant()
{
	this.Income_Income = 0;
	this.Income_IncomeOther = 0;
	this.Income_Government = 0;
	this.Income_Extra1 = 0;
	this.Income_Extra2 = 0;
	this.Income_Total = _IncomeTotal;
	function _IncomeTotal()
	{
		return this.Income_Income+this.Income_IncomeOther+this.Income_Government+this.Income_Extra1+this.Income_Extra2;
	}

	this.Expenses_Rent = 0;
	this.Expenses_Clothing = 0;
	this.Expenses_CreditCardRepayments = 0;
	this.Expenses_Groceries = 0;
	this.Expenses_Insurance = 0;
	this.Expenses_LivingCosts = 0;
	this.Expenses_LoanRepayments = 0;
	this.Expenses_MortgageRepayments = 0;
	this.Expenses_Phone = 0;
	this.Expenses_Rent = 0;
	this.Expenses_Travel = 0;
	this.Expenses_Utilities = 0;
	this.Expenses_Extra1 = 0;
	this.Expenses_Extra2 = 0;
	this.Expenses_Extra3 = 0;
	this.Expenses_Extra4 = 0;
	this.Expenses_Extra5 = 0;
	this.Expenses_Extra6 = 0;
	this.Expenses_Total = _ExpensesTotal;
	function _ExpensesTotal()
	{
		return this.Expenses_Rent+this.Expenses_Clothing+this.Expenses_CreditCardRepayments+this.Expenses_Groceries+this.Expenses_Insurance+this.Expenses_LivingCosts+this.Expenses_LoanRepayments+this.Expenses_MortgageRepayments+this.Expenses_Phone+this.Expenses_Rent+this.Expenses_Travel+this.Expenses_Utilities+this.Expenses_Extra1+this.Expenses_Extra2+this.Expenses_Extra3+this.Expenses_Extra4+this.Expenses_Extra5+this.Expenses_Extra6;
	}

	this.Income_Net = _IncomeNet;
	function _IncomeNet()
	{
		return this.Income_Total()-this.Expenses_Total();
	}

	this.Assets_BankAccounts = 0;
	this.Assets_Home = 0;
	this.Assets_Vehicles = 0;
	this.Assets_Extra1 = 0;
	this.Assets_Extra2 = 0;
	this.Assets_Extra3 = 0;
	this.Assets_Extra4 = 0;
	this.Assets_Total = _AssetsTotal;
	function _AssetsTotal()
	{
		return this.Assets_BankAccounts+this.Assets_Home+this.Assets_Vehicles+this.Assets_Extra1+this.Assets_Extra2+this.Assets_Extra3+this.Assets_Extra4;
	}

	this.Liabilities_Mortgage = 0;
	this.Liabilities_Loans = 0;
	this.Liabilities_CreditCards = 0;
	this.Liabilities_Extra1 = 0;
	this.Liabilities_Extra2 = 0;
	this.Liabilities_Extra3 = 0;
	this.Liabilities_Extra4 = 0;
	this.Liabilities_Total = _LiabilitiesTotal;
	function _LiabilitiesTotal()
	{
		return this.Liabilities_Mortgage+this.Liabilities_Loans+this.Liabilities_CreditCards+this.Liabilities_Extra1+this.Liabilities_Extra2+this.Liabilities_Extra3+this.Liabilities_Extra4;
	}

	this.Assets_Net = _AssetsNet;
	function _AssetsNet()
	{
		return this.Assets_Total()-this.Liabilities_Total();
	}

}

function comboShow(id)
{
	var l=document.getElementById(id+"_list");
	l.style.zIndex="9999";
	l.style.display="";
	l.focus();
	comboMatch(id);
}

function comboHide(id)
{
	var l=document.getElementById(id+"_list");
	l.style.display="none";
	document.getElementById(id).focus();
}

function comboListClick(e)
{
	var l=document.getElementById(e.name.substr(0,e.name.length-5));
	l.value=e.options[e.selectedIndex].text;
	comboHide(l.id);
}

function comboMatch(id)
{
	var l=document.getElementById(id+"_list");
	var matchIndex=0;
	var s1=document.getElementById(id).value.toUpperCase();
	for(i=0;i<l.options.length;i++)
	{
		var s2=l.options[i].text.toUpperCase();
		if(s2.substr(0,s1.length)==s1)
		{
			matchIndex=i;
			break;
		}
	}
	l.selectedIndex=matchIndex;
}

function doAction(action)
{
	document.isform.action.value=action;
	document.isform.submit();
}
