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

Last change on this file since 7879 was 7879, checked in by LucMorizur, 14 years ago

Validity date

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