function SCslideChange(ui) {
	$('.slider_callout',ui.handle.parentNode).text(ui.value);
	$('.slider_callout',ui.handle.parentNode).css('left', ui.handle.style.left);
	$('input',ui.handle.parentNode).attr('value',ui.value);
	savingscalc.calculate();
}
$(function() {
	$('#slider-computers').slider({
		step: 5,
		slide: function(e,ui) { SCslideChange(ui); },
		change: function(e,ui) { SCslideChange(ui); }
	});
	$('#slider-computers').slider('value',100);
	$('#slider-hot-day').slider({
		min: 18,
		max: 26,
		slide: function(e,ui) { SCslideChange(ui); },
		change: function(e,ui) { SCslideChange(ui); }
	});
	$('#slider-hot-day').slider('value',22);
	$('#slider-cold-day').slider({
		min: 18,
		max: 26,
		slide: function(e,ui) { SCslideChange(ui); },
		change: function(e,ui) { SCslideChange(ui); }
	});
	$('#slider-cold-day').slider('value',24);
	$('#slider-lighting').slider({
		step: 5,
		slide: function(e,ui) { SCslideChange(ui); },
		change: function(e,ui) { SCslideChange(ui); }
	});
	$('#slider-lighting').slider('value',0);
	$('#slider-appliances').slider({
		step: 5,
		slide: function(e,ui) { SCslideChange(ui); },
		change: function(e,ui) { SCslideChange(ui); }
	});
	$('#slider-appliances').slider('value',100);
});

savingscalc = new Object();
savingscalc.form = document.getElementById('checklist');

savingscalc.init = function() {
	for(var i=0;i<savingscalc.form.elements.length;i++) {
		switch(savingscalc.form.elements[i].type) {
			case 'text': {
				savingscalc.form.elements[i].onkeyup = function() { savingscalc.calculate(); }
				break;
			}
			case 'radio':
			case 'select-one': {
				savingscalc.form.elements[i].onchange = function() { savingscalc.calculate(); }
				break;
			}
		}
	}
	savingscalc.calculate();
}
savingscalc.calculate = function() {
	document.getElementById('air-con').style.display = (document.getElementById('air-con-on').checked ? '' : 'none');
	var e = new Number(document.getElementById('electricity-bill').value / document.getElementById('electricity-bill-period').value * 12);
	var cpc = new Number(document.getElementById('percent-computers-left-on').value / 100);
	var aco = document.getElementById('air-con-on').checked;
	var ht = new Number(24 - document.getElementById('hot-day-temp').value);
	ht = (ht < 0 ? 0 : ht);
	var ct = new Number(document.getElementById('cold-day-temp').value - 20);
	ct = (ct < 0 ? 0 : ct);
	var lpc = new Number(document.getElementById('percent-efficient-lighting').value / 100);
	var apc = new Number(document.getElementById('percent-appliances-left-on').value / 100);
	
	if(isNaN(e)) {
		document.getElementById('electricity-bill-error').innerHTML = ' this must be a number';
		document.getElementById('electricity-bill').value = '';
	} else {
		document.getElementById('electricity-bill-error').innerHTML = '';
	}
	
	var wh = new Number(2310);
	var yh = new Number(8760);
	var ih = yh - wh;
	var c = (e * 0.18) * (ih / yh) * cpc;
	if(aco) {
		var ac = (e * 0.35 * 0.08 * ht / 2) + (e * 0.35 * 0.08 * ct / 2);
	} else {
		ac = 0;
	}
	var l = (e * 0.25 * 0.8) * (1 - lpc);
	var a = (e * 0.09) * (ih / yh) * apc;
	var savings = Math.round((c + ac + l + a) * 0.575);
	
	var psavings = (savings < 0 ? 0 : savings * 1.5);
	psavings = Math.round(e * 0.125 > psavings ? e * 0.125 : psavings);
	
	document.getElementById('savings').innerHTML = savingscalc.formatNumber((savings < 0 ? 0 : savings));
	document.getElementById('potential-savings').innerHTML = savingscalc.formatNumber(psavings);
	
	var showSuggestions = false;
	var suggestions = '<h2>Suggestions to save money</h2><ul>';
	if(cpc > 0.7) {
		showSuggestions = true;
		suggestions += '<li>Turn off every PC, computer screen, printer, photocopier, scanner, etc. when the office is closed</li>';
	}
	if(aco && (ht > 0 || ct > 0)) {
		showSuggestions = true;
		suggestions += '<li>Set the air-con to min. 24&#176;C / max. 20&#176;C on warm / cold days respectively</li>';
	}
	if(lpc < 0.6) {
		showSuggestions = true;
		suggestions += '<li>Replace inefficient lighting with energy efficient lighting</li>';
	}
	if(apc > 0.6) {
		showSuggestions = true;
		suggestions += '<li>Turn off all appliances</li>';
	}
	suggestions += '</ul>';
	if(showSuggestions) {
		document.getElementById('suggestions').innerHTML = suggestions;
	} else {
		document.getElementById('suggestions').innerHTML = '';
	}
	document.getElementById('buy').innerHTML = '<h3><a href="/green-business-certification/">Click here to<br />Learn more about greening your business</a></h3>';
}
savingscalc.formatNumber = function(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;
}
savingscalc.init();