(function($){em.fn.initCart=function(purchBtn,updateUrl,expandTxt,collapseTxt,loadTxt,checkTxt,maxQtyTxt){var jPurchButton=$(purchBtn),jCartContainer=$("#header .box-basket"),jCartHeader=jCartContainer.find(".box-header"),jPrdListContainer=jCartContainer.find(".box-content"),jCartPurchase=jPrdListContainer.find(".purchase-order"),jPrdList=jPrdListContainer.children("ul"),sRef=jPurchButton.parents("form").find("input[name=sFUPID]").val(),jCartToggleBtn=jCartHeader.find("a"),jCollapse=$('<a class="collapse-basket" tabindex="0" role="button collapse">collapse basket</a>'),jLoader=$('<span class="loading">loading</span>'),jCartState=jCartToggleBtn,jCartUpdateAnim=null,autoCloseTimeOut,cartToggleHeight=null,cartHeaderHeight=null,cartContainerHeight=null,showProducts=3,cartTimeOut;if($("p.total-amount").length<1){var jCartTotal=$('<p class="total-amount"></p>').insertBefore(jPrdListContainer.find('.purchase-order'));}else{var jCartTotal=$("p.total-amount");}
jCollapse.appendTo(jPrdListContainer);jPurchButton.click(function(e){e.preventDefault();em.cart.add(sRef);});function updateDimensions(){if(!cartHeaderHeight){cartHeaderHeight=jCartHeader.outerHeight();}
if(!cartToggleHeight){cartToggleHeight=(jCartPurchase.outerHeight())+20;}
cartContainerHeight=jPrdListContainer.outerHeight();};function getOpenTopPosition(showItems){updateDimensions();if(showItems===0){return cartHeaderHeight;}else{return getCloseTopPosition()+(jPrdList.find("li:first").outerHeight()*showItems)+cartToggleHeight;}};function getCloseTopPosition(){updateDimensions();return-cartContainerHeight+cartHeaderHeight;};function updateBtnState(){if(jPrdList.find("li").length>0){jCartToggleBtn.removeClass("empty-basket");}else{jCartToggleBtn.addClass("empty-basket");}};updateBtnState();jPrdListContainer.data("status","closed").bind("open",function(e,settings){updateBtnState();settings=$.extend({showItems:0,callBack:function(){}},settings);jCartContainer.addClass("box-basket-expanded");jPrdListContainer.stop().animate({top:getOpenTopPosition(settings.showItems)},400,function(){settings.callBack();}).data("status","open");}).bind("close",function(e,settings){updateBtnState();settings=$.extend({callBack:function(){}},settings);var slideValue=-(jPrdList.outerHeight())+jCartHeader.outerHeight();jPrdListContainer.stop().animate({top:getCloseTopPosition()},400,function(){jCartContainer.removeClass("box-basket-expanded");settings.callBack();jPrdListContainer.trigger("position");}).data("status","close");}).bind("position",function(){jPrdListContainer.css("top",((jPrdListContainer.data("status")==="open")?getOpenTopPosition(0):getCloseTopPosition()));}).trigger("position");jCartToggleBtn.add(jCollapse).click(function(e){e.preventDefault();if(jPrdList.find("li").length>0){jPrdListContainer.trigger((jPrdListContainer.data("status")==="open")?"close":"open");}});jCartContainer.find("input.delete").live("click",function(e){e.preventDefault();em.cart.remove($(this).prev().val());});jCartContainer.hover(function(){window.clearTimeout(cartTimeOut);},function(){cartTimeOut=window.setTimeout(function(){jPrdListContainer.trigger('close');},1600);});em.cart={add:function(ref){jLoader.text(loadTxt).removeClass("loaded").appendTo("form.prd-purchase fieldset p").show();$.get(updateUrl,{"type":"add","ref":ref},function(data){if(data.bMaxValue!=true){jLoader.addClass("loaded").text(checkTxt);var jNewPrd=$(data.new_product);if($("#"+jNewPrd.attr("id")).length>0){$("#"+jNewPrd.attr("id")).remove();}
window.clearTimeout(autoCloseTimeOut);jNewPrd.appendTo(jPrdList);jCartState.text(data.quantity);jCartTotal.html(data.cart_state);var jListItems=jPrdList.find("li");if(jListItems.length>showProducts){jListItems.not(jListItems.slice(-showProducts)).remove();}
updateDimensions();jPrdListContainer.css("top",getCloseTopPosition());jPrdListContainer.trigger("open",[{showItems:1,callBack:function(){autoCloseTimeOut=window.setTimeout(function(){jPrdListContainer.trigger("close");jLoader.fadeOut(300,function(){jLoader.remove();});},1600);}}]);}else{jLoader.addClass("loaded error").text(maxQtyTxt);}},"json");},remove:function(ref){var prdToRemove=jPrdList.find("#cart-prd-"+ref);prdToRemove.addClass("loading");$.get(updateUrl,{"type":"remove","ref":ref},function(data){if(jPrdListContainer.data("status")==="open"){prdToRemove.slideUp(300,function(){prdToRemove.remove();jPrdListContainer.trigger("position");});}else{prdToRemove.remove();jPrdListContainer.trigger("position");}
jCartState.text(data.quantity);jCartTotal.html(data.cart_state);jPrdListContainer.trigger("open",[{showItems:jPrdList.find("li").length}]);},"json");}};};})(jQuery);