// Javascript for printing OpenSprinkler modify program page // Firmware v1.8 // All content is published under: // Creative Commons Attribution ShareAlike 3.0 License // Sep 2012, Rayshobby.net function w(s) {document.writeln(s);} function id(s){return document.getElementById(s);} function imgstr(s) {return " ";} // parse time function parse_time(prefix) { var h=parseInt(id(prefix+"h").value,10); var m=parseInt(id(prefix+"m").value,10); if(!(h>=0&&h<24&&m>=0&&m<60)) {alert("Error: Incorrect time input "+prefix+".");return -1;} return h*60+m; } // fill time function fill_time(prefix,idx) { var t=prog[idx]; id(prefix+"h").value=""+((t/60>>0)/10>>0)+((t/60>>0)%10); id(prefix+"m").value=""+((t%60)/10>>0)+((t%60)%10); } // check/uncheck all days function seldays(v) { var i; for(i=0;i<7;i++) id("d"+i).checked=(v>0)?true:false; } // handle form submit function fsubmit(f) { var errmsg = "",days=[0,0],i,s,sid; var en=0; if(id("en_on").checked) en=1; // process days if(id("days_week").checked) { for(i=0;i<7;i++) {if(id("d"+i).checked) {days[0] |= (1<=2&&days[1]<=128)) {alert("Error: interval days must be between 2 and 128.");return;} days[0]=parseInt(id("drem").value,10); if(!(days[0]>=0&&days[0]=0&&ds>=0&&ds<60&&duration>0)) {alert("Error: Incorrect duration.");return;} // password var p=""; if(!sd['ipas']) p=prompt("Please enter your password:",""); if(p!=null){ f.elements[0].value=p; f.elements[1].value=pid; f.elements[2].value="["+en+","+days[0]+","+days[1]+","+start_time+","+end_time+","+interval+","+duration; for(i=0;i"+((pid>-1)?"Modify Program "+(pid+1):"Add a New Program")+"
"); w("
"); w("
"); w("

This program is: OnOff

"); w("

Select Days:

Weekly:MonTueWedThuFriSatSun
") w("
"); w("

Select Restrictions:
No restriction
Odd days only (except 31st and Feb 29th)
Even days only

"); w("Interval: Every days, starting in days.
"); w("

Select Stations:

"); w(""); var bid,s,sid; for(bid=0;bid"); w(""); if(sid%4==3) w(""); } } w("
"); w(""+snames[sid]); w("


"); w("

Time: : -> : (hh:mm)
Every: hours minutes
Duration: minutes seconds


"); w("
"); w(""); w(""); // default values id("en_on").checked=true; id("days_week").checked=true;id("days_norst").checked=true; id("dn").value="3";id("drem").value="0"; id("tsh").value="06";id("tsm").value="00";id("teh").value="18";id("tem").value="00"; id("tih").value="04";id("tim").value="00";id("tdm").value="15";id("tds").value="00"; // fill in existing program values if(pid>-1) { if(prog[0]==0) id("en_off").checked=true; // process days var _days=[prog[1],prog[2]]; if((_days[0]&0x80)&&(_days[1]>1)) { id("days_n").checked=true; id("dn").value=_days[1];id("drem").value=_days[0]&0x7f; } else { id("days_week").checked=true; for(i=0;i<7;i++) {if(_days[0]&(1<>0)/10>>0)+((t/60>>0)%10); id("tds").value=""+((t%60)/10>>0)+((t%60)%10); // process stations var bits; for(bid=0;bid