 function Calculate(formObj)
 {
 
	 document.forms["savings"].amountsaved.value=document.forms["savings"].amountsaved.value==0?0:(parseInt(document.forms["savings"].amountsaved.value)?parseInt(document.forms["savings"].amountsaved.value):'');
	 // initialise variables
	 var savings_result = 0;
	 var yt = 0;
	 
	 // grab num_years and rate_return from form
	 var num_years = formObj.numyears.options[formObj.numyears.selectedIndex].value;
	 var rate_return = formObj.ratereturn.options[formObj.ratereturn.selectedIndex].value;
	 
	 // grab savings_amount from form and convert from string into number
	 var savings_amount = formObj.amountsaved.value;
	 savings_amount = parseInt(savings_amount);
 
	 // check form input values are ok
	if (emptyField(formObj.amountsaved))
	{
		alert("Please, give the monthly savings amount");
		document.forms["savings"].amountsaved.focus();
	}
	else if (savings_amount<100) 
	{
		alert ("Please, give an amount between 100 and 20000");
		document.forms["savings"].amountsaved.focus();
	} 
	else if (savings_amount > 20000)
	{
		alert ("Please, give an amount between 100 and 20000");
		document.forms["savings"].amountsaved.focus();
	}
	else if (num_years<0)
	{
		alert ("Please, choose an investment duration.");
		document.forms["savings"].numyears.focus();
 
	}
	else if (rate_return<0)
	{
		alert ("Please, choose a yield.");
		document.forms["savings"].ratereturn.focus();
 
	}
	else if (!isdigit(savings_amount))
	{
		alert("Please, give a monthly savings amount.");
		document.forms["savings"].amountsaved.focus();
	} 
	else 
	{
		// process info from form
		var annual_amount = savings_amount * 12;

		yt=1+(rate_return/100);
		var ytRes=1;
		for (var i = 0; i<num_years; i++)
		ytRes=ytRes*yt;

		savings_result=savings_amount*(12+((rate_return/100)*6.5))*(ytRes-1)/rate_return;
		 
		// return results to form
		formObj.annualamount.value = delimit(Math.round(annual_amount*num_years));
		formObj.result.value = delimit(Math.round(savings_result*100));
		/*to avoid another window opening up always return false*/
		// return true;
		formObj.amountsaved.focus();
	}
		return false;
	} 
 
	/*
	tpd 1998
	determines whether a digit (c) is in fact a digit
	*/
 
	function isdigit(c)
	{
		return ((c >= '100') && (c<='20000'));
	}
 
	/*
	Mar 2001, Mubeen Khateeb
	returns numeral with a "," delimiter 
	*/
 
	function delimit(numObj)
	{
		var arr=new Array();
		var temp=numObj+0;
		var n=0;
		while(temp>0)
		{
			arr[n]=temp%10;
			temp/=10;
			temp=Math.floor(temp);
			++n;
		}
		arr.reverse();

		var len=arr.length;
		var nOD=Math.floor(len/3);
		var fDP=len%3;
		if(nOD==0)
		return(numObj)
		else if((nOD==1) && (fDP==0))
			return(numObj)
		else
		{ 
		if(fDP==0) 
		{
			fDP=3; 
			--nOD;
		}
 
		var p1=0,p2=0;
		var res=new Array();
		for(var i=0;i<fDP;++i)
			res[p2++]=arr[p1++]+"";
		res[p2++]=",";
		--nOD;
		while(nOD>=0)
		{
		for(var j=0;j<3;++j)
		{ 
			res[p2++]=arr[p1++]+"";
		}
		res[p2++]=",";
		--nOD;
	}
		res[--p2]="";
		var str="";
		for(var m=0;m<res.length;++m)
		{
			str+=res[m];
		}
		return(str)
	}
 }

 
 
 
	 /*
	 Mar 2001, Mubeen Khateeb
	 clears the fields
	 */
	 
	 function clearFnc(formObj)
	 {
		for(var z=0;z<formObj.length;++z)
	 {
	 if(formObj[z].type=="text")
		formObj[z].value="";
	 else
		formObj[z].selectedIndex=0;
	 }
	/*to avoid another window opening up always return false*/
	 formObj.amountsaved.focus();
		return false;
	 } 
	 
	 /*
	 tpd 1998
	 determines whether a field (textObj) is empty (returns true) or not (returns false)
	 */
	 
	 function emptyField(textObj) 
	 {
		if (textObj.value.length == 0) return true;
		for (var i=0; i<textObj.value.length; ++i)
		{
			var ch = textObj.value.charAt(i);
			if (ch != ' ' && ch != '\t') return false;
		}
		return true;
	 }
	 
	 
	// <!-- fn to switch focus back up to an enterable field when user tries to enter any of the r/o fields. -->
	 
	 function reFocus() 
	 {
		setTimeout("document.forms['savings'].amountsaved.focus()",1);
	 } 
 
 
 
