var goodBrowser;
var strName = navigator.appName;
var strVersion = parseInt(navigator.appVersion);
if((strName == "Netscape" && strVersion > 2) || (strName == "Microsoft Internet Explorer" && strVersion > 3)) {
     goodBrowser = true;
} else {
     goodBrowser = false;
}
if(goodBrowser == true)

        var g_occupants = 0;
        var g_milesPerWeek = 0;
        var g_avgMileage = 0;
        var g_amtCO2= 0;
        var g_energyCost = 0;
        var g_energyOutputPerYear = 0;
        var g_costNatGas = 0;
        var g_lbsNatGas = 0;
        var g_costFuelOil = 0;
        var g_lbsFuelOil = 0;
		//Recycling
		var g_lbsSrcReduced = 0;
        var g_percentSrcReduced = 0;
		var g_lbsForNewspaper = 0;
		var g_lbsForGlass = 0;
		var g_lbsForPlastic = 0;
		var g_lbsForMetal = 0;
		var g_lbsForCBoxes = 0;
		var g_totalRecycleEmissions = 0;
		//End Recycling (No! Don't end recycling!)
		var g_TotalEmissions = 0;

function global(form)
{
	calCO2(form);
	calEnergyCost(form);
	calNatGasCost(form);
	calFuelCost(form);
	calSrcReduced(form);
	calRecycleNewsPaper(form);
	calRecycleGlass(form);
	calRecyclePlastic(form);
	calRecycleMetal(form);
	calTotalRecycleEmissions(form);
	calTotalEmissions(form);
}


nextfield = "occupants";
netscape = "";
ver = navigator.appVersion; len = ver.length;
for(iln = 0; iln < len; iln++) if (ver.charAt(iln) == "(") break;
netscape = (ver.charAt(iln+1).toUpperCase() != "C");

function keyDown(DnEvents) { // handles keypress
    // determines whether Netscape or Internet Explorer
    k = (netscape) ? DnEvents.which : window.event.keyCode;
    if (k == 13) { // enter key pressed
        if (nextfield == 'percentReductionTotal') {
            return true; // submit, we finished all fields
        } else { // we're not done yet, send focus to next box
            eval('document.forms[2].'+ nextfield + '.focus()');
            eval('document.forms[2].'+ nextfield + '.select()');
            //eval(form + '.' + + nextfield + ".style.background='#ffffff'");
            return false;
        }
    }
}

document.onkeydown = keyDown; // work together to analyze keystrokes
if (netscape) document.captureEvents(Event.KEYDOWN|Event.KEYUP);

function enterkey(form,event) {
    if (parseInt( navigator.appVersion ) >=4) {
        if(navigator.appName == "Netscape") {
        	key = event.which;
	    } else {
		    key = event.keyCode;
	    }
	    if(key == 13)   {
		    alert("Please use the TAB key to navigate between cells.");
		    return false;
	    }
    }
}

function division(form,main) {
	var div = parseInt(form.TotalEmissions.value);
	return (main/div);
}

function isaNumber(string) {
	if (string.length == 0)
        return false;

	for (var i=0;i < string.length;i++)
        if ((string.substring(i,i+1) < '0') || (string.substring(i,i+1) > '9'))
        	if(string.substring(i,i+1) != '.')
                	return false;

	return true;
} // end function isaNumber(string)

function slice(form,string,field){
    if ((string.charAt(0)==0) && (string.length>1)) {
 	    var goToField=eval("form."+ field)
	    goToField.value = string.slice(1)
 	    return true
 	}
}

//-----------------------------------------------------------------------------

