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

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

Redesigning autolog_new.tpl page, slowly :-/ ...

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