var previous_time = 0; var swap_duration = 0.5; var disappear_duration = 500 / 1000; var appear_duration = 800 / 1000; var tparent_action = new Array(); function verif_last_opened (num_radio_group) { last_id_option_checked = tparent_action[num_radio_group]['last_id_option_checked']; previous_option_opened = tparent_action[num_radio_group]['previous_option_opened']; if (last_id_option_checked != previous_option_opened) { swap_option(num_radio_group, last_id_option_checked); } else { //alert(last_id_option_checked + ' != ' + previous_option_opened) } } function display_childs (id) { Effect.BlindDown('child_' + id, {duration: appear_duration/*swap_duration*/}); Effect.Appear('child_' + id, {duration: appear_duration/*swap_duration*/}); } function swap_option (num_radio_group, id) { actual_date = new Date(); actual_time = actual_date.getTime() ; previous_time = tparent_action[num_radio_group]['previous_time']; time_elapsed = (actual_time - previous_time) / 1000; if (time_elapsed > (disappear_duration + appear_duration)) {//swap_duration * 2) { previous_option_opened = tparent_action[num_radio_group]['previous_option_opened']; if (previous_option_opened) { if ($('child_' + previous_option_opened)) { Effect.BlindUp('child_' + previous_option_opened, {duration: disappear_duration}); setTimeout("$('child_" + previous_option_opened + "').innerHTML = ''", disappear_duration * 1000); wait = disappear_duration * 1000; } else { wait = 1; } } else { wait = 1; } if (id && $('child_' + id)) { setTimeout('display_childs(' + id + ')', wait); } setTimeout('verif_last_opened(' + num_radio_group + ')', (disappear_duration + appear_duration) * 1000); tparent_action[num_radio_group]['previous_option_opened'] = id; tparent_action[num_radio_group]['previous_time'] = actual_time; } else { //setTimeout('swap_option(' + id + '); ', (disappear_duration + appear_duration - time_elapsed) * 1000 + 100); } } function load_form_part (url, destination, on_complete) { //$(destination).innerHTML = 'Chargement...'; new Ajax.Updater (destination, url, {method:'get', evalScripts : true, onCreate:function () { //alert('url created : ' + "\n" + url) }, onFailled:function () { alert('url failled : ' + "\n" + url) }, onComplete:function (transport) { if (on_complete) { eval(on_complete); } } }); } function set_allready_opened (num_radio_group, id_option) { tparent_action[num_radio_group] = new Array(); tparent_action[num_radio_group]['previous_option_opened'] = id_option; tparent_action[num_radio_group]['last_id_option_checked'] = id_option; tparent_action[num_radio_group]['previous_time'] = 0; //alert(num_radio_group + ' - ' + id_option) } function load_child (num_radio_group, id_option, tid_child) { if (undefined == tparent_action[num_radio_group]) { tparent_action[num_radio_group] = new Array(); tparent_action[num_radio_group]['previous_option_opened'] = false; tparent_action[num_radio_group]['last_id_option_checked'] = false; tparent_action[num_radio_group]['previous_time'] = 0; } //alert('tparent_action[' + num_radio_group + '][\'last_id_option_checked\']=' + tparent_action[num_radio_group]['last_id_option_checked'] + ' = ' + id_option); previous_option_opened = tparent_action[num_radio_group]['previous_option_opened']; if (previous_option_opened != id_option) { //alert(num_radio_group + ' - ' + previous_option_opened + ' !- ' + id_option) //alert(num_radio_group + '\n' + tparent_action[num_radio_group]['previous_time']) load_form_part('/produit/a_option.html?id_parent=' + id_option, 'child_' + id_option, 'swap_option(' + num_radio_group + ', ' + id_option +');'); //swap_option(id_option); tparent_action[num_radio_group]['last_id_option_checked'] = id_option; } else { /*actual_date = new Date(); actual_time = actual_date.getTime() ; previous_time = tparent_action[num_radio_group]['previous_time']; time_elapsed = (actual_time - previous_time) / 1000; time_left = disappear_duration + appear_duration - time_elapsed; setTimeout('verif_last_opened(' + num_radio_group + ')', time_left * 1000);*/ } } function change_product_image (uri_image) { //alert("$('photo0').src = " + '"' +uri_image + '"') //photo_show(uri_image); if (uri_image != $('photo0').src) { $('photo0').src= uri_image ; } } var toption_price = new Array(); var toption_name = new Array(); var nbr_option = 0; var amount_0 = 0; function get_num_option (v, t) { var key = 0; while (t[key]) { if (v == t[key]) { //alert(v + ' == ' + t[key] + ' = > ' + key); return key; } else { //alert(v + ' != ' + t[key]); } key++; } return false; } function update_price (option, amount, price_rule) { if (! $('prix_nombre')) { return false; } current_price = $('prix_nombre').innerHTML; if (0 == price_rule) { amount_0 = amount; } else if (1 == Math.abs(price_rule)) { amount = price_rule * amount; num_option = get_num_option(option, toption_name); if (false === num_option) { //alert('! in_array(' + option + ', ' + toption_name + ')') nbr_option++; num_option = nbr_option - 1; toption_name[num_option] = option; //alert('option '+ option + ' is new : ' + num_option); } else { //alert('option '+ option + ' exists : ' + num_option); } //alert('insert price ' + num_option + ' : ' + amount) toption_price[num_option] = amount; //alert(toption_price[option]) //alert(toption_price) } final_price = amount_0; if (toption_price.length > 0) { //alert('toption_price size : ' + toption_price.length + '\nvalues : ' + toption_price) for (key = 0 ; key <= (nbr_option - 1) ; key++) { price = toption_price[key]; //alert(price) final_price += price; } } final_price = final_price.toString() if (-1 != final_price.lastIndexOf('.')) { final_price = final_price.replace('.', ','); if (final_price.lastIndexOf(',') != (final_price.length - 1) && final_price.lastIndexOf(',') != (final_price.length - 3)) { final_price += '0'; } } $('prix_nombre').innerHTML = final_price; if (current_price != final_price) { Effect.Pulsate($('prix_nombre'), { pulses: 2, duration: 0.3 }); } } function ie_textarea_convert (temp_textarea_value) { if (navigator.appName == 'Microsoft Internet Explorer') { var reg = new RegExp("(^|\r\n)(\r\n|$)", "g"); while (temp_textarea_value.match(reg)) {//alert('MATCH : (^|\\r\\n)(\\r\\n|$)') temp_textarea_value = temp_textarea_value.replace(reg, "$1 $2"); } } return temp_textarea_value; } function check_textarea (p, max_nbr_char, max_nbr_char_per_line, max_nbr_line) { temp_textarea_value = p.value; var textarea_cut_alert = false; if (0 != max_nbr_char) { temp_textarea_value_2 = ie_textarea_convert(temp_textarea_value); if (navigator.appName == 'Microsoft Internet Explorer') { var reg = new RegExp("\r\n", "g"); var tline = temp_textarea_value_2.split(reg); limit = max_nbr_char + tline.length - 1; } else { limit = max_nbr_char; } if (temp_textarea_value.length > limit) { var reg = new RegExp("\r\n$", "g");//alert(null != temp_textarea_value.match(reg)); temp_textarea_value = temp_textarea_value.replace(reg, ''); final_length = limit; p.value = temp_textarea_value.substr(0, limit); alert('Vous avez dépassé le nombre maximum de caractères (' + max_nbr_char + ')');// + '\nlimit=' + limit + '\ntemp_textarea.length='+temp_textarea_value.length + '\ntemp_textareasubstr(0, ' + limit + ').length='+temp_textarea_value.substr(0, limit).length + '\np.value.length='+p.value.length + '\np.value="'+p.value+'"'); textarea_cut_alert = true; } } if (max_nbr_char_per_line && max_nbr_line) { temp_textarea_value = ie_textarea_convert(temp_textarea_value); var reg = new RegExp("\r?\n", "g"); var tline = temp_textarea_value.split(reg); var textarea_value = ''; var textarea_line_cut = false; var textarea_line_deleted = false; var textarea_line_cut_alert = false; for (var i = 0 ; i <= (tline.length - 1) ; i++) { if (i <= (max_nbr_line - 1)) { line_value = tline[i].substr(0, max_nbr_char_per_line); if (' ' != line_value) { if (tline[i].length > max_nbr_char_per_line && i == (tline.length - 1) && i != (max_nbr_line - 1)) { if (' ' == tline[i].substr(max_nbr_char_per_line, 1)) { textarea_value += line_value; textarea_value += "\n" + tline[i].substr((max_nbr_char_per_line + 1), max_nbr_char_per_line); } else if (-1 != line_value.lastIndexOf(' ')) { textarea_value += tline[i].substr(0, line_value.lastIndexOf(' ')); textarea_value += "\n" + tline[i].substr((line_value.lastIndexOf(' ') + 1), max_nbr_char_per_line); } else { textarea_value += line_value; textarea_value += "\n" + tline[i].substr(max_nbr_char_per_line, max_nbr_char_per_line); } } else { textarea_value += line_value; } } if (i != (max_nbr_line - 1) && i != (tline.length - 1)) { textarea_value += "\n"; } if (tline[i].length > max_nbr_char_per_line) { textarea_line_cut = true; if (i != (tline.length - 1) || i == (max_nbr_line - 1)) { textarea_line_cut_alert = true; } } } else { textarea_line_deleted = true; alert('Vous avez dépassé le nombre maximum de lignes autorisé (' + max_nbr_line + ')'); break; } } if (textarea_line_cut || textarea_line_deleted) {//alert('MODIFY'); p.value = textarea_value; if (false !== textarea_line_cut && textarea_line_cut_alert && false === textarea_cut_alert) { //alert('nbr_line : ' + tline.length) alert('Vous avez dépassé le nombre maximum de caractères par ligne autorisé (' + max_nbr_char_per_line + ')'); } } } }