function outputComma(number) {

    if (number >= 1 || number <= -1) {

        var wholeNum;
        var fractionNum;
        var position = 0;

        // convert to string
        number = '' + number;

        if ((position = number.indexOf(".",0)) != -1) {
	        wholeNum = number.substring(0,position);
	        fractionNum = "." + number.substring(position + 1,number.length);
        } else {
	        wholeNum = number;
	        fractionNum = "";
        }

        if ((wholeNum.length > 3) && (wholeNum > 0)) {
	        var mod = wholeNum.length%3;
	        var output = (mod > 0 ? (wholeNum.substring(0,mod)) : '');
	        for (i=0 ; i < Math.floor(wholeNum.length/3) ; i++) {
		        if ((mod ==0) && (i ==0))
			        output+= wholeNum.substring(mod+3*i,mod+3*i+3);
		        else
			        output+= ',' + wholeNum.substring(mod+3*i,mod+3*i+3);
	        }
 	        return output + fractionNum;
        }
        else return number;

    }
 else
    return number; // do nothing - number is <= 1 or >= -1

} // function outputComma(number)


function testpercentage(form,percent) {
    if (percent > 100) {
        alert("You have entered an incorrect value greater than 100.  Please try again.");
        form.percentRecyclables.selected;
        return false;
    } else {
        global(this.form);
    }
}

function calCO2(form) {
	if((form.milesPerWeek.value !="") && (form.avgMileage.value !="")) {
		if( (isaNumber(form.milesPerWeek.value) == true) && (isaNumber(form.avgMileage.value) == true ) ) {
			
			g_milesPerWeek = parseInt(form.milesPerWeek.value);
			g_avgMileage = parseInt(form.avgMileage.value);
			
			if(form.avgMileage.value != 0) {
				if(form.D1[1].checked) {
					calculate = (g_milesPerWeek)/g_avgMileage*19.4*(100/95);
				} else {
					calculate = (g_milesPerWeek * 52)/g_avgMileage*19.4*(100/95);
				}
				g_amtCO2 = calculate;
				form.amtCO2.value = outputComma(Math.round(g_amtCO2));
			} else {
				form.amtCO2.value=0;
			}
		}
		
	} else {
		form.amtCO2.value=0;
	}
}//end calCO2

function calEnergyCost(form) {
 	if(form.energyCost.value !="") {

 		var ec = form.energyCost.value;

 		if(isaNumber(ec) == true) {
			g_energyCost = form.energyCost.value;
    		g_energyOutputPerYear = (g_energyCost/0.1)*1.37*12;

 			form.energyOutputPerYear.value = outputComma(Math.round(g_energyOutputPerYear));
		} else {
          	// clear fields and tell the user to put in the right value
 		}

	} else {
		form.energyOutputPerYear.value = 0;
	}
}
	
function calNatGasCost(form) {
 	if(form.costNatGas.value !="") {
		if (isaNumber(form.costNatGas.value) == true) {
			g_costNatGas =  form.costNatGas.value;
 			g_lbsNatGas = (g_costNatGas/13.83)*120.61*12;
			form.lbsNatGas.value = outputComma(Math.round(g_lbsNatGas));
  	   	}
	} else {
		form.lbsNatGas.value = 0;
	}
}	
	
function calFuelCost(form) {
	if(form.costFuelOil.value !="") {
		if (isaNumber(form.costFuelOil.value) == true) {
			g_costFuelOil = form.costFuelOil.value;
			g_lbsFuelOil = (g_costFuelOil/2.37)*22.28*12;
			form.lbsFuelOil.value = outputComma(Math.round(g_lbsFuelOil));
 		}
	} else {
		form.lbsFuelOil.value = 0;
	}
}
	
function calRecycleNewsPaper(form)
	{
	if (form.yesNoNewspaper[0].checked)
		{   
		g_lbsForNewspaper = Math.round(form.occupants.value * (-184.30));
		form.lbsForNewspaper.value = outputComma(g_lbsForNewspaper)		;					
		}
	else if (form.yesNoNewspaper[1].checked)
		{   
		g_lbsForNewspaper = 0;
		form.lbsForNewspaper.value = outputComma(g_lbsForNewspaper)
		}		
	}

