var selects = new Array; var combinaisons = new Array; var quantities = new Array; var prices = new Array; var ecotaxes = new Array; var images = new Array; var attr_price = new Number(0); var product_price = new Number; var attr_ecotax = new Number(0); var img_prod_dir = new String; var id_product = new Number; var oosp = new Number; var last_qties = new Number; var total_qties = new Number; function addSelect(id_attribute_group, group_name) { selects[id_attribute_group] = group_name; } function writeQuantity() { if (typeof(nbpiece) != 'undefined' && (nbpiece > 0 || oosp == 1)) { getE('add_to_cart').style.display = 'block'; getE('last_qties').style.display = ((nbpiece < last_qties && (nbpiece > 0 && oosp != 1)) ? 'block' : 'none'); checkQty(); } else { getE('add_to_cart').style.display = 'none'; } } function writeAvailability() { if (getE('qtyav')) { getE('qtyav').innerHTML = (typeof(availabilityMessage) != 'undefined' ? availabilityMessage : ''); if (typeof(nbpiece) != 'undefined' && (nbpiece > 0 || oosp == 1)) { if (displayQties) getE('qtyav').innerHTML += (getE('qtyav').innerHTML != '' ? '
' : '') + nbpiece + ' ' + (nbpiece > 1 ? pieces : piece); } else if (typeof(nbpiece) != 'undefined' && (nbpiece == 0 && oosp == 0)) { getE('qtyav').innerHTML = (typeof(availabilityMessage) != 'undefined' ? availabilityMessage : outofstock); } else if (noAttribut == 0) { getE('qtyav').innerHTML = ' ' + doesntexist + (total_qties ? ' ' + doesntexist_but : ''); } toggle(getE('divqtyav'), (getE('qtyav').innerHTML != '')); } writeQuantity(); } function checkQty() { if (getE('qty').value != '' && getE('qty').value <= 0) getE('qty').value = 1; else if (getE('qty').value > nbpiece && oosp == 0) getE('qty').value = nbpiece; } function updatePrice() { var tax = (taxRate / 100) + 1; var attribut_price = attr_price; if (no_tax > 0) attribut_price /= tax; var priceProductWR = (attribut_price + product_price_without_reduct) * currency_rate; var priceReduct = priceProductWR / 100 * parseInt(reduction_percent) + reduction_price; var priceProduct = priceProductWR - priceReduct; var priceProductHT = (priceProductWR - priceReduct) / tax; getE('price').innerHTML = (typeof(priceText) != 'undefined' ? priceText + ' ' : '') + (currency_format == 1 ? currency_sign + ' ' : '') + (priceProduct).toFixed(priceDisplayPrecision) + (currency_format == 2 ? ' ' + currency_sign : ''); if (getE('pretax-price')) getE('pretax-price').innerHTML = (typeof(priceText) != 'undefined' ? priceText + ' ' : '') + (currency_format == 1 ? currency_sign + ' ' : '') + (priceProductHT).toFixed(priceDisplayPrecision) + (currency_format == 2 ? ' ' + currency_sign : ''); if (getE('price_without_reduct')) getE('price_without_reduct').innerHTML = (currency_format == 1 ? currency_sign + ' ' : '') + (priceProductWR).toFixed(priceDisplayPrecision) + (currency_format == 2 ? ' ' + currency_sign : ''); } function updateEcotax() { if (attr_ecotax != 0) getE('ecotax').innerHTML = 'éco-participation : ' + (attr_ecotax * currency_rate) + ' ' + currency_sign; else getE('ecotax').innerHTML = ''; } function addCombinaison(id_product_attribute, attributes, quantity, price, ecotax, id_image) { quantities[id_product_attribute] = quantity; total_qties += quantity; combinaisons[id_product_attribute] = attributes; prices[id_product_attribute] = price; ecotaxes[id_product_attribute] = ecotax; images[id_product_attribute] = id_image; } function in_array(val, arr) { for (var i in arr) if (arr[i] == val) return true; return false; } function findCombinaison() { var currentComb; var nbOk = new Number(0); var choices = new Array; var link = new String(); /* first is true when called for first time */ for (keyVar in selects) { current = selects[keyVar]; choices.push(eval(getE(current).value)); } for (keyComb in combinaisons) { for (id_attribute in combinaisons[keyComb]) { if (in_array(combinaisons[keyComb][id_attribute], choices)) nbOk++; } if (nbOk == combinaisons[keyComb].length) { getE('id_product_attribute').value = keyComb; nbpiece = quantities[keyComb]; writeAvailability(); attr_price = prices[keyComb]; updatePrice(); attr_ecotax = ecotaxes[keyComb]; updateEcotax(); if (images[keyComb] && images[keyComb] != -1) { link = img_prod_dir + id_product + '-' + images[keyComb] + '-large.jpg'; getE('bigpic').src = link; onClickImage(images[keyComb], '', link); } return; } nbOk = 0; } nbpiece = -1; writeAvailability(); return; } function getE(name) { if (document.getElementById) var elem = document.getElementById(name); else if (document.all) var elem = document.all[name]; else if (document.layers) var elem = document.layers[name]; return elem; }