// global variables for this script
var previousTime, currentTime, timeNow, currentWaterSavings, currentEnergySavings;
var totalWaterSavingsPerSecond, totalEnergySavingsPerSecond; 
var cycleIntervalId;

// (31536000 is seconds in a year)

// JOB LISTING:  to add additional jobs, copy the structure of each job below, increment
//  the job number, and fill in the values.   The divisor in the waterSavingsPerSecond and energySavingsPerSecond
//  columns is the yearly savings as reflected on the spreadsheet
var job2 = [];
    job2['name'] = "10001 New Hampshire Ave NW; Washington, DC- CS Gold 2010";
    job2['waterSavingsPerSecond'] = 151779 / 31536000;
    job2['energySavingsPerSecond'] = 25783 / 31536000;    
    job2['startDate'] = new Date("09/01/2008 12:00 AM");
	
var job3 = [];
    job3['name'] = "1101 New York Avenue, Washington, DC – CS Pilot Gold 2008";
    job3['waterSavingsPerSecond'] = 324399 / 31536000;
    job3['energySavingsPerSecond'] = 3540 / 31536000;    
    job3['startDate'] = new Date("10/30/2006 12:00 AM");

var job4 = [];
    job4['name'] = "1129 20th St; Arlington, VA- CS Gold 2010";
    job4['waterSavingsPerSecond'] = 539756 / 31536000;
    job4['energySavingsPerSecond'] = 1363 / 31536000;    
    job4['startDate'] = new Date("05/03/2010 12:00 AM");

var job5 = [];
    job5['name'] = "300 New Jersey Ave NW; Washington, DC CS Gold 2010";
    job5['waterSavingsPerSecond'] = 361725 / 31536000;
    job5['energySavingsPerSecond'] = 7623 / 31536000;    
    job5['startDate'] = new Date("02/09/2010 12:00 AM");

var job6 = []; // NO VALUES ON SPREAD SHEET
    job6['name'] = "ACE Insurance Headquarters, Philadelphia, PA- OM Silver 2009";
    job6['waterSavingsPerSecond'] = 0;
    job6['energySavingsPerSecond'] = 0;    
    job6['startDate'] = new Date("12/01/2005 12:00 AM");

var job7 = [];
    job7['name'] = "American Pharmacists Association Headquarters, Washington, DC - CS Gold 2010";
    job7['waterSavingsPerSecond'] = 776704  / 31536000;    
    job7['energySavingsPerSecond'] = 3618 / 31536000;        
    job7['startDate'] = new Date("06/29/2009 12:00 AM");

var job8 = [];
    job8['name'] = "Child Care Center, Ashburn, VA –NC 2.2 Gold 2008";
    job8['waterSavingsPerSecond'] = 237212 / 31536000;    
    job8['energySavingsPerSecond'] = 283 / 31536000;        
    job8['startDate'] = new Date("08/20/2008 12:00 AM");

var job9 = []; // NO ENERGY SAVINGS VALUE
    job9['name'] = "Columbia Heights Community Center, Washington, DC - NC 2.1 Silver 2010";
    job9['waterSavingsPerSecond'] = 80210 / 31536000;    
    job9['energySavingsPerSecond'] = 0;        
    job9['startDate'] = new Date("01/01/2010 12:00 AM");

var job10 = [];
    job10['name'] = "Cromley Lofts Condominiums, Alexandria, VA –NC 2.1 Gold 2007";
    job10['waterSavingsPerSecond'] = 60115 / 31536000;    
    job10['energySavingsPerSecond'] = 35100 / 31536000;        
    job10['startDate'] = new Date("05/28/2007 12:00 AM");

var job11 = []; // NO WATER SAVINGS VALUE
    job11['name'] = "Edison Place, PEPCO Headquarters, Washington, DC- OM Gold 2009";
    job11['waterSavingsPerSecond'] = 0;    
    job11['energySavingsPerSecond'] = 1166 / 31536000;        
    job11['startDate'] = new Date("02/01/2001 12:00 AM");

var job12 = []; // NO ENERGY SAVINGS VALUE
    job12['name'] = "Element 12420, Rockville, MD – CS Gold 2010";
    job12['waterSavingsPerSecond'] = 294938 / 31536000;    
    job12['energySavingsPerSecond'] = 0;        
    job12['startDate'] = new Date("01/11/2009 12:00 AM");

var job13 = []; 
    job13['name'] = "Fitzgerald Toyota Certified Used Vehicle Center, Germantown, MD – NC Gold 2010";
    job13['waterSavingsPerSecond'] = 35878 / 31536000;    
    job13['energySavingsPerSecond'] = 787 / 31536000;            
    job13['startDate'] = new Date("02/15/2009 12:00 AM");

var job14 = []; 
    job14['name'] = "Franklin Center, Columbia, MD- CS 2.0 Gold 2009";
    job14['waterSavingsPerSecond'] = 1395000 / 31536000;    
    job14['energySavingsPerSecond'] = 0;            
    job14['startDate'] = new Date("01/01/2009 12:00 AM");

var job15 = []; 
    job15['name'] = "Gables at Takoma, Washington, DC- NC 2.2 Silver 2009";
    job15['waterSavingsPerSecond'] = 830998 / 31536000;    
    job15['energySavingsPerSecond'] = 0;            
    job15['startDate'] = new Date("09/15/2008 12:00 AM");

var job16 = []; 
    job16['name'] = "George School; Newton, PA- LEED for Schools Gold 2010";
    job16['waterSavingsPerSecond'] = 476840 / 31536000;    
    job16['energySavingsPerSecond'] = 41295 / 31536000;            
    job16['startDate'] = new Date("09/01/2009 12:00 AM");

var job17 = [];
    job17['name'] = "Lafayette Tower, Washington, DC - CS 2.0, Platinum 2009";
    job17['waterSavingsPerSecond'] = 636406 / 31536000;    
    job17['energySavingsPerSecond'] = 3636 / 31536000;           
    job17['startDate'] = new Date("06/01/2009 12:00 AM");

var job18 = [];
    job18['name'] = "MARSOC, Camp LeJeune, NC – NC 2.2 Silver 2010";
    job18['waterSavingsPerSecond'] = 713981 / 31536000;    
    job18['energySavingsPerSecond'] = 2105 / 31536000;           
    job18['startDate'] = new Date("10/31/2009 12:00 AM");

var job19 = []; // NO ENERGY SAVINGS VALUE
    job19['name'] = "Milestone Building 4, Germantown, MD – CS Gold 2010";
    job19['waterSavingsPerSecond'] = 1311750 / 31536000;    
    job19['energySavingsPerSecond'] = 0;
    job19['startDate'] = new Date("10/01/2009 12:00 AM");

var job20 = []; // START DATE NOTED AS ONLY 2005 (used 1/1/05)
    job20['name'] = "National Association of Realtors Headquarters, Washington, DC –NC 2.1 Silver 2005";
    job20['waterSavingsPerSecond'] = 659308 / 31536000;    
    job20['energySavingsPerSecond'] = 2634700 / 31536000;           
    job20['startDate'] = new Date("01/01/2005 12:00 AM");

var job21 = [];
    job21['name'] = "National Maritime Center, Martinsburg, WV –NC 2.2 Silver 2008";
    job21['waterSavingsPerSecond'] = 223761 / 31536000;    
    job21['energySavingsPerSecond'] = 988 / 31536000;           
    job21['startDate'] = new Date("01/01/2008 12:00 AM");

var job22 = []; 
    job22['name'] = "Navy Federal Credit Union, Phase I, Pensacola, FL - NC 2.1 Gold 2004";
    job22['waterSavingsPerSecond'] = 1142400 / 31536000;    
    job22['energySavingsPerSecond'] = 1514 / 31536000;           
    job22['startDate'] = new Date("12/01/2003 12:00 AM");

var job23 = [];  // ENERGY SAVINGS AMOUNT HAS 3 DECIMAL PLACES--IS THIS CORRECT? 8672.316
    job23['name'] = "Navy Federal Credit Union, Phase II, Pensacola, FL- NC 2.1 Gold 2009";
    job23['waterSavingsPerSecond'] = 1551290 / 31536000;    
    job23['energySavingsPerSecond'] = 8672.316 / 31536000;           
    job23['startDate'] = new Date("01/01/2009 12:00 AM");

var job24 = []; // NO SAVINGS VALUES AT ALL
    job24['name'] = "NCARB Headquarters, Washington, DC- CI 2.0 Silver 2008";
    job24['waterSavingsPerSecond'] = 0;    
    job24['energySavingsPerSecond'] = 0;           
    job24['startDate'] = new Date("12/07/2007 12:00 AM");