function calRecycleGlass(form)
	{
	if (form.yesNoGlass[0].checked)
		{
		g_lbsForGlass = Math.round(form.occupants.value * (-25.60));
		form.lbsForGlass.value = outputComma(g_lbsForGlass);
		}
	else if (form.yesNoGlass[1].checked)
		{
		g_lbsForGlass = 0;
		form.lbsForGlass.value = outputComma(g_lbsForGlass);
		}		
	}

function calRecyclePlastic(form)
	{
	if (form.yesNoPlastic[0].checked)
		{
		g_lbsForPlastic = Math.round(form.occupants.value * (-46.58));
		form.lbsForPlastic.value = outputComma(g_lbsForPlastic);
		}
	else if (form.yesNoPlastic[1].checked)
		{
		g_lbsForPlastic = 0;
		form.lbsForPlastic.value = outputComma(g_lbsForPlastic);
		}		
	}

function calRecycleMetal(form)
	{	
	if (form.yesNoMetal[0].checked)
		{
		g_lbsForMetal = Math.round(form.occupants.value * (-165.79));
		form.lbsForMetal.value = outputComma(g_lbsForMetal);
		}
	else if (form.yesNoMetal[1].checked)
		{
		g_lbsForMetal = 0;
		form.lbsForMetal.value = outputComma(g_lbsForMetal);
		}		
	}	
	
function calTotalRecycleEmissions(form)
	{
	g_totalRecycleEmissions = g_lbsForNewspaper + g_lbsForGlass + g_lbsForPlastic + g_lbsForMetal + g_lbsSrcReduced;
	form.TotalRecyclingEmissions.value = outputComma(Math.round(g_totalRecycleEmissions));
	}

function calSrcReduced(form)
	{
	if(form.occupants.value !="")
		{
		g_occupants = parseInt(form.occupants.value);
		calculate = g_occupants * 1018;
 		g_lbsSrcReduced = calculate;
		form.lbsSrcReduced.value = outputComma(Math.round(calculate));
		}
	else
		{
		form.lbsSrcReduced.value = 0;
		}
	}

function calTotalEmissions(form)
	{
 	if((form.amtCO2.value !="") || (form.energyOutputPerYear.value!="") || (form.lbsNatGas.value!="") ||
	(form.lbsFuelOil.value!="") || (form.yesNoNewspaper.value!="") || (form.yesNoGlass.value!="") 
	|| (form.yesNoPlastic.value!="") || (form.yesNoMetal.value!=""))
 		{
		if (form.occupants.value =="")
			{
			alert("Please enter the number of people in your household.");
			form.occupants.focus();
			}
		else if (isaNumber(form.milesPerWeek.value) && !isaNumber(form.avgMileage.value))
			{
			form.avgMileage.focus();
    		form.avgMileage.value = "0";
	    	alert("Please enter the average gas mileage for your car.");
			}

 		var a1 = g_amtCO2;		// initialize the five variables so that we can use them in our calculation
		var a2 = g_energyOutputPerYear;
 		var a3 = g_lbsNatGas;
		var a4 = g_lbsFuelOil;
		var a5 = g_totalRecycleEmissions;

  		g_TotalEmissions = (a1 + a2 + a3 + a4 + a5);
		form.TotalEmissions.value = outputComma(Math.round(g_TotalEmissions));
		var spantot = document.getElementById("resulttons");
		var spanmoney = document.getElementById("resultmoney");
		var metrictons = (g_TotalEmissions / 2204.6)
		spantot.innerHTML = Math.round( metrictons * 100) / 100;
		var dollartotal = Math.round( (metrictons * 6) * 100 ) / 100;
		spanmoney.innerHTML = "$" + dollartotal.toFixed(2); 
 		}
	}
	
function calBulb(form)
	{
        if(form.TotalEmissions.value != "")
		{
		if (isaNumber(form.amtForBulb.value)==true)
			{
			g_amtForBulb = parseInt(form.amtForBulb.value);
			g_lbsForBulb = g_amtForBulb * 56 * 1.36;
			form.lbsForBulb.value = outputComma(parseInt(g_lbsForBulb));
			}
		}
	}
	
