Advertisement
Guest User

Untitled

a guest
Nov 6th, 2020 (edited)
486
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. <!DOCTYPE html>
  3. <html>
  4.   <head>
  5.     <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate"/>
  6.     <meta http-equiv="Pragma" content="no-cache"/>
  7.     <meta http-equiv="Expires" content="0"/>
  8.     <link rel="stylesheet" href="css/themes/kospel.min.css" />
  9.     <link rel="stylesheet" href="css/themes/jquery.mobile.icons.min.css" />
  10.     <link rel="stylesheet" href="js/jquery-mobile/jquery.mobile.structure-1.4.5.min.css" />
  11.     <script src="js/jquery/external/jquery/jquery.js"></script>
  12.     <script src="js/jquery-mobile/jquery.mobile-1.4.5.js"></script>
  13.     <meta name="viewport" content="width=device-width, initial-scale=1">
  14.   </head>
  15. <body>
  16.   <!-- Start of first page: #one -->
  17.   <div data-role="page" id="start">
  18.     <div data-role="header">
  19.       <h1><a id="m_start__title" href="#about" onclick="showLoadingSpinner()" style="color:inherit; text-decoration:none;" data-rel="dialog" data-transition="pop">KOSPEL</a></h1>
  20.       <a onclick="window.location.href = window.location.protocol + '//' + window.location.hostname + '/mdevs';" class="ui-btn ui-shadow ui-corner-all ui-icon-home ui-btn-icon-notext ui-btn-inline" >&nbsp;</a>
  21.       <a onclick="showLoadingSpinner()" href="#m_start__mode" class="ui-btn ui-shadow ui-corner-all ui-icon-bars ui-btn-icon-notext ui-btn-inline">&nbsp;</a>
  22.     </div>
  23.  
  24.     <div role="main" class="ui-body" id="win_index">
  25.       <div><?xml version="1.0" standalone="yes"?>
  26. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
  27. <?xml version="1.0" encoding="UTF-8" standalone="no"??>
  28. <html><body><svg xmlns:osb="http://www.openswatchbook.org/uri/2009/osb" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" viewbox="0 0 1700.7874 2200" id="svg2" version="1.1" inkscape:version="0.92.2 (5c3e80d, 2017-08-06)" sodipodi:docname="master.svg"><defs id="defs4"><lineargradient id="linearGradient5609" osb:paint="gradient"><stop style="stop-color:#000000;stop-opacity:1;" offset="0" id="stop5611"/><stop style="stop-color:#000000;stop-opacity:0;" offset="1" id="stop5613"/></lineargradient><style id="style2" type="text/css"><![CDATA[<![CDATA[
  29.     .domek_s0 {stroke:#262626;stroke-width:5.82186}
  30.     .domek_f1 {fill:none}
  31.     .domek_f2 {fill:#262626}
  32.     .domek_f0 {fill:#EF7B00;fill-rule:nonzero}
  33.    ]]]]><![CDATA[>]]></style><style id="style2-8" type="text/css"><![CDATA[<![CDATA[
  34.     .zbiornik_s0 {stroke:#262626;stroke-width:5.15621}
  35.     .zbiornik_f2 {fill:none}
  36.     .zbiornik_f1 {fill:#262626}
  37.     .zbiornik_f0 {fill:#2D4191;fill-rule:nonzero}
  38.    ]]]]><![CDATA[>]]></style><style id="style2-2" type="text/css"><![CDATA[<![CDATA[
  39.     .termometr_f0 {fill:#434242;fill-rule:nonzero}
  40.    ]]]]><![CDATA[>]]></style></defs><namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="0.50000004" inkscape:cx="1205.3552" inkscape:cy="167.41471" inkscape:document-units="px" inkscape:current-layer="svg2" showgrid="true" inkscape:snap-text-baseline="true" inkscape:window-width="1920" inkscape:window-height="1018" inkscape:window-x="-8" inkscape:window-y="-8" inkscape:window-maximized="1" objecttolerance="10000" guidetolerance="10000" inkscape:snap-grids="true" units="mm"><grid type="xygrid" id="grid3335" dotted="true" spacingx="10" spacingy="9.9999998"/></namedview><metadata id="metadata7"><rdf><work rdf:about=""><format>image/svg+xml</format><type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/><title/></work></rdf></metadata><g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,1137.1098)"><rect id="rect3341" width="640" height="520" x="560" y="-518.98962" style="fill:none;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"/><rect style="fill:none;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="rect5587" width="360" height="440" x="340" y="-218.9895"/><flowroot xml:space="preserve" id="flowRoot912" style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"><flowregion id="flowRegion914"><rect id="rect916" width="882.12195" height="81.250046" x="-250" y="1375.9843"/></flowregion><flowpara id="flowPara918"/></flowroot></g><g id="error_" style="fill:#ececec" transform="translate(0,-338.23801)"><polygon transform="matrix(2.7487473,0,0,2.6430262,24.738728,1533.6655)" points="75,121 75,113 61,113 61,85 73,85 73,76 61,76 61,52 74,52 74,43 51,43 51,121 " id="polygon9"/><path d="m 305.11095,1708.1052 c 0,0 0,0 -2.74874,0 -8.24625,0 -16.49249,5.2861 -21.98998,13.2152 l -2.74875,-10.5721 h -24.73873 v 142.7234 h 27.48748 v -95.149 c 0,-21.1442 5.49749,-26.4302 24.73872,-26.4302 v 0 z" id="path20" inkscape:connector-curvature="0"/><path d="m 371.08089,1708.1052 c 0,0 -2.74875,0 -2.74875,0 -10.99499,0 -16.49248,5.2861 -24.73873,13.2152 v -10.5721 h -24.73872 v 142.7234 h 24.73872 v -95.149 c 0,-21.1442 8.24625,-26.4302 27.48748,-26.4302 v 0 z" id="path22" inkscape:connector-curvature="0"/></g><path id="radiator_" style="opacity:1;fill:#ececec" d="m 223.82657,91.25823 h 11.04407 c 7.36272,0 11.04408,2.98777 11.04408,8.96331 v 188.22943 c 0,5.97554 -3.68136,8.96331 -11.04408,8.96331 h -11.04407 c -7.36272,0 -11.04408,-2.98777 -11.04408,-8.96331 V 100.22154 c 0,-5.97554 3.68136,-8.96331 11.04408,-8.96331 z m 47.85765,0 h 11.04408 c 7.36271,0 11.04407,2.98777 11.04407,8.96331 v 188.22943 c 0,5.97554 -3.68136,8.96331 -11.04407,8.96331 h -11.04408 c -7.36271,0 -11.04407,-2.98777 -11.04407,-8.96331 V 100.22154 c 0,-5.97554 3.68136,-8.96331 11.04407,-8.96331 z m 44.1763,0 h 14.72543 c 3.68136,0 11.04407,2.98777 11.04407,8.96331 v 0 l 29.45087,11.95108 v 11.95107 l -29.45087,11.95108 v 152.3762 c 0,5.97554 -7.36271,8.96331 -11.04407,8.96331 h -14.72543 c -3.68136,0 -11.04408,-2.98777 -11.04408,-8.96331 V 100.22154 c 0,-5.97554 7.36272,-8.96331 11.04408,-8.96331 z m -139.89161,0 h 11.04408 c 7.36271,0 14.72543,2.98777 14.72543,8.96331 v 188.22943 c 0,5.97554 -7.36272,8.96331 -14.72543,8.96331 h -11.04408 c -7.36271,0 -11.04407,-2.98777 -11.04407,-8.96331 V 100.22154 c 0,-5.97554 3.68136,-8.96331 11.04407,-8.96331 z" inkscape:connector-curvature="0"/><g id="tap_" style="fill:#ececec" transform="translate(0,104.72998)"><path d="m 291.27855,305.94505 c 33.25097,0 59.85175,16.27548 79.80234,37.97611 l -39.90117,16.27548 C 324.52952,343.92116 304.57894,338.496 291.27855,338.496 h -46.55137 v 97.65287 H 164.92484 V 338.496 316.79537 c 0,-5.42516 6.6502,-10.85032 13.30039,-10.85032 h 66.50195 z" id="path25" inkscape:connector-curvature="0"/><path d="m 164.92484,295.09473 h 79.80234 v -27.1258 l 46.55137,-16.27547 c 19.95058,0 19.95058,-10.85032 13.30039,-21.70064 -39.90117,10.85032 -79.80234,21.70064 -126.35371,27.1258 -13.30039,0 -13.30039,5.42516 -13.30039,10.85031 z" id="path27" inkscape:connector-curvature="0"/><path d="m 351.1303,371.04696 c 6.6502,5.42516 13.30039,10.85032 19.95059,21.70064 0,5.42516 0,5.42516 0,10.85031 0,10.85032 -6.6502,16.27548 -19.95059,16.27548 -6.65019,0 -19.95058,-5.42516 -19.95058,-16.27548 0,-5.42515 6.65019,-5.42515 6.65019,-10.85031 6.6502,-10.85032 6.6502,-16.27548 13.30039,-21.70064 z" id="path29" inkscape:connector-curvature="0"/></g><path style="fill:#ececec" id="clock_" d="m 268.00286,578.1866 c 26.88992,0 53.77984,13.44485 71.70645,31.3713 17.92662,17.92645 31.37158,44.8161 31.37158,71.70575 0,26.8898 -13.44496,53.7796 -31.37158,71.70615 -17.92661,17.9266 -44.81653,31.3716 -71.70645,31.3716 -26.88992,0 -53.77983,-13.445 -71.70645,-31.3716 -17.92661,-17.92655 -31.37157,-44.81635 -31.37157,-71.70615 0,-26.88965 13.44496,-53.7793 31.37157,-71.70575 17.92662,-17.92645 44.81653,-31.3713 71.70645,-31.3713 z m 58.2615,94.11385 c 4.48165,0 8.9633,4.48165 8.9633,8.9632 0,4.4817 -4.48165,8.96325 -8.9633,8.96325 h -58.2615 c -4.48165,0 -8.9633,-4.48155 -8.9633,-8.96325 v -76.1874 c 0,-4.48155 4.48165,-4.48155 8.9633,-4.48155 4.48166,0 8.96331,0 8.96331,4.48155 v 67.2242 z m 4.48165,-53.77935 c -17.92661,-17.9264 -40.33488,-26.88965 -62.74315,-26.88965 -22.40826,0 -44.81653,8.96325 -62.74314,26.88965 -17.92661,17.92645 -26.88992,40.33455 -26.88992,62.74255 0,22.4081 8.96331,44.8163 26.88992,62.7429 17.92661,17.92655 40.33488,26.88985 62.74314,26.88985 22.40827,0 44.81654,-8.9633 62.74315,-26.88985 17.92661,-17.9266 26.88992,-40.3348 26.88992,-62.7429 0,-22.408 -8.96331,-44.8161 -26.88992,-62.74255 z" inkscape:connector-curvature="0"/><path style="opacity:0;fill:#ececec" inkscape:connector-curvature="0" id="glass_" d="m 164.92484,1572.5402 h 206.15605 l -87.21987,106.8262 v 74.9659 l 55.50355,18.7415 v 5.6224 H 204.57023 v -5.6224 l 55.50355,-18.7415 v -74.9659 z"/><g id="turbo_" inkscape:label="#turbo_" style="fill:#ececec" transform="translate(0,-15.27002)"><path d="m 290.91584,1183.9197 a 21.768922,21.756389 0 0 1 -21.76893,21.7564 21.768922,21.756389 0 0 1 -21.76892,-21.7564 21.768922,21.756389 0 0 1 21.76892,-21.7564 21.768922,21.756389 0 0 1 21.76893,21.7564 z" id="circle7" inkscape:connector-curvature="0"/><path d="m 267.9985,1101.1984 24.44645,30.5404 -17.15195,36.2546 -7.2945,-1.7734 z" id="path76" inkscape:connector-curvature="0"/><path d="m 350.40674,1183.3621 -30.55808,24.6294 -36.47255,-17.3391 1.77434,-7.2903 z" id="polygon11" inkscape:connector-curvature="0"/><path d="m 267.9985,1265.7229 -24.44647,-30.5405 17.15195,-36.4515 7.29452,1.7733 z" id="polygon13" inkscape:connector-curvature="0"/><path d="m 185.59025,1183.3621 30.55808,-24.4324 36.47254,17.1421 -1.77433,7.2903 z" id="polygon15" inkscape:connector-curvature="0"/><path d="m 326.15742,1125.2367 -4.14013,38.816 -37.85258,13.5954 -4.14013,-6.3051 z" id="polygon17" inkscape:connector-curvature="0"/><path d="m 326.15742,1241.4876 -38.83834,-4.1378 -13.60327,-37.8308 6.30877,-4.1377 z" id="polygon19" inkscape:connector-curvature="0"/><path d="m 209.83956,1241.4876 4.14013,-38.816 37.85259,-13.5954 4.14013,6.3051 z" id="polygon21" inkscape:connector-curvature="0"/><path d="m 209.83956,1125.2367 38.83834,4.1377 13.60327,37.8308 -6.30876,4.1378 z" id="polygon23" inkscape:connector-curvature="0"/><path inkscape:connector-curvature="0" id="path44" d="m 267.80134,1080.7067 c -56.58173,0 -102.51743,45.9092 -102.51743,102.6554 0,56.7462 45.9357,102.8525 102.51743,102.8525 56.97604,0 102.91174,-46.1063 102.91174,-102.8525 0,-56.7462 -45.9357,-102.6554 -102.91174,-102.6554 z m 0.19716,184.8192 c -45.34425,0 -82.2111,-36.6486 -82.2111,-82.1638 0,-45.3181 36.86685,-82.1637 82.2111,-82.1637 45.34425,0 82.21109,36.8456 82.21109,82.1637 0,45.5152 -36.86684,82.1638 -82.21109,82.1638 z"/></g><g id="pump_" transform="matrix(0.28777264,0,0,0.28777264,164.92484,1014.5684)" style="fill:#ececec"><path d="m 358.19258,-670.38524 c 93.44154,0 186.88309,46.72077 249.17745,109.01513 62.29436,62.29436 109.01513,155.73591 109.01513,249.17745 0,93.44154 -46.72077,186.88308 -109.01513,249.177447 C 545.07567,-0.72085151 451.63412,45.99992 358.19258,45.99992 264.75104,45.99992 171.3095,-0.72085151 109.01513,-63.015213 46.720771,-125.30958 0,-218.75112 0,-312.19266 0,-405.6342 46.720771,-499.07575 109.01513,-561.37011 171.3095,-623.66447 264.75104,-670.38524 358.19258,-670.38524 Z m -140.16231,124.58872 404.91335,233.60386 -404.91335,218.030266 z m 358.19258,15.57359 c -62.29436,-62.29436 -140.16232,-93.44154 -218.03027,-93.44154 -77.86795,0 -155.7359,31.14718 -218.03027,93.44154 -62.294358,62.29436 -93.441539,140.16232 -93.441539,218.03027 0,77.86795 31.147181,155.7359 93.441539,218.030266 62.29437,62.294362 140.16232,93.44154249 218.03027,93.44154249 77.86795,0 155.73591,-31.14718049 218.03027,-93.44154249 62.29436,-62.294366 93.44154,-140.162316 93.44154,-218.030266 0,-77.86795 -31.14718,-155.73591 -93.44154,-218.03027 z" id="path45" inkscape:connector-curvature="0"/></g><g id="hand_" transform="translate(6.5284583,-55.82495)" style="opacity:0;fill:#ececec"><path d="m 236.5005,1755.8745 c -1.35191,1.5947 -50.0192,-36.6771 -55.42669,-41.4611 -14.87044,-7.9734 -16.22235,7.9732 -5.40737,17.5413 25.68543,23.9198 48.66717,51.0292 75.70463,73.3544 18.92615,12.7572 31.09291,23.9199 55.42656,25.5146 14.87057,1.5947 22.98174,1.5947 32.44482,3.1892 5.40749,0 9.46307,3.1894 12.16675,-6.3785 6.7594,-20.7307 16.22248,-60.5973 12.16689,-78.1384 0,-3.1894 -5.40749,-4.7841 -6.75939,-7.9734 -2.70369,-11.1626 -5.4075,-25.5145 -10.81486,-38.2718 -5.40749,-12.7574 -12.16689,-27.1093 -18.92615,-35.0826 -6.7594,-6.3786 -9.46308,-9.568 -25.68556,-22.3253 -10.81498,-6.3786 -16.22247,-17.5412 -20.27806,-14.3519 -9.46307,14.3519 2.70381,30.2986 16.22248,41.4612 8.11117,6.3786 21.62984,27.1092 2.70368,15.9465 -14.87057,-9.5679 -25.68542,-15.9465 -41.9079,-27.1091 -12.16676,-9.568 -31.09291,-20.7306 -44.61158,-28.7039 -21.62996,-12.7573 -28.38923,3.1893 -13.51879,14.3519 8.1113,7.9733 55.42669,41.4611 59.48228,46.2452 8.11117,11.1627 -13.51867,-4.7841 -13.51867,-4.7841 l -41.90789,-30.2985 c -10.81499,-7.9733 -35.14863,-27.1092 -40.55612,-14.3519 -5.4075,12.7573 14.87057,23.9199 28.38923,35.0825 14.87057,11.1626 25.68555,20.7306 40.55612,31.8932 25.68542,19.136 16.22235,19.136 -6.7594,0 -14.87057,-7.9732 -25.68555,-19.1359 -39.20421,-28.7038 -6.75927,-4.7841 -22.98174,-19.136 -27.03733,-7.9734 -4.05559,9.568 4.05559,17.5413 17.57425,28.704 2.70381,1.5947 21.62997,17.5413 36.50053,30.2984 13.51867,11.1627 24.33352,20.7308 22.98175,22.3253 z" id="path43" inkscape:connector-curvature="0"/></g><g id="g4798" inkscape:label="#tray" transform="matrix(0.9,0,0,0.9,102.71276,36.61755)"><g transform="translate(0,13.307129)" id="g4765"><g id="tray" transform="translate(0,161.42285)"><g transform="matrix(2.18265,0,0,1.9256169,647.478,891.6311)" id="g5816" style="clip-rule:evenodd;fill-rule:evenodd;image-rendering:optimizeQuality;shape-rendering:geometricPrecision;text-rendering:geometricPrecision"><g id="Warstwa_x0020_1-9" transform="translate(0,-174.75624)"><metadata id="CorelCorpID_0Corel-Layer-7"/><path class="zbiornik_f0" d="M 55.772261,587 H 267.70685 c 15.33738,0 29.28044,-6.27438 39.04059,-16.73168 9.76014,-9.76014 16.03452,-23.70321 16.03452,-39.04058 v -9.76015 h 25.09752 V 497.76438 H 322.78196 V 267.00665 h 25.09752 v -24.40036 h -25.09752 v -9.063 c 0,-15.33737 -6.27438,-29.28043 -16.03452,-39.73773 -9.76015,-9.76015 -23.70321,-16.03453 -39.04059,-16.03453 H 55.772261 c -15.337371,0 -29.280437,6.27438 -39.737736,16.03453 C 6.2743794,204.26286 0,218.20592 0,233.54329 v 297.68445 c 0,15.33737 6.2743794,29.28044 16.034525,39.04058 C 26.491824,580.72562 40.43489,587 55.772261,587 Z M 291.41007,531.22774 c 0,13.24591 -10.4573,24.40036 -23.70322,24.40036 H 55.772261 c -13.943065,0 -24.400364,-11.15445 -24.400364,-24.40036 V 233.54329 c 0,-13.94306 10.457299,-24.40036 24.400364,-24.40036 H 267.70685 c 13.24592,0 23.70322,10.4573 23.70322,24.40036 z" id="path17" inkscape:connector-curvature="0" style="fill:#2d4191;fill-rule:nonzero;stroke-width:0.69715327"/><line class="zbiornik_f2 zbiornik_s0" x1="46.70927" y1="387.45102" x2="278.8613" y2="387.45102" id="line25" style="fill:none;stroke:#262626;stroke-width:3.59466863"/></g></g><text inkscape:label="#temp_boil_sett_" id="temp_boil_sett_" y="1595.8273" x="998.99286" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Arial;-inkscape-font-specification:'Arial, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#004693;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" xml:space="preserve"><tspan style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:236.3547821px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial, Bold';text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#004693;fill-opacity:1" y="1595.8273" x="998.99286" id="temp_zas" sodipodi:role="line">--&#xB0;</tspan></text><text inkscape:label="#temp_boil_" id="temp_boil_" y="1204.7821" x="1015.155" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Arial;-inkscape-font-specification:'Arial, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#434343;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" xml:space="preserve"><tspan style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:138.84609985px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial, Bold';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#434343;fill-opacity:1" y="1204.7821" x="1015.155" id="temp_zas_nas" sodipodi:role="line">--&#xB0;</tspan></text><path id="temp_zas_konf_" d="m 825.34698,1128.3517 -21.2127,-21.074 11.1562,-11.3233 21.3699,21.074 z m -11.942,44.8214 -29.8549,0.1573 -0.1571,-15.8841 30.012,-0.1573 z m 23.2554,40.2607 -21.0556,21.3884 -11.3135,-11.3233 21.0557,-21.2312 z m 44.9395,12.1096 v 29.8809 h -15.8702 l -0.1572,-29.8809 z m 40.0685,-23.2757 21.3698,21.074 -11.3134,11.3232 -21.2127,-21.0739 z m 12.099,-44.9787 29.855,-0.1573 0.1571,16.0414 h -30.0121 z m -23.2553,-40.2606 21.0555,-21.2313 11.3134,11.1661 -21.0555,21.2312 z m -44.9396,-11.9524 -0.1571,-30.0383 h 16.0274 l 0.1571,29.881 z m 8.0137,10.5369 c 27.3408,0 49.6534,22.1749 49.6534,49.6968 0,27.3647 -22.3126,49.6967 -49.6534,49.6967 -27.3408,0 -49.6534,-22.332 -49.6534,-49.6967 0,-27.5219 22.3126,-49.6968 49.6534,-49.6968 z" class="fil0" style="fill:#434343;clip-rule:evenodd;opacity:0;fill-rule:evenodd;stroke-width:0.15719964;image-rendering:optimizeQuality;shape-rendering:geometricPrecision;text-rendering:geometricPrecision" inkscape:connector-curvature="0"/><polygon id="temp_zas_pzam_" points="-3294,2512 -3159,2481 -3090,2781 -2870,2908 -2870,2652 -3093,2444 -2999,2342 -2870,2462 -2871,2257 -2733,2257 -2733,2465 -2601,2342 -2507,2444 -2732,2654 -2732,2907 -2510,2779 -2442,2482 -2307,2513 -2347,2684 -2169,2581 -2100,2701 -2280,2805 -2109,2857 -2149,2989 -2443,2899 -2663,3027 -2441,3154 -2149,3065 -2109,3197 -2277,3249 -2099,3351 -2168,3471 -2348,3367 -2308,3542 -2442,3573 -2512,3273 -2732,3146 -2731,3402 -2508,3610 -2602,3711 -2731,3591 -2731,3797 -2868,3797 -2869,3589 -3000,3711 -3094,3610 -2869,3400 -2869,3146 -3091,3275 -3160,3572 -3294,3541 -3255,3370 -3432,3473 -3502,3353 -3321,3249 -3493,3196 -3453,3064 -3158,3154 -2939,3027 -3161,2899 -3452,2988 -3492,2856 -3324,2805 -3502,2703 -3434,2583 -3253,2687 " class="fil1" style="clip-rule:evenodd;opacity:0;fill-rule:evenodd;image-rendering:optimizeQuality;shape-rendering:geometricPrecision;text-rendering:geometricPrecision" transform="matrix(0.12857202,0,0,0.11713412,1233.6522,810.66602)"/><g transform="matrix(65.527444,0,0,60.456252,-7270.3377,-5842.8309)" style="opacity:0;fill:#000000" id="temp_zas_ekon_"><metadata id="metadata98-0"/><path inkscape:connector-curvature="0" style="fill:#434343;" id="path100-3" d="m 125.646,116.738 c -0.1781,0.2715 -0.439,0.4741 -0.7369,0.5829 -0.2905,0.1062 -0.6165,0.1232 -0.9356,0.0284 -0.395,-0.1174 -0.7051,-0.384 -0.8869,-0.7198 -0.1817,-0.3356 -0.2355,-0.7407 -0.1182,-1.1353 0.0928,-0.3124 0.2789,-0.5715 0.5187,-0.7562 0.2461,-0.1895 0.5492,-0.3007 0.8662,-0.3103 0.0446,-0.001 0.0817,0.0339 0.0829,0.0785 9e-4,0.0325 -0.0175,0.061 -0.0449,0.0746 v 0 c -0.1443,0.0711 -0.2739,0.1716 -0.3791,0.2962 -0.1011,0.1197 -0.1798,0.2619 -0.2273,0.4216 -0.0923,0.3106 -0.05,0.6295 0.093,0.8936 0.1429,0.2638 0.3866,0.4733 0.6968,0.5655 0.1657,0.0493 0.3336,0.0602 0.4942,0.0381 0.1666,-0.0229 0.3257,-0.0818 0.4664,-0.1704 0.0377,-0.0238 0.0876,-0.0124 0.1114,0.0253 0.0173,0.0275 0.0159,0.0616 -8e-4,0.0872 z" class="fil0"/></g></g></g></g><g id="temp" transform="translate(172,29.84406)"><g transform="matrix(10.526364,0,0,10.526364,935.56494,-17.556822)" id="g5951" style="clip-rule:evenodd;fill-rule:evenodd;image-rendering:optimizeQuality;shape-rendering:geometricPrecision;text-rendering:geometricPrecision"><g id="Warstwa_x0020_1-1" transform="matrix(0.27273979,0,0,0.27273979,0,0.08987073)"><path class="termometr_f0" d="m 15,0 c 2,0 4,1 6,3 v 0 c 2,1 3,4 3,6 v 26 c 1,1 3,2 4,4 1,2 1,4 1,7 0,4 -1,8 -4,10 -3,3 -6,4 -10,4 C 11,60 7,59 4,56 2,54 0,50 0,46 0,43 1,41 2,39 3,37 4,36 5,35 V 9 C 5,7 6,4 8,3 v 0 c 2,-2 4,-3 7,-3 z m 2,24 v 15 c 3,1 5,4 5,7 0,4 -3,7 -7,7 -4,0 -8,-3 -8,-7 0,-3 3,-6 5,-7 V 24 Z M 18,6 C 17,5 16,4 15,4 13,4 12,5 11,6 10,7 10,8 10,9 V 37 H 9 c -2,1 -3,3 -4,4 0,1 -1,3 -1,5 0,3 1,5 3,7 v 0 c 2,2 5,3 8,3 2,0 5,-1 7,-3 2,-2 3,-4 3,-7 0,-2 0,-4 -1,-5 -1,-1 -2,-3 -3,-4 H 20 V 9 C 20,8 19,7 18,6 Z" id="path7-4" inkscape:connector-curvature="0" style="fill:#434242;fill-rule:nonzero"/></g></g><text inkscape:label="#temp_outside_" id="temp_outside_" y="153.98416" x="1028" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:15.97200012px;line-height:0%;font-family:Arial;-inkscape-font-specification:'Arial, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#434343;fill-opacity:1;stroke:none;stroke-width:1.33099997px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" xml:space="preserve"><tspan style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:160.76916504px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial, Bold';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#434343;fill-opacity:1;stroke-width:1.33099997px" y="153.98416" x="1028" id="temp_out" sodipodi:role="line">-00.0&#xB0;</tspan></text></g><g id="home" transform="matrix(0.9,0,0,0.9,100.56736,185.99687)"><g id="g948" inkscape:label="#home"><g style="clip-rule:evenodd;fill-rule:evenodd;image-rendering:optimizeQuality;shape-rendering:geometricPrecision;text-rendering:geometricPrecision" id="g5753" transform="matrix(1.7237296,0,0,1.7237297,548.3786,-23.62108)"><g transform="translate(0,-259.48759)" id="Warstwa_x0020_1"><metadata id="CorelCorpID_0Corel-Layer"/><path style="fill:#ef7b00;fill-rule:nonzero;stroke-width:0.65829766" inkscape:connector-curvature="0" id="path7" d="M 0,510.62081 262.00246,260.4677 530.5879,509.30421 v 50.68892 l -23.69871,-22.38212 v 180.37356 c 0,12.50765 -5.26638,24.35701 -14.48255,32.91488 -8.55787,8.55787 -21.06552,13.82425 -34.88977,13.82425 H 73.071039 c -13.824251,0 -26.331906,-5.26638 -34.889775,-13.82425 -9.216167,-8.55787 -14.482549,-20.40723 -14.482549,-32.91488 V 538.26931 L 0,560.65143 Z m 473.31601,-1.3166 -200.78078,-188.93142 c -5.92468,-5.26638 -14.48255,-5.26638 -20.40723,0 L 57.271895,509.96251 v 205.38887 c 0,7.24127 7.241275,14.48255 15.140846,14.48255 H 458.17516 c 5.92468,0 15.14085,-8.55787 15.14085,-14.48255 z" class="domek_f0"/><line style="opacity:0;fill:none;stroke:#262626;stroke-width:3.83251667" id="line30" y2="560.61115" x2="460.80835" y1="560.61115" x1="69.779549" class="domek_f1 domek_s0"/></g></g><text xml:space="preserve" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Arial;-inkscape-font-specification:'Arial, Normal';text-align:center;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:middle;fill:#e87b1e;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" x="1003.8903" y="726.68951" id="temp_room_"><tspan sodipodi:role="line" id="temp_room" x="1003.8903" y="726.68951" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:235.79478455px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Ubuntu, Bold';text-align:center;writing-mode:lr-tb;text-anchor:middle;fill:#e87b1e;fill-opacity:1">---,-&#xB0;</tspan></text><text xml:space="preserve" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:0%;font-family:Arial;-inkscape-font-specification:'Arial, Normal';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;opacity:0;fill:#434343;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter" x="996.60541" y="463.7402" id="temp_room_sett_" inkscape:label="#temp_room_sett_"><tspan sodipodi:role="line" id="temp_prog" x="976.60541" y="463.7402" style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:138.84609985px;line-height:125%;font-family:Arial;-inkscape-font-specification:'Arial, Bold';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#434343;fill-opacity:1">--,-&#xB0;</tspan></text><path inkscape:connector-curvature="0" style="fill:#434343;clip-rule:evenodd;opacity:0;fill-rule:evenodd;stroke-width:0.15719961;image-rendering:optimizeQuality;shape-rendering:geometricPrecision;text-rendering:geometricPrecision" class="fil0" d="m 835.65479,340.49625 -21.2127,-21.07393 11.1563,-11.32333 21.3698,21.07394 z m -11.942,44.82139 -29.8549,0.15727 -0.1571,-15.88408 30.012,-0.15728 z m 23.2554,40.26063 -21.0555,21.38848 -11.3135,-11.32333 21.0556,-21.23121 z m 44.9396,12.10958 v 29.88102 h -15.8702 l -0.1572,-29.88102 z m 40.0685,-23.27564 21.3698,21.07394 -11.3135,11.32332 -21.2127,-21.07393 z m 12.099,-44.97866 29.855,-0.15727 0.157,16.04136 h -30.012 z m -23.2554,-40.26062 21.0556,-21.23121 11.3134,11.16606 -21.0555,21.2312 z m -44.9395,-11.95241 -0.1571,-30.03819 h 16.0274 l 0.1571,29.88092 z m 8.0137,10.53697 c 27.3408,0 49.6534,22.17484 49.6534,49.6967 0,27.36468 -22.3126,49.69669 -49.6534,49.69669 -27.3409,0 -49.6535,-22.33201 -49.6535,-49.69669 0,-27.52186 22.3126,-49.6967 49.6535,-49.6967 z" id="room_conf_"/><path inkscape:connector-curvature="0" style="fill:#434343;clip-rule:evenodd;opacity:0;fill-rule:evenodd;stroke-width:0.16020121;image-rendering:optimizeQuality;shape-rendering:geometricPrecision;text-rendering:geometricPrecision" class="fil0" d="m 883.89399,327.71319 c 27.3944,0 49.6624,22.26795 49.6624,49.66237 0,27.39442 -22.268,49.66236 -49.6624,49.66236 -27.3944,0 -49.6624,-22.26794 -49.6624,-49.66236 0,-27.39442 22.268,-49.66237 49.6624,-49.66237 z m -48.2205,12.81607 -21.3068,-21.14653 11.2141,-11.21411 21.3068,20.98639 z m -12.0151,44.85638 -29.9576,0.16015 V 369.5257 h 29.9576 z m 23.2292,40.21046 -20.9864,21.30676 -11.3743,-11.21411 21.1466,-21.30676 z m 45.0165,12.01508 v 29.95769 h -15.8599 l -0.1603,-29.95769 z m 40.2105,-23.22919 21.1466,20.98639 -11.054,11.37424 -21.3067,-21.14652 z m 12.0151,-44.85629 29.9576,-0.16023 v 15.85994 l -29.9576,0.16023 z m -68.2458,-52.38578 -0.1601,-29.79745 16.0201,-0.16014 0.1602,29.95759 z m 45.0166,12.01509 20.9864,-21.14653 11.2141,11.21401 -20.9864,21.14662 z m -8.01,56.23063 -57.9928,0.16015 V 369.5257 h 57.8326 z" id="room_confm_"/><path class="fil0" d="m 883.81559,327.61649 c 27.4264,0 49.6808,22.25448 49.6808,49.68075 0,27.42627 -22.2544,49.68075 -49.6808,49.68075 -27.4262,0 -49.6807,-22.25448 -49.6807,-49.68075 0,-27.42627 22.2545,-49.68075 49.6807,-49.68075 z m -60.181,57.67355 -29.9338,0.15678 v -15.98561 l 29.7771,-0.15677 z m 23.1947,40.27744 -21.0006,21.31415 -11.284,-11.28395 21.0007,-21.31413 z m 44.9792,12.06757 0.1567,29.93382 h -15.9855 l -0.1569,-29.93382 z m 40.2774,-23.3515 21.1574,21.1574 -11.1271,11.28396 -21.3143,-21.15743 z m 12.0676,-44.97911 h 29.7771 l 0.1567,15.82887 -29.9338,0.15677 z m -23.3516,-40.12073 21.0007,-21.31413 11.284,11.12722 -21.0007,21.31415 z m -44.9791,-12.06754 -0.1567,-29.93384 h 15.9856 l 0.1568,29.93384 z m -40.2774,23.19478 -21.1574,-21.0007 11.1273,-11.28395 21.314,21.00067 z m 56.1063,7.99279 0.1568,21.0007 h 21.0006 v 15.9856 h -21.0006 v 21.00068 h -15.8289 l -0.1568,-21.00068 h -20.844 l -0.1568,-15.82888 h 21.0008 v -21.00071 z" id="room_confp_" inkscape:connector-curvature="0" style="clip-rule:evenodd;opacity:0;fill:#434343;fill-rule:evenodd;stroke-width:0.15672158;image-rendering:optimizeQuality;shape-rendering:geometricPrecision;text-rendering:geometricPrecision" inkscape:label="#room_confp_"/><polygon transform="matrix(0.12857202,0,0,0.11713412,1243.96,22.810613)" style="fill:#434343;clip-rule:evenodd;opacity:0;fill-rule:evenodd;image-rendering:optimizeQuality;shape-rendering:geometricPrecision;text-rendering:geometricPrecision" class="fil1" points="-3294,2512 -3159,2481 -3090,2781 -2870,2908 -2870,2652 -3093,2444 -2999,2342 -2870,2462 -2871,2257 -2733,2257 -2733,2465 -2601,2342 -2507,2444 -2732,2654 -2732,2907 -2510,2779 -2442,2482 -2307,2513 -2347,2684 -2169,2581 -2100,2701 -2280,2805 -2109,2857 -2149,2989 -2443,2899 -2663,3027 -2441,3154 -2149,3065 -2109,3197 -2277,3249 -2099,3351 -2168,3471 -2348,3367 -2308,3542 -2442,3573 -2512,3273 -2732,3146 -2731,3402 -2508,3610 -2602,3711 -2731,3591 -2731,3797 -2868,3797 -2869,3589 -3000,3711 -3094,3610 -2869,3400 -2869,3146 -3091,3275 -3160,3572 -3294,3541 -3255,3370 -3432,3473 -3502,3353 -3321,3249 -3493,3196 -3453,3064 -3158,3154 -2939,3027 -3161,2899 -3452,2988 -3492,2856 -3324,2805 -3502,2703 -3434,2583 -3253,2687 " id="room_anti_"/><g id="room_econ_" style="opacity:0;fill:#434343;" transform="matrix(65.527444,0,0,60.456252,-7260.0299,-6630.6863)"><metadata id="metadata98"/><path class="fil0" d="m 125.646,116.738 c -0.1781,0.2715 -0.439,0.4741 -0.7369,0.5829 -0.2905,0.1062 -0.6165,0.1232 -0.9356,0.0284 -0.395,-0.1174 -0.7051,-0.384 -0.8869,-0.7198 -0.1817,-0.3356 -0.2355,-0.7407 -0.1182,-1.1353 0.0928,-0.3124 0.2789,-0.5715 0.5187,-0.7562 0.2461,-0.1895 0.5492,-0.3007 0.8662,-0.3103 0.0446,-0.001 0.0817,0.0339 0.0829,0.0785 9e-4,0.0325 -0.0175,0.061 -0.0449,0.0746 v 0 c -0.1443,0.0711 -0.2739,0.1716 -0.3791,0.2962 -0.1011,0.1197 -0.1798,0.2619 -0.2273,0.4216 -0.0923,0.3106 -0.05,0.6295 0.093,0.8936 0.1429,0.2638 0.3866,0.4733 0.6968,0.5655 0.1657,0.0493 0.3336,0.0602 0.4942,0.0381 0.1666,-0.0229 0.3257,-0.0818 0.4664,-0.1704 0.0377,-0.0238 0.0876,-0.0124 0.1114,0.0253 0.0173,0.0275 0.0159,0.0616 -8e-4,0.0872 z" id="path100" style="fill:#434343;" inkscape:connector-curvature="0"/></g><g id="room_hand_" transform="matrix(1.7011096,0,0,1.1867536,793.76971,287.18232)" style="opacity:0;fill:#434343;"><metadata id="metadata110"/><g id="g9" style="fill:#434343;"><path class="fil0" d="m 106,111 v 0 -4 -39 -44 c 0,-3 -2,-6 -5,-6 h -5 c -3,0 -6,3 -6,6 V 68 H 88 V 13 C 88,9 85,6 81,6 h -6 c -3,0 -6,3 -6,7 V 68 H 67 V 6 C 67,3 64,0 60,0 H 55 C 51,0 48,3 48,6 V 68 H 46 V 13 C 46,9 43,6 39,6 h -6 c -3,0 -6,3 -6,7 V 68 91 L 15,66 C 14,63 11,62 8,63 l -5,2 c -3,2 -4,5 -2,8 l 26,54 c 0,0 0,0 0,0 6,15 21,25 38,25 23,0 41,-18 41,-41 z M 27,91 v 2 z" id="path112" inkscape:connector-curvature="0" style="fill:#434343;"/></g></g><g style="opacity:0" transform="translate(1585.0519,171.25981)" id="boiler"><rect style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#808080;stroke-width:20;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="rect945" width="120" height="170" x="-638.15088" y="121.15529" ry="28.4748"/><rect style="opacity:1;fill:#808080;fill-opacity:1;stroke:#808080;stroke-width:2.73973894;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke" id="rect949" width="17.260262" height="19.56967" x="-663.43573" y="151.37047" ry="2.1744077"/><rect ry="2.1744077" y="243.37047" x="-663.43573" height="19.56967" width="17.260262" id="rect951" style="opacity:1;fill:#808080;fill-opacity:1;stroke:#808080;stroke-width:2.73973894;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke"/><rect ry="2.1744077" y="151.37047" x="-510.93573" height="19.56967" width="17.260262" id="rect953" style="opacity:1;fill:#808080;fill-opacity:1;stroke:#808080;stroke-width:2.73973894;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke"/><rect style="opacity:1;fill:#808080;fill-opacity:1;stroke:#808080;stroke-width:2.73973894;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke" id="rect955" width="17.260262" height="19.56967" x="-510.93573" y="243.37047" ry="2.1744077"/></g></g></g><path style="opacity:0;fill:#ececec;fill-rule:nonzero;stroke-width:1.68466187" id="suitcase_" d="m 184.71587,1616.4438 h 8.2463 v 162.2524 h -8.2463 c -11.54474,0 -19.79103,-9.5442 -19.79103,-22.9062 v -116.44 c 0,-13.362 8.24629,-22.9062 19.79103,-22.9062 z m 31.33579,0 h 13.19397 v -20.9974 c 0,-13.362 8.24614,-22.9062 19.79088,-22.9062 h 37.93285 c 9.89536,0 19.79088,9.5442 19.79088,22.9062 v 20.9974 h 13.19397 v 162.2524 H 216.05166 Z m 126.99205,0 H 351.29 c 9.89552,0 19.79088,9.5442 19.79088,22.9062 v 116.44 c 0,13.362 -9.89536,22.9062 -19.79088,22.9062 h -8.24629 z m -94.0072,0 h 37.93285 v -20.9974 h -37.93285 z" inkscape:connector-curvature="0"/><rect style="opacity:0;fill:#000000;fill-opacity:1;stroke-width:1.07570624" id="rect922" width="347.94922" height="351.18454" x="-828.25165" y="1324.1379"/><g id="parameters_btn" transform="matrix(0.83385904,0,0,0.83385904,-258.11216,2097.0335)" onclick=""><g id="g1030" transform="translate(166.07806)"><text id="parameters_lbl" y="66.630646" x="521.53003" style="font-style:normal;font-weight:bold;font-size:80px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#808080;fill-opacity:1;stroke:none" xml:space="preserve"><tspan style="font-size:80px;text-align:center;text-anchor:middle" y="66.630646" x="521.53003" id="parameters_lbl__" sodipodi:role="line">parameters</tspan></text><g style="fill:#808080" transform="matrix(0.34766901,0,0,0.34766901,352.75471,-340.82861)" id="g1016"><path style="fill:#808080" inkscape:connector-curvature="0" d="m 960.9,820.2 c 18,18 29.1,42.9 29.1,70.3 0,54.9 -44.5,99.5 -99.4,99.5 -27.5,0 -52.3,-11.1 -70.3,-29.1 v 0 L 609.6,750.2 c -59.2,35 -128,55.4 -201.8,55.4 C 188.1,805.6 10,627.5 10,407.8 10,188.1 188.1,10 407.8,10 c 219.7,0 397.8,178.1 397.8,397.8 0,73.7 -20.4,142.6 -55.4,201.8 z M 407.8,109.4 C 243,109.4 109.4,243 109.4,407.8 109.4,572.6 243,706.1 407.7,706.1 572.4,706.1 706,572.5 706,407.8 706.1,243 572.6,109.4 407.8,109.4 Z" id="path1014"/></g></g></g><g id="g1071"><text xml:space="preserve" style="font-style:normal;font-weight:bold;font-size:66.70872498px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#808080;fill-opacity:1;stroke:none;stroke-width:0.83385903" x="1406.0402" y="2157.019" id="configuration_lbl"><tspan sodipodi:role="line" id="configuration_lbl__" x="1406.0402" y="2157.019" style="font-size:66.70872498px;text-align:center;text-anchor:middle;stroke-width:0.83385903">configuration_lbl</tspan></text><g id="settings_img-4" transform="matrix(10.312426,0,0,10.312426,1240.2552,1817.4598)" style="fill:#808080"><path d="m 17.601,12.297 c 0.556,-0.371 1.212,-0.529 1.854,-0.457 L 26.769,4.524 22.673,0.428 15.358,7.744 c 0.074,0.65 -0.09,1.314 -0.476,1.877 z" id="path2-3" inkscape:connector-curvature="0"/><polygon points="9.486,16.561 4.842,21.207 4.577,20.942 3.19,22.063 0.854,25.744 1.452,26.342 5.136,24.006 6.256,22.623 5.99,22.354 10.642,17.701 " id="polygon4"/><path d="m 12.949469,8.307 c 0.537,-1.92 0.05,-4.066 -1.457,-5.576 C 9.9904672,1.235 7.8694672,0.744 5.9604672,1.262 l 3.233,3.232 -0.848,3.166 -3.17,0.848 -3.2320002,-3.23 c -0.516,1.908 -0.026,4.029 1.4730002,5.529 1.571,1.572 3.835,2.033 5.815,1.389 l 0.018,0.018 13.2990018,13.299 c 0.526,0.525 1.216,0.791 1.905,0.791 0.69,0 1.378,-0.266 1.906,-0.791 1.051,-1.049 1.051,-2.754 0,-3.811 z m 11.736,16.754 c -0.566,0 -1.025,-0.461 -1.025,-1.029 0,-0.57 0.459,-1.029 1.025,-1.029 0.57,0 1.031,0.459 1.031,1.029 0.001,0.568 -0.46,1.029 -1.031,1.029 z" id="path6-8" inkscape:connector-curvature="0"/></g></g><rect style="opacity:0;fill:#dc1c1c;fill-opacity:0.52985074;stroke:#6e4f4f;stroke-width:5.43268871;stroke-opacity:1" id="rect919" width="500" height="366.17911" x="64.577423" y="1815.759" rx="0" ry="31.803436" onclick="location.href = '#params'; showLoadingSpinnerWithDelay();"/><rect style="opacity:0;fill:#dc1c1c;fill-opacity:0.52985074;stroke:#6e4f4f;stroke-width:5.43268871;stroke-opacity:1" id="rect919-1" width="500.00003" height="366.17911" x="1150" y="1815.759" rx="0" ry="31.803436" onclick="location.href = '#m_index__config_pass'"/><rect style="opacity:0;fill:#dc1c1c;fill-opacity:0.52985074;stroke:#6e4f4f;stroke-width:5.43268871;stroke-opacity:1" id="rect919-6" width="500.00003" height="366.17911" x="607.28882" y="1815.759" rx="0" ry="31.803436" onclick="location.href = '#settings'; showLoadingSpinnerWithDelay();"/><rect style="opacity:0;fill:#dc1c1c;fill-opacity:0.52985074;stroke:#6e4f4f;stroke-width:5.43268871;stroke-opacity:1" id="rectError1" width="270" height="260" x="150" y="1300" rx="0" ry="31.803436"/><g style="fill:#434343;" inkscape:label="#rp_indicator" id="rp_indicator" transform="matrix(1.6,0,0,1.6,383,237)"><line fill="none" stroke="#434343" stroke-width="10" stroke-linecap="round" x1="440.945" y1="279.2" x2="440.945" y2="299.478" id="line120"/><line fill="none" stroke="#434343" stroke-width="10" stroke-linecap="round" x1="336.968" y1="383.141" x2="357.733" y2="383.141" id="line122"/><g id="g130"><g id="g128"><line fill="none" stroke="#434343" stroke-width="10" x1="307.36" y1="249.843" x2="342.72" y2="283.879" id="line124"/><polygon points="317.04,282.705 341.025,282.247 340.564,258.266 350.931,268.245 351.388,292.223 327.407,292.684    " id="polygon126"/></g></g><g id="g136"><path stroke="#434343" stroke-width="5" d="M386.889,336.025h2.341h11.308c3.486,0,6.19,1.044,8.165,3.131                 c1.987,2.088,2.984,4.963,2.984,8.611c0,3.76-1.07,6.69-3.191,8.812c-0.999,1.011-2.206,1.796-3.596,2.335                 c1.536,0.234,2.658,0.775,3.388,1.584c1.049,1.178,1.756,3.523,2.133,7.061c0.292,2.76,0.572,5.107,0.815,7.015l0.27,2.011                 c0.22,1.402,0.403,2.492,0.587,3.277c0.157,0.774,0.353,1.426,0.558,1.953h-2.473h-2.498c-0.316-1.224-0.61-2.738-0.864-4.479                 c-0.281-1.764-0.585-4.154-0.94-7.219l-0.207-1.907c-0.29-2.538-0.912-4.312-1.875-5.345c-0.951-1.021-2.449-1.549-4.474-1.549                 h-7.738v20.531h-2.328h-2.363V336.025z M391.581,356.119h8.165c2.304,0,4.082-0.605,5.352-1.853                 c1.267-1.224,1.888-2.974,1.888-5.22c0-2.762-0.671-4.748-1.998-5.984c-1.342-1.233-3.499-1.84-6.484-1.84h-6.922V356.119z" id="path132"/><path stroke="#434343" stroke-width="5" d="M418.835,336.025h2.34h10.139c3.607,0,6.459,1.155,8.506,3.469                 c2.049,2.313,3.096,5.512,3.096,9.576c0,4.152-1.047,7.418-3.096,9.777c-2.047,2.367-4.898,3.546-8.506,3.546h-7.773v19.454h-2.34                 h-2.365V336.025z M423.541,357.207h7.773c2.17,0,3.877-0.719,5.094-2.121c1.195-1.404,1.803-3.39,1.803-5.938                 c0-2.526-0.607-4.469-1.803-5.85c-1.217-1.391-2.924-2.076-5.094-2.076h-7.773V357.207z" id="path134"/></g><path fill="none" stroke="#434343" stroke-width="11" stroke-linecap="round" d="M336.968,382.406             c0-56.996,46.216-103.207,103.217-103.207" id="path138"/><line fill="none" stroke="#434343" stroke-width="10" stroke-linecap="round" x1="367.171" y1="309.496" x2="381.857" y2="324.181" id="line140"/><line fill="none" stroke="#434343" stroke-width="10" stroke-linecap="round" x1="345.596" y1="341.752" x2="364.784" y2="349.698" id="line142"/><line fill="none" stroke="#434343" stroke-width="10" stroke-linecap="round" x1="398.955" y1="287.316" x2="406.705" y2="306.059" id="line144"/></g><g id="settings_btn"><text xml:space="preserve" style="font-style:normal;font-weight:bold;font-size:66.70872498px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.83385903" x="864.32355" y="2154.7451" id="settings_lbl"><tspan sodipodi:role="line" id="settings_lbl__" x="864.32355" y="2154.7451" style="font-size:66.70872498px;text-align:center;text-anchor:middle;fill:#808080;stroke-width:0.83385903">settings</tspan></text><g style="fill:#808080" transform="matrix(0.29843076,0,0,0.29843076,716.02373,1805.1561)" id="g1017"><g style="fill:#808080" id="g985"><path style="fill:#808080" inkscape:connector-curvature="0" d="m 965.7,408.8 -87.5,-10.5 c -8.9,-33.4 -22,-64.9 -38.9,-94.1 l 54.4,-69.1 c 8.3,-10.6 7.4,-27.1 -2.3,-36.6 l -90.1,-90.2 c -9.5,-9.5 -26,-10.5 -36.6,-2.2 l -69.2,54.4 C 666.4,143.7 634.9,130.6 601.6,121.7 L 591.1,34.2 C 589.5,20.8 577.1,9.9 563.7,9.9 H 436.2 c -13.5,0 -25.8,10.9 -27.4,24.3 l -10.5,87.5 c -33.3,8.9 -64.9,22 -94,38.8 l -69.2,-54.4 c -10.6,-8.3 -27,-7.3 -36.6,2.2 l -90.2,90.2 c -9.5,9.5 -10.5,26 -2.1,36.6 l 54.3,69.1 c -16.8,29.2 -29.9,60.7 -38.8,94.1 L 34.3,408.8 C 21,410.5 10,422.8 10,436.4 v 127.5 c 0,13.5 10.9,25.8 24.3,27.4 l 87.5,10.5 c 8.9,33.2 22,64.8 38.8,93.9 l -54.3,69.2 C 98,775.5 99,792 108.5,801.5 l 90,90.2 c 9.5,9.5 26,10.5 36.6,2.2 l 69.2,-54.5 c 29.2,16.8 60.7,30 94,38.8 l 10.5,87.4 c 1.6,13.4 13.9,24.3 27.4,24.3 h 127.5 c 13.5,0 25.8,-10.9 27.4,-24.3 l 10.5,-87.4 c 33.3,-8.9 64.9,-22 94,-38.8 l 69.2,54.4 c 10.6,8.3 27.1,7.3 36.6,-2.2 l 90.1,-90.2 c 9.6,-9.5 10.6,-26 2.2,-36.6 l -54.4,-69.1 c 16.9,-29.2 29.9,-60.7 38.9,-94 l 87.4,-10.5 c 13.4,-1.6 24.3,-13.9 24.3,-27.4 V 436.3 C 990,422.7 979.1,410.4 965.7,408.8 Z M 500,745 C 364.7,745 255,635.3 255,500 255,364.7 364.7,255 500,255 c 135.3,0 245,109.7 245,245 0,135.3 -109.6,245 -245,245 z" id="path983"/></g><g style="fill:#808080" id="g987"/><g style="fill:#808080" id="g989"/><g style="fill:#808080" id="g991"/><g style="fill:#808080" id="g993"/><g style="fill:#808080" id="g995"/><g style="fill:#808080" id="g997"/><g style="fill:#808080" id="g999"/><g style="fill:#808080" id="g1001"/><g style="fill:#808080" id="g1003"/><g style="fill:#808080" id="g1005"/><g style="fill:#808080" id="g1007"/><g style="fill:#808080" id="g1009"/><g style="fill:#808080" id="g1011"/><g style="fill:#808080" id="g1013"/><g style="fill:#808080" id="g1015"/></g></g><rect style="opacity:0;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:12.90994453;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke" id="configuration_lbl_" width="500" height="400" x="1138" y="1800" ry="2.8992136" onclick="location.href = '#m_index__config_pass';"/><rect ry="2.8992136" y="1800" x="605" height="400" width="500" id="settings_lbl_" style="opacity:0;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:12.90994453;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke" onclick="location.href = '#settings'; showLoadingSpinnerWithDelay();"/><rect style="opacity:0;fill:#ff0000;fill-opacity:1;stroke:none;stroke-width:12.90994453;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1;paint-order:markers fill stroke" id="parameters_lbl_" width="500" height="400" x="67.599998" y="1800" ry="2.8992136" onclick="location.href = '#params'; showLoadingSpinnerWithDelay();"/></svg></body></html>
  41. </div>
  42.     </div>
  43.   </div>
  44.   <!-- /page one -->
  45.  
  46.   <!-- /validation error -->
  47.   <div data-role="dialog" id="validation_error">
  48.     <div data-role="header"><h1>błąd</h1></div>
  49.     <div data-role="content">
  50.       <label for="setting_party_time">Błędnie wprowadzone dane, proszę poprawić wartości.</label>
  51.       <a href="#" data-role="button" data-theme="c" data-rel="back">zamknij okno</a>
  52.     </div>
  53.   </div>
  54.  
  55.  
  56.   <!-- /party -->
  57.   <div data-role="dialog" id="start_mode">
  58.     <div data-role="header"><h1>tryb party</h1></div>
  59.     <div data-role="content">
  60.       <ul data-role="listview" data-inset="true">
  61.         <li class="ui-body">
  62.         </li>
  63.       </ul>
  64.       <a href="#" data-role="button" data-theme="c" data-rel="back" onclick="endPVH();">wyłącz tryb party</a>
  65.     </div>
  66.   </div>
  67.  
  68.   <!-- /turbo -->
  69.   <div data-role="dialog" id="start_turbo_on_off_dlg">
  70.     <div data-role="header"><h1>tryb turbo</h1></div>
  71.     <div data-role="content">
  72.       <a href="#" class="sure-do" data-role="button" data-theme="b" data-rel="back" onclick="setTurbo(true);">tak</a>
  73.       <a href="#" data-role="button" data-theme="c" data-rel="back" onclick="setTurbo(false);">nie</a>
  74.     </div>
  75.   </div>
  76.  
  77.   <div data-role="dialog" id="m_index__config_pass" data-close-btn="right">
  78.     <div data-role="header"><h1>hasło</h1></div>
  79.     <div data-role="content">
  80.       <input id="m_index__config_pass__pass" data-clear-btn="false" name="setting_hand_temp" type="password">
  81.       <table width="100%">
  82.         <tr>
  83.           <td><a href="#" data-role="button" data-theme="b" onclick="m_index__pass();">zatwierdź</a></td>
  84.         </tr>
  85.       </table>
  86.     </div>
  87.   </div>
  88.  
  89. <script>
  90. const COLOR_ACTIVE   = "#858585";
  91. const COLOR_ENABLED  = "#e9e9e9";
  92. const COLOR_DISABLED = "#e9e9e9";
  93.  
  94. $(document).on("pagechange", function ()
  95. {
  96.     if ($("#start").is(":visible"))
  97.     {
  98.         showLoadingSpinner();
  99.         ref_start();
  100.         $("#rectError1").attr("onclick","errorMessageHandler()");        
  101.         setTimeout(function()
  102.         {
  103.             hideLoadingSpinner();
  104.         }, 1000);
  105.     }
  106. });
  107.  
  108. $("#m_index__config_pass").off("pagehide").on("pagehide",function(){
  109.     if ($("#start").is(":visible"))
  110.     {
  111.         showLoadingSpinner();
  112.     }
  113. });
  114.  
  115. $("#parameters_lbl_").on("mousedown", function (event) { highlightRect(event, $("#path1014").attr("id"), false); });
  116. $("#parameters_lbl_").on("touchstart", function (event) { highlightRect(event, $("#path1014").attr("id"), true); });
  117. $("#parameters_lbl_").on("mouseup", function (){ unHighlightRect( $("#path1014").attr("id")); });
  118. $("#parameters_lbl_").on("mouseout", function (){ unHighlightRect( $("#path1014").attr("id")); });
  119. $("#configuration_lbl_").on("mousedown", function (event) { highlightRect(event, $("#settings_img-4").attr("id"), false); });
  120. $("#configuration_lbl_").on("touchstart", function (event) { highlightRect(event, $("#settings_img-4").attr("id"), true); });
  121. $("#configuration_lbl_").on("mouseup", function (){ unHighlightRect( $("#settings_img-4").attr("id")); });
  122. $("#configuration_lbl_").on("mouseout", function (){ unHighlightRect( $("#settings_img-4").attr("id")); });
  123. $("#settings_lbl_").on("mousedown", function (event) { highlightRect(event, $("#path983").attr("id"), false); });
  124. $("#settings_lbl_").on("touchstart", function (event) { highlightRect(event, $("#path983").attr("id"), true); });
  125. $("#settings_lbl_").on("mouseup", function (){ unHighlightRect( $("#path983").attr("id")); });
  126. $("#settings_lbl_").on("mouseout", function (){ unHighlightRect( $("#path983").attr("id")); });  
  127. $("#rectError1").on("mousedown", function (event) { highlightError(event, false); });
  128. $("#rectError1").on("touchstart", function (event) { highlightError(event, true); });
  129. $("#rectError1").on("mouseup", function (){ unHighlightError(); });
  130. $("#rectError1").on("mouseout", function (){ unHighlightError(); });
  131.  
  132. function highlightError(event, mouseleft){
  133.     if ($("#start").is(":visible") && (event.which == 1 || touchClick))
  134.     {
  135.         $("#polygon9").css("fill","#ffc0c0");
  136.         $("#path20").css("fill","#ffc0c0");
  137.         $("#path22").css("fill","#ffc0c0");
  138.     }
  139. }
  140.  
  141. function unHighlightError(){
  142.     if ($("#start").is(":visible"))
  143.     {
  144.         setTimeout(function()
  145.         {
  146.             $("#polygon9").css("fill","red");
  147.             $("#path20").css("fill","red");
  148.             $("#path22").css("fill","red");
  149.         }, 200);
  150.     }
  151. }
  152.  
  153.  
  154. function highlightRect(event, rectId, mouseleft){
  155.     if ($("#start").is(":visible") && (event.which == 1 || touchClick))
  156.     {
  157.         document.getElementById(rectId).style["fill"] = "#cccccc";
  158.     }
  159. }
  160.  
  161. function unHighlightRect(rectId){
  162.     if ($("#start").is(":visible"))
  163.     {
  164.         setTimeout(function()
  165.         {
  166.             document.getElementById(rectId).style["fill"] = "#808080";
  167.         }, 10);
  168.     }
  169. }
  170.  
  171. var  m_start__mode__vis = false;
  172.  
  173. $(function(){
  174.     $("<a id='error_fire' onclick='showLoadingSpinner();' data-rel='dialog' data-transition='pop' href='#error' ></a>").insertAfter("#path22");
  175.     $("#rectError1").attr("onclick","errorMessageHandler()");  
  176. });
  177.  
  178. function errorMessageHandler(){
  179.     $("#rectError1").attr("onclick","");
  180.     var tempReg = getReg("0b52", "1");
  181.     var errorCode = regToInt(tempReg['0b52']);
  182.     if(errorCode != 0){
  183.         setTimeout(function()
  184.         {
  185.             document.getElementById('error_fire').click();
  186.             getErrorInfo(errorCode);
  187.         }, 300)
  188.     }
  189. }
  190.  
  191. $( document ).on( "mobileinit", function() {
  192.   $.mobile.loader.prototype.options.text = "loading";
  193.   $.mobile.loader.prototype.options.textVisible = false;
  194.   $.mobile.loader.prototype.options.theme = "a";
  195.   $.mobile.loader.prototype.options.html = "";
  196. });
  197.  
  198. $.mobile.loading( "show", {
  199.   text: "foo",
  200.   textVisible: true,
  201.   theme: "z",
  202.   html: ""
  203. });
  204.  
  205. /* globalny identyfikator otwartego urządzenia */
  206. var uri = window.location.pathname.split('/');
  207. if(uri.length === 2) { id = uri[1]; } else { id = uri[2]; }
  208.  
  209. function m_start__mode_set() {
  210.   off    = $("#m_start__mode_off").prop("checked");
  211.   summer = $("#m_start__mode_summer").prop("checked");
  212.   winter = $("#m_start__mode_winter").prop("checked");
  213.  
  214.   reg = regToInt(getReg("0b55", "1")["0b55"]);
  215.   if(off)    { reg = setBit(reg, 3, false); reg = setBit(reg, 5, false); }
  216.   if(summer) { reg = setBit(reg, 3, true);  reg = setBit(reg, 5, false); }
  217.   if(winter) { reg = setBit(reg, 3, false); reg = setBit(reg, 5, true);  }
  218.   setReg("0b55", regToHex(reg));
  219. }
  220.  
  221. $(function () {
  222.   setInterval(refresh,  10000);
  223.   $("#settings_lbl__").text("ustawienia");
  224.   $("#parameters_lbl__").text("parametry");
  225.   $("#configuration_lbl__").text("konfiguracja");
  226.   $("#m_start__title").text(getDevType());
  227. })
  228.  
  229. /**
  230.  *  @brief          refresh()
  231.  *  @description    Funkcja odswiezajaca kontrolki.
  232.  */
  233. function refresh() {
  234.   if($("#win_index").is(":visible") == true ) {
  235.     ref_start();
  236.   }
  237. }
  238.  
  239. function ref_start() {
  240.   var reg  = getReg("0b2f", "30");
  241.  
  242.   // pobranie wartosci flag
  243.   var error      = regToInt(reg['0b52']);
  244.   var r_flagi_2  = regToInt(reg['0b50']);
  245.   var r_flagi_1  = regToInt(reg['0b51']);
  246.   var rw_flagi_2 = regToInt(reg['0b54']);
  247.   var rw_flagi_1 = regToInt(reg['0b55']);  
  248.  
  249.   /* Ustawienie temperatur w kontrolkach */
  250.   setTemp(reg['0b4b'], "temp_room"   , 1, rw_flagi_1);
  251.   setTemp(reg['0b31'], "temp_prog"   , 1, rw_flagi_1);
  252.   setTemp(reg['0b4c'], "temp_out"    , 1, rw_flagi_1);
  253.   setTemp(reg['0b2f'], "temp_zas_nas", 0, rw_flagi_1);
  254.   setTemp(reg['0b4a'], "temp_zas"    , 0, rw_flagi_1);
  255.  
  256.   if(getBit(regToInt(reg["0b50"]), 12)) {
  257.     $("#line30").css("opacity", "1");
  258.     $("#temp_room_sett_").css("opacity", "0");
  259.     $("#room_econ_").css("opacity", "0");
  260.     $("#room_anti_").css("opacity" , "0");
  261.     $("#room_conf_").css("opacity" , "0");
  262.     $("#room_confm_").css("opacity", "0");
  263.     $("#room_confp_").css("opacity", "0");
  264.     $("#room_hand_").css("opacity" , "0");
  265.     $("#boiler").css("opacity" , "1");
  266.   } else {
  267.     $("#boiler").css("opacity" , "0");
  268.    
  269.     /* Ustawienie ikony trybu parcy kotla */
  270.     if(regToInt(getReg("0b8a", "1")['0b8a']) == 0) {
  271.       $("#line30").css("opacity", "1");
  272.       $("#temp_room_sett_").css("opacity", "1");
  273.       if(regToInt(reg['0b32']) == 0)  { $("#room_econ_").css("opacity" , "1"); } else { $("#room_econ_").css("opacity", "0");  }
  274.       if(regToInt(reg['0b32']) == 1)  { $("#room_anti_").css("opacity" , "1"); } else { $("#room_anti_").css("opacity" , "0"); }
  275.       if(regToInt(reg['0b32']) == 2)  { $("#room_conf_").css("opacity" , "1"); } else { $("#room_conf_").css("opacity" , "0"); }
  276.       if(regToInt(reg['0b32']) == 3)  { $("#room_confm_").css("opacity", "1"); } else { $("#room_confm_").css("opacity", "0"); }
  277.       if(regToInt(reg['0b32']) == 4)  { $("#room_confp_").css("opacity", "1"); } else { $("#room_confp_").css("opacity", "0"); }
  278.       if(regToInt(reg['0b32']) == 64) { $("#room_hand_").css("opacity" , "1"); } else { $("#room_hand_").css("opacity" , "0"); }
  279.     } else {
  280.       /* ukrycie ikon */
  281.       $("#line30").css("opacity", "0");
  282.       $("#temp_room_sett_").css("opacity", "0");
  283.       $("#room_econ_").css("opacity", "0");
  284.       $("#room_anti_").css("opacity" , "0");
  285.       $("#room_conf_").css("opacity" , "0");
  286.       $("#room_confm_").css("opacity", "0");
  287.       $("#room_confp_").css("opacity", "0");
  288.       $("#room_hand_").css("opacity" , "0");
  289.     }
  290.   }
  291.  
  292.   /* Ustawienie ikony trybu pracy zasobnika */
  293.   if(regToInt(reg['0b30']) == 0) { $("#temp_zas_ekon_").css("opacity" , "1"); } else { $("#temp_zas_ekon_").css("opacity", "0"); }
  294.   if(regToInt(reg['0b30']) == 1) { $("#temp_zas_pzam_").css("opacity" , "1"); } else { $("#temp_zas_pzam_").css("opacity" , "0"); }
  295.   if(regToInt(reg['0b30']) == 2) { $("#temp_zas_konf_").css("opacity" , "1"); } else { $("#temp_zas_konf_").css("opacity" , "0"); }
  296.  
  297.   if(getBit(rw_flagi_1, 4)) {
  298.     $('#tray').attr("style", "opacity: 1.0;");
  299.     $('#home').attr("transform", "translate(0,120)");
  300.     $('#temp').attr("transform", "translate(200,50)");
  301.     $("#rp_indicator").attr("transform", "matrix(1.6,0,0,1.6,383,-33)");    
  302.   } else {
  303.     $('#tray').attr("style", "opacity: 0.0;");
  304.     $('#home').attr("transform", "translate(0,400)");
  305.     $('#temp').attr("transform", "translate(200,320)");
  306.     $("#rp_indicator").attr("transform", "matrix(1.6,0,0,1.6,383,237)");
  307.   }
  308.  
  309.   /* fast mode */
  310.   if(getBit(rw_flagi_1, 9) ||  getBit(rw_flagi_1, 6) || getBit(rw_flagi_1, 7)) {
  311.     if(getBit(rw_flagi_1, 9)) { $('#glass_').attr("style", "opacity: 0.0;"); $('#suitcase_').attr("style", "opacity: 0.0;"); $('#hand_').attr("style", "opacity: 0.5;"); }
  312.     if(getBit(rw_flagi_1, 6)) { $('#glass_').attr("style", "opacity: 0.5;"); $('#suitcase_').attr("style", "opacity: 0.0;"); $('#hand_').attr("style", "opacity: 0.0;"); }
  313.     if(getBit(rw_flagi_1, 7)) { $('#glass_').attr("style", "opacity: 0.0;"); $('#suitcase_').attr("style", "opacity: 0.5;"); $('#hand_').attr("style", "opacity: 0.0;"); }
  314.   } else {
  315.     $('#glass_').attr("style", "opacity: 0.0;");
  316.     $('#suitcase_').attr("style", "opacity: 0.0;");
  317.     $('#hand_').attr("style", "opacity: 0.0;");
  318.   }
  319.  
  320.   /* czujnik zewnętrzny */
  321.   if (getBit(rw_flagi_1, 1)){
  322.       $("#temp_room_sett_").css("opacity", "0");
  323.       $("#room_econ_").css("opacity", "0");
  324.       $("#room_anti_").css("opacity" , "0");
  325.       $("#room_conf_").css("opacity" , "0");
  326.       $("#room_confm_").css("opacity", "0");
  327.       $("#room_confp_").css("opacity", "0");
  328.       $("#room_hand_").css("opacity" , "0");
  329.       $("#boiler").css("opacity" , "0");
  330.      
  331.       if (document.getElementById("temp_room").style.visibility == "hidden"){
  332.           $("#line30").css("opacity", "0");
  333.       }
  334.          
  335.       if (getBit(r_flagi_1, 4)){
  336.           $("#rp_indicator").css("opacity" , "1");
  337.           $("#line30").css("opacity", "1");
  338.       }else{
  339.           $("#rp_indicator").css("opacity" , "0");
  340.       }          
  341.   }else{
  342.     $("#rp_indicator").css("opacity" , "0");  
  343.   }
  344.        
  345.   /* TURBO */
  346.   if(getBit(r_flagi_2, 1) && getBit(r_flagi_2, 6)) { $("#turbo_").css("fill", COLOR_ACTIVE); } else { $("#turbo_").css("fill", COLOR_DISABLED); }
  347.  
  348.   /* ERROR */
  349.   if(error !== 0) {
  350.         if ((getBit((rw_flagi_1), 14)) == false){
  351.             if (error == 32){
  352.                 $("#error_").css("fill" , COLOR_DISABLED);
  353.                 $("#polygon9").css("fill" , COLOR_DISABLED);
  354.                 $("#path20").css("fill" , COLOR_DISABLED);
  355.                 $("#path22").css("fill" , COLOR_DISABLED);
  356.                 $("#rectError1").hide();
  357.             }else{
  358.                 $("#error_").css("fill" , "red");
  359.                 $("#polygon9").css("fill" , "red");
  360.                 $("#path20").css("fill" , "red");
  361.                 $("#path22").css("fill" , "red");
  362.                 $("#rectError1").show();  
  363.             }
  364.         }else{
  365.            $("#error_").css("fill" , "red");
  366.            $("#polygon9").css("fill" , "red");
  367.            $("#path20").css("fill" , "red");
  368.            $("#path22").css("fill" , "red");
  369.            $("#rectError1").show();
  370.         }  
  371.   } else {
  372.       $("#error_").css("fill" , COLOR_DISABLED);
  373.       $("#polygon9").css("fill" , COLOR_DISABLED);
  374.       $("#path20").css("fill" , COLOR_DISABLED);
  375.       $("#path22").css("fill" , COLOR_DISABLED);
  376.       $("#rectError1").hide();
  377.   }
  378.  
  379.   /* sterowanie kontrolkami sygnalizacyjnymi */
  380.   if(getBit(rw_flagi_1, 9) ||  getBit(rw_flagi_1, 6) || getBit(rw_flagi_1, 7)) { $("#clock_").css("fill", COLOR_DISABLED); } else { $("#clock_").css("fill", COLOR_ACTIVE); } /* Praca wg kalendarza */
  381.  
  382.   co         = getBit(r_flagi_1, 7);
  383.   cwu        = getBit(r_flagi_1, 8);
  384.   lato       = getBit(rw_flagi_1, 3);
  385.   zima       = getBit(rw_flagi_1, 5);
  386.   co_yes_no  = getBit(rw_flagi_1, 4);
  387.   moc        = regToInt(reg["0b46"]);
  388.  
  389.   if(lato) {
  390.     if(cwu) { $("#tap_").css("fill", "#ff0000"); } else { $("#tap_").css("fill", "#00aa00"); }
  391.     $("#radiator_").css("fill", "#ececec");
  392.   }
  393.  
  394.   if(zima) {
  395.     if(co_yes_no) {
  396.       if(cwu && (moc != 0)) { $("#tap_").css("fill", "#ff0000"); } else { $("#tap_").css("fill", "#00aa00"); }
  397.     } else {
  398.       $("#tap_").css("fill", "#ececec");
  399.     }
  400.     if(co && (moc != 0))  { $("#radiator_").css("fill", "#ff0000"); } else { $("#radiator_").css("fill", "#00aa00"); }
  401.   }
  402.  
  403.   if(!lato && !zima) {
  404.     $("#tap_").css("fill", "#ececec");
  405.     $("#radiator_").css("fill", "#ececec");
  406.   }
  407.  
  408.   if(getBit(r_flagi_1, 0)) { $("#pump_").css("fill", COLOR_ACTIVE); } else { $("#pump_").css("fill", COLOR_DISABLED); } /* Pompa CO wl/wyl     */
  409.  
  410.   // opacity
  411.   $("#radiator_").css("opacity" , "1");
  412. }
  413.  
  414. function m_index__pass() {  
  415.   if($("#m_index__config_pass__pass").val() == "987") { window.location.href = "#config"; showLoadingSpinner();}
  416. }
  417.  
  418.  
  419.  
  420.  
  421. /**
  422.  *  @brief          setTemp(temp, name, decPoint)
  423.  *  @description    Funkcja przetwarzajaca i wyswietlajaca temperature. (analiza znaku).
  424.  *
  425.  *  @param          temp [string], [HEX] wartosc temperatury (lite endian).
  426.  *  @param          name [string], nazwa pojemnika.
  427.  *  @param          decPoint [int], liczba definiujaca, ile cyfr po przecinku ma byc wyswietlane.
  428.  */
  429. function setTemp(temp, name, decPoint, flagi)
  430. {
  431.   var _temp = parseInt(temp.substring(2) + temp.substring(-2, 2), 16);
  432.   if((_temp & 0x8000) > 0) { _temp = _temp - 0x10000; }
  433.  
  434.   if(_temp > -1000) {
  435.         $("#"+name).text((_temp / 10).toFixed(decPoint) + "°");
  436.         $("#"+name).css("fill","rgb(67, 67, 67)");
  437.         if (name == "temp_room" ){
  438.             $("#"+name).css("font-size","200px");
  439.             $("#"+name).css("fill","rgb(232, 123, 30)");
  440.         }
  441.         if (name == "temp_prog" ){
  442.             $("#"+name).css("font-size","130px");
  443.         }
  444.         if (name == "temp_out" ){
  445.             $("#"+name).css("font-size","150px");
  446.         }
  447.     }
  448.     else {
  449.         $("#"+name).text("Serwis");
  450.         $("#"+name).css("fill","rgb(232, 123, 30)");
  451.         if (name == "temp_room" ){
  452.             $("#"+name).css("font-size","130px");
  453.         }
  454.         if (name == "temp_prog" ){
  455.             $("#"+name).css("font-size","100px");
  456.         }
  457.         if (name == "temp_out" ){
  458.             $("#"+name).css("font-size","100px");
  459.         }
  460.     }
  461.   if(name == "temp_room" || name == "temp_out"){
  462.       if (getBit(flagi, 1)){
  463.         if (_temp <= -1000){
  464.            if (name == "temp_out"){
  465.             $("#temp").css("visibility" , "hidden");
  466.             $("#g5951").css("visibility" , "hidden");
  467.             $("#temp_outside_").css("visibility" , "hidden");
  468.            }    
  469.            $("#"+name).css("visibility" , "hidden");  
  470.         }else{
  471.            if (name == "temp_out"){
  472.             $("#temp").css("visibility" , "visible");
  473.             $("#g5951").css("visibility" , "visible");
  474.             $("#temp_outside_").css("visibility" , "visible");
  475.            }    
  476.            $("#"+name).css("visibility" , "visible");    
  477.         }
  478.       }else{
  479.           //nastawa co man auto
  480.         if ((getBit(flagi, 14)) == false){
  481.             if (name == "temp_out"){
  482.                 if (_temp <= -1000){
  483.                     $("#temp").css("visibility" , "hidden");
  484.                     $("#g5951").css("visibility" , "hidden");
  485.                     $("#temp_outside_").css("visibility" , "hidden");                    
  486.                     $("#"+name).css("visibility" , "hidden");
  487.                 }else{
  488.                     $("#temp").css("visibility" , "visible");
  489.                     $("#g5951").css("visibility" , "visible");
  490.                     $("#temp_outside_").css("visibility" , "visible");
  491.                     $("#"+name).css("visibility" , "visible");
  492.                 }
  493.             }
  494.         }else{
  495.                     $("#temp").css("visibility" , "visible");
  496.                     $("#g5951").css("visibility" , "visible");
  497.                     $("#temp_outside_").css("visibility" , "visible");
  498.                     $("#"+name).css("visibility" , "visible");
  499.         }
  500.      }
  501.   }
  502. }
  503.  
  504. /**
  505.  *  @brief        edian(_hex_)
  506.  *  @description  Funkcja zamiany miejscami postaci binarnej flag i bĹ�edĂłw
  507.  *  @param        _hex_ <string>, ciÄ�g zero-jedynkowy reprezentujÄ�cy flagi lub bĹ�Ä�dy (16 bitĂłw)
  508.  *  @result       <string>, ciąg zero-jedynkowy po zmianie.
  509.  *  @date         2017-10-31 12:46
  510.  *  @author       A.K.
  511.  */
  512. function edian(_hex_) { return _hex_.substring(8,16) + _hex_.substring(0,8); }
  513.  
  514. function minutesToTime(val) {
  515.   var hour   = ('0' + Math.trunc(val / 60)).slice(-2);
  516.   var minute = ('0' + (val % 60)).slice(-2);
  517.  
  518.   if(hour > 23)   { return false; }
  519.   if(minute > 59) { return false; }
  520.  
  521.   return hour + ":" + minute;
  522. }
  523.  
  524. function intToHex(val) {
  525.  return (val + 0x10000).toString(16).substr(-4);
  526. }
  527.  
  528. function hexToUInt(val, endian) {
  529.   if(endian) { return parseInt(val, 16); }
  530.         else { return parseInt(reg.substring(2) + reg.substring(-2, 2), 16); }
  531. }
  532.  
  533. function regToInt(reg) {
  534.     var temp = parseInt(reg.substring(2) + reg.substring(-2, 2), 16);
  535.     if((temp & 0x8000) > 0) { temp = temp - 0x10000; }
  536.     return temp;
  537. }
  538.  
  539. function regToHex(reg, endian) {
  540.   hex = (reg + 0x10000).toString(16).substr(-4);
  541.   if(endian) {
  542.     return hex;
  543.   } else {
  544.     return hex.substring(2) + hex.substring(-2, 2);
  545.   }
  546. }
  547.  
  548. function setValid(ctrl, status) {
  549.   if(status) {
  550.     ctrl.attr("style", "color: red; font-weight: bold;");
  551.   } else {
  552.     ctrl.attr("style", "color: black; font-weight: normal;");
  553.   }
  554. }
  555.  
  556. function dec2bin(dec){
  557.   return (dec >>> 0).toString(2);
  558. }
  559.  
  560.  
  561. /**
  562.  *  @brief          setBit(val, bit)
  563.  *  @description    Funkcja ustawiajaca lub kasująca bit.
  564.  *
  565.  *  @param          reg [integer], korygowana liczba.
  566.  *  @param          bit [integer], nr ustawianego bitu.
  567.  *  @param          val [boolean], stan ustawianego bitu.
  568.  */
  569. function setBit(reg, bit, val) {
  570.   if(val) { reg |= (1 << bit); } else { reg &= ~(1 << bit); }
  571.   return reg;
  572. }
  573.  
  574. /**
  575.  *  @brief          getBit(val, bit)
  576.  *  @description    Funkcja pobierająca bit.
  577.  *
  578.  *  @param          reg [integer], rejestr.
  579.  *  @param          bit [integer], nr czytanego bitu.
  580.  */
  581. function getBit(reg, bit) {
  582.   return (reg & (1 << bit)) != 0;
  583. }
  584.  
  585.  
  586.  
  587. /**
  588.  *  @brief          setRegBit(reg, bit, val)
  589.  *  @description    Funkcja ustawiajaca bit w danym rejestrze.
  590.  *
  591.  *  @param          reg [string], [HEX] rejestr (lite endian).
  592.  *  @param          bit [integer], nr ustawianego bitu.
  593.  *  @param          val [boolean], stan ustawianego bitu.
  594.  */
  595. function setRegBit(reg, bit, val) {
  596.   $.ajax({
  597.     beforeSend: function() {}, //$.mobile.showPageLoadingMsg(); }, //Show spinner
  598.     complete: function() {}, //$.mobile.hidePageLoadingMsg() }, //Hide spinner    type: 'GET',
  599.     url: "api/dev/" + id + "/" + reg,
  600.     timeout: 500,
  601.     dataType: 'json',
  602.     async: false,
  603.     success: function(data) {
  604.       value = parseInt(data['regs'][reg].substring(2) + data['regs'][reg].substring(-2, 2), 16);
  605.       if(val) { value |= (1 << bit); } else { value &= ~(1 << bit); }
  606.         $.ajax({
  607.           type: 'POST',
  608.           url: "api/dev/" + id + "/" + reg,
  609.           timeout: 500,
  610.           dataType: 'json',
  611.           data: regToHex(value)
  612.         });
  613.       },
  614.     error: function() {
  615. //      alert('HTML Error');
  616.     }
  617.   });
  618. }
  619.  
  620. /**
  621.  *  @brief          getRegBit(reg, bit)
  622.  *  @description    Funkcja pobierajaca bit z danego rejestru.
  623.  *
  624.  *  @param          reg [string], [HEX] rejestr (lite endian).
  625.  *  @param          bit [integer], nr ustawianego bitu.
  626.  *  @param          val [boolean], stan ustawianego bitu.
  627.  */
  628. function getRegBit(reg, bit) {
  629.   var result;
  630.   $.ajax({
  631.     beforeSend: function() { }, //$.mobile.showPageLoadingMsg(); }, //Show spinner
  632.     complete: function() { },//$.mobile.hidePageLoadingMsg() }, //Hide spinner    type: 'GET',
  633.     type: 'GET',
  634.     url: "api/dev/" + id + "/" + reg,
  635.     timeout: 1000,
  636.     dataType: 'json',
  637.     async: false,
  638.     success: function(data) {
  639.       value = parseInt(data['regs'][reg].substring(2) + data['regs'][reg].substring(-2, 2), 16);
  640.       result = (value & (1 << bit)) != 0;
  641.     },
  642.     error: function() {
  643. //      alert('HTML Error');
  644.     }
  645.   });
  646.   return result;
  647. }
  648.  
  649. function getReg(reg, cnt) {
  650.   var result;
  651.   $.ajax({
  652.     type: 'GET',
  653.     url: "api/dev/" + id + "/" + reg + "/" + cnt,
  654.     timeout: 1000,
  655.     dataType: 'json',
  656.     async: false,
  657.     success: function(data) {
  658.       result = data["regs"];
  659.     },
  660.     error: function() {}
  661.   });
  662.   return result;
  663. }
  664.  
  665. function setReg(reg, val) {
  666.   $.ajax({
  667.     type: 'POST',
  668.     url: "api/dev/" + id + "/" + reg,
  669.     timeout: 1000,
  670.     dataType: 'json',
  671.     data: val,
  672.     async: false,
  673.     error: function() {
  674. //      alert('HTML Error');
  675.     }
  676.   });
  677. }
  678.  
  679. /**
  680.  *  @brief          validate(ctrl, min, max, chars)
  681.  *  @description    Funkcja walidujaca kontrolkę.
  682.  *
  683.  *  @param          ctrl  [handle],  uchwyt do obiektu DOM.
  684.  *  @param          min   [integer], wartosc minimalna zakresu walidacji
  685.  *  @param          max   [boolean], wartosc maksymalna zakresu walidacji
  686.  *  @param          chars [array],   tablica zmienianych znakow
  687.  *                  przyklad: replaceChars={ "#":"" , "_":" " };
  688.  *
  689.  *  @todo           zweryfikowac parametr chars!!!
  690.  */
  691. function validate(ctrl, min, max, chars) {
  692.   var val = ctrl.val();
  693.   var status = ((parseInt(val*10) >= parseInt(min*10)) && (parseInt(val*10) <= parseInt(max*10)));
  694.  
  695.   if(status) {
  696.     ctrl.attr("style", "color: black; font-weight: normal;");
  697.     ctrl.css("background-color", "transparent");
  698.     ctrl.css("border","2px solid transparent");
  699.   } else {
  700.     ctrl.attr("style", "color: black; font-weight: bold;");
  701.     ctrl.css("background-color","#FF9999");
  702.     ctrl.css("border","2px solid red");
  703.   }
  704.  
  705.   //console.log(val);
  706.  
  707.   return status;
  708. }
  709.  
  710. /**
  711.  *  @brief          countDecimals(value)
  712.  *  @description    Funkcja zwracająca ilość cyfr po przecinku.
  713.  *
  714.  *  @param          value [float], wartość zmiennoprzecinkowa.
  715.  */
  716. function countDecimals(value) {
  717.     if(Math.floor(value) == value) return 0;
  718.     return value.toString().split(".")[1].length || 0;
  719. }
  720.  
  721. function getDevType() {
  722.   var type;
  723.  
  724.   $.ajax({
  725.     type: 'GET',
  726.     url: "api/dev/" + id + "/info",
  727.     timeout: 500,
  728.     dataType: 'json',
  729.     async: false,
  730.     success: function(data) {
  731.       type = data["info"]["id"];
  732.       id = data["info"]["moduleID"];
  733.     },
  734.     error: function() {
  735.     }
  736.   });
  737.  
  738.   switch(type) {
  739.     case 18: name = "EKD.M3 (" + (id - 64) + ")";  break;
  740.     case 19: name = "EKCO.M3 (" + (id - 64) + ")"; break;
  741.     default: name = "";
  742.   }
  743.   return name;
  744. }
  745.  
  746. /**
  747.  *  @brief          getMinute(ctrl)
  748.  *  @description    Funkcja pobierająca wartość minut z kontrolki.
  749.  *
  750.  *  @param          ctrl [handle)], uchwyt do kontrolki.
  751.  */
  752. function getMinute(ctrl) {
  753.   var data = document.getElementById(ctrl).value.split(":");
  754.   return (parseInt(data[0]) * 60) + parseInt(data[1]);
  755. }
  756.  
  757. function nodot(evt) {
  758.     var keycode = evt.charCode || evt.keyCode;
  759.     if(keycode = 44) { return false; }
  760.     if(keycode = 46) { return false; }
  761. }
  762.  
  763. function showLoadingSpinner(){
  764.     $("#spinnerBackground").show();
  765.     $("#spinnerWheel").show();
  766. }
  767.  
  768. function showLoadingSpinnerWithDelay(){
  769.     setTimeout(function()
  770.     {
  771.         $("#spinnerBackground").show();
  772.         $("#spinnerWheel").show();
  773.     }, 150);   
  774. }
  775.  
  776. function showLoadingSpinnerWithCustomDelay(delay){
  777.     setTimeout(function()
  778.     {
  779.         $("#spinnerBackground").show();
  780.         $("#spinnerWheel").show();
  781.     }, delay); 
  782. }
  783.  
  784. function hideLoadingSpinner(){
  785.     $("#spinnerWheel").hide();
  786.     $("#spinnerBackground").hide();
  787. }  
  788.  
  789. function hideLoadingSpinnerWithDelay(){
  790.     setTimeout(function()
  791.     {
  792.         $("#spinnerWheel").hide();
  793.         $("#spinnerBackground").hide();
  794.     }, 150);   
  795. }
  796.  
  797. function hideLoadingSpinnerWithCustomDelay(delay){
  798.     setTimeout(function()
  799.     {
  800.         $("#spinnerWheel").hide();
  801.         $("#spinnerBackground").hide();
  802.     }, delay); 
  803. }
  804. </script>
  805.  
  806. <div class="loading_background" id="spinnerBackground"></div>
  807.  
  808. <div  class="spinnerWheel_params" id="spinnerWheel">
  809.     <div class="spinnerWheel_loader"></div>  
  810. </div>
  811.  
  812. <style>
  813.     .loading_background {
  814.         display: none;
  815.         position: relative;
  816.         top: 0;
  817.         left: 0;
  818.         width: 100%;
  819.         height: 100%;
  820.         background-color: #fff;
  821.         opacity: 0.9;
  822.         z-index: 95;
  823.     }
  824.  
  825.     .spinnerWheel_params {
  826.         display: none;
  827.         position: absolute;
  828.         top: 0;
  829.         left: 0;
  830.         width: 100%;
  831.         height: 100%;
  832.         background-color: #fff;
  833.         opacity: 1.0;
  834.         z-index: 100;
  835.     }
  836.    
  837.     .spinnerWheel_loader {
  838.         width: auto;
  839.         height: 100%;
  840.         background: url("img/spinnerWheel.gif") no-repeat center center transparent;
  841.         background-size: 20% auto;
  842.         position: relative;
  843.         top: 0%;
  844.         z-index: 100;
  845.     }
  846. </style>
  847. <!-- /start mode -->
  848. <div data-role="dialog" id="m_start__mode" data-close-btn="right">
  849.   <div data-role="header"><h1><a onclick="showLoadingSpinner();" href="#about" style="color:inherit; text-decoration:none;" data-rel="dialog" data-transition="pop">tryb pracy</a></h1></div>
  850.   <div data-role="content">
  851.     <div data-role="controlgroup">
  852.       <input name="radio-choice-v-2" id="m_start__mode_off" type="radio" value="0" data-iconpos="right">
  853.       <label for="m_start__mode_off">postojowy</label>
  854.       <input name="radio-choice-v-2" id="m_start__mode_summer" type="radio" value="1" data-iconpos="right">
  855.       <label for="m_start__mode_summer">lato</label>
  856.       <input name="radio-choice-v-2" id="m_start__mode_winter" type="radio" value="2" data-iconpos="right">
  857.       <label for="m_start__mode_winter">zima</label>
  858.     </div>
  859.     <br>
  860.     <div data-role="controlgroup">
  861.       <input id="m_start__mode_party" onclick="window.location.href = '#m_start__mode_party_dlg'; showLoadingSpinner();" name="radio-choice-v-3" type="radio" data-iconpos="right">
  862.       <label for="m_start__mode_party">party</label>
  863.       <input id="m_start__mode_vacation" onclick="window.location.href = '#m_start__mode_vacation_dlg'; showLoadingSpinner();" name="radio-choice-v-3" type="radio" data-iconpos="right">
  864.       <label for="m_start__mode_vacation">wakacje</label>
  865.       <input id="m_start__mode_manual" onclick="window.location.href = '#m_start__mode_manual_dlg'; showLoadingSpinner();" name="radio-choice-v-3" type="radio" data-iconpos="right">
  866.       <label for="m_start__mode_manual">ręczny</label>
  867.     </div>
  868.   </div>
  869. </div>
  870. <!-- /start mode: end -->
  871.  
  872. <script>$(document).on("pagechange", function () { if($("#m_start__mode").is(":visible"))
  873. {
  874.     m_start__get_mode();
  875.     hideLoadingSpinner();
  876. }});
  877.  
  878. $("#m_start__mode").off("pagehide").on("pagehide",function(){
  879.     if ($("#start").is(":visible"))
  880.     {
  881.         showLoadingSpinner();
  882.     }
  883. });
  884.  
  885. /* stany checkboxów przy wyborze trybów */
  886.     var off_last_checked = false;
  887.     var summer_last_checked = false;
  888.     var winter_last_checked = false;
  889.  
  890. /* eventy na zmianę checkboxów i aktualizacja wyświetlania i ich stanów */ 
  891. $("#m_start__mode_off").on("change", function(){
  892.     if ($("#m_start__mode").is(":visible")){
  893.         if ($("#m_start__mode_off").prop("checked") && !off_last_checked){
  894.             off_last_checked = true;
  895.             summer_last_checked = false;
  896.             winter_last_checked = false;
  897.            
  898.             m_start__refresh_modes_display(summer_last_checked,winter_last_checked);   
  899.             m_index__mode_set(off_last_checked,summer_last_checked,winter_last_checked);               
  900.         }
  901.     }
  902. });
  903.  
  904. $("#m_start__mode_summer").on("change", function(){
  905.     if ($("#m_start__mode").is(":visible")){   
  906.         if ($("#m_start__mode_summer").prop("checked") && !summer_last_checked){
  907.             off_last_checked = false;
  908.             summer_last_checked = true;
  909.             winter_last_checked = false;
  910.            
  911.             m_start__refresh_modes_display(summer_last_checked,winter_last_checked);   
  912.             m_index__mode_set(off_last_checked,summer_last_checked,winter_last_checked);
  913.         }
  914.     }
  915. });
  916.  
  917. $("#m_start__mode_winter").on("change", function(){
  918.     if ($("#m_start__mode").is(":visible")){   
  919.         if ($("#m_start__mode_winter").prop("checked") && !winter_last_checked){
  920.             off_last_checked = false;
  921.             summer_last_checked = false;
  922.             winter_last_checked = true;
  923.            
  924.             m_start__refresh_modes_display(summer_last_checked,winter_last_checked);   
  925.             m_index__mode_set(off_last_checked,summer_last_checked,winter_last_checked);
  926.         }
  927.     }
  928. });
  929.  
  930. /* funkcja zmieniająca na sterowniku aktualny tryb */
  931. function m_index__mode_set(off, summer, winter) {  
  932.   reg = regToInt(getReg("0b55", "1")["0b55"]);
  933.   if(off)    { reg = setBit(reg, 3, false); reg = setBit(reg, 5, false); }
  934.   else if(summer) { reg = setBit(reg, 3, true);  reg = setBit(reg, 5, false); }
  935.   else if(winter) { reg = setBit(reg, 3, false); reg = setBit(reg, 5, true);  }
  936.   setReg("0b55", regToHex(reg));
  937. }
  938.  
  939. /* pobranie aktualnego trybu */
  940. function m_start__get_mode() {
  941.   var reg           = regToInt(getReg("0b55", "1")["0b55"]);
  942.   var stat_party    = getBit(reg, 6);
  943.   var stat_vacation = getBit(reg, 7);
  944.   var stat_manual   = getBit(reg, 9);
  945.   var winter = getBit(reg, 5);
  946.   var summer = getBit(reg, 3);
  947.  
  948.   $("#m_start__mode_off").prop("checked", false).checkboxradio("refresh");
  949.   $("#m_start__mode_summer").prop("checked", false).checkboxradio("refresh");
  950.   $("#m_start__mode_winter").prop("checked", false).checkboxradio("refresh");  
  951.  
  952.   if(getBit(reg, 4)) {
  953.     if(summer) { $("#m_start__mode_summer").prop("checked", true).checkboxradio("refresh");}  
  954.     $("#m_start__mode_summer").parent().show();
  955.   } else {
  956.     $("#m_start__mode_summer").parent().hide();
  957.   }
  958.  
  959.   if(winter) { $("#m_start__mode_winter").prop("checked", winter).checkboxradio("refresh"); }
  960.   if(!summer && !winter) { $("#m_start__mode_off").prop("checked", true).checkboxradio("refresh"); }  
  961.  
  962.   var ctrl_party    = $("#m_start__mode_party");
  963.   var ctrl_vacation = $("#m_start__mode_vacation");
  964.   var ctrl_manual   = $("#m_start__mode_manual");
  965.  
  966.   if(stat_party)    { ctrl_party.prop("checked", true).checkboxradio("refresh");    } else { ctrl_party.prop("checked", false).checkboxradio("refresh");    }
  967.   if(stat_vacation) { ctrl_vacation.prop("checked", true).checkboxradio("refresh"); } else { ctrl_vacation.prop("checked", false).checkboxradio("refresh"); }
  968.   if(stat_manual)   { ctrl_manual.prop("checked", true).checkboxradio("refresh");   } else { ctrl_manual.prop("checked", false).checkboxradio("refresh");   }
  969.  
  970.   ctrl_party.checkboxradio('enable').checkboxradio("refresh");
  971.   ctrl_vacation.checkboxradio('enable').checkboxradio("refresh");
  972.   ctrl_manual.checkboxradio('enable').checkboxradio("refresh");
  973.  
  974.   m_start__refresh_modes_display($("#m_start__mode_summer").prop("checked"),$("#m_start__mode_winter").prop("checked"), reg);
  975. }
  976.  
  977. /* aktualizacja trybu w zależności od wybranego trybu */
  978. function m_start__refresh_modes_display(summer, winter, register){
  979.     if (register != null){
  980.         var reg           = register;
  981.     }else{
  982.         var reg           = regToInt(getReg("0b55", "1")["0b55"]);
  983.     }
  984.    
  985.     var stat_party    = getBit(reg, 6);
  986.     var stat_vacation = getBit(reg, 7);
  987.     var stat_manual   = getBit(reg, 9);
  988.  
  989.     if (summer){
  990.         $("#m_start__mode_manual").parent().hide();
  991.         if (stat_party){
  992.             $("#m_start__mode_party").parent().show();
  993.             $("#m_start__mode_vacation").parent().hide();
  994.         }else if (stat_vacation){
  995.             $("#m_start__mode_party").parent().hide();
  996.             $("#m_start__mode_vacation").parent().show();
  997.         }else{
  998.             $("#m_start__mode_party").parent().show();
  999.             $("#m_start__mode_vacation").parent().show();      
  1000.         }              
  1001.     }
  1002.     else if (winter){
  1003.         if (stat_party){
  1004.             $("#m_start__mode_party").parent().show();
  1005.             $("#m_start__mode_vacation").parent().hide();
  1006.             $("#m_start__mode_manual").parent().hide();
  1007.         }else if (stat_vacation){
  1008.             $("#m_start__mode_party").parent().hide();
  1009.             $("#m_start__mode_vacation").parent().show();
  1010.             $("#m_start__mode_manual").parent().hide();
  1011.         }else if (stat_manual){
  1012.             $("#m_start__mode_party").parent().hide();
  1013.             $("#m_start__mode_vacation").parent().hide();
  1014.             $("#m_start__mode_manual").parent().show();
  1015.         }else{
  1016.             $("#m_start__mode_party").parent().show();
  1017.             $("#m_start__mode_vacation").parent().show();
  1018.             $("#m_start__mode_manual").parent().show();        
  1019.         }        
  1020.     }else{
  1021.         $("#m_start__mode_party").parent().hide();
  1022.         $("#m_start__mode_vacation").parent().hide();
  1023.         $("#m_start__mode_manual").parent().hide();        
  1024.     }
  1025. }
  1026.  
  1027.  
  1028. function m_start__mode_change() {
  1029. //  var ctrl_party    = $("#m_start__mode_party");
  1030. //  var ctrl_vacation = $("#m_start__mode_vacation");
  1031. //  var ctrl_manual   = $("#m_start__mode_manual");
  1032.  
  1033. //  var mode_party    = ctrl_party.prop("checked");
  1034. //  var mode_vacation = ctrl_vacation.prop("checked");
  1035. //  var mode_manual   = ctrl_manual.prop("checked");
  1036.  
  1037. //  if(!mode_party)    { ctrl_party.checkboxradio("disable").checkboxradio("refresh");    }
  1038. //  if(!mode_vacation) { ctrl_vacation.checkboxradio("disable").checkboxradio("refresh"); }
  1039. //  if(!mode_manual)   { ctrl_manual.checkboxradio("disable").checkboxradio("refresh");   }
  1040.  
  1041. //  if(mode_party)     { window.location.href = '#m_start__mode_party_dlg';    }
  1042. //  if(mode_vacation)  { window.location.href = '#m_start__mode_vacation_dlg'; }
  1043. //  if(mode_manual)    { window.location.href = '#m_start__mode_manual_dlg';   }
  1044. }
  1045.  
  1046.  
  1047.  
  1048. </script>
  1049.  
  1050. <!-- /party -->
  1051. <div data-role="dialog" id="m_start__mode_party_dlg" data-close-btn="right">
  1052.   <div data-role="header"><h1><a onclick="showLoadingSpinner();" href="#about" style="color:inherit; text-decoration:none;" data-rel="dialog" data-transition="pop">tryb party</a></h1></div>
  1053.   <div data-role="content">
  1054.     <ul data-role="listview" data-inset="true">
  1055.       <li class="ui-body" id="m_index_mode_party_time_li">
  1056.             <label id="m_index_mode_party_time_lbl" for="m_index_mode_party_time"><h1>czas trwania</h1></label>
  1057.             <label id="m_index_mode_party_time_info_1" style="display:none;">zakres: </label>
  1058.             <input data-clear-btn="false" id="m_index_mode_party_time" value="1" type="number">
  1059.       </li>
  1060.       <li class="ui-body" id="m_index_mode_party_time_off" style="display:none;">
  1061.         <table>
  1062.           <tr>
  1063.             <td><label><h1>czas zakończenia:</h1></label></td>
  1064.             <td><div id="m_index_mode_party_time_off_lbl">---</div></td>
  1065.           </tr>
  1066.         </table>
  1067.       </li>
  1068.       <li class="ui-body">
  1069.         <label><input name="checkbox-a" type="checkbox" id="m_index_mode_party_notice">Do odwołania</label>
  1070.       </li>
  1071.     </ul>
  1072.     <a id="m_index_mode_mod_btn" style="display:none;" data-role="button" onclick="m_start__mode_party_set(true);">modyfikuj</a>
  1073.     <a id="m_index_mode_set_btn" style="display:none;" data-role="button" onclick="m_start__mode_party_set(true);">uruchom</a>
  1074.     <a id="m_index_mode_clr_btn" data-role="button" onclick="m_start__mode_party_set(false);">zakończ</a>
  1075.   </div>
  1076. </div>
  1077.  
  1078. <script>$(document).on("pagechange", function () { if($("#m_start__mode_party_dlg").is(":visible")) { m_start__mode_party_show(); hideLoadingSpinner();}});
  1079.  
  1080. /* zmienne parametryczne */
  1081. var m_start__mode_party_stat_party     = false;
  1082. var m_start__mode_party_stat_vacation  = false;
  1083. var m_start__mode_party_stat_manual    = false;
  1084.  
  1085. var m_start__mode_party_minute         = 0;
  1086. var m_start__mode_party_hour           = 0;
  1087. var m_start__mode_party_day            = 0;
  1088. var m_start__mode_party_month          = 0;
  1089. var m_start__mode_party_year           = 0;
  1090.  
  1091. /* zmienne walidacyjne */
  1092. var m_start__mode_party_time_min = 1;
  1093. var m_start__mode_party_time_max = 24;
  1094. var m_start__mode_party_last_time = 1;
  1095.  
  1096. /* eventy na inputach - wyświetlanie zakresu oraz dynamiczna walidacja, reakcje interfejsu */ 
  1097. $("#m_index_mode_party_time").on("focusin", function(){
  1098.     if ($("#m_start__mode_party_dlg").is(":visible")){
  1099.     $("#m_index_mode_party_time_info_1").show();
  1100.     }
  1101. });
  1102.  
  1103. $("#m_index_mode_party_time").on("focusout", function(){
  1104.     if ($("#m_start__mode_party_dlg").is(":visible")){
  1105.     $("#m_index_mode_party_time_info_1").hide();
  1106.     }
  1107. });
  1108.  
  1109. $("#m_index_mode_party_notice").change(function(){
  1110.     if ($("#m_start__mode_party_dlg").is(":visible")){
  1111.         if ($("#m_index_mode_party_notice").prop("checked")){
  1112.             $("#m_index_mode_party_time_info_1").hide();
  1113.             $("#m_index_mode_party_time_lbl").hide();
  1114.             $("#m_index_mode_party_time").parent().hide();
  1115.             $("#m_index_mode_party_time_li").css("display","none");
  1116.             $("#m_index_mode_set_btn").css("background-color","");
  1117.             $("#m_index_mode_set_btn").css("color","#000000");
  1118.             $("#m_index_mode_mod_btn").css("background-color","");
  1119.             $("#m_index_mode_mod_btn").css("color","#000000");
  1120.         }else{
  1121.             $("#m_index_mode_party_time").parent().show();
  1122.             $("#m_index_mode_party_time_lbl").show();
  1123.             $("#m_index_mode_party_time_li").css("display","");
  1124.            
  1125.             if (!validate($("#m_index_mode_party_time"), m_start__mode_party_time_min,  m_start__mode_party_time_max,  {})){
  1126.                 $("#m_index_mode_set_btn").css("background-color","#CCCCCC");
  1127.                 $("#m_index_mode_set_btn").css("color","#D9D9D9");
  1128.                 $("#m_index_mode_mod_btn").css("background-color","#CCCCCC");
  1129.                 $("#m_index_mode_mod_btn").css("color","#D9D9D9");
  1130.             }else{
  1131.                 $("#m_index_mode_set_btn").css("background-color","");
  1132.                 $("#m_index_mode_set_btn").css("color","#000000");
  1133.                 $("#m_index_mode_mod_btn").css("background-color","");
  1134.                 $("#m_index_mode_mod_btn").css("color","#000000");
  1135.             }
  1136.         }
  1137.     }
  1138. });
  1139.  
  1140. $("#m_index_mode_party_time").on("input", function(){
  1141.     if ($("#m_start__mode_party_dlg").is(":visible")){
  1142.         if (!validate($("#m_index_mode_party_time"), m_start__mode_party_time_min,  m_start__mode_party_time_max,  {})){
  1143.             $("#m_index_mode_set_btn").css("background-color","#CCCCCC");
  1144.             $("#m_index_mode_set_btn").css("color","#D9D9D9");
  1145.             $("#m_index_mode_mod_btn").css("background-color","#CCCCCC");
  1146.             $("#m_index_mode_mod_btn").css("color","#D9D9D9");
  1147.         }else{
  1148.             $("#m_index_mode_set_btn").css("background-color","");
  1149.             $("#m_index_mode_set_btn").css("color","#000000");
  1150.             $("#m_index_mode_mod_btn").css("background-color","");
  1151.             $("#m_index_mode_mod_btn").css("color","#000000");
  1152.         }
  1153.     }
  1154. });
  1155.  
  1156. /* ustawianie parametrów w trybie party po ich walidacji i powrót do panelu menu */
  1157. function m_start__mode_party_set(param) {
  1158.   var validation = true;
  1159.   if(!validate($("#m_index_mode_party_time"), m_start__mode_party_time_min,  m_start__mode_party_time_max,  {})) { validation = false; }   
  1160.     var notice = $('#m_index_mode_party_notice').prop("checked");
  1161.    
  1162.     var time   = $("#m_index_mode_party_time").val()
  1163.     var reg_time = getReg("0af6", "7");
  1164.     var reg_stat = regToInt(getReg("0b55", "1")["0b55"]);
  1165.     var timer    = "ffff,ffff,ffff,ffff,ffff,ffff";
  1166.    
  1167.     var year     = regToInt(reg_time['0afc']) + 2000;
  1168.     var month    = regToInt(reg_time['0afb']);
  1169.     var day      = regToInt(reg_time['0afa']);
  1170.     var hour     = regToInt(reg_time['0af8']);
  1171.     var minute   = regToInt(reg_time['0af7']);
  1172.     var second   = regToInt(reg_time['0af6']);
  1173.     var date     = new Date(year, month, day, hour, minute, second, 0);
  1174.    
  1175.     if(validation && !notice && param){
  1176.         var date_new = new Date(date.valueOf() + (((parseInt(time) * 60) * 60000)));
  1177.         timer        = regToHex(date_new.getMinutes()) + ',' + regToHex(date_new.getHours()) + ',' + regToHex(date_new.getDate()) + ',' + regToHex(date_new.getMonth()) + ',' + regToHex(date_new.getFullYear() - 2000);
  1178.         setReg("0b6c", timer);
  1179.         setReg("0b55", regToHex(setBit(reg_stat, 6, param)));  
  1180.         m_start__mode_party_last_time = $("#m_index_mode_party_time").val();
  1181.         window.location.href = "#start";
  1182.         showLoadingSpinner();
  1183.     }else if (notice && param){
  1184.         timer = "0000,0000,0000,0000,0000";
  1185.         setReg("0b6c", timer);
  1186.         setReg("0b55", regToHex(setBit(reg_stat, 6, param)));  
  1187.         window.location.href = "#start";
  1188.         showLoadingSpinner();
  1189.     }else if (!param){
  1190.         var date_new = new Date(date.valueOf());
  1191.         timer        = regToHex(date_new.getMinutes()) + ',' + regToHex(date_new.getHours()) + ',' + regToHex(date_new.getDate()) + ',' + regToHex(date_new.getMonth()) + ',' + regToHex(date_new.getFullYear() - 2000);
  1192.         setReg("0b6c", timer);
  1193.         setReg("0b55", regToHex(setBit(reg_stat, 6, param)));  
  1194.         window.location.href = "#start";
  1195.         showLoadingSpinner();
  1196.     }
  1197. }
  1198.  
  1199. /* załadowanie parametrów trybu party  i ich wyświetlenie  */
  1200. function m_start__mode_party_show() {
  1201.   var reg_stat                       = regToInt(getReg("0b55", "1")["0b55"]);
  1202.   var reg_time                       = getReg("0b6c", "5");
  1203.  
  1204.   $("#m_index_mode_party_time_info_1").text("zakres: " + " 0 ÷ 24 " + "[godziny]");
  1205.   $("#m_index_mode_party_time").val(m_start__mode_party_last_time);
  1206.  
  1207.   m_start__mode_party_stat_party     = getBit(reg_stat, 6);
  1208.  
  1209.   m_start__mode_party_minute         = regToInt(reg_time["0b6c"]);
  1210.   m_start__mode_party_hour           = regToInt(reg_time["0b6d"]);
  1211.   m_start__mode_party_day            = regToInt(reg_time["0b6e"]);
  1212.   m_start__mode_party_month          = regToInt(reg_time["0b6f"]);
  1213.   m_start__mode_party_year           = regToInt(reg_time["0b70"]) + 2000;
  1214.  
  1215.   m_start__mode_party_refresh();
  1216. }
  1217.  
  1218. /* odświeżenie parametrów trybu party */
  1219. function m_start__mode_party_refresh() {
  1220.   var end_date = m_start__mode_party_year                    + '-' +
  1221.                  ('0' + m_start__mode_party_month).slice(-2) + '-' +
  1222.                  ('0' + m_start__mode_party_day).slice(-2)   + ' ' +
  1223.                  ('0' + m_start__mode_party_hour).slice(-2)  + ':' +
  1224.                  ('0' + m_start__mode_party_minute).slice(-2);
  1225.  
  1226.   var party_notice       = $('#m_index_mode_party_notice');
  1227.   var party_time_li      = $("#m_index_mode_party_time_li");
  1228.   var party_time_off     = $("#m_index_mode_party_time_off");
  1229.   var party_time_off_lbl = $("#m_index_mode_party_time_off_lbl");
  1230.   var party_on_btn       = $("#m_index_mode_set_btn"); // handle to party on btn
  1231.   var party_off_btn      = $("#m_index_mode_clr_btn"); // handle to party off btn
  1232.   var party_mod_btn      = $("#m_index_mode_mod_btn"); // handle to party modify btn
  1233.  
  1234.   /* jezeli aktywny tryb do odwolania */
  1235.   if(m_start__mode_party_minute == "0000") {
  1236.      party_notice.prop("checked", true).checkboxradio("refresh");
  1237.   } else {
  1238.      party_notice.prop("checked", false).checkboxradio("refresh");
  1239.   }
  1240.  
  1241.   if(m_start__mode_party_stat_party & (m_start__mode_party_minute != "0000")) {
  1242.     party_time_off.attr("style", "display:yes");
  1243.     party_time_off_lbl.text(end_date);
  1244.   } else {
  1245.     party_time_off.attr("style", "display:none");
  1246.   }
  1247.  
  1248.   if(m_start__mode_party_stat_party) {
  1249.     party_on_btn.attr("style", "display:none");
  1250.     party_mod_btn.attr("style", "display:yes");
  1251.     party_off_btn.show();
  1252.   } else {
  1253.     party_on_btn.attr("style", "display:yes");
  1254.     party_mod_btn.attr("style", "display:none");
  1255.     party_off_btn.hide();
  1256.   }
  1257.  
  1258.         if ($("#m_index_mode_party_notice").prop("checked")){
  1259.             $("#m_index_mode_party_time_info_1").hide();
  1260.             $("#m_index_mode_party_time_lbl").hide();
  1261.             $("#m_index_mode_party_time").parent().hide();
  1262.             $("#m_index_mode_party_time_li").css("display","none");
  1263.             $("#m_index_mode_set_btn").css("background-color","");
  1264.             $("#m_index_mode_set_btn").css("color","#000000");
  1265.             $("#m_index_mode_mod_btn").css("background-color","");
  1266.             $("#m_index_mode_mod_btn").css("color","#000000");
  1267.         }else{
  1268.             $("#m_index_mode_party_time").parent().show();
  1269.             $("#m_index_mode_party_time_lbl").show();
  1270.             $("#m_index_mode_party_time_li").css("display","");
  1271.            
  1272.             if (!validate($("#m_index_mode_party_time"), m_start__mode_party_time_min,  m_start__mode_party_time_max,  {})){
  1273.                 $("#m_index_mode_set_btn").css("background-color","#CCCCCC");
  1274.                 $("#m_index_mode_set_btn").css("color","#D9D9D9");
  1275.                 $("#m_index_mode_mod_btn").css("background-color","#CCCCCC");
  1276.                 $("#m_index_mode_mod_btn").css("color","#D9D9D9");
  1277.             }else{
  1278.                 $("#m_index_mode_set_btn").css("background-color","");
  1279.                 $("#m_index_mode_set_btn").css("color","#000000");
  1280.                 $("#m_index_mode_mod_btn").css("background-color","");
  1281.                 $("#m_index_mode_mod_btn").css("color","#000000");
  1282.             }
  1283.         }
  1284. }
  1285.  
  1286.  
  1287. </script>
  1288. <!-- /vacation -->
  1289. <div data-role="dialog" id="m_start__mode_vacation_dlg" data-close-btn="right">
  1290.   <div data-role="header"><h1><a onclick="showLoadingSpinner();" href="#about" style="color:inherit; text-decoration:none;" data-rel="dialog" data-transition="pop">tryb wakacje</a></h1></div>
  1291.   <div data-role="content">
  1292.     <ul data-role="listview" data-inset="true">
  1293.       <li class="ui-body" id="m_index_mode_vacation_li">
  1294.         <label id="m_index_mode_vacation_time_time_lbl" for="setting_vacation_time">Czas trwania trybu WAKACJE</label>
  1295.         <label id="m_index_mode_vacation_time_time_info_1" style="display:none;">zakres: </label>
  1296.         <input id="m_index_mode_vacation_time" data-clear-btn="false" name="setting_vacation_time" value="1" type="number">
  1297.       </li>
  1298.  
  1299.       <li class="ui-body" id="m_index_mode_vacation_time_off" style="display:none;">
  1300.         <table>
  1301.           <tr>
  1302.             <td><label><h1>czas zakończenia:</h1></label></td>
  1303.             <td><div id="m_index_mode_vacation_time_off_lbl">---</div></td>
  1304.           </tr>
  1305.         </table>
  1306.       </li>
  1307.  
  1308.       <li class="ui-body">
  1309.         <label><input name="checkbox-0 " type="checkbox" id="m_index_mode_vacation_notice">Do odwołania</label>
  1310.       </li>
  1311.     </ul>
  1312.     <a id="m_index_mode_vacation_mod_btn" style="display:none;" data-role="button" onclick="m_start__mode_vacation_set(true);">modyfikuj</a>
  1313.     <a id="m_index_mode_vacation_set_btn" style="display:none;" data-role="button" onclick="m_start__mode_vacation_set(true);">uruchom</a>
  1314.     <a id="m_index_mode_vacation_clr_btn" data-role="button" onclick="m_start__mode_vacation_set(false);">zakończ</a>
  1315.   </div>
  1316. </div>
  1317.  
  1318. <script>$(document).on("pagechange", function () { if($("#m_start__mode_vacation_dlg").is(":visible")) { m_start__mode_vacation_show(); hideLoadingSpinner();}});
  1319.  
  1320. /* zmienne parametryczne */
  1321. var m_start__mode_vacation_stat   = false;
  1322. var m_start__mode_vacation_minute = 0;
  1323. var m_start__mode_vacation_hour   = 0;
  1324. var m_start__mode_vacation_day    = 0;
  1325. var m_start__mode_vacation_month  = 0;
  1326. var m_start__mode_vacation_year   = 0;
  1327.  
  1328. /* zmienne walidacyjne */
  1329. var m_start__mode_vacation_day_min = 1;
  1330. var m_start__mode_vacation_day_max = 60;
  1331. var m_start__mode_vacation_last_day = 1;
  1332.  
  1333. /* eventy na inputach - wyświetlanie zakresu, dynamiczna walidacja oraz reakcje interfejsowe*/
  1334. $("#m_index_mode_vacation_time").on("focusin", function(){
  1335.     if ($("#m_start__mode_vacation_dlg").is(":visible")){
  1336.     $("#m_index_mode_vacation_time_time_info_1").show();
  1337.     }
  1338. });
  1339.  
  1340. $("#m_index_mode_vacation_time").on("focusout", function(){
  1341.     if ($("#m_start__mode_vacation_dlg").is(":visible")){
  1342.     $("#m_index_mode_vacation_time_time_info_1").hide();
  1343.     }
  1344. });
  1345.  
  1346. $("#m_index_mode_vacation_notice").change(function(){
  1347.     if ($("#m_start__mode_vacation_dlg").is(":visible")){
  1348.         if ($("#m_index_mode_vacation_notice").prop("checked")){
  1349.             $("#m_index_mode_vacation_time_time_info_1").hide();
  1350.             $("#m_index_mode_vacation_time_time_lbl").hide();
  1351.             $("#m_index_mode_vacation_time").parent().hide();
  1352.             $("#m_index_mode_vacation_li").css("display","none");
  1353.             $("#m_index_mode_vacation_set_btn").css("background-color","");
  1354.             $("#m_index_mode_vacation_set_btn").css("color","#000000");
  1355.             $("#m_index_mode_vacation_mod_btn").css("background-color","");
  1356.             $("#m_index_mode_vacation_mod_btn").css("color","#000000");
  1357.         }else{
  1358.             $("#m_index_mode_vacation_time").parent().show();
  1359.             $("#m_index_mode_vacation_time_time_lbl").show();
  1360.             $("#m_index_mode_vacation_li").css("display","");
  1361.            
  1362.             if (!validate($("#m_index_mode_vacation_time"), m_start__mode_vacation_day_min,  m_start__mode_vacation_day_max,  {})){
  1363.                 $("#m_index_mode_vacation_set_btn").css("background-color","#CCCCCC");
  1364.                 $("#m_index_mode_vacation_set_btn").css("color","#D9D9D9");
  1365.                 $("#m_index_mode_vacation_mod_btn").css("background-color","#CCCCCC");
  1366.                 $("#m_index_mode_vacation_mod_btn").css("color","#D9D9D9");
  1367.             }else{
  1368.                 $("#m_index_mode_vacation_set_btn").css("background-color","");
  1369.                 $("#m_index_mode_vacation_set_btn").css("color","#000000");
  1370.                 $("#m_index_mode_vacation_mod_btn").css("background-color","");
  1371.                 $("#m_index_mode_vacation_mod_btn").css("color","#000000");
  1372.             }
  1373.         }
  1374.     }
  1375. });
  1376.  
  1377. $("#m_index_mode_vacation_time").on("input", function(){
  1378.     if ($("#m_start__mode_vacation_dlg").is(":visible")){
  1379.         if (!validate($("#m_index_mode_vacation_time"), m_start__mode_vacation_day_min,  m_start__mode_vacation_day_max,  {})){
  1380.             $("#m_index_mode_vacation_set_btn").css("background-color","#CCCCCC");
  1381.             $("#m_index_mode_vacation_set_btn").css("color","#D9D9D9");
  1382.             $("#m_index_mode_vacation_mod_btn").css("background-color","#CCCCCC");
  1383.             $("#m_index_mode_vacation_mod_btn").css("color","#D9D9D9");
  1384.         }else{
  1385.             $("#m_index_mode_vacation_set_btn").css("background-color","");
  1386.             $("#m_index_mode_vacation_set_btn").css("color","#000000");
  1387.             $("#m_index_mode_vacation_mod_btn").css("background-color","");
  1388.             $("#m_index_mode_vacation_mod_btn").css("color","#000000");
  1389.         }
  1390.     }
  1391. });
  1392.  
  1393. /* ustawianie parametrów w trybie wakacyjnym po ich walidacji i powrót do panelu menu */
  1394. function m_start__mode_vacation_set(param) {
  1395.   var validation = true;
  1396.   if(!validate($("#m_index_mode_vacation_time"), m_start__mode_vacation_day_min,  m_start__mode_vacation_day_max,  {})) { validation = false; }
  1397.     var notice = $('#m_index_mode_vacation_notice').prop("checked");
  1398.    
  1399.     var time   = $("#m_index_mode_vacation_time").val()
  1400.     var reg_time = getReg("0af6", "7");
  1401.     var reg_stat = regToInt(getReg("0b55", "1")["0b55"]);
  1402.     var timer    = "ffff,ffff,ffff,ffff,ffff,ffff";
  1403.    
  1404.     var year     = regToInt(reg_time['0afc']) + 2000;
  1405.     var month    = regToInt(reg_time['0afb']);
  1406.     var day      = regToInt(reg_time['0afa']);
  1407.     var hour     = regToInt(reg_time['0af8']);
  1408.     var minute   = regToInt(reg_time['0af7']);
  1409.     var second   = regToInt(reg_time['0af6']);
  1410.     var date     = new Date(year, month, day, hour, minute, second, 0);
  1411.    
  1412.     if(validation && !notice && param){
  1413.         var date_new = new Date(date.valueOf() + (parseInt(time) * 86400000) - 86400000);
  1414.         timer        = regToHex(59) + ',' + regToHex(23) + ',' + regToHex(date_new.getDate()) + ',' + regToHex(date_new.getMonth()) + ',' + regToHex(date_new.getFullYear() - 2000);
  1415.         setReg("0b6c", timer);
  1416.         setReg("0b55", regToHex(setBit(reg_stat, 7, param)));  
  1417.         m_start__mode_vacation_last_day = $("#m_index_mode_vacation_time").val();
  1418.         window.location.href = "#start";
  1419.         showLoadingSpinner();
  1420.     }else if (notice && param){
  1421.         timer = "0000,0000,0000,0000,0000";
  1422.         setReg("0b6c", timer);
  1423.         setReg("0b55", regToHex(setBit(reg_stat, 7, param)));  
  1424.         window.location.href = "#start";
  1425.         showLoadingSpinner();
  1426.     }else if (!param){
  1427.         var date_new = new Date(date.valueOf());
  1428.         timer        = regToHex(date_new.getMinutes()) + ',' + regToHex(date_new.getHours()) + ',' + regToHex(date_new.getDate()) + ',' + regToHex(date_new.getMonth()) + ',' + regToHex(date_new.getFullYear() - 2000);
  1429.         setReg("0b6c", timer);
  1430.         setReg("0b55", regToHex(setBit(reg_stat, 7, param)));  
  1431.         window.location.href = "#start";
  1432.         showLoadingSpinner();
  1433.     }
  1434. }
  1435.  
  1436. /* załadowanie parametrów trybu wakacyjnego i ich wyświetlenie */
  1437. function m_start__mode_vacation_show() {
  1438.   var reg_stat                  = regToInt(getReg("0b55", "1")["0b55"]);
  1439.   var reg_time                  = getReg("0b6c", "5");
  1440.  
  1441.            
  1442.   $("#m_index_mode_vacation_time_time_info_1").text("zakres: " + " 1 ÷ 60 " + "[dni]");  
  1443.   $("#m_index_mode_vacation_time").val(m_start__mode_vacation_last_day);
  1444.  
  1445.   m_start__mode_vacation_stat   = getBit(reg_stat, 7);
  1446.  
  1447.   m_start__mode_vacation_minute = regToInt(reg_time["0b6c"]);
  1448.   m_start__mode_vacation_hour   = regToInt(reg_time["0b6d"]);
  1449.   m_start__mode_vacation_day    = regToInt(reg_time["0b6e"]);
  1450.   m_start__mode_vacation_month  = regToInt(reg_time["0b6f"]);
  1451.   m_start__mode_vacation_year   = regToInt(reg_time["0b70"]) + 2000;
  1452.  
  1453.   m_start__mode_vacation_refresh();
  1454. }
  1455.  
  1456. /* odświeżenie parametrów trybu wakacyjnego */
  1457. function m_start__mode_vacation_refresh() {
  1458.   var end_date = m_start__mode_vacation_year                    + '-' +
  1459.                  ('0' + m_start__mode_vacation_month).slice(-2) + '-' +
  1460.                  ('0' + m_start__mode_vacation_day).slice(-2)   + ' ' +
  1461.                  ('0' + m_start__mode_vacation_hour).slice(-2)  + ':' +
  1462.                  ('0' + m_start__mode_vacation_minute).slice(-2);
  1463.  
  1464.   var vacation_notice       = $('#m_index_mode_vacation_notice');
  1465.   var vacation_on_btn       = $("#m_index_mode_vacation_set_btn"); // handle to vacation on btn
  1466.   var vacation_off_btn      = $("#m_index_mode_vacation_clr_btn"); // handle to vacation off btn
  1467.   var vacation_mod_btn      = $("#m_index_mode_vacation_mod_btn"); // handle to vacation modify btn
  1468.  
  1469.   var vacation_time_li      = $("#m_index_mode_vacation_time_li");
  1470.   var vacation_time_off     = $("#m_index_mode_vacation_time_off");
  1471.   var vacation_time_off_lbl = $("#m_index_mode_vacation_time_off_lbl");
  1472.  
  1473.   /* jezeli aktywny tryb do odwolania */
  1474.   if(m_start__mode_vacation_hour == "0000") {
  1475.      vacation_notice.prop("checked", true).checkboxradio("refresh");
  1476.   } else {
  1477.      vacation_notice.prop("checked", false).checkboxradio("refresh");
  1478.   }
  1479.  
  1480.   if(m_start__mode_vacation_stat & (m_start__mode_vacation_hour != "0000")) {
  1481.     vacation_time_off.attr("style", "display:yes");
  1482.     vacation_time_off_lbl.text(end_date);
  1483.   } else {
  1484.     vacation_time_off.attr("style", "display:none");
  1485.   }
  1486.  
  1487.   if(m_start__mode_vacation_stat) {
  1488.     vacation_on_btn.attr("style", "display:none");
  1489.     vacation_mod_btn.attr("style", "display:yes");
  1490.     vacation_off_btn.show();
  1491.   } else {
  1492.     vacation_on_btn.attr("style", "display:yes");
  1493.     vacation_mod_btn.attr("style", "display:none");
  1494.     vacation_off_btn.hide();
  1495.   }
  1496.  
  1497.     if ($("#m_index_mode_vacation_notice").prop("checked")){
  1498.         $("#m_index_mode_vacation_time_time_info_1").hide();
  1499.         $("#m_index_mode_vacation_time_time_lbl").hide();
  1500.         $("#m_index_mode_vacation_time").parent().hide();
  1501.         $("#m_index_mode_vacation_li").css("display","none");
  1502.         $("#m_index_mode_vacation_set_btn").css("background-color","");
  1503.         $("#m_index_mode_vacation_set_btn").css("color","#000000");
  1504.         $("#m_index_mode_vacation_mod_btn").css("background-color","");
  1505.         $("#m_index_mode_vacation_mod_btn").css("color","#000000");
  1506.     }else{
  1507.         $("#m_index_mode_vacation_time").parent().show();
  1508.         $("#m_index_mode_vacation_time_time_lbl").show();
  1509.         $("#m_index_mode_vacation_li").css("display","");
  1510.            
  1511.         if (!validate($("#m_index_mode_vacation_time"), m_start__mode_vacation_day_min,  m_start__mode_vacation_day_max,  {})){
  1512.             $("#m_index_mode_vacation_set_btn").css("background-color","#CCCCCC");
  1513.             $("#m_index_mode_vacation_set_btn").css("color","#D9D9D9");
  1514.             $("#m_index_mode_vacation_mod_btn").css("background-color","#CCCCCC");
  1515.             $("#m_index_mode_vacation_mod_btn").css("color","#D9D9D9");
  1516.         }else{
  1517.             $("#m_index_mode_vacation_set_btn").css("background-color","");
  1518.             $("#m_index_mode_vacation_set_btn").css("color","#000000");
  1519.             $("#m_index_mode_vacation_mod_btn").css("background-color","");
  1520.             $("#m_index_mode_vacation_mod_btn").css("color","#000000");
  1521.         }
  1522.     }  
  1523. }
  1524.  
  1525.  
  1526. </script>
  1527. <!-- /manual -->
  1528. <div data-role="dialog" id="m_start__mode_manual_dlg" data-close-btn="right">
  1529.   <div data-role="header"><h1><a onclick="showLoadingSpinner();" href="#about" style="color:inherit; text-decoration:none;" data-rel="dialog" data-transition="pop">tryb ręczny</a></h1></div>
  1530.   <div data-role="content">
  1531.     <ul data-role="listview" data-inset="true">
  1532.       <li class="ui-body">
  1533.             <label for="setting_hand_temp">Temperatura: </label>
  1534.            
  1535.             <label id="setting_hand_temp_info1" style="display:none;">zakres: </label>
  1536.            
  1537.             <input id="m_start_mode_manual_temp" data-clear-btn="false" name="setting_hand_temp" type="number" step="0.1">
  1538.       </li>
  1539.     </ul>
  1540.     <a id="m_start_mode_manual_set_btn" data-role="button" onclick="m_start__mode_hand_set(true);">uruchom</a>
  1541.     <a id="m_start_mode_manual_clr_btn" data-role="button" onclick="m_start__mode_hand_set(false);">zakończ</a>
  1542.   </div>
  1543. </div>
  1544.  
  1545. <script>$(document).on("pagechange", function () { if($("#m_start__mode_manual_dlg").is(":visible")) { m_start__mode_hand_show(); hideLoadingSpinner();}});
  1546.  
  1547. /* zmienne walidacyjne */
  1548. var mode_manual_temp_min = 0;
  1549. var mode_manual_temp_max = 0;
  1550.  
  1551. /* eventy na inputach - wyświetlanie zakresu oraz dynamiczna walidacja */ 
  1552. $("#m_start_mode_manual_temp").on("focusin", function(){
  1553.     if ($("#m_start__mode_manual_dlg").is(":visible")){
  1554.     $("#setting_hand_temp_info1").show();
  1555.     }
  1556. });
  1557.  
  1558. $("#m_start_mode_manual_temp").on("focusout", function(){
  1559.     if ($("#m_start__mode_manual_dlg").is(":visible")){
  1560.     $("#setting_hand_temp_info1").hide();
  1561.     }
  1562. });
  1563.  
  1564. $("#m_start_mode_manual_temp").on("input", function(){
  1565.     if ($("#m_start__mode_manual_dlg").is(":visible")){
  1566.         if (!validate($("#m_start_mode_manual_temp"), mode_manual_temp_min,  mode_manual_temp_max,  {})){
  1567.             $("#m_start_mode_manual_set_btn").css("background-color","#CCCCCC");
  1568.             $("#m_start_mode_manual_set_btn").css("color","#D9D9D9");
  1569.         }else{
  1570.             $("#m_start_mode_manual_set_btn").css("background-color","");
  1571.             $("#m_start_mode_manual_set_btn").css("color","#000000");
  1572.         }
  1573.     }
  1574. });
  1575.  
  1576. /* ustawianie parametrów w trybie ręcznym po ich walidacji i powrót do panelu menu */
  1577. function m_start__mode_hand_set(param) {
  1578.   var validation = true;
  1579.  
  1580.   if(!validate($("#m_start_mode_manual_temp"), mode_manual_temp_min,  mode_manual_temp_max,  {})) { validation = false; }
  1581.  
  1582.   if(validation && param) {
  1583.     var reg_stat = regToInt(getReg("0b55", "1")["0b55"]);
  1584.     var temp     = parseInt($('#m_start_mode_manual_temp').val() * 10);
  1585.     setReg("0b8d", regToHex(temp));
  1586.     setReg("0b55", regToHex(setBit(reg_stat, 9, param)));
  1587.     window.location.href = "#start";
  1588.     showLoadingSpinner();
  1589.   } else if (!param){
  1590.     var reg_stat = regToInt(getReg("0b55", "1")["0b55"]);
  1591.     setReg("0b55", regToHex(setBit(reg_stat, 9, param)));
  1592.     window.location.href = "#start";
  1593.     showLoadingSpinner();
  1594.   }
  1595. }
  1596.  
  1597. /* załadowanie parametrów trybu ręcznego  i ich wyświetlenie */
  1598. function m_start__mode_hand_show() {
  1599.   var reg_val = getReg("0bcc", "2");
  1600.   mode_manual_temp_min = parseInt(regToInt(reg_val["0bcc"]))/10;
  1601.   mode_manual_temp_max = parseInt(regToInt(reg_val["0bcd"]))/10;
  1602.    
  1603.   var text = "zakres: " + mode_manual_temp_min + " ÷ " + mode_manual_temp_max + " " + "[°C]";
  1604.   $("#setting_hand_temp_info1").text(text.replace(/\./g,","));
  1605.    
  1606.   var reg_stat = regToInt(getReg("0b55", "1")["0b55"]);
  1607.   var reg_temp = regToInt(getReg("0b8d", "1")["0b8d"]) / 10;
  1608.   var status   = getBit(reg_stat, 9);
  1609.  
  1610.   $("#m_start_mode_manual_temp").val(reg_temp.toFixed(1));
  1611.  
  1612.   var hand_set_btn = $("#m_start_mode_manual_set_btn"); // handle to hand on btn
  1613.   var hand_clr_btn = $("#m_start_mode_manual_clr_btn"); // handle to hand off btn
  1614.  
  1615.   if(status) {
  1616.     $("#m_start_mode_manual_set_btn").show();
  1617.     $("#m_start_mode_manual_clr_btn").show();
  1618.     $("#m_start_mode_manual_set_btn").text("modyfikuj");
  1619.   } else {
  1620.     $("#m_start_mode_manual_set_btn").show();
  1621.     $("#m_start_mode_manual_clr_btn").hide();
  1622.     $("#m_start_mode_manual_set_btn").text("uruchom");
  1623.   }
  1624.  
  1625.   if (!validate($("#m_start_mode_manual_temp"), mode_manual_temp_min,  mode_manual_temp_max,  {})){
  1626.         $("#m_start_mode_manual_set_btn").css("background-color","#CCCCCC");
  1627.         $("#m_start_mode_manual_set_btn").css("color","#D9D9D9");
  1628.   }else{
  1629.         $("#m_start_mode_manual_set_btn").css("background-color","");
  1630.         $("#m_start_mode_manual_set_btn").css("color","#000000");
  1631.   }
  1632. }
  1633.  
  1634. function m_start__mode_hand_refresh() {
  1635.  
  1636. //  var hand_notice       = $('#m_index_mode_hand_notice');
  1637. //  var hand_on_btn       = $("#m_index_mode_hand_set_btn"); // handle to hand on btn
  1638. //  var hand_off_btn      = $("#m_index_mode_hand_clr_btn"); // handle to hand off btn
  1639. //  var hand_mod_btn      = $("#m_index_mode_hand_mod_btn"); // handle to hand modify btn
  1640.  
  1641. //  var hand_time_li      = $("#m_index_mode_hand_time_li");
  1642. //  var hand_time_off     = $("#m_index_mode_hand_time_off");
  1643. //  var hand_time_off_lbl = $("#m_index_mode_hand_time_off_lbl");
  1644.  
  1645.   /* jezeli aktywny tryb do odwolania */
  1646. //  if(m_start__mode_hand_hour == "0000") {
  1647. //     hand_notice.prop("checked", true).checkboxradio("refresh");
  1648. //  } else {
  1649. //     hand_notice.prop("checked", false).checkboxradio("refresh");
  1650. //  }
  1651.  
  1652. //  if(m_start__mode_hand_stat & (m_start__mode_hand_hour != "0000")) {
  1653. //    hand_time_off.attr("style", "display:yes");
  1654. //    hand_time_off_lbl.text(end_date);
  1655. //  } else {
  1656. //    hand_time_off.attr("style", "display:none");
  1657. //  }
  1658.  
  1659. //  if(m_start__mode_hand_stat) {
  1660. //    hand_on_btn.attr("style", "display:none");
  1661. //    hand_mod_btn.attr("style", "display:yes");
  1662. //    hand_off_btn.removeClass("ui-disabled");
  1663. //  } else {
  1664. //    hand_on_btn.attr("style", "display:yes");
  1665. //    hand_mod_btn.attr("style", "display:none");
  1666. //    hand_off_btn.addClass("ui-disabled");
  1667. //  }
  1668. }
  1669.  
  1670.  
  1671. </script>
  1672.  
  1673.  
  1674.  
  1675.  
  1676. <!-- page: #settings -->
  1677. <div data-role="page" id="settings" data-theme="a">
  1678.  
  1679.   <div data-role="header">
  1680.     <h1><a onclick="showLoadingSpinner();" href="#about" style="color:inherit; text-decoration:none;" data-rel="dialog" data-transition="pop">ustawienia</a></h1>
  1681.     <a href="#start" class="ui-btn ui-shadow ui-corner-all ui-icon-home ui-btn-icon-notext ui-btn-inline" onclick="showLoadingSpinner();">&nbsp;</a>
  1682.     <a href="#start" class="ui-btn ui-shadow ui-corner-all ui-icon-carat-r ui-btn-icon-notext ui-btn-inline" onclick="showLoadingSpinner();">&nbsp;</a>
  1683.   </div>
  1684.  
  1685.   <div role="main" class="ui-body">
  1686.     <a onclick="showLoadingSpinner();" id="settings_room_temp_btn" href="#settings_room_temp" style="display:none;" class="ui-btn ui-shadow ui-corner-all">temperatury pokojowe</a>
  1687.     <a onclick="showLoadingSpinner();" id="settings_boil_temp_btn" href="#settings_boil_temp" style="display:none;" class="ui-btn ui-shadow ui-corner-all">temperatura cwu</a>
  1688.     <a onclick="showLoadingSpinner();" id="settings_prg_co_btn"href="#settings_prg_co" style="display:none;" class="ui-btn ui-shadow ui-corner-all">programator co</a>
  1689.     <a onclick="showLoadingSpinner();" id="settings_prg_buffer_btn"href="#settings_prg_co" style="display:none;" class="ui-btn ui-shadow ui-corner-all">programator bufora</a>
  1690.     <a onclick="showLoadingSpinner();" id="settings_prg_boil_btn" style="display:none;" href="#settings_prg_boil" class="ui-btn ui-shadow ui-corner-all">programator cwu</a>
  1691.     <a onclick="showLoadingSpinner();" id="settings_prg_circ_btn" style="display:none;" href="#settings_prg_circ" class="ui-btn ui-shadow ui-corner-all">programator cyrkulacji</a>
  1692.     <a onclick="showLoadingSpinner();" id="settings_disinfection_btn" style="display:none;" href="#settings_disinfection" class="ui-btn ui-shadow ui-corner-all">dezynfekcja zasobnika</a>
  1693.     <a id="" href="#settings_date" class="ui-btn ui-shadow ui-corner-all" onclick="set_date_ref(); showLoadingSpinner();">data i czas</a>
  1694.     <a onclick="showLoadingSpinner();" id="" href="#settings_system" class="ui-btn ui-shadow ui-corner-all">system</a>
  1695.     <!--<a href="#settings_co" class="ui-btn ui-shadow ui-corner-all">Ustawienia regulatora pogodowego</a>-->
  1696.   </div>
  1697.  
  1698. </div><!-- /page settings -->
  1699.  
  1700. <script>$(document).on("pagechange", function () { if($("#settings").is(":visible")) { setSettings(); hideLoadingSpinnerWithDelay(); }});
  1701.  
  1702. /* wczytanie menu ustawień */
  1703. function setSettings() {
  1704.   reg  = getReg("0b54", "2");
  1705.   cfg1 = regToInt(reg["0b55"]);
  1706.   cfg2 = regToInt(reg["0b54"]);
  1707.   buff = regToInt(getReg("0b8a", "1")["0b8a"]);
  1708.  
  1709.  
  1710.   if(getBit(cfg1, 4) && !getBit(cfg1, 2)) {
  1711.     $("#settings_boil_temp_btn").attr("style", "display:yes;");
  1712.     $("#settings_prg_boil_btn").attr("style", "display:yes;");
  1713.     $("#settings_disinfection_btn").attr("style", "display:yes;");
  1714.   }
  1715.  
  1716.   if(getBit(cfg2, 2)) {
  1717.     $("#settings_prg_circ_btn").attr("style", "display:yes;");
  1718.   }
  1719.  
  1720.   switch(buff) {
  1721.     case 0:
  1722.       if(!getBit(cfg1, 1)) {
  1723.         $("#settings_room_temp_btn").attr("style", "display:yes;");
  1724.         $("#settings_prg_co_btn").attr("style", "display:yes;");
  1725.       } else {
  1726.         $("#settings_room_temp_btn").attr("style", "display:none;");
  1727.         $("#settings_prg_co_btn").attr("style", "display:none;");
  1728.       }
  1729.       break;
  1730.     case 1:
  1731.       $("#settings_prg_co_btn").attr("style", "display:yes;");
  1732.       $("#settings_prg_buffer_btn").attr("style", "display:none;");
  1733.       $("#settings_room_temp_btn").attr("style", "display:yes;");
  1734.       break;
  1735.     case 2:
  1736.       $("#settings_prg_co_btn").attr("style", "display:none;");
  1737.       $("#settings_prg_buffer_btn").attr("style", "display:yes;");
  1738.       $("#settings_room_temp_btn").attr("style", "display:yes;");
  1739.       break;
  1740.     default:
  1741.       $("#settings_prg_co_btn").attr("style", "display:none;");
  1742.       $("#settings_prg_buffer_btn").attr("style", "display:none;");
  1743.       $("#settings_room_temp_btn").attr("style", "display:none;");
  1744.   }
  1745. }
  1746. </script>
  1747.  
  1748. <!-- page: #settings_disinfection -->
  1749. <div data-role="page" id="settings_disinfection" data-theme="a">
  1750.  
  1751.   <div data-role="header">
  1752.     <h1><a onclick="showLoadingSpinner();" href="#about" style="color:inherit; text-decoration:none;" data-rel="dialog" data-transition="pop">Dezynfekcja</a></h1>
  1753.     <a href="#start" class="ui-btn ui-shadow ui-corner-all ui-icon-home ui-btn-icon-notext ui-btn-inline" onclick="showLoadingSpinner();">&nbsp;</a>
  1754.     <a href="#settings" class="ui-btn ui-shadow ui-corner-all ui-icon-carat-r ui-btn-icon-notext ui-btn-inline">&nbsp;</a>
  1755.   </div>
  1756.  
  1757.   <div role="main">
  1758.     <div class="ui-body">
  1759.       <ul data-role="listview" data-inset="true">
  1760.         <li class="ui-body">
  1761.            <label for="settings_disinfection_temp">Temperatura dezynfekcji:</label>
  1762.             <label id="sett_dis_info_1" style="display:none;">zakres: </label>
  1763.            <input data-clear-btn="false" name="settings_disinfection_temp" id="settings_disinfection_temp" onchange="sett_disinfection_modify = true;" type="number">
  1764.         </li>
  1765.         <li class="ui-body">
  1766.           <label for="settings_disinfection_day">Dzień tygodnia</label>
  1767.           <select name="settings_disinfection_day" id="settings_disinfection_day" onchange="sett_disinfection_modify = true;">
  1768.             <option value="0">poniedziałek</option>
  1769.             <option value="1">wtorek</option>
  1770.             <option value="2">Środa</option>
  1771.             <option value="3">Czwartek</option>
  1772.             <option value="4">piątek</option>
  1773.             <option value="5">sobota</option>
  1774.             <option value="6">niedziela</option>
  1775.           </select>
  1776.         </li>
  1777.         <li class="ui-body">
  1778.           <label for="settings_disinfection_hour">Godzina dezynfekcji</label>
  1779.           <input name="settings_disinfection_hour" id="settings_disinfection_hour" type="time" onchange="sett_disinfection_modify = true;">
  1780.         </li>
  1781.         <li class="ui-body">
  1782.            <label for="settings_disinfection_time">Czas trwania dezynfekcji</label>
  1783.             <label id="sett_dis_info_2" style="display:none;">zakres: </label>
  1784.            <input data-clear-btn="false" name="settings_disinfection_time" id="settings_disinfection_time" onchange="sett_disinfection_modify = true;">
  1785.         </li>
  1786.         <li class="ui-body">
  1787.           <label><input id="settings_disinfection_auto" type="checkbox" onchange="sett_disinfection_modify = true;">Praca automatyczna</label>
  1788.         </li>
  1789.         <li class="ui-body">
  1790.           <label><input id="settings_disinfection_circ" type="checkbox" onchange="sett_disinfection_modify = true;">Z cyrkulacją</label>
  1791.         </li>
  1792.         <li class="ui-body">
  1793.           <label><input id="settings_disinfection_now" type="checkbox" onchange="sett_disinfection_modify = true;">Natychmiastowy start</label>
  1794.         </li>
  1795.       </ul>
  1796.  
  1797.       <a id="sett_disinfection_save" data-direction="reverse" class="ui-btn ui-shadow ui-corner-all ui-btn-b" onclick="setDisinfection();">zapisz i zamknij okno</a>
  1798.  
  1799.     </div>
  1800.   </div>
  1801.  
  1802. </div>
  1803.  
  1804. <script>$(document).on("pagechange", function () { if($("#settings_disinfection").is(":visible")) { refSettDis(); hideLoadingSpinner(); }});
  1805.  
  1806. /* zmienne walidacyjne */
  1807.   var sett_disinfection_modify     = false;
  1808.   var sett_disinfection_temp_min   = 0;
  1809.   var sett_disinfection_temp_max   = 0;
  1810.   var sett_disinfection_time_min   = 0;
  1811.   var sett_disinfection_time_max   = 0;
  1812.  
  1813. /* eventy na inputach - wyświetlanie zakresu oraz dynamiczna walidacja */
  1814. $("#settings_disinfection_temp").on("focusin", function(){
  1815.     if ($("#settings_disinfection").is(":visible")){
  1816.     $("#sett_dis_info_1").show();
  1817.     }
  1818. });
  1819.  
  1820. $("#settings_disinfection_temp").on("focusout", function(){
  1821.     if ($("#settings_disinfection").is(":visible")){
  1822.     $("#sett_dis_info_1").hide();
  1823.     }
  1824. });  
  1825.  
  1826. $("#settings_disinfection_time").on("focusin", function(){
  1827.     if ($("#settings_disinfection").is(":visible")){
  1828.     $("#sett_dis_info_2").show();
  1829.     }
  1830. });
  1831.  
  1832. $("#settings_disinfection_time").on("focusout", function(){
  1833.     if ($("#settings_disinfection").is(":visible")){
  1834.     $("#sett_dis_info_2").hide();
  1835.     }
  1836. });  
  1837.  
  1838. $("#settings_disinfection_temp").on("input", function(){
  1839.     if ($("#settings_disinfection").is(":visible")){
  1840.         check_validation_sett_dis();
  1841.     }
  1842. });  
  1843.  
  1844. $("#settings_disinfection_time").on("input", function(){
  1845.     if ($("#settings_disinfection").is(":visible")){
  1846.         check_validation_sett_dis();
  1847.     }
  1848. });  
  1849.  
  1850. $("#settings_disinfection_hour").on("change", function(){
  1851.         check_validation_sett_dis();
  1852. });  
  1853.  
  1854. /* funckja walidująca poprawność kontrolek */
  1855. function check_validation_sett_dis(){
  1856.         var validation = true;
  1857.        
  1858.         if (!validate($("#settings_disinfection_temp"), sett_disinfection_temp_min,  sett_disinfection_temp_max,  {})){
  1859.             validation = false;
  1860.         }
  1861.  
  1862.         if (!validate($("#settings_disinfection_time"), sett_disinfection_time_min,  sett_disinfection_time_max,  {})){
  1863.             validation = false;
  1864.         }
  1865.        
  1866.         if ($("#settings_disinfection_hour").val() == ""){
  1867.             $("#settings_disinfection_hour").attr("style", "color: black; font-weight: bold;");
  1868.             $("#settings_disinfection_hour").css("background-color","#FF9999");
  1869.             $("#settings_disinfection_hour").css("border","2px solid red")         
  1870.             validation = false;
  1871.         }
  1872.         else{
  1873.             $("#settings_disinfection_hour").attr("style", "color: black; font-weight: normal;");
  1874.             $("#settings_disinfection_hour").css("background-color", "transparent");
  1875.             $("#settings_disinfection_hour").css("border","2px solid transparent");        
  1876.         }
  1877.  
  1878.         if (validation){
  1879.             $("#sett_disinfection_save").css("background-color","");
  1880.             $("#sett_disinfection_save").css("color","#000000");
  1881.         }
  1882.         else{
  1883.             $("#sett_disinfection_save").css("background-color","#CCCCCC");
  1884.             $("#sett_disinfection_save").css("color","#D9D9D9");
  1885.         }
  1886.        
  1887.        
  1888.         return validation;
  1889. }  
  1890.  
  1891. /* ładowanie zmiennych i zakresów walidacyjnych */
  1892.   function refSettDis() {
  1893.     /* pobranie dopuszczalnych zakresow dla temperatury i czasu */
  1894.     rang = getReg("0bda", "4");
  1895.     sett_disinfection_temp_min = parseInt(regToInt(rang["0bda"])/10);
  1896.     sett_disinfection_temp_max = parseInt(regToInt(rang["0bdb"])/10);
  1897.     sett_disinfection_time_min = regToInt(rang["0bdc"]);
  1898.     sett_disinfection_time_max = regToInt(rang["0bdd"]);
  1899.  
  1900.     var text = "zakres: " + sett_disinfection_temp_min + " ÷ " + sett_disinfection_temp_max + " " + "[°C]";
  1901.     $("#sett_dis_info_1").text(text.replace(/\./g,","));    
  1902.     text = "zakres: " + sett_disinfection_time_min + " ÷ " + sett_disinfection_time_max + " " + "[min]";
  1903.     $("#sett_dis_info_2").text(text.replace(/\./g,","));    
  1904.    
  1905.     res  = getReg("0b54", "26");
  1906.     $("#settings_disinfection_time").val(regToInt(res['0b79']));
  1907.  
  1908.     var hour = res['0b78'];
  1909.     hour = parseInt('0x' + hour.substring(2) + hour.substring(-2, 2));
  1910.     var H = '0'.repeat(2 - parseInt(hour / 60).toString().length) + parseInt(hour / 60).toString();
  1911.     var m = '0'.repeat(2 - (hour % 60).toString().length) + (hour % 60).toString();
  1912.     $("#settings_disinfection_hour").val(H+":"+m);
  1913.  
  1914.     $("#settings_disinfection_temp").val(parseInt(regToInt(res['0b76']) / 10));
  1915.     $("#settings_disinfection_day").val(parseInt(regToInt(res['0b77']))).change();
  1916.  
  1917.     $('#settings_disinfection_circ').prop("checked", getRegBit("0b54", 5)).checkboxradio("refresh");
  1918.     $('#settings_disinfection_now').prop("checked", getRegBit("0b54", 6)).checkboxradio("refresh");
  1919.     $('#settings_disinfection_auto').prop("checked", getRegBit("0b54", 7)).checkboxradio("refresh");
  1920.    
  1921.     sett_disinfection_modify = false;
  1922.     check_validation_sett_dis();
  1923.   }
  1924.  
  1925. /* ustawianie parametrów po dokonaniu walidacji, po sukcesie powrót do menu opcji */
  1926.   function setDisinfection() {
  1927.  
  1928.     var _temp = parseInt($("#settings_disinfection_temp").val() * 10);
  1929.     var _day  = parseInt($("#settings_disinfection_day").val());
  1930.     var _hour = (parseInt($("#settings_disinfection_hour").val().split(":")[0]) * 60) + parseInt($("#settings_disinfection_hour").val().split(":")[1]);
  1931.     var _time = parseInt($("#settings_disinfection_time").val());
  1932.     var _auto = $('#settings_disinfection_auto').prop("checked");
  1933.     var _circ = $('#settings_disinfection_circ').prop("checked");
  1934.     var _now  = $('#settings_disinfection_now').prop("checked");
  1935.  
  1936.     if(check_validation_sett_dis()) {
  1937.       param = regToHex(_temp, false) + "," + regToHex(_day, false) + "," + regToHex(_hour, false) + "," + regToHex(_time, false);
  1938.       setReg("0b76", param);
  1939.       setRegBit("0b54", 5, _circ);
  1940.       setRegBit("0b54", 6, _now);
  1941.       setRegBit("0b54", 7, _auto);
  1942.      
  1943.       window.location.href = "#settings";
  1944.     }
  1945.   }</script>
  1946. <!-- /page settings_disinfection -->
  1947.  
  1948. <!-- page: #settings_date -->
  1949. <div data-role="page" id="settings_date" data-theme="a">
  1950.  
  1951.   <div data-role="header">
  1952.     <h1><a onclick="showLoadingSpinner();" href="#about" style="color:inherit; text-decoration:none;" data-rel="dialog" data-transition="pop">data i czas</a></h1>
  1953.     <a href="#start" class="ui-btn ui-shadow ui-corner-all ui-icon-home ui-btn-icon-notext ui-btn-inline" onclick="showLoadingSpinner();">&nbsp;</a>
  1954.     <a href="#settings" class="ui-btn ui-shadow ui-corner-all ui-icon-carat-r ui-btn-icon-notext ui-btn-inline">&nbsp;</a>
  1955.   </div>
  1956.  
  1957.   <div role="main" id="settings_date_main">
  1958.     <div class="ui-body">
  1959.  
  1960.       <ul data-role="listview" data-inset="true">
  1961.         <li class="ui-body">
  1962.           <label for="settings_date_dev">Data i czas w urządzeniu</label>
  1963.           <input name="settings_date_dev" id="settings_date_dev" type="datetime" disabled="disabled">
  1964.         </li>
  1965.         <li class="ui-body">
  1966.           <label><input name="checkbox-0 " type="checkbox" id="setting_system_time">automatyczna zmiana czasu</label>
  1967.         </li>
  1968.       </ul>
  1969.  
  1970.       <a id="sett_date_save" data-direction="reverse" class="ui-btn ui-shadow ui-corner-all ui-btn-b" onclick="set_date_save();">zapisz i zamknij okno</a>
  1971.  
  1972.     </div>
  1973.   </div>
  1974.  
  1975. </div>
  1976. <script>$(document).on("pagechange", function () { if($("#settings_date").is(":visible")) { set_date_ref();  hideLoadingSpinner();}});
  1977.  
  1978. /* odświeżanie kontrolek */
  1979.   $(function() {
  1980.     setInterval(set_date_ref_timer, 10000);
  1981.   });
  1982.  
  1983. /* aktualizacja kontrolek z timera */
  1984.   function set_date_ref_timer() {
  1985.     if($("#settings_date").is(":visible") == true ) {
  1986.       refresh_date_view();
  1987.     }
  1988.   };
  1989.  
  1990.   function refresh_date_view(){
  1991.     var dt      = getReg("0af7", "6");
  1992.     var m = ('0' + regToInt(dt['0af7'])).slice(-2);
  1993.     var H = ('0' + regToInt(dt['0af8'])).slice(-2);
  1994.     var d = ('0' + regToInt(dt['0afa'])).slice(-2);
  1995.     var M = ('0' + regToInt(dt['0afb'])).slice(-2);
  1996.     var Y = parseInt(2000 + regToInt(dt['0afc']));      
  1997.     $("#settings_date_dev").val(Y + '-' + M + '-' + d + ' ' + H + ':' + m);  
  1998.   }
  1999.  
  2000.   /**
  2001.    *  @description  Funkcja pobierajaca czas z API i aktualizujaca kontrolki.
  2002.    */
  2003.   function set_date_ref() {
  2004.     var config2 = regToInt(getReg("0b54", "1")["0b54"]);
  2005.     var tc      = getBit(config2, 3);
  2006.     $('#setting_system_time').prop("checked", tc);
  2007.     refresh_date_view();
  2008.   };
  2009.  
  2010. /**
  2011.  *  @description  Funkcja zapisujaca i weryfikujaca dane.
  2012.  */
  2013. function set_date_save() {
  2014.         var auto    = $("#setting_system_time").prop("checked");
  2015.         var config2 = regToInt(getReg("0b54", "1")["0b54"])
  2016.         config2 = setBit(config2, 3, auto);
  2017.         setReg("0b54", regToHex(config2));                 
  2018.         window.location.href = "#settings";
  2019. }
  2020. </script>
  2021. <!-- /page settings_date -->
  2022.  
  2023. <!-- page: #settings_system -->
  2024. <div data-role="page" id="settings_system" data-theme="a">
  2025.   <div data-role="header">
  2026.     <h1><a onclick="showLoadingSpinner();" href="#about" style="color:inherit; text-decoration:none;" data-rel="dialog" data-transition="pop">system</a></h1>
  2027.     <a href="#start" class="ui-btn ui-shadow ui-corner-all ui-icon-home ui-btn-icon-notext ui-btn-inline" onclick="showLoadingSpinner();">&nbsp;</a>
  2028.     <a href="#settings" class="ui-btn ui-shadow ui-corner-all ui-icon-carat-r ui-btn-icon-notext ui-btn-inline">&nbsp;</a>
  2029.   </div>
  2030.  
  2031.   <div role="main">
  2032.     <div class="ui-body">
  2033.  
  2034.       <br>
  2035.       <ul data-role="listview" data-inset="true">
  2036.         <li class="ui-body">
  2037.           <table width="100%">
  2038.             <tr>
  2039.               <th>wersja programu MSK:</th>
  2040.               <td id="prg_ver" align="right">--</td>
  2041.            </tr>
  2042.            <tr>
  2043.              <th>wersja programu PW: </th>
  2044.              <td id="pw_ver" align="right">--</td>
  2045.            </tr>
  2046.            <tr>
  2047.              <th>maksymalna moc kotła: </th>
  2048.              <td id="pwr" align="right">--</td>
  2049.            </tr>
  2050.           </table>
  2051.         </li>
  2052.         <li class="ui-body">
  2053.           <div><a href="#settings_system_reset_dlg" class="ui-btn ui-icon-power ui-btn-icon-left">restart kotła</a></div>
  2054.         </li>
  2055.       </ul>
  2056.     </div>
  2057.   </div>
  2058. </div>
  2059.  
  2060. <div data-role="dialog" id="settings_system_reset_dlg" data-title="Are you sure?">
  2061.   <div data-role="header"><h1>restart</h1></div>
  2062.   <div data-role="content">
  2063.     <p>czy potwierdzasz restart kotła?</p>
  2064.     <a href="#" class="sure-do" data-role="button" data-theme="b" data-rel="back" onclick="setRegBit('0b53', 0, true);">tak</a>
  2065.     <a href="#" data-role="button" data-theme="c" data-rel="back">nie</a>
  2066.   </div>
  2067. </div>
  2068.  
  2069. <script>$(document).on("pagechange", function () { if($("#settings_system").is(":visible")) { get_system(); hideLoadingSpinner();}});
  2070.  
  2071. /* pobranie danych systemowych */
  2072.   function get_system() {
  2073.      
  2074.     /* power */
  2075.     var reg = getReg("0b34", "1");
  2076.     var pwr = regToInt(reg["0b34"]) / 10;
  2077.     $("#pwr").text(pwr + 'kW');
  2078.    
  2079.     /* time */
  2080.     $('#setting_system_time').prop("checked", getRegBit("0b54", 3));
  2081.      
  2082.     /* info */
  2083.     $.ajax({
  2084.       type: 'GET',
  2085.       url: "api/dev/" + id + "/info",
  2086.       timeout: 5000,
  2087.       dataType: 'json',
  2088.       async: false,
  2089.       success: function(data) {
  2090.         console.log(data);
  2091.         $("#prg_ver").text(data["info"]["prg_msk_type"] + "." + data["info"]["prg_msk_ver"]);
  2092.         $("#pw_ver").text(data["info"]["prg_pw_type"] + "." + data["info"]["prg_pw_ver"]);
  2093.       },
  2094.       error: function() {
  2095.         alert('HTML Error');
  2096.       }
  2097.     });
  2098.    
  2099.   }</script>
  2100. <!-- /page settings_system -->
  2101.  
  2102. <!-- page: #settings_room_temp -->
  2103. <div data-role="page" id="settings_room_temp" data-theme="a">
  2104.   <div data-role="header">
  2105.     <h1><a onclick="showLoadingSpinner();" href="#about" style="color:inherit; text-decoration:none;" data-rel="dialog" data-transition="pop">temperatury<br />
  2106. pokojowe</a></h1>
  2107.     <a href="#start" class="ui-btn ui-shadow ui-corner-all ui-icon-home ui-btn-icon-notext ui-btn-inline" onclick="showLoadingSpinner();">&nbsp;</a>
  2108.     <a class="ui-btn ui-shadow ui-corner-all ui-icon-carat-r ui-btn-icon-notext ui-btn-inline" href="#settings">&nbsp;</a>
  2109.   </div>
  2110.  
  2111.   <div role="main">
  2112.     <div class="ui-body">
  2113.       <ul data-role="listview" data-inset="true">
  2114.         <li class="ui-body">
  2115.           <table width="100%"><tr>
  2116.             <td width="20%"><img src="img/tecon.svg"></td>
  2117.             <td width="80%">
  2118.             <label for="settings_room_temp_economic">temperatura ekonomiczna</label>
  2119.             <label id="sett_room_temp_info_1" style="display:none;">zakres: </label>
  2120.             <input data-clear-btn="false" name="settings_room_temp_economic" id="settings_room_temp_economic" type="number" step="0.1"></td>
  2121.           </tr></table>
  2122.         </li>
  2123.         <li class="ui-body">
  2124.           <table width="100%"><tr>
  2125.             <td width="20%"><img src="img/tconf.svg"></td>
  2126.             <td width="80%">
  2127.             <label for="settings_room_temp_comfort">temperatura komfortowa</label>
  2128.             <label id="sett_room_temp_info_2" style="display:none;">zakres: </label>
  2129.             <input data-clear-btn="false" name="settings_room_temp_comfort" id="settings_room_temp_comfort" type="number" step="0.1"></td>
  2130.           </tr></table>
  2131.         </li>
  2132.         <li class="ui-body">
  2133.           <table width="100%"><tr>
  2134.             <td width="20%"><img src="img/tconfp.svg"></td>
  2135.             <td width="80%">
  2136.             <label for="settings_room_temp_comfort_plus">temperatura komfortowa +</label>
  2137.             <label id="sett_room_temp_info_3" style="display:none;">zakres: </label>
  2138.             <input data-clear-btn="false" name="settings_room_temp_comfort_plus" id="settings_room_temp_comfort_plus" type="number" step="0.1"></td>
  2139.           </tr></table>
  2140.         </li>
  2141.         <li class="ui-body">
  2142.           <table width="100%"><tr>
  2143.             <td width="20%"><img src="img/tconfm.svg"></td>
  2144.             <td width="80%">
  2145.             <label for="settings_room_temp_comfort_minus">temperatura komfortowa -</label>
  2146.             <label id="sett_room_temp_info_4" style="display:none;">zakres: </label>
  2147.             <input data-clear-btn="false" name="settings_room_temp_comfort_minus" id="settings_room_temp_comfort_minus" type="number" step="0.1"></td>
  2148.           </tr></table>
  2149.         </li>
  2150.         <li class="ui-body">
  2151.           <label for="settings_room_temp_party">temperatura dla trybu party</label>
  2152.           <select name="settings_room_temp_party" id="settings_room_temp_party">
  2153.             <option value="2">temperatura komfortowa</option>
  2154.             <option value="4">temperatura komfortowa +</option>
  2155.             <option value="3">temperatura komfortowa -</option>
  2156.           </select>
  2157.         </li>
  2158.         <li class="ui-body">
  2159.           <label for="settings_room_temp_vacation">temperatura dla trybu wakacje</label>
  2160.           <select name="settings_room_temp_vacation" id="settings_room_temp_vacation">
  2161.             <option value="1">temperatura przeciwzamrożeniowa</option>
  2162.             <option value="0">temperatura ekonomiczna</option>
  2163.           </select>
  2164.         </li>
  2165.       </ul>
  2166.       <p><a id="sett_room_temp_save" data-direction="reverse" class="ui-btn ui-shadow ui-corner-all ui-btn-b" onclick="save_settings_room_temp();">zapisz i zamknij okno</a></p>
  2167.     </div>
  2168.   </div>
  2169. </div>
  2170. <!-- /page settings -->
  2171.  
  2172. <script>$(document).on("pagechange", function () { if($("#settings_room_temp").is(":visible")) { get_settings_room_temp(); hideLoadingSpinner(); }});
  2173.  
  2174. /* zmienne walidacyjne */
  2175.   var sett_room_temp_min   = 0;
  2176.   var sett_room_temp_max   = 0;
  2177.  
  2178. /* eventy na inputach - wyświetlanie zakresu oraz dynamiczna walidacja */ 
  2179. $("#settings_room_temp_economic").on("focusin", function(){
  2180.     if ($("#settings_room_temp").is(":visible")){
  2181.         $("#sett_room_temp_info_1").show();
  2182.     }
  2183. });
  2184.  
  2185. $("#settings_room_temp_economic").on("focusout", function(){
  2186.     if ($("#settings_room_temp").is(":visible")){
  2187.         $("#sett_room_temp_info_1").hide();
  2188.     }
  2189. });
  2190.  
  2191. $("#settings_room_temp_economic").on("input", function(){
  2192.     if ($("#settings_room_temp").is(":visible")){
  2193.         check_validation_sett_room_temp();
  2194.     }
  2195. });
  2196.  
  2197. $("#settings_room_temp_comfort").on("focusin", function(){
  2198.     if ($("#settings_room_temp").is(":visible")){
  2199.         $("#sett_room_temp_info_2").show();
  2200.     }
  2201. });
  2202.  
  2203. $("#settings_room_temp_comfort").on("focusout", function(){
  2204.     if ($("#settings_room_temp").is(":visible")){
  2205.         $("#sett_room_temp_info_2").hide();
  2206.     }
  2207. });
  2208.  
  2209. $("#settings_room_temp_comfort").on("input", function(){
  2210.     if ($("#settings_room_temp").is(":visible")){
  2211.         check_validation_sett_room_temp();
  2212.     }
  2213. });
  2214.  
  2215. $("#settings_room_temp_comfort_plus").on("focusin", function(){
  2216.     if ($("#settings_room_temp").is(":visible")){
  2217.         $("#sett_room_temp_info_3").show();
  2218.     }
  2219. });
  2220.  
  2221. $("#settings_room_temp_comfort_plus").on("focusout", function(){
  2222.     if ($("#settings_room_temp").is(":visible")){
  2223.         $("#sett_room_temp_info_3").hide();
  2224.     }
  2225. });
  2226.  
  2227. $("#settings_room_temp_comfort_plus").on("input", function(){
  2228.     if ($("#settings_room_temp").is(":visible")){
  2229.         check_validation_sett_room_temp();
  2230.     }
  2231. });
  2232.  
  2233. $("#settings_room_temp_comfort_minus").on("focusin", function(){
  2234.     if ($("#settings_room_temp").is(":visible")){
  2235.         $("#sett_room_temp_info_4").show();
  2236.     }
  2237. });
  2238.  
  2239. $("#settings_room_temp_comfort_minus").on("focusout", function(){
  2240.     if ($("#settings_room_temp").is(":visible")){
  2241.         $("#sett_room_temp_info_4").hide();
  2242.     }
  2243. });
  2244.  
  2245. $("#settings_room_temp_comfort_minus").on("input", function(){
  2246.     if ($("#settings_room_temp").is(":visible")){
  2247.         check_validation_sett_room_temp();
  2248.     }
  2249. });
  2250.  
  2251. /* funkcja odpowiedzialna za walidację kontrolek */
  2252. function check_validation_sett_room_temp(){
  2253.         var validation = true;
  2254.        
  2255.         if (!validate($("#settings_room_temp_economic"), sett_room_temp_min,  sett_room_temp_max,  {})){
  2256.             validation = false;
  2257.         }
  2258.  
  2259.         if (!validate($("#settings_room_temp_comfort"), sett_room_temp_min,  sett_room_temp_max,  {})){
  2260.             validation = false;
  2261.         }
  2262.        
  2263.         if (!validate($("#settings_room_temp_comfort_plus"), sett_room_temp_min,  sett_room_temp_max,  {})){
  2264.             validation = false;
  2265.         }
  2266.        
  2267.         if (!validate($("#settings_room_temp_comfort_minus"), sett_room_temp_min,  sett_room_temp_max,  {})){
  2268.             validation = false;
  2269.         }
  2270.  
  2271.         if (validation){
  2272.             $("#sett_room_temp_save").css("background-color","");
  2273.             $("#sett_room_temp_save").css("color","#000000");
  2274.         }
  2275.         else{
  2276.             $("#sett_room_temp_save").css("background-color","#CCCCCC");
  2277.             $("#sett_room_temp_save").css("color","#D9D9D9");
  2278.         }
  2279.        
  2280.         return validation;
  2281. }  
  2282.  
  2283.   /**
  2284.    *  @brief        save_settings_room_temp()
  2285.    *  @description  Funkcja zapisujaca zmiany wartosci do kontrolek z walidacja
  2286.    */
  2287.   function save_settings_room_temp() {
  2288.     /* pobranie wartosci z kontrolek */
  2289.     var _room_temp_economic          = parseInt($("#settings_room_temp_economic").val().replace(/[°]/, "").replace(/[,]/, ".") * 10);
  2290.     var _room_temp_comfort           = parseInt($("#settings_room_temp_comfort").val().replace(/[°]/, "").replace(/[,]/, ".")* 10);
  2291.     var _room_temp_comfort_minus     = parseInt($("#settings_room_temp_comfort_minus").val().replace(/[°]/, "").replace(/[,]/, ".")* 10);
  2292.     var _room_temp_comfort_plus      = parseInt($("#settings_room_temp_comfort_plus").val().replace(/[°]/, "").replace(/[,]/, ".")* 10);
  2293.     var _settings_room_temp_party    = parseInt($("#settings_room_temp_party").val());
  2294.     var _settings_room_temp_vacation = parseInt($("#settings_room_temp_vacation").val());
  2295.  
  2296.     if(check_validation_sett_room_temp()) {
  2297.       setReg("0b63", regToHex(_settings_room_temp_party, false) + ',' + regToHex(_settings_room_temp_vacation));   
  2298.       setReg("0b68", regToHex(_room_temp_economic, false) + ',' + regToHex(_room_temp_comfort_minus, false) + ',' + regToHex(_room_temp_comfort, false) + ',' + regToHex(_room_temp_comfort_plus, false)); 
  2299.       window.location.href = "#settings";
  2300.     }
  2301.   }
  2302.  
  2303.   /**
  2304.    *  @brief        get_settings_room_temp()
  2305.    *  @description  Funkcja pobierajaca wartosci do kontrolek
  2306.    */
  2307.   function get_settings_room_temp() {
  2308.     var reg1 = getReg("0bcc", "2");
  2309.     var reg2 = getReg("0b63", "9");
  2310.  
  2311.     sett_room_temp_min = parseFloat(regToInt(reg1['0bcc']) / 10).toFixed(1);
  2312.     sett_room_temp_max = parseFloat(regToInt(reg1['0bcd']) / 10).toFixed(1);
  2313.    
  2314.     var text = "zakres: " + sett_room_temp_min + " ÷ " + sett_room_temp_max + " " + "[°C]";
  2315.     $("#sett_room_temp_info_1").text(text.replace(/\./g,","));
  2316.     $("#sett_room_temp_info_2").text(text.replace(/\./g,","));
  2317.     $("#sett_room_temp_info_3").text(text.replace(/\./g,","));
  2318.     $("#sett_room_temp_info_4").text(text.replace(/\./g,","));        
  2319.  
  2320.     $("#settings_room_temp_economic").val((parseFloat(regToInt(reg2['0b68']) / 10)).toFixed(1));
  2321.     $("#settings_room_temp_comfort_minus").val((parseFloat(regToInt(reg2['0b69']) / 10)).toFixed(1));
  2322.     $("#settings_room_temp_comfort").val((parseFloat(regToInt(reg2['0b6a']) / 10)).toFixed(1));
  2323.     $("#settings_room_temp_comfort_plus").val((parseFloat(regToInt(reg2['0b6b']) / 10)).toFixed(1));
  2324.     $("#settings_room_temp_party").val(parseInt(reg2['0b63'].substring(-2, 2))).change();
  2325.     $("#settings_room_temp_vacation").val(parseInt(reg2['0b64'].substring(-2, 2))).change();
  2326.    
  2327.     check_validation_sett_room_temp();
  2328.   }</script>
  2329. <!-- page: #settings_boil_temp -->
  2330. <div data-role="page" id="settings_boil_temp" data-theme="a">
  2331.   <div data-role="header">
  2332.     <h1><a onclick="showLoadingSpinner();" href="#about" style="color:inherit; text-decoration:none;" data-rel="dialog" data-transition="pop">temperatura cwu</a></h1>
  2333.     <a class="ui-btn ui-shadow ui-corner-all ui-icon-home ui-btn-icon-notext ui-btn-inline" href="#start" onclick="showLoadingSpinner();">&nbsp;</a>
  2334.     <a class="ui-btn ui-shadow ui-corner-all ui-icon-carat-r ui-btn-icon-notext ui-btn-inline" href="#settings">&nbsp;</a>
  2335.   </div>
  2336.  
  2337.   <div role="main">
  2338.     <div class="ui-body">
  2339.       <ul data-role="listview" data-inset="true">
  2340.         <li class="ui-body">
  2341.           <table width="100%"><tr>
  2342.             <td width="20%"><img src="img/tecon.svg"></td>
  2343.             <td width="80%"><label for="settings_boil_temp_economic">temperatura ekonomiczna</label>
  2344.             <label id="sett_boil_info_1" style="display:none;">zakres: </label>    
  2345.             <input data-clear-btn="false" name="settings_boil_temp_economic" id="settings_boil_temp_economic" type="number"></td>
  2346.           </tr></table>
  2347.         </li>
  2348.         <li class="ui-body">
  2349.           <table width="100%"><tr>
  2350.             <td width="20%"><img src="img/tconf.svg"></td>
  2351.             <td width="80%"><label for="settings_boil_temp_comfort">temperatura komfortowa</label>
  2352.             <label id="sett_boil_info_2" style="display:none;">zakres: </label>    
  2353.             <input data-clear-btn="false" name="settings_boil_temp_comfort" id="settings_boil_temp_comfort" type="number"></td>
  2354.           </tr></table>
  2355.         </li>
  2356.       </ul>
  2357.       <p><a id="sett_boil_save" data-direction="reverse" class="ui-btn ui-shadow ui-corner-all ui-btn-b" onclick="save_settings_boil_temp();">zapisz i zamknij okno</a></p>
  2358.     </div>
  2359.   </div>
  2360. </div>
  2361. <!-- /page settings_boil_temp -->
  2362.  
  2363. <script>$(document).on("pagechange", function () { if($("#settings_boil_temp").is(":visible")) { get_settings_boil_temp(); hideLoadingSpinner(); }});
  2364.  
  2365. /* zakresy walidacyjne */
  2366.   var sett_boil_temp_min   = 0;
  2367.   var sett_boil_temp_max   = 0;
  2368.  
  2369. /* eventy na inputach - wyświetlanie zakresu oraz dynamiczna walidacja */
  2370. $("#settings_boil_temp_economic").on("focusin", function(){
  2371.     if ($("#settings_boil_temp").is(":visible")){
  2372.     $("#sett_boil_info_1").show();
  2373.     }
  2374. });
  2375.  
  2376. $("#settings_boil_temp_economic").on("focusout", function(){
  2377.     if ($("#settings_boil_temp").is(":visible")){
  2378.     $("#sett_boil_info_1").hide();
  2379.     }
  2380. });
  2381.  
  2382. $("#settings_boil_temp_economic").on("input", function(){
  2383.     if ($("#settings_boil_temp").is(":visible")){
  2384.         check_validation_sett_boil();
  2385.     }
  2386. });
  2387.  
  2388. $("#settings_boil_temp_comfort").on("focusin", function(){
  2389.     if ($("#settings_boil_temp").is(":visible")){
  2390.     $("#sett_boil_info_2").show();
  2391.     }
  2392. });
  2393.  
  2394. $("#settings_boil_temp_comfort").on("focusout", function(){
  2395.     if ($("#settings_boil_temp").is(":visible")){
  2396.     $("#sett_boil_info_2").hide();
  2397.     }
  2398. });
  2399.  
  2400. $("#settings_boil_temp_comfort").on("input", function(){
  2401.     if ($("#settings_boil_temp").is(":visible")){
  2402.         check_validation_sett_boil();
  2403.     }
  2404. });
  2405.  
  2406. /* funkcja walidująca każdą z kontrolek*/
  2407. function check_validation_sett_boil(){
  2408.         var validation = true;
  2409.        
  2410.         if (!validate($("#settings_boil_temp_economic"), sett_boil_temp_min,  sett_boil_temp_max,  {})){
  2411.             validation = false;
  2412.         }
  2413.  
  2414.         if (!validate($("#settings_boil_temp_comfort"), sett_boil_temp_min,  sett_boil_temp_max,  {})){
  2415.             validation = false;
  2416.         }
  2417.  
  2418.         if (validation){
  2419.             $("#sett_boil_save").css("background-color","");
  2420.             $("#sett_boil_save").css("color","#000000");
  2421.         }
  2422.         else{
  2423.             $("#sett_boil_save").css("background-color","#CCCCCC");
  2424.             $("#sett_boil_save").css("color","#D9D9D9");
  2425.         }
  2426.        
  2427.         return validation;
  2428. }
  2429.  
  2430. /* zapis ustawień po udanej walidacji i powrót do menu */  
  2431.   function save_settings_boil_temp() {
  2432.  
  2433.     var _boil_temp_economic = parseInt($("#settings_boil_temp_economic").val().replace(/[°]/, "").replace(/[,]/, ".")) * 10;
  2434.     var _boil_temp_comfort  = parseInt($("#settings_boil_temp_comfort").val().replace(/[°]/, "").replace(/[,]/, "."))  * 10;
  2435.  
  2436.     if(check_validation_sett_boil()) {
  2437.       setReg("0b66", regToHex(_boil_temp_economic) + ',' +regToHex(_boil_temp_comfort));
  2438.       window.location.href = "#settings";
  2439.     }
  2440.   }
  2441.  
  2442. /* załadowanie ustawień ze sterownika */  
  2443.   function get_settings_boil_temp() {
  2444.     var reg1 = getReg("0bbe", "2");
  2445.     var reg2 = getReg("0b66", "2");
  2446.  
  2447.     sett_boil_temp_min = regToInt(reg1['0bbe']) / 10;
  2448.     sett_boil_temp_max = regToInt(reg1['0bbf']) / 10;
  2449.    
  2450.     var text = "zakres: " + sett_boil_temp_min + " ÷ " + sett_boil_temp_max + " " + "[°C]";
  2451.     $("#sett_boil_info_1").text(text.replace(/\./g,","));    
  2452.     $("#sett_boil_info_2").text(text.replace(/\./g,","));
  2453.                        
  2454.     $("#settings_boil_temp_economic").val(parseInt(regToInt(reg2['0b66']) / 10));
  2455.     $("#settings_boil_temp_comfort").val(parseInt(regToInt(reg2['0b67']) / 10));
  2456.    
  2457.     check_validation_sett_boil();
  2458.   }</script>
  2459. <!-- page: #settings_co -->
  2460. <div data-role="page" id="settings_co" data-theme="a">
  2461.  
  2462.   <div data-role="header">
  2463.     <h1><a onclick="showLoadingSpinner();" href="#about" style="color:inherit; text-decoration:none;" data-rel="dialog" data-transition="pop">settings_co_title</a></h1>
  2464.     <a href="#start" class="ui-btn ui-shadow ui-corner-all ui-icon-home ui-btn-icon-notext ui-btn-inline" onclick="showLoadingSpinner();">&nbsp;</a>
  2465.     <a href="#settings" class="ui-btn ui-shadow ui-corner-all ui-icon-carat-r ui-btn-icon-notext ui-btn-inline">&nbsp;</a>
  2466.   </div>
  2467.  
  2468.   <div role="main">
  2469.  
  2470.     <div class="ui-body">
  2471.       <ul data-role="listview" data-inset="true">
  2472.         <li class="ui-body">
  2473.            <label for="settings_co_nr">settings_co_nr:</label>
  2474.            <input data-clear-btn="false" name="settings_co_nr" id="settings_co_nr" value="12.3" type="number">
  2475.         </li>
  2476.  
  2477.         <li class="ui-body">
  2478.            <label for="settings_co_move">settings_co_move:</label>
  2479.            <input data-clear-btn="false" name="settings_co_move" id="settings_co_move" value="12.3" type="number">
  2480.         </li>
  2481.  
  2482.         <li class="ui-body">
  2483.           <label for="settings_co_temp">settings_co_temp:</label>
  2484.           <select name="settings_co_temp" id="settings_co_temp">
  2485.             <option value="1">const_hand</option>
  2486.             <option value="2">curve</option>
  2487.           </select>
  2488.         </li>
  2489.  
  2490.         <li class="ui-body">
  2491.            <label for="settings_co_temp_max">settings_co_temp_max:</label>
  2492.            <input data-clear-btn="false" name="settings_co_temp_max" id="settings_co_temp_max" value="12.3" type="number">
  2493.         </li>
  2494.  
  2495.         <li class="ui-body">
  2496.            <label for="settings_co_temp_man">settings_co_temp_man:</label>
  2497.            <input data-clear-btn="false" name="settings_co_temp_man" id="settings_co_temp_man" value="12.3" type="number">
  2498.         </li>
  2499.  
  2500.         <li class="ui-body">
  2501.            <label for="settings_co_outside_off">settings_co_outside_off:</label>
  2502.            <input data-clear-btn="false" name="settings_co_outside_off" id="settings_co_outside_off" value="12.3" type="number">
  2503.         </li>
  2504.  
  2505.         <li class="ui-body">
  2506.           <label for="settings_co_antifrost">settings_co_antifrost:</label>
  2507.           <select name="settings_co_antifrost" id="settings_co_antifrost" data-role="flipswitch">
  2508.             <option value="off">Off</option>
  2509.             <option value="on">On</option>
  2510.           </select>
  2511.         </li>
  2512.       </ul>
  2513.  
  2514.       <a href="#settings" data-direction="reverse" class="ui-btn ui-shadow ui-corner-all ui-btn-b">zapisz i zamknij okno</a>
  2515.  
  2516.     </div>
  2517.  
  2518.   </div>
  2519.  
  2520. </div>
  2521. <!-- /page config_turbo -->
  2522.  
  2523. <!-- page: #settings_prg_co -->
  2524. <div data-role="page" id="settings_prg_co" data-theme="a">
  2525.   <div data-role="header">
  2526.     <h1><a id="settings_prog_co_title" onclick="showLoadingSpinner();" href="#about" style="display:yes; color:inherit; text-decoration:none;" data-rel="dialog" data-transition="pop">programator co</a></h1>
  2527.     <a href="#start" class="ui-btn ui-shadow ui-corner-all ui-icon-home ui-btn-icon-notext ui-btn-inline" onclick="showLoadingSpinner();">&nbsp;</a>
  2528.     <a href="#settings" class="ui-btn ui-shadow ui-corner-all ui-icon-carat-r ui-btn-icon-notext ui-btn-inline">&nbsp;</a>
  2529.   </div>
  2530.  
  2531.   <div role="main" class="ui-content">
  2532.     <div class="ui-corner-all custom-corners">
  2533.       <div class="ui-bar ui-bar-a" align="center"><h1>program tygodniowy</h1></div>
  2534.       <div class="ui-body ui-body-a">
  2535.         <table width="100%">
  2536.           <tr><td><label for="settings_prg_co_monday">poniedziałek:</label></td><td><select name="settings_prg_co_monday" id="settings_prg_co_monday" onchange="savePrgCO(1);" onclick="sett_prg_co_modify = true;"><option value="1">program 1</option>
  2537. <option value="2">program 2</option>
  2538. <option value="3">program 3</option>
  2539. <option value="4">program 4</option>
  2540. <option value="5">program 5</option>
  2541. <option value="6">program 6</option>
  2542. <option value="7">program 7</option>
  2543. <option value="8">program 8</option>
  2544. </select></td></tr>
  2545.           <tr><td><label for="settings_prg_co_tuesday">wtorek:</label></td><td><select name="settings_prg_co_tuesday" id="settings_prg_co_tuesday" onchange="savePrgCO(2);" onclick="sett_prg_co_modify = true;"><option value="1">program 1</option>
  2546. <option value="2">program 2</option>
  2547. <option value="3">program 3</option>
  2548. <option value="4">program 4</option>
  2549. <option value="5">program 5</option>
  2550. <option value="6">program 6</option>
  2551. <option value="7">program 7</option>
  2552. <option value="8">program 8</option>
  2553. </select></td></tr>
  2554.           <tr><td><label for="settings_prg_co_wednesday">środa:</label></td><td><select name="settings_prg_co_wednesday" id="settings_prg_co_wednesday" onchange="savePrgCO(3);" onclick="sett_prg_co_modify = true;"><option value="1">program 1</option>
  2555. <option value="2">program 2</option>
  2556. <option value="3">program 3</option>
  2557. <option value="4">program 4</option>
  2558. <option value="5">program 5</option>
  2559. <option value="6">program 6</option>
  2560. <option value="7">program 7</option>
  2561. <option value="8">program 8</option>
  2562. </select></td></tr>
  2563.           <tr><td><label for="settings_prg_co_thursday">czwartek:</label></td><td><select name="settings_prg_co_thursday" id="settings_prg_co_thursday" onchange="savePrgCO(4);" onclick="sett_prg_co_modify = true;"><option value="1">program 1</option>
  2564. <option value="2">program 2</option>
  2565. <option value="3">program 3</option>
  2566. <option value="4">program 4</option>
  2567. <option value="5">program 5</option>
  2568. <option value="6">program 6</option>
  2569. <option value="7">program 7</option>
  2570. <option value="8">program 8</option>
  2571. </select></td></tr>
  2572.           <tr><td><label for="settings_prg_co_friday">piątek:</label></td><td><select name="settings_prg_co_friday" id="settings_prg_co_friday" onchange="savePrgCO(5);" onclick="sett_prg_co_modify = true;"><option value="1">program 1</option>
  2573. <option value="2">program 2</option>
  2574. <option value="3">program 3</option>
  2575. <option value="4">program 4</option>
  2576. <option value="5">program 5</option>
  2577. <option value="6">program 6</option>
  2578. <option value="7">program 7</option>
  2579. <option value="8">program 8</option>
  2580. </select></td></tr>
  2581.           <tr><td><label for="settings_prg_co_saturday">sobota:</label></td><td><select name="settings_prg_co_saturday" id="settings_prg_co_saturday" onchange="savePrgCO(6);" onclick="sett_prg_co_modify = true;"><option value="1">program 1</option>
  2582. <option value="2">program 2</option>
  2583. <option value="3">program 3</option>
  2584. <option value="4">program 4</option>
  2585. <option value="5">program 5</option>
  2586. <option value="6">program 6</option>
  2587. <option value="7">program 7</option>
  2588. <option value="8">program 8</option>
  2589. </select></td></tr>
  2590.           <tr><td><label for="settings_prg_co_sunday">niedziela:</label></td><td><select name="settings_prg_co_sunday" id="settings_prg_co_sunday" onchange="savePrgCO(7);" onclick="sett_prg_co_modify = true;"><option value="1">program 1</option>
  2591. <option value="2">program 2</option>
  2592. <option value="3">program 3</option>
  2593. <option value="4">program 4</option>
  2594. <option value="5">program 5</option>
  2595. <option value="6">program 6</option>
  2596. <option value="7">program 7</option>
  2597. <option value="8">program 8</option>
  2598. </select></td></tr>
  2599.         </table>
  2600.       </div>
  2601.     </div>
  2602.     <p><a href="#settings_prg_co_daily" class="ui-btn ui-shadow ui-corner-all">programy dzienne</a></p>
  2603.   </div>
  2604. </div>
  2605. <!-- /page settings_prg_co -->
  2606.  
  2607. <!-- page: #settings_prg_co_daily -->
  2608. <div data-role="page" id="settings_prg_co_daily" data-theme="a">
  2609.  
  2610.   <div data-role="header">
  2611.     <h1><a onclick="showLoadingSpinner();" href="#about" style="color:inherit; text-decoration:none;" data-rel="dialog" data-transition="pop">programy dzienne</a></h1>
  2612.     <a href="#start" class="ui-btn ui-shadow ui-corner-all ui-icon-home ui-btn-icon-notext ui-btn-inline" onclick="showLoadingSpinner();">&nbsp;</a>
  2613.     <a href="#settings_prg_co" class="ui-btn ui-shadow ui-corner-all ui-icon-carat-r ui-btn-icon-notext ui-btn-inline">&nbsp;</a>
  2614.   </div>
  2615.  
  2616.   <div role="main" class="ui-content">
  2617.     <a href="#settings_prg_co_daily_edit" class="ui-btn ui-icon-clock ui-btn-icon-left" onclick="showLoadingSpinner(); get_prg_co_daily(1);">program 1</a>
  2618.     <a href="#settings_prg_co_daily_edit" class="ui-btn ui-icon-clock ui-btn-icon-left" onclick="showLoadingSpinner(); get_prg_co_daily(2);">program 2</a>
  2619.     <a href="#settings_prg_co_daily_edit" class="ui-btn ui-icon-clock ui-btn-icon-left" onclick="showLoadingSpinner(); get_prg_co_daily(3);">program 3</a>
  2620.     <a href="#settings_prg_co_daily_edit" class="ui-btn ui-icon-clock ui-btn-icon-left" onclick="showLoadingSpinner(); get_prg_co_daily(4);">program 4</a>
  2621.     <a href="#settings_prg_co_daily_edit" class="ui-btn ui-icon-clock ui-btn-icon-left" onclick="showLoadingSpinner(); get_prg_co_daily(5);">program 5</a>
  2622.     <a href="#settings_prg_co_daily_edit" class="ui-btn ui-icon-clock ui-btn-icon-left" onclick="showLoadingSpinner(); get_prg_co_daily(6);">program 6</a>
  2623.     <a href="#settings_prg_co_daily_edit" class="ui-btn ui-icon-clock ui-btn-icon-left" onclick="showLoadingSpinner(); get_prg_co_daily(7);">program 7</a>
  2624.     <a href="#settings_prg_co_daily_edit" class="ui-btn ui-icon-clock ui-btn-icon-left" onclick="showLoadingSpinner(); get_prg_co_daily(8);">program 8</a>
  2625.   </div>
  2626. </div><!-- /page settings_prg_co_daily -->
  2627.  
  2628. <!-- /page: #settings_prg_co_daily_edit -->
  2629. <!-- /start: prog daily -->
  2630. <div data-role="page" id="settings_prg_co_daily_edit" data-theme="a">
  2631.   <div id="aaaa" style="visibility: hidden; display:inline;"></div>
  2632.   <div data-role="header">
  2633.     <h1><a id="settings_prg_co_daily_edit_title" href="#about" style="color:inherit; text-decoration:none;" data-rel="dialog" data-transition="pop">program co nr</a></h1>
  2634.     <a href="#start" class="ui-btn ui-shadow ui-corner-all ui-icon-home ui-btn-icon-notext ui-btn-inline" onclick="showLoadingSpinner();">&nbsp;</a>
  2635.     <a href="#settings_prg_co_daily" class="ui-btn ui-shadow ui-corner-all ui-icon-carat-r ui-btn-icon-notext ui-btn-inline">&nbsp;</a>
  2636.   </div>
  2637.  
  2638. <style>
  2639. .ui-icon-tecon:after {
  2640.     background-image: url("img/teconw.svg");
  2641.     background-size: 18px 18px;
  2642.     background-repeat: no-repeat;
  2643.     background-position: center;
  2644. }
  2645. .ui-icon-tconf:after {
  2646.     background-image: url("img/tconfw.svg");
  2647.     background-size: 18px 18px;
  2648.     background-repeat: no-repeat;
  2649.     background-position: center;
  2650. }
  2651. .ui-icon-tconfp:after {
  2652.     background-image: url("img/tconfpw.svg");
  2653.     background-size: 18px 18px;
  2654.     background-repeat: no-repeat;
  2655.     background-position: center;
  2656. }
  2657. .ui-icon-tconfm:after {
  2658.     background-image: url("img/tconfmw.svg");
  2659.     background-size: 18px 18px;
  2660.     background-repeat: no-repeat;
  2661.     background-position: center;
  2662. }
  2663. .ui-icon-pzam:after {
  2664.     background-image: url("img/pzamw.svg");
  2665.     background-size: 18px 18px;
  2666.     background-repeat: no-repeat;
  2667.     background-position: center;
  2668. }
  2669. .inlineIcon {
  2670.     display: inline-block;
  2671.     position: relative;
  2672.     vertical-align: middle;
  2673.     width: auto !important;
  2674. }
  2675. </style>
  2676.  
  2677.  
  2678. <div role="main">
  2679.   <div class="ui-body">
  2680.     <ul data-role="listview" data-inset="true">
  2681.       <li class="ui-body" id="sett_day_prg_co_li1">
  2682.         <table width="100%" cellspacing="0" cellpadding="0" border="0">
  2683.           <tr>
  2684.             <td width="0.1%" align="center"><a href="#m_prg_co__del_pos" class="ui-btn ui-icon-delete ui-btn-icon-notext ui-shadow" onclick="m_prg_co__idx = 1;"></td>
  2685.             <td width="0.1%">&nbsp;</td>
  2686.             <td width="40%"><input id="sett_day_prg_co_start1" type="time"></td>
  2687.             <td width="0.1%">&nbsp;</td>
  2688.             <td width="40%"><input id="sett_day_prg_co_stop1" type="time"></td>
  2689.             <td width="0.1%">&nbsp;</td>
  2690.             <td width="0.1%" align="center"><a id="m_prg_co__sel_temp1" href="#m_prg_co__sel_temp" class="ui-btn ui-icon-tconf ui-btn-icon-notext ui-shadow" onclick="m_prg_co__idx = 1;">65535</a></td>
  2691.           <tr>
  2692.           <tr>
  2693.             <td width="0.1%" align="center"><a href="#m_prg_co__del_pos" class="ui-btn ui-icon-delete ui-btn-icon-notext ui-shadow" onclick="m_prg_co__idx = 2;"></a></td>
  2694.             <td width="0.1%">&nbsp;</td>
  2695.             <td width="40%"><input id="sett_day_prg_co_start2" type="time"></td>
  2696.             <td width="0.1%">&nbsp;</td>
  2697.             <td width="40%"><input id="sett_day_prg_co_stop2" type="time"></td>
  2698.             <td width="0.1%">&nbsp;</td>
  2699.             <td width="0.1%" align="center"><a id="m_prg_co__sel_temp2" href="#m_prg_co__sel_temp" class="ui-btn ui-icon-tconfp ui-btn-icon-notext ui-shadow" onclick="m_prg_co__idx = 2;">65535</a></td>
  2700.           <tr>
  2701.           <tr>
  2702.             <td width="0.1%" align="center"><a href="#m_prg_co__del_pos" class="ui-btn ui-icon-delete ui-btn-icon-notext ui-shadow" onclick="m_prg_co__idx = 3;"></a></td>
  2703.             <td width="0.1%">&nbsp;</td>
  2704.             <td width="40%"><input id="sett_day_prg_co_start3" type="time"></td>
  2705.             <td width="0.1%">&nbsp;</td>
  2706.             <td width="40%"><input id="sett_day_prg_co_stop3" type="time"></td>
  2707.             <td width="0.1%">&nbsp;</td>
  2708.             <td width="0.1%" align="center"><a id="m_prg_co__sel_temp3" href="#m_prg_co__sel_temp" class="ui-btn ui-icon-tconfm ui-btn-icon-notext ui-shadow" onclick="m_prg_co__idx = 3;">65535</a></td>
  2709.           <tr>
  2710.           <tr>
  2711.             <td width="0.1%" align="center"><a href="#m_prg_co__del_pos" class="ui-btn ui-icon-delete ui-btn-icon-notext ui-shadow" onclick="m_prg_co__idx = 4;"></a></td>
  2712.             <td width="0.1%">&nbsp;</td>
  2713.             <td width="40%"><input id="sett_day_prg_co_start4" type="time"></td>
  2714.             <td width="0.1%">&nbsp;</td>
  2715.             <td width="40%"><input id="sett_day_prg_co_stop4" type="time"></td>
  2716.             <td width="0.1%">&nbsp;</td>
  2717.             <td width="0.1%" align="center"><a id="m_prg_co__sel_temp4" href="#m_prg_co__sel_temp" class="ui-btn ui-icon-tecon ui-btn-icon-notext ui-shadow" onclick="m_prg_co__idx = 4;">65535</a></td>
  2718.           <tr>
  2719.           <tr>
  2720.             <td width="0.1%" align="center"><a href="#m_prg_co__del_pos" class="ui-btn ui-icon-delete ui-btn-icon-notext ui-shadow" onclick="m_prg_co__idx = 5;"></a></td>
  2721.             <td width="0.1%">&nbsp;</td>
  2722.             <td width="40%"><input id="sett_day_prg_co_start5" type="time"></td>
  2723.             <td width="0.1%">&nbsp;</td>
  2724.             <td width="40%"><input id="sett_day_prg_co_stop5" type="time"></td>
  2725.             <td width="0.1%">&nbsp;</td>
  2726.             <td width="0.1%" align="center"><a  id="m_prg_co__sel_temp5" href="#m_prg_co__sel_temp" class="ui-btn ui-icon-bars ui-btn-icon-notext ui-shadow" onclick="m_prg_co__idx = 5;">65535</a></td>
  2727.           <tr>
  2728.         </table>
  2729.       </li>
  2730.     </ul>
  2731.     <p><a id="m_prg_co__daily_edit_save" data-direction="reverse" class="ui-btn ui-shadow ui-corner-all ui-btn-b" onclick="set_prog_co_daily();">zapisz i zamknij okno</a></p>
  2732.     </div>
  2733.   </div>
  2734. </div>
  2735. <!-- /end: prog daily -->
  2736.  
  2737.  
  2738. <div data-role="dialog" id="m_prg_co__del_pos" data-close-btn="right">
  2739.   <div data-role="header"><h1>usuwanie</h1></div>
  2740.   <div data-role="content">
  2741.     <p class="sure-2">czy chcesz usunąć wybraną pozycję z harmonogramu dobowego?</p>
  2742.     <table width="100%">
  2743.       <tr>
  2744.         <td><a href="#" class="sure-do" data-role="button" data-theme="b" data-rel="back" onclick="m_prg_co__del_pos();">tak</a></td>
  2745.         <td><a href="#" data-role="button" data-theme="c" data-rel="back">nie</a></td>
  2746.       </tr>
  2747.     </table>
  2748.   </div>
  2749. </div>
  2750.  
  2751.  
  2752.  
  2753. <!-- /start: temp. type selector -->
  2754. <div data-role="dialog" id="m_prg_co__sel_temp" data-close-btn="right">
  2755.   <div data-role="header"><h1>temperatury</h1></div>
  2756.   <div data-role="content">
  2757.     <div data-role="controlgroup">
  2758.  
  2759.       <input name="m_prg_co__sel_temp_group" id="m_prg_co__sel_temp__mode_pzam" type="radio" value="1" data-iconpos="right" onclick="m_prg_co__set_temp(1)">
  2760.       <label for="m_prg_co__sel_temp__mode_pzam">
  2761.         <table cellspacing="0" cellpadding="0" width="100%">
  2762.           <tr>
  2763.             <td align="center"><span class="ui-btn-icon-notext ui-icon-pzam" style="position: relative"/></td>
  2764.             <td>&nbsp;</td>
  2765.             <td width="100%">przeciwzamrożeniowa</td>
  2766.           </tr>
  2767.         </table>
  2768.       </label>
  2769.  
  2770.       <input name="m_prg_co__sel_temp_group" id="m_prg_co__sel_temp__mode_conf" type="radio" value="2" data-iconpos="right" onclick="m_prg_co__set_temp(2)">
  2771.       <label for="m_prg_co__sel_temp__mode_conf">
  2772.         <table cellspacing="0" cellpadding="0" width="100%">
  2773.           <tr>
  2774.             <td align="center"><span class="ui-btn-icon-notext ui-icon-tconf" style="position: relative"/></td>
  2775.             <td>&nbsp;</td>
  2776.             <td width="100%">komfortowa</td>
  2777.           </tr>
  2778.         </table>
  2779.       </label>
  2780.  
  2781.       <input name="m_prg_co__sel_temp_group" id="m_prg_co__sel_temp__mode_confm" type="radio" value="3" data-iconpos="right" onclick="m_prg_co__set_temp(3)">
  2782.       <label for="m_prg_co__sel_temp__mode_confm">
  2783.         <table cellspacing="0" cellpadding="0" width="100%">
  2784.           <tr>
  2785.             <td align="center"><span class="ui-btn-icon-notext ui-icon-tconfm" style="position: relative"/></td>
  2786.             <td>&nbsp;</td>
  2787.             <td width="100%">komfortowa -</td>
  2788.           </tr>
  2789.         </table>
  2790.       </label>
  2791.  
  2792.  
  2793.       <input name="m_prg_co__sel_temp_group" id="m_prg_co__sel_temp__mode_confp" type="radio" value="4" data-iconpos="right" onclick="m_prg_co__set_temp(4)">
  2794.       <label for="m_prg_co__sel_temp__mode_confp">
  2795.         <table cellspacing="0" cellpadding="0" width="100%">
  2796.           <tr>
  2797.             <td align="center"><span class="ui-btn-icon-notext ui-icon-tconfp" style="position: relative"/></td>
  2798.             <td>&nbsp;</td>
  2799.             <td width="100%">komfortowa +</td>
  2800.           </tr>
  2801.         </table>
  2802.       </label>
  2803.     </div>
  2804.   </div>
  2805. </div>
  2806. <!-- /stop: temp. type selector -->
  2807.  
  2808. <script>$(document).on("pagechange", function () {
  2809.     if ($("#settings_prg_co").is(":visible"))
  2810.     {
  2811.         refreshPrgCO();
  2812.         hideLoadingSpinner();
  2813.     }
  2814.     if ($("#m_prg_co__sel_temp").is(":visible"))
  2815.     {
  2816.         m_prg_co__set_temp_show();
  2817.         hideLoadingSpinner();
  2818.     }
  2819.     if ($("#settings_prg_co_daily_edit").is(":visible"))
  2820.     {
  2821.     // refreshPrgCOEdit();
  2822.     hideLoadingSpinner();
  2823.     }
  2824. });
  2825.  
  2826. /* zmienne parametryczne */
  2827. var sett_prg_co_modify               = false;
  2828. var m_prg_co__idx                    = 0;
  2829.  
  2830. /**
  2831.  *  @brief        m_prg_co_daily_check_time_conflicts(start, stop, temp, c_start, c_stop)
  2832.  *  @description  Funkcja walidująca zakres czasowy dla harmonogramu.
  2833.  *
  2834.  *  @param        start   <integer>, początek sprawdzanego zakresu czasowego.
  2835.  *  @param        koniec  <integer>, koniec sprawdzanego zakresu czasowego.
  2836.  *  @param        c_start <integer>, początek porównywanego okresu czasu.
  2837.  *  @param        c_stop  <integer>, koniec porównywanego okresu czasu.
  2838.  */
  2839. function m_prg_co_daily_check_time_conflicts(start, stop, c_start, c_stop) {
  2840.   if((stop - start) <= 0)                   { return 1; }
  2841.   if((start < c_start) & (stop  < c_start)) { return 0;  }
  2842.   if((stop  > c_stop)  & (start > c_stop))  { return 0;  }
  2843.   return 1;
  2844. }
  2845.  
  2846. function m_prg_co__sel_temp(nr) {
  2847.   console.log('set ' + nr);
  2848.   $('#m_prg_co__sel_temp').dialog('close');
  2849. }
  2850.  
  2851. /* eventy do walidacji programu dziennego */
  2852. $("#sett_day_prg_co_start1").on("change", function(){ m_prg_co_daily_check_each_validation(false); });
  2853. $("#sett_day_prg_co_start2").on("change", function(){ m_prg_co_daily_check_each_validation(false); });
  2854. $("#sett_day_prg_co_start3").on("change", function(){ m_prg_co_daily_check_each_validation(false); });
  2855. $("#sett_day_prg_co_start4").on("change", function(){ m_prg_co_daily_check_each_validation(false); });
  2856. $("#sett_day_prg_co_start5").on("change", function(){ m_prg_co_daily_check_each_validation(false); });
  2857. $("#sett_day_prg_co_stop1").on("change", function(){ m_prg_co_daily_check_each_validation(false); });
  2858. $("#sett_day_prg_co_stop2").on("change", function(){ m_prg_co_daily_check_each_validation(false); });
  2859. $("#sett_day_prg_co_stop3").on("change", function(){ m_prg_co_daily_check_each_validation(false); });
  2860. $("#sett_day_prg_co_stop4").on("change", function(){ m_prg_co_daily_check_each_validation(false); });
  2861. $("#sett_day_prg_co_stop5").on("change", function(){ m_prg_co_daily_check_each_validation(false); });
  2862.  
  2863. /* funkcja walidująca pola w harmonogramie dziennym */
  2864. function m_prg_co_daily_validate(start, stop, siteBool, mode){
  2865.     var validation = false;
  2866.     if ($("#settings_prg_co_daily_edit").is(":visible") || siteBool){
  2867.         validation = true; 
  2868.                            
  2869.         /* sprawdzanie czy pola są puste oraz czy prawa część jest większa od lewej */
  2870.         if(start.val() && !stop.val()){
  2871.             start.parent().attr("style", "color: black; font-weight: normal;");
  2872.             start.parent().css("background-color", "transparent");
  2873.             start.parent().css("border","2px solid transparent");              
  2874.             stop.parent().attr("style", "color: black; font-weight: bold;");
  2875.             stop.parent().css("background-color","#FF9999");
  2876.             stop.parent().css("border","2px solid red");
  2877.             m_prg_co_check_mode(mode);
  2878.             validation = false;
  2879.         }
  2880.         else if(!start.val() && stop.val()){   
  2881.             start.parent().attr("style", "color: black; font-weight: bold;");
  2882.             start.parent().css("background-color","#FF9999");
  2883.             start.parent().css("border","2px solid red");
  2884.             stop.parent().attr("style", "color: black; font-weight: normal;");
  2885.             stop.parent().css("background-color", "transparent");
  2886.             stop.parent().css("border","2px solid transparent");
  2887.             m_prg_co_check_mode(mode);
  2888.             validation = false;
  2889.         }
  2890.         else if(start.val() && stop.val()){
  2891.             if(start.val() >= stop.val()){ 
  2892.                 start.parent().attr("style", "color: black; font-weight: bold;");
  2893.                 start.parent().css("background-color","#FF9999");
  2894.                 start.parent().css("border","2px solid red");  
  2895.                 stop.parent().attr("style", "color: black; font-weight: bold;");
  2896.                 stop.parent().css("background-color","#FF9999");
  2897.                 stop.parent().css("border","2px solid red");
  2898.                 m_prg_co_check_mode(mode);
  2899.                 validation = false;
  2900.             }
  2901.             else{
  2902.                 start.parent().attr("style", "color: black; font-weight: normal;");
  2903.                 start.parent().css("background-color", "transparent");
  2904.                 start.parent().css("border","2px solid transparent");
  2905.                 stop.parent().attr("style", "color: black; font-weight: normal;");
  2906.                 stop.parent().css("background-color", "transparent");
  2907.                 stop.parent().css("border","2px solid transparent");
  2908.                            
  2909.                 if(!(m_prg_co_check_mode(mode))){
  2910.                     validation = false;
  2911.                 }
  2912.                            
  2913.                 /* sprawdzanie kolizji czasu */
  2914.                 var actual_start = getMinute(start.attr("id"));
  2915.                 var actual_stop = getMinute(stop.attr("id"));
  2916.                 if(!isNaN(actual_start) && !isNaN(actual_stop)){
  2917.    
  2918.                     var check_start; var check_stop;
  2919.                     for(var i = 1; i <= 5; i++) {
  2920.                         check_start = getMinute("sett_day_prg_co_start" + i);
  2921.                         check_stop  = getMinute("sett_day_prg_co_stop"  + i);
  2922.                        
  2923.                         if(!isNaN(check_start) && !isNaN(check_stop)){
  2924.                             if(start.attr("id") != ("sett_day_prg_co_start" + i) && stop.attr("id") != ("sett_day_prg_co_stop" + i)) {
  2925.                                 if(m_prg_co_daily_check_time_conflicts(actual_start,actual_stop,check_start,check_stop))
  2926.                                 {
  2927.                                     start.parent().attr("style", "color: black; font-weight: bold;");
  2928.                                     start.parent().css("background-color","#FF9999");
  2929.                                     start.parent().css("border","2px solid red");
  2930.                                     stop.parent().attr("style", "color: black; font-weight: bold;");
  2931.                                     stop.parent().css("background-color","#FF9999");
  2932.                                     stop.parent().css("border","2px solid red");
  2933.                                     validation = false;
  2934.                                 }
  2935.                             }
  2936.                         }
  2937.                     }
  2938.                 }              
  2939.             }
  2940.         }
  2941.         else if (!start.val() && !stop.val()){
  2942.                 start.parent().attr("style", "color: black; font-weight: normal;");
  2943.                 start.parent().css("background-color", "transparent");
  2944.                 start.parent().css("border","2px solid transparent");
  2945.                 stop.parent().attr("style", "color: black; font-weight: normal;");
  2946.                 stop.parent().css("background-color", "transparent");
  2947.                 stop.parent().css("border","2px solid transparent");
  2948.                 mode.css("border","2px solid transparent");
  2949.                 mode.css("background-color", "transparent");
  2950.         }          
  2951.     }
  2952.     return validation;
  2953. }
  2954.  
  2955. /* sprawdzanie przycisku trybu, czy nie jest "nieokreślony" */
  2956. function m_prg_co_check_mode(mode){
  2957.         if (mode.text() == "1" || mode.text() == "2" || mode.text() == "3" || mode.text() == "4"){
  2958.             mode.css("border","2px solid transparent");
  2959.             mode.css("background-color", "transparent");
  2960.             return true;
  2961.         }
  2962.         else{
  2963.             mode.css("border","2px solid red");
  2964.             mode.css("background-color","#FF9999");
  2965.             return false;
  2966.         }  
  2967. }
  2968.  
  2969. /* sprawdzanie każdego wiersza harmonogramu */
  2970. function m_prg_co_daily_check_each_validation(siteBool) {
  2971.     var validation = false;
  2972.     if ($("#settings_prg_co_daily_edit").is(":visible") || siteBool){
  2973.         validation = true;
  2974.         if (!m_prg_co_daily_validate($("#sett_day_prg_co_start1"),$("#sett_day_prg_co_stop1"),siteBool,$("#m_prg_co__sel_temp1"))) validation = false;
  2975.         if (!m_prg_co_daily_validate($("#sett_day_prg_co_start2"),$("#sett_day_prg_co_stop2"),siteBool,$("#m_prg_co__sel_temp2"))) validation = false;
  2976.         if (!m_prg_co_daily_validate($("#sett_day_prg_co_start3"),$("#sett_day_prg_co_stop3"),siteBool,$("#m_prg_co__sel_temp3"))) validation = false;
  2977.         if (!m_prg_co_daily_validate($("#sett_day_prg_co_start4"),$("#sett_day_prg_co_stop4"),siteBool,$("#m_prg_co__sel_temp4"))) validation = false;
  2978.         if (!m_prg_co_daily_validate($("#sett_day_prg_co_start5"),$("#sett_day_prg_co_stop5"),siteBool,$("#m_prg_co__sel_temp5"))) validation = false;
  2979.        
  2980.         if (validation){
  2981.             $("#m_prg_co__daily_edit_save").css("background-color","");
  2982.             $("#m_prg_co__daily_edit_save").css("color","#000000");
  2983.         }
  2984.         else{
  2985.             $("#m_prg_co__daily_edit_save").css("background-color","#CCCCCC");
  2986.             $("#m_prg_co__daily_edit_save").css("color","#D9D9D9");
  2987.         }
  2988.     }
  2989.     return validation;
  2990. }
  2991.  
  2992. /**
  2993.  *  pobranie programu dziennego
  2994.  */
  2995. function get_prg_co_daily(nr) {
  2996.   var regs = getReg(regToHex(3100 + (15 * (nr - 1)), true), "0f");
  2997.  
  2998.   $("#aaaa").text(nr);
  2999.  
  3000.   buff = regToInt(getReg("0b8a", "1")["0b8a"]);
  3001.   if(buff == 2) {
  3002.       $("#settings_prg_co_daily_edit_title").text('program bufora nr ' + nr);
  3003.   } else {
  3004.       $("#settings_prg_co_daily_edit_title").text('program co nr ' + nr);
  3005.   }
  3006.  
  3007.   for(i = 0; i < 5; i++) {
  3008.     var start = regs[intToHex(3100 + (15 * (nr - 1)) + (i * 2))];
  3009.     var stop  = regs[intToHex(3100 + (15 * (nr - 1)) + (i * 2) + 1)];
  3010.     var idx   = regs[intToHex(3110 + (15 * (nr - 1)) + i)];
  3011.  
  3012.     start     = minutesToTime(regToInt(start));
  3013.     stop      = minutesToTime(regToInt(stop));
  3014.     idx       = regToInt(idx); if(idx == -1) { idx = 65535; }
  3015.  
  3016.     ctrl_start       = document.getElementById("sett_day_prg_co_start" + (i + 1));
  3017.     ctrl_stop        = document.getElementById("sett_day_prg_co_stop"  + (i + 1));
  3018.     ctrl_idx         = document.getElementById("m_prg_co__sel_temp"  + (i + 1));
  3019.  
  3020.     ctrl_start.value = start;
  3021.     ctrl_stop.value  = stop;
  3022.     ctrl_idx.text    = idx;
  3023.  
  3024.     switch(idx) {
  3025.       case 1: ctrl_idx.setAttribute("class", "ui-btn ui-icon-pzam ui-btn-icon-notext ui-shadow"); break;
  3026.       case 2: ctrl_idx.setAttribute("class", "ui-btn ui-icon-tconf ui-btn-icon-notext ui-shadow"); break;
  3027.       case 3: ctrl_idx.setAttribute("class", "ui-btn ui-icon-tconfm ui-btn-icon-notext ui-shadow"); break;
  3028.       case 4: ctrl_idx.setAttribute("class", "ui-btn ui-icon-tconfp ui-btn-icon-notext ui-shadow"); break;
  3029.       default: ctrl_idx.setAttribute("class", "ui-btn ui-icon-bars ui-btn-icon-notext ui-shadow");
  3030.     }
  3031.   }
  3032.   m_prg_co_daily_check_each_validation(true);
  3033.   hideLoadingSpinner();
  3034. }
  3035.  
  3036. /* ustawienie programu dziennego */
  3037. function set_prog_co_daily() {
  3038.         if (m_prg_co_daily_check_each_validation(false)){
  3039.           nr = $("#aaaa").text();
  3040.           var time = "";
  3041.           var idx  = "";
  3042.           var start;
  3043.           var stop;
  3044.           for(i = 0; i < 5; i++) {
  3045.             ctrl_start = document.getElementById("sett_day_prg_co_start" + (i + 1)).value.split(":");
  3046.             ctrl_stop  = document.getElementById("sett_day_prg_co_stop"  + (i + 1)).value.split(":");
  3047.             ctrl_idx   = document.getElementById("m_prg_co__sel_temp"  + (i + 1)).text;
  3048.             if(ctrl_start != "") { start = (parseInt(ctrl_start[0]) * 60) + parseInt(ctrl_start[1]); } else { start = 65535; }
  3049.             if(ctrl_stop  != "") { stop  = (parseInt(ctrl_stop[0]) * 60)  + parseInt(ctrl_stop[1]); }  else { stop  = 65535; }
  3050.  
  3051.             console.log(start + ',' + stop + ',' + ctrl_idx);
  3052.  
  3053.  
  3054.             time += regToHex(start) + "," + regToHex(stop) + ",";
  3055.             idx  += regToHex(parseInt(ctrl_idx)) + ',';
  3056.           }
  3057.  
  3058.           var addr = intToHex(3100 + (15 * (nr - 1)), true);
  3059.           var regs = (time + idx).slice(0, -1);
  3060.           setReg(addr, regs);
  3061.           window.location.href = "#settings_prg_co_daily";
  3062.         }
  3063.         else{
  3064.             $("#m_prg_co__daily_edit_save").css("background-color","#CCCCCC");
  3065.             $("#m_prg_co__daily_edit_save").css("color","#D9D9D9");
  3066.         }
  3067. }
  3068.  
  3069. /* usunięcie pozycji z programu dziennego */
  3070. function m_prg_co__del_pos() {
  3071.   for(var i = m_prg_co__idx; i < 5; i++) {
  3072.     $("#sett_day_prg_co_start" + i).val($("#sett_day_prg_co_start" + (i + 1)).val());
  3073.     $("#sett_day_prg_co_stop" + i).val($("#sett_day_prg_co_stop" + (i + 1)).val());
  3074.  
  3075.     $("#m_prg_co__sel_temp" + i).text($("#m_prg_co__sel_temp" + (i + 1)).text());
  3076.     $("#m_prg_co__sel_temp" + i).attr("class", $("#m_prg_co__sel_temp" + (i + 1)).attr("class"));
  3077.   }
  3078.   $("#sett_day_prg_co_start" + i).val("");
  3079.   $("#sett_day_prg_co_stop" + i).val("");
  3080.   $("#m_prg_co__sel_temp" + i).text("65535");
  3081.   $("#m_prg_co__sel_temp" + i).attr("class", "ui-btn ui-icon-bars ui-btn-icon-notext ui-shadow");
  3082.   m_prg_co_daily_check_each_validation(true);
  3083. }
  3084.  
  3085. /**
  3086.  *  @brief        m_prg_co__set_temp(nr)
  3087.  *  @description  Ustawienie dla wybranej pozycji predefiniowanej temperatury
  3088.  *
  3089.  *  @param        nr <integer>, id predefiniowanej temperatury.
  3090.  */
  3091. function m_prg_co__set_temp(nr) {
  3092.   ctrl_idx      = document.getElementById("m_prg_co__sel_temp"  + m_prg_co__idx);
  3093.   ctrl_idx.text = nr;
  3094.  
  3095.   switch(nr) {
  3096.     case 1:  ctrl_idx.setAttribute("class", "ui-btn ui-icon-pzam ui-btn-icon-notext ui-shadow");   break;
  3097.     case 2:  ctrl_idx.setAttribute("class", "ui-btn ui-icon-tconf ui-btn-icon-notext ui-shadow");  break;
  3098.     case 3:  ctrl_idx.setAttribute("class", "ui-btn ui-icon-tconfm ui-btn-icon-notext ui-shadow"); break;
  3099.     case 4:  ctrl_idx.setAttribute("class", "ui-btn ui-icon-tconfp ui-btn-icon-notext ui-shadow"); break;
  3100.     default: ctrl_idx.setAttribute("class", "ui-btn ui-icon-bars ui-btn-icon-notext ui-shadow");
  3101.   }
  3102.  
  3103.   if (m_prg_co_daily_validate($("#sett_day_prg_co_start" + m_prg_co__idx),$("#sett_day_prg_co_stop" + m_prg_co__idx),true,$("#m_prg_co__sel_temp" + m_prg_co__idx))){
  3104.     $("#m_prg_co__daily_edit_save").css("background-color","");
  3105.     $("#m_prg_co__daily_edit_save").css("color","#000000");
  3106.   }
  3107.  
  3108.   $('#m_prg_co__sel_temp').dialog('close');
  3109. }
  3110.  
  3111. /**
  3112.  *  @brief        m_prg_co__set_temp_show()
  3113.  *  @description  Funkcja wywoływana po ustanowieniu widoczności okna z wyborem temepratur
  3114.  *
  3115.  */
  3116. function m_prg_co__set_temp_show() {
  3117.   nr         = document.getElementById("m_prg_co__sel_temp"  + m_prg_co__idx).text;
  3118.   ctrl_pzam  = $("#m_prg_co__sel_temp__mode_pzam");
  3119.   ctrl_conf  = $("#m_prg_co__sel_temp__mode_conf");
  3120.   ctrl_confm = $("#m_prg_co__sel_temp__mode_confm");
  3121.   ctrl_confp = $("#m_prg_co__sel_temp__mode_confp");
  3122.  
  3123.   ctrl_pzam.prop("checked", false).checkboxradio("refresh");
  3124.   ctrl_conf.prop("checked", false).checkboxradio("refresh");
  3125.   ctrl_confm.prop("checked", false).checkboxradio("refresh");
  3126.   ctrl_confp.prop("checked", false).checkboxradio("refresh");
  3127.  
  3128. //  switch(nr) {
  3129. //    case 1: ctrl_pzam.prop("checked", true).checkboxradio("refresh");  break;
  3130. //    case 2: ctrl_conf.prop("checked", true).checkboxradio("refresh");  break;
  3131. //    case 3: ctrl_confm.prop("checked", true).checkboxradio("refresh"); break;
  3132. //    case 4: ctrl_confp.prop("checked", true).checkboxradio("refresh"); break;
  3133. //  }
  3134. }
  3135.  
  3136.  
  3137.  
  3138.  
  3139. function refreshPrgCOEdit() {
  3140. //      var htm = '';
  3141. //      for(i = 1; i <= 5; i++) {
  3142. //          htm += '<option value=' + i + '>';
  3143. //          htm += 'Opcja ' + i;
  3144. //          htm += '</option>';
  3145. //          }
  3146. //         
  3147. //          var options = [];
  3148. //          for (i = 0; i < 5; i++) {
  3149. //              options.push("<option value='" + i + "'>" + i + "</option>");
  3150. //          }          
  3151. //         
  3152. //         
  3153. //      $("#sett_day_prg_co_temp2").append(options.join("")).selectmenu();
  3154. }
  3155.  
  3156. /* read weak prog */
  3157. function refreshPrgCO() {
  3158.   res  = getReg("0c94", "7");
  3159.   buff = regToInt(getReg("0b8a", "1")["0b8a"]);
  3160.  
  3161.   if(buff == 2) {
  3162.     $("#settings_prog_co_title").text("programator bufora");
  3163.     $("#m_prg_co__sel_temp1").attr("style", "display:none;");
  3164.     $("#m_prg_co__sel_temp2").attr("style", "display:none;");
  3165.     $("#m_prg_co__sel_temp3").attr("style", "display:none;");
  3166.     $("#m_prg_co__sel_temp4").attr("style", "display:none;");
  3167.     $("#m_prg_co__sel_temp5").attr("style", "display:none;");
  3168.   } else {
  3169.     $("#settings_prog_co_title").text("programator co");
  3170.     $("#m_prg_co__sel_temp1").attr("style", "display:yes;");
  3171.     $("#m_prg_co__sel_temp2").attr("style", "display:yes;");
  3172.     $("#m_prg_co__sel_temp3").attr("style", "display:yes;");
  3173.     $("#m_prg_co__sel_temp4").attr("style", "display:yes;");
  3174.     $("#m_prg_co__sel_temp5").attr("style", "display:yes;");
  3175.   }
  3176.  
  3177.  
  3178.   $("#settings_prg_co_monday").val(parseInt(res['0c94'].substring(-2, 2))).change();
  3179.   $("#settings_prg_co_tuesday").val(parseInt(res['0c95'].substring(-2, 2))).change();
  3180.   $("#settings_prg_co_wednesday").val(parseInt(res['0c96'].substring(-2, 2))).change();
  3181.   $("#settings_prg_co_thursday").val(parseInt(res['0c97'].substring(-2, 2))).change();
  3182.   $("#settings_prg_co_friday").val(parseInt(res['0c98'].substring(-2, 2))).change();
  3183.   $("#settings_prg_co_saturday").val(parseInt(res['0c99'].substring(-2, 2))).change();
  3184.   $("#settings_prg_co_sunday").val(parseInt(res['0c9a'].substring(-2, 2))).change();
  3185.   sett_prg_co_modify = false;
  3186. }
  3187.  
  3188. /* save weak prog */
  3189. function savePrgCO(id) {
  3190.   if(sett_prg_co_modify) {
  3191.     switch(id) {
  3192.      case 1: setReg("0c94", regToHex(parseInt($("#settings_prg_co_monday").val()))); break;
  3193.      case 2: setReg("0c95", regToHex(parseInt($("#settings_prg_co_tuesday").val()))); break;
  3194.      case 3: setReg("0c96", regToHex(parseInt($("#settings_prg_co_wednesday").val()))); break;
  3195.      case 4: setReg("0c97", regToHex(parseInt($("#settings_prg_co_thursday").val()))); break;
  3196.      case 5: setReg("0c98", regToHex(parseInt($("#settings_prg_co_friday").val()))); break;
  3197.      case 6: setReg("0c99", regToHex(parseInt($("#settings_prg_co_saturday").val()))); break;
  3198.      case 7: setReg("0c9a", regToHex(parseInt($("#settings_prg_co_sunday").val()))); break;
  3199.     }
  3200.   }
  3201. }
  3202. </script>
  3203. <!-- page: #settings_prg_boil -->
  3204. <div data-role="page" id="settings_prg_boil" data-theme="a">
  3205.  
  3206.   <div data-role="header">
  3207.     <h1><a onclick="showLoadingSpinner();" href="#about" style="color:inherit; text-decoration:none;" data-rel="dialog" data-transition="pop">programator cwu</a></h1>
  3208.     <a href="#start" class="ui-btn ui-shadow ui-corner-all ui-icon-home ui-btn-icon-notext ui-btn-inline" onclick="showLoadingSpinner();">&nbsp;</a>
  3209.     <a href="#settings" class="ui-btn ui-shadow ui-corner-all ui-icon-carat-r ui-btn-icon-notext ui-btn-inline">&nbsp;</a>
  3210.   </div>
  3211.  
  3212.   <div role="main" class="ui-content">
  3213.     <div class="ui-corner-all custom-corners">
  3214.       <div class="ui-bar ui-bar-a" align="center"><h1>program tygodniowy</h1></div>
  3215.       <div class="ui-body ui-body-a">
  3216.         <table width="100%">
  3217.           <tr><td><label for="settings_prg_boil_monday">poniedziałek:</label></td><td><select name="settings_prg_boil_monday" id="settings_prg_boil_monday" onchange="savePrgBoil(1);" onclick="sett_prg_boil_modify = true;"><option value="1">program 1</option>
  3218. <option value="2">program 2</option>
  3219. <option value="3">program 3</option>
  3220. <option value="4">program 4</option>
  3221. <option value="5">program 5</option>
  3222. <option value="6">program 6</option>
  3223. <option value="7">program 7</option>
  3224. <option value="8">program 8</option>
  3225. <option value="9">program eco</option>
  3226. </select></td></tr>
  3227.           <tr><td><label for="settings_prg_boil_tuesday">wtorek:</label></td><td><select name="settings_prg_boil_tuesday" id="settings_prg_boil_tuesday" onchange="savePrgBoil(2);" onclick="sett_prg_boil_modify = true;"><option value="1">program 1</option>
  3228. <option value="2">program 2</option>
  3229. <option value="3">program 3</option>
  3230. <option value="4">program 4</option>
  3231. <option value="5">program 5</option>
  3232. <option value="6">program 6</option>
  3233. <option value="7">program 7</option>
  3234. <option value="8">program 8</option>
  3235. <option value="9">program eco</option>
  3236. </select></td></tr>
  3237.           <tr><td><label for="settings_prg_boil_wednesday">środa:</label></td><td><select name="settings_prg_boil_wednesday" id="settings_prg_boil_wednesday" onchange="savePrgBoil(3);" onclick="sett_prg_boil_modify = true;"><option value="1">program 1</option>
  3238. <option value="2">program 2</option>
  3239. <option value="3">program 3</option>
  3240. <option value="4">program 4</option>
  3241. <option value="5">program 5</option>
  3242. <option value="6">program 6</option>
  3243. <option value="7">program 7</option>
  3244. <option value="8">program 8</option>
  3245. <option value="9">program eco</option>
  3246. </select></td></tr>
  3247.           <tr><td><label for="settings_prg_boil_thursday">czwartek:</label></td><td><select name="settings_prg_boil_thursday" id="settings_prg_boil_thursday" onchange="savePrgBoil(4);" onclick="sett_prg_boil_modify = true;"><option value="1">program 1</option>
  3248. <option value="2">program 2</option>
  3249. <option value="3">program 3</option>
  3250. <option value="4">program 4</option>
  3251. <option value="5">program 5</option>
  3252. <option value="6">program 6</option>
  3253. <option value="7">program 7</option>
  3254. <option value="8">program 8</option>
  3255. <option value="9">program eco</option>
  3256. </select></td></tr>
  3257.           <tr><td><label for="settings_prg_boil_friday">piątek:</label></td><td><select name="settings_prg_boil_friday" id="settings_prg_boil_friday" onchange="savePrgBoil(5);" onclick="sett_prg_boil_modify = true;"><option value="1">program 1</option>
  3258. <option value="2">program 2</option>
  3259. <option value="3">program 3</option>
  3260. <option value="4">program 4</option>
  3261. <option value="5">program 5</option>
  3262. <option value="6">program 6</option>
  3263. <option value="7">program 7</option>
  3264. <option value="8">program 8</option>
  3265. <option value="9">program eco</option>
  3266. </select></td></tr>
  3267.           <tr><td><label for="settings_prg_boil_saturday">sobota:</label></td><td><select name="settings_prg_boil_saturday" id="settings_prg_boil_saturday" onchange="savePrgBoil(6);" onclick="sett_prg_boil_modify = true;"><option value="1">program 1</option>
  3268. <option value="2">program 2</option>
  3269. <option value="3">program 3</option>
  3270. <option value="4">program 4</option>
  3271. <option value="5">program 5</option>
  3272. <option value="6">program 6</option>
  3273. <option value="7">program 7</option>
  3274. <option value="8">program 8</option>
  3275. <option value="9">program eco</option>
  3276. </select></td></tr>
  3277.           <tr><td><label for="settings_prg_boil_sunday">niedziela:</label></td><td><select name="settings_prg_boil_sunday" id="settings_prg_boil_sunday" onchange="savePrgBoil(7);" onclick="sett_prg_boil_modify = true;"><option value="1">program 1</option>
  3278. <option value="2">program 2</option>
  3279. <option value="3">program 3</option>
  3280. <option value="4">program 4</option>
  3281. <option value="5">program 5</option>
  3282. <option value="6">program 6</option>
  3283. <option value="7">program 7</option>
  3284. <option value="8">program 8</option>
  3285. <option value="9">program eco</option>
  3286. </select></td></tr>
  3287.         </table>
  3288.       </div>
  3289.     </div>
  3290.  
  3291.     <p><a href="#settings_prg_boil_daily" class="ui-btn ui-shadow ui-corner-all">programy dzienne</a></p>
  3292.  
  3293.   </div>
  3294.  
  3295. </div><!-- /page settings_prg_boil -->
  3296.  
  3297. <!-- page: #settings_prg_boil_daily -->
  3298. <div data-role="page" id="settings_prg_boil_daily" data-theme="a">
  3299.  
  3300.   <div data-role="header">
  3301.     <h1><a onclick="showLoadingSpinner();" href="#about" style="color:inherit; text-decoration:none;" data-rel="dialog" data-transition="pop">programy dzienne</a></h1>
  3302.     <a href="#start" class="ui-btn ui-shadow ui-corner-all ui-icon-home ui-btn-icon-notext ui-btn-inline" onclick="showLoadingSpinner();">&nbsp;</a>
  3303.     <a href="#settings_prg_boil" class="ui-btn ui-shadow ui-corner-all ui-icon-carat-r ui-btn-icon-notext ui-btn-inline">&nbsp;</a>
  3304.   </div>
  3305.  
  3306.   <div role="main" class="ui-content">
  3307.     <a href="#settings_prg_boil_daily_edit" class="ui-btn ui-icon-clock ui-btn-icon-left" onclick="showLoadingSpinner(); get_prg_boil_daily(1);">program 1</a>
  3308.     <a href="#settings_prg_boil_daily_edit" class="ui-btn ui-icon-clock ui-btn-icon-left" onclick="showLoadingSpinner(); get_prg_boil_daily(2);">program 2</a>
  3309.     <a href="#settings_prg_boil_daily_edit" class="ui-btn ui-icon-clock ui-btn-icon-left" onclick="showLoadingSpinner(); get_prg_boil_daily(3);">program 3</a>
  3310.     <a href="#settings_prg_boil_daily_edit" class="ui-btn ui-icon-clock ui-btn-icon-left" onclick="showLoadingSpinner(); get_prg_boil_daily(4);">program 4</a>
  3311.     <a href="#settings_prg_boil_daily_edit" class="ui-btn ui-icon-clock ui-btn-icon-left" onclick="showLoadingSpinner(); get_prg_boil_daily(5);">program 5</a>
  3312.     <a href="#settings_prg_boil_daily_edit" class="ui-btn ui-icon-clock ui-btn-icon-left" onclick="showLoadingSpinner(); get_prg_boil_daily(6);">program 6</a>
  3313.     <a href="#settings_prg_boil_daily_edit" class="ui-btn ui-icon-clock ui-btn-icon-left" onclick="showLoadingSpinner(); get_prg_boil_daily(7);">program 7</a>
  3314.     <a href="#settings_prg_boil_daily_edit" class="ui-btn ui-icon-clock ui-btn-icon-left" onclick="showLoadingSpinner(); get_prg_boil_daily(8);">program 8</a>
  3315.   </div>
  3316.  
  3317. </div><!-- /page settings_prg_boil_daily -->
  3318.  
  3319. <!-- page: #settings_prg_boil_daily_edit -->
  3320. <div data-role="page" id="settings_prg_boil_daily_edit" data-theme="a">
  3321.   <div id="settings_prg_boil_daily_nr"></div>
  3322.   <div data-role="header">
  3323.     <h1><a id="settings_prg_boil_daily_edit_title" onclick="showLoadingSpinner();" href="#about" style="color:inherit; text-decoration:none;" data-rel="dialog" data-transition="pop">program zasobnika nr</a></h1>
  3324.     <a href="#start" class="ui-btn ui-shadow ui-corner-all ui-icon-home ui-btn-icon-notext ui-btn-inline" onclick="showLoadingSpinner();">&nbsp;</a>
  3325.     <a href="#settings_prg_boil_daily" class="ui-btn ui-shadow ui-corner-all ui-icon-carat-r ui-btn-icon-notext ui-btn-inline">&nbsp;</a>
  3326.   </div>
  3327.  
  3328.   <div role="main" class="ui-content">
  3329.     <ul data-role="listview" data-inset="true" id="aaaa">
  3330.       <li class="ui-body">
  3331.         <table width="100%" cellspacing="0" cellpadding="0" border="0">
  3332.           <tr>
  3333.             <td width="0.1%" align="center"><a href="#m_prg_boil__del_pos" class="ui-btn ui-icon-delete ui-btn-icon-notext ui-shadow" onclick="m_prg_boil__idx = 1;"></td>
  3334.             <td width="0.1%">&nbsp;</td>
  3335.             <td width="40%"><input id="sett_day_prg_boil_start1" type="time"></td>
  3336.             <td width="0.1%">&nbsp;</td>
  3337.             <td width="40%"><input id="sett_day_prg_boil_stop1" type="time"></td>
  3338.             <td width="0.1%">&nbsp;</td>
  3339.             <td width="0.1%" align="center"><a id="m_prg_boil__sel_temp1" href="#m_prg_boil__sel_temp" class="ui-btn ui-icon-tconf ui-btn-icon-notext ui-shadow" onclick="m_prg_boil__idx = 1;">65535</a></td>
  3340.           <tr>
  3341.           <tr>
  3342.             <td width="0.1%" align="center"><a href="#m_prg_boil__del_pos" class="ui-btn ui-icon-delete ui-btn-icon-notext ui-shadow" onclick="m_prg_boil__idx = 2;"></td>
  3343.             <td width="0.1%">&nbsp;</td>
  3344.             <td width="40%"><input id="sett_day_prg_boil_start2" type="time"></td>
  3345.             <td width="0.1%">&nbsp;</td>
  3346.             <td width="40%"><input id="sett_day_prg_boil_stop2" type="time"></td>
  3347.             <td width="0.1%">&nbsp;</td>
  3348.             <td width="0.1%" align="center"><a id="m_prg_boil__sel_temp2" href="#m_prg_boil__sel_temp" class="ui-btn ui-icon-tconf ui-btn-icon-notext ui-shadow" onclick="m_prg_boil__idx = 2;">65535</a></td>
  3349.           <tr>
  3350.           <tr>
  3351.             <td width="0.1%" align="center"><a href="#m_prg_boil__del_pos" class="ui-btn ui-icon-delete ui-btn-icon-notext ui-shadow" onclick="m_prg_boil__idx = 3;"></td>
  3352.             <td width="0.1%">&nbsp;</td>
  3353.             <td width="40%"><input id="sett_day_prg_boil_start3" type="time"></td>
  3354.             <td width="0.1%">&nbsp;</td>
  3355.             <td width="40%"><input id="sett_day_prg_boil_stop3" type="time"></td>
  3356.             <td width="0.1%">&nbsp;</td>
  3357.             <td width="0.1%" align="center"><a id="m_prg_boil__sel_temp3" href="#m_prg_boil__sel_temp" class="ui-btn ui-icon-tconf ui-btn-icon-notext ui-shadow" onclick="m_prg_boil__idx = 3;">65535</a></td>
  3358.           <tr>
  3359.           <tr>
  3360.             <td width="0.1%" align="center"><a href="#m_prg_boil__del_pos" class="ui-btn ui-icon-delete ui-btn-icon-notext ui-shadow" onclick="m_prg_boil__idx = 4;"></td>
  3361.             <td width="0.1%">&nbsp;</td>
  3362.             <td width="40%"><input id="sett_day_prg_boil_start4" type="time"></td>
  3363.             <td width="0.1%">&nbsp;</td>
  3364.             <td width="40%"><input id="sett_day_prg_boil_stop4" type="time"></td>
  3365.             <td width="0.1%">&nbsp;</td>
  3366.             <td width="0.1%" align="center"><a id="m_prg_boil__sel_temp4" href="#m_prg_boil__sel_temp" class="ui-btn ui-icon-tconf ui-btn-icon-notext ui-shadow" onclick="m_prg_boil__idx = 4;">65535</a></td>
  3367.           <tr>
  3368.           <tr>
  3369.             <td width="0.1%" align="center"><a href="#m_prg_boil__del_pos" class="ui-btn ui-icon-delete ui-btn-icon-notext ui-shadow" onclick="m_prg_boil__idx = 5;"></td>
  3370.             <td width="0.1%">&nbsp;</td>
  3371.             <td width="40%"><input id="sett_day_prg_boil_start5" type="time"></td>
  3372.             <td width="0.1%">&nbsp;</td>
  3373.             <td width="40%"><input id="sett_day_prg_boil_stop5" type="time"></td>
  3374.             <td width="0.1%">&nbsp;</td>
  3375.             <td width="0.1%" align="center"><a id="m_prg_boil__sel_temp5" href="#m_prg_boil__sel_temp" class="ui-btn ui-icon-tconf ui-btn-icon-notext ui-shadow" onclick="m_prg_boil__idx = 5;">65535</a></td>
  3376.           <tr>
  3377.         </table>
  3378.       </li>
  3379.     </ul>
  3380.     <p><a id="m_prg_boil__daily_edit_save" data-direction="reverse" class="ui-btn ui-shadow ui-corner-all ui-btn-b" onclick="set_prog_boil_daily()">zapisz i zamknij okno</a></p>
  3381.   </div>
  3382. </div><!-- /page settings_prg_boil_daily_edit -->
  3383.  
  3384.  
  3385. <div data-role="dialog" id="m_prg_boil__del_pos" data-close-btn="right">
  3386.   <div data-role="header"><h1>program dobowy</h1></div>
  3387.   <div data-role="content">
  3388.     <p class="sure-2">czy chcesz usunąć wybraną pozycję z harmonogramu dobowego?</p>
  3389.     <table width="100%">
  3390.       <tr>
  3391.         <td><a href="#" class="sure-do" data-role="button" data-theme="b" data-rel="back" onclick="m_prg_boil__del_pos();">tak</a></td>
  3392.         <td><a href="#" data-role="button" data-theme="c" data-rel="back">nie</a></td>
  3393.       </tr>
  3394.     </table>
  3395.   </div>
  3396. </div>
  3397.  
  3398.  
  3399. <!-- /start: temp. type selector -->
  3400. <div data-role="dialog" id="m_prg_boil__sel_temp" data-close-btn="right">
  3401.   <div data-role="header"><h1>temperatury</h1></div>
  3402.   <div data-role="content">
  3403.     <div data-role="controlgroup">
  3404.  
  3405.       <input name="m_prg_boil__sel_temp_group" id="m_prg_boil__sel_temp__mode_pzam" type="radio" value="1" data-iconpos="right" onclick="m_prg_boil__set_temp(1)">
  3406.       <label for="m_prg_boil__sel_temp__mode_pzam">
  3407.         <table cellspacing="0" cellpadding="0" width="100%">
  3408.           <tr>
  3409.             <td align="center"><span class="ui-btn-icon-notext ui-icon-pzam" style="position: relative"/></td>
  3410.             <td>&nbsp;</td>
  3411.             <td width="100%">przeciwzamrożeniowa</td>
  3412.           </tr>
  3413.         </table>
  3414.       </label>
  3415.  
  3416.       <input name="m_prg_boil__sel_temp_group" id="m_prg_boil__sel_temp__mode_conf" type="radio" value="2" data-iconpos="right" onclick="m_prg_boil__set_temp(2)">
  3417.       <label for="m_prg_boil__sel_temp__mode_conf">
  3418.         <table cellspacing="0" cellpadding="0" width="100%">
  3419.           <tr>
  3420.             <td align="center"><span class="ui-btn-icon-notext ui-icon-tconf" style="position: relative"/></td>
  3421.             <td>&nbsp;</td>
  3422.             <td width="100%">komfortowa</td>
  3423.           </tr>
  3424.         </table>
  3425.       </label>
  3426.     </div>
  3427.   </div>
  3428. </div>
  3429. <!-- /stop: temp. type selector -->
  3430.  
  3431.  
  3432. <script>$(document).on("pagechange", function () { if($("#settings_prg_boil").is(":visible")) { refreshPrgBoil(); hideLoadingSpinner();}});
  3433.  
  3434. /* zmienne parametryczne */
  3435. var sett_prg_boil_modify     = false;
  3436. var m_prg_boil__idx;
  3437.  
  3438. /* pobranie programu dziennego */
  3439. function get_prg_boil_daily(nr) {
  3440.   $("#settings_prg_boil_daily_edit_title").text('program zasobnika nr ' + nr);
  3441.   $("#settings_prg_boil_daily_nr").text(nr);
  3442.   $("#settings_prg_boil_daily_nr").hide();
  3443.  
  3444.   var regs = getReg(regToHex(3230 + (15 * (nr - 1)), true), "0f");
  3445.  
  3446.   console.log(regs);
  3447.  
  3448.   for(i = 0; i < 5; i++) {
  3449.     var start = regs[intToHex(3230 + (15 * (nr - 1)) + (i * 2))];
  3450.     var stop  = regs[intToHex(3230 + (15 * (nr - 1)) + (i * 2) + 1)];
  3451.     var idx   = regs[intToHex(3240 + (15 * (nr - 1)) + i)];
  3452.  
  3453.     start     = minutesToTime(parseInt(start.substring(2) + start.substring(-2, 2), 16));
  3454.     stop      = minutesToTime(parseInt(stop.substring(2)  + stop.substring(-2, 2), 16));
  3455.     idx       = parseInt(idx.substring(2)   + idx.substring(-2, 2), 16);
  3456.  
  3457.     console.log(start + ',' + stop + ',' + idx);
  3458.  
  3459.     ctrl_start       = document.getElementById("sett_day_prg_boil_start" + (i + 1));
  3460.     ctrl_stop        = document.getElementById("sett_day_prg_boil_stop"  + (i + 1));
  3461.     ctrl_idx         = document.getElementById("m_prg_boil__sel_temp"  + (i + 1));
  3462.  
  3463.     ctrl_start.value = start;
  3464.     ctrl_stop.value  = stop;
  3465.     ctrl_idx.value   = idx;
  3466.     $(ctrl_idx).change();
  3467.    }
  3468.    m_prg_boil_daily_check_each_validation(true);
  3469.    hideLoadingSpinner();
  3470. }
  3471.  
  3472. /* usunięcie pozycji z programu dziennego */
  3473. function m_prg_boil__del_pos() {
  3474.   for(var i = m_prg_boil__idx; i < 5; i++) {
  3475.     $("#sett_day_prg_boil_start" + i).val($("#sett_day_prg_boil_start" + (i + 1)).val());
  3476.     $("#sett_day_prg_boil_stop" + i).val($("#sett_day_prg_boil_stop" + (i + 1)).val());
  3477.  
  3478.     $("#m_prg_boil__sel_temp" + i).text($("#m_prg_boil__sel_temp" + (i + 1)).text());
  3479.     $("#m_prg_boil__sel_temp" + i).attr("class", $("#m_prg_boil__sel_temp" + (i + 1)).attr("class"));
  3480.   }
  3481.   $("#sett_day_prg_boil_start" + i).val("");
  3482.   $("#sett_day_prg_boil_stop" + i).val("");
  3483.   $("#m_prg_boil__sel_temp" + i).text("65535");
  3484.   $("#m_prg_boil__sel_temp" + i).attr("class", "ui-btn ui-icon-bars ui-btn-icon-notext ui-shadow");
  3485.   m_prg_boil_daily_check_each_validation(true);
  3486. }
  3487.  
  3488. /**
  3489.  *  @brief        m_prg_co__set_temp(nr)
  3490.  *  @description  Ustawienie dla wybranej pozycji predefiniowanej temperatury
  3491.  *
  3492.  *  @param        nr <integer>, id predefiniowanej temperatury.
  3493.  */
  3494. function m_prg_boil__set_temp(nr) {
  3495.   ctrl_idx      = document.getElementById("m_prg_boil__sel_temp"  + m_prg_boil__idx);
  3496.   ctrl_idx.text = nr;
  3497.  
  3498.   switch(nr) {
  3499.     case 1:  ctrl_idx.setAttribute("class", "ui-btn ui-icon-pzam ui-btn-icon-notext ui-shadow");   break;
  3500.     case 2:  ctrl_idx.setAttribute("class", "ui-btn ui-icon-tconf ui-btn-icon-notext ui-shadow");  break;
  3501.     default: ctrl_idx.setAttribute("class", "ui-btn ui-icon-bars ui-btn-icon-notext ui-shadow");
  3502.   }
  3503.  
  3504.   $('#m_prg_boil__sel_temp').dialog('close');
  3505. }
  3506.  
  3507. /* eventy do walidacji programu dziennego */
  3508. $("#sett_day_prg_boil_start1").on("change", function(){ m_prg_boil_daily_check_each_validation(false); });
  3509. $("#sett_day_prg_boil_start2").on("change", function(){ m_prg_boil_daily_check_each_validation(false); });
  3510. $("#sett_day_prg_boil_start3").on("change", function(){ m_prg_boil_daily_check_each_validation(false); });
  3511. $("#sett_day_prg_boil_start4").on("change", function(){ m_prg_boil_daily_check_each_validation(false); });
  3512. $("#sett_day_prg_boil_start5").on("change", function(){ m_prg_boil_daily_check_each_validation(false); });
  3513. $("#sett_day_prg_boil_stop1").on("change", function(){ m_prg_boil_daily_check_each_validation(false); });
  3514. $("#sett_day_prg_boil_stop2").on("change", function(){ m_prg_boil_daily_check_each_validation(false); });
  3515. $("#sett_day_prg_boil_stop3").on("change", function(){ m_prg_boil_daily_check_each_validation(false); });
  3516. $("#sett_day_prg_boil_stop4").on("change", function(){ m_prg_boil_daily_check_each_validation(false); });
  3517. $("#sett_day_prg_boil_stop5").on("change", function(){ m_prg_boil_daily_check_each_validation(false); });
  3518.  
  3519. /* funkcja walidująca pola w harmonogramie dziennym */
  3520. function m_prg_boil_daily_validate(start, stop, siteBool){
  3521.     var validation = false;
  3522.     if ($("#settings_prg_boil_daily_edit").is(":visible") || siteBool){
  3523.         validation = true; 
  3524.        
  3525.         /* sprawdzanie czy pola są puste oraz czy prawa część jest większa od lewej */
  3526.         if(start.val() && !stop.val()){
  3527.             start.parent().attr("style", "color: black; font-weight: normal;");
  3528.             start.parent().css("background-color", "transparent");
  3529.             start.parent().css("border","2px solid transparent");              
  3530.             stop.parent().attr("style", "color: black; font-weight: bold;");
  3531.             stop.parent().css("background-color","#FF9999");
  3532.             stop.parent().css("border","2px solid red");
  3533.             validation = false;
  3534.         }
  3535.         else if(!start.val() && stop.val()){   
  3536.             start.parent().attr("style", "color: black; font-weight: bold;");
  3537.             start.parent().css("background-color","#FF9999");
  3538.             start.parent().css("border","2px solid red");
  3539.             stop.parent().attr("style", "color: black; font-weight: normal;");
  3540.             stop.parent().css("background-color", "transparent");
  3541.             stop.parent().css("border","2px solid transparent");
  3542.             validation = false;
  3543.         }
  3544.         else if(start.val() && stop.val()){
  3545.             if(start.val() >= stop.val()){ 
  3546.                 start.parent().attr("style", "color: black; font-weight: bold;");
  3547.                 start.parent().css("background-color","#FF9999");
  3548.                 start.parent().css("border","2px solid red");  
  3549.                 stop.parent().attr("style", "color: black; font-weight: bold;");
  3550.                 stop.parent().css("background-color","#FF9999");
  3551.                 stop.parent().css("border","2px solid red");
  3552.                 validation = false;
  3553.             }
  3554.             else{
  3555.                 start.parent().attr("style", "color: black; font-weight: normal;");
  3556.                 start.parent().css("background-color", "transparent");
  3557.                 start.parent().css("border","2px solid transparent");
  3558.                 stop.parent().attr("style", "color: black; font-weight: normal;");
  3559.                 stop.parent().css("background-color", "transparent");
  3560.                 stop.parent().css("border","2px solid transparent");
  3561.                            
  3562.                 /* sprawdzanie kolizji czasu */
  3563.                 var actual_start = getMinute(start.attr("id"));
  3564.                 var actual_stop = getMinute(stop.attr("id"));
  3565.                 if(!isNaN(actual_start) && !isNaN(actual_stop)){
  3566.    
  3567.                     var check_start; var check_stop;
  3568.                     for(var i = 1; i <= 5; i++) {
  3569.                         check_start = getMinute("sett_day_prg_boil_start" + i);
  3570.                         check_stop  = getMinute("sett_day_prg_boil_stop"  + i);
  3571.                        
  3572.                         if(!isNaN(check_start) && !isNaN(check_stop)){
  3573.                             if(start.attr("id") != ("sett_day_prg_boil_start" + i) && stop.attr("id") != ("sett_day_prg_boil_stop" + i)) {
  3574.                                 if(m_prg_boil_daily_check_time_conflicts(actual_start,actual_stop,check_start,check_stop))
  3575.                                 {
  3576.                                     start.parent().attr("style", "color: black; font-weight: bold;");
  3577.                                     start.parent().css("background-color","#FF9999");
  3578.                                     start.parent().css("border","2px solid red");
  3579.                                     stop.parent().attr("style", "color: black; font-weight: bold;");
  3580.                                     stop.parent().css("background-color","#FF9999");
  3581.                                     stop.parent().css("border","2px solid red");
  3582.                                     validation = false;
  3583.                                 }
  3584.                             }
  3585.                         }
  3586.                     }
  3587.                 }              
  3588.             }
  3589.         }
  3590.         else if (!start.val() && !stop.val()){
  3591.                 start.parent().attr("style", "color: black; font-weight: normal;");
  3592.                 start.parent().css("background-color", "transparent");
  3593.                 start.parent().css("border","2px solid transparent");
  3594.                 stop.parent().attr("style", "color: black; font-weight: normal;");
  3595.                 stop.parent().css("background-color", "transparent");
  3596.                 stop.parent().css("border","2px solid transparent");
  3597.         }          
  3598.     }
  3599.     return validation;
  3600. }
  3601.  
  3602. /* metoda sprawdzania ram czasowych */
  3603. function m_prg_boil_daily_check_time_conflicts(start, stop, c_start, c_stop) {
  3604.   if((stop - start) <= 0)                   { return 1; }
  3605.   if((start < c_start) & (stop  < c_start)) { return 0;  }
  3606.   if((stop  > c_stop)  & (start > c_stop))  { return 0;  }
  3607.   return 1;
  3608. }
  3609.  
  3610. /* sprawdzanie każdego wiersza harmonogramu */
  3611. function m_prg_boil_daily_check_each_validation(siteBool) {
  3612.     var validation = false;
  3613.     if ($("#settings_prg_boil_daily_edit").is(":visible") || siteBool){
  3614.         validation = true;
  3615.         if (!m_prg_boil_daily_validate($("#sett_day_prg_boil_start1"),$("#sett_day_prg_boil_stop1"),siteBool)) validation = false;
  3616.         if (!m_prg_boil_daily_validate($("#sett_day_prg_boil_start2"),$("#sett_day_prg_boil_stop2"),siteBool)) validation = false;
  3617.         if (!m_prg_boil_daily_validate($("#sett_day_prg_boil_start3"),$("#sett_day_prg_boil_stop3"),siteBool)) validation = false;
  3618.         if (!m_prg_boil_daily_validate($("#sett_day_prg_boil_start4"),$("#sett_day_prg_boil_stop4"),siteBool)) validation = false;
  3619.         if (!m_prg_boil_daily_validate($("#sett_day_prg_boil_start5"),$("#sett_day_prg_boil_stop5"),siteBool)) validation = false;
  3620.        
  3621.         if (validation){
  3622.             $("#m_prg_boil__daily_edit_save").css("background-color","");
  3623.             $("#m_prg_boil__daily_edit_save").css("color","#000000");
  3624.         }
  3625.         else{
  3626.             $("#m_prg_boil__daily_edit_save").css("background-color","#CCCCCC");
  3627.             $("#m_prg_boil__daily_edit_save").css("color","#D9D9D9");
  3628.         }
  3629.     }
  3630.     return validation;
  3631. }
  3632.  
  3633. /* zapis programu dziennego */
  3634. function set_prog_boil_daily() {
  3635.     if (m_prg_boil_daily_check_each_validation(false)){
  3636.         var nr   = $("#settings_prg_boil_daily_nr").text();
  3637.  
  3638.         console.log(nr);
  3639.  
  3640.         var time = "";
  3641.         var idx  = "";
  3642.         var start;
  3643.         var stop;
  3644.         for(i = 0; i < 5; i++) {
  3645.             ctrl_start = document.getElementById("sett_day_prg_boil_start" + (i + 1)).value.split(":");
  3646.             ctrl_stop  = document.getElementById("sett_day_prg_boil_stop"  + (i + 1)).value.split(":");
  3647.             ctrl_idx   = document.getElementById("m_prg_boil__sel_temp"  + (i + 1)).text;
  3648.             if(ctrl_start != "") { start = (parseInt(ctrl_start[0]) * 60) + parseInt(ctrl_start[1]); } else { start = 65535; }
  3649.             if(ctrl_stop  != "") { stop  = (parseInt(ctrl_stop[0]) * 60)  + parseInt(ctrl_stop[1]); }  else { stop  = 65535; }
  3650.             time += regToHex(start) + "," + regToHex(stop) + ",";
  3651.             idx  += regToHex(parseInt(ctrl_idx)) + ',';
  3652.         }
  3653.  
  3654.         var addr = intToHex(3230 + (15 * (nr - 1)), true);
  3655.         var regs = (time + idx).slice(0, -1);
  3656.         setReg(addr, regs);
  3657.  
  3658.         window.location.href = "#settings_prg_boil_daily";
  3659.     }
  3660.     else{
  3661.         $("#m_prg_boil__daily_edit_save").css("background-color","#CCCCCC");
  3662.         $("#m_prg_boil__daily_edit_save").css("color","#D9D9D9");
  3663.     }
  3664. }
  3665.  
  3666.  
  3667. /* odświeżenie aktualnego programu */
  3668. function refreshPrgBoil() {
  3669.   res = getReg("0d16", "7");
  3670.   $("#settings_prg_boil_monday").val(parseInt(res['0d16'].substring(-2, 2))).change();
  3671.   $("#settings_prg_boil_tuesday").val(parseInt(res['0d17'].substring(-2, 2))).change();
  3672.   $("#settings_prg_boil_wednesday").val(parseInt(res['0d18'].substring(-2, 2))).change();
  3673.   $("#settings_prg_boil_thursday").val(parseInt(res['0d19'].substring(-2, 2))).change();
  3674.   $("#settings_prg_boil_friday").val(parseInt(res['0d1a'].substring(-2, 2))).change();
  3675.   $("#settings_prg_boil_saturday").val(parseInt(res['0d1b'].substring(-2, 2))).change();
  3676.   $("#settings_prg_boil_sunday").val(parseInt(res['0d1c'].substring(-2, 2))).change();
  3677.   sett_prg_co_modify = false;
  3678. }
  3679.  
  3680. /* ustawienie programu */
  3681. function savePrgBoil(id) {
  3682.   if(sett_prg_boil_modify) {
  3683.     switch(id) {
  3684.       case 1: setReg("0d16", regToHex(parseInt($("#settings_prg_boil_monday").val()))); break;
  3685.       case 2: setReg("0d17", regToHex(parseInt($("#settings_prg_boil_tuesday").val()))); break;
  3686.       case 3: setReg("0d18", regToHex(parseInt($("#settings_prg_boil_wednesday").val()))); break;
  3687.       case 4: setReg("0d19", regToHex(parseInt($("#settings_prg_boil_thursday").val()))); break;
  3688.       case 5: setReg("0d1a", regToHex(parseInt($("#settings_prg_boil_friday").val()))); break;
  3689.       case 6: setReg("0d1b", regToHex(parseInt($("#settings_prg_boil_saturday").val()))); break;
  3690.       case 7: setReg("0d1c", regToHex(parseInt($("#settings_prg_boil_sunday").val()))); break;
  3691.     }
  3692.   }
  3693. }
  3694. </script>
  3695. <!-- page: #settings_prg_circ -->
  3696. <div data-role="page" id="settings_prg_circ" data-theme="a">
  3697.  
  3698.   <div data-role="header">
  3699.     <h1><a onclick="showLoadingSpinner();" href="#about" style="color:inherit; text-decoration:none;" data-rel="dialog" data-transition="pop">programator cyrkulacji</a></h1>
  3700.     <a href="#start" class="ui-btn ui-shadow ui-corner-all ui-icon-home ui-btn-icon-notext ui-btn-inline" onclick="showLoadingSpinner();">&nbsp;</a>
  3701.     <a href="#settings" class="ui-btn ui-shadow ui-corner-all ui-icon-carat-r ui-btn-icon-notext ui-btn-inline">&nbsp;</a>
  3702.   </div>
  3703.  
  3704.   <div role="main" class="ui-content">
  3705.     <div class="ui-corner-all custom-corners">
  3706.       <div class="ui-bar ui-bar-a" align="center"><h1>program tygodniowy</h1></div>
  3707.       <div class="ui-body ui-body-a">
  3708.         <table width="100%">
  3709.           <tr><td><label for="settings_prg_circ_monday">poniedziałek:</label></td><td><select name="settings_prg_circ_monday" id="settings_prg_circ_monday" onchange="savePrgCirc(1);" onclick="sett_prg_circ_modify = true;"><option value="1">program 1</option>
  3710. <option value="2">program 2</option>
  3711. <option value="3">program 3</option>
  3712. <option value="4">program 4</option>
  3713. <option value="5">program 5</option>
  3714. <option value="6">program 6</option>
  3715. <option value="7">program 7</option>
  3716. <option value="8">program 8</option>
  3717. </select></td></tr>
  3718.           <tr><td><label for="settings_prg_circ_tuesday">wtorek:</label></td><td><select name="settings_prg_circ_tuesday" id="settings_prg_circ_tuesday" onchange="savePrgCirc(2);" onclick="sett_prg_circ_modify = true;"><option value="1">program 1</option>
  3719. <option value="2">program 2</option>
  3720. <option value="3">program 3</option>
  3721. <option value="4">program 4</option>
  3722. <option value="5">program 5</option>
  3723. <option value="6">program 6</option>
  3724. <option value="7">program 7</option>
  3725. <option value="8">program 8</option>
  3726. </select></td></tr>
  3727.           <tr><td><label for="settings_prg_circ_wednesday">środa:</label></td><td><select name="settings_prg_circ_wednesday" id="settings_prg_circ_wednesday" onchange="savePrgCirc(3);" onclick="sett_prg_circ_modify = true;"><option value="1">program 1</option>
  3728. <option value="2">program 2</option>
  3729. <option value="3">program 3</option>
  3730. <option value="4">program 4</option>
  3731. <option value="5">program 5</option>
  3732. <option value="6">program 6</option>
  3733. <option value="7">program 7</option>
  3734. <option value="8">program 8</option>
  3735. </select></td></tr>
  3736.           <tr><td><label for="settings_prg_circ_thursday">czwartek:</label></td><td><select name="settings_prg_circ_thursday" id="settings_prg_circ_thursday" onchange="savePrgCirc(4);" onclick="sett_prg_circ_modify = true;"><option value="1">program 1</option>
  3737. <option value="2">program 2</option>
  3738. <option value="3">program 3</option>
  3739. <option value="4">program 4</option>
  3740. <option value="5">program 5</option>
  3741. <option value="6">program 6</option>
  3742. <option value="7">program 7</option>
  3743. <option value="8">program 8</option>
  3744. </select></td></tr>
  3745.           <tr><td><label for="settings_prg_circ_friday">piątek:</label></td><td><select name="settings_prg_circ_friday" id="settings_prg_circ_friday" onchange="savePrgCirc(5);" onclick="sett_prg_circ_modify = true;"><option value="1">program 1</option>
  3746. <option value="2">program 2</option>
  3747. <option value="3">program 3</option>
  3748. <option value="4">program 4</option>
  3749. <option value="5">program 5</option>
  3750. <option value="6">program 6</option>
  3751. <option value="7">program 7</option>
  3752. <option value="8">program 8</option>
  3753. </select></td></tr>
  3754.           <tr><td><label for="settings_prg_circ_saturday">sobota:</label></td><td><select name="settings_prg_circ_saturday" id="settings_prg_circ_saturday" onchange="savePrgCirc(6);" onclick="sett_prg_circ_modify = true;"><option value="1">program 1</option>
  3755. <option value="2">program 2</option>
  3756. <option value="3">program 3</option>
  3757. <option value="4">program 4</option>
  3758. <option value="5">program 5</option>
  3759. <option value="6">program 6</option>
  3760. <option value="7">program 7</option>
  3761. <option value="8">program 8</option>
  3762. </select></td></tr>
  3763.           <tr><td><label for="settings_prg_circ_sunday">niedziela:</label></td><td><select name="settings_prg_circ_sunday" id="settings_prg_circ_sunday" onchange="savePrgCirc(7);" onclick="sett_prg_circ_modify = true;"><option value="1">program 1</option>
  3764. <option value="2">program 2</option>
  3765. <option value="3">program 3</option>
  3766. <option value="4">program 4</option>
  3767. <option value="5">program 5</option>
  3768. <option value="6">program 6</option>
  3769. <option value="7">program 7</option>
  3770. <option value="8">program 8</option>
  3771. </select></td></tr>
  3772.         </table>
  3773.       </div>
  3774.     </div>
  3775.  
  3776.     <p><a href="#settings_prg_circ_daily" class="ui-btn ui-shadow ui-corner-all">programy dzienne</a></p>
  3777.  
  3778.   </div>
  3779. </div><!-- /page settings -->
  3780.  
  3781. <!-- page: #settings_prg_circ_daily -->
  3782. <div data-role="page" id="settings_prg_circ_daily" data-theme="a">
  3783.  
  3784.   <div data-role="header">
  3785.     <h1><a onclick="showLoadingSpinner();" href="#about" style="color:inherit; text-decoration:none;" data-rel="dialog" data-transition="pop">program dzienny cyrkulacji</a></h1>
  3786.     <a href="#start" class="ui-btn ui-shadow ui-corner-all ui-icon-home ui-btn-icon-notext ui-btn-inline" onclick="showLoadingSpinner();">&nbsp;</a>
  3787.     <a href="#settings_prg_circ" class="ui-btn ui-shadow ui-corner-all ui-icon-carat-r ui-btn-icon-notext ui-btn-inline">&nbsp;</a>
  3788.   </div>
  3789.  
  3790.   <div role="main" class="ui-content">
  3791.     <a href="#settings_prg_circ_daily_edit" class="ui-btn ui-icon-clock ui-btn-icon-left" onclick="showLoadingSpinner(); get_prg_circ_daily(1);">program 1</a>
  3792.     <a href="#settings_prg_circ_daily_edit" class="ui-btn ui-icon-clock ui-btn-icon-left" onclick="showLoadingSpinner(); get_prg_circ_daily(2);">program 2</a>
  3793.     <a href="#settings_prg_circ_daily_edit" class="ui-btn ui-icon-clock ui-btn-icon-left" onclick="showLoadingSpinner(); get_prg_circ_daily(3);">program 3</a>
  3794.     <a href="#settings_prg_circ_daily_edit" class="ui-btn ui-icon-clock ui-btn-icon-left" onclick="showLoadingSpinner(); get_prg_circ_daily(4);">program 4</a>
  3795.     <a href="#settings_prg_circ_daily_edit" class="ui-btn ui-icon-clock ui-btn-icon-left" onclick="showLoadingSpinner(); get_prg_circ_daily(5);">program 5</a>
  3796.     <a href="#settings_prg_circ_daily_edit" class="ui-btn ui-icon-clock ui-btn-icon-left" onclick="showLoadingSpinner(); get_prg_circ_daily(6);">program 6</a>
  3797.     <a href="#settings_prg_circ_daily_edit" class="ui-btn ui-icon-clock ui-btn-icon-left" onclick="showLoadingSpinner(); get_prg_circ_daily(7);">program 7</a>
  3798.     <a href="#settings_prg_circ_daily_edit" class="ui-btn ui-icon-clock ui-btn-icon-left" onclick="showLoadingSpinner(); get_prg_circ_daily(8);">program 8</a>
  3799.   </div>
  3800.  
  3801. </div><!-- /page settings_prg_circ_daily -->
  3802.  
  3803. <!-- page: #settings_prg_circ_daily_edit -->
  3804. <div data-role="page" id="settings_prg_circ_daily_edit" data-theme="a">
  3805.  
  3806.   <div data-role="header">
  3807.     <h1><a id="settings_prg_circ_daily_edit_title" href="#about" style="color:inherit; text-decoration:none;" data-rel="dialog" data-transition="pop">prog. cyrk.</a></h1>
  3808.     <a href="#start" class="ui-btn ui-shadow ui-corner-all ui-icon-home ui-btn-icon-notext ui-btn-inline" onclick="showLoadingSpinner();">&nbsp;</a>
  3809.     <a href="#settings_prg_circ_daily" class="ui-btn ui-shadow ui-corner-all ui-icon-carat-r ui-btn-icon-notext ui-btn-inline">&nbsp;</a>
  3810.   </div>
  3811.  
  3812.   <div role="main" class="ui-content">
  3813.     <div id="settings_prg_circ_daily_nr"></div>
  3814.     <ul data-role="listview" data-inset="true">
  3815.       <li class="ui-body">
  3816.         <table width="100%" cellspacing="0" cellpadding="0" border="0">
  3817.           <tr>
  3818.             <td width="0.1%" align="center"><a href="#m_prg_circ__del_pos" class="ui-btn ui-icon-delete ui-btn-icon-notext ui-shadow" onclick="m_prg_circ__idx = 1;"></td>
  3819.             <td width="0.1%">&nbsp;</td>
  3820.             <td width="40%"><input id="sett_day_prg_circ_start1" type="time"></td>
  3821.             <td width="0.1%">&nbsp;</td>
  3822.             <td width="40%"><input id="sett_day_prg_circ_stop1" type="time"></td>
  3823.           <tr>
  3824.           <tr>
  3825.             <td width="0.1%" align="center"><a href="#m_prg_circ__del_pos" class="ui-btn ui-icon-delete ui-btn-icon-notext ui-shadow" onclick="m_prg_circ__idx = 2;"></td>
  3826.             <td width="0.1%">&nbsp;</td>
  3827.             <td width="40%"><input id="sett_day_prg_circ_start2" type="time"></td>
  3828.             <td width="0.1%">&nbsp;</td>
  3829.             <td width="40%"><input id="sett_day_prg_circ_stop2" type="time"></td>
  3830.           <tr>
  3831.           <tr>
  3832.             <td width="0.1%" align="center"><a href="#m_prg_circ__del_pos" class="ui-btn ui-icon-delete ui-btn-icon-notext ui-shadow" onclick="m_prg_circ__idx = 3;"></td>
  3833.             <td width="0.1%">&nbsp;</td>
  3834.             <td width="40%"><input id="sett_day_prg_circ_start3" type="time"></td>
  3835.             <td width="0.1%">&nbsp;</td>
  3836.             <td width="40%"><input id="sett_day_prg_circ_stop3" type="time"></td>
  3837.           <tr>
  3838.           <tr>
  3839.             <td width="0.1%" align="center"><a href="#m_prg_circ__del_pos" class="ui-btn ui-icon-delete ui-btn-icon-notext ui-shadow" onclick="m_prg_circ__idx = 4;"></td>
  3840.             <td width="0.1%">&nbsp;</td>
  3841.             <td width="40%"><input id="sett_day_prg_circ_start4" type="time"></td>
  3842.             <td width="0.1%">&nbsp;</td>
  3843.             <td width="40%"><input id="sett_day_prg_circ_stop4" type="time"></td>
  3844.           <tr>
  3845.           <tr>
  3846.             <td width="0.1%" align="center"><a href="#m_prg_circ__del_pos" class="ui-btn ui-icon-delete ui-btn-icon-notext ui-shadow" onclick="m_prg_circ__idx = 5;"></td>
  3847.             <td width="0.1%">&nbsp;</td>
  3848.             <td width="40%"><input id="sett_day_prg_circ_start5" type="time"></td>
  3849.             <td width="0.1%">&nbsp;</td>
  3850.             <td width="40%"><input id="sett_day_prg_circ_stop5" type="time"></td>
  3851.           <tr>
  3852.         </table>
  3853.       </li>
  3854.     </ul>
  3855.     <p><a id="m_prg_circ__daily_edit_save" data-direction="reverse" class="ui-btn ui-shadow ui-corner-all ui-btn-b" onclick="set_prog_circ_daily();">zapisz i zamknij okno</a></p>
  3856.   </div>
  3857. </div><!-- /page settings_prg_circ_daily_edit -->
  3858.  
  3859. <div data-role="dialog" id="m_prg_circ__del_pos" data-close-btn="right">
  3860.   <div data-role="header"><h1>uwaga</h1></div>
  3861.   <div data-role="content">
  3862.     <p class="sure-2">czy chcesz usunąć wybraną pozycję z harmonogramu dobowego?</p>
  3863.     <table width="100%">
  3864.       <tr>
  3865.         <td><a href="#" class="sure-do" data-role="button" data-theme="b" data-rel="back" onclick="m_prg_circ__del_pos();">tak</a></td>
  3866.         <td><a href="#" data-role="button" data-theme="c" data-rel="back">nie</a></td>
  3867.       </tr>
  3868.     </table>
  3869.   </div>
  3870. </div>
  3871.  
  3872.  
  3873.  
  3874. <script>$(document).on("pagechange", function () { if($("#settings_prg_circ").is(":visible")) { refreshPrgCirc(); hideLoadingSpinner();}});
  3875.  
  3876. /* zmienne parametryczne */
  3877. var sett_prg_circ_modify     = false;
  3878. var m_prg_circ__idx = 0;
  3879.  
  3880. /* pobranie programu dziennego */
  3881. function get_prg_circ_daily(nr) {
  3882.   $("#settings_prg_circ_daily_edit_title").text('prog. cyrk. ' + nr);
  3883.   $("#settings_prg_circ_daily_nr").text(nr);
  3884.   $("#settings_prg_circ_daily_nr").hide();
  3885.  
  3886.  
  3887.   var regs = getReg(regToHex(3360 + (15 * (nr - 1)), true), "0f");
  3888.  
  3889.   for(i = 0; i < 5; i++) {
  3890.     var start = regs[intToHex(3360 + (15 * (nr - 1)) + (i * 2))];
  3891.     var stop  = regs[intToHex(3360 + (15 * (nr - 1)) + (i * 2) + 1)];
  3892.  
  3893.     start     = minutesToTime(parseInt(start.substring(2) + start.substring(-2, 2), 16));
  3894.     stop      = minutesToTime(parseInt(stop.substring(2)  + stop.substring(-2, 2), 16));
  3895.  
  3896.     ctrl_start       = document.getElementById("sett_day_prg_circ_start" + (i + 1));
  3897.     ctrl_stop        = document.getElementById("sett_day_prg_circ_stop"  + (i + 1));
  3898.  
  3899.     ctrl_start.value = start;
  3900.     ctrl_stop.value  = stop;
  3901.   }
  3902.   m_prg_circ_daily_check_each_validation(true);
  3903.   hideLoadingSpinner();
  3904. }
  3905.  
  3906. /* usunięcie pozycji z programu dziennego */
  3907. function m_prg_circ__del_pos() {
  3908.   for(var i = m_prg_circ__idx; i < 5; i++) {
  3909.     $("#sett_day_prg_circ_start" + i).val($("#sett_day_prg_circ_start" + (i + 1)).val());
  3910.     $("#sett_day_prg_circ_stop" + i).val($("#sett_day_prg_circ_stop" + (i + 1)).val());
  3911.  
  3912.     $("#m_prg_circ__sel_temp" + i).text($("#m_prg_circ__sel_temp" + (i + 1)).text());
  3913.     $("#m_prg_circ__sel_temp" + i).attr("class", $("#m_prg_circ__sel_temp" + (i + 1)).attr("class"));
  3914.   }
  3915.   $("#sett_day_prg_circ_start" + i).val("");
  3916.   $("#sett_day_prg_circ_stop" + i).val("");
  3917.   $("#m_prg_circ__sel_temp" + i).text("65535");
  3918.   $("#m_prg_circ__sel_temp" + i).attr("class", "ui-btn ui-icon-bars ui-btn-icon-notext ui-shadow");
  3919.   m_prg_circ_daily_check_each_validation(true);
  3920. }
  3921.  
  3922. /* eventy do walidacji programu dziennego */
  3923. $("#sett_day_prg_circ_start1").on("change", function(){ m_prg_circ_daily_check_each_validation(false); });
  3924. $("#sett_day_prg_circ_start2").on("change", function(){ m_prg_circ_daily_check_each_validation(false); });
  3925. $("#sett_day_prg_circ_start3").on("change", function(){ m_prg_circ_daily_check_each_validation(false); });
  3926. $("#sett_day_prg_circ_start4").on("change", function(){ m_prg_circ_daily_check_each_validation(false); });
  3927. $("#sett_day_prg_circ_start5").on("change", function(){ m_prg_circ_daily_check_each_validation(false); });
  3928. $("#sett_day_prg_circ_stop1").on("change", function(){ m_prg_circ_daily_check_each_validation(false); });
  3929. $("#sett_day_prg_circ_stop2").on("change", function(){ m_prg_circ_daily_check_each_validation(false); });
  3930. $("#sett_day_prg_circ_stop3").on("change", function(){ m_prg_circ_daily_check_each_validation(false); });
  3931. $("#sett_day_prg_circ_stop4").on("change", function(){ m_prg_circ_daily_check_each_validation(false); });
  3932. $("#sett_day_prg_circ_stop5").on("change", function(){ m_prg_circ_daily_check_each_validation(false); });
  3933.  
  3934.  
  3935. /* funkcja walidująca pola w harmonogramie dziennym */
  3936. function m_prg_circ_daily_validate(start, stop, siteBool){
  3937.     var validation = false;
  3938.     if ($("#settings_prg_circ_daily_edit").is(":visible") || siteBool){
  3939.         validation = true; 
  3940.        
  3941.         /* sprawdzanie czy pola są puste oraz czy prawa część jest większa od lewej */
  3942.         if(start.val() && !stop.val()){
  3943.             start.parent().attr("style", "color: black; font-weight: normal;");
  3944.             start.parent().css("background-color", "transparent");
  3945.             start.parent().css("border","2px solid transparent");              
  3946.             stop.parent().attr("style", "color: black; font-weight: bold;");
  3947.             stop.parent().css("background-color","#FF9999");
  3948.             stop.parent().css("border","2px solid red");
  3949.             validation = false;
  3950.         }
  3951.         else if(!start.val() && stop.val()){   
  3952.             start.parent().attr("style", "color: black; font-weight: bold;");
  3953.             start.parent().css("background-color","#FF9999");
  3954.             start.parent().css("border","2px solid red");
  3955.             stop.parent().attr("style", "color: black; font-weight: normal;");
  3956.             stop.parent().css("background-color", "transparent");
  3957.             stop.parent().css("border","2px solid transparent");
  3958.             validation = false;
  3959.         }
  3960.         else if(start.val() && stop.val()){
  3961.             if(start.val() >= stop.val()){ 
  3962.                 start.parent().attr("style", "color: black; font-weight: bold;");
  3963.                 start.parent().css("background-color","#FF9999");
  3964.                 start.parent().css("border","2px solid red");  
  3965.                 stop.parent().attr("style", "color: black; font-weight: bold;");
  3966.                 stop.parent().css("background-color","#FF9999");
  3967.                 stop.parent().css("border","2px solid red");
  3968.                 validation = false;
  3969.             }
  3970.             else{
  3971.                 start.parent().attr("style", "color: black; font-weight: normal;");
  3972.                 start.parent().css("background-color", "transparent");
  3973.                 start.parent().css("border","2px solid transparent");
  3974.                 stop.parent().attr("style", "color: black; font-weight: normal;");
  3975.                 stop.parent().css("background-color", "transparent");
  3976.                 stop.parent().css("border","2px solid transparent");
  3977.                            
  3978.                 /* sprawdzanie kolizji czasu */
  3979.                 var actual_start = getMinute(start.attr("id"));
  3980.                 var actual_stop = getMinute(stop.attr("id"));
  3981.                 if(!isNaN(actual_start) && !isNaN(actual_stop)){
  3982.    
  3983.                     var check_start; var check_stop;
  3984.                     for(var i = 1; i <= 5; i++) {
  3985.                         check_start = getMinute("sett_day_prg_circ_start" + i);
  3986.                         check_stop  = getMinute("sett_day_prg_circ_stop"  + i);
  3987.                        
  3988.                         if(!isNaN(check_start) && !isNaN(check_stop)){
  3989.                             if(start.attr("id") != ("sett_day_prg_circ_start" + i) && stop.attr("id") != ("sett_day_prg_circ_stop" + i)) {
  3990.                                 if(m_prg_circ_daily_check_time_conflicts(actual_start,actual_stop,check_start,check_stop))
  3991.                                 {
  3992.                                     start.parent().attr("style", "color: black; font-weight: bold;");
  3993.                                     start.parent().css("background-color","#FF9999");
  3994.                                     start.parent().css("border","2px solid red");
  3995.                                     stop.parent().attr("style", "color: black; font-weight: bold;");
  3996.                                     stop.parent().css("background-color","#FF9999");
  3997.                                     stop.parent().css("border","2px solid red");
  3998.                                     validation = false;
  3999.                                 }
  4000.                             }
  4001.                         }
  4002.                     }
  4003.                 }              
  4004.             }
  4005.         }
  4006.         else if (!start.val() && !stop.val()){
  4007.                 start.parent().attr("style", "color: black; font-weight: normal;");
  4008.                 start.parent().css("background-color", "transparent");
  4009.                 start.parent().css("border","2px solid transparent");
  4010.                 stop.parent().attr("style", "color: black; font-weight: normal;");
  4011.                 stop.parent().css("background-color", "transparent");
  4012.                 stop.parent().css("border","2px solid transparent");
  4013.         }          
  4014.     }
  4015.     return validation;
  4016. }
  4017.  
  4018. /* sprawdzanie każdego wiersza harmonogramu */
  4019. function m_prg_circ_daily_check_each_validation(siteBool) {
  4020.     var validation = false;
  4021.     if ($("#settings_prg_circ_daily_edit").is(":visible") || siteBool){
  4022.         validation = true;
  4023.         if (!m_prg_circ_daily_validate($("#sett_day_prg_circ_start1"),$("#sett_day_prg_circ_stop1"),siteBool)) validation = false;
  4024.         if (!m_prg_circ_daily_validate($("#sett_day_prg_circ_start2"),$("#sett_day_prg_circ_stop2"),siteBool)) validation = false;
  4025.         if (!m_prg_circ_daily_validate($("#sett_day_prg_circ_start3"),$("#sett_day_prg_circ_stop3"),siteBool)) validation = false;
  4026.         if (!m_prg_circ_daily_validate($("#sett_day_prg_circ_start4"),$("#sett_day_prg_circ_stop4"),siteBool)) validation = false;
  4027.         if (!m_prg_circ_daily_validate($("#sett_day_prg_circ_start5"),$("#sett_day_prg_circ_stop5"),siteBool)) validation = false;
  4028.        
  4029.         if (validation){
  4030.             $("#m_prg_circ__daily_edit_save").css("background-color","");
  4031.             $("#m_prg_circ__daily_edit_save").css("color","#000000");
  4032.         }
  4033.         else{
  4034.             $("#m_prg_circ__daily_edit_save").css("background-color","#CCCCCC");
  4035.             $("#m_prg_circ__daily_edit_save").css("color","#D9D9D9");
  4036.         }
  4037.     }
  4038.     return validation;
  4039. }
  4040.  
  4041. /* metoda sprawdzania ram czasowych */
  4042. function m_prg_circ_daily_check_time_conflicts(start, stop, c_start, c_stop) {
  4043.   if((stop - start) <= 0)                   { return 1; }
  4044.   if((start < c_start) & (stop  < c_start)) { return 0;  }
  4045.   if((stop  > c_stop)  & (start > c_stop))  { return 0;  }
  4046.   return 1;
  4047. }
  4048.  
  4049. /* zapis programu dziennego */
  4050. function set_prog_circ_daily() {
  4051.     if (m_prg_circ_daily_check_each_validation(false)){
  4052.       var nr   = $("#settings_prg_circ_daily_nr").text();
  4053.  
  4054.       var time = "";
  4055.       var start;
  4056.       var stop;
  4057.       for(i = 0; i < 5; i++) {
  4058.         ctrl_start = document.getElementById("sett_day_prg_circ_start" + (i + 1)).value.split(":");
  4059.         ctrl_stop  = document.getElementById("sett_day_prg_circ_stop"  + (i + 1)).value.split(":");
  4060.         if(ctrl_start != "") { start = (parseInt(ctrl_start[0]) * 60) + parseInt(ctrl_start[1]); } else { start = 65535; }
  4061.         if(ctrl_stop  != "") { stop  = (parseInt(ctrl_stop[0]) * 60)  + parseInt(ctrl_stop[1]); }  else { stop  = 65535; }
  4062.         time += regToHex(start) + "," + regToHex(stop) + ",";
  4063.       }
  4064.  
  4065.       var addr = intToHex(3360 + (15 * (nr - 1)), true);
  4066.       var regs = (time).slice(0, -1);
  4067.       setReg(addr, regs);
  4068.      
  4069.       window.location.href = "#settings_prg_circ_daily";
  4070.     }
  4071.     else{
  4072.         $("#m_prg_circ__daily_edit_save").css("background-color","#CCCCCC");
  4073.         $("#m_prg_circ__daily_edit_save").css("color","#D9D9D9");
  4074.     }
  4075. }
  4076.  
  4077. /* odświeżenie aktualnego programu */
  4078. function refreshPrgCirc() {
  4079.   res = getReg("0d98", "7");
  4080.   $("#settings_prg_circ_monday").val(parseInt(res['0d98'].substring(-2, 2))).change();
  4081.   $("#settings_prg_circ_tuesday").val(parseInt(res['0d99'].substring(-2, 2))).change();
  4082.   $("#settings_prg_circ_wednesday").val(parseInt(res['0d9a'].substring(-2, 2))).change();
  4083.   $("#settings_prg_circ_thursday").val(parseInt(res['0d9b'].substring(-2, 2))).change();
  4084.   $("#settings_prg_circ_friday").val(parseInt(res['0d9c'].substring(-2, 2))).change();
  4085.   $("#settings_prg_circ_saturday").val(parseInt(res['0d9d'].substring(-2, 2))).change();
  4086.   $("#settings_prg_circ_sunday").val(parseInt(res['0d9e'].substring(-2, 2))).change();
  4087.   sett_prg_co_modify = false;
  4088. }
  4089.  
  4090. /* ustawienie programu */
  4091. function savePrgCirc(id) {
  4092.   if(sett_prg_circ_modify) {
  4093.     switch(id) {
  4094.       case 1: setReg("0d98", regToHex(parseInt($("#settings_prg_circ_monday").val())));    break;
  4095.       case 2: setReg("0d99", regToHex(parseInt($("#settings_prg_circ_tuesday").val())));   break;
  4096.       case 3: setReg("0d9a", regToHex(parseInt($("#settings_prg_circ_wednesday").val()))); break;
  4097.       case 4: setReg("0d9b", regToHex(parseInt($("#settings_prg_circ_thursday").val())));  break;
  4098.       case 5: setReg("0d9c", regToHex(parseInt($("#settings_prg_circ_friday").val())));    break;
  4099.       case 6: setReg("0d9d", regToHex(parseInt($("#settings_prg_circ_saturday").val())));  break;
  4100.       case 7: setReg("0d9e", regToHex(parseInt($("#settings_prg_circ_sunday").val())));    break;
  4101.     }
  4102.   }
  4103. }
  4104. </script>
  4105.  
  4106.  
  4107. <!-- page: #config -->
  4108. <div data-role="page" id="config" data-theme="a">
  4109.  
  4110.   <div data-role="header">
  4111.     <h1><a onclick="showLoadingSpinner();" href="#about" style="color:inherit; text-decoration:none;" data-rel="dialog" data-transition="pop">konfiguracja</a></h1>
  4112.     <a href="#start" class="ui-btn ui-shadow ui-corner-all ui-icon-home ui-btn-icon-notext ui-btn-inline" onclick="showLoadingSpinner();">&nbsp;</a>
  4113.     <a href="#start" class="ui-btn ui-shadow ui-corner-all ui-icon-carat-r ui-btn-icon-notext ui-btn-inline" onclick="showLoadingSpinner();">&nbsp;</a>
  4114.   </div>
  4115.  
  4116.   <div role="main" class="ui-body">
  4117.     <a onclick="showLoadingSpinner();" id="config_buffer" href="#_config_buffer" class="ui-btn ui-shadow ui-corner-all" style="display:none;">bufor</a>
  4118.     <a onclick="showLoadingSpinner();" href="#config_co_win" class="ui-btn ui-shadow ui-corner-all">obieg co</a>
  4119.     <a onclick="showLoadingSpinner();" href="#config_boil_win" class="ui-btn ui-shadow ui-corner-all">zasobnik cwu</a>
  4120.     <a onclick="showLoadingSpinner();" href="#config_circ" class="ui-btn ui-shadow ui-corner-all">cyrkulacja cwu</a>
  4121.     <a onclick="showLoadingSpinner();" href="#config_room" class="ui-btn ui-shadow ui-corner-all">temperatura pokojowa</a>
  4122.     <a onclick="showLoadingSpinner();" href="#config_turbo_win" class="ui-btn ui-shadow ui-corner-all">tryb turbo</a>
  4123.     <a onclick="showLoadingSpinner();" href="#config_pump" class="ui-btn ui-shadow ui-corner-all">pompa</a>
  4124.     <a onclick="showLoadingSpinner();" href="#config_power_win" class="ui-btn ui-shadow ui-corner-all">moc kotła</a>
  4125.     <a onclick="showLoadingSpinner();" href="#config_fun" class="ui-btn ui-shadow ui-corner-all">wejście funkcyjne</a>
  4126.     <a onclick="showLoadingSpinner();" href="#config_preasure_control" class="ui-btn ui-shadow ui-corner-all">kontrola ciśnienia</a>
  4127.     <a onclick="showLoadingSpinner();" id="config_mode__a" href="#config_mode" class="ui-btn ui-shadow ui-corner-all" style="display:none;">tryb pracy</a>
  4128.   </div>
  4129.  
  4130. </div>
  4131. <script>$(document).on("pagechange", function () { if($("#config").is(":visible")) { m_config__set(); hideLoadingSpinner();}});
  4132.  
  4133. function m_config__set() {
  4134.   buff     = regToInt(getReg("0b8a", "1")["0b8a"]);
  4135.   mode_min = regToInt(getReg("0be5", "1")["0be5"])
  4136.   mode_max = regToInt(getReg("0be6", "1")["0be6"])
  4137.  
  4138.   if(mode_max == 0) { $("#config_mode__a").attr("style", "display:none;"); } else { $("#config_mode__a").attr("style", "display:yes;"); }
  4139.   if(buff == 2)     { $("#config_buffer").attr("style", "display:yes;");   } else { $("#config_buffer").attr("style", "display:none;"); }
  4140. }
  4141. </script>
  4142. <!-- /page config -->
  4143. <!-- page: #config_buffer -->
  4144. <div data-role="page" id="_config_buffer" data-theme="a">
  4145.   <div data-role="header">
  4146.     <h1><a onclick="showLoadingSpinner();" href="#about" style="color:inherit; text-decoration:none;" data-rel="dialog" data-transition="pop">bufor</a></h1>
  4147.     <a href="#start"  class="ui-btn ui-shadow ui-corner-all ui-icon-home ui-btn-icon-notext ui-btn-inline" onclick="showLoadingSpinner();">&nbsp;</a>
  4148.     <a href="#config" class="ui-btn ui-shadow ui-corner-all ui-icon-carat-r ui-btn-icon-notext ui-btn-inline">&nbsp;</a>
  4149.   </div>
  4150.   <div role="main">
  4151.     <div class="ui-body">
  4152.       <ul data-role="listview" data-inset="true">
  4153.         <li class="ui-body" id="config_buffer__power_temp_li">
  4154.             <label>temperatura zasilania</label>
  4155.             <label id="config_buffer_info_1" style="display:none;">zakres: </label>
  4156.             <input data-clear-btn="false" id="config_buffer__power_temp" type="number"></li>
  4157.         <li class="ui-body" id="config_buffer__out_of_schedule_li"><label><input id="config_buffer__out_of_schedule" type="checkbox">ładowanie poza programem</label></li>
  4158.       </ul>
  4159.       <a data-direction="reverse" id="config_buffer_save" class="ui-btn ui-shadow ui-corner-all ui-btn-b" onclick="m_config_buffer__set();">zapisz i zamknij</a>
  4160.     </div>
  4161.   </div>
  4162. </div>
  4163.  
  4164. <script>$(document).on("pagechange", function () { if($("#_config_buffer").is(":visible")) { m_config_buffer__get(); hideLoadingSpinner(); }});
  4165.  
  4166. /* zakresy walidacyjne */
  4167. var temp_zas_min = 0;
  4168. var temp_zas_max = 0;
  4169.  
  4170. /* eventy na inputach - pokazanie zakresu oraz dynamiczna walidacja */
  4171. $("#config_buffer__power_temp").on("focusin", function(){
  4172.     if ($("#_config_buffer").is(":visible")){
  4173.     $("#config_buffer_info_1").show();
  4174.     }
  4175. });
  4176.  
  4177. $("#config_buffer__power_temp").on("focusout", function(){
  4178.     if ($("#_config_buffer").is(":visible")){
  4179.     $("#config_buffer_info_1").hide();
  4180.     }
  4181. });
  4182.  
  4183. $("#config_buffer__power_temp").on("input", function(){
  4184.     if ($("#_config_buffer").is(":visible")){
  4185.         if (!validate($("#config_buffer__power_temp"), temp_zas_min,  temp_zas_max,  {})){
  4186.             $("#config_buffer_save").css("background-color","#CCCCCC");
  4187.             $("#config_buffer_save").css("color","#D9D9D9");
  4188.         }else{
  4189.             $("#config_buffer_save").css("background-color","");
  4190.             $("#config_buffer_save").css("color","#000000");
  4191.         }
  4192.     }
  4193. });
  4194.  
  4195. /* ładowanie zmiennych i zakresów walidacyjnych */
  4196. function m_config_buffer__get() {
  4197.   var reg_val  = getReg("0bba", "2")
  4198.   var temp_zas = regToInt(getReg("0b8e", "1")["0b8e"]);
  4199.   var outsched = getBit(regToInt(getReg("0b55", "1")["0b55"]), 13);
  4200.  
  4201.   temp_zas_min = parseInt(regToInt(reg_val["0bba"])) / 10;
  4202.   temp_zas_max = parseInt(regToInt(reg_val["0bbb"])) / 10;
  4203.  
  4204.   var text = "zakres: " + temp_zas_min + " ÷ " + temp_zas_max + " " + "[°C]";
  4205.   $("#config_buffer_info_1").text(text.replace(/\./g,","));
  4206.    
  4207.   $("#config_buffer__power_temp").val(parseInt(temp_zas / 10));
  4208.   $("#config_buffer__out_of_schedule").prop("checked", outsched).checkboxradio("refresh");
  4209.  
  4210.     if (!validate($("#config_buffer__power_temp"), temp_zas_min,  temp_zas_max,  {})){
  4211.         $("#config_buffer_save").css("background-color","#CCCCCC");
  4212.         $("#config_buffer_save").css("color","#D9D9D9");
  4213.     }else{
  4214.         $("#config_buffer_save").css("background-color","");
  4215.         $("#config_buffer_save").css("color","#000000");
  4216.     }
  4217. }
  4218.  
  4219. /* ustawienie stanu bufora po dokonaniu walidacji, po sukcesie powrót do menu opcji */
  4220. function m_config_buffer__set() {
  4221.   var validation = true;
  4222.  
  4223.   if(!validate($("#config_buffer__power_temp"), temp_zas_min, temp_zas_max, {})) { validation = false; }
  4224.  
  4225.   if(validation) {
  4226.     temp_zas = parseInt($("#config_buffer__power_temp").val())* 10;
  4227.     outsched = $("#config_buffer__out_of_schedule").prop("checked");
  4228.  
  4229.     setReg("0b8e", regToHex(temp_zas, false));
  4230.     reg = regToInt(getReg("0b55", "1")["0b55"]);
  4231.     reg = setBit(reg, 13, outsched);
  4232.     setReg("0b55", regToHex(reg));
  4233.  
  4234.     window.location.href = "#config";
  4235.   }
  4236. }
  4237. </script>
  4238. <!-- /page config_buffer -->
  4239.  
  4240. <!-- page: #config_co -->
  4241. <div data-role="page" id="config_co_win" data-theme="a">
  4242.   <div data-role="header">
  4243.     <h1><a onclick="showLoadingSpinner();" href="#about" style="color:inherit; text-decoration:none;" data-rel="dialog" data-transition="pop">obieg co</a></h1>
  4244.     <a href="#start" class="ui-btn ui-shadow ui-corner-all ui-icon-home ui-btn-icon-notext ui-btn-inline" onclick="showLoadingSpinner();">&nbsp;</a>
  4245.     <a href="#config" class="ui-btn ui-shadow ui-corner-all ui-icon-carat-r ui-btn-icon-notext ui-btn-inline">&nbsp;</a>
  4246.   </div>
  4247.  
  4248.   <div role="main">
  4249.     <div class="ui-body">
  4250.       <ul data-role="listview" data-inset="true">
  4251.         <li id="config_co_temp_max_li" class="ui-body" style="display: none;">
  4252.         <label>temp. zasilania max</label>
  4253.         <label id="config_co_win_info_1" style="display:none;">zakres: </label>
  4254.         <input data-clear-btn="false" id="config_co_temp_max" type="number">
  4255.         </li>
  4256.         <li id="config_co_temp_man_li" class="ui-body" style="display: none;">
  4257.         <label>temp. zasilania ręczna</label>
  4258.         <label id="config_co_win_info_2" style="display:none;">zakres: </label>
  4259.         <input data-clear-btn="false" id="config_co_temp_man" type="number">
  4260.         </li>
  4261.         <li class="ui-body">
  4262.         <label>temp. zewnętrznego wyłączenia</label>
  4263.         <label id="config_co_win_info_3" style="display:none;">zakres: </label>
  4264.         <input data-clear-btn="false" id="config_co_temp_out" type="number">
  4265.         </li>
  4266.         <li id="config_co_set_li" class="ui-body" style="display: none;">
  4267.           <label>regulacja</label>
  4268.           <select id="config_co_set" onchange="reg_config_co()">
  4269.             <option value="0">krzywa grzania</option>
  4270.             <option value="1">nastawa ręczna</option>
  4271.           </select>
  4272.         </li>
  4273.         <li class="ui-body" id="config_co_nr_li" style="display: none;">
  4274.         <label>numer krzywej grzania</label>
  4275.         <label id="config_co_win_info_4" style="display:none;">zakres: </label>
  4276.         <input data-clear-btn="false" id="config_co_nr" type="number">
  4277.         </li>
  4278.         <li class="ui-body" id="config_co_mv_li" style="display: none;">
  4279.         <label>przesunięcie krzywej</label>
  4280.         <label id="config_co_win_info_5" style="display:none;">zakres: </label>
  4281.         <input data-clear-btn="false" id="config_co_mv" type="number">
  4282.         </li>
  4283.         <li class="ui-body" id="config_co_frozen_on_off_li"><label><input id="config_co_frozen_on_off" type="checkbox">ochrona przeciwzamrożeniowa budynku</label></li>
  4284.       </ul>
  4285.       <a data-direction="reverse" id="config_co_win_save" class="ui-btn ui-shadow ui-corner-all ui-btn-b" onclick="set_config_co();">zapisz i zamknij okno</a>
  4286.     </div>
  4287.   </div>
  4288. </div>
  4289.  
  4290. <script>$(document).on("pagechange", function () { if($("#config_co_win").is(":visible")) { get_config_co(); hideLoadingSpinner(); }});
  4291.  
  4292. /* zakresy walidacyjne */
  4293. var krzywa_grzania_min = 0;  var krzywa_grzania_max = 0;
  4294. var przesuniecie_min = 0;    var przesuniecie_max = 0;
  4295. var temp_zas_min = 0;        var temp_zas_max = 0;
  4296. var temp_zas_reczna_min = 0; var temp_zas_reczna_max = 0;
  4297. var temp_wyl_min = 0;        var temp_wyl_max = 0;
  4298. var mode_conf_co;
  4299. var msk_version = 0;         var msk_type = 0;
  4300.  
  4301. /* ustawienie początkowego wyświetlania */
  4302. $(function () {
  4303.     $("#config_co_temp_max_li").attr("style", "display:none");
  4304.     $("#config_co_temp_man_li").attr("style", "display:none");
  4305.     $("#config_co_set_li").attr("style", "display:none");
  4306.     $("#config_co_nr_li").attr("style", "display:none");
  4307.     $("#config_co_mv_li").attr("style", "display:none");
  4308. })
  4309.  
  4310. /* eventy na inputach - wyświetlanie zakresu oraz dynamiczna walidacja */
  4311. $("#config_co_temp_max").on("focusin", function(){
  4312.     if ($("#config_co_win").is(":visible")){
  4313.     $("#config_co_win_info_1").show();
  4314.     }
  4315. });
  4316.  
  4317. $("#config_co_temp_max").on("focusout", function(){
  4318.     if ($("#config_co_win").is(":visible")){
  4319.     $("#config_co_win_info_1").hide();
  4320.     }
  4321. });
  4322.  
  4323. $("#config_co_temp_man").on("focusin", function(){
  4324.     if ($("#config_co_win").is(":visible")){
  4325.     $("#config_co_win_info_2").show();
  4326.     }
  4327. });
  4328.  
  4329. $("#config_co_temp_man").on("focusout", function(){
  4330.     if ($("#config_co_win").is(":visible")){
  4331.     $("#config_co_win_info_2").hide();
  4332.     }
  4333. });
  4334.  
  4335. $("#config_co_temp_out").on("focusin", function(){
  4336.     if ($("#config_co_win").is(":visible")){
  4337.     $("#config_co_win_info_3").show();
  4338.     }
  4339. });
  4340.  
  4341. $("#config_co_temp_out").on("focusout", function(){
  4342.     if ($("#config_co_win").is(":visible")){
  4343.     $("#config_co_win_info_3").hide();
  4344.     }
  4345. });
  4346.  
  4347. $("#config_co_nr").on("focusin", function(){
  4348.     if ($("#config_co_win").is(":visible")){
  4349.     $("#config_co_win_info_4").show();
  4350.     }
  4351. });
  4352.  
  4353. $("#config_co_nr").on("focusout", function(){
  4354.     if ($("#config_co_win").is(":visible")){
  4355.     $("#config_co_win_info_4").hide();
  4356.     }
  4357. });
  4358.  
  4359. $("#config_co_mv").on("focusin", function(){
  4360.     if ($("#config_co_win").is(":visible")){
  4361.     $("#config_co_win_info_5").show();
  4362.     }
  4363. });
  4364.  
  4365. $("#config_co_mv").on("focusout", function(){
  4366.     if ($("#config_co_win").is(":visible")){
  4367.     $("#config_co_win_info_5").hide();
  4368.     }
  4369. });
  4370.  
  4371. $("#config_co_temp_max").on("input", function(){
  4372.     if ($("#config_co_win").is(":visible")){
  4373.         temp_zas_reczna_max = parseInt($("#config_co_temp_max").val());
  4374.         if (temp_zas_reczna_max > temp_zas_max) temp_zas_reczna_max = temp_zas_max;
  4375.         else if (temp_zas_reczna_max < temp_zas_min) temp_zas_reczna_max = temp_zas_min;
  4376.         var text = "zakres: " + temp_zas_reczna_min + " ÷ " + temp_zas_reczna_max + " " + "[°C]";
  4377.         $("#config_co_win_info_2").text(text.replace(/\./g,","));
  4378.         validate_config_co();
  4379.     }
  4380. });
  4381.  
  4382. $("#config_co_temp_man").on("input", function(){
  4383.     if ($("#config_co_win").is(":visible")){
  4384.         validate_config_co();
  4385.     }
  4386. });
  4387.  
  4388. $("#config_co_temp_out").on("input", function(){
  4389.     if ($("#config_co_win").is(":visible")){
  4390.         validate_config_co();
  4391.     }
  4392. });
  4393.  
  4394. $("#config_co_nr").on("input", function(){
  4395.     if ($("#config_co_win").is(":visible")){
  4396.         validate_config_co();
  4397.     }
  4398. });
  4399.  
  4400. $("#config_co_mv").on("input", function(){
  4401.     if ($("#config_co_win").is(":visible")){
  4402.         validate_config_co();
  4403.     }
  4404. });
  4405.  
  4406. /* funkcja walidująca każdą z kontrolek w wybranym trybie pracy */
  4407. function validate_config_co(){
  4408.     var validation = true;
  4409.  
  4410.     switch(mode_conf_co) {
  4411.         case 1:
  4412.             if(!validate($("#config_co_temp_max"), temp_zas_min,        temp_zas_max,        {})) { validation = false; }
  4413.             if(!validate($("#config_co_temp_out"), temp_wyl_min,        temp_wyl_max,        {})) { validation = false; }
  4414.             break;
  4415.         case 2:
  4416.             if(!validate($("#config_co_temp_out"), temp_wyl_min,        temp_wyl_max,        {})) { validation = false; }
  4417.             break;
  4418.         default:
  4419.             if(!validate($("#config_co_temp_max"), temp_zas_min,        temp_zas_max,        {})) { validation = false; }
  4420.             if(!validate($("#config_co_temp_out"), temp_wyl_min,        temp_wyl_max,        {})) { validation = false; }
  4421.             if(!validate($("#config_co_nr"),       krzywa_grzania_min,  krzywa_grzania_max,  {})) { validation = false; }
  4422.             if(!validate($("#config_co_mv"),       przesuniecie_min,    przesuniecie_max,    {})) { validation = false; }  
  4423.             if(!validate($("#config_co_temp_man"), temp_zas_reczna_min, temp_zas_reczna_max, {})) { validation = false; }
  4424.     }
  4425.    
  4426.     if (!validation){
  4427.         $("#config_co_win_save").css("background-color","#CCCCCC");
  4428.         $("#config_co_win_save").css("color","#D9D9D9");
  4429.     }else{
  4430.         $("#config_co_win_save").css("background-color","");
  4431.         $("#config_co_win_save").css("color","#000000");
  4432.     }
  4433.    
  4434.     return validation;
  4435. }
  4436.  
  4437. /* ładowanie zmiennych i zakresów walidacyjnych oraz ustawienie interfejsu zależnie od trybu */
  4438.   function get_config_co() {
  4439.     var reg_val = getReg("0bba", "12");
  4440.     var mode_conf_co = regToInt(getReg("0b8a", "1")["0b8a"]);  
  4441.     var reg1 = getReg("0b71", "4");
  4442.     var reg2 = getReg("0b7b", "1");
  4443.     var reg3 = getReg("0b55", "1");
  4444.    
  4445.     /* wersja MSK */
  4446.     $.ajax({
  4447.       type: 'GET',
  4448.       url: "api/dev/" + id + "/info",
  4449.       timeout: 5000,
  4450.       dataType: 'json',
  4451.       async: false,
  4452.       success: function(data) {
  4453.          msk_version = parseInt(data["info"]["prg_msk_ver"]);
  4454.          msk_type = parseInt(data["info"]["prg_msk_type"]);
  4455.       },
  4456.         error: function() {
  4457.             window.location.href = "#api_error_dlg";
  4458.             hideLoadingSpinner();
  4459.         }
  4460.     });  
  4461.        
  4462.     if (msk_version < 44 && msk_type == 1){
  4463.         przesuniecie_min    = parseInt(regToInt(reg_val["0bca"])/10);      przesuniecie_max    = parseInt(regToInt(reg_val["0bcb"])/10);
  4464.         cp   = parseInt(regToInt(reg1["0b72"])/10);
  4465.     }
  4466.     else{
  4467.         przesuniecie_min    = parseInt(regToInt(reg_val["0bca"]));      przesuniecie_max    = parseInt(regToInt(reg_val["0bcb"]));
  4468.         cp   = regToInt(reg1["0b72"]);
  4469.     }
  4470.                
  4471.     krzywa_grzania_min  = parseInt(regToInt(reg_val["0bc8"]));      krzywa_grzania_max  = parseInt(regToInt(reg_val["0bc9"]));
  4472.     temp_zas_min        = parseInt(regToInt(reg_val["0bba"])) / 10; temp_zas_max        = parseInt(regToInt(reg_val["0bbb"])) / 10;
  4473.     temp_zas_reczna_min = parseInt(regToInt(reg_val["0bba"])) / 10; temp_zas_reczna_max = parseInt(regToInt(reg_val["0bbb"])) / 10;
  4474.     temp_wyl_min        = parseInt(regToInt(reg_val["0bc2"])) / 10; temp_wyl_max        = parseInt(regToInt(reg_val["0bc3"])) / 10;
  4475.    
  4476.     var text = "zakres: " + temp_zas_min + " ÷ " + temp_zas_max + " " + "[°C]";
  4477.     $("#config_co_win_info_1").text(text.replace(/\./g,","));    
  4478.     $("#config_co_win_info_2").text(text.replace(/\./g,","));    
  4479.     text = "zakres: " + temp_wyl_min + " ÷ " + temp_wyl_max + " " + "[°C]";
  4480.     $("#config_co_win_info_3").text(text.replace(/\./g,","));    
  4481.     text = "zakres: " + krzywa_grzania_min + " ÷ " + krzywa_grzania_max;
  4482.     $("#config_co_win_info_4").text(text.replace(/\./g,","));    
  4483.     text = "zakres: " + przesuniecie_min + " ÷ " + przesuniecie_max + " " + "[°C]";
  4484.     $("#config_co_win_info_5").text(text.replace(/\./g,","));    
  4485.  
  4486.     cv   = regToInt(reg1["0b71"]);
  4487.     tman = regToInt(reg1["0b73"]) / 10;
  4488.     toff = regToInt(reg1["0b74"]) / 10;
  4489.     tmax = regToInt(reg2["0b7b"]) / 10;
  4490.     fp   = getBit(regToInt(reg3["0b55"]), 12);
  4491.     re   = getBit(regToInt(reg3["0b55"]), 14);
  4492.  
  4493.     $("#config_co_nr").val(cv);
  4494.     $("#config_co_mv").val(cp);
  4495.     $("#config_co_temp_max").val(tmax);
  4496.     $("#config_co_temp_man").val(tman);
  4497.     $("#config_co_temp_out").val(toff);
  4498.     $("#config_co_frozen_on_off").prop("checked", fp).checkboxradio("refresh");
  4499.     if(re) { $("#config_co_set").val(0).change(); } else { $("#config_co_set").val(1).change(); }
  4500.  
  4501.     if(setBit(reg3, 1)) {
  4502.         $("#config_co_frozen_on_off_li").attr("style", "display:none");
  4503.     } else {
  4504.         $("#config_co_frozen_on_off_li").attr("style", "display:yes");
  4505.     }
  4506.  
  4507.     switch(mode_conf_co) {
  4508.         case 1:
  4509.             $("#config_co_temp_max_li").attr("style", "display:yes");
  4510.             $("#config_co_temp_man_li").attr("style", "display:none");
  4511.             $("#config_co_set_li").attr("style", "display:none");
  4512.             $("#config_co_nr_li").attr("style", "display:none");
  4513.             $("#config_co_mv_li").attr("style", "display:none");
  4514.             break;
  4515.         case 2:
  4516.             $("#config_co_temp_max_li").attr("style", "display:none");
  4517.             $("#config_co_temp_man_li").attr("style", "display:none");
  4518.             $("#config_co_set_li").attr("style", "display:none");
  4519.             $("#config_co_nr_li").attr("style", "display:none");
  4520.             $("#config_co_mv_li").attr("style", "display:none");
  4521.             break;
  4522.         default:
  4523.           $("#config_co_temp_max_li").attr("style", "display:yes");
  4524.           $("#config_co_temp_man_li").attr("style", "display:yes");
  4525.           $("#config_co_set_li").attr("style", "display:yes");
  4526.           $("#config_co_nr_li").attr("style", "display:yes");
  4527.           $("#config_co_mv_li").attr("style", "display:yes");
  4528.     }
  4529.     reg_config_co();
  4530.     validate_config_co()
  4531. }
  4532.  
  4533. /* ustawianie parametrów po dokonaniu walidacji, po sukcesie powrót do menu opcji */
  4534.   function set_config_co() {
  4535.     if(validate_config_co()) {
  4536.       krzywa_grzania = parseInt($("#config_co_nr").val());
  4537.      
  4538.       if (msk_version < 44 && msk_type == 1){
  4539.           przesuniecie   = parseInt($("#config_co_mv").val() * 10);
  4540.       }
  4541.       else{
  4542.           przesuniecie   = parseInt($("#config_co_mv").val());
  4543.       }      
  4544.      
  4545.       regulacja      = parseInt($("#config_co_set").val());
  4546.       temp_max       = parseInt($("#config_co_temp_max").val() * 10);
  4547.       temp_zas       = parseInt($("#config_co_temp_man").val() * 10);
  4548.       temp_zew       = parseInt($("#config_co_temp_out").val() * 10);
  4549.       ochrona        = $("#config_co_frozen_on_off").prop("checked");
  4550.  
  4551.       setReg("0b71", regToHex(krzywa_grzania, false));
  4552.       setReg("0b72", regToHex(przesuniecie, false));
  4553.       setReg("0b73", regToHex(temp_zas, false));
  4554.       setReg("0b74", regToHex(temp_zew, false));
  4555.       setReg("0b7b", regToHex(temp_max, false));
  4556.       reg = regToInt(getReg("0b55", "1")["0b55"]);
  4557.       reg = setBit(reg, 12, ochrona);
  4558.       reg = setBit(reg, 14, (regulacja != 1));
  4559.       setReg("0b55", regToHex(reg));
  4560.  
  4561.       window.location.href = "#config";
  4562.     }
  4563.   }
  4564.  
  4565. /* funckja przełączająca interfejs zależnie wartości config_co_set */
  4566.   function reg_config_co() {
  4567.     if(parseInt($("#config_co_set").val())) {
  4568.         $("#config_co_nr_li").attr("style", "display:none");
  4569.         $("#config_co_mv_li").attr("style", "display:none");
  4570.     } else {
  4571.         $("#config_co_nr_li").attr("style", "display:yes");
  4572.         $("#config_co_mv_li").attr("style", "display:yes");
  4573.     }
  4574.   }
  4575. </script>
  4576. <!-- /page config_boil -->
  4577.  
  4578. <!-- page: #config_boil -->
  4579. <div data-role="page" id="config_boil_win" data-theme="a">
  4580.   <div data-role="header">
  4581.     <h1><a onclick="showLoadingSpinner();" href="#about" style="color:inherit; text-decoration:none;" data-rel="dialog" data-transition="pop">zasobnik cwu</a></h1>
  4582.     <a href="#start" class="ui-btn ui-shadow ui-corner-all ui-icon-home ui-btn-icon-notext ui-btn-inline" onclick="showLoadingSpinner();">&nbsp;</a>
  4583.     <a href="#config" class="ui-btn ui-shadow ui-corner-all ui-icon-carat-r ui-btn-icon-notext ui-btn-inline">&nbsp;</a>
  4584.   </div>
  4585.  
  4586.   <div role="main">
  4587.     <div class="ui-body">
  4588.       <ul data-role="listview" data-inset="true">
  4589.         <li class="ui-body"><label><input id="config_boil_on_off" type="checkbox" onchange="zas_config_boil();">zasobnik włączony</label></li>
  4590.         <li class="ui-body" id="config_boil_reg_li">
  4591.           <label>regulacja</label>
  4592.           <select id="config_boil_reg">
  4593.             <option value="0">wewnętrzna</option>
  4594.             <option value="1">zewnętrzna</option>
  4595.           </select>
  4596.         </li>
  4597.         <li class="ui-body" id="config_boil_temp_li">
  4598.             <label>temperatura zasilania</label>
  4599.             <label id="config_boil_info_1" style="display:none;">zakres: </label>
  4600.             <input data-clear-btn="false" id="config_boil_temp" type="number"></li>
  4601.       </ul>
  4602.       <a id="config_boil_save" data-direction="reverse" class="ui-btn ui-shadow ui-corner-all ui-btn-b" onclick="set_config_boil();">zapisz i zamknij okno</a>
  4603.     </div>
  4604.   </div>
  4605. </div>
  4606.  
  4607. <script>$(document).on("pagechange", function () { if($("#config_boil_win").is(":visible")) { get_config_boil(); hideLoadingSpinner(); }});
  4608.  
  4609. /* zakresy walidacyjne */
  4610.     var temp_zas_min = 0;
  4611.     var temp_zas_max = 0;
  4612.  
  4613. /* eventy na inputach - wyświetlanie zakresu oraz dynamiczna walidacja */     
  4614. $("#config_boil_temp").on("focusin", function(){
  4615.     if ($("#config_boil_win").is(":visible")){
  4616.     $("#config_boil_info_1").show();
  4617.     }
  4618. });
  4619.  
  4620. $("#config_boil_temp").on("focusout", function(){
  4621.     if ($("#config_boil_win").is(":visible")){
  4622.     $("#config_boil_info_1").hide();
  4623.     }
  4624. });
  4625.  
  4626. $("#config_boil_temp").on("input", function(){
  4627.     if ($("#config_boil_win").is(":visible")){
  4628.         if (!validate($("#config_boil_temp"), temp_zas_min,  temp_zas_max,  {})){
  4629.             $("#config_boil_save").css("background-color","#CCCCCC");
  4630.             $("#config_boil_save").css("color","#D9D9D9");
  4631.         }else{
  4632.             $("#config_boil_save").css("background-color","");
  4633.             $("#config_boil_save").css("color","#000000");
  4634.         }
  4635.     }
  4636. });
  4637.  
  4638. /* ładowanie zmiennych i zakresów walidacyjnych */
  4639.   function get_config_boil() {
  4640.     var reg_val = getReg("0bbc", "2");
  4641.     var reg1 = getReg("0b8c", "1");
  4642.     var reg2 = getReg("0b55", "1");
  4643.    
  4644.     temp_zas_min = parseInt(regToInt(reg_val["0bbc"])) / 10;
  4645.     temp_zas_max = parseInt(regToInt(reg_val["0bbd"])) / 10;
  4646.    
  4647.     var text = "zakres: " + temp_zas_min + " ÷ " + temp_zas_max + " " + "[°C]";
  4648.     $("#config_boil_info_1").text(text.replace(/\./g,","));
  4649.    
  4650.     tz  = regToInt(reg1["0b8c"]);
  4651.     reg = getBit(regToInt(reg2["0b55"]), 2);
  4652.     wl  = getBit(regToInt(reg2["0b55"]), 4);
  4653.  
  4654.     $("#config_boil_temp").val(parseInt(tz / 10));
  4655.     if(!reg) { $("#config_boil_reg").val(0).change(); } else { $("#config_boil_reg").val(1).change(); }
  4656.     $("#config_boil_on_off").prop("checked", wl).checkboxradio("refresh");
  4657.    
  4658.     if (!validate($("#config_boil_temp"), temp_zas_min,  temp_zas_max,  {})){
  4659.         $("#config_boil_save").css("background-color","#CCCCCC");
  4660.         $("#config_boil_save").css("color","#D9D9D9");
  4661.     }else{
  4662.         $("#config_boil_save").css("background-color","");
  4663.         $("#config_boil_save").css("color","#000000");
  4664.     }
  4665.   }
  4666.  
  4667. /* ustawienie stanu zasobnika po dokonaniu walidacji, po sukcesie powrót do menu opcji */  
  4668.   function set_config_boil() {
  4669.     var validation = true;
  4670.     if(!validate($("#config_boil_temp"), temp_zas_min,  temp_zas_max,  {})) { validation = false; }
  4671.  
  4672.     if (validation){
  4673.         temperatura_zasilania = parseInt($("#config_boil_temp").val()) * 10;
  4674.         regulacja             = parseInt($("#config_boil_reg").val());
  4675.         zasobnik_on_off       = $("#config_boil_on_off").prop("checked");
  4676.        
  4677.         setReg("0b8c", regToHex(temperatura_zasilania, false));
  4678.         reg = regToInt(getReg("0b55", "1")["0b55"]);
  4679.         reg = setBit(reg, 4, zasobnik_on_off);
  4680.         reg = setBit(reg, 2, (regulacja == 1));
  4681.         setReg("0b55", regToHex(reg));
  4682.        
  4683.         window.location.href = "#config";
  4684.     }
  4685.   }
  4686.  
  4687.   /* reakcja na włączenie/wyłączenie zasobnika cwu */
  4688.   function zas_config_boil() {
  4689.     zasobnik_on_off  = $("#config_boil_on_off").prop("checked");
  4690.  
  4691.     if(zasobnik_on_off) {
  4692.         $("#config_boil_reg_li").attr("style", "display:yes");
  4693.         $("#config_boil_temp_li").attr("style", "display:yes");
  4694.        
  4695.         if (!validate($("#config_boil_temp"), temp_zas_min,  temp_zas_max,  {})){
  4696.             $("#config_boil_save").css("background-color","#CCCCCC");
  4697.             $("#config_boil_save").css("color","#D9D9D9");
  4698.         }else{
  4699.             $("#config_boil_save").css("background-color","");
  4700.             $("#config_boil_save").css("color","#000000");
  4701.         }
  4702.     } else {
  4703.         $("#config_boil_reg_li").attr("style", "display:none");
  4704.         $("#config_boil_temp_li").attr("style", "display:none");
  4705.         $("#config_boil_save").css("background-color","");
  4706.         $("#config_boil_save").css("color","#000000");
  4707.     }
  4708.  
  4709.   }
  4710. </script>
  4711. <!-- /page config_boil -->
  4712.  
  4713. <!-- page: #config_room -->
  4714. <div data-role="page" id="config_room" data-theme="a">
  4715.   <div data-role="header">
  4716.     <h1><a onclick="showLoadingSpinner();" href="#about" style="color:inherit; text-decoration:none;" data-rel="dialog" data-transition="pop">temperatura pokojowa</a></h1>
  4717.     <a href="#start" class="ui-btn ui-shadow ui-corner-all ui-icon-home ui-btn-icon-notext ui-btn-inline" onclick="showLoadingSpinner();">&nbsp;</a>
  4718.     <a href="#config" class="ui-btn ui-shadow ui-corner-all ui-icon-carat-r ui-btn-icon-notext ui-btn-inline">&nbsp;</a>
  4719.   </div>
  4720.  
  4721.   <div role="main">
  4722.     <div class="ui-body">
  4723.       <ul data-role="listview" data-inset="true">
  4724.         <li id="config_room_reg" class="ui-body">
  4725.           <label>regulator</label>
  4726.           <select id="config_room_reg_selector">
  4727.             <option value="0">wewnętrzny</option>
  4728.             <option value="1">zewnetrzny</option>
  4729.           </select>
  4730.         </li>
  4731.         <li class="ui-body" id="config_room_temp_hysteresis_li">
  4732.         <label>histereza</label>
  4733.         <label id="config_room_info_1" style="display:none;">zakres: </label>
  4734.         <input data-clear-btn="false" id="config_room_temp_hysteresis" type="number" step="0.1">
  4735.     </li>
  4736.         <li class="ui-body" id="config_room_temp_on_off_li"><label><input id="config_room_temp_on_off" type="checkbox">kontrola temp. pokojowej</label></li>
  4737.       </ul>
  4738.       <a data-direction="reverse" id="config_room_save"  class="ui-btn ui-shadow ui-corner-all ui-btn-b" onclick="set_config_room();">zapisz i zamknij okno</a>
  4739.     </div>
  4740.   </div>
  4741. </div>
  4742.  
  4743. <script>$(document).on("pagechange", function () {
  4744.     if($("#config_room").is(":visible"))
  4745.     {
  4746.         get_config_room();
  4747.         hideLoadingSpinner();
  4748.     }
  4749. });
  4750.  
  4751. /* zmienne walidacyjne */
  4752.   var histereza_min = 0;
  4753.   var histereza_max = 0;
  4754.  
  4755. /* eventy na inputach - wyświetlanie zakresu oraz dynamiczna walidacja */
  4756.  
  4757. /* zmiana interfejsu zależnie od trybu */
  4758. $("#config_room_reg").on("change", function(){
  4759.     if ($("#config_room").is(":visible")){
  4760.         switch(parseInt($("#config_room_reg_selector").val())){
  4761.             case 0:
  4762.                 $("#config_room_temp_hysteresis_li").attr("style", "display:yes");
  4763.                 $("#config_room_temp_on_off_li").attr("style", "display:yes");
  4764.                 if (!validate($("#config_room_temp_hysteresis"), histereza_min,  histereza_max,  {})){
  4765.                     $("#config_room_save").css("background-color","#CCCCCC");
  4766.                     $("#config_room_save").css("color","#D9D9D9");
  4767.                 }else{
  4768.                     $("#config_room_save").css("background-color","");
  4769.                     $("#config_room_save").css("color","#000000");
  4770.                 }                
  4771.                 break;
  4772.             case 1:
  4773.                 $("#config_room_temp_hysteresis_li").attr("style", "display:none");
  4774.                 $("#config_room_temp_on_off_li").attr("style", "display:none")
  4775.                 $("#config_room_save").css("background-color","");
  4776.                 $("#config_room_save").css("color","#000000");
  4777.                 break;
  4778.         }
  4779.     }
  4780. });
  4781.      
  4782. $("#config_room_temp_hysteresis").on("focusin", function(){
  4783.     if ($("#config_room").is(":visible")){
  4784.     $("#config_room_info_1").show();
  4785.     }
  4786. });
  4787.  
  4788. $("#config_room_temp_hysteresis").on("focusout", function(){
  4789.     if ($("#config_room").is(":visible")){
  4790.     $("#config_room_info_1").hide();
  4791.     }
  4792. });
  4793.  
  4794. $("#config_room_temp_hysteresis").on("input", function(){
  4795.     if ($("#config_room").is(":visible")){
  4796.         if (!validate($("#config_room_temp_hysteresis"), histereza_min,  histereza_max,  {})){
  4797.             $("#config_room_save").css("background-color","#CCCCCC");
  4798.             $("#config_room_save").css("color","#D9D9D9");
  4799.         }else{
  4800.             $("#config_room_save").css("background-color","");
  4801.             $("#config_room_save").css("color","#000000");
  4802.         }
  4803.     }
  4804. });
  4805.  
  4806. /* ładowanie zmiennych i zakresów walidacyjnych */
  4807.   function get_config_room() {
  4808.     var reg_val = getReg("0bc6", "2");
  4809.     var reg1    = getReg("0b75", "1");
  4810.     var reg2    = getReg("0b55", "1");
  4811.  
  4812.     histereza_min = parseInt(regToInt(reg_val["0bc6"])) / 10;
  4813.     histereza_max = parseInt(regToInt(reg_val["0bc7"])) / 10;
  4814.     var text = "zakres: " + histereza_min + " ÷ " + histereza_max + " " + "[°C]";
  4815.     $("#config_room_info_1").text(text.replace(/\./g,","));
  4816.    
  4817.     his = regToInt(reg1["0b75"]);
  4818.     reg = getBit(regToInt(reg2["0b55"]), 1);
  4819.     kn  = getBit(regToInt(reg2["0b55"]), 15);
  4820.  
  4821.     $("#config_room_temp_on_off").prop("checked", kn).checkboxradio("refresh");
  4822.     $("#config_room_temp_hysteresis").val((his / 10).toFixed(1));
  4823.     if(!reg) { $("#config_room_reg").val(0).change(); } else { $("#config_room_reg").val(1).change(); }
  4824.  
  4825.     buff = regToInt(getReg("0b8a", "1")["0b8a"]);
  4826.  
  4827.     if(buff == 2) {
  4828.       $("#config_room_reg").attr("style", "display:none");
  4829.     } else {
  4830.       $("#config_room_reg").attr("style", "display:yes");
  4831.     }
  4832.    
  4833.     if (!validate($("#config_room_temp_hysteresis"), histereza_min,  histereza_max,  {})){
  4834.         $("#config_room_save").css("background-color","#CCCCCC");
  4835.         $("#config_room_save").css("color","#D9D9D9");
  4836.     }else{
  4837.         $("#config_room_save").css("background-color","");
  4838.         $("#config_room_save").css("color","#000000");
  4839.     }
  4840.   }
  4841.  
  4842. /* zapis ustawień po dokonaniu walidacji i powrót do menu opcji */
  4843.   function set_config_room() {
  4844.     var validation = true;
  4845.    
  4846.     if (parseInt($("#config_room_reg_selector").val()) == 0){
  4847.         if(!validate($("#config_room_temp_hysteresis"), histereza_min,  histereza_max,  {})) { validation = false; }
  4848.     }    
  4849.    
  4850.     if(validation) {
  4851.       kontrola_on_off = $("#config_room_temp_on_off").prop("checked");
  4852.       histereza       = parseInt($("#config_room_temp_hysteresis").val() * 10);
  4853.       regulator       = parseInt($("#config_room_reg").val());
  4854.  
  4855.       setReg("0b75", regToHex(histereza, false));
  4856.       reg = regToInt(getReg("0b55", "1")["0b55"]);
  4857.       reg = setBit(reg, 1, (regulator == 1));
  4858.       reg = setBit(reg, 15, kontrola_on_off);
  4859.       setReg("0b55", regToHex(reg));
  4860.  
  4861.       window.location.href = "#config";
  4862.     }
  4863.   }
  4864.  
  4865. </script>
  4866.  
  4867. <!-- /page config_room -->
  4868.  
  4869.  
  4870. <!-- page: #config_turbo -->
  4871. <div data-role="page" id="config_turbo_win" data-theme="a">
  4872.   <div data-role="header">
  4873.     <h1><a onclick="showLoadingSpinner();" href="#about" style="color:inherit; text-decoration:none;" data-rel="dialog" data-transition="pop">tryb turbo</a></h1>
  4874.     <a href="#start" class="ui-btn ui-shadow ui-corner-all ui-icon-home ui-btn-icon-notext ui-btn-inline" onclick="showLoadingSpinner();">&nbsp;</a>
  4875.     <a href="#config" class="ui-btn ui-shadow ui-corner-all ui-icon-carat-r ui-btn-icon-notext ui-btn-inline">&nbsp;</a>
  4876.   </div>
  4877.  
  4878.   <div role="main">
  4879.     <div class="ui-body">
  4880.       <ul data-role="listview" data-inset="true">
  4881.         <li class="ui-body"><label><input id="_config_turbo_on_off_" type="checkbox" onchange="aut_config_turbo();">automatycznie</label></li>
  4882.         <li class="ui-body" id="config_turbo_boil_on_off_li"><label><input id="config_turbo_boil_on_off" type="checkbox">priorytet zasobnika cwu</label></li>
  4883.         <li class="ui-body" id="config_turbo_hysteresis_li">
  4884.         <label>histereza trybu turbo</label>
  4885.         <label id="config_turbo_info_1" style="display:none;">zakres: </label>
  4886.         <input data-clear-btn="false" id="config_turbo_hysteresis" type="number">
  4887.         </li>
  4888.       </ul>
  4889.       <a id="config_turbo_save" data-direction="reverse" class="ui-btn ui-shadow ui-corner-all ui-btn-b" onclick="set_config_turbo();">zapisz i zamknij okno</a>
  4890.     </div>
  4891.   </div>
  4892. </div>
  4893.  
  4894. <script>$(document).on("pagechange", function () { if($("#config_turbo_win").is(":visible")) { get_config_turbo(); hideLoadingSpinner();}});
  4895.  
  4896. /* zakresy walidacyjne */
  4897.   var histereza_min = 0;
  4898.   var histereza_max = 0;
  4899.  
  4900. /* eventy na inputach - wyświetlanie zakresu oraz dynamiczna walidacja */
  4901. $("#config_turbo_hysteresis").on("focusin", function(){
  4902.     if ($("#config_turbo_win").is(":visible")){
  4903.     $("#config_turbo_info_1").show();
  4904.     }
  4905. });
  4906.  
  4907. $("#config_turbo_hysteresis").on("focusout", function(){
  4908.     if ($("#config_turbo_win").is(":visible")){
  4909.     $("#config_turbo_info_1").hide();
  4910.     }
  4911. });
  4912.  
  4913. $("#config_turbo_hysteresis").on("input", function(){
  4914.     if ($("#config_turbo_win").is(":visible")){
  4915.         if (!validate($("#config_turbo_hysteresis"), histereza_min,  histereza_max,  {})){
  4916.             $("#config_turbo_save").css("background-color","#CCCCCC");
  4917.             $("#config_turbo_save").css("color","#D9D9D9");
  4918.         }else{
  4919.             $("#config_turbo_save").css("background-color","");
  4920.             $("#config_turbo_save").css("color","#000000");
  4921.         }
  4922.     }
  4923. });
  4924.  
  4925. /* ładowanie zmiennych i zakresów walidacyjnych */
  4926.   function get_config_turbo() {
  4927.     var reg_val = getReg("0be0", "2");
  4928.     var reg1 = getReg("0b81", "1");
  4929.     var reg2 = getReg("0b55", "1");
  4930.  
  4931.     histereza_min = parseInt(regToInt(reg_val["0be0"])) / 10;
  4932.     histereza_max = parseInt(regToInt(reg_val["0be1"])) / 10;
  4933.     var text = "zakres: " + histereza_min + " ÷ " + histereza_max + " " + "[°C]";
  4934.     $("#config_turbo_info_1").text(text.replace(/\./g,","));
  4935.    
  4936.     his   = regToInt(reg1["0b81"]);
  4937.     tcwu  = getBit(regToInt(reg2["0b55"]), 0);
  4938.     tauto = getBit(regToInt(reg2["0b55"]), 11);
  4939.  
  4940.     $("#config_turbo_hysteresis").val((parseInt(his/10)));
  4941.     $("#config_turbo_boil_on_off").prop("checked", tcwu).checkboxradio("refresh");
  4942.     $("#config_turbo_on_off").prop("checked", tauto).checkboxradio("refresh");
  4943.  
  4944.     if(getBit(reg2, 4)) {
  4945.         $("#config_turbo_boil_on_off_li").attr("style", "display:none");
  4946.     } else {
  4947.         $("#config_turbo_boil_on_off_li").attr("style", "display:yes");
  4948.     }
  4949.  
  4950.     validate($("#config_turbo_hysteresis"), histereza_min,  histereza_max,  {});
  4951.     aut_config_turbo()
  4952.   }
  4953.  
  4954.  /* ustawienie parametrów w trybie turbo po dokonaniu walidacji i powrót do menu opcji */  
  4955.   function set_config_turbo() {
  4956.     if ($("#_config_turbo_on_off_").prop("checked")){
  4957.         var validation = true;
  4958.        
  4959.         if(!validate($("#config_turbo_hysteresis"), histereza_min,  histereza_max,  {})) { validation = false; }
  4960.        
  4961.         if(validation) {
  4962.             histereza = parseInt($("#config_turbo_hysteresis").val()) * 10;
  4963.             priorytet = $("#config_turbo_boil_on_off").prop("checked");
  4964.             turbo     = $("#_config_turbo_on_off_").prop("checked");
  4965.            
  4966.             setReg("0b81", regToHex(histereza, false));
  4967.             reg = regToInt(getReg("0b55", "1")["0b55"]);
  4968.             reg = setBit(reg, 0, priorytet);
  4969.             reg = setBit(reg, 11, turbo);
  4970.             setReg("0b55", regToHex(reg));
  4971.            
  4972.             window.location.href = "#config";  
  4973.         }
  4974.     }
  4975.     else{
  4976.             var reg1 = getReg("0b81", "1");
  4977.             histereza = parseInt(regToInt(reg1["0b81"]));
  4978.             priorytet = $("#config_turbo_boil_on_off").prop("checked");
  4979.             turbo     = $("#_config_turbo_on_off_").prop("checked");
  4980.            
  4981.             setReg("0b81", regToHex(histereza, false));
  4982.             reg = regToInt(getReg("0b55", "1")["0b55"]);
  4983.             reg = setBit(reg, 0, priorytet);
  4984.             reg = setBit(reg, 11, turbo);
  4985.             setReg("0b55", regToHex(reg));
  4986.            
  4987.             window.location.href = "#config";  
  4988.     }
  4989.   }
  4990.  
  4991.   /* przełączanie interfejsu zależnie od stanu checkboxa */
  4992.   function aut_config_turbo() {
  4993.     if($("#_config_turbo_on_off_").prop("checked")) {
  4994.       $("#config_turbo_hysteresis_li").attr("style", "display:yes");
  4995.         if (!validate($("#config_turbo_hysteresis"), histereza_min,  histereza_max,  {})){
  4996.             $("#config_turbo_save").css("background-color","#CCCCCC");
  4997.             $("#config_turbo_save").css("color","#D9D9D9");
  4998.         }else{
  4999.             $("#config_turbo_save").css("background-color","");
  5000.             $("#config_turbo_save").css("color","#000000");
  5001.         }
  5002.     } else {
  5003.       $("#config_turbo_hysteresis_li").attr("style", "display:none");
  5004.       $("#config_turbo_save").css("background-color","");
  5005.       $("#config_turbo_save").css("color","#000000");
  5006.     }
  5007.   }</script>
  5008. <!-- /page config_turbo -->
  5009.  
  5010. <!-- page: #config_pump -->
  5011. <div data-role="page" id="config_pump" data-theme="a">
  5012.   <div data-role="header">
  5013.     <h1><a onclick="showLoadingSpinner();" href="#about" style="color:inherit; text-decoration:none;" data-rel="dialog" data-transition="pop">pompa</a></h1>
  5014.     <a href="#start" class="ui-btn ui-shadow ui-corner-all ui-icon-home ui-btn-icon-notext ui-btn-inline" onclick="showLoadingSpinner();">&nbsp;</a>
  5015.     <a href="#config" class="ui-btn ui-shadow ui-corner-all ui-icon-carat-r ui-btn-icon-notext ui-btn-inline">&nbsp;</a>
  5016.   </div>
  5017.  
  5018.   <div role="main">
  5019.     <div class="ui-body">
  5020.       <ul data-role="listview" data-inset="true">
  5021.         <li>
  5022.           <label>typ</label>
  5023.           <select id="config_pump_type" onchange="">
  5024.             <option value="0">Wilo</option>
  5025.             <option value="1">Grundfos</option>
  5026.           </select>
  5027.         </li>
  5028.         <li id="config_pump_lift_li" class="ui-body">
  5029.           <label>wysokość podnoszenia [m]</label>
  5030.           <select id="config_pump_lift">
  5031.           </select>
  5032.         </li>
  5033.         <li id="config_pump_reg_li">
  5034.           <label>regulacja</label>
  5035.           <select id="config_pump_reg">
  5036.             <option value="0">delta p-zmienne</option>
  5037.             <option value="1">delta p-stale</option>
  5038.           </select>
  5039.         </li>
  5040.         <li class="ui-body"><label><input id="config_pump_auto" type="checkbox">praca automatyczna</label></li>
  5041.         <li class="ui-body"><label><input id="config_pump_venting" type="checkbox">odpowietrzanie teraz</label></li>
  5042.         <li>
  5043.         <label>godzina ochrony pompy</label>
  5044.         <input data-clear-btn="true" id="config_pump_protect_time" type="time">
  5045.         </li>
  5046.       </ul>
  5047.       <a id="config_pump_save" data-direction="reverse" class="ui-btn ui-shadow ui-corner-all ui-btn-b" onclick="set_config_pump();">zapisz i zamknij okno</a>
  5048.     </div>
  5049.   </div>
  5050. </div>
  5051.  
  5052. <script>$(document).on("pagechange", function () { if($("#config_pump").is(":visible")) { get_config_pump(); hideLoadingSpinner(); }});
  5053.  
  5054. /* event do sprawdzania stanu zegara na kontrolce przy zmianie */
  5055. $("#config_pump_protect_time").on("change", function(){
  5056.     if ($("#config_pump").is(":visible")){
  5057.         validate_config_pump();
  5058.     }
  5059. });
  5060.  
  5061. /* funkcja walidująca stan zegara na kontrolce */
  5062.   function validate_config_pump(){
  5063.       var validation = true;
  5064.      
  5065.         if ($("#config_pump_protect_time").val()){
  5066.             $("#config_pump_save").css("background-color","");
  5067.             $("#config_pump_save").css("color","#000000");
  5068.             $("#config_pump_protect_time").attr("style", "color: black; font-weight: normal;");
  5069.             $("#config_pump_protect_time").css("background-color", "transparent");
  5070.             $("#config_pump_protect_time").css("border","2px solid transparent");
  5071.         }else{
  5072.             $("#config_pump_save").css("background-color","#CCCCCC");
  5073.             $("#config_pump_save").css("color","#D9D9D9");     
  5074.             $("#config_pump_protect_time").attr("style", "color: black; font-weight: bold;");
  5075.             $("#config_pump_protect_time").css("background-color","#FF9999");
  5076.             $("#config_pump_protect_time").css("border","2px solid red");
  5077.             validation = false;
  5078.         }
  5079.      
  5080.       return validation;
  5081.   }
  5082.  
  5083.   /* pobieranie aktualnych ustawień */
  5084.   function get_config_pump() {
  5085.     var tryb_pracy = regToInt(getReg("0b8a", "1")["0b8a"]);
  5086.     if (tryb_pracy == 2){
  5087.         $("#config_pump_lift_li").hide();  
  5088.         $("#config_pump_reg_li").hide();    
  5089.     }
  5090.     else{
  5091.         $("#config_pump_lift_li").show();  
  5092.         $("#config_pump_reg_li").show();          
  5093.     }
  5094.  
  5095.     var reg_idx     = getReg("0b82", "2");
  5096.     var reg_idx_val = getReg("0b25", "7");
  5097.     var reg_protect = getReg("0b58", "2");
  5098.     var config1     = getReg("0b54", "2");
  5099.  
  5100.     idx     = parseInt(regToInt(reg_idx["0b83"]));
  5101.     idx_bor = parseInt(regToInt(reg_idx_val["0b25"]));
  5102.  
  5103.     var sel = document.getElementById("config_pump_lift");
  5104.     sel.innerHTML = "";
  5105.     for(i = 0; i <= idx_bor; i++) {
  5106.       var option   = document.createElement("option");
  5107.       option.text  = (regToInt(reg_idx_val[regToHex(2854 + i, true)]) / 10).toFixed(1);
  5108.       option.value = i;
  5109.       sel.add(option, sel[i]);
  5110.     }
  5111.     $("#config_pump_lift").val(idx).change();
  5112.  
  5113.     $("#config_pump_protect_time").val(minutesToTime(regToInt(reg_protect["0b59"])));
  5114.     $("#config_pump_auto").prop("checked", getBit(regToInt(config1["0b55"]), 8)).checkboxradio("refresh");
  5115.     $("#config_pump_venting").prop("checked", getBit(regToInt(config1["0b54"]), 13)).checkboxradio("refresh");
  5116.     $("#config_pump_type").val(regToInt(reg_protect["0b58"])).change();
  5117.     $("#config_pump_reg").val(regToInt(reg_idx["0b82"])).change();
  5118.    
  5119.     validate_config_pump();
  5120.   }
  5121.  
  5122.   /* zapisywanie ustawień pod warunkiem sukcesu walidacji, a następnie powrót do menu opcji */
  5123.   function set_config_pump() {
  5124.      
  5125.     var validation = validate_config_pump();
  5126.    
  5127.     if (validation){
  5128.          wys_podnoszenia    = parseInt($("#config_pump_lift").val());
  5129.         ochrona_pompy      = (parseInt($("#config_pump_protect_time").val().split(":")[0]) * 60) + parseInt($("#config_pump_protect_time").val().split(":")[1]);
  5130.         praca_automatyczna = $("#config_pump_auto").prop("checked");
  5131.         odpowietrzanie     = $("#config_pump_venting").prop("checked");
  5132.         typ                = parseInt($("#config_pump_type").val());
  5133.         regulacja          = parseInt($("#config_pump_reg").val());
  5134.        
  5135.         setReg("0b83", regToHex(wys_podnoszenia, false));
  5136.         setReg("0b59", regToHex(ochrona_pompy, false));
  5137.         setReg("0b58", regToHex(typ, false));
  5138.         setReg("0b82", regToHex(regulacja, false));
  5139.         reg = regToInt(getReg("0b55", "1")["0b55"]);
  5140.         reg = setBit(reg, 8, praca_automatyczna);
  5141.         setReg("0b55", regToHex(reg));
  5142.         reg = regToInt(getReg("0b54", "1")["0b54"]);
  5143.         reg = setBit(reg, 13, odpowietrzanie);
  5144.         setReg("0b54", regToHex(reg));
  5145.  
  5146.         window.location.href = "#config";
  5147.     }
  5148.   }</script>
  5149. <!-- /page config_pump -->
  5150.  
  5151. <!-- page: #config_circ -->
  5152. <div data-role="page" id="config_circ" data-theme="a">
  5153.   <div data-role="header">
  5154.     <h1><a onclick="showLoadingSpinner();" href="#about" style="color:inherit; text-decoration:none;" data-rel="dialog" data-transition="pop">cyrkulacja cwu</a></h1>
  5155.     <a href="#start" class="ui-btn ui-shadow ui-corner-all ui-icon-home ui-btn-icon-notext ui-btn-inline" onclick="showLoadingSpinner();">&nbsp;</a>
  5156.     <a href="#config" class="ui-btn ui-shadow ui-corner-all ui-icon-carat-r ui-btn-icon-notext ui-btn-inline">&nbsp;</a>
  5157.   </div>
  5158.  
  5159.   <div role="main">
  5160.     <div class="ui-body">
  5161.       <ul data-role="listview" data-inset="true">
  5162.         <li class="ui-body"><label><input id="config_circ_on_off" type="checkbox">cyrkulacja włączona</label></li></li>
  5163.       </ul>
  5164.       <a href="#config" data-direction="reverse" class="ui-btn ui-shadow ui-corner-all ui-btn-b" onclick="set_config_circ();">zapisz i zamknij okno</a>
  5165.     </div>
  5166.   </div>
  5167. </div>
  5168.  
  5169. <script>$(document).on("pagechange", function () { if($("#config_circ").is(":visible")) { get_config_circ(); hideLoadingSpinner();}});
  5170.  
  5171.   /* pobranie aktualnych ustawień */
  5172.   function get_config_circ() {
  5173.     var reg1 = getReg("0b54", "1");
  5174.  
  5175.     circ = getBit(regToInt(reg1["0b54"]), 2);
  5176.     $("#config_circ_on_off").prop("checked", circ).checkboxradio("refresh");
  5177.   }
  5178.  
  5179.   /* ustawienie cyrkulacji cwu */
  5180.   function set_config_circ() {
  5181.     cyrkulacja = $("#config_circ_on_off").prop("checked");
  5182.  
  5183.     reg = regToInt(getReg("0b54", "1")["0b54"]);
  5184.     reg = setBit(reg, 2, cyrkulacja);
  5185.     setReg("0b54", regToHex(reg));
  5186.   }
  5187. </script>
  5188. <!-- /page config_circ -->
  5189.  
  5190. <!-- page: #config_power -->
  5191. <div data-role="page" id="config_power_win" data-theme="a">
  5192.   <div data-role="header">
  5193.     <h1><a onclick="showLoadingSpinner();" href="#about" style="color:inherit; text-decoration:none;" data-rel="dialog" data-transition="pop">moc kotła</a></h1>
  5194.     <a href="#start" class="ui-btn ui-shadow ui-corner-all ui-icon-home ui-btn-icon-notext ui-btn-inline" onclick="showLoadingSpinner();">&nbsp;</a>
  5195.     <a href="#config" class="ui-btn ui-shadow ui-corner-all ui-icon-carat-r ui-btn-icon-notext ui-btn-inline">&nbsp;</a>
  5196.   </div>
  5197.  
  5198.   <div role="main">
  5199.     <div class="ui-body">
  5200.       <ul data-role="listview" data-inset="true">
  5201.         <li class="ui-body">
  5202.           <label for="config_power">moc kotła [kW]:</label>
  5203.           <select name="config_power" id="config_power">
  5204.           </select>
  5205.         </li>
  5206.       </ul>
  5207.       <a href="#config" data-direction="reverse" class="ui-btn ui-shadow ui-corner-all ui-btn-b" onclick="set_config_power();">zapisz i zamknij okno</a>
  5208.     </div>
  5209.   </div>
  5210. </div>
  5211.  
  5212. <script>$(document).on("pagechange", function () { if($("#config_power_win").is(":visible")) { get_config_power(); hideLoadingSpinner(); }});
  5213.  
  5214.   /* pobranie aktualnej mocy kotła */
  5215.   function get_config_power() {
  5216.     var reg_idx     = getReg("0b62", "1");
  5217.     var reg_idx_bor = getReg("0b35", "6");
  5218.  
  5219.     idx     = parseInt(regToInt(reg_idx["0b62"]));
  5220.     idx_bor = parseInt(regToInt(reg_idx_bor["0b35"]));
  5221.  
  5222.     var sel = document.getElementById("config_power");
  5223.     sel.innerHTML = "";
  5224.     for(i = 0; i < idx_bor; i++) {
  5225.       var option   = document.createElement("option");
  5226.       option.text  = (regToInt(reg_idx_bor[regToHex(2870 + i, true)]) / 10).toFixed(1);
  5227.       option.value = i;
  5228.       sel.add(option, sel[i]);
  5229.     }
  5230.     $("#config_power").val(idx).change();
  5231.   }
  5232.  
  5233.   /* ustawienie mocy kotła */
  5234.   function set_config_power() {
  5235.     setReg("0b62", regToHex(parseInt($("#config_power").val()), false));
  5236.   }
  5237. </script>
  5238. <!-- /page config_power -->
  5239.  
  5240. <!-- page: #config_fun -->
  5241. <div data-role="page" id="config_fun" data-theme="a">
  5242.   <div data-role="header">
  5243.     <h1><a onclick="showLoadingSpinner();" href="#about" style="color:inherit; text-decoration:none;" data-rel="dialog" data-transition="pop">wejście funkcyjne</a></h1>
  5244.     <a href="#start" class="ui-btn ui-shadow ui-corner-all ui-icon-home ui-btn-icon-notext ui-btn-inline" onclick="showLoadingSpinner();">&nbsp;</a>
  5245.     <a href="#config" class="ui-btn ui-shadow ui-corner-all ui-icon-carat-r ui-btn-icon-notext ui-btn-inline">&nbsp;</a>
  5246.   </div>
  5247.  
  5248.   <div role="main">
  5249.     <div class="ui-body">
  5250.        <div data-role="controlgroup">
  5251.         <input name="radio-choice-v-2" id="radio-choice-v-2a" value="on" checked="checked" type="radio">
  5252.         <label for="radio-choice-v-2a">wejście nieaktywne</label>
  5253.         <input name="radio-choice-v-2" id="radio-choice-v-2b" value="off" type="radio">
  5254.         <label for="radio-choice-v-2b">temperatura przeciwzamrożeniowa</label>
  5255.         <input name="radio-choice-v-2" id="radio-choice-v-2c" value="other" type="radio">
  5256.         <label for="radio-choice-v-2c">temperatura ekonomiczna</label>
  5257.       </div>
  5258.       <a href="#config" data-direction="reverse" class="ui-btn ui-shadow ui-corner-all ui-btn-b" onclick="set_config_fun();">zapisz i zamknij okno</a>
  5259.     </div>
  5260.   </div>
  5261. </div>
  5262.  
  5263. <script>$(document).on("pagechange", function () { if($("#config_fun").is(":visible")) { get_config_fun(); hideLoadingSpinner();}});
  5264.  
  5265. /* eventy do zmiany checkboxów */
  5266. $("#radio-choice-v-2a").on("click", function(){
  5267.     if ($("#config_fun").is(":visible")){
  5268.         $("#radio-choice-v-2a").prop("checked", true).checkboxradio("refresh");
  5269.         $("#radio-choice-v-2b").prop("checked", false).checkboxradio("refresh");
  5270.         $("#radio-choice-v-2c").prop("checked", false).checkboxradio("refresh");
  5271.     }
  5272. });
  5273.  
  5274. $("#radio-choice-v-2b").on("click", function(){
  5275.     if ($("#config_fun").is(":visible")){
  5276.         $("#radio-choice-v-2a").prop("checked", false).checkboxradio("refresh");
  5277.         $("#radio-choice-v-2b").prop("checked", true).checkboxradio("refresh");
  5278.         $("#radio-choice-v-2c").prop("checked", false).checkboxradio("refresh");
  5279.     }
  5280. });
  5281.  
  5282. $("#radio-choice-v-2c").on("click", function(){
  5283.     if ($("#config_fun").is(":visible")){
  5284.         $("#radio-choice-v-2a").prop("checked", false).checkboxradio("refresh");
  5285.         $("#radio-choice-v-2b").prop("checked", false).checkboxradio("refresh");
  5286.         $("#radio-choice-v-2c").prop("checked", true).checkboxradio("refresh");
  5287.     }
  5288. });
  5289.  
  5290. /* pobieranie aktualnych ustawień */
  5291.   function get_config_fun() {
  5292.     var reg1 = getReg("0b7f", "1");
  5293.  
  5294.     $("#radio-choice-v-2a").prop("checked", false).checkboxradio("refresh");
  5295.     $("#radio-choice-v-2b").prop("checked", false).checkboxradio("refresh");
  5296.     $("#radio-choice-v-2c").prop("checked", false).checkboxradio("refresh");
  5297.  
  5298.     switch(regToInt(reg1["0b7f"])) {
  5299.       case 0: $("#radio-choice-v-2a").prop("checked", true).checkboxradio("refresh"); break;
  5300.       case 1: $("#radio-choice-v-2b").prop("checked", true).checkboxradio("refresh"); break;
  5301.       case 2: $("#radio-choice-v-2c").prop("checked", true).checkboxradio("refresh"); break;
  5302.     }
  5303.   }
  5304.  
  5305. /* ustawianie na bazie aktualnego stanu checkboxów */
  5306.   function set_config_fun() {
  5307.     sel1 = $("#radio-choice-v-2a").prop("checked");
  5308.     sel2 = $("#radio-choice-v-2b").prop("checked");
  5309.     sel3 = $("#radio-choice-v-2c").prop("checked");
  5310.  
  5311.     if(sel1) { setReg("0b7f", regToHex(0, false)); }
  5312.     if(sel2) { setReg("0b7f", regToHex(1, false)); }
  5313.     if(sel3) { setReg("0b7f", regToHex(2, false)); }
  5314.   }</script>
  5315. <!-- /page config_fun -->
  5316.  
  5317. <!-- page: #config_preasure_control -->
  5318. <div data-role="page" id="config_preasure_control" data-theme="a">
  5319.   <div data-role="header">
  5320.     <h1><a onclick="showLoadingSpinner();" href="#about" style="color:inherit; text-decoration:none;" data-rel="dialog" data-transition="pop">kontrola ciśnienia</a></h1>
  5321.     <a href="#start" class="ui-btn ui-shadow ui-corner-all ui-icon-home ui-btn-icon-notext ui-btn-inline" onclick="showLoadingSpinner();">&nbsp;</a>
  5322.     <a href="#config" class="ui-btn ui-shadow ui-corner-all ui-icon-carat-r ui-btn-icon-notext ui-btn-inline">&nbsp;</a>
  5323.   </div>
  5324.  
  5325.   <div role="main">
  5326.     <div class="ui-body">
  5327.       <ul data-role="listview" data-inset="true">
  5328.         <li class="ui-body"><label><input id="config_preasure" type="checkbox">kontrola ciśnienia</label></li>
  5329.       </ul>
  5330.       <a href="#config" data-direction="reverse" class="ui-btn ui-shadow ui-corner-all ui-btn-b" onclick="set_config_preasure_control();">zapisz i zamknij okno</a>
  5331.     </div>
  5332.   </div>
  5333. </div>
  5334.  
  5335. <script>$(document).on("pagechange", function () { if($("#config_preasure_control").is(":visible")) { get_config_preasure_control(); hideLoadingSpinner(); }});
  5336.  
  5337.   /* pobranie aktualnego stanu kontroli ciśnienia */
  5338.   function get_config_preasure_control() {
  5339.     var reg1 = getReg("0b54", "1");
  5340.     $("#config_preasure").prop("checked", getBit(regToInt(reg1["0b54"]), 8)).checkboxradio("refresh");
  5341.   }
  5342.  
  5343.   /* ustawienie stanu kontroli ciśnienia */
  5344.   function set_config_preasure_control() {
  5345.     reg = regToInt(getReg("0b54", "1")["0b54"]);
  5346.     reg = setBit(reg, 8, $("#config_preasure").prop("checked"));
  5347.     setReg("0b54", regToHex(reg));
  5348.   }
  5349. </script>
  5350. <!-- /page config_preasure_control -->
  5351.  
  5352. <!-- page: #config_mode -->
  5353. <div data-role="page" id="config_mode" data-theme="a">
  5354.   <div data-role="header">
  5355.     <h1><a onclick="showLoadingSpinner();" href="#about" style="color:inherit; text-decoration:none;" data-rel="dialog" data-transition="pop">tryb pracy</a></h1>
  5356.     <a href="#start" class="ui-btn ui-shadow ui-corner-all ui-icon-home ui-btn-icon-notext ui-btn-inline" onclick="showLoadingSpinner();">&nbsp;</a>
  5357.     <a href="#config" class="ui-btn ui-shadow ui-corner-all ui-icon-carat-r ui-btn-icon-notext ui-btn-inline">&nbsp;</a>
  5358.   </div>
  5359.  
  5360.   <div role="main">
  5361.     <div class="ui-body">
  5362.       <ul data-role="listview" data-inset="true">
  5363.         <li id="config_mode__li" class="ui-body">
  5364.           <label>tryb pracy</label>
  5365.           <select id="config_mode__select" onchange="">
  5366.             <option value="0">podstawowy</option>
  5367.             <option value="1">źródło ciepła</option>
  5368.             <option id="config_mode__select__buffer" value="2" style="display:none;">bufor</option>
  5369.           </select>
  5370.         </li>
  5371.       </ul>
  5372.       <a data-direction="reverse" class="ui-btn ui-shadow ui-corner-all ui-btn-b" onclick="config_mode__save()">zapisz i zamknij</a>
  5373.     </div>
  5374.   </div>
  5375. </div>
  5376.  
  5377. <script>$(document).on("pagechange", function () { if($("#config_mode").is(":visible")) { config_mode__start(); hideLoadingSpinner();}});
  5378.  
  5379. /* zakresy walidacyjne */
  5380. var mode_min         = -1
  5381. var mode_max         = -1
  5382.  
  5383. /* ładowanie zmiennych i zakresów walidacyjnych */
  5384. function config_mode__start() {
  5385.   var mode = regToInt(getReg("0b8a", "1")["0b8a"])
  5386.   mode_min = regToInt(getReg("0be5", "1")["0be5"])
  5387.   mode_max = regToInt(getReg("0be6", "1")["0be6"])
  5388.  
  5389.   if(mode_max == 2) { $("#config_mode__select__buffer").attr("style", "display:yes")  }
  5390.                else { $("#config_mode__select__buffer").attr("style", "display:none") }
  5391.  
  5392.   $("#config_mode__select").val(mode).change()
  5393. }
  5394.  
  5395. /* ustawienie trybu pracy */
  5396. function config_mode__save() {
  5397.   setReg("0b8a", regToHex(parseInt($("#config_mode__select").val()), false));
  5398.   window.location.href = "#config";
  5399.   showLoadingSpinner();
  5400. }</script>
  5401. <!-- /page config_mode -->
  5402.  
  5403.  
  5404. <!-- page: #params -->
  5405. <div data-role="page" id="params" data-theme="a">
  5406.   <div data-role="header">
  5407.     <h1><a onclick="showLoadingSpinner();" href="#about" style="color:inherit; text-decoration:none;" data-rel="dialog" data-transition="pop">podgląd parametrów</a></h1>
  5408.     <a href="#start" class="ui-btn ui-shadow ui-corner-all ui-icon-home ui-btn-icon-notext ui-btn-inline" onclick="showLoadingSpinner();">&nbsp;</a>
  5409.     <a href="#start" class="ui-btn ui-shadow ui-corner-all ui-icon-carat-r ui-btn-icon-notext ui-btn-inline" onclick="showLoadingSpinner();">&nbsp;</a>
  5410.   </div>
  5411.  
  5412.   <div role="main">
  5413.     <div class="ui-body">
  5414.       <ul data-role="listview" data-inset="true">
  5415.         <li class="ui-body"><label><table width="100%"><tr><td>temperatura wlotowa</td><td align="right" id="params_temp_in" style="font-weight: bold;"></td></tr></table></label></li>
  5416.         <li class="ui-body"><label><table width="100%"><tr><td>temperatura wylotowa</td><td align="right" id="params_temp_out" style="font-weight: bold;"></td></tr></table></label></li>
  5417.         <li class="ui-body"><label><table width="100%"><tr><td>nastawa czynnika</td><td align="right" id="params_temp_factor" style="font-weight: bold;"></td></tr></table></label></li>
  5418.         <li class="ui-body"><label><table width="100%"><tr><td>temperatura pokojowa</td><td align="right" id="params_temp_room" style="font-weight: bold;"></td></tr></table></label></li>
  5419.         <li class="ui-body"><label><table width="100%"><tr><td>temperatura zewnętrzna</td><td align="right" id="params_temp_outside" style="font-weight: bold;"></td></tr></table></label></li>
  5420.         <li class="ui-body" id="_params_cwu_"><label><table width="100%"><tr><td>temperatura zasobnika</td><td align="right" id="params_temp_boil" style="font-weight: bold;"></td></tr></table></label></li>
  5421.         <li class="ui-body"><label><table width="100%"><tr><td>moc załączona</td><td align="right" id="params_power" style="font-weight: bold;"></td></tr></table></label></li>
  5422.         <li class="ui-body"><label><table width="100%"><tr><td>ciśnienie</td><td align="right" id="params_preasure" style="font-weight: bold;"><b></b></td></tr></table></label></li>
  5423.         <li class="ui-body"><label><table width="100%"><tr><td>przepływ</td><td align="right" id="params_flow" style="font-weight: bold;"></td></tr></table></label></li>
  5424.         <li class="ui-body"><label><table width="100%"><tr><td>pompa obiegowa</td><td align="right"><input type="checkbox" data-role="flipswitch" data-on-text="wł." data-off-text="wył." data-wrapper-class="custom-label-flipswitch" disabled="disabled" id="params_pump"></td></tr></table></label></li>
  5425.         <li class="ui-body" id="_params_circ_"><label><table width="100%"><tr><td>pompa cyrkulacyjna cwu</td><td align="right"><input type="checkbox" data-role="flipswitch" data-on-text="wł." data-off-text="wył." data-wrapper-class="custom-label-flipswitch" disabled="disabled" id="params_circ"></td></tr></table></label></li>
  5426.         <li class="ui-body" id="_params_valve_"><label><table width="100%"><tr><td>zawór trójdrogowy</td><td align="right"><input type="checkbox" data-role="flipswitch" data-on-text="cwu" data-off-text="co" data-wrapper-class="custom-label-flipswitch" disabled="disabled" id="params_valve"></td></tr></table></label></li>
  5427.         <li class="ui-body"><label><table width="100%"><tr><td>wejście NA</td><td align="right"><input type="checkbox" data-role="flipswitch" data-on-text="wł." data-off-text="wył." data-wrapper-class="custom-label-flipswitch" disabled="disabled" id="params_na"></td></tr></table></label></li>
  5428.         <li class="ui-body"><label><table width="100%"><tr><td>wejście RP</td><td align="right"><input type="checkbox" data-role="flipswitch" data-on-text="wł." data-off-text="wył." data-wrapper-class="custom-label-flipswitch" disabled="disabled" id="params_rp"></td></tr></table></label></li>
  5429.         <li class="ui-body"><label><table width="100%"><tr><td>wejście FUN</td><td align="right"><input type="checkbox" data-role="flipswitch" data-on-text="wł." data-off-text="wył." data-wrapper-class="custom-label-flipswitch" disabled="disabled" id="params_fun"></td></tr></table></label></li>
  5430.     </div>
  5431.   </div>
  5432. </div>
  5433. <!-- /page params -->
  5434. <style>
  5435. .ui-state-disabled { opacity: 1.0; }
  5436. </style>
  5437. <script>
  5438. $(document).on("pagechange", function () { if($("#params").is(":visible")) { ref_params(); hideLoadingSpinnerWithDelay(); }});
  5439.  
  5440. $(function () { setInterval(vis_params_const, 5000); })
  5441.  
  5442. function vis_params_const() { if($("#params").is(":visible")) { ref_params(); } }
  5443.  
  5444. /* odświeżenie wyświetlanych parametrów */
  5445. function ref_params() {
  5446.   var regs = getReg("0b54", "2");
  5447.   var reg1 = regToInt(regs["0b55"]);
  5448.   var reg2 = regToInt(regs["0b54"]);
  5449.   termostat = getBit(reg1, 2);
  5450.   cwu       = getBit(reg1, 4);
  5451.   circ      = getBit(reg2, 2);
  5452.  
  5453.   if(!cwu)      { $("#_params_valve_").hide();  }
  5454.   if(!cwu)      { $("#_params_cwu_").hide();  }
  5455.   if(termostat) { $("#_params_cwu_").hide();  }
  5456.   if(!circ)     { $("#_params_circ_").hide(); }
  5457.  
  5458.   var data         = getReg("0b2f", "30");
  5459.   var temp_in      = regToInt(data["0b48"]) / 10;
  5460.   var temp_out     = regToInt(data["0b49"]) / 10;
  5461.   var temp_factor  = regToInt(data["0b44"]) / 10;
  5462.   var temp_room    = regToInt(data["0b4b"]) / 10;
  5463.   var temp_outside = regToInt(data["0b4c"]) / 10;
  5464.   var temp_boil    = regToInt(data["0b4a"]) / 10;
  5465.   var power        = regToInt(data["0b46"]) / 10;;
  5466.   var preasure     = regToInt(data["0b4e"]) / 100;
  5467.   var flow         = regToInt(data["0b4f"]) / 10;
  5468.   var pump         = getBit(regToInt(data["0b51"]), 0);
  5469.   var circ         = getBit(regToInt(data["0b51"]), 1);
  5470.   var valve        = getBit(regToInt(data["0b51"]), 2);
  5471.   var na           = getBit(regToInt(data["0b51"]), 3);
  5472.   var rp           = getBit(regToInt(data["0b51"]), 4);
  5473.   var fun          = getBit(regToInt(data["0b51"]), 6);
  5474.  
  5475.   if (temp_in <= -100){
  5476.       $("#params_temp_in").text("Serwis");
  5477.       $("#params_temp_in").css("color","rgb(232, 123, 30)");
  5478.   }else{
  5479.       $("#params_temp_in").text(temp_in.toFixed(0) + " °C");
  5480.       $("#params_temp_in").css("color","");
  5481.   }
  5482.   if (temp_out <= -100){
  5483.       $("#params_temp_out").text("Serwis");
  5484.       $("#params_temp_out").css("color","rgb(232, 123, 30)");
  5485.   }else{
  5486.       $("#params_temp_out").text(temp_out.toFixed(0) + " °C");
  5487.       $("#params_temp_out").css("color","");
  5488.   }
  5489.   if (temp_factor <= -100){
  5490.       $("#params_temp_factor").text("Serwis");
  5491.       $("#params_temp_factor").css("color","rgb(232, 123, 30)");
  5492.   }else{
  5493.       $("#params_temp_factor").text(temp_factor.toFixed(0) + " °C");
  5494.       $("#params_temp_factor").css("color","");
  5495.   }  
  5496.   if (temp_room <= -100){
  5497.       $("#params_temp_room").text("Serwis");
  5498.       $("#params_temp_room").css("color","rgb(232, 123, 30)");
  5499.   }else{
  5500.       $("#params_temp_room").text(temp_room.toFixed(1) + " °C");
  5501.       $("#params_temp_room").css("color","");
  5502.   }  
  5503.   if (temp_outside <= -100){
  5504.       $("#params_temp_outside").text("Serwis");
  5505.       $("#params_temp_outside").css("color","rgb(232, 123, 30)");
  5506.   }else{
  5507.       $("#params_temp_outside").text(temp_outside.toFixed(1) + " °C");
  5508.       $("#params_temp_outside").css("color","");
  5509.   }
  5510.   if (temp_boil <= -100){
  5511.       $("#params_temp_boil").text("Serwis");
  5512.       $("#params_temp_boil").css("color","rgb(232, 123, 30)");
  5513.   }else{
  5514.       $("#params_temp_boil").text(temp_boil.toFixed(0) + " °C");
  5515.       $("#params_temp_boil").css("color","");
  5516.   }    
  5517. //  setTemp(data["0b4a"], "params_temp_boil", 0);
  5518.   $("#params_power").text(power.toFixed(1) + " kW");
  5519.   $("#params_preasure").text(preasure.toFixed(2) + " bar");
  5520.   $("#params_flow").text(flow.toFixed(1) + " l/min");
  5521.   $("#params_pump").prop("checked", pump).flipswitch("refresh");
  5522.   $("#params_circ").prop("checked", circ).flipswitch("refresh");
  5523.   $("#params_valve").prop("checked", valve).flipswitch("refresh");
  5524.   $("#params_na").prop("checked", na).flipswitch("refresh");
  5525.   $("#params_rp").prop("checked", rp).flipswitch("refresh");
  5526.   $("#params_fun").prop("checked", fun).flipswitch("refresh");
  5527. }
  5528.  
  5529. </script>
  5530. <!-- Start of third page: #about -->
  5531. <div data-role="page" id="about" data-close-btn="right">
  5532.    
  5533.   <div data-role="header" data-theme="b">
  5534.     <h1>Informacja</h1>
  5535.   </div>
  5536.  
  5537.   <div role="main" class="ui-body">
  5538.     <h2 id="ekd_about_message_title">MI.01</h2>
  5539.     <p id="ekd_about_message">Moduł Internetowy do zarządzania wyposażeniem systemowym firmy KOSPEL S.A.</p>
  5540.   </div>
  5541.  
  5542.   <div data-role="footer">
  5543.     <h1 id="ekd_about_footer">wer. </h1>
  5544.   </div>
  5545. </div>
  5546.  
  5547. <script>$(document).on("pagechange", function () {
  5548.     if($("#about").is(":visible")) {
  5549.         getInfo();
  5550.     }
  5551. });
  5552.  
  5553. $("#about").off("pagehide").on("pagehide",function(){
  5554.     if ($("#start").is(":visible"))
  5555.     {
  5556.         showLoadingSpinner();
  5557.     }      
  5558. });
  5559.  
  5560. function getInfo() {
  5561.   $.ajax({
  5562.     complete: function() { hideLoadingSpinner();},
  5563.     type: 'GET',
  5564.     url: "api/cmi/info",
  5565.     timeout: 5000,
  5566.     dataType: 'json',
  5567.     async: false,
  5568.     success: function(data) {
  5569.         if(data["sn"] != "mi01_no_key"){
  5570.             $("#ekd_about_footer").html("identyfikator: " + data["sn"] + " <br/> ");
  5571.         }
  5572.         else{
  5573.             $("#ekd_about_footer").html("Niezdefiniowany numer seryjny" + " <br/> ");
  5574.         }
  5575.         if(data["version"] != null){
  5576.             $("#ekd_about_footer").html($("#ekd_about_footer").html() + "wer. " + data["version"]);
  5577.         }
  5578.         else{
  5579.             $("#ekd_about_footer").html($("#ekd_about_footer").html() + "Nieznana wersja oprogramowania");
  5580.         }
  5581.         if(data["desc"] != null){
  5582.             $("#ekd_about_message_title").text(data["desc"]);
  5583.         }
  5584.         else{
  5585.             $("#ekd_about_message_title").html("Error");
  5586.         }
  5587.     },
  5588.     error: function() {
  5589.         $("#ekd_about_footer").html("Niezdefiniowany numer seryjny" + " <br/> ");
  5590.         $("#ekd_about_footer").html($("#ekd_about_footer").html() + "Nieznana wersja oprogramowania");
  5591.         $("#ekd_about_message_title").html("Error");
  5592.     }
  5593.   });
  5594. }
  5595.  
  5596.  
  5597. </script>
  5598. <!-- /page about -->
  5599. <!-- page: #error -->
  5600. <div data-role="page" id="error" data-theme="a" data-close-btn="right">
  5601.  
  5602.   <div data-role="header">
  5603.     <h1><a onclick="showLoadingSpinner();" href="#about" style="color:inherit; text-decoration:none;" data-rel="dialog" data-transition="pop">błędy</a></h1>
  5604.   </div>
  5605.  
  5606.   <div role="main">
  5607.     <div class="ui-body">
  5608.       <ul data-role="listview" data-inset="true">
  5609.         <li class="ui-body">
  5610.           <table>
  5611.             <tr id="error_eeprom" style="display: none;"><td><font color="black">błąd pamięci EEPROM</font></td></tr>
  5612.             <tr id="error_t_in" style="display: none;"><td><font color="black">błąd czujnika temp. wejściowej</font></td></tr>
  5613.             <tr id="error_t_out" style="display: none;"><td><font color="black">błąd czujnika temp. wyjściowej</font></td></tr>
  5614.             <tr id="error_t_zas" style="display: none;"><td><font color="black">błąd czujnika temp. zasobnika</font></td></tr>
  5615.             <tr id="error_t_int" style="display: none;"><td><font color="black">błąd czujnika temp. wewnętrznej</font></td></tr>
  5616.             <tr id="error_t_zew" style="display: none;"><td><font color="black">błąd czujnika temperatury zewnętrznej</font></td></tr>
  5617.             <tr id="error_t_pok" style="display: none;"><td><font color="black">błąd czujnika temperatury pokojowej</font></td></tr>
  5618.             <tr id="error_low_bat" style="display: none;"><td><font color="black">niski poziom baterii</font></td></tr>
  5619.             <tr id="error_preasure" style="display: none;"><td><font color="black">błąd niskiego ciśnienia</font></td></tr>
  5620.             <tr id="error_pump_co" style="display: none;"><td><font color="black">błąd pompy co</font></td></tr>
  5621.             <tr id="error_valve_co" style="display: none;"><td><font color="black">błąd zaworu co</font></td></tr>
  5622.             <tr id="error_valve_cwu" style="display: none;"><td><font color="black">błąd zaworu cwu</font></td></tr>
  5623.             <tr id="error_unknown" style="display: none;"><td><font color="black">nieznany błąd</font></td></tr>
  5624.           </table>
  5625.         </li>
  5626.       </ul>
  5627.     </div>
  5628.   </div>
  5629.  
  5630. </div>
  5631. <script>$("#error").off("pagehide").on("pagehide",function(){
  5632.     if ($("#start").is(":visible"))
  5633.     {
  5634.         showLoadingSpinner();
  5635.     }
  5636. });
  5637.  
  5638. function getErrorInfo(errorCode){
  5639.     var errorCounter = 0;
  5640.     hideAllErrors();
  5641.  
  5642.     if (errorCode & 1){ //bit 0
  5643.         errorCounter++;
  5644.         $("#error_eeprom").show();
  5645.     }
  5646.     if (errorCode & 2){ //bit 1
  5647.         errorCounter++;
  5648.         $("#error_t_in").show();
  5649.     }
  5650.     if (errorCode & 4){ //bit 2
  5651.         errorCounter++;
  5652.         $("#error_t_out").show();
  5653.     }
  5654.     if (errorCode & 8){ //bit 3
  5655.         errorCounter++;
  5656.         $("#error_t_zas").show();
  5657.     }
  5658.     if (errorCode & 16){ //bit 4
  5659.         errorCounter++;
  5660.         $("#error_t_int").show();
  5661.     }
  5662.     if ((getBit((regToInt(getReg("0b55", "1")['0b55'])), 14)) == true){
  5663.         if (errorCode & 32){ //bit 5
  5664.             errorCounter++;
  5665.             $("#error_t_zew").show();
  5666.         }
  5667.     }
  5668.     if (errorCode & 64){ //bit 6
  5669.         errorCounter++;
  5670.         $("#error_t_pok").show();
  5671.     }
  5672.     if (errorCode & 128){ //bit 7
  5673.         errorCounter++;
  5674.         $("#error_low_bat").show();
  5675.     }
  5676.     if (errorCode & 256){ //bit 8
  5677.         errorCounter++;
  5678.         $("#error_preasure").show();
  5679.     }
  5680.     if (errorCode & 512){ //bit 9
  5681.         errorCounter++;
  5682.         $("#error_pump_co").show();
  5683.     }
  5684.     if (errorCode & 1024){ //bit 10
  5685.         errorCounter++;
  5686.         $("#error_valve_co").show();
  5687.     }
  5688.     if (errorCode & 2048){ //bit 11
  5689.         errorCounter++;
  5690.         $("#error_valve_cwu").show();
  5691.     }
  5692.    
  5693.     if (errorCounter == 0){
  5694.         $("#error_unknown").show();
  5695.     }
  5696.    
  5697.     hideLoadingSpinner();
  5698. }
  5699.  
  5700. function hideAllErrors(){
  5701.     $("#error_eeprom").hide();
  5702.     $("#error_t_in").hide();
  5703.     $("#error_t_out").hide();
  5704.     $("#error_t_zas").hide();
  5705.     $("#error_t_int").hide();
  5706.     $("#error_t_zew").hide();
  5707.     $("#error_t_pok").hide();
  5708.     $("#error_low_bat").hide();
  5709.     $("#error_preasure").hide();
  5710.     $("#error_pump_co").hide();
  5711.     $("#error_valve_co").hide();
  5712.     $("#error_valve_cwu").hide();
  5713.     $("#error_unknown").hide();
  5714. }
  5715. </script>
  5716. <!-- /page error -->
  5717.  
  5718.  
  5719.  
  5720. </body>
  5721. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement