source: extensions/event_cats/admin/template/autolog_new.js @ 7985

Last change on this file since 7985 was 7985, checked in by LucMorizur, 13 years ago

Implement bullets in autolog_new.tpl

File size: 38.4 KB
Line 
1/* Event Cats Javascript functions LucMorizur June 2009 - ... */
2
3// Keeps file coded in UTF-8 without BOM: é
4
5// All variables declarations
6// Once this entire file has been read, some JS code is executed at the end
7// of .tpl file, thus some values below are modified during the HTML page
8// "reading and displaying"
9
10var ec_avoid_infinite_loop      = true;
11var ec_is_creation              = true;
12var ec_chk_nover_cat            = true;
13var ec_chk_over_grp             = true;
14var ec_flag1                    = false;
15var ec_flag2                    = false;
16var ec_dont_check               = false;
17var ec_selected_old_group       = false;
18var ec_validity_on              = false;
19var ec_validity_day_length      = 0;
20var ec_err                      = '';
21var ec_selected_img             = '';
22var ec_new_code_text            = '';
23var ec_new_comment_text         = '';
24var ec_new_user_text            = '';
25var ec_new_psd_text             = '';
26var ec_new_grp_text             = '';
27var ec_old_new_psd_text         = '';
28var ec_test_reg                 = '';
29var ec_auto_code_digits_nb      = '';
30var ec_default_action           = '';
31var ec_default_entry            = '';
32var ec_up_code_lbl_forced_txt   = '';
33var ec_original_old_user        = '';
34var ec_selected_old_entry       = '-1';
35var ec_selected_old_code        = '-1';
36var ec_selected_old_user        = '-1';
37var ec_selected_AP              = '-1';
38var ec_selected_cat             = '-1';
39var ec_selected_user            = '-1';
40var ec_selected_code            = '-1';
41var ec_selected_action          = '-1';
42var maintenant                  = new Date();
43var validity_date               = new Date();
44var ec_JS_message               = new Array();
45var ec_duplic_codes             = new Array();
46var ec_lists_temp               = new Array();
47var ec_validity_days            = new Array();
48var ec_lists                    = new Array();
49    ec_lists['code']            = new Array();
50    ec_lists['user_id']         = new Array();
51    ec_lists['action']          = new Array();
52    ec_lists['arg1']            = new Array();
53    ec_lists['arg2']            = new Array();
54    ec_lists['forced']          = new Array();
55    ec_lists['comment']         = new Array();
56var d                           = document;
57
58function de(ec_id) {
59  return document.getElementById(ec_id);
60}
61
62function ec_add_0(s) {
63  var s2 = String(s);
64  return (s2.length == 1) ? "0" + s2 : s2;
65}
66
67function ec_check_exist_value(ec_id, ec_val) {
68  var e = document.getElementById(ec_id);
69  for (var i = 0; i < e.length; i++) {
70    if (e.options[i].value == ec_val) return true;
71  }
72  return false;
73}
74
75function ec_check_exist_innerHTML(ec_id, ec_val) {
76  var e = document.getElementById(ec_id);
77  for (var i = 0; i < e.length; i++) {
78    if (e.options[i].innerHTML == ec_val) return true;
79  }
80  return false;
81}
82
83function ec_update_comment(ec_id) {
84  if (ec_id == '')
85   de('first_fieldset_comment_id').innerHTML = '';
86  else
87   de('first_fieldset_comment_id').innerHTML = ' <em>(' + ec_id + ')</em>';
88}
89
90function ec_mark_entry(ec_id) {
91  var i = 0;
92  ec_chk_nover_cat = false;
93  if (ec_id == '-1') de('ec_in_up_entry_list_id').selectedIndex = '-1';
94  else {
95    ec_new_comment_text = ec_lists['comment'][ec_id];
96    de('ec_in_up_comment_id').value = ec_new_comment_text;
97    de('ec_in_up_entry_list_id').value = ec_id;
98    de('ec_act2_id').value = ec_id;
99    if (
100      ec_check_exist_value('ec_in_up_usr_list_id', ec_lists['user_id'][ec_id])
101    ) {
102      ec_selected_user = 'ec_sel_user_old';
103      ec_selected_old_user = ec_lists['user_id'][ec_id];
104      ec_original_old_user = ec_selected_old_user;
105      if (
106        ec_lists['arg1'][ec_id] != '' &&
107        ec_lists['action'][ec_id].lastIndexOf('ec_ok') != -1
108      ) i++;
109      if (ec_lists['arg2'][ec_id] != '') { i++; i++; }
110      switch (i) {
111        case 0: // Home
112          ec_selected_action = 'ec_input_action_home';
113        break;
114        case 1: // Category
115          ec_selected_action = 'ec_input_action_cat';
116          ec_selected_cat = (ec_check_exist_value('ec_in_up_cats_id',
117           ec_lists['arg1'][ec_id])) ? ec_lists['arg1'][ec_id] : '-1';
118        break;
119        case 2: // Additionnal Page
120          ec_selected_action = 'ec_input_action_add_p';
121          ec_selected_AP = (ec_check_exist_value('ec_in_up_aps_id',
122           ec_lists['arg2'][ec_id])) ? ec_lists['arg2'][ec_id] : '-1';
123        break;
124        case 3: // Image
125          ec_selected_action = 'ec_input_action_img';
126          ec_selected_cat = (ec_check_exist_value('ec_in_up_cats_id',
127           ec_lists['arg1'][ec_id])) ? ec_lists['arg1'][ec_id] : '-1';
128          ec_selected_img = ec_lists['arg2'][ec_id];
129        break;
130      }
131      de('ec_in_up_forced_id').checked =
132       (ec_lists['forced'][ec_id] == 'true') ? 'checked' : '';
133      ec_mark_action(ec_selected_action);
134    }
135    else {
136      ec_selected_user = 'ec_sel_user_none';
137      de('ec_in_up_forced_id').checked = '';
138      if (ec_check_exist_value('ec_in_up_aps_id', ec_lists['arg2'][ec_id])) {
139        ec_selected_AP = ec_lists['arg2'][ec_id];
140        ec_mark_action('ec_input_action_add_p');
141      }
142      else {
143        ec_mark_action('ec_input_action_refused');
144      }
145    }
146  }
147  ec_chk_nover_cat = true;
148}
149
150function ec_mark_code(ec_id) {
151  var t2 = d.ec_new_code.ec_in_up_code_list_id;
152  if (ec_id == '-1') {
153    de('ec_sel_code_old').checked = 'checked';
154    de('ec_sel_code_old').checked = '';
155  }
156  else {
157    if (ec_flag2 ||
158     !(de('ec_sel_code_old').disabled == 'disabled' ||
159     de('ec_sel_code_old').disabled == true)
160    ) {
161      var t1 = '';
162      ec_selected_code = ec_id;
163      de(ec_selected_code).checked = 'checked';
164      switch (ec_selected_code) {
165        case 'ec_sel_code_new':
166          de('ec_act1_id').value                    = 'create';
167          de('ec_in_up_code_list_id').selectedIndex = '-1';
168          de('ec_in_up_code_id').value              = ec_new_code_text;
169          de('ec_in_up_comment_id').value           = ec_new_comment_text;
170          de('ec_in_up_grp_txt_id').value           = ec_new_grp_text;
171          de('ec_in_up_newgroup_id').checked        =
172           (ec_selected_old_group) ? 'checked' : '';
173          de('ec_act2_id').value                    = '-1';
174          de('first_fieldset_value_id').innerHTML = ec_new_code_text;
175          ec_update_comment(ec_new_comment_text);
176        break;
177        case 'ec_sel_code_old':
178          ec_new_comment_text = ec_lists['comment'][ec_selected_old_code];
179          de('ec_in_up_comment_id').value    = ec_new_comment_text;
180          de('ec_act1_id').value             = 'duplicate_entry_submit';
181          de('ec_act2_id').value             = ec_selected_old_code;
182          de('ec_in_up_code_list_id').value  = ec_selected_old_code;
183          de('ec_in_up_grp_txt_id').value    = '';
184          de('ec_in_up_newgroup_id').checked = '';
185          de('ec_in_up_code_id').value       = '';
186          t1                                 = 'disabled';
187          ec_selected_user                   = 'ec_sel_user_old';
188          ec_selected_old_user               =
189           ec_lists['user_id'][ec_selected_old_code];
190          de('first_fieldset_value_id').innerHTML =
191           ec_lists['code'][t2.options[t2.selectedIndex].value];
192          ec_update_comment(
193            ec_lists['comment'][t2.options[t2.selectedIndex].value]
194          );
195          ec_flag1 = true;
196          ec_mark_user('ec_sel_user_old');
197          ec_flag1 = false;
198        break;
199      }
200      de('ec_sel_user_new').disabled       = t1;
201      de('ec_submit_gen_user_id').disabled = t1;
202      de('ec_in_up_usr_txt_id').disabled   = t1;
203      de('ec_in_up_psd_txt_id').disabled   = t1;
204      de('ec_confirm_psd_txt_id').disabled = t1;
205      de('ec_in_up_newgroup_id').disabled  = t1;
206      de('ec_in_up_grp_txt_id').disabled   = t1;
207      de('ec_sel_user_old').disabled       = t1;
208      de('ec_in_up_usr_list_id').disabled  = t1;
209    }
210  }
211}
212
213function ec_mark_user(ec_id) {
214  var t = d.ec_new_code.ec_in_up_usr_list_id;
215  if (ec_id == '-1') {
216    de('ec_sel_user_old').checked = 'checked';
217    de('ec_sel_user_old').checked = '';
218  }
219  else {
220    if (
221     !ec_is_creation &&
222     de('ec_in_up_entry_list_id').selectedIndex == '-1'
223    ) {
224      alert(ec_JS_message['ec_clk_entry_miss']);
225      de('ec_in_up_usr_list_id').selectedIndex = '-1';
226      d.ec_new_code.ec_in_up_entry_list.focus();
227      return false;
228    }
229    else if (ec_flag1 ||
230     !(de('ec_sel_user_old').disabled == 'disabled' ||
231     de('ec_sel_user_old').disabled == true)
232    ) {
233      ec_selected_user = ec_id;
234      de(ec_selected_user).checked = 'checked';
235      switch (ec_selected_user) {
236        case 'ec_sel_user_none': // None
237          ec_selected_action =
238           (ec_ap_ok && (ec_selected_action != 'ec_input_action_refused')) ?
239           'ec_input_action_add_p' : 'ec_input_action_refused';
240          de('ec_in_up_usr_txt_id').value          = '';
241          de('ec_in_up_psd_txt_id').value          = '';
242          de('ec_confirm_psd_txt_id').value        = '';
243          de('ec_in_up_grp_txt_id').value          = '';
244          de('ec_in_up_newgroup_id').checked       = '';
245          de('ec_in_up_usr_list_id').selectedIndex = '-1';
246          de('second_fieldset_value_id').innerHTML = '';
247        break;
248        case 'ec_sel_user_new': // New user
249          if (ec_selected_action == 'ec_input_action_refused')
250           ec_selected_action = 'ec_input_action_home';
251          de('ec_in_up_usr_txt_id').value          = ec_new_user_text;
252          de('ec_in_up_psd_txt_id').value          = ec_new_psd_text;
253          de('ec_confirm_psd_txt_id').value        = '';
254          de('ec_in_up_grp_txt_id').value          =
255           (ec_selected_old_group) ? ec_new_grp_text : '';
256          de('ec_in_up_newgroup_id').checked       =
257           (ec_selected_old_group) ? 'checked' : '';
258          de('ec_in_up_usr_list_id').selectedIndex = '-1';
259          de('second_fieldset_value_id').innerHTML = ec_new_user_text;
260        break;
261        case 'ec_sel_user_old': // "Old" user
262          if (ec_selected_action == 'ec_input_action_refused')
263           ec_selected_action = 'ec_input_action_home';
264          de('ec_in_up_usr_txt_id').value          = '';
265          de('ec_in_up_psd_txt_id').value          = '';
266          de('ec_confirm_psd_txt_id').value        = '';
267          de('ec_in_up_grp_txt_id').value          = '';
268          de('ec_in_up_newgroup_id').checked       = '';
269          de('ec_in_up_usr_list_id').value         = ec_selected_old_user;
270          de('second_fieldset_value_id').innerHTML =
271           t.options[t.selectedIndex].label;
272        break;
273      }
274      ec_check_pwd_text();
275      if (ec_avoid_infinite_loop) {
276        ec_avoid_infinite_loop = false;
277        ec_mark_action(ec_selected_action);
278        ec_avoid_infinite_loop = true;
279      }
280    }
281  }
282  return true;
283}
284
285function ec_mark_action(ec_id) {
286  if (ec_id == '' || ec_id == '-1') {
287    de('ec_input_action_home').checked = 'checked';
288    de('ec_input_action_home').checked = '';
289  }
290  else {
291    if (
292     !ec_is_creation &&
293     de('ec_in_up_entry_list_id').selectedIndex == '-1'
294    ) {
295      alert(ec_JS_message['ec_clk_entry_miss']);
296      de('ec_in_up_aps_id').selectedIndex = '-1';
297      de('ec_in_up_cats_id').selectedIndex = '-1';
298      de('ec_in_up_imgs_id').value = '';
299      d.ec_new_code.ec_in_up_entry_list.focus();
300      return false;
301    }
302    else if (
303      !(de(ec_id).disabled == 'disabled' ||
304      de(ec_id).disabled == true)
305    ) {
306      if (
307        ec_chk_nover_cat &&
308        ec_id == 'ec_input_action_cat' &&
309        de('ec_in_up_imgs_id').value != ''
310      ) {
311        ec_selected_action = 'ec_input_action_img';
312        ec_selected_cat    = de('ec_in_up_cats_id').value;
313      }
314      else ec_selected_action = ec_id;
315      de(ec_selected_action).checked = 'checked';
316      switch (ec_selected_action) {
317        case 'ec_input_action_add_p': // Additional Page
318          if (ec_selected_AP == '-1')
319           de('ec_in_up_aps_id').selectedIndex = '-1';
320          else
321           de('ec_in_up_aps_id').value = ec_selected_AP;
322          de('ec_in_up_cats_id').selectedIndex = '-1';
323          de('ec_in_up_imgs_id').value = '';
324          de('ec_in_up_imgs_warn').innerHTML = '';
325        break;
326        case 'ec_input_action_cat': // Category
327          de('ec_in_up_aps_id').selectedIndex = '-1';
328          if (ec_selected_cat == '-1')
329           de('ec_in_up_cats_id').selectedIndex = '-1';
330          else
331           de('ec_in_up_cats_id').value = ec_selected_cat;
332          de('ec_in_up_imgs_id').value = '';
333          ec_selected_user = (ec_selected_user == 'ec_sel_user_none') ?
334           'ec_sel_user_old' : ec_selected_user;
335          de('ec_in_up_imgs_warn').innerHTML = '';
336        break;
337        case 'ec_input_action_img': // Image
338          de('ec_in_up_aps_id').selectedIndex = '-1';
339          if (ec_selected_img == '-1') {
340            de('ec_in_up_cats_id').selectedIndex = '-1';
341            de('ec_in_up_imgs_id').value = '';
342          }
343          else {
344            de('ec_in_up_cats_id').value = ec_selected_cat;
345            de('ec_in_up_imgs_id').value = ec_selected_img;
346          }
347          ec_selected_user = (ec_selected_user == 'ec_sel_user_none') ?
348           'ec_sel_user_old' : ec_selected_user;
349          ec_check_img_text();
350        break;
351        case 'ec_input_action_home': // Home
352          de('ec_in_up_aps_id').selectedIndex = '-1';
353          de('ec_in_up_cats_id').selectedIndex = '-1';
354          de('ec_in_up_imgs_id').value = '';
355          de('ec_in_up_imgs_warn').innerHTML = '';
356          ec_selected_user = (ec_selected_user == 'ec_sel_user_none') ?
357           'ec_sel_user_old' : ec_selected_user;
358        break;
359        case 'ec_input_action_refused': // Access denied
360          de('ec_in_up_aps_id').selectedIndex = '-1';
361          de('ec_in_up_cats_id').selectedIndex = '-1';
362          de('ec_in_up_imgs_id').value = '';
363          ec_selected_user = 'ec_sel_user_none';
364          de('ec_in_up_imgs_warn').innerHTML = '';
365        break;
366      }
367      if (ec_avoid_infinite_loop) {
368        ec_avoid_infinite_loop = false;
369        ec_mark_user(ec_selected_user);
370        ec_avoid_infinite_loop = true;
371      }
372      ec_mark_forced();
373    }
374  }
375  return true;
376}
377
378function ec_mark_forced() {
379  de('ec_style_forced_id').innerHTML =
380    (de('ec_in_up_forced_id').checked == '') ?
381     ec_up_code_lbl_forced_txt
382    :
383     '<span style = "font-weight:bold; color:red;">' +
384     ec_up_code_lbl_forced_txt + '</span>'
385  ;
386}
387
388function ec_rnd(ec_min, ec_max) {
389  return Math.floor(ec_min + (ec_max - ec_min + 1) * Math.random());
390}
391
392function ec_gen_txt(ec_length) {
393  var t = '';
394  var ec_reg_A = /[A-Z]+/;
395  var ec_reg_a = /[a-z]+/;
396  var ec_reg_0 = /[0-9]+/;
397  var i = 0;
398  var ec_l = 0;
399  ec_l = parseInt(ec_length);
400  if (ec_l < 3) {
401    ec_err = '< 3';
402    return '';
403  }
404  do {
405    i++;
406    switch (ec_rnd(0, 2)) {
407      case 0: // A - Z
408        t += String.fromCharCode(ec_rnd(65, 90));
409      break;
410      case 1: // a - z
411        t += String.fromCharCode(ec_rnd(97, 122));
412      break;
413      case 2: // 0 - 9
414        t += String.fromCharCode(ec_rnd(48, 57));
415      break;
416    }
417    if (i > 500) {
418      break;
419    }
420    if ((t.length) > (ec_l)) {
421      t = t.substr(1, ec_l);
422    }
423  } while (
424   (t.length < ec_l) ||
425   !( ec_reg_A.test(t) && ec_reg_a.test(t) && ec_reg_0.test(t) )
426  );
427  if (i > 500) {
428    ec_err = '> 500\n' + t;
429    return '';
430  }
431  else {
432    return t;
433  }
434}
435
436function ec_gen_code() {
437  var t = '';
438  t = ec_gen_txt(ec_auto_code_digits_nb);
439  if (t == '') {
440    alert("Failed :\n" + ec_err);
441    ec_new_code_text = 'Failed...';
442  }
443  else {
444    ec_new_code_text = t;
445  }
446  if (ec_check_code_text(ec_new_code_text)) ec_mark_code('ec_sel_code_new');
447}
448
449function ec_gen_user() {
450  var t1          = '';
451  var t2          = '';
452  var ec_word     = '';
453  var ec_cat_sel  = '';
454  var ec_reg_cat2 = /\//;
455  var ec_reg_ap   = /^\S+/;
456  var ec_reg_cat1 = /\/\s(.+)$/;
457  var ec_reg_cat3 = /^\s*\-\s(.+)$/;
458  if (
459   ec_selected_action == '' ||
460   (ec_selected_action == 'ec_input_action_cat' && ec_selected_cat == '-1') ||
461   (ec_selected_action == 'ec_input_action_img' &&
462    (ec_selected_img == '' || ec_selected_cat == '-1')) ||
463   (ec_selected_action == 'ec_input_action_add_p' && ec_selected_AP == '-1')
464  ) {
465    alert(ec_JS_message['ec_gen_user_act_miss']);
466    return false;
467  }
468  else {
469    t1 = ec_gen_txt('8');
470    if (t1 == '') {
471      alert("Failed :\n" + ec_err);
472      ec_new_psd_text = 'Failed...';
473      return false;
474    }
475    else {
476      ec_new_psd_text = t1;
477      ec_old_new_psd_text = ec_new_psd_text;
478      switch (ec_selected_action) {
479        case 'ec_input_action_add_p': // Additional Page
480          ec_new_user_text = ec_reg_ap.exec(
481           d.ec_new_code.ec_in_up_aps.options[
482            d.ec_new_code.ec_in_up_aps.selectedIndex
483           ].label
484          )[0];
485          ec_new_user_text = ec_new_user_text.substr(0, 50);
486          t2 = ec_new_user_text;
487        break;
488        case 'ec_input_action_cat': // Category
489        case 'ec_input_action_img': // Image
490          ec_cat_sel = d.ec_new_code.ec_in_up_cat.options[
491            d.ec_new_code.ec_in_up_cat.selectedIndex
492           ].label;
493          ec_new_user_text = ec_reg_cat3.exec(ec_cat_sel)[1];
494          ec_new_user_text = ec_new_user_text.replace(/\s/g, '_');
495          ec_new_user_text = ec_new_user_text.substr(0, 50);
496          t2 = ec_new_user_text;
497        if (ec_selected_action == 'ec_input_action_img') {
498          ec_new_user_text +=  '_' + d.ec_new_code.ec_in_up_imgs_id.value;
499        }
500        break;
501        case 'ec_input_action_home': // Home
502          t1 = ec_gen_txt('3');
503          if (t1 == '') {
504            alert("Failed :\n" + ec_err);
505            ec_new_psd_text = 'Failed...';
506            return false;
507          }
508          t2 = ec_JS_message['Home'];
509          ec_new_user_text = t2 + '_' + t1;
510        break;
511      }
512      if (ec_selected_old_group) ec_new_grp_text = 'EC_' + t2;
513      ec_flag1 = true;
514      ec_mark_user('ec_sel_user_new');
515      ec_flag1 = false;
516      return ec_check_user_text();
517    }
518  }
519}
520
521function ec_gen_full_auto() {
522  ec_selected_old_group = true;
523  if (ec_gen_user()) ec_gen_code();
524}
525
526function ec_check_img_text() {
527  if (isNaN(de('ec_in_up_imgs_id').value)) {
528    alert(ec_JS_message['ec_act_img_miss']);
529    ec_selected_img = '';
530    de('ec_in_up_imgs_id').value = '';
531  }
532  else {
533    de('ec_in_up_imgs_warn').innerHTML = (
534     de('ec_in_up_imgs_id').value != '' &&
535     de('ec_in_up_cats_id').selectedIndex == '-1'
536    ) ? ec_JS_message['ec_act_cat_miss'] : '';
537  }
538}
539
540function ec_check_user_text() {
541  if (ec_check_exist_innerHTML('ec_in_up_usr_list_id', ec_new_user_text)) {
542    alert(ec_JS_message['ec_user_already_exists']);
543    ec_new_user_text = '';
544    ec_mark_user('ec_sel_user_new');
545    return false;
546  }
547  return true;
548}
549
550function ec_check_pwd_text() {
551  if (
552   de('ec_in_up_psd_txt_id').value == ec_old_new_psd_text
553   && ec_old_new_psd_text != ''
554   && ec_selected_user == 'ec_sel_user_new'
555  ) de('ec_in_up_pwd_warn').innerHTML = ec_JS_message['ec_new_pwd_gen'];
556  else de('ec_in_up_pwd_warn').innerHTML = '';
557}
558
559function ec_check_grp_text() {
560  if (ec_chk_over_grp) {
561    de('ec_in_up_newgroup_id').checked =
562     (de('ec_in_up_newgroup_id').checked == '') ? 'checked' : '';
563    ec_chk_over_grp = false;
564  }
565  ec_selected_old_group = (de('ec_in_up_newgroup_id').checked != '');
566}
567
568function ec_check_code_text(t) {
569  var treg = /^[a-zA-Z0-9_-]{4,32}$/;
570  var v = false;
571  for (i = 0; i < ec_lists['code'].length; i++)
572   v = (v || (t == ec_lists['code'][i]));
573  if (v) {
574    alert(ec_JS_message['ec_code_already_exists']);
575    ec_new_code_text = '';
576    de('ec_in_up_code_id').value = '';
577    return false;
578  }
579  else if (t == '' || treg.test(t) || t == NULL) {
580    ec_new_code_text = t;
581    ec_mark_code('ec_sel_code_new');
582    return true;
583  }
584  else {
585    alert(ec_JS_message['ec_submit_code_bad']);
586    ec_new_code_text = '';
587    de('ec_in_up_code_id').value = '';
588    return false;
589  }
590}
591
592function ec_check_submit() {
593  var t1 = true;
594  var t2 = true;
595  var t3 = false;
596  if (ec_dont_check) return true;
597  if (ec_is_creation) {
598    t3 = de('ec_sel_code_old').checked != '';
599    if ((
600      de('ec_sel_code_new').checked != '' &&
601      de('ec_in_up_code_id').value == ''
602      ) || (
603      de('ec_sel_code_old').checked != '' &&
604      de('ec_in_up_code_list_id').selectedIndex == '-1'
605      ) || (
606      de('ec_sel_code_old').checked == '' &&
607      de('ec_sel_code_new').checked == ''
608      )
609    ) {
610      alert(ec_JS_message['ec_submit_code_miss']);
611      return false;
612    }
613  }
614  else {
615    t1 = (de('ec_sel_user_none').checked == '');
616    t2 = (de('ec_input_action_refused').checked == '');
617    if (
618      !t1 && ((
619          de('ec_input_action_add_p').checked != '' &&
620          d.ec_new_code.ec_in_up_aps.selectedIndex == '-1'
621        ) || (
622        de('ec_input_action_add_p').checked == '' &&
623        t2
624        )
625      )
626    ) {
627      alert(ec_JS_message['ec_submit_action_miss']);
628      return false;
629    }
630    if (de('ec_in_up_entry_list_id').selectedIndex == '-1') {
631      alert(ec_JS_message['ec_clk_entry_miss']);
632      return false;
633    }
634    if (
635      ec_original_old_user != '' && (
636        de('ec_sel_user_new').checked != '' || (
637          de('ec_sel_user_old').checked != '' &&
638          ec_original_old_user != d.ec_new_code.ec_in_up_usr_list.value
639        )
640      )
641    ) if (!confirm(ec_JS_message['ec_confirm_change_user'])) return false;
642  }
643  if ((
644    de('ec_sel_user_new').checked != '' &&
645    de('ec_in_up_usr_txt_id').value == ''
646    ) || (
647    de('ec_sel_user_old').checked != '' &&
648    d.ec_new_code.ec_in_up_usr_list.selectedIndex == '-1'
649    ) || (
650    de('ec_sel_user_new').checked == '' &&
651    de('ec_sel_user_old').checked == '' &&
652    t1
653    )
654  ) {
655    alert(ec_JS_message['ec_submit_user_miss']);
656    return false;
657  }
658  if (
659    d.ec_new_code.ec_in_up_aps.selectedIndex == '-1' &&
660    d.ec_new_code.ec_in_up_cat.selectedIndex == '-1' && (
661      de('ec_in_up_imgs_id').value == '' || (
662        de('ec_in_up_imgs_id').value != '' && (
663          isNaN(de('ec_in_up_imgs_id').value) ||
664          d.ec_new_code.ec_in_up_cat.selectedIndex == '-1'
665        )
666      )
667    ) &&
668    de('ec_input_action_home').checked == '' &&
669    t2
670  ) {
671    alert(ec_JS_message['ec_submit_action_miss']);
672    return false;
673  }
674  if (
675    de('ec_sel_user_new').checked != '' &&
676    de('ec_in_up_psd_txt_id').value != '' && (
677      de('ec_in_up_psd_txt_id').value != de('ec_confirm_psd_txt_id').value
678    )
679  ) {
680    alert(ec_JS_message['ec_conf_pwd_dont_match']);
681    return false;
682  }
683  if (!ec_is_creation && !t1)
684   return confirm(ec_JS_message['ec_confirm_del_other']);
685  else if (
686    (!ec_is_creation || t3) &&
687    de('ec_in_up_forced_id').checked != ''
688  ) return confirm(ec_JS_message['ec_confirm_force']);
689  return true;
690}
691
692function ec_change_user_list(ec_id) {
693  ec_selected_old_user = ec_id;
694  ec_mark_user('ec_sel_user_old');
695}
696
697function ec_change_code_list(ec_id) {
698  ec_selected_old_code = ec_id;
699  ec_mark_code('ec_sel_code_old');
700}
701
702function ec_test() {
703  alert('OK.');
704}
705
706function ec_build_ec_lists() {
707  var t = new Array();
708  for (var i = 0; i < ec_lists_temp.length; i++) {
709    t = ec_lists_temp[i].split(';');
710    ec_lists['code'][t[0]] = t[1];
711    ec_lists['user_id'][t[0]] = t[2];
712    ec_lists['action'][t[0]] = t[3];
713    ec_lists['arg1'][t[0]] = t[4];
714    ec_lists['arg2'][t[0]] = t[5];
715    ec_lists['forced'][t[0]] = t[6];
716    ec_lists['comment'][t[0]] = t[7];
717  }
718}
719
720function ec_get_validity() {
721  validity_date.setMilliseconds(0);
722  validity_date.setSeconds(0);
723  validity_date.setMinutes(de('ec_validity_time_id').value.match(/\d+$/));
724  validity_date.setHours(de('ec_validity_time_id').value.match(/^\d+/));
725  validity_date.setDate(de('ec_validity_day_id').selectedIndex);
726  validity_date.setMonth(de('ec_validity_month_id').selectedIndex - 1);
727  validity_date.setFullYear(de('ec_validity_year_id').value);
728}
729
730function ec_set_validity() {
731  validity_date.setMilliseconds(0);
732  validity_date.setSeconds(0);
733  de('ec_validity_year_id').value          = validity_date.getFullYear();
734  de('ec_validity_month_id').selectedIndex = validity_date.getMonth() + 1;
735  de('ec_validity_day_id').selectedIndex   = validity_date.getDate();
736  de('ec_validity_time_id').value          =
737   ec_add_0(validity_date.getHours()) +
738   ':' +
739   ec_add_0(validity_date.getMinutes());
740  de('ec_validity_sel_day').value          =
741   ec_validity_days[validity_date.getDay()];
742}
743
744function ec_validity_check_min() {
745  var tp = new Date();
746  tp.setMilliseconds(0);
747  tp.setSeconds(0);
748  maintenant.setTime(tp.getTime());
749  tp.setTime(maintenant.getTime() + 120000); // PHP will not allow that
750  // [date & time] is less than [one minute more than current [date & time]].
751  // Thus considering processing time, JavaScript should not allow a date
752  // less than [two minutes more than current [date & time]] (due to the fact
753  // that base unit for this value is one minute).
754  de("ec_min_year_id").value          = tp.getFullYear();
755  de("ec_min_month_id").selectedIndex = tp.getMonth() + 1;
756  de("ec_min_day_id").selectedIndex   = tp.getDate();
757  ec_get_validity();
758  if (Number(validity_date.getTime()) < Number(tp.getTime()))
759   validity_date.setTime(tp.getTime());
760  ec_set_validity();
761}
762
763function ec_mark_now() {
764  maintenant = new Date();
765  maintenant.setMilliseconds(0);
766  maintenant.setSeconds(0);
767  validity_date.setTime(maintenant.getTime() + 120000); // See two minutes
768   // explanation in function ec_validity_check_min
769  ec_set_validity();
770}
771
772function ec_validity_set_min() {
773  ec_validity_check_min();
774  // Run again this whole function after 1 mn
775  window.setTimeout("ec_validity_set_min()", 60000);
776}
777
778function ec_add_time(v2, k) {
779  var m = 0; var ts = 0;
780  var v = (isNaN(v2)) ? 0 : Number(v2);
781  if (v < 0) v = 0;
782  ec_get_validity();
783  ts = Number(validity_date.getTime());
784  switch (k) {
785    case 0: // minute(s)
786      validity_date.setTime(ts + (v *    60000));
787    break;
788    case 1: // hour(s)
789      validity_date.setTime(ts + (v *  3600000));
790    break;
791    case 2: // day(s)
792      validity_date.setTime(ts + (v * 86400000));
793    break;
794    case 3: // month(s)
795      m = Number(de('ec_validity_month_id').selectedIndex + v);
796      validity_date.setFullYear(
797        Number(de('ec_validity_year_id').value) + Math.floor(m / 12)
798      );
799      validity_date.setMonth(m % 12); // % : modulo
800    break;
801    case 4: // year(s)
802      validity_date.setFullYear(Number(de('ec_validity_year_id').value) + v);
803    break;
804  }
805  ec_set_validity();
806  ec_validity_check_min();
807}
808
809function ec_valid_set_time_to(v) {
810  var tp = new Date();
811  var ts = 0;
812  tp.setMilliseconds(0);
813  tp.setSeconds(0);
814  maintenant.setTime(tp.getTime());
815  tp.setTime(maintenant.getTime() + 120000); // See two minutes
816   // explanation in function ec_validity_check_min
817  ec_get_validity();
818  validity_date.setHours(v);
819  validity_date.setMinutes(0);
820  ts = Number(validity_date.getTime());
821  if (ts < Number(tp.getTime()))
822   validity_date.setTime(ts + 86400000); // Add 1 day
823  ec_set_validity();
824  ec_validity_check_min();
825}
826
827function ec_check_validity_on() {
828  jQuery('.ec_valid_ctl').attr('disabled', !ec_validity_on);
829  jQuery('img.ui-datepicker-trigger').css(
830    'display', (ec_validity_on) ? 'inline' : 'none'
831  );
832  jQuery('#ec_tmp_img').css(
833    'display', (ec_validity_on) ? 'none' : 'inline'
834  );
835}
836
837function ec_toggle_fieldset(f1, f2) {
838  var t = jQuery(f1).css('display');
839  jQuery(f1).css('display', jQuery(f2).css('display'));
840  jQuery(f2).css('display', t);
841}
842
843function ec_init() {
844  ec_selected_old_group                           = false;
845  ec_new_grp_text                                 = '';
846  ec_err                                          = '';
847  ec_selected_action                              = '';
848  ec_selected_img                                 = '';
849  ec_new_code_text                                = '';
850  ec_new_comment_text                             = '';
851  ec_new_user_text                                = '';
852  ec_new_psd_text                                 = '';
853  ec_old_new_psd_text                             = '';
854  ec_test_reg                                     = '';
855  ec_selected_old_user                            = '-1';
856  ec_selected_old_code                            = '-1';
857  ec_selected_AP                                  = '-1';
858  ec_selected_cat                                 = '-1';
859  ec_selected_user                                = '-1';
860  ec_selected_code                                = '-1';
861  de('ec_valid_offset_id').value             = maintenant.getTimezoneOffset();
862  de('ec_style_forced_id').innerHTML              = ec_up_code_lbl_forced_txt;
863  de('ec_act1_id').value                          = ec_default_action;
864  de('ec_act2_id').value                          = '';
865  de('ec_in_up_comment_id').value                 = '';
866  de('ec_in_up_usr_txt_id').value                 = '';
867  de('ec_in_up_psd_txt_id').value                 = '';
868  de('ec_confirm_psd_txt_id').value               = '';
869  de('ec_in_up_grp_txt_id').value                 = '';
870  de('ec_in_up_newgroup_id').checked              = '';
871  de('ec_in_up_pwd_warn').innerHTML               = '';
872  de('ec_in_up_aps_id').selectedIndex             = '-1';
873  de('ec_in_up_cats_id').selectedIndex            = '-1';
874  de('ec_in_up_imgs_id').value                    = '';
875  de('ec_in_up_imgs_warn').innerHTML              = '';
876  de('ec_input_action_home').checked              = 'checked';
877  de('ec_input_action_home').checked              = '';
878  for (var i = 0; i <= 6; i++)
879   ec_validity_day_length =
880    (ec_validity_days[i].length > ec_validity_day_length) ?
881     ec_validity_days[i].length : ec_validity_day_length;
882  ec_validity_day_length++;
883  de('ec_validity_sel_day').size                  = ec_validity_day_length;
884  ec_mark_now();
885  ec_validity_set_min();
886  pwg_initialization_datepicker("#ec_min_day_id", "#ec_min_month_id",
887   "#ec_min_year_id", "#ec_min_date_id", null, null, null);
888  pwg_initialization_datepicker("#ec_validity_day_id", 
889   "#ec_validity_month_id", "#ec_validity_year_id", "#ec_linked_date_id",
890   null, "#ec_min_date_id", null);
891  maintenant = new Date();
892  maintenant.setMilliseconds(0);
893  maintenant.setSeconds(0);
894  validity_date.setTime(maintenant.getTime());
895 
896  if (ec_is_creation) { // Entry creation
897    de('ec_in_up_auto_code_length_id').value= ec_auto_code_digits_nb;
898    de('ec_in_up_code_id').value                  = '';
899    de('ec_sel_code_old').checked                 = 'checked';
900    de('ec_sel_user_old').checked                 = 'checked';
901    if (
902      ec_default_action == 'create' ||
903      ec_default_action == 'create_ask' ||
904      ec_default_action == 'duplicate_entry_submit'
905    ) {                                             // Create entry from blank
906      ec_help_banner_no                           = 1;
907      de('ec_in_up_usr_list_id').selectedIndex    = '-1';
908      de('ec_in_up_code_list_id').selectedIndex   = '-1';
909      de('ec_sel_code_old').checked               = '';
910      de('ec_sel_user_old').checked               = '';
911      de('ec_submit_gen_full_auto_id').disabled   = '';
912      de('ec_submit_gen_code_id').disabled        = '';
913      de('ec_in_up_auto_code_length_id').disabled = '';
914      de('ec_in_up_code_id').disabled             = '';
915      de('ec_sel_code_new').disabled              = '';
916      de('ec_sel_code_old').disabled              = '';
917      de('ec_in_up_code_list_id').disabled        = '';
918      de('ec_sel_user_new').disabled              = '';
919      de('ec_submit_gen_user_id').disabled        = '';
920      de('ec_in_up_usr_txt_id').disabled          = '';
921      de('ec_in_up_psd_txt_id').disabled          = '';
922      de('ec_confirm_psd_txt_id').disabled        = '';
923      de('ec_in_up_newgroup_id').disabled         = '';
924      de('ec_in_up_grp_txt_id').disabled          = '';
925      de('ec_sel_user_old').disabled              = '';
926      de('ec_in_up_usr_list_id').disabled         = '';
927      de('ec_in_up_forced_id').disabled           = '';
928    }
929    else {                                          // Duplicate entry
930      ec_help_banner_no                           = 2;
931      de('ec_act1_id').value                      = 'duplicate_entry_submit';
932      de('ec_submit_gen_full_auto_id').disabled   = 'disabled';
933      de('ec_submit_gen_code_id').disabled        = 'disabled';
934      de('ec_in_up_auto_code_length_id').disabled = 'disabled';
935      de('ec_in_up_code_id').disabled             = 'disabled';
936      de('ec_sel_code_new').disabled              = 'disabled';
937      de('ec_sel_code_old').disabled              = 'disabled';
938      de('ec_in_up_code_list_id').disabled        = 'disabled';
939      de('ec_sel_user_new').disabled              = 'disabled';
940      de('ec_submit_gen_user_id').disabled        = 'disabled';
941      de('ec_in_up_usr_txt_id').disabled          = 'disabled';
942      de('ec_in_up_psd_txt_id').disabled          = 'disabled';
943      de('ec_confirm_psd_txt_id').disabled        = 'disabled';
944      de('ec_in_up_newgroup_id').disabled         = 'disabled';
945      de('ec_in_up_grp_txt_id').disabled          = 'disabled';
946      de('ec_sel_user_old').disabled              = 'disabled';
947      de('ec_in_up_usr_list_id').disabled         = 'disabled';
948      de('ec_in_up_forced_id').disabled           = 'disabled';
949      ec_selected_old_code = ec_duplic_codes[ec_default_entry];
950      ec_selected_code     = ec_selected_old_code;
951      ec_flag2 = true;
952      ec_mark_code('ec_sel_code_old');
953      ec_flag2 = false;
954    }
955    ec_default_action                             = 'create_ask';
956  }
957  else { // Entry modification
958    de('ec_sel_user_none').checked                = 'checked';
959    de('ec_in_up_forced_id').checked              = '';
960    de('ec_act1_id').value                        = 'modify_entry_submit';
961    if (
962      ec_default_action == 'modify_entry_ask' ||
963      ec_default_action == 'modify_entry_submit'
964    ) {                                             // Modify entry
965      ec_help_banner_no                           = 1;
966      de('ec_in_up_entry_list_id').disabled       = '';
967      de('ec_sel_user_none').checked              = '';
968      de('ec_in_up_usr_list_id').selectedIndex    = '-1';
969      de('ec_sel_user_none').disabled             = '';
970      de('ec_sel_user_new').disabled              = '';
971      de('ec_sel_user_old').disabled              = '';
972      de('ec_submit_gen_user_id').disabled        = '';
973      de('ec_in_up_usr_txt_id').disabled          = '';
974      de('ec_in_up_psd_txt_id').disabled          = '';
975      de('ec_confirm_psd_txt_id').disabled        = '';
976      de('ec_in_up_newgroup_id').disabled         = '';
977      de('ec_in_up_grp_txt_id').disabled          = '';
978      de('ec_in_up_usr_list_id').disabled         = '';
979      de('ec_in_up_forced_id').disabled           = '';
980      de('ec_input_action_cat').disabled          = '';
981      de('ec_in_up_cats_id').disabled             = '';
982      de('ec_input_action_img').disabled          = '';
983      de('ec_in_up_imgs_id').disabled             = '';
984      de('ec_input_action_home').disabled         = '';
985      ec_mark_entry(ec_default_entry);
986      ec_default_entry                            = '-1';
987    }
988    else {                                          // Outdate entry
989      ec_help_banner_no                           = 2;
990      ec_selected_user                            = 'ec_sel_user_none';
991      de('ec_in_up_entry_list_id').disabled       = 'disabled';
992      de('ec_sel_user_none').disabled             = 'disabled';
993      de('ec_sel_user_new').disabled              = 'disabled';
994      de('ec_sel_user_old').disabled              = 'disabled';
995      de('ec_submit_gen_user_id').disabled        = 'disabled';
996      de('ec_in_up_usr_txt_id').disabled          = 'disabled';
997      de('ec_in_up_psd_txt_id').disabled          = 'disabled';
998      de('ec_confirm_psd_txt_id').disabled        = 'disabled';
999      de('ec_in_up_newgroup_id').disabled         = 'disabled';
1000      de('ec_in_up_grp_txt_id').disabled          = 'disabled';
1001      de('ec_in_up_usr_list_id').disabled         = 'disabled';
1002      de('ec_in_up_forced_id').disabled           = 'disabled';
1003      de('ec_input_action_cat').disabled          = 'disabled';
1004      de('ec_in_up_cats_id').disabled             = 'disabled';
1005      de('ec_input_action_img').disabled          = 'disabled';
1006      de('ec_in_up_imgs_id').disabled             = 'disabled';
1007      de('ec_input_action_home').disabled         = 'disabled';
1008      de('ec_in_up_usr_list_id').selectedIndex    = '-1';
1009      de('ec_in_up_entry_list_id').value          = ec_default_entry;
1010      de('ec_act2_id').value                      = ec_default_entry;
1011    }
1012    ec_default_action                             = 'modify_entry_ask';
1013  }
1014  ec_mark_help('');
1015  jQuery(document).ready(function(){
1016    jQuery('#ec_tmp_img').attr(
1017      'src', jQuery('img.ui-datepicker-trigger:first').attr('src')
1018    );
1019    ec_check_validity_on();
1020    jQuery('#reduced_first_fieldset_legend_id').click(function(){
1021      ec_toggle_fieldset(
1022        '#reduced_first_fieldset_id', '#maximized_first_fieldset_id'
1023      );
1024    });
1025    jQuery('#reduced_second_fieldset_legend_id').click(function(){
1026      ec_toggle_fieldset(
1027        '#reduced_second_fieldset_id', '#maximized_second_fieldset_id'
1028      );
1029    });
1030    jQuery('#maximized_first_fieldset_legend_id').click(function(){
1031      ec_toggle_fieldset(
1032        '#reduced_first_fieldset_id', '#maximized_first_fieldset_id'
1033      );
1034    });
1035    jQuery('#maximized_second_fieldset_legend_id').click(function(){
1036      ec_toggle_fieldset(
1037        '#reduced_second_fieldset_id', '#maximized_second_fieldset_id'
1038      );
1039    });
1040    jQuery('.ui-datepicker').click(function(){
1041      ec_validity_check_min();
1042    });
1043    jQuery('.ec_datepicker').change(function(){
1044      ec_validity_check_min();
1045    });
1046    jQuery('#ec_validity_sel_day').css(
1047      'backgroundColor', jQuery('#content').css('backgroundColor')
1048    );
1049    jQuery('#ec_validity_sel_day').css(
1050      'color', jQuery('#content').css('color')
1051    );
1052    jQuery('.ec_valid_ctl').attr('disabled', 'disabled');
1053    jQuery('#ec_valid_date_on_id').change(function(){
1054      ec_validity_on = jQuery(this).attr('checked');
1055      ec_check_validity_on();
1056    });
1057    jQuery('.reduced_fieldsets').css({
1058      'padding-left'   : jQuery('fieldset').css('padding-left'),
1059      'padding-right'  : jQuery('fieldset').css('padding-right'),
1060      'margin-left'    : jQuery('fieldset').css('margin-left'),
1061      'margin-right'   : jQuery('fieldset').css('margin-right'),
1062      'margin-top'     : jQuery('fieldset').css('margin-top'),
1063      'margin-bottom'  : jQuery('fieldset').css('margin-bottom'),
1064    });
1065    jQuery('.plus_bullets').css(
1066      'padding-left', jQuery('legend').css('padding-left')
1067    );
1068    jQuery('.reduced_fieldsets_legend').css({
1069      'padding-left'   : jQuery('fieldset').css('border-left-width'),
1070      'padding-top'    : jQuery('fieldset').css('border-top-width'),
1071      'letter-spacing' : jQuery('legend').css('letter-spacing'),
1072    });
1073  });
1074  return false;
1075}
Note: See TracBrowser for help on using the repository browser.