var zeroedfields= "/totalneed/totalfuture/requiredbridge/annuity/totcash/tpresent/lifetotal/effrate/";
var fixedfields= new Array("totalneed","totalfuture","requiredbridge","annuity","totcash","tpresent","lifetotal","effrate");


function highlight() {

	for (var i=0; i< fixedfields.length; i++) {
	
		//alert(fixedfields[i]);
		var item= document.getElementById(fixedfields[i]);

		item.style.backgroundColor="#ffff33";
		item.disabled=true;

		if(item.name== "totcash" || item.name== "lifetotal") {
			item.style.backgroundColor="#ff9900";
			item.style.color="#333300";
			item.style.fontWeight= 'bold';
			}

		}
	
	return false;
	}


function lifeform(form) {

    var totalNeed= 0;
    var totalFuture= 0;
    var totalPresent= 0;
    var MAX=10000000;       // 10 million
	
	for(j=0; j< document.forms[form].elements.length; ++j) {

		// Make sure we reset the totals fields (worth, debt, net) to 0 before proceeding with our sums.
        // If we don't we may end up adding in a value from a previous calculation
        //if (document.forms[form].elements[j].name== "ntotal")
        //	document.forms[form].elements[j].value=0;

		//alert("Matched on  " + document.forms[form].elements[j].name + "  " + isAllowed(document.forms[form].elements[j].name))
		if(isAllowed(document.forms[form].elements[j].name))
			document.forms[form].elements[j].value= 0;

        // Only consider those input fields that were of type text. (i.e. ignore input buttons)
        if (document.forms[form].elements[j].type== "text") {

           	needPattern= /need+/;
            futurePattern= /annual+/;
            presentPattern= /present+/;

        	if (needPattern.test(document.forms[form].elements[j].name)== true) {
	            checkNumeric(document.forms[form].elements[j], MAX);
                totalNeed+= parseFloat(document.forms[form].elements[j].value);
				}

            else if (futurePattern.test(document.forms[form].elements[j].name)== true) {
	            checkNumeric(document.forms[form].elements[j], MAX);
                totalFuture+= parseFloat(document.forms[form].elements[j].value);
                }

            else if (presentPattern.test(document.forms[form].elements[j].name)== true) {
	            checkNumeric(document.forms[form].elements[j], MAX);
                totalPresent+= parseFloat(document.forms[form].elements[j].value);
                }

            } //close if 'text'

        } //close outer 'for' form loop


		if ( !isNaN(parseFloat(document.life.requiredincome.value)) ) {
        	var topup= parseFloat(document.life.requiredincome.value)- parseFloat(totalFuture);
			if(topup<= 0)
				document.life.requiredbridge.value= "Not needed"
			
			else {
				document.life.requiredbridge.value= formatCurrency(topup);

				//If an topup is required, determine amount of annuity based on the available interest rates
				eff= document.life.rate0.value- document.life.rate1.value;
				document.life.effrate.value= eff;

				var annuity= (topup/(eff/100))*(1-(1/Math.pow(1+(eff/100),parseFloat(document.life.time.value))));
				document.life.annuity.value= formatCurrency(annuity); 
				} 

        	}

        var totalcash= totalNeed+ annuity;
        var insurance= totalNeed+ annuity- totalPresent;
		//alert(totalNeed);
        // Assign the total value calculations back to the "worth", "debt", & "net" fields in the form
        document.life.totalneed.value= formatCurrency(totalNeed);
        document.life.totalfuture.value= formatCurrency(totalFuture);
		document.life.totcash.value= formatCurrency(totalcash);
		document.life.tpresent.value= formatCurrency(totalPresent);
		document.life.lifetotal.value= formatCurrency(insurance);
		
	return false;
	}


function isAllowed(entry) {
	return zeroedfields.indexOf("/"+ entry +"/")!= -1;
	}


function formatCurrency(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);
	}
	
	