var KWH=[.08,.10,.12,.14,.15,.16,.18,.20,.23,.25,.26,.30,.35,.40,.45,.50];
var DEFAULTKWH=7;
var H2OSTDHEADLOSS=60;
var H2OSPECGRAVITY=1;
var STDPUMP=[{hp:3,sf:1.15,load:.9092,motor_eff:.78,overall_eff:.47},{hp:2,sf:1.3,load:.9000,motor_eff:.78,overall_eff:.47},{hp:1.5,sf:1.47,load:.8315,motor_eff:.72,overall_eff:.51},{hp:1,sf:1.65,load:.9000,motor_eff:.7,overall_eff:.45},{hp:.75,sf:1.67,load:.9440,motor_eff:.63,overall_eff:.42},{hp:.5,sf:1.9,load:.8890,motor_eff:.63,overall_eff:.39}];
var DEFAULTSTDPUMP=3;
var DEFAULTHOURS=16;
var IFDATA=[{poolsize:10,hours:9,kwhd:0.2770},{poolsize:12,hours:8,kwhd:0.3773},{poolsize:15,hours:5,kwhd:0.3825},{poolsize:18,hours:8,kwhd:0.5435},{poolsize:20,hours:10,kwhd:0.5515},{poolsize:23,hours:11,kwhd:0.6517},{poolsize:27,hours:12,kwhd:0.5383},{poolsize:30,hours:13,kwhd:0.8575},{poolsize:35,hours:16,kwhd:0.9525},{poolsize:40,hours:14,kwhd:1.0211},{poolsize:50,hours:17,kwhd:1.1557},{poolsize:60,hours:15,kwhd:1.1557},{poolsize:13,hours:17,kwhd:1.1557},{poolsize:90,hours:16,kwhd:1.1557},{poolsize:110,hours:18,kwhd:1.1557},{poolsize:120,hours:18,kwhd:1.1557},{poolsize:130,hours:17,kwhd:1.1557},{poolsize:140,hours:16,kwhd:1.1557},{poolsize:150,hours:18,kwhd:1.1557}];
var DEFAULTIFDATA=4;
var IFMODELS=[{name:"IntelliFlo&reg; VF",factor:1,calcmethod:"IFDATA"}];
var DEFAULTIFMODEL=0;
function validatehours(){
      var hours=document.getElementById("hours").value;
      if((hours+""==parseFloat(hours)+""||hours+""==parseFloat(hours)+".")&&hours*1>0&&hours*1<=24)
      {
         document.getElementById("invalidnumber").style.display="none";
         calculate()
      }
      else
      {
         document.getElementById("invalidnumber").style.display=""
      }
   }
