function clearPension() 
	{
 	var frm = document.forms['FrmTaxFree'];
 	frm.elements['pension'].value = 0;
 	frm.elements['lumpsum'].value = 0;
	}
 
function calculatePension() 
	{
 	clearPension();
 	var frm = document.forms['FrmTaxFree'];
 	var years = frm.elements['years'].value;
 	var salary = frm.elements['salary'].value;
	var sError =""
	//check fields populated
	if ((salary == null || salary.length == 0) && (years == null || years.length == 0))
 		{ 
  		sError = sError + '\nPlease enter a number in the "Length of Service" and  "Salary" fields. Commas are not allowed.';
 		} 
 	if ((salary == null || salary.length == 0) && !(years == null || years.length == 0))
 		{ 
  		sError = sError + '\nPlease enter a number in the ""Salary" field. Commas are not allowed.';
 		} 
 	if (!(salary == null || salary.length == 0) && (years == null || years.length == 0))
 		{ 
  		sError = sError + '\nPlease enter a number in the "Length of Service" field. Commas are not allowed.';
 		} 
	//check input valid
 	if(isNaN(years) && isNaN(salary)) 
		{
  		sError = sError + '\nPlease enter a number in the "Length of Service" and  "Salary" fields. Commas are not allowed.';
		}
	else
		{
		if(isNaN(years)) 
			{
			sError = sError + '\nPlease enter a number in the "Length of Service" field. Commas are not allowed.';
			frm.elements['years'].select();
			}
		if(isNaN(salary)) 
			{
			sError = sError + '\nPlease enter a number in the "Salary" field. Commas are not allowed.';
			frm.elements['salary'].select();
			}
		}
	if(years > 45) 
		{
  		sError = sError + '\nThe maximum length of service is 45 years.';
		frm.elements['years'].select();
 		}
	if (salary > 200000)
		{
		sError = sError + "\nYour salary cannot exceed £200,000.";
		frm.elements['salary'].select();
		}
	if (!(sError == ""))
		{
			alert(sError);
			return false;
		}
		
	//calculate
 	var pension = ((1.0 / 80.0) * years * salary);
	if (pension > 0)
		{
 		frm.elements['pension'].value = formatwithcomma(pension);
	 	frm.elements['lumpsum'].value = formatwithcomma(pension * 3.0);
		}
	}

function evalnumber(element,min,max) {

	var en = evalnum(element.value);
	
	if(max != "") {
		if(en > max) { 
			en = max;
			alert ("The maximum is " + max + ".");
			element.focus ();
		}
	}

	if(min != "") {
		if(en < min) { 
			en = min;
			alert ("The minimum is " + min + ".");
			element.focus ();
		}
	}
	
	element.value = en;

}

// ----------------------------------------------------------------------------
function evalmoney(element,min,max) {

	var en = evalnum(element.value);
	
	if(max != "") {
		if(en > max) { 
			en = max;
			alert ("The maximum is " + max + ".");
			element.focus ();
		}
	}

	if(min != "") {
		if(en < min) { 
			en = min;
			alert ("The minimum is " + min + ".");
			element.focus ();
		}
	}

	if(element.format == '#') { 
		element.value = evalpoundonly(en);
	} else {
		element.value = evalpound(en);
	}

}
// ----------------------------------------------------------------------------
function formatwithcomma(num) {

	var i,l,d,n;
	var nums;
	var ret;

	nums = String(Math.round(num*100));
	n = ((num < 0)? 1:0);

	while (nums.length <3) nums = "0" + nums;

	l = nums.length-3;
	ret = "." + nums.charAt(l+1) + nums.charAt(l+2);

	d=0;
	for (i=l; i>=0; i--) {
		ret = nums.charAt(i) + ret;
		d++;
		if (d==3 && i>n) {
			ret="," + ret;
			d=0;
		}
	}
	//ret = "\u00a3" + ret;
	return ret;

}
// ----------------------------------------------------------------------------
function evalnum(numstr) {

	var i,c,neg;
	var ret="";
	var p=false;

	neg = 1;
	if (numstr.indexOf("-") >=0) { neg = -1; }

	for (i=numstr.length-1; i>=0; i--) {
		c=numstr.charAt(i);

		if (c == ".") {
			if (p == false) p=true;
			else c="";
		}

		if ((c < "0" || c > "9") && c != ".") c="";

		ret = c + ret;
	}

	if (ret=="" || ret=="NaN") ret="0";
	return parseFloat(ret*neg);

}
// ----------------------------------------------------------------------------
function evalpound(num) {

	var i,l,d,n;
	var nums;
	var ret;

	nums = String(Math.round(num*100));
	n = ((num < 0)? 1:0);

	while (nums.length <3) nums = "0" + nums;

	l = nums.length-3;
	ret = "." + nums.charAt(l+1) + nums.charAt(l+2);

	d=0;
	for (i=l; i>=0; i--) {
		ret = nums.charAt(i) + ret;
		d++;
		if (d==3 && i>n) {
			/*ret="," + ret;*/
			d=0;
		}
	}
	//ret = "\u00a3" + ret;
	return ret;

}
