*Benötigte Felder
'+'
'; } }.bind(this)); } }.bind(this)); imageBox. innerHTML = imageBox; imageBox.show(); } else if (imageMode==4) { // Hauptbild überlagern war mainImage = this.getMainImage(); if (mainImage) { if (! mainImage. src) { mainImage = mainImage. down ('img'); ist (!mainImage) Änderungen. } // prev overlay_image entfernen if (el.type=='radio') { var radios = el.up(2).getElementsByClassName('radio'); for (i=0; i < radios.length; i++) { if (!radios[i].checked) { var overlayImage = $('overlay_image_' + radios[i].value); if (overlayImage) overlayImage.remove(); } } } else if (el.type=='checkbox') { if (!el.checked) { var overlayImage = $('overlay_image_' + el.value); if (overlayImage) overlayImage.remove(); } } else { // Standardwert, Wert value (i=0; i < el.options.length; i++) { if (!el.options[i].selected && el.options[i].value) {; var overlayImage = $('overlay_image_' + el.options[i].value); if (overlayImage) overlayImage.remove(); } } } if (((the.type=='checkbox' || the.type=='radio') && the.checked && !the.disabled) || ((the.type=='select-one' ; || el.type=='select-multiple') && el.value!='')) { // Optionbild überlagern elValueArr.each(function(optionValueId) { if (optionValueId!='' && opConfig.config [ optionId][optionValueId] && opConfig.config[optionId][optionValueId].images) { opConfig.config[optionId][optionValueId].images.each(function(image, index) { if (((excludeFirstImage==0 && = =0) || ευρετήριο > 0) && εικόνα[1]) { var overlayImageId = 'overlay_image_' + optionValueId; var overlayImage = $(overlayImageId); if (!overlayImage) { mainImage.up(1).style.position = 'relative'; var overlayImage = new Image(); overlayImage.width = mainImage.width; overlayImage.height = mainImage.height; overlayImage.style.display = 'κανένα'; style.top = 0; overlayImage.style.left = 0; overlayImage.style.zIndex = this.overlayZIndex;this.overlayZIndex++;overlayImage.id=overlayImageId; overlayImage.src = overlay[1]; Element.insert(mainImage, {'after':overlayImage}); overlayImage.show(); } } }.bind(this)); } }.bind(this)); } } } else { // Sperrwert zurückgeben var ul = $$(this.ulId.join(', ')).first(); var optionClass = 'option-image-'+optionId; if (el. type == 'checkbox') optionClass += '-' + el. value; //var productImageLis = $$(this.ulId.join(' li.li-product-image, ') + 'li.li-product-image'); var productImageList = $$(this.ulId.join('div.item,') + 'div.item'); // Rückgabetaste if (imageMode==2 && productImageLis) { productImageLis.each(function(li) { li.hide(); }); } // die Tastatur zurückgeben //$$('li.' + optionClass).each(function(li) { $$('div.' + optionClass).each(function(li) { li.remove(); }); if (typeof(ProductMediaManager)=='undefiniert') { $$('img.' + optionClass).each(function(img) {img.remove(); }); } if($j(' ; if (((the.type=='checkbox' || the.type=='radio') && the.checked && !the.disabled) || ( ( el.type=='select-one' || el.type=='select-multiple') && el.value!='')) { var liHtml = ''; /*if (ul) { // var li = ul.down('li'); var li = productImageLis.last(); ' li').length; if (li) { liHtml = ul.down('li').innerHTML; liHtml = liHtml.replace(/(data\-image\-index\= [\'\"])[ 0 -9]+?([\'\"])/"$1{{data_image_index}}$2"); if (typeof(ProductMediaManager)=='undefiniert') liHtml = liHtml. replace(/https?\:\ /\/.+?([\'\"])/,"{{big_image_url}}$1"); liHtml = liHtml.replace(/https?\:\/\/. +?([\'\" ])/g,"{{small_image_url}}$1"); liHtml = liHtml.replace(/(\s(?:title|all)\=[\'\"]).*?([\'\"]/g,"$1{{title}}$2" ; liHtml = '
'; } }*/ if (ul) { // var li = ul.down('li'); var li = productImageLis.last(); if (this.dataImageIndex===false) this.dataImageIndex = $$(this.ulId.join(' div, ') + ' div').length; if (li) { liHtml = ul.down('div').innerHTML; liHtml = liHtml.replace(/(data\-image\-index\=[\'\"])[0-9]+?([\'\"])/,"$1{{data_image_index}}$2" ) if (typeof(ProductMediaManager)=='undefined') liHtml = liHtml.replace(/https?\:\/\/.+?([\'\"])/,"{{big_image_url}}$1") ; liHtml = liHtml.replace(/https?\:\/\/.+?([\'\"])/g,"{{small_image_url}}$1"); liHtml = liHtml.replace(/(\s(?:title|alt)\=[\'\"]).*?([\'\"]/g,"$1{{title}}$2" ; liHtml = '
' + liHtml + '
'; } else { var magicId = $j('.MagicToolboxContainer > a').attr('id'); liHtml = "
" } } var imageBox = $('customoptions_images_' + optionId); if (imageBox) imageBox.hide(); // Zurück zum Anfang elValueArr.each(function(optionValueId) {if (optionValueId!='' && opConfig.config [optionId][optionValueId] && opConfig.config[optionId][optionValueId].images) { opConfig.config[optionId][optionValueId].images.each(function(image, index) { if ((excludeFirstImage index==0 && ==0) || ευρετήριο > 0) { if (liHtml) {if (εικόνα[1]) { imageHTML += liHtml.replace(new RegExp("{{data_image_index}}",'g'), this.dataImageIndex ).replace(new RegExp("{{big_image_url}}",'g'), image[1]).replace(new RegExp("{{small_image_url}}",'g'), image[1]). replace(new RegExp("{{title}}",'g'), opConfig.config[optionId][optionValueId].title); if (typeof(ProductMediaManager)!='undefined') mainImageHTML += ''; this.dataImageIndex++; } } else { if (index==0 ||(excludeFirstImage==1 && index==1)) { this.newMainImageUrl = εικόνα[1]; this.newMainImageThumbnail = ικόνα[1]; this.newMainImageTitle = opConfig.config[optionId][optionValueId].title; } } } else if (el.type=='select-one' || el.type=='select-multiple') { if (imageBox) { imageBox.hide(); imageBox.innerHTML = ''+ ''+'';; imageBox.show(); } } }.bind(this)); } }.bind(this)); if (imageHTML) ul.innerHTML += imageHTML; // for ProductMediaManager if (mainImageHTML) { var mainImageDiv = this.getMainImage().up('div'); //if (mainImageDiv) mainImageDiv.innerHTML += mainImageHTML; // Custom delete } } // show product gallery if (!this.hasOptionImages() && productImageLis) { productImageLis.each(function(li) { li.show(); }); } $$('.cloud-zoom-gallery').each(function(a) { //if (a.up('li').style.display=='') a.up('li').style.display = 'list-item'; a.addClassName('cboxElement'); jQuery(a).CloudZoom(); }); if (typeof(ProductMediaManager)!='undefined') ProductMediaManager.init(); // change main image if (imageMode==2) { if (typeof(ProductMediaManager)=='undefined') this.changeMainImage(); else setTimeout('optionImages.changeMainImage()', 100); } // MageWorx: custom fix for cloudZoom zoom-btn var zoomBtn = $('zoom-btn'); $$('div.more-images div.thmb-item a').each(function(img){ img.observe('click', function(event) { zoomBtn.href = img.href; }); }); $j('.MagicToolboxSelectorsContainer a').click(function(e) { e.preventDefault(); MagicZoom.update($j(this).data('zoom-id'), $j(this).data('image'), $j(this).data('image'), 'show-title: false; drag-mode: false'); }); } }, markProduct: function() { $$(this.ulId.join(' li, ') + ' li').each(function(li) { li.addClassName('li-product-image'); }); if (this.mainImageUrl=='') { var mainImage = this.getMainImage(); if (mainImage) { if (mainImage.hasClassName('MagicToolboxContainer')) { var elA = mainImage.down('a'); if (elA) { this.mainImageUrl = elA.href; var elImg = elA.down('img'); if (elImg.width) this.mainImageWidth = elImg.width; this.mainImageThumbnail = elImg.src; this.mainImageTitle = elImg.alt; } } else if (mainImage.hasClassName('zoom-image') || (mainImage.up('a') && mainImage.up('a').hasClassName('cloud-zoom'))) { // Easy Zoom 1.0 - jQuery plugin // Cloud Zoom V1.0.2 var elA = mainImage.up('a'); if (elA) { this.mainImageUrl = elA.href; } else { this.mainImageUrl = mainImage.src; } this.mainImageTitle = mainImage.alt; this.mainImageThumbnail = mainImage.src } else { this.mainImageUrl = mainImage.src; this.mainImageTitle = mainImage.alt; } } } this.prevMainImageUrl = this.mainImageUrl; }, getMainImage: function() { return $$('div.MagicToolboxContainer a figure > img', 'div.product-img-box div.MagicToolboxContainer', 'div.media-container div.MagicToolboxContainer', 'div.product-img-box div.main-image img', 'div.product-img-box .product-image img', '#image', '#image-main', 'div.img-box .product-image img').first(); }, changeMainImage: function() { if (!this.newMainImageUrl || this.newMainImageUrl==this.prevMainImageUrl) return; var mainImage = this.getMainImage(); if (!mainImage) return; if (!this.pageLoaded) { mainImage.hide(); setTimeout('optionImages.changeMainImage()', 100); return; } if (mainImage.hasClassName('MagicToolboxContainer')) { var elA = mainImage.down('a'); if (elA) { elA.down('img').width = this.mainImageWidth;// MagicZoomPlus.update(elA.id, this.newMainImageUrl, this.newMainImageThumbnail, 'show-title: false; drag-mode: false'); MagicZoom.update(elA.id, this.newMainImageUrl, this.newMainImageThumbnail, 'show-title: false; drag-mode: false'); } } else if (mainImage.hasClassName('zoom-image')) { // Easy Zoom 1.0 - jQuery plugin var elA = mainImage.up('a'); if (elA) elA.href = this.newMainImageUrl; mainImage.src = this.newMainImageUrl; mainImage.alt = this.newMainImageTitle; mainImage.title = this.newMainImageTitle; jQuery('#zoom').easyZoom({parent: 'div.zoom-container',preload: '', lightboxBtn: '.lightbox-btn .lightbox'}).data('easyZoom').gallery('a.zoom-thumbnail'); } else if (mainImage.up('a') && mainImage.up('a').hasClassName('cloud-zoom')) { // ultimo + Cloud Zoom V1.0.2 var elA = mainImage.up('a'); if (elA) elA.href = this.newMainImageUrl; mainImage.src = this.newMainImageUrl; mainImage.alt = this.newMainImageTitle; mainImage.title = this.newMainImageTitle; if ($("zoom-btn")) { $("zoom-btn").href = this.newMainImageUrl; $("zoom-btn").title = this.newMainImageTitle; } jQuery("#"+elA.id).CloudZoom(); } else { mainImage.src = this.newMainImageUrl; mainImage.alt = this.newMainImageTitle; mainImage.title = this.newMainImageTitle; } this.prevMainImageUrl = this.newMainImageUrl; mainImage.show(); }, hasOptionImages: function() { var result = false; var firstImageUrl = ''; $$(this.ulId.join(' div, ') + ' div').each(function(li) { //if (li.hasClassName('li-product-image')==false) { if (li.hasClassName('thumb-img-container')==true) { // change main image if (!firstImageUrl) { var firstImageMatch = li.innerHTML.match(/(https?\:\/\/.+?)[\'\"]/); if (firstImageMatch) firstImageUrl = firstImageMatch[1]; this.newMainImageUrl = firstImageUrl; this.newMainImageThumbnail = firstImageUrl; this.newMainImageTitle = li.down('img').alt; if (typeof(ProductMediaManager)!='undefined') this.newMainImageIndex = li.down('a').readAttribute('data-image-index'); } result = true; } }.bind(this)); return result; } }; Event.observe(window, 'load', function() { opConfig.reloadPrice(); }); var dependentOptions = { dependentData: {"1565005":[8,9,10],"1565006":[16,17,18],"1565007":[24,25,26],"1565008":[12,13,14],"1565009":[20,21,22],"1565010":[28,29,30],"1565013":[32,33,34,57,58,59,60],"1565014":[36,37,38,39,42,57,58,59,60],"1565015":[55,56,57,58,59,60],"1565021":[32,33,34,57,58,59,60],"1565022":[36,37,38,39,44,57,58,59,60],"1565023":[55,56,57,58,59,60],"1565029":[32,33,34,57,58,59,60],"1565030":[36,37,38,39,46,57,58,59,60],"1565031":[55,56,57,58,59,60],"1565017":[32,33,34,57,58,59,60],"1565018":[36,37,38,39,48,57,58,59,60],"1565019":[55,56,57,58,59,60],"1565025":[32,33,34,57,58,59,60],"1565026":[36,37,38,39,50,57,58,59,60],"1565027":[55,56,57,58,59,60],"1565033":[32,33,34,57,58,59,60],"1565034":[36,37,38,39,52,57,58,59,60],"1565035":[55,56,57,58,59,60],"1565061":[61],"1565062":[61],"1565063":[61],"1565064":[61]}, inGroupIdData: {"8":{"dependency":1,"select_173364":"1565013"},"9":{"dependency":1,"select_173364":"1565014"},"10":{"dependency":1,"select_173364":"1565015"},"16":{"dependency":1,"select_173364":"1565021"},"17":{"dependency":1,"select_173364":"1565022"},"18":{"dependency":1,"select_173364":"1565023"},"24":{"dependency":1,"select_173364":"1565029"},"25":{"dependency":1,"select_173364":"1565030"},"26":{"dependency":1,"select_173364":"1565031"},"12":{"dependency":1,"select_173364":"1565017"},"13":{"dependency":1,"select_173364":"1565018"},"14":{"dependency":1,"select_173364":"1565019"},"20":{"dependency":1,"select_173364":"1565025"},"21":{"dependency":1,"select_173364":"1565026"},"22":{"dependency":1,"select_173364":"1565027"},"28":{"dependency":1,"select_173364":"1565033"},"29":{"dependency":1,"select_173364":"1565034"},"30":{"dependency":1,"select_173364":"1565035"},"32":{"dependency":1,"select_173367":"1565066"},"33":{"dependency":1,"select_173367":"1565067"},"34":{"dependency":1,"select_173367":"1565068"},"36":{"dependency":1,"select_173367":"1565070"},"37":{"dependency":1,"select_173367":"1565071"},"38":{"dependency":1,"select_173367":"1565072"},"39":{"dependency":1,"select_173367":"1565073"},"42":{"dependency":1,"select_173367":"1565076"},"44":{"dependency":1,"select_173367":"1565078"},"46":{"dependency":1,"select_173367":"1565080"},"48":{"dependency":1,"select_173367":"1565082"},"50":{"dependency":1,"select_173367":"1565084"},"52":{"dependency":1,"select_173367":"1565086"},"55":{"dependency":1,"select_173367":"1565088"},"56":{"dependency":1,"select_173367":"1565089"},"57":{"dependency":1,"select_173366":"1565061"},"58":{"dependency":1,"select_173366":"1565062"},"59":{"dependency":1,"select_173366":"1565063"},"60":{"dependency":1,"select_173366":"1565064"},"61":{"dependency":1,"out_of_stock":false,"view_mode":"1","options_173586_1":1}}, defaultData: {"options_173586_1":1}, dependentChanges: {"m":[], "d":[]}, dependentHide: true, select: function(el) { var i, ii = 0; if (el.type=='radio') { var radios = this.upDiv(el).getElementsByClassName('radio'); for (i=0; i < radios.length; i++) { this.returnSelect(radios[i]); } } else { this.returnSelect(el); } if (el.type && el.type=='checkbox' && !el.checked) { this.decorateIsLast(); return false; } if (el.disabled) return false; if (el.value>0) { // prepare value var elValueArr = []; if (el.multiple) { for (i=0; i < el.options.length; i++) { if (el.options[i].selected) elValueArr.push(el.options[i].value); } } else { elValueArr.push(el.value); } var mElementId = el.id; var dSelects = []; var isRequire = false; for (i=0; i < elValueArr.length; i++) { if (!this.dependentData[elValueArr[i]]) continue; this.dependentData[elValueArr[i]].each(function(IGI){ if (this.inGroupIdData[IGI]) { for(var dElementId in this.inGroupIdData[IGI]) { if (dElementId!='dependency' && dElementId!='out_of_stock' && dElementId!='view_mode' && $(dElementId)) { if (this.inGroupIdData[IGI][dElementId]) { var dElement = $(dElementId); if (!this.dependentChanges['m'][mElementId]) this.dependentChanges['m'][mElementId] = []; if (!this.dependentChanges['m'][mElementId][dElementId]) this.dependentChanges['m'][mElementId][dElementId] = []; this.dependentChanges['m'][mElementId][dElementId]['disabled'] = true; if (this.dependentChanges['m'][mElementId][dElementId]['is_require']) { isRequire = true; } else { isRequire = $(dElement).hasClassName('required-dependent'); } this.dependentChanges['m'][mElementId][dElementId]['is_require'] = isRequire; if (!this.dependentChanges['d'][dElementId]) this.dependentChanges['d'][dElementId] = []; if ((dElement.type=='select-one' || dElement.type=='select-multiple') && !$(dElement).hasClassName('datetime-picker')) { // if [multi]select var selectValue = 's'+this.inGroupIdData[IGI][dElementId]; // if el not modified -> backup default options and clear if (!this.dependentChanges['d'][dElementId]['options']) { this.dependentChanges['d'][dElementId]['options'] = []; var opSelected = false; for (ii=0; ii < dElement.options.length; ii++) { if (this.defaultData[dElementId] && (this.defaultData[dElementId]==dElement.options[ii].value || this.defaultData[dElementId][dElement.options[ii].value])) opSelected = true; else opSelected = false; if (dElement.options[ii].value) this.dependentChanges['d'][dElementId]['options']['s'+dElement.options[ii].value] = {'text':dElement.options[ii].text, 'selected':opSelected, 'sel-def':opSelected, 'disabled':dElement.options[ii].disabled}; } if (dElement.multiple) dElement.length = 0; else dElement.length = 1; // clear select } if (this.dependentChanges['d'][dElementId]['options'][selectValue]) { // set [multi]select flag use if (!this.dependentChanges['d'][dElementId]['options'][selectValue]['use']) this.dependentChanges['d'][dElementId]['options'][selectValue]['use'] = []; this.dependentChanges['d'][dElementId]['options'][selectValue]['use'].push(mElementId); this.dependentChanges['d'][dElementId]['options'][selectValue]['dependency'] = this.inGroupIdData[IGI].dependency; // commit changes if (!this.dependentChanges['m'][mElementId][dElementId]['options']) this.dependentChanges['m'][mElementId][dElementId]['options'] = []; this.dependentChanges['m'][mElementId][dElementId]['options'].push(selectValue); } } else { // if radio, checkbox, text, etc. if (!this.dependentChanges['d'][dElementId]['use']) this.dependentChanges['d'][dElementId]['use'] = []; this.dependentChanges['d'][dElementId]['use'].push(mElementId); this.dependentChanges['d'][dElementId]['dependency'] = this.inGroupIdData[IGI].dependency; } if ((this.dependentChanges['d'][dElementId]['use'] && this.dependentChanges['d'][dElementId]['use'].length >= this.inGroupIdData[IGI].dependency) || ((dElement.type=='select-one' || dElement.type=='select-multiple') && this.dependentChanges['d'][dElementId]['options'][selectValue] && this.dependentChanges['d'][dElementId]['options'][selectValue]['use'].length >= this.inGroupIdData[IGI].dependency)) { // set visibility if (!this.inGroupIdData[IGI].out_of_stock) dElement.disabled = false; if (this.dependentHide && this.inGroupIdData[IGI].view_mode!=2) { if (dElement.type=='checkbox' || dElement.type=='radio') { $(dElement).up('li').style.display = 'block'; } dependentOptions.upDiv(dElement).style.display = 'block'; } // set class required-entry if (isRequire) { $(dElement).removeClassName('required-dependent'); if (dElement.type=='checkbox' || dElement.type=='radio') { $(dElement).addClassName('validate-one-required-by-name'); } else { $(dElement).addClassName('required-entry'); } } // add or init dependent element if ((dElement.type=='select-one' || dElement.type=='select-multiple') && !$(dElement).hasClassName('datetime-picker')) { // if [multi]select var selectValue = 's'+this.inGroupIdData[IGI][dElementId]; if (this.dependentChanges['d'][dElementId]['options'][selectValue]) { dSelects.push(dElement); // after add data to this [multi]select } } else { // if radio, checkbox, text, etc. if (this.defaultData[dElementId] && ($(dElementId).type=='checkbox' || $(dElementId).type=='radio') && this.inGroupIdData[IGI].dependency==this.dependentChanges['d'][dElementId]['use'].length) $(dElementId).click(); } } } } } } }.bind(this)); } if (dSelects.length>0) { for (i=0; i < dSelects.length; i++) { var dElement = dSelects[i]; var dElementId = dElement.id; // add data to [multi]select this.rememberNewSelected(dElement, dElementId); if (dElement.multiple) dElement.length = 0; else dElement.length = 1; // clear select for(var opValue in this.dependentChanges['d'][dElementId]['options']) { if (!this.dependentChanges['d'][dElementId]['options'].hasOwnProperty(opValue) || !this.dependentChanges['d'][dElementId]['options'][opValue] || !this.dependentChanges['d'][dElementId]['options'][opValue]['use'] || this.dependentChanges['d'][dElementId]['options'][opValue]['use'].length < this.dependentChanges['d'][dElementId]['options'][opValue]['dependency']) continue; var newOpt = new Option(this.dependentChanges['d'][dElementId]['options'][opValue]['text'], opValue.substr(1)); newOpt.disabled = this.dependentChanges['d'][dElementId]['options'][opValue]['disabled']; if (this.dependentChanges['d'][dElementId]['options'][opValue]['selected']) { newOpt.selected = true; //if (!newOpt.disabled) setTimeout('dependentOptions.select($("'+dElementId+'"));', '100'); } dElement.options.add(newOpt); } dElement.onchange(); // MSP if (dependentOptions.upDiv(dElement).style.display == 'block' && $(dElement).hasClassName('paddable')) { if (jQuery("#"+dElement.id).val()) jQuery("#"+dElement.id).trigger('change'); } } } this.decorateIsLast(); } }, // cancel changes and return default options params returnSelect: function(el) { var mElementId = el.id; var i = 0; // reset main image to parent image option if dependent option has no image if (this.dependentChanges['d'][mElementId] && this.dependentChanges['d'][mElementId]['use']) { var dmElement = $(mElementId); if (dmElement.checked) { optionImages.showImage(dmElement); this.dependentChanges['d'][mElementId]['use'].each(function(el){ optionImages.showImage($(el)); }); } } if (this.dependentChanges['m'][mElementId] && !this.dependentChanges['m'][mElementId]['is_used']) { this.dependentChanges['m'][mElementId]['is_used'] = true; for(var dElementId in this.dependentChanges['m'][mElementId]) { if (!this.dependentChanges['m'][mElementId].hasOwnProperty(dElementId) || dElementId=='is_used' || !$(dElementId)) continue; var dElement = $(dElementId); var disableElFlag = true; // disable dependent el if (this.dependentChanges['m'][mElementId][dElementId]['disabled']) { if (this.dependentChanges['m'][mElementId][dElementId]['options'] && this.dependentChanges['d'][dElementId]['options']) { // to [multi]select this.rememberNewSelected(dElement, dElementId); // remove options if not use main el for (i=0; i < this.dependentChanges['m'][mElementId][dElementId]['options'].length; i++) { opValue = this.dependentChanges['m'][mElementId][dElementId]['options'][i]; if (this.dependentChanges['d'][dElementId]['options'][opValue] && this.dependentChanges['d'][dElementId]['options'][opValue]['use'] && this.dependentChanges['d'][dElementId]['options'][opValue]['use'].length>0) { this.dependentChanges['d'][dElementId]['options'][opValue]['use'] = this.dependentChanges['d'][dElementId]['options'][opValue]['use'].without(mElementId); if (this.dependentChanges['d'][dElementId]['options'][opValue]['use'].length < this.dependentChanges['d'][dElementId]['options'][opValue]['dependency']) { $$("#"+dElementId+" option[value='"+opValue.substr(1)+"']").each(function(elOp){ elOp.remove(); }); } else { disableElFlag = false; } } } if (disableElFlag && (dElement.length>1 || (dElement.multiple && dElement.length>0))) disableElFlag = false; dElement.onchange(); } else { // to radio, checkbox, text, etc. if (this.dependentChanges['d'][dElementId]['use'] && this.dependentChanges['d'][dElementId]['use'].length > 0) { this.dependentChanges['d'][dElementId]['use'] = this.dependentChanges['d'][dElementId]['use'].without(mElementId); if (this.dependentChanges['d'][dElementId]['use'].length >= this.dependentChanges['d'][dElementId]['dependency']) disableElFlag = false; } } if (disableElFlag) { dElement.disabled = true; // restore default if [multi]select if ((dElement.type=='select-one' || dElement.type=='select-multiple') && !$(dElement).hasClassName('datetime-picker')) { for(var opValue in this.dependentChanges['d'][dElementId]['options']) { if (!this.dependentChanges['d'][dElementId]['options'].hasOwnProperty(opValue) || !this.dependentChanges['d'][dElementId]['options'][opValue]) continue; var newOpt = new Option(this.dependentChanges['d'][dElementId]['options'][opValue]['text'], opValue.substr(1)); newOpt.disabled = this.dependentChanges['d'][dElementId]['options'][opValue]['disabled']; newOpt.selected = this.dependentChanges['d'][dElementId]['options'][opValue]['sel-def']; dElement.options.add(newOpt); } dElement.onchange(); } // hide if (this.dependentHide) { var hideDivFlag = true; if (dElement.type=='checkbox' || dElement.type=='radio') { $(dElement).up('li').style.display = 'none'; ulEl = $(dElement).up('li').up('ul'); if (ulEl) { lis = ulEl.getElementsByTagName('li'); for (i=0; i < lis.length; i++) { if (lis[i].style.display=='block') { hideDivFlag = false; break; } } } } if (hideDivFlag) this.upDiv(dElement).style.display = 'none'; } // require if (this.dependentChanges['m'][mElementId][dElementId]['is_require']) { if (dElement.type=='checkbox' || dElement.type=='radio') { $(dElement).removeClassName('validate-one-required-by-name'); } else { $(dElement).removeClassName('required-entry'); } $(dElement).addClassName('required-dependent'); } optionImages.showImage(dElement); } } // return dependent->dependent etc.. if (disableElFlag && (dElement.type=='checkbox' || dElement.type=='radio') && dElement.checked) { dElement.checked = false; if (dElement.type=='checkbox') optionSetQtyProduct.checkboxQty(dElement); dependentOptions.returnSelect(dElement); } else if ((dElement.type=='select-one' || dElement.type=='select-multiple') && !$(dElement).hasClassName('datetime-picker')) { dependentOptions.select(dElement); // that's right! } else if (disableElFlag && (dElement.type=='text' || dElement.type=='textarea' || dElement.type=='file')) { if (this.defaultData[dElementId]) dElement.value = this.defaultData[dElementId]; else dElement.value = ''; } } delete this.dependentChanges['m'][mElementId]; } }, rememberNewSelected: function(dElement, dElementId) { // remember new selected if (this.dependentChanges['d'][dElementId] && this.dependentChanges['d'][dElementId]['options']) { var opSelected = false; for (i=0; i < dElement.options.length; i++) { if (this.dependentChanges['d'][dElementId]['options']['s'+dElement.options[i].value]) { if (dElement.options[i].selected && dElement.options[i].value>0) opSelected = true; else opSelected = false; this.dependentChanges['d'][dElementId]['options']['s'+dElement.options[i].value]['selected'] = opSelected; } } } }, // for ie to work upDiv: function(el) { if (el.type=='checkbox' || el.type=='radio') { var div = el.up(4); if (!$(div).hasClassName('option')) div = div.up(1); return div; } else { return el.up('div.option'); } }, decorateIsLast: function() { var divs = $$('div.option'); if (divs) { var dl = false; var dd = false; divs.each(function(div, index){ if (div.style.display!='none' && !$(div).hasClassName('hidden')) { dl = div.down('dl'); if (dl) { if ($(dl).hasClassName('last')) $(dl).removeClassName('last'); dd = dl.down('dd'); if (dd && $(dd).hasClassName('last')) $(dd).removeClassName('last'); } } }.bind(this)); if (dl) $(dl).addClassName('last'); if (dd) $(dd).addClassName('last'); } }, applyDefaultValues: function(el) { for(var elementId in this.defaultData) { if (!this.defaultData.hasOwnProperty(elementId)) continue; if ($(elementId) && this.upDiv($(elementId)) && this.upDiv($(elementId)).style.display!="none") { this.returnSelect($(elementId)); if ($(elementId).type=='select-one' || $(elementId).type=='text' || $(elementId).type=='textarea') { $(elementId).value = this.defaultData[elementId]; } else if ($(elementId).type=='select-multiple') { el = $(elementId); for (i=0; i < el.options.length; i++) { if (this.defaultData[elementId][el.options[i].value]) el.options[i].selected = true; } } else if ($(elementId).type=='checkbox' || $(elementId).type=='radio') { if ($(elementId).checked!=true) $(elementId).click(); } this.select($(elementId)); } } } }; // for correct decorating of options if (typeof(decorateGeneric)!='undefined') { var parentDecorateGeneric = decorateGeneric; decorateGeneric = function(elements, decorateParams) { parentDecorateGeneric(elements, decorateParams); dependentOptions.decorateIsLast(); }; } //]]>