edit timer is now functional
[enigma2-plugins.git] / webinterface / src / web-data / templates.js
1 // EPG Templates
2 var tplUpdateStreamReaderIE = '<iframe id="UpdateStreamReaderIEFixIFrame" src="%(url_updates)" height="0" width="0" scrolling="none" frameborder="0">no iframe support!</iframe>';
3 var tplEPGListHeader = '<table width="100%" border="0" cellspacing="1" cellpadding="0">';
4
5 var tplEPGListItem  = '<tr style="background-color: #DDDDDD;">';
6         tplEPGListItem += '<td width="10%">%(date)</td>';
7         tplEPGListItem += '<td width="30%">%(servicename)</td>';
8         tplEPGListItem += '<td>%(title)</td>';
9         tplEPGListItem += '</tr>';
10         
11         tplEPGListItem += '<tr style="background-color: #DDDDDD;">';
12         tplEPGListItem += '<td>%(starttime)</td>';
13         tplEPGListItem += '<td>%(duration) min.</td>';
14         tplEPGListItem += '<td>%(description)</td>';
15         tplEPGListItem += '</tr>';
16         
17         tplEPGListItem += '<tr style="background-color: #DDDDDD;">';
18         tplEPGListItem += '<td valign="top">%(endtime)</td>';
19         tplEPGListItem += '<td colspan="2"rowspan="2">%(extdescription)</td>';
20         tplEPGListItem += '</tr>';
21         
22         tplEPGListItem +='<tr style="background-color: #DDDDDD;"><td>';
23         tplEPGListItem +='<a target="_blank" ><img src="/webdata/gfx/timer.png" title="add to Timers" border="0" onclick="addTimerByID(\'%(servicereference)\',\'%(eventid)\',\'False\');"></a>&nbsp;&nbsp;';
24         tplEPGListItem +='<a target="_blank" ><img src="/webdata/gfx/zap.png" title="add zap to Timers" border="0" onclick="addTimerByID(\'%(servicereference)\',\'%(eventid)\',\'True\');"></a><br/>';
25         tplEPGListItem +='<a target="_blank" href="/web/epgsearch.rss?search=%(title)" ><img src="/webdata/gfx/feed.png" title="RSS-Feed for this Title" border="0"></a><br/>';
26         tplEPGListItem +='<a target="_blank" href="http://www.imdb.com/find?s=all&amp;q=%(titleESC)" ><img src="/webdata/gfx/world.png" title="search IMDb" border="0"></a><br/>';
27         tplEPGListItem +='</td></tr>';
28         
29         tplEPGListItem += '<tr style="background-color: #AAAAAA;">';
30         tplEPGListItem += '<td colspan="3">&nbsp;</td>';
31         tplEPGListItem += '</tr>';
32         
33 var tplEPGListFooter = "</table>";
34         
35 // ServiceList Templates
36 var tplServiceListHeader  = '<table border="0" cellpadding="0" cellspacing="0" class="BodyContentChannellist">\n';
37         tplServiceListHeader += '<thead class="fixedHeader">\n';
38         tplServiceListHeader += '<tr>\n';
39         tplServiceListHeader += '<th><div class="sListHeader" style="color: #FFFFFF;">ServiceList</div>\n';
40         tplServiceListHeader += '<div class="sListSearch">';
41         tplServiceListHeader += '<form onSubmit="loadEPGBySearchString(document.getElementById(\'searchText\').value); return false;">';
42         tplServiceListHeader += '<input type="text" id="searchText" onfocus="this.value=\'\'" value="Search EPG"/>';
43         tplServiceListHeader += '<input style="vertical-align:middle" type="image" src="/webdata/gfx/search.png" alt="search...">';
44         tplServiceListHeader += '</form></div></th>';
45         tplServiceListHeader += '</tr>\n';
46         tplServiceListHeader += '</thead>\n';
47         tplServiceListHeader += '<tbody class="scrollContent">\n';
48
49 var tplServiceListItem  = '<tr>\n';
50         tplServiceListItem += '<td style="border-top: 2px solid #AAA;" ><div class="sListSName"><a id="%(servicereference)" onclick="zap(this.id)" class="sListSLink">%(servicename)</a></div>';
51         tplServiceListItem += '<div class="sListExt"><a onclick="loadEPGByServiceReference(this.id)" id="%(servicereference)"><img src="/webdata/gfx/epg.png" border="0"/></a>\n';
52         tplServiceListItem += '<a target="_blank" href="/web/stream.m3u?ref=%(servicereference)"><img src="/webdata/gfx/screen.png" title="stream Service" border="0"></a></div>\n';
53         tplServiceListItem += '</tr>\n';
54     tplServiceListItem += '<tr>\n';
55         tplServiceListItem += '<td colspan="2"><div id="%(servicereference)EPGNOW"></div></td>\n';
56         tplServiceListItem += '</tr>\n';
57         
58 var tplServiceListFooter = "</tbody></table>\n";
59 //
60
61 var     tplServiceListEPGItem  = '<div class="sListEPGTime">%(starttime)</div>\n';
62         tplServiceListEPGItem += '<div class="sListEPGTitle">%(title)</div>\n';
63         tplServiceListEPGItem += '<div class="sListEPGDuration">%(length) Min.</div>\n';
64
65 // MovieList Templates
66 var tplMovieListHeader  = '<table border="0" cellpadding="0" cellspacing="0" class="BodyContentChannellist">\n';
67         tplMovieListHeader += '<thead class="fixedHeader">\n';
68         tplMovieListHeader += '<tr>\n';
69         tplMovieListHeader += '<th><div class="sListHeader" style="color: #FFFFFF;">MovieList</div>\n';
70         tplMovieListHeader += '<div class="sListSearch">';
71         tplMovieListHeader += '<form onSubmit="loadEPGBySearchString(document.getElementById(\'searchText\').value); return false;">';
72         tplMovieListHeader += '<input type="text" id="searchText" onfocus="this.value=\'\'" value="Search EPG"/>';
73         tplMovieListHeader += '<input style="vertical-align:middle" type="image" src="/webdata/gfx/search.png" alt="search...">';
74         tplMovieListHeader += '</form></div></th>';
75         tplMovieListHeader += '</tr>\n';
76         tplMovieListHeader += '</thead>\n';
77         tplMovieListHeader += '<tbody class="scrollContent">\n';
78
79 var tplMovieListItem  = '<tr>\n';
80         tplMovieListItem += '<td><div class="sListSName" title="%(description), %(descriptionextended)">%(title) (%(servicename))</div>';
81         tplMovieListItem += '<div class="sListExt">\n';
82         tplMovieListItem += '%(tags)\n';
83         tplMovieListItem += '</div>\n';
84         tplMovieListItem += '</tr>\n';
85         
86 var tplMovieListFooter = "</tbody></table>\n";
87
88 // TimerList Templates
89 var tplTimerListHeader  = '<table border="0" cellpadding="0" cellspacing="0" class="BodyContentChannellist">\n';
90         tplTimerListHeader += '<thead class="fixedHeader">\n';
91         tplTimerListHeader += '<tr>\n';
92         tplTimerListHeader += '<th><div class="sListHeader" style="color: #FFFFFF;">TimerList</div>\n';
93         tplTimerListHeader += '<div class="sListSearch">';
94         tplTimerListHeader += '<form onSubmit="loadEPGBySearchString(document.getElementById(\'searchText\').value); return false;">';
95         tplTimerListHeader += '<input type="text" id="searchText" onfocus="this.value=\'\'" value="Search EPG"/>';
96         tplTimerListHeader += '<input style="vertical-align:middle" type="image" src="/webdata/gfx/search.png" alt="search...">';
97         tplTimerListHeader += '</form></div></th>';
98         tplTimerListHeader += '</tr>\n';
99         tplTimerListHeader += '</thead>\n';
100         tplTimerListHeader += '<tbody class="scrollContent">\n';
101
102 var tplTimerListItem  = '<tr>\n';
103         tplTimerListItem += '<td><div style="color: #%(color);" class="sListSName" title="%(description), %(descriptionextended)">%(title) (%(servicename))</div>';
104         tplTimerListItem += '<div class="sListExt" style="color: #%(color);">\n';
105         tplTimerListItem += '%(duration)&nbsp;Min\n';
106         tplTimerListItem += '<a target="_blank" ><img src="/webdata/gfx/trash.gif" title="delete timer entry" border="0" onclick="delTimer(\'%(servicereference)\',\'%(begin)\',\'%(end)\');"></a>';
107         tplTimerListItem += '<a target="_blank" ><img src="/webdata/gfx/edit.gif" title="edit timer entry" border="0" onclick="loadTimerFormSeconds(\'%(justplay)\',\'%(begin)\',\'%(end)\',\'%(repeated)\',\'%(servicereference)\',\'%(title)\',\'%(description)\',0);"></a><br/>';
108         tplTimerListItem += '</div>\n';
109         tplTimerListItem += '</tr>\n';
110         
111 var tplTimerListFooter = "</tbody></table>\n";
112
113 // Bouquetlist Template
114 var tplBouquetListHeader = '<table id="BouquetList" width="100%" border="0" cellspacing="1" cellpadding="0" border="0">';
115
116 var tplBouquetListItem  = '<tr>\n';
117         tplBouquetListItem += '<td><div class="navMenuItem" id="%(servicereference)" onclick="loadBouquet(this.id);">%(bouquetname)</div></td>';
118         tplBouquetListItem += '</tr>\n';
119
120 var tplBouquetListFooter = "</table>";
121
122 //Volume Template
123 var tplVolumePanel  = "<img onclick='volumeUp()' src='/webdata/gfx/arrow_up.png'>"; 
124         tplVolumePanel += "<img onclick='volumeDown()' src='/webdata/gfx/arrow_down.png'>"; 
125         tplVolumePanel += "<img id='volume1' onclick='volumeSet(10)' src='/webdata/gfx/led_off.png'>"; 
126         tplVolumePanel += "<img id='volume2' onclick='volumeSet(20)' src='/webdata/gfx/led_off.png'>"; 
127         tplVolumePanel += "<img id='volume3' onclick='volumeSet(30)' src='/webdata/gfx/led_off.png'>"; 
128         tplVolumePanel += "<img id='volume4' onclick='volumeSet(40)' src='/webdata/gfx/led_off.png'>"; 
129         tplVolumePanel += "<img id='volume5' onclick='volumeSet(50)' src='/webdata/gfx/led_off.png'>"; 
130         tplVolumePanel += "<img id='volume6' onclick='volumeSet(60)' src='/webdata/gfx/led_off.png'>"; 
131         tplVolumePanel += "<img id='volume7' onclick='volumeSet(70)' src='/webdata/gfx/led_off.png'>"; 
132         tplVolumePanel += "<img id='volume8' onclick='volumeSet(80)' src='/webdata/gfx/led_off.png'>"; 
133         tplVolumePanel += "<img id='volume9' onclick='volumeSet(90)' src='/webdata/gfx/led_off.png'>"; 
134         tplVolumePanel += "<img id='volume10' onclick='volumeSet(100)' src='/webdata/gfx/led_off.png'>"; 
135         tplVolumePanel += "<img id='speaker' onclick='volumeMute()' src='/webdata/gfx/speak_on.png'>";
136         
137 //Signal Template
138 var tplSignalPanel  = '<table width="100%" id="SignalPanelTable">';
139         tplSignalPanel += '<tr><td style="background-color: #DDDDDD;">SNR</td><td width="50" style="background-color: #DDDDDD;"><div id="SNR">N/A</div></td></tr>';
140         tplSignalPanel += '<tr><td style="background-color: #DDDDDD;">AGC</td><td width="50" style="background-color: #DDDDDD;"><div id="AGC">N/A</div></td></tr>';
141         tplSignalPanel += '<tr><td style="background-color: #DDDDDD;">BER</td><td width="50" style="background-color: #DDDDDD;"><div id="BER">N/A</div></td></tr>';
142         tplSignalPanel += '</table>';
143         
144 var tplSignalPanelButton = '<img src="/webdata/gfx/signal.png" title="show SignalInfoPanel" onclick="openSignalDialog();" title="view Signal Info">';
145
146 // Message send
147 var tplMessageSendForm = ""
148         tplMessageSendForm += '<table id="MessageSendForm" width="100%" border="0" cellspacing="1" cellpadding="0" border="0">';
149         tplMessageSendForm += '<tr><td>Text</td><td><input type="text" id="MessageSendFormText" value=""></td></tr>\n';
150         tplMessageSendForm += '<tr><td>Timeout</td><td><input type="text" id="MessageSendFormTimeout" value=""></td></tr>\n';
151         tplMessageSendForm += '<tr><td>Typ</td><td><select id="MessageSendFormType">';
152         tplMessageSendForm += '<option value="1">Info</option>';
153         tplMessageSendForm += '<option value="0">YesNo</option>';
154         tplMessageSendForm += '<option value="2">Warning</option>';
155         tplMessageSendForm += '<option value="3">Error</option>';
156         tplMessageSendForm += '</select></td></tr>\n';
157         tplMessageSendForm += '<tr><td colspan="2"><button onclick="sendMessage()">send Message</button></td></tr>\n';
158         tplMessageSendForm += "</table></form>\n";
159
160 //var tplPasswordSendForm = ""
161 //      tplPasswordSendForm += '<table id="PasswordSendForm" width="100%" border="0" cellspacing="1" cellpadding="0" border="0">';
162 //      tplPasswordSendForm += '<tr><td>Old password</td><td><input type="password" id="PasswordSendFormOldPassword" value=""></td></tr>\n';
163 //      tplPasswordSendForm += '<tr><td>New password</td><td><input type="password" id="PasswordSendFormNewPassword" value=""></td></tr>\n';
164 //      tplPasswordSendForm += '<tr><td>Repeat new password</td><td><input type="password" id="PasswordSendFormNewPasswordSecond" value=""></td></tr>\n';
165 //      tplPasswordSendForm += '<tr><td colspan="2"><button onclick="sendPasswords()">change password for user dreambox</button></td></tr>\n';
166 //      tplPasswordSendForm += "</table></form>\n";
167 var tplPowerStateSendForm = '';
168     tplPowerStateSendForm += '<p><center><button onclick="sendPowerState(1)">Deepstandby Dreambox</button></center></p>';
169     tplPowerStateSendForm += '<p><center><button onclick="sendPowerState(2)">Reboot Dreambox</button></center></p>';
170     tplPowerStateSendForm += '<hr>';
171     tplPowerStateSendForm += '<p><center><button onclick="sendPowerState(3)">Reboot Enigma2</button></center></p>';
172     tplPowerStateSendForm += '<p><center><button onclick="sendPowerState(4)">Standby Dreambox</button></center></p>';
173
174 // Template for the RemoteControl Window
175 var tplRemoteControlForm = '';
176         tplRemoteControlForm += '<map name="remotecontrol">';
177         tplRemoteControlForm += '<area shape="circle" coords="129, 54, 10" href="#" onclick="sendRemoteControlRequest(116)" alt="Power">';
178         tplRemoteControlForm += '<area shape="circle" coords="72, 95, 15" href="#" alt="Dream message">';
179         tplRemoteControlForm += '<area shape="circle" coords="130, 95, 15" href="remote?cmd=osdshot)" alt="TV Screenshot">';
180         tplRemoteControlForm += '<area shape="circle" coords="63, 123, 10" href="#" onclick="sendRemoteControlRequest(2)" alt="1">';
181         tplRemoteControlForm += '<area shape="circle" coords="109, 123, 10" href="#" onclick="sendRemoteControlRequest(3)" alt="2">';
182         tplRemoteControlForm += '<area shape="circle" coords="153, 123, 10" href="#" onclick="sendRemoteControlRequest(4)" alt="3">';
183         tplRemoteControlForm += '<area shape="circle" coords="63, 148, 10" href="#" onclick="sendRemoteControlRequest(5)" alt="4">';
184         tplRemoteControlForm += '<area shape="circle" coords="109, 148, 10" href="#" onclick="sendRemoteControlRequest(6)" alt="5">';
185         tplRemoteControlForm += '<area shape="circle" coords="153, 148, 10" href="#" onclick="sendRemoteControlRequest(7)" alt="6">';
186         tplRemoteControlForm += '<area shape="circle" coords="63, 173, 10" href="#" onclick="sendRemoteControlRequest(8)" alt="7">';
187         tplRemoteControlForm += '<area shape="circle" coords="109, 173, 10" href="#" onclick="sendRemoteControlRequest(9)" alt="8">';
188         tplRemoteControlForm += '<area shape="circle" coords="153, 173, 10" href="#" onclick="sendRemoteControlRequest(10)" alt="9">';
189         tplRemoteControlForm += '<area shape="circle" coords="63, 197, 10" href="#" onclick="sendRemoteControlRequest(412)" alt="previous">';
190         tplRemoteControlForm += '<area shape="circle" coords="109, 197, 10" href="#" onclick="sendRemoteControlRequest(11)" alt="0">';
191         tplRemoteControlForm += '<area shape="circle" coords="153, 197, 10" href="#" onclick="sendRemoteControlRequest(407)" alt="next">';
192         tplRemoteControlForm += '<area shape="circle" coords="54, 243, 15" href="#" onclick="sendRemoteControlRequest(115)" alt="volume up">';
193         tplRemoteControlForm += '<area shape="circle" coords="107, 233, 10" href="#" onclick="sendRemoteControlRequest(113)" alt="mute">';
194         tplRemoteControlForm += '<area shape="circle" coords="159, 243, 15" href="#" onclick="sendRemoteControlRequest(402)" alt="bouquet up">';
195         tplRemoteControlForm += '<area shape="circle" coords="66, 274, 15" href="#" onclick="sendRemoteControlRequest(114)" alt="volume down">';
196         tplRemoteControlForm += '<area shape="circle" coords="107, 258, 10" href="#" onclick="sendRemoteControlRequest(174)" alt="lame">';
197         tplRemoteControlForm += '<area shape="circle" coords="147, 274, 15" href="#" onclick="sendRemoteControlRequest(403)" alt="bouquet down">';
198         tplRemoteControlForm += '<area shape="circle" coords="48, 306, 10" href="#" onclick="sendRemoteControlRequest(358)" alt="info">';
199         tplRemoteControlForm += '<area shape="circle" coords="106, 310, 15" href="#" onclick="sendRemoteControlRequest(103)" alt="up">';
200         tplRemoteControlForm += '<area shape="circle" coords="167, 306, 10" href="#" onclick="sendRemoteControlRequest(139)" alt="menu">';
201         tplRemoteControlForm += '<area shape="circle" coords="70, 343, 15" href="#" onclick="sendRemoteControlRequest(105)" alt="left">';
202     tplRemoteControlForm += '<area shape="circle" coords="108, 340, 15" href="#" onclick="sendRemoteControlRequest(352)" alt="OK">';
203         tplRemoteControlForm += '<area shape="circle" coords="146, 343, 15" href="#" onclick="sendRemoteControlRequest(106)" alt="right">';
204         tplRemoteControlForm += '<area shape="circle" coords="53, 381, 10" href="#" onclick="sendRemoteControlRequest(392)" alt="audio">';
205         tplRemoteControlForm += '<area shape="circle" coords="106, 374, 15" href="#" onclick="sendRemoteControlRequest(108)" alt="down">';
206         tplRemoteControlForm += '<area shape="circle" coords="162, 381, 10" href="#" onclick="sendRemoteControlRequest(393)" alt="video">';
207         tplRemoteControlForm += '<area shape="circle" coords="56, 421, 10" href="#" onclick="sendRemoteControlRequest(398)" alt="red">';
208         tplRemoteControlForm += '<area shape="circle" coords="90, 422, 10" href="#" onclick="sendRemoteControlRequest(399)" alt="green">';
209         tplRemoteControlForm += '<area shape="circle" coords="123, 422, 10" href="#" onclick="sendRemoteControlRequest(400)" alt="yellow">';
210         tplRemoteControlForm += '<area shape="circle" coords="158, 421, 10" href="#" onclick="sendRemoteControlRequest(401)" alt="blue">';
211         tplRemoteControlForm += '<area shape="circle" coords="61, 460, 10" href="#" onclick="sendRemoteControlRequest(377)" alt="tv">';
212         tplRemoteControlForm += '<area shape="circle" coords="90, 461, 10" href="#" onclick="sendRemoteControlRequest(385)" alt="radio">';
213         tplRemoteControlForm += '<area shape="circle" coords="123, 461, 10" href="#" onclick="sendRemoteControlRequest(388)" alt="text">';
214         tplRemoteControlForm += '<area shape="circle" coords="153, 460, 10" href="#" onclick="sendRemoteControlRequest(138)" alt="help">';
215     tplRemoteControlForm += '</map>';
216         tplRemoteControlForm += '<img src="/webdata/gfx/remotecontrol.jpg" height="607" width="220" border="0)" alt="Remote Control" usemap="#remotecontrol">';
217         
218 var tplAddTimerForm = '';
219         tplAddTimerForm += '<table border=0 cellpadding=0 cellspacing=10>';
220         tplAddTimerForm += '<tr><td colspan="3">Action:</td>';
221         tplAddTimerForm += '<td colspan="3">';
222         tplAddTimerForm += '<select name="action" id="action" size="1">';
223         tplAddTimerForm += '%(action)';
224         tplAddTimerForm += '</select></td></tr>';
225         tplAddTimerForm += '<tr><td colspan="3">&nbsp;</td>';
226         tplAddTimerForm += '<td colspan="3">Note: For recurring events start/end day/month are not required.</td></tr>';
227         tplAddTimerForm += '<tr><td colspan="3">Start:</td>';
228         tplAddTimerForm += '<td colspan="3"><select name="syear" size="1" id="syear" onchange="javascript:addTimerFormChangeTime(\'s\');">%(syear)</select>.';
229         tplAddTimerForm += '<select name="smonth" id="smonth" size="1" onchange="javascript:addTimerFormChangeTime(\'s\');">%(smonth)</select>.';
230         tplAddTimerForm += '<select name="sday" id="sday" size="1" onchange="javascript:addTimerFormChangeTime(\'s\');">%(sday)</select>';
231         tplAddTimerForm += '&nbsp;-&nbsp;<select name="shour" id="shour" size="1" onchange="javascript:addTimerFormChangeTime(\'s\');">%(shour)</select>';
232         tplAddTimerForm += ':<select name="smin" id="smin" size="1" onchange="javascript:addTimerFormChangeTime(\'s\');">%(smin)</select></td></tr>';
233         tplAddTimerForm += '<tr><td colspan="3">End:</td>';
234         tplAddTimerForm += '<td colspan="3"><select name="eyear" id="eyear" size="1" onchange="javascript:addTimerFormChangeTime(\'e\');">%(eyear)</select>.';
235         tplAddTimerForm += '<select name="emonth" id="emonth" size="1" onchange="javascript:addTimerFormChangeTime(\'e\');">%(emonth)</select>.';
236         tplAddTimerForm += '<select name="eday" id="eday" size="1" onchange="javascript:addTimerFormChangeTime(\'e\');">%(eday)</select>';
237         tplAddTimerForm += '&nbsp;-&nbsp;<select name="ehour" id="ehour" size="1" onchange="javascript:addTimerFormChangeTime(\'e\');">%(ehour)</select>';
238         tplAddTimerForm += ':<select name="emin" id="emin" size="1" onchange="javascript:addTimerFormChangeTime(\'e\');">%(emin)</select></td></tr>';
239         tplAddTimerForm += '<tr><td colspan="3">&nbsp;</td><td colspan="3">Note: For one-time events the "days" field doesn\'t have to be specified.</td></tr>';
240         tplAddTimerForm += '<tr><td colspan="3">Days:</td><td colspan="3">%(repeated)';
241         tplAddTimerForm += '<tr><td colspan="3">Channel:</td><td>';
242         tplAddTimerForm += '<p><input type="radio" id="tvradio" name="tvradio" value="tv" checked onchange="javascript:addTimerFormChangeType();"">TV</p>';
243         tplAddTimerForm += '<p><input type="radio" name="tvradio" value="radio" onchange="javascript:addTimerFormChangeType();">Radio</p><td>';
244         tplAddTimerForm += '<p>Channel:</p>';
245         tplAddTimerForm += '<select name="channel" id="channel" size="1">%(channel)</select></td></tr>';
246         tplAddTimerForm += '<tr><td colspan="3">Name:</td>';
247         tplAddTimerForm += '<td colspan="3"><input name="name" id="name" type="text" size="100" maxlength="100" style="color: #000000;" value="%(name)"></td></tr>';
248         tplAddTimerForm += '<tr><td colspan="3">Description:</td>';
249         tplAddTimerForm += '<td colspan="3"><input name="descr" id="descr" type="text" size="100" maxlength="100" style="color: #000000;" value="%(description)"></td></tr>';
250         tplAddTimerForm += '<tr><td colspan="3">After event do:</td>';
251         tplAddTimerForm += '<td colspan="3"><select id="after_event" name="after_event" size="1">%(afterEvent)</select></td></tr>';
252         tplAddTimerForm += '<tr>&nbsp;&nbsp;</tr>';
253         tplAddTimerForm += '<tr><td colspan="3">&nbsp;</td><td colspan="3">'
254         tplAddTimerForm +=      '<button onclick="sendAddTimer()">Add/Save</button></td></tr></table>';