// Javascript Document
// Author: Matt Wurst-Caligari (matt.wurst-caligari@colostate.edu)
// Purpose: Calculate and display a real-time ticker component for the homepage of the Sustainability site.
//			The ticker shows a running total of energy used on campus, as well as savings provided by green initiatives.
// Date: Fall, 2008.

function startTime()
{
	var difference = 0;

	var base_date = new Date("January 1, 2009 00:00:00");
	var today = new Date();

	var difference = today - base_date;

	// Define all multipliers...  Values entered as per-second numbers...
	// Consumption and emissions...
	var electricity_usage_multiplier = 3.0738092551;
	var water_usage_multiplier = 7.0815107530;
	var landfilled_waste_multiplier = 0.1087729521;
	var co2_emissions_multiplier = 6.1708433134;
	// Impact of green projects...
	var electricity_avoidance_multiplier = 0.4601652265;
	var water_avoidance_multiplier = 1.5983812872;
	var recycled_waste_multiplier = 0.1046700176;
	var co2_avoidance_multiplier = 1.1196811355;
	
	// Calculate real-time value based on current number of seconds elapsed times multiplier value...
	// Consumption and emissions...
	// Divide the multipliers by 1000 to get them into their millisecond equivalent...
	var electricity_usage_value = difference * (electricity_usage_multiplier/1000);
	var water_usage_value = difference * (water_usage_multiplier/1000);
	var landfilled_waste_value = difference * (landfilled_waste_multiplier/1000);
	var co2_emissions_value = difference * (co2_emissions_multiplier/1000);
	// Impact of green projects...
	var electricity_avoidance_value = difference * (electricity_avoidance_multiplier/1000);
	var water_avoidance_value = difference * (water_avoidance_multiplier/1000);
	var recycled_waste_value = difference * (recycled_waste_multiplier/1000);
	var co2_avoidance_value = difference * (co2_avoidance_multiplier/1000);

	// Round the values to two decimal places...
	// Consumption and emissions...
	var electricity_usage_value = addCommas(electricity_usage_value.toFixed(0))
	var water_usage_value = addCommas(water_usage_value.toFixed(0))
	var landfilled_waste_value = addCommas(landfilled_waste_value.toFixed(0))
	var co2_emissions_value = addCommas(co2_emissions_value.toFixed(0))
	// Impact of green projects...
	var electricity_avoidance_value = addCommas(electricity_avoidance_value.toFixed(0))
	var water_avoidance_value = addCommas(water_avoidance_value.toFixed(0))
	var recycled_waste_value = addCommas(recycled_waste_value.toFixed(0))
	var co2_avoidance_value = addCommas(co2_avoidance_value.toFixed(0))
	
	// Add commas to improve readability to long numbers...
	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;
	}

	// Populate array with data to display on-screen...
	var result={electricity_usage:electricity_usage_value, water_usage:water_usage_value, landfilled_waste:landfilled_waste_value, co2_emissions:co2_emissions_value, electricity_avoidance:electricity_avoidance_value, water_avoidance:water_avoidance_value, recycled_waste:recycled_waste_value, co2_avoidance:co2_avoidance_value};

	document.getElementById('consumption').innerHTML="<h4>Consumption and Emissions</h4><div class='label'><p class='odd'>Electricity usage (kWh)</p><p class='even'>Water usage (gallons)</p><p class='odd'>Landfilled waste (lbs)</p><p class='even'>Equivalent CO<sub>2</sub> emitted (lbs)</p></div><div class='value'><p class='odd'>"+result['electricity_usage']+"</p><p class='even'>"+result['water_usage']+"</p><p class='odd'>"+result['landfilled_waste']+"</p><p class='even'>"+result['co2_emissions']+"</p></div>";

	document.getElementById('preservation').innerHTML="<h4>Impact of Green Projects</h4><div class='label'><p class='odd'>Electricity avoidance (kWh)</p><p class='even'>Water avoidance (gallons)</p><p class='odd'>Recycled/composted waste (lbs)</p><p class='even'>Equivalent CO<sub>2</sub> avoidance (lbs)</p></div><div class='value'><p class='odd'>"+result['electricity_avoidance']+"</p><p class='even'>"+result['water_avoidance']+"</p><p class='odd'>"+result['recycled_waste']+"</p><p class='even'>"+result['co2_avoidance']+"</p></div>";

	// Number specified at the end of the setTimeout definition determines how fast the numbers will refresh.
	// Smaller number = faster refresh.  1000 = 1 second.
	t=setTimeout('startTime()',10);
}