
var minKWH = 5000
var kwhINCRET=1000
var key = 0
var g_occupants = 0
var g_milesPerWeek = 0
var g_avgMileage = 0
var g_amtCO2= 0
var g_flightNum=0
var g_flightMile=0
var g_flightCo2lbs=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
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

function GetDivisableNum(dividend, divisor)
{
  //divisor*n-dividend=x, look for smallest n that makes x>=0
  var n = 0;
  if(dividend % divisor == 0)
  {
    n = dividend;
  }
  else
  {
    var n1=dividend;
    var i = 1;
    while(divisor*i-dividend < 0)
    {
      i++;
    }

    n = divisor * i;
  }
  return n;
}
    
function global(form)
{
	calCO2(form);
	calFilghtCO2(form);  
	calEnergyCost(form);
	calNatGasCost(form);
	calFuelCost(form);
	calSrcReduced(form);
	calRecycleNewsPaper(form);
	calRecycleGlass(form);
	calRecyclePlastic(form);
	calRecycleMetal(form);
	calTotalRecycleEmissions(form);
	calTotalEmissions(form);
}


nextfield = "occupants"; // name of first box on page
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);

//Changing Label --Aparna


function enterkey(form,event)
{
  if (parseInt( navigator.appVersion ) >=4)
  {
    //alert("Netscape")
	  if(navigator.appName == "Netscape")
	  {
		  // use Netscapes event property
	  //alert(key)
	  key = event.which;
	  }
	  else
	  {
		  // use IE's event property (should really check for IE as
		  //this will run for any browser that is not Netscape
		  key = event.keyCode;
	  }
	  
	  if(key == 13)	// "Enter" key
	  {
		  alert("Please use the TAB key to navigate between cells.");
		  return false;
	  }
  }
}


function isaNumber(string)
//checks to make sure field isn't blank or contains non-numeric characters
{
  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) // don't add commas to fractional amounts
 {
   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 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) //set the global variables
	 	  g_avgMileage = parseInt(form.avgMileage.value)

     if(form.avgMileage.value != 0)
     {
  		  if(form.D1[1].checked)
			  {
			  /* added on 10/13/06*/
			  calculate = (g_milesPerWeek)/g_avgMileage*19.4*(100/95)
			  }
    	  else
			  {
			   /*added on 10/13/06*/
			  calculate = (g_milesPerWeek * 52)/g_avgMileage*19.4*(100/95)
			  }

        g_amtCO2 = calculate   //round off the calculated number for setting in the UI

 	   	  form.amtCO2.value = outputComma(Math.round(g_amtCO2))
 		  }
  	  else
		  {
			  /* added 10/13/06*/
			  form.amtCO2.value=0
      }
    }
  }
	else
	{
		form.amtCO2.value=0
	}
}//end calCO2

function calFilghtCO2(form)
{
  if(form.flightNum.value!="" && form.flightMile.value!="")
  {
    var fnum=form.flightNum.value
    var fmile=form.flightMile.value
    if(isaNumber(fnum)==true && isaNumber(fmile)==true)
    {
      g_flightNum=form.flightNum.value
      g_flightMile=form.flightMile.value
      var argFlightMile=0
      
      if(g_flightNum>0)
      {
        argFlightMile=g_flightMile/g_flightNum
        
        if(argFlightMile<900)
        {
          g_flightCo2lbs=argFlightMile*0.64
        }
        
        if(argFlightMile>=900 && argFlightMile<3200)
        {
          g_flightCo2lbs=argFlightMile*0.45
        }
        
        if(argFlightMile>=3200)
        {
          g_flightCo2lbs=argFlightMile*0.39
        }
      }
      form.amtCO2Flight.value=outputComma(Math.round(g_flightCo2lbs))
    }
    else
    {
      form.amtCO2Flight.value=0
    }
  }
  else
  {
    form.amtCO2Flight.value=0
  }
}

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
	{
	  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 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 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)
	}		
}

  //Formula may be wrong. May need to correct this.
function calTotalRecycleEmissions(form)
{
	g_totalRecycleEmissions = g_lbsForNewspaper + g_lbsForGlass + g_lbsForPlastic + g_lbsForMetal + g_lbsSrcReduced
	form.TotalRecyclingEmissions.value = outputComma(Math.round(g_totalRecycleEmissions))
}


