1if(typeof Product=='undefined'){var Product={};} 2Product.Bundle=Class.create();Product.Bundle.prototype={initialize:function(config){this.config=config;if(config.defaultValues){for(var option in config.defaultValues){if(this.config['options'][option].isMulti){var selected=new Array();for(var i=0;i<config.defaultValues[option].length;i++){selected.push(config.defaultValues[option][i]);} 3this.config.selected[option]=selected;}else{this.config.selected[option]=new Array(config.defaultValues[option]+"");}}} 4this.reloadPrice();},changeSelection:function(selection){var parts=selection.id.split('-');if(this.config['options'][parts[2]].isMulti){selected=new Array();if(selection.tagName=='SELECT'){for(var i=0;i<selection.options.length;i++){if(selection.options[i].selected&&selection.options[i].value!=''){selected.push(selection.options[i].value);}}}else if(selection.tagName=='INPUT'){selector=parts[0]+'-'+parts[1]+'-'+parts[2];selections=$$('.'+selector);for(var i=0;i<selections.length;i++){if(selections[i].checked&&selections[i].value!=''){selected.push(selections[i].value);}}} 5this.config.selected[parts[2]]=selected;}else{if(selection.value!=''){this.config.selected[parts[2]]=new Array(selection.value);}else{this.config.selected[parts[2]]=new Array();} 6this.populateQty(parts[2],selection.value);var tierPriceElement=$('bundle-option-'+ parts[2]+'-tier-prices'),tierPriceHtml='';if(selection.value!=''&&this.config.options[parts[2]].selections[selection.value].customQty==1){tierPriceHtml=this.config.options[parts[2]].selections[selection.value].tierPriceHtml;} 7tierPriceElement.update(tierPriceHtml);} 8this.reloadPrice();},reloadPrice:function(){var calculatedPrice=0;var dispositionPrice=0;var includeTaxPrice=0;for(var option in this.config.selected){if(this.config.options[option]){for(var i=0;i<this.config.selected[option].length;i++){var prices=this.selectionPrice(option,this.config.selected[option][i]);calculatedPrice+=Number(prices[0]);dispositionPrice+=Number(prices[1]);includeTaxPrice+=Number(prices[2]);}}} 9if(taxCalcMethod==CACL_TOTAL_BASE){var calculatedPriceFormatted=calculatedPrice.toFixed(10);var includeTaxPriceFormatted=includeTaxPrice.toFixed(10);var tax=includeTaxPriceFormatted- calculatedPriceFormatted;calculatedPrice=includeTaxPrice- Math.round(tax*100)/ 100; 10} 11if(this.config.priceType=='0'){calculatedPrice=Math.round(calculatedPrice*100)/100; 12dispositionPrice=Math.round(dispositionPrice*100)/100; 13includeTaxPrice=Math.round(includeTaxPrice*100)/100; 14} 15var event=$(document).fire('bundle:reload-price',{price:calculatedPrice,priceInclTax:includeTaxPrice,dispositionPrice:dispositionPrice,bundle:this});if(!event.noReloadPrice){optionsPrice.specialTaxPrice='true';optionsPrice.changePrice('bundle',calculatedPrice);optionsPrice.changePrice('nontaxable',dispositionPrice);optionsPrice.changePrice('priceInclTax',includeTaxPrice);optionsPrice.reload();} 16return calculatedPrice;},selectionPrice:function(optionId,selectionId){if(selectionId==''||selectionId=='none'){return 0;} 17var qty=null;var tierPriceInclTax,tierPriceExclTax;if(this.config.options[optionId].selections[selectionId].customQty==1&&!this.config['options'][optionId].isMulti){if($('bundle-option-'+ optionId+'-qty-input')){qty=$('bundle-option-'+ optionId+'-qty-input').value;}else{qty=1;}}else{qty=this.config.options[optionId].selections[selectionId].qty;} 18if(this.config.priceType=='0'){price=this.config.options[optionId].selections[selectionId].price;tierPrice=this.config.options[optionId].selections[selectionId].tierPrice;for(var i=0;i<tierPrice.length;i++){if(Number(tierPrice[i].price_qty)<=qty&&Number(tierPrice[i].price)<=price){price=tierPrice[i].price;tierPriceInclTax=tierPrice[i].priceInclTax;tierPriceExclTax=tierPrice[i].priceExclTax;}}}else{selection=this.config.options[optionId].selections[selectionId];if(selection.priceType=='0'){price=selection.priceValue;}else{price=(this.config.basePrice*selection.priceValue)/100; 19}} 20var disposition=this.config.options[optionId].selections[selectionId].plusDisposition+ 21this.config.options[optionId].selections[selectionId].minusDisposition;if(this.config.specialPrice){newPrice=(price*this.config.specialPrice)/100; 22price=Math.min(newPrice,price);} 23selection=this.config.options[optionId].selections[selectionId];if(tierPriceInclTax!==undefined&&tierPriceExclTax!==undefined){priceInclTax=tierPriceInclTax;price=tierPriceExclTax;}else if(selection.priceInclTax!==undefined){priceInclTax=selection.priceInclTax;price=selection.priceExclTax!==undefined?selection.priceExclTax:selection.price;}else{priceInclTax=price;} 24if(this.config.priceType=='1'||taxCalcMethod==CACL_TOTAL_BASE){var result=new Array(price*qty,disposition*qty,priceInclTax*qty);return result;} 25else if(taxCalcMethod==CACL_UNIT_BASE){price=(Math.round(price*100)/100).toString(); 26disposition=(Math.round(disposition*100)/100).toString(); 27priceInclTax=(Math.round(priceInclTax*100)/100).toString(); 28var result=new Array(price*qty,disposition*qty,priceInclTax*qty);return result;}else{price=(Math.round(price*qty*100)/100).toString(); 29disposition=(Math.round(disposition*qty*100)/100).toString(); 30priceInclTax=(Math.round(priceInclTax*qty*100)/100).toString(); 31var result=new Array(price,disposition,priceInclTax);return result;}},populateQty:function(optionId,selectionId){if(selectionId==''||selectionId=='none'){this.showQtyInput(optionId,'0',false);return;} 32if(this.config.options[optionId].selections[selectionId].customQty==1){this.showQtyInput(optionId,this.config.options[optionId].selections[selectionId].qty,true);}else{this.showQtyInput(optionId,this.config.options[optionId].selections[selectionId].qty,false);}},showQtyInput:function(optionId,value,canEdit){elem=$('bundle-option-'+ optionId+'-qty-input');elem.value=value;elem.disabled=!canEdit;if(canEdit){elem.removeClassName('qty-disabled');}else{elem.addClassName('qty-disabled');}},changeOptionQty:function(element,event){var checkQty=true;if(typeof(event)!='undefined'){if(event.keyCode==8||event.keyCode==46){checkQty=false;}} 33if(checkQty&&(Number(element.value)==0||isNaN(Number(element.value)))){element.value=1;}
34parts=element.id.split('-');optionId=parts[2];if(!this.config['options'][optionId].isMulti){selectionId=this.config.selected[optionId][0];this.config.options[optionId].selections[selectionId].qty=element.value*1;this.reloadPrice();}},validationCallback:function(elmId,result){if(elmId==undefined||$(elmId)==undefined){return;} 35var container=$(elmId).up('ul.options-list');if(typeof container!='undefined'){if(result=='failed'){container.removeClassName('validation-passed');container.addClassName('validation-failed');}else{container.removeClassName('validation-failed');container.addClassName('validation-passed');}}}}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.