﻿function calculate()
{
	var selObj = document.getElementById('projecttype');
	var selIndex = selObj.selectedIndex;
	var projecttype = selObj.options[selIndex].value;

	var size = document.getElementById('size').value;
	var floors = document.getElementById('floors').value;
	
	if (!IsNumeric(size)) {
		document.getElementById('sizeerror').innerHTML = 'Invalid number';
		return;
	}
	else
		document.getElementById('sizeerror').innerHTML = '&nbsp;';
	
	
	if (!IsNumeric(floors)) {
		document.getElementById('floorerror').innerHTML = 'Invalid number';
		return;
	}
	else
		document.getElementById('floorerror').innerHTML = '&nbsp;';	
	
	if (projecttype == "")
		return;
	
	var vals = new Array();
	
	vals["LIGHT"] = new Array();
	vals["LIGHT"]["COST"] = 1.6;
	vals["LIGHT"]["SAVINGSKW"] = (1.6 / 1000) - (0.8 / 1000);
	vals["LIGHT"]["SAVINGSKWH"] = vals["LIGHT"]["SAVINGSKW"] * 4000;
	vals["LIGHT"]["SAVINGSRATE"] = 0.11;

	vals["WIN"] = new Array();
	vals["WIN"]["COST"] = 100000 / 300000;
	vals["WIN"]["SAVINGSKW"] = 56/300000;
	vals["WIN"]["SAVINGSKWH"] = 93000/300000;
	vals["WIN"]["SAVINGSRATE"] = 0.12;

	vals["CHILL"] = new Array();
	vals["CHILL"]["COST"] = 2.2;
	vals["CHILL"]["SAVINGSKW"] = 0.000746666666666667;
	vals["CHILL"]["SAVINGSKWH"] = 0.821333333333333;
	vals["CHILL"]["SAVINGSRATE"] = 0.14;	
	
	vals["TOWER"] = new Array();
	vals["TOWER"]["COST"] = 0.17;
	vals["TOWER"]["SAVINGSKW"] = 0;
	vals["TOWER"]["SAVINGSKWH"] = 0.35;
	vals["TOWER"]["SAVINGSRATE"] = 0.1;	
	
	vals["UNITS"] = new Array();				
	vals["UNITS"]["COST"] = 9360;
	vals["UNITS"]["SAVINGSKW"] = 0.00019;
	vals["UNITS"]["SAVINGSKWH"] = 0.594;
	vals["UNITS"]["SAVINGSRATE"] = 0.1;	

	vals["SUBTOTALS"] = new Array();	
	
	if (projecttype == "UNITS")
		vals["SUBTOTALS"]["COST"] = vals[projecttype]["COST"] * floors;
	else
		vals["SUBTOTALS"]["COST"] = vals[projecttype]["COST"] * size;
	
	vals["SUBTOTALS"]["SAVINGSKW"] = vals[projecttype]["SAVINGSKW"] * size;
	vals["SUBTOTALS"]["SAVINGSKWH"] = vals[projecttype]["SAVINGSKWH"] * size;
	vals["SUBTOTALS"]["COSTSAVINGSKWH"] = vals[projecttype]["SAVINGSRATE"] * vals["SUBTOTALS"]["SAVINGSKWH"];	
	vals["SUBTOTALS"]["COSTSAVINGSKW"] = vals[projecttype]["SAVINGSRATE"] * vals["SUBTOTALS"]["SAVINGSKW"];

	document.getElementById('electricitysavings').value = '$' + addCommas(Math.round(vals["SUBTOTALS"]["SAVINGSKWH"]));
	document.getElementById('cost').value = '$' + addCommas(Math.round(vals["SUBTOTALS"]["COST"]));
	document.getElementById('reduction').value = Math.round(vals["SUBTOTALS"]["SAVINGSKW"]);

	var ratekw = 400;
	var ratekwh = 0.05;
	if (projecttype != "LIGHT")
	{
		ratekw = 800;
		ratekwh = 0.1;
	}

	var incmax = Math.max(vals["SUBTOTALS"]["SAVINGSKW"] * ratekw, vals["SUBTOTALS"]["SAVINGSKWH"] * ratekwh);
	
	var incentive = Math.min(vals["SUBTOTALS"]["COST"] * 0.4, incmax);
	var utilitysavings = vals["SUBTOTALS"]["COSTSAVINGSKWH"] + vals["SUBTOTALS"]["COSTSAVINGSKW"];
	var payback = vals["SUBTOTALS"]["COST"] / utilitysavings;
	
	var cdmcost = vals["SUBTOTALS"]["COST"] - incentive;
	var cdmpayback = cdmcost / utilitysavings;	
	
	document.getElementById('incentive').value = '$' + addCommas(Math.round(incentive));
	document.getElementById('utilitysavings').value = '$' + addCommas(Math.round(utilitysavings));
	document.getElementById('payback').value = Math.round(payback*10)/10 + ' Years';
	
	document.getElementById('cdmcost').value = '$' + addCommas(Math.round(cdmcost));
	document.getElementById('cdmutilitysavings').value = '$' + addCommas(Math.round(utilitysavings));
	document.getElementById('cdmpayback').value = Math.round(cdmpayback*10)/10 + ' Years';
}

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;
}

function IsNumeric(sText)
{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
}


function getUrlVars()
{
	var vars = [], hash;
	var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
	
	for(var i = 0; i < hashes.length; i++)
	{
		hash = hashes[i].split('=');
		vars.push(hash[0]);
		vars[hash[0]] = hash[1];
	}
	return vars;
}

function loadCalc() {

	//url = getUrlVars();
	
	document.getElementById('size').value = ""//url["s"];
	document.getElementById('floors').value = "";//url["f"];
	document.getElementById('projecttype').selectedIndex = "";//url["p"];
	
	calculate();
}