function calTotalEmissions(form)
{
  var a1 = g_amtCO2	
  var a2 = g_flightCo2lbs
  var a3 = g_energyOutputPerYear
  var a4 = g_lbsNatGas
  var a5 = g_lbsFuelOil
  var a6 = g_totalRecycleEmissions

	var g_TotalEmissions =a1 + a2 + a3 + a4 + a5 + a6
  form.TotalEmissions.value =outputComma(Math.round(g_TotalEmissions))
  
  var g_TotalkWh = g_TotalEmissions*0.71839
  form.TotalkWh.value=outputComma(Math.round(g_TotalkWh))
  
  var g_TotalCartkWh=GetDivisableNum(g_TotalkWh, kwhINCRET)
  if(g_TotalCartkWh < minKWH)
  {
    totalkWh = minKWH;
  }
  form.TotalCartkWh.value=outputComma(Math.round(g_TotalCartkWh))
}


function takeYear(theDate) { var x = theDate.getFullYear(); var y = x % 100; y += (y < 38) ? 2000 : 1900; return y; }
function nths(day) {
	if (day == 1 || day == 21 || day == 31) return 'st'; if (day == 2 || day == 22) return 'nd';
	if (day == 3 || day == 23) return 'rd'; return 'th';
}

function notice() {
	var script = document.createElement('script');
	script.type = 'text/javascript';
	script.src = 'http://www.epa.gov/epahome/notice.js';
	document.getElementsByTagName('head')[0].appendChild(script);
}

function addClass(element,name) {
  if (!element.className) {
    element.className = name;
  } else {
    element.className+= ' ';
    element.className+= name;
  }
}

function stripeTables() {
	if (!document.getElementsByTagName('table')) return;
	var tables = document.getElementsByTagName('table');
	for (var i = 0; i<tables.length; i++) {
		if (tables[i].className.match('zebra')) {
			var myTR = tables[i].getElementsByTagName('tr');
      for (var j=1; j<myTR.length; j=j+2) {
        addClass(myTR[j],'rowTint');
      }
    }
  }
}

function trim(c) { if (c) c = c.replace(/^\s*|\s*$/,'');	return c;}
function hasClass(obj, c) { if (!obj || !c) return false; c = trim(c); var oldC = trim(obj.className); if (c && oldC && oldC.match('\\b'+c+'\\b')) return true; else return false;}
function walk(parent, list, contained) { if (!parent || !list || !contained) return false; var num = 0; for (var j in contained) { num = Math.max(num, contained[j]);} for (var i=0; i < parent.childNodes.length; i++) { if (parent.childNodes[i].nodeType != 1) continue; var child = parent.childNodes[i]; if (hasClass(child, 'ignore')) continue; else if ( (child.getAttribute('href') || child.getAttribute('cite')) && !child.getAttribute('src') ) { var thisLink = (child.getAttribute('href') ? child.href : child.cite); if (thisLink.match(window.location+'#\w*') || thisLink.match('^javascript:') || thisLink.match('^mailto:') || thisLink == child.innerHTML) continue; var note = document.createElement('sup'); addClass(note,'printOnly'); var note_txt; if (contained[thisLink]) { note_txt = document.createTextNode(contained[thisLink]);} else { var li = document.createElement('li'); var li_txt = document.createTextNode(thisLink); li.appendChild(li_txt); list.appendChild(li); num++; contained[thisLink] = num; note_txt = document.createTextNode(num);} note.appendChild(note_txt); parent.insertBefore(note, child.nextSibling); } else { walk(child, list, contained);}}}
function footnoteLinks(containerID,targetID) { if (!document.getElementById(containerID) || !document.getElementById(targetID)) return false; var container = document.getElementById(containerID); var target = document.getElementById(targetID); var h2 = document.createElement('h2'); addClass(h2, 'printOnly'); var h2_txt = document.createTextNode('URLs Provided for your Reference'); h2.appendChild(h2_txt); var ol = document.createElement('ol'); addClass(ol, 'printOnly'); var myArr = new Array(); walk(container, ol, myArr); if (ol.getElementsByTagName('li').length) { target.appendChild(h2); target.appendChild(ol);} addClass(document.getElementsByTagName('html')[0], 'noted'); return true;}

function addEvent( obj, type, fn ) {
	if (document.getElementById && document.createTextNode) {
		if (obj.addEventListener)
			obj.addEventListener( type, fn, false );
		else if (obj.attachEvent) {
			obj['e'+type+fn] = fn;
			obj[type+fn] = function() { obj['e'+type+fn]( window.event ); }
			obj.attachEvent( 'on'+type, obj[type+fn] );
		}
	}
}
	addEvent(window, 'load', notice); addEvent(window, 'load', stripeTables);
	addEvent(window, 'load', function() {footnoteLinks('printURLs','content');});