function calculate(){
   var inputs={poolsize:document.getElementById("poolsize").options.selectedIndex,kwh:document.getElementById("kwh").options.selectedIndex,pumpspeed:document.getElementById("pumpspeed").options.selectedIndex,pumphp:document.getElementById("pumphp").options.selectedIndex,hours:document.getElementById("hours").value,ifmodel:document.getElementById("ifmodel").options.selectedIndex};
   var stdpump=STDPUMP[inputs.pumphp];
   /*var watts=stdpump.hp*stdpump.sf*stdpump.load*746/stdpump.motor_eff;*/
   var watts=stdpump.hp*746;
   var gpm=((stdpump.hp*.746)*stdpump.sf*stdpump.load/stdpump.motor_eff)*3960*stdpump.overall_eff/(H2OSTDHEADLOSS*H2OSPECGRAVITY);
   var kwhperday=watts*inputs.hours/1000;
   var stdturnsperday=gpm*60*inputs.hours/((IFDATA[inputs.poolsize].poolsize*1000*0.2641*100)/100);
   var stdcostperday=kwhperday*KWH[inputs.kwh];
   var stdcostperyear=stdcostperday*365;
   document.getElementById("stdhoursperday").innerHTML=inputs.hours;
   document.getElementById("stdturnsperday").innerHTML=stdturnsperday.toFixed(2);
   document.getElementById("stdcostperday").innerHTML="$"+stdcostperday.toFixed(2);
   document.getElementById("stdcostperyear").innerHTML="$"+stdcostperyear.toFixed(2);
   var stdhoursperday2=(Math.round(IFDATA[inputs.poolsize].poolsize*1000*0.2641*10000)/10000)/gpm/60;
   var stdcostperday2=stdcostperday/stdturnsperday;
   var stdcostperyear2=stdcostperday2*365;
   document.getElementById("stdhoursperday2").innerHTML=stdhoursperday2.toFixed(1);
   document.getElementById("stdcostperday2").innerHTML="$"+stdcostperday2.toFixed(2);
   document.getElementById("stdcostperyear2").innerHTML="$"+stdcostperyear2.toFixed(2);
   var ifmodel=inputs.ifmodel;
   var ifpump=IFDATA[inputs.poolsize];
   if(IFMODELS[ifmodel].calcmethod=="IFDATA")
   {
      var ifcostperday=ifpump.kwhd*KWH[inputs.kwh]*IFMODELS[ifmodel].factor;
      var ifcostperyear=ifcostperday*365;
      document.getElementById("ifhours").innerHTML=ifpump.hours
   }
   else
   {
      var ifcostperday=stdcostperday2*IFMODELS[ifmodel].factor;
      var ifcostperyear=stdcostperyear2*IFMODELS[ifmodel].factor;
      document.getElementById("ifhours").innerHTML=""
   }
   document.getElementById("ifcostperday").innerHTML="$"+ifcostperday.toFixed(2);
   document.getElementById("ifcostperyear").innerHTML="$"+ifcostperyear.toFixed(2);
   document.getElementById("savingsperday").innerHTML="$"+(stdcostperday-ifcostperday).toFixed(2);
   document.getElementById("savingsperyear").innerHTML="$"+(stdcostperyear-ifcostperyear).toFixed(2);
   document.getElementById("savingsperday2").innerHTML="$"+(stdcostperday2-ifcostperday).toFixed(2);
   document.getElementById("savingsperyear2").innerHTML="$"+(stdcostperyear2-ifcostperyear).toFixed(2);
   document.getElementById("printpoolsize").innerHTML=IFDATA[inputs.poolsize].poolsize+",000 litres";
   document.getElementById("printhours").innerHTML=inputs.hours;
   document.getElementById("printkwh").innerHTML=KWH[inputs.kwh];
   document.getElementById("printpumphp").innerHTML=STDPUMP[document.getElementById("pumphp").options.selectedIndex].hp+" HP";
   document.getElementById("printifmodel").innerHTML=IFMODELS[document.getElementById("ifmodel").options.selectedIndex].name
}

function init(){
      var poolsize=document.getElementById("poolsize");
      for(var i=0;i<IFDATA.length;i++)
      {
         poolsize.options[i]=new Option(IFDATA[i].poolsize+",000 litres")
      }
      poolsize.options.selectedIndex=DEFAULTIFDATA;
      var hours=document.getElementById("hours").value=DEFAULTHOURS;
      var kwh=document.getElementById("kwh");
      for(var i=0;i<KWH.length;i++)
      {
         kwh.options[i]=new Option(KWH[i].toFixed(2))
      }
      kwh.options.selectedIndex=DEFAULTKWH;
      var pumphp=document.getElementById("pumphp");
      pumphp.options[5]=new Option("0.375 kW");
      pumphp.options[4]=new Option("0.550 kW");
      pumphp.options[3]=new Option("0.750 kW");
      pumphp.options[2]=new Option("1.100 kW");
      pumphp.options[1]=new Option("1.500 kW");
      pumphp.options[0]=new Option("2.200 kW");


      pumphp.options.selectedIndex=DEFAULTSTDPUMP;
      var ifmodel=document.getElementById("ifmodel");
      for(var i=0;i<IFMODELS.length;i++)
      {
         ifmodel.options[i]=new Option(IFMODELS[i].name)
      }
      ifmodel.options.selectedIndex=DEFAULTIFMODEL;
      calculate()
}

