YUI().use("node","aui-popover","io-base","node-event-simulate","cookie","button",function(Y){var basketPortlet=Y.one(".eCommerce-basket-portlet");if(!basketPortlet)return;Y.all(".packaging-unit-button").each(function(button){(new Y.ToggleButton({srcNode:button,after:{"pressedChange":function(){var button=this,pressed=button.get("pressed"),newLabel=pressed?window.basketTranslations.perPackage:window.basketTranslations.perCopy;button.set("label",newLabel);button.getNode().removeClass("packaging-unit-toggle-on");
button.getNode().removeClass("packaging-unit-toggle-off");button.getNode().addClass(pressed?"packaging-unit-toggle-on":"packaging-unit-toggle-off")}}})).render()});var productTitles=basketPortlet.all(".product-title");var quantityInputs=basketPortlet.all(".numeric-input-tag .quantity-input input");var packagingUnitsControls=basketPortlet.all(".packaging-unit");var packagingInfoNodes=basketPortlet.all(".packaging-info");var removeButtons=basketPortlet.all(".remove-product");var removePopup=basketPortlet.one(".remove-popup-container .remove-popup");
var addressListContainer=basketPortlet.one(".address-list-container");var addressListCheckboxes=addressListContainer?addressListContainer.all("input[type\x3dradio]"):undefined;var useShippingAddressCheckbox=basketPortlet.one(".use-shipping-address-checkbox input[type\x3dcheckbox]");var shippingMethodsSelector=basketPortlet.one(".shipping-fees select");var acceptConditionsCheckbox=basketPortlet.one(".accept-conditions input[type\x3dcheckbox]");var proceedToPaymentButton=basketPortlet.one(".actions.proceed-payment button");
var basketPortletCheckoutButton=basketPortlet.one(".basket-options a.btn-primary");var backToPublicationsLink=basketPortlet.one("a.back-to-publications");var abandoningSaferpayMessage=basketPortlet.one(".abandoning-saferpay-message");var shippingMethodsMap=[];try{if(basket_shippingMethodsMap!==undefined)shippingMethodsMap=JSON.parse(basket_shippingMethodsMap)}catch(e){}if(productTitles)productTitles.each(function(){this.on("click",function(){var parentNode=this.get("parentNode");if(parentNode)parentNode.toggleClass("open")})});
if(quantityInputs)quantityInputs.each(function(){var quantityInput=this;var productRow=quantityInput.ancestor(".product-container");var catalogueNumber=productRow&&productRow.one(".productCatalogueNumber")?productRow.one(".productCatalogueNumber").get("value"):"";var basketItemIdentifier=productRow&&productRow.one(".basketItemIdentifier")?productRow.one(".basketItemIdentifier").get("value"):"";if(!catalogueNumber)return;quantityInput.on("change",function(e){var value=quantityInput.get("value");var offset=
quantityInput.getAttribute("offset");if(value==0)showRemoveProductPopup(e.currentTarget,productRow);else{productRow.addClass("loading");updateProductQuantityAsyncRequest(catalogueNumber,basketItemIdentifier,value,false,function(basketItemInfo){updateProductRowAndBasketSubtotal(productRow,basketItemInfo);productRow.removeClass("loading")},function(failResult){console.log("request failed",failResult);productRow.removeClass("loading")})}})});if(packagingUnitsControls)packagingUnitsControls.each(function(){var productPackageUnitNode=
this;productPackageUnitNode.on("click",function(){var isActivated=!productPackageUnitNode.hasClass("disabled");var numericInputNode=productPackageUnitNode.ancestor().one(".quantity-input input");var step=productPackageUnitNode.getAttribute("step");if(isActivated){productPackageUnitNode.addClass("disabled");if(numericInputNode)numericInputNode.setAttribute("step","1")}else{productPackageUnitNode.removeClass("disabled");if(numericInputNode)numericInputNode.setAttribute("step",step)}})});if(packagingInfoNodes)packagingInfoNodes.each(function(){var packageInfoNode=
this;var popover=undefined;packageInfoNode.on("click",function(){var popupContent=packageInfoNode.one(".popup-content");if(!popover){popover=(new Y.Popover({align:{node:packageInfoNode,points:[Y.WidgetPositionAlign.TC,Y.WidgetPositionAlign.BC]},bodyContent:popupContent.getHTML(),position:"bottom"})).render();var popoverNode=popover?popover.get("srcNode"):undefined;if(popoverNode)popoverNode.get("parentNode").setStyle("z-index","")}else{popover.destroy();popover=undefined}packageInfoNode.once("clickoutside",
function(){if(popover){popover.destroy();popover=undefined}})})});if(removeButtons)removeButtons.each(function(){var thisButton=this;var productRow=thisButton.ancestor(".product-container");thisButton.on("click",function(e){showRemoveProductPopup(e.currentTarget,productRow)})});function showRemoveProductPopup(target,productRow){if(!target||!productRow)return;var popover=(new Y.Popover({align:{node:target,points:[Y.WidgetPositionAlign.TC,Y.WidgetPositionAlign.BC]},bodyContent:removePopup.getHTML(),
position:"bottom"})).render();document.getElementById("removeIndex").focus();var popoverNode=popover?popover.get("srcNode"):undefined;if(popoverNode){popoverNode.get("parentNode").setStyle("z-index","");var removeButton=popoverNode.one(".btn-remove");var cancelButton=popoverNode.one(".btn-cancel");if(removeButton)removeButton.on("click",function(){removeProduct(productRow,function(result){popover.destroy()},function(failResult){console.log("fail result: ",failResult)})});if(cancelButton)cancelButton.on("click",
function(){popover.destroy();if(target.get("tagName")=="INPUT"){target.set("value",1);target.simulate("change")}})}}function removeProduct(productRow,callbackFn,failCallbackFn){if(!productRow)return;var catalogueNumber=productRow.one(".productCatalogueNumber")?productRow.one(".productCatalogueNumber").get("value"):"";var basketItemIdentifier=productRow.one(".basketItemIdentifier")?productRow.one(".basketItemIdentifier").get("value"):"";if(!catalogueNumber||catalogueNumber.length==0)return;var quantityInput=
productRow.one(".col-quantity input");if(!quantityInput)return;var currentValue=quantityInput.get("value");var quantityOffset;if(currentValue==0)quantityOffset=-1;else quantityOffset=parseInt(quantityInput.getAttribute("offset"))!=0?parseInt(quantityInput.getAttribute("offset")):parseInt(-1*parseInt(currentValue));if(quantityOffset==0)return;productRow.addClass("loading");updateProductQuantityAsyncRequest(catalogueNumber,basketItemIdentifier,currentValue,true,function(basketItemInfo){updateProductRowAndBasketSubtotal(productRow,
basketItemInfo);if(!callbackFn||typeof callbackFn!=="function")return;callbackFn(basketItemInfo);productRow.removeClass("loading");displayCheckOutButton();var basketItemNumber=Y.one(".basket-summary-portlet a.basket-label .basket-items .value");var currentItemNoValue=parseInt(basketItemNumber.getHTML());currentItemNoValue--;basketItemNumber.setHTML(currentItemNoValue.toString());var basketMessage=Y.one(".eCommerce-basket-portlet .alert.alert-success");if(basketMessage)basketMessage.hide()},function(failResult){if(!failCallbackFn||
typeof failCallbackFn!=="function")return;failCallbackFn(failResult);productRow.removeClass("loading")})}function displayCheckOutButton(){if(!basketPortletCheckoutButton)return;basketPortletCheckoutButton.addClass("hidden");basketPortlet.all(".basket-cards-wrapper.all-basket-items .product-container").each(function(basketPortletTableRow){if(!basketPortletTableRow.hasClass("out-of-stock"))basketPortletCheckoutButton.removeClass("hidden")})}function updateProductQuantityAsyncRequest(catalogueNumber,
basketItemIdentifier,newQuantity,isDelete,callbackFn,failCallbackFn){var requestURL=basket_updateProductActionURL;if(isDelete==true)requestURL=basket_deleteProductActionURL;requestURL=requestURL.replace("catalogue_number_placeholder",catalogueNumber);requestURL=requestURL.replace("quantity_placeholder",newQuantity);requestURL=requestURL.replace("basket_item_identifier",basketItemIdentifier);Y.io(requestURL,{method:"GET",on:{success:function(id,result){if(typeof callbackFn==="undefined"||typeof callbackFn!==
"function")return;callbackFn(result&&result.response?JSON.parse(result.response):undefined)},failure:function(id,result){if(typeof failCallbackFn==="undefined"||typeof failCallbackFn!=="function")return;failCallbackFn(result)}}})}function updateProductRowAndBasketSubtotal(productRow,basketItemInfo){if(basketItemInfo=="invalidRequest")return;var price=basketItemInfo&&basketItemInfo.price?parseFloat(basketItemInfo.price).toFixed(2):0;var rowTotal=basketItemInfo&&basketItemInfo.rowTotal?parseFloat(basketItemInfo.rowTotal).toFixed(2):
0;var quantity=basketItemInfo&&basketItemInfo.quantity?basketItemInfo.quantity:0;var basketSubtotal=basketItemInfo&&basketItemInfo.basketSubTotal?parseFloat(basketItemInfo.basketSubTotal).toFixed(2):0;var customerQuota=basketItemInfo&&basketItemInfo.publicationInfo&&basketItemInfo.publicationInfo.customerQuota?parseInt(basketItemInfo.publicationInfo.customerQuota):0;var stock=basketItemInfo&&basketItemInfo.publicationInfo&&basketItemInfo.publicationInfo.stock?parseInt(basketItemInfo.publicationInfo.stock):
0;var quota=basketItemInfo&&basketItemInfo.publicationInfo&&basketItemInfo.publicationInfo.quota?parseInt(basketItemInfo.publicationInfo.quota):0;var rowTotalSpan=productRow?productRow.one(".col-total .price"):undefined;var rowTotalSpanMobile=productRow?productRow.one(".col-total .price-fake-mobile"):undefined;var priceSpan=productRow?productRow.one(".col-unitPrice"):undefined;var quantityInput=productRow?productRow.one(".quantity-input input"):undefined;var packagingInfoValue=productRow?productRow.one(".packaging-info-value"):
undefined;var basketSubtotalSpan=productRow&&productRow.ancestor(".eCommerce-basket-portlet")?productRow.ancestor(".eCommerce-basket-portlet").one(".basket-options .subtotal .value"):undefined;var basketTotal=productRow&&productRow.ancestor(".eCommerce-basket-portlet")?productRow.ancestor(".eCommerce-basket-portlet").one(".total-cost span.total-cost-value"):undefined;var shippingFees=productRow&&productRow.ancestor(".eCommerce-basket-portlet")?productRow.ancestor(".eCommerce-basket-portlet").one(".shipping-fees .shipping-fees-value"):
undefined;if(isNumeric(price)&&priceSpan)if(price>0)priceSpan.setHTML("\x26euro; "+price);else priceSpan.setHTML("FREE");if(isNumeric(rowTotal)&&rowTotalSpan){var displayedTotal=rowTotal==0?parseFloat(rowTotal).toFixed(2):rowTotal;rowTotalSpan.setHTML("\x26euro; "+displayedTotal);rowTotalSpanMobile.setHTML("\x26euro; "+displayedTotal)}if(quantity==0){var tableBodyNode=productRow.get("parentNode");if(tableBodyNode){tableBodyNode.removeChild(productRow);if(tableBodyNode.all(".product-container").size()==
0)basketEmptyHandler()}}else{if(quantityInput)quantityInput.set("value",quantity);if(packagingInfoValue){packagingInfoValue.setHTML("("+parseInt(customerQuota-quantity).toString()+")");var popupContent=packagingInfoValue.ancestor().one(".popup-content");if(popupContent){var orderableItemsNode=popupContent.one(".orderableItems");if(orderableItemsNode)orderableItemsNode.setHTML(parseInt(customerQuota-quantity).toString());var stocksNode=popupContent.one(".stocks");if(stocksNode)stocksNode.setHTML(parseInt(quota-
quantity).toString()+" / "+stock.toString());var customerQuotaNode=popupContent.one(".customerQuota");if(customerQuotaNode)customerQuotaNode.setHTML(parseInt(customerQuota-quantity).toString()+" / "+parseInt(customerQuota).toString())}}}if(isNumeric(basketSubtotal)&&basketSubtotalSpan){basketSubtotalSpan.setHTML("\x26euro; "+basketSubtotal);var newTotalCost=parseFloat(basketSubtotal);if(shippingMethodsSelector)updateShippingMethods();else{var newTotalCost=parseFloat(basketSubtotal);if(basketTotal)basketTotal.setHTML("\x26euro; "+
newTotalCost.toFixed(2))}if(shippingFees){var shippingFeesValue=parseFloat(shippingFees.getHTML().trim().replace("\u20ac","").replace(" ",""));newTotalCost+=shippingFeesValue}if(basketTotal)basketTotal.setHTML("\x26euro; "+newTotalCost.toFixed(2));updateCompleteOrderButton(newTotalCost>0?false:true)}}function basketEmptyHandler(){var basketTableHolderNode=basketPortlet.one(".basket-table-holder");var basketEmptyMessageNode=basketPortlet.one(".basket-empty-message");if(basketEmptyMessageNode)basketTableHolderNode.addClass("hidden");
if(basketEmptyMessageNode)basketEmptyMessageNode.removeClass("hidden")}function updateShippingMethods(){if(!shippingMethodsSelector)return;var requestURL=basket_getShippingCostsActionURL;var basketSubtotalNode=basketPortlet.one(".basket-options .subtotal .value span");var basketTotalNode=basketPortlet.one(".total-cost span.total-cost-value");var shippingFeesNode=basketPortlet.one(".shipping-fees .shipping-fees-value");Y.io(requestURL,{method:"GET",on:{success:function(id,result){if(!result||!result.response)return;
var newShippingMethodsMap=[];var shippingMethods=JSON.parse(result.response);var currentSelectedShippingMethod=shippingMethodsSelector.get("value");var newSelectedShippingMethod;var shippingMethodsSelectorContent=shippingMethods.length>1?"\x3coption\x3e\x3c/option\x3e":"";for(var i=0;i<shippingMethods.length;i++){var shippingMethod=shippingMethods[i];var shippingMethodId=shippingMethod.carrierCode+"__"+shippingMethod.methodCode;newShippingMethodsMap[shippingMethodId]=shippingMethod;var isShippingMethodSelected=
currentSelectedShippingMethod===shippingMethodId;if(isShippingMethodSelected)newSelectedShippingMethod=shippingMethod;shippingMethodsSelectorContent+='\x3coption value\x3d"'+shippingMethodId+'"'+(isShippingMethodSelected?" selected ":"")+"\x3e"+shippingMethod.carrierTitle+"\x3c/option\x3e"}shippingMethodsMap=newShippingMethodsMap;shippingMethodsSelector.setHTML(shippingMethodsSelectorContent);var totalCost=parseFloat(basketSubtotalNode.getHTML());var shippingCost=parseFloat(0);if(newSelectedShippingMethod){shippingCost=
parseFloat(newSelectedShippingMethod.amount);totalCost+=shippingCost}if(shippingFeesNode)shippingFeesNode.setHTML("\x26euro; "+shippingCost.toFixed(2));if(basketTotalNode)basketTotalNode.setHTML("\x26euro; "+totalCost.toFixed(2))},failure:function(id,result){console.log(result)}}})}if(addressListCheckboxes)addressListCheckboxes.each(function(){if(this.get("checked"))this.ancestor(".address-container").addClass("selected");this.on("change",function(e){var checkbox=e.target;if(checkbox.get("checked")){addressListContainer.all(".address-container").removeClass("selected");
checkbox.ancestor(".address-container").addClass("selected");if(useShippingAddressCheckbox){useShippingAddressCheckbox.set("checked",false);var container=useShippingAddressCheckbox.ancestor(".use-shipping-address");var row=container?container.one(".address-container"):undefined;if(row)row.addClass("hidden")}}})});if(useShippingAddressCheckbox){var shippingAddressContainer=useShippingAddressCheckbox.ancestor(".use-shipping-address").one(".address-container");useShippingAddressCheckbox.on("change",
function(){if(useShippingAddressCheckbox.get("checked")){shippingAddressContainer.removeClass("hidden");if(addressListCheckboxes)addressListCheckboxes.each(function(){this.set("checked",false);this.ancestor(".address-container").removeClass("selected")})}else shippingAddressContainer.addClass("hidden")})}if(shippingMethodsSelector){setInitialShippingMethod();attachShippingSelectorChangeEvent()}function setInitialShippingMethod(){var shippingFeesNode=basketPortlet.one(".shipping-fees .shipping-fees-value");
var totalCostNode=basketPortlet.one(".total-cost span.total-cost-value");var initialSelectedShippingMethodKey=shippingMethodsSelector.get("value");var initialSelectedShippingMethod=shippingMethodsMap[initialSelectedShippingMethodKey];if(initialSelectedShippingMethod&&isNumeric(initialSelectedShippingMethod.amount))shippingFeesNode.setHTML("\x26euro; "+parseFloat(initialSelectedShippingMethod.amount).toFixed(2));var subtotalValue=basketPortlet.one(".subtotal .value span")?basketPortlet.one(".subtotal .value span").getHTML():
0;subtotalValue=isNumeric(subtotalValue)?parseFloat(subtotalValue):parseFloat(0);var newTotalCost=0;if(subtotalValue>0)newTotalCost=parseFloat(subtotalValue+parseFloat(initialSelectedShippingMethod.amount));else newTotalCost=parseFloat(initialSelectedShippingMethod.amount);totalCostNode.setHTML("\x26euro; "+newTotalCost.toFixed(2));updateCompleteOrderButton(newTotalCost>0?false:true);attachShippingSelectorToAUIForm()}function attachShippingSelectorChangeEvent(){var shippingFeesNode=basketPortlet.one(".shipping-fees .shipping-fees-value");
var totalCostNode=basketPortlet.one(".total-cost span.total-cost-value");shippingMethodsSelector.on("change",function(){var subtotalValue=basketPortlet.one(".subtotal .value span")?basketPortlet.one(".subtotal .value span").getHTML():0;subtotalValue=isNumeric(subtotalValue)?parseFloat(subtotalValue):parseFloat(0);var selectedShippingMethod=this.get("value");var newTotalCost=0;if(!selectedShippingMethod){shippingFeesNode.setHTML("\x26euro; "+parseFloat(0).toFixed(2));totalCostNode.setHTML("\x26euro; "+
subtotalValue.toFixed(2));newTotalCost=subtotalValue}else{var shippingMethod=shippingMethodsMap[selectedShippingMethod];if(shippingMethod&&isNumeric(shippingMethod.amount)){shippingFeesNode.setHTML("\x26euro; "+parseFloat(shippingMethod.amount).toFixed(2));if(subtotalValue>0)newTotalCost=parseFloat(subtotalValue+parseFloat(shippingMethod.amount));else newTotalCost=parseFloat(shippingMethod.amount);totalCostNode.setHTML("\x26euro; "+newTotalCost.toFixed(2))}}updateCompleteOrderButton(newTotalCost>
0?false:true);attachShippingSelectorToAUIForm()})}function attachShippingSelectorToAUIForm(){var shippingFeesOrderSummarySectionNode=basketPortlet.one(".shipping-fees");var shippingFeesConfirmOrderSectionNode=basketPortlet.one(".basket-options .shipping-fees-container .sf");shippingFeesConfirmOrderSectionNode.setHTML(shippingFeesOrderSummarySectionNode.getHTML());shippingFeesConfirmOrderSectionNode.addClass("sf");shippingFeesConfirmOrderSectionNode.removeClass("shipping-fees")}if(acceptConditionsCheckbox){if(!acceptConditionsCheckbox.get("checked")){proceedToPaymentButton.set("disabled",
true);abandoningSaferpayMessage.set("hidden",true)}acceptConditionsCheckbox.on("click",function(){if(acceptConditionsCheckbox.get("checked")){proceedToPaymentButton.set("disabled",false);abandoningSaferpayMessage.set("hidden",false)}else{proceedToPaymentButton.set("disabled",true);abandoningSaferpayMessage.set("hidden",true)}})}if(backToPublicationsLink&&basket_backToPublicationsURL){var backToPublicationsURL=decodeURIComponent(basket_backToPublicationsURL);var existingCookieValue=Y.Cookie.get(basket_lastURLCookieName);
if(!existingCookieValue||existingCookieValue!=backToPublicationsURL)Y.Cookie.set(basket_lastURLCookieName,backToPublicationsURL,{path:"/"});backToPublicationsLink.on("click",function(e){e.preventDefault();Y.Cookie.remove(basket_lastURLCookieName,{path:"/"});window.location.href=decodeURIComponent(backToPublicationsURL)})}function updateCompleteOrderButton(freeOrder){if(!proceedToPaymentButton)return;var labelProceedPayment=proceedToPaymentButton.one(".label-proceed-payment");var labelConfirmOrder=
proceedToPaymentButton.one(".label-confirm-order");if(!labelProceedPayment||!labelConfirmOrder)return;if(freeOrder){labelProceedPayment.addClass("hidden");labelConfirmOrder.removeClass("hidden")}else{labelProceedPayment.removeClass("hidden");labelConfirmOrder.addClass("hidden")}}function isNumeric(n){if(typeof n==="string"||n instanceof String)n=n.split(",").join(".");return!isNaN(parseFloat(n))&&isFinite(n)}});
