2 data = [ [ flags, name ], ... ]
7 var standup_data_old = null;
10 // appendChild , removeChild
12 function table_add(curtag, td)
17 // console.log("wt: "+curtag.tagName);
19 if (curtag.tagName.toLowerCase() == "div" ||
20 curtag.tagName.toLowerCase() == "table") {
21 curtag = curtag.firstChild;
23 else if (curtag.tagName.toLowerCase() == "tbody") {
29 } while (curtag != null);
31 curtag = tbody.firstChild;
34 if (curtag.tagName.toLowerCase() == "tr") {
35 if (curtag.firstChild != null) {
36 curtag = curtag.firstChild;
40 curtag.appendChild(td);
44 else if (curtag.tagName.toLowerCase() == "td") {
45 if (curtag.nextSibling != null) {
46 curtag = curtag.nextSibling;
51 curtag.parentNode.appendChild(td);
56 curtag = curtag.parentNode.nextSibling;
61 curtag = curtag.parentNode;
64 } while (curtag != null);
66 tr = document.createElement("tr");
68 tbody.appendChild(tr);
73 function spcs(c1, c2, n)
78 for (i = 0 ; i < n ; i++) {
89 function table_walk(curtag)
92 // console.log("wt: "+curtag.tagName);
93 if (curtag.tagName.toLowerCase() == "div" ||
94 curtag.tagName.toLowerCase() == "table" ||
95 curtag.tagName.toLowerCase() == "tbody") {
96 curtag = curtag.firstChild;
98 else if (curtag.tagName.toLowerCase() == "tr") {
99 if (curtag.firstChild != null)
100 curtag = curtag.firstChild;
101 else if (curtag.tagName != '')
102 curtag = curtag.nextSibling;
106 else if (curtag.tagName.toLowerCase() == "td") {
107 if (curtag.nextSibling != null)
108 curtag = curtag.nextSibling;
110 if (curtag.parentNode.nextSibling != null && curtag.parentNode.nextSibling.tagName != '')
111 curtag = curtag.parentNode.nextSibling;
119 } while (curtag != null && curtag.tagName.toLowerCase() != "td");
123 alert("outtag == null");
125 alert("outtag: "+curtag.tagName);
130 function j_stand_tdcont(el)
148 content += state_add(el[0]);
153 function j_stand_cont(data)
157 var st = 0, name = "";
160 if (standup_data_old == null || data.length < 4) {
161 // if (standup_data_old == null) {
163 content = '<table cols="'+(data.length < 4 ? data.length : 4)+'" class="table_standup">';
164 for (i = 0 ; i < data.length ; i++) {
167 content += '<td id="'+i+'" class="room_standup">';
168 content += j_stand_tdcont(data[i]);
174 content += '</table>';
176 $("standup").innerHTML = content;
178 // console.log("inizio");
179 // for (i = 0 , curtag = table_walk($("standup")) ; curtag != null ; curtag = table_walk(curtag), i++ ) {
180 // console.log("inloop["+i+"]: "+curtag.tagName+" ID: "+curtag.id);
182 // console.log("fine "+i);
184 // walktable($("standup"), nextag);
185 // console.log($("standup").firstChild);
186 // console.log($("standup").firstChild.firstChild.firstChild.firstChild);
188 // log_walk($("standup"));
190 standup_data_old = data;
193 var idx_del, arr_add, idx_mod, arr_mod;
194 var idx_del_n = 0, idx_add_n = 0, idx_mod_n = 0;
196 var i_del, i_mod, i_add;
199 idx_del = new Array();
200 arr_add = new Array();
201 map_add = new Array();
202 idx_mod = new Array();
203 arr_mod = new Array();
204 map_cur = new Array();
206 // find removed entries
207 for (i = 0 ; i < standup_data_old.length ; i++) {
208 for (e = 0 ; e < data.length ; e++) {
209 if (standup_data_old[i][1] == data[e][1]) {
213 if (e == data.length) {
214 idx_del[idx_del_n++] = i;
218 /* modified entries */
219 if (standup_data_old[i][0] != data[e][0]) {
220 arr_mod[idx_mod_n] = data[e];
221 idx_mod[idx_mod_n++] = i;
228 for (e = 0 ; e < data.length ; e++) {
229 for (i = 0 ; i < standup_data_old.length ; i++) {
230 if (data[e][1] == standup_data_old[i][1] ) {
234 if (i == standup_data_old.length) {
235 // console.log("ADD: "+data[e][1]);
236 arr_add[idx_add_n] = data[e];
237 map_add[idx_add_n++] = e;
241 // TODO: qui travaso add in del
244 // alert("del: ["+j_stand_tdcont(standup_data_old[idx_del[i_del]])+"]");
245 for (i = 0 , i_del = 0, i_mod = 0, i_add = 0, curtag = table_walk($("standup")) ; curtag != null ; curtag = table_walk(curtag), i++ ) {
246 // console.log("cur.id: "+curtag.id);
248 // alert("i: "+i+" tagname: "+curtag.tagName+" innerHTML: ["+curtag.innerHTML+"]");
249 // console.log("inloop["+i+"]: "+curtag.tagName+" ID: "+curtag.id);
250 if (curtag.innerHTML == "") {
251 // console.log("innerHTML == none");
252 if (i_add < idx_add_n) {
253 // console.log(" to be new");
254 // console.log(" add: CONT:"+j_stand_tdcont(arr_add[i_add]));
255 curtag.innerHTML = j_stand_tdcont(arr_add[i_add]);
256 curtag.id = map_add[i_add];
261 // else if (i_del < idx_del_n && curtag.innerHTML == j_stand_tdcont(standup_data_old[idx_del[i_del]])) {
262 else if (i_del < idx_del_n && curtag.id == idx_del[i_del]) {
263 // console.log("to be cancel["+i+"]: ID: "+curtag.id);
264 if (i_add < idx_add_n) {
265 // console.log(" to be new");
266 // console.log(" add: CONT:"+j_stand_tdcont(arr_add[i_add]));
267 curtag.innerHTML = j_stand_tdcont(arr_add[i_add]);
268 curtag.id = map_add[i_add];
272 // console.log(" to be del");
273 curtag.innerHTML = "";
278 // else if (i_mod < idx_mod_n && curtag.innerHTML == j_stand_tdcont(standup_data_old[idx_mod[i_mod]])) {
279 else if (i_mod < idx_mod_n && curtag.id == idx_mod[i_mod]) {
280 // console.log(" to be mod");
281 // console.log("mod: "+idx_mod[i_mod]+ " CONT:"+j_stand_tdcont(arr_mod[i_mod]));
282 curtag.innerHTML = j_stand_tdcont(arr_mod[i_mod]);
283 curtag.id = map_cur[curtag.id];
287 curtag.id = map_cur[curtag.id];
289 // console.log("fineloop");
291 for (i ; i_add < idx_add_n ; i_add++, i++) {
292 // console.log("ADD: "+i+" arr_add: "+ arr_add[i_add][1]);
293 td = document.createElement("td");
294 td.className = "room_standup";
295 td.id = map_add[i_add];
296 td.innerHTML = j_stand_tdcont(arr_add[i_add]);
298 table_add($("standup"), td);
301 standup_data_old = data;
304 // $("esco").innerHTML = '<input class="button" name="logout" value="Esco." onclick="esco_cb();" type="button">';
308 window.onbeforeunload = null;
309 window.onunload = null;
316 function j_selfauth_manager(form, lang)
321 if (form.elements['i_userid'].value == '' || j_check_email(form.elements['i_emailid'].value) == false || (form.elements['i_action'] == 'insert' &&form.elements['i_passwordid'].value == '')) {
323 no = new notify(false, "<br><b>e-mail</b> and/or <b>user</b> and/or <b>pwd</b> fields are invalid.<br><br>Please fix them.", 1, "close", 360, 100);
325 no = new notify(false, "<br>I campi <b>e-mail</b> e/o <b>user</b> e/o <b>pwd</b> non sono validi.<br><br>Correggili per favore.", 1, "chiudi", 360, 100);
329 else if (form.elements['i_passwordid'].value != form.elements['i_confpassid'].value) {
331 no = new notify(false, "<br>The two passwords don't match. Insert them again.", 1, "close", 360, 100);
333 no = new notify(false, "<br>Le due password che hai inserito non combaciano. Immettile di nuovo.", 1, "chiudi", 360, 100);
337 if (form.elements['i_passwordid'].value != "")
338 token = calcMD5(form.elements['i_passwordid'].value);
342 form.elements['i_pass_privateid'].value = token;
343 form.elements['i_passwordid'].value = "";
344 form.elements['i_confpassid'].value = "";
352 function selfauth_formtext_hilite()
354 if ($("selfauth_formid").elements['i_actionid'].value != "show") {
355 formtext_hilite($("i_emailid"));
356 formtext_hilite($("i_userid"));
357 formtext_hilite($("i_passwordid"));
358 formtext_hilite($("i_confpassid"));
359 formsub_hilite($("sub"));
363 function selfauth_init()
365 selfauth_formtext_hilite();
368 function j_check_email(email)
370 if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email))