var job25 = []; 
    job25['name'] = "Residence Hall at Square 80, Washington, DC – NC Gold 2010";
    job25['waterSavingsPerSecond'] = 1396928 / 31536000;    
    job25['energySavingsPerSecond'] = 6504 / 31536000;           
    job25['startDate'] = new Date("09/01/2010 12:00 AM");

var job26 = []; // NO ENERGY SAVINGS VALUE
    job26['name'] = "Savoy Elementary School, Washington, DC - NC 2.2 Gold 2010";
    job26['waterSavingsPerSecond'] = 84250 / 31536000;    
    job26['energySavingsPerSecond'] = 0; 
    job26['startDate'] = new Date("08/30/2008 12:00 AM");

var job27 = []; 
    job27['name'] = "Service Employees International Union, Washington DC –NC 2.1 Gold 2006";
    job27['waterSavingsPerSecond'] = 0;    
    job27['energySavingsPerSecond'] = 0;
    job27['startDate'] = new Date("10/30/2005 12:00 AM");

var job28 = []; 
    job28['name'] = "Sidwell Friends Lower School, Bethesda MD- NC 2.1 Gold 2009";
    job28['waterSavingsPerSecond'] = 243000 / 31536000;    
    job28['energySavingsPerSecond'] = 324138 / 31536000;           
    job28['startDate'] = new Date("08/25/2007 12:00 AM");

var job29 = []; 
    job29['name'] = "Sidwell Friends Middle School, Washington, DC - NC 2.1, Platinum 2007";
    job29['waterSavingsPerSecond'] = 1822786 / 31536000;    
    job29['energySavingsPerSecond'] = 1454 / 31536000;           
    job29['startDate'] = new Date("08/01/2006 12:00 AM");

var job30 = []; // MISSING ALL DATA
    job30['name'] = "Society for Neuroscience Headquarters, Washington, DC- CI 2.1 Gold 2006";
    job30['waterSavingsPerSecond'] = 0;    
    job30['energySavingsPerSecond'] = 0;           
    job30['startDate'] = new Date("12/01/2010 12:00 AM");

var job31 = []; 
    job31['name'] = "Station Place 3 Office Building, Washington, DC- CS Silver 2009";
    job31['waterSavingsPerSecond'] = 5071501 / 31536000;    
    job31['energySavingsPerSecond'] = 0;
    job31['startDate'] = new Date("05/01/2009 12:00 AM");

var job32 = []; 
    job32['name'] = "Station Ridge, Hanover, MD - CS Gold 2010";
    job32['waterSavingsPerSecond'] = 540424 / 31536000;    
    job32['energySavingsPerSecond'] = 621 / 31536000;           
    job32['startDate'] = new Date("01/14/2010 12:00 AM");

var job33 = []; // DUMMY VALUE USED FOR START DATE: 06/15/2009 (mid point for year of 2009)
    job33['name'] = "Terrazzo Mixed-Use, Nashville, TN- CS Pilot Silver 2009";
    job33['waterSavingsPerSecond'] = 3191159 / 31536000;    
    job33['energySavingsPerSecond'] = 1281.8 / 31536000;           
    job33['startDate'] = new Date("06/15/2009 12:00 AM");

var job34 = []; 
    job34['name'] = "Town Center Three, Charlottesville, VA -CS 2.0 Gold 2009";
    job34['waterSavingsPerSecond'] = 317691 / 31536000;    
    job34['energySavingsPerSecond'] = 518 / 31536000;           
    job34['startDate'] = new Date("12/01/2008 12:00 AM");

var job35 = []; 
    job35['name'] = "Trinidad Community Center, Washington, DC- NC 2.1 Certified 2009";
    job35['waterSavingsPerSecond'] = 62415 / 31536000;    
    job35['energySavingsPerSecond'] = 0;
    job35['startDate'] = new Date("12/31/2006 12:00 AM");

var job36 = []; 
    job36['name'] = "Twinbrook Place, Rockville, MD – CS Gold 2010";
    job36['waterSavingsPerSecond'] = 475151 / 31536000;    
    job36['energySavingsPerSecond'] = 1548 / 31536000;           
    job36['startDate'] = new Date("12/30/2009 12:00 AM");

var job37 = []; 
    job37['name'] = "US Census Headquarters";
    job37['waterSavingsPerSecond'] = 4144140 / 31536000;    
    job37['energySavingsPerSecond'] = 8149 / 31536000;           
    job37['startDate'] = new Date("03/30/2006 12:00 AM");

var job38 = []; 
    job38['name'] = "Union of Concerned Scientists, Washington, DC- CI 2.0 Gold 2008";
    job38['waterSavingsPerSecond'] = 81472 / 31536000;    
    job38['energySavingsPerSecond'] = 0;
    job38['startDate'] = new Date("03/28/2008 12:00 AM");

var job39 = []; 
    job39['name'] = "University of Maryland University College, College Park, MD – NC Gold 2010";
    job39['waterSavingsPerSecond'] = 615669 / 31536000;    
    job39['energySavingsPerSecond'] = 2081 / 31536000;           
    job39['startDate'] = new Date("12/01/2009 12:00 AM");

var job40 = []; 
    job40['name'] = "Vansville Elementary School, Beltsville, MD -NC 2.2 Gold 2009";
    job40['waterSavingsPerSecond'] = 560738 / 31536000;    
    job40['energySavingsPerSecond'] = 2116 / 31536000;           
    job40['startDate'] = new Date("08/25/2008 12:00 AM");

var job41 = []; // SUSPICIOUS START DATE: 1/1/12, when cert date / title date is 2010: SET TO 2010!!
    job41['name'] = "Waterfront West 4th Street, Washington, DC - NC 2.2 Gold 2010";
    job41['waterSavingsPerSecond'] = 917750 / 31536000;    
    job41['energySavingsPerSecond'] = 3991 / 31536000;           
    job41['startDate'] = new Date("01/01/2010 12:00 AM");

// add (or remove) jobs to the array in the future
var jobs =[job2,job3,job4,job5,job6,job7,job8,job9,job10,job11,job12,job13,job14,job15,job16,job17,job18,job19,job20,job21,job22,job23,job24,job25,job26,job27,job28,job29,job30,job31,job32,job33,job34,job35,job36,job37,job38,job39,job40,job41];


// This function calculates the updated energy and water savings based on the current total values,
//  elapsed time, and cumulative energy & water savings rates.  It updates the html elements to display the 
//  current values.  The if statement allows it to only run once a second.
 function Cycle()
 {
 //  currentTime=new Date().getTime();
  // elapsedMilliseconds = currentTime - previousTime; 
  // elapsedSeconds = Math.floor(elapsedMilliseconds/1000);
	elapsedSeconds = 1;
   if(elapsedSeconds >= 1) {

	currentWaterSavings = currentWaterSavings + elapsedSeconds * totalWaterSavingsPerSecond;
	document.getElementById("waterSavingsPerSecond").innerHTML = addCommas(Math.round(currentWaterSavings));
	currentEnergySavings = currentEnergySavings + elapsedSeconds * totalEnergySavingsPerSecond;
	document.getElementById("energySavingsPerSecond").innerHTML = addCommas(Math.round(currentEnergySavings));
   }
 }

// This function stops the operation of the clock. It can be restarted by calling Init() again
 function Stop() {
   clearInterval(cycleIntervalId);
 }


// The init function initalizes all the variables and current savings values from the jobs array
// It also fires off the timer to cycle every second.
 function Init() 
 {
   totalWaterSavingsPerSecond  = 0;
   totalEnergySavingsPerSecond = 0;
   totalInitialWaterSavings = 0;
   totalInitialEnergySavings = 0;

   for(var i = 0; i < jobs.length; i++) {
  	var dateNow = new Date();
   
   	elapsedSeconds = Math.floor((dateNow - new Date(jobs[i]['startDate']).valueOf())/1000); 

	totalInitialWaterSavings += elapsedSeconds * jobs[i]['waterSavingsPerSecond'];
	totalWaterSavingsPerSecond += jobs[i]['waterSavingsPerSecond'];
	
	totalInitialEnergySavings += elapsedSeconds * jobs[i]['energySavingsPerSecond'];
	totalEnergySavingsPerSecond += jobs[i]['energySavingsPerSecond'];
   }

   document.getElementById("waterSavingsPerSecond").innerHTML = addCommas(Math.round(totalInitialWaterSavings));   
   document.getElementById("energySavingsPerSecond").innerHTML = addCommas(Math.round(totalInitialEnergySavings));
   currentWaterSavings = totalInitialWaterSavings;
   currentEnergySavings = totalInitialEnergySavings;

   // set the interval to .1 second so that it always cycles very close to on the second.  
   // this fires the Cycle function every 100 milliseconds.
   cycleIntervalId = setInterval(Cycle, 1000); 
 }

function addCommas(nStr)
{
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}


// run the ticker on page load
window.onload=Init;
