dojo.provide("atg.store.widget.RichCartTrigger");dojo.require("dijit._Widget");dojo.require("dijit._Templated");dojo.declare("atg.store.widget.RichCartTrigger",[dijit._Widget,dijit._Templated],{templatePath:contextPath+"/javascript/widget/template/richCartTrigger.html",id:"richCartTrigger",containerNodeId:null,cartWidget:null,cartOpenCssClass:"richCartOpen",startup:function(){var a=this;a.attachToContainer()},toggleCart:function(){if(this.cartWidget===null){return}this.cartWidget.toggleCart();this.updateTriggerDisplay()},getCartWidget:function(){return this.cartWidget},updateTriggerDisplay:function(){if(this.cartWidget===null){return}var a=((this.cartWidget.isShowing&&!this.cartWidget.cartAnimationInProgress)||(!this.cartWidget.isShowing&&this.cartWidget.cartAnimationInProgress));if(a){dojo.byId("atg_store_viewCart").innerHTML=this.i18n.hideCart;this.triggerLink.title=this.i18n.hideCart;dojo.addClass(this.domNode,this.cartOpenCssClass)}else{dojo.byId("atg_store_viewCart").innerHTML=this.i18n.showCart;this.triggerLink.title=this.i18n.showCart;dojo.removeClass(this.domNode,this.cartOpenCssClass,false)}},attachToContainer:function(){dojo.byId(this.containerNodeId).innerHTML="";dojo.byId(this.containerNodeId).appendChild(this.domNode)}});dojo.provide("atg.store.widget.RichCartSummary");dojo.require("dojo.fx");dojo.require("dijit._Widget");dojo.require("dijit._Templated");dojo.require("dijit._Container");dojo.require("atg.store.widget.RichCartSummaryItem");dojo.declare("atg.store.widget.RichCartSummary",[dijit._Widget,dijit._Templated,dijit._Container],{templatePath:contextPath+"/javascript/widget/template/richCartSummary.html",triggerWidget:null,data:null,quantityNodeId:null,subTotalNodeId:null,hijackClassName:null,highlightColor:null,firstPlacementDone:false,cartAnimationInProgress:false,duration:{highlight:3000,scroll:500,wipe:280,autoHide:5000},afterStartup:function(){if(this.data!==null){this.setAllCartData(this.data)}var a=this;dojo.connect(window,"onresize",this,"placeCart");dojo.connect(window,"onscroll",this,"placeCart");dojo.connect(document.body,"onclick",function(b){var c=b.target.nodeName;if(a.isShowing&&c!="A"&&c!="INPUT"&&c!="BUTTON"){a.hide()}});dojo.connect(this.domNode,"onclick",function(b){b.stopPropagation()});this.triggerWidget=dijit.byId("richCartTrigger");if(this.doHijack===true){this.hijackAllAddToCartNodes()}},startup:function(){var a=this;dojo.addOnLoad(function(){a.domNode.style.visibility="hidden";a.attachToContainer();a.hide(function(){a.domNode.style.visibility="visible"})});this.afterStartup()},setAllCartData:function(b){this.data=b;this.clearCartItems();this.setCartSummaryData();if(b.items){for(var a=0;a<b.items.length;a++){if(b.items[a]){this.addCartItem(b.items[a])}}}},setCartSummaryData:function(){var a;if(this.quantityNodeId!==null){a=dojo.byId(this.quantityNodeId);if(a){a.innerHTML=dojo.string.substitute(this.i18n.itemCount,[this.data.itemsQuantity])}}if(this.subTotalNodeId!==null){ttlEl=dojo.byId(this.subTotalNodeId);if(ttlEl){ttlEl.innerHTML=this.data.subtotal}}if(this.data.itemCount===0){this.showEmptyCart(true)}else{this.showEmptyCart(false);this.csSubtotal.innerHTML=this.data.subtotal}},showEmptyCart:function(a){if(a===true){dojo.style(this.csSubtotalContainer,"display","none");dojo.style(this.csCheckout,"display","none");dojo.style(this.csEmptyMessage,"display","")}else{dojo.style(this.csSubtotalContainer,"display","");dojo.style(this.csCheckout,"display","");dojo.style(this.csEmptyMessage,"display","none")}},addCartItem:function(a){var b=new atg.store.widget.RichCartSummaryItem({data:a,highlightColor:this.highlightColor,highlightDuration:this.duration.highlight,scrollDuration:this.duration.scroll,i18n:this.i18n});b.startup();this.csContent.appendChild(b.domNode);this.addChild(b)},clearCartItems:function(){var b=this.getChildren();for(var a=0;a<b.length;a++){this.removeChild(b[a]);b[a].destroy()}},toggleCart:function(){if(this.isShowing===true){this.hide()}else{this.show()}},placeCart:function(){if(!this.isShowing&&this.firstPlacementDone&&!this.cartAnimationInProgress){return}this.firstPlacementDone=true;var d=this.triggerWidget.triggerLink;var f=dojo._abs(d);var a,e,c,b;a=f.x-104;a=(a>0)?a:0;c=dojo._getMarginBox(d.parentNode).h;b=dijit.getViewport().t;e=f.y+c+b;e=(e-b>0)?e:b;this.domNode.style.left=a+"px";this.domNode.style.top=e+"px";this.domNode.style.zIndex="1000";if(this.bgIframe){this.bgIframe.size(this.domNode)}},show:function(d){if(this.isShowing){if(d){d()}return}if(this.cartAnimationInProgress===true){return}this.cartAnimationInProgress=true;this.placeCart();var c=this;var b=dojo.fx.wipeIn({node:this.domNode,duration:this.duration.wipe,onEnd:function(){c.isShowing=true;c.cartAnimationInProgress=false;if(dojo.isIE){if(dojo.isIE<6){if(!c.bgIframe){c.bgIframe=new dijit.BackgroundIframe();c.bgIframe.setZIndex(c.domNode)}c.bgIframe.size(c.domNode);c.bgIframe.show()}}if(d&&dojo.isFunction(d)){d()}}});var a=dojo.fadeIn({node:this.domNode,properties:{opacity:{start:0.3,end:0.1}},duration:this.duration.wipe});dojo.fx.combine([b,a]).play();this.triggerWidget.updateTriggerDisplay()},hide:function(d){if(this.cartAnimationInProgress===true){return}this.cartAnimationInProgress=true;var c=this;var b=dojo.fx.wipeOut({node:this.domNode,duration:this.duration.wipe,onEnd:function(){c.isShowing=false;c.cartAnimationInProgress=false;c.triggerWidget.updateTriggerDisplay();if(c.bgIframe){c.bgIframe.hide();c.bgIframe.size({left:0,top:0,width:0,height:0})}if(d&&dojo.isFunction(d)){d()}}});var a=dojo.fadeOut({node:this.domNode,properties:{opacity:{start:1,end:0.8}},duration:this.duration.wipe});dojo.fx.combine([b,a]).play();this.clearAutoHide()},getChangedItemWidgets:function(){var a=[];var d;var c=[];c=this.getChildren();for(var b=0;b<c.length;b++){d=this.data.items[b];if(d.modified===true){a[a.length]=c[b]}}return a},startAutoHide:function(){if(this.autoHideTimer!==null){this.clearAutoHide()}var a=this;this.autoHideTimer=setTimeout(dojo.hitch(a,"hide"),this.duration.autoHide);dojo.connect(this.domNode,"onmouseover",this,"clearAutoHide")},clearAutoHide:function(){clearTimeout(this.autoHideTimer);dojo.disconnect(this.domNode,"onmouseover",this,"clearAutoHide");this.autoHideTimer=null},handleResponse:function(d,c){if(!d){this.handleError();return}if(d.error){this.resubmitForm(c);return}this.setAllCartData(d);var b=this.isShowing;var a=this.getChangedItemWidgets();var e=this;this.show(function(){if(a.length>0){a[0].scrollIntoView()}for(var f=0;f<a.length;f++){a[f].highlight()}e.enableNode(c)});if(!b||this.autoHideTimer!==null){this.startAutoHide()}},resetPicker:function(){dojo.query(".atg_store_quantity input[type='text']").forEach(function(a){a.value="0"})},hijackAllAddToCartNodes:function(){var a=this;dojo.query("*.atg_behavior_addItemToCart").forEach(function(b){a.hijackNode(b)})},hijackNode:function(b){if(b.isHijacked){return}b.isHijacked=true;var c=this;var a={headers:{Accept:"application/json"},handleAs:"json",load:function(e,d){c.handleResponse(e,b)},error:function(e,d){c.handleError(e,d)},timeout:function(e,d){c.handleError(e,d)}};if(b.nodeName=="INPUT"){dojo.connect(b,"onclick",function(d){dojo.publish("/cart/addToCartClicked",b);d.cancelBubble=true;d.preventDefault();var h=c.getParentNode(b,"form");var g={};g[b.name]=b.value;var e=dojo.query("#atg_store_formValidationError").concat(dojo.query(".atg_store_productDisplay_errorMsg"));if(e){for(var f=0;e.length>f;f++){e[f].style.display="none"}}dojo._mixin(a,{form:h,content:g});c.disableNode(b);dojo.xhrPost(a);return false})}else{if(b.nodeName=="A"){dojo.connect(b,"onclick",function(d){d.preventDefault();if(b.currentlyAdding&&b.currentlyAdding===true){return}dojo._mixin(a,{url:b.href});c.disableNode(b);dojo.xhrGet(a)})}else{}}},attachToContainer:function(){document.body.appendChild(this.domNode)},handleError:function(b,a){document.location=this.url.error},disableNode:function(a){a.originalProps={};a.originalProps.width=a.style.width;a.originalProps.height=a.style.height;a.style.width=dojo._getBorderBox(a).w+"px";if(a.nodeName=="INPUT"){a.originalProps.value=a.value;a.disabled=true;a.value=this.i18n.addingToCart}else{if(a.nodeName=="A"){a.originalProps.innerHTML=a.innerHTML;a.currentlyAdding=true;a.innerHTML=this.i18n.addingToCart}}},enableNode:function(a){if(a.nodeName=="INPUT"){a.disabled=false;a.value=a.originalProps.value}else{if(a.nodeName=="A"){a.currentlyAdding=false;a.innerHTML=a.originalProps.innerHTML}}a.style.width=a.originalProps.width;a.style.height=a.originalProps.height;a.originalProps=null},resubmitForm:function(a){var c=document.createElement("input");c.type="hidden";c.name=a.name;c.value=a.value;var b=dojo.html.getParentByType(a,"form");b.appendChild(c);b.submit()},getParentNode:function(d,c){var a=dojo.doc;var b=dojo.byId(d);c=c.toLowerCase();while((b)&&(b.nodeName.toLowerCase()!=c)){if(b==(a.body||a.documentElement)){return null}b=b.parentNode}return b}});dojo.provide("atg.store.widget.RichCartSummaryItem");dojo.require("dijit._Widget");dojo.require("dijit._Templated");dojo.declare("atg.store.widget.RichCartSummaryItem",[dijit._Widget,dijit._Templated],{templatePath:contextPath+"/javascript/widget/template/richCartSummaryItem.html",data:null,startup:function(){if(this.data.oldPrice){this.oldPriceContainer.innerHTML=this.data.oldPrice;dojo.style(this.oldPriceContainer,"display","")}for(var b=0;b<this.data.properties.length;b++){var d=this.data.properties[b];var c=document.createElement("dt");var a=document.createElement("dd");c.innerHTML=d.name+this.i18n.labelSeparator;a.innerHTML="&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"+d.value;this.propertiesContainer.appendChild(c);this.propertiesContainer.appendChild(a)}if(this.data.availability){this.availabilityContainer.innerHTML=this.data.availability}else{dojo.style(this.availabilityContainer,"display","none")}if(!this.data.linkItem){this.imageLink.parentNode.replaceChild(this.imageLink.firstChild,this.imageLink);this.titleLink.parentNode.replaceChild(this.titleLink.firstChild,this.titleLink)}},highlight:function(){},scrollIntoView:function(){var e=this.domNode;var l=e.parentNode;var h=l.parentNode;var a=dojo._getContentBox(h).h;var k=dojo._abs(h).y+Math.ceil(a/2);var b=dojo._getContentBox(e).h;var i=dojo._abs(e).y+Math.ceil(b/2);var c=i-k;var g=0;var j=l.scrollHeight-dojo._getContentBox(l).h;var d=l.scrollTop;d+=c;d=(d<g)?g:d;d=(d>j)?j:d;var f=this.smoothScroll(l,l.scrollTop,d,this.scrollDuration);f.play()},smoothScroll:function(b,d,a,e){var c=new dojo._Animation({beforeBegin:function(){delete this.curve;c.curve=new dojo._Line(d,a)},onAnimate:function(f){b.scrollTop=f},duration:e});return c}});
