var Bag=Class.create({id:"bag",domNode:null,dialog:null,initialize:function(id){if(id){this.id=id;}this.domNode=$(this.id);this.dialog=new Dialog.Box(this.id);this._observeCompleteOrderForm();},_observeCompleteOrderForm:function(){if($("completeOrderForm")){$("completeOrderForm").observe("submit",this.onCompleteOrderFormSubmit.bind(this));}},onCompleteOrderFormSubmit:function(){Form.Element.disable($("completeOrderButton"));$("completeOrderButton").hide();},_getCountryName:function(){return $("country").childNodes[$("country").selectedIndex].innerHTML;},onCountryChanged:function(_1){Event.stop(_1);var _2=this._getCountryName();if(_2=="United States"){$("postalCode").value="";$("postalCodeRow").show();if($("shipping")){$("shipping").hide();}$("checkoutButton").hide();$("postalCode").focus();this._showPostalAlertArrow();}else{$("postalCodeRow").hide();$("postalCode").clear();this._updateOrder(this.handleCountryChangedResponse.bind(this));}},handleCountryChangedResponse:function(){this.stopLoading();if(!this._focusOnPostalCode()){$("country").focus();}},_focusOnPostalCode:function(){var _3=false;if($("postalCodeRow")&&$("postalCodeRow").style.display!="none"){_3=true;$("postalCode").focus();}return _3;},onPostalCodeChanged:function(_4){Event.stop(_4);if(Form.Element.present("postalCode")){this.startLittleLoading();new Ajax.Updater("bagContents",contextPath+"/bag/postalCode",{parameters:{country:$F("country"),postalCode:$F("postalCode")},onComplete:this.handlePostalCodeChangedResponse.bind(this)});}else{$("checkoutButton").hide();$("shippingMethod").hide();this._showPostalAlertArrow();$("postalCode").focus();}},onPostalCodeKeyPressed:function(_5){if(_5.keyCode==13){Event.stop(_5);this.onPostalCodeChanged(_5);}},onShippingMethodChanged:function(){this.startLittleLoading();new Ajax.Updater("bagContents",contextPath+"/bag/shippingMethod",{parameters:$("bagForm").serialize(true),onComplete:this.handleUpdateShippingMethodResponse.bind(this)});},handlePostalCodeChangedResponse:function(){this.stopLoading();if(!Form.Element.present("postalCode")){$("postalCode").focus();}else{$("shippingMethod").focus();}},handleUpdateShippingMethodResponse:function(){this.stopLoading();$("shippingMethod").focus();},addItem:function(){this.showNoReload();this.startLoading();var _6=[];var _7=$("productSlug").value;var _8={productSlug:_7};if($("hiddenGender")){_6.push($("hiddenGender").value);}if($("colors")){_6.push($("colors").value);}if($("sizes")){_6.push($("sizes").value);}if(_6.length>0){_8.facetValueNames=_6;}new Ajax.Updater("bagContents",contextPath+"/bag/addItem",{parameters:_8,onComplete:this.handleAddItemResponse.bind(this,true)});},removeItem:function(_9){this.startLoading();new Ajax.Updater("bagContents",contextPath+"/bag/removeItem",{parameters:{sku:_9},onComplete:this.stopLoading.bind(this)});},removeBackorderedItems:function(_a){this.startLoading();new Ajax.Updater("bagContents",contextPath+"/bag/removeBackorderedItems",{parameters:{orderItemId:_a},onComplete:this.stopLoading.bind(this)});},empty:function(){this.startLoading();new Ajax.Updater("bagContents",contextPath+"/bag/empty",{onComplete:this.handleEmptyBagResponse.bind(this)});},handleEmptyBagResponse:function(){this.stopLoading();if(window.location.href.indexOf("/checkout")!=-1){window.location.href=contextPath+"/checkout/emptyBag";}},update:function(_b){Event.stop(_b);this._updateOrder(this._focusOnFirstOrderItem.bind(this));},_focusOnFirstOrderItem:function(){this.stopLoading();$("bagForm").elements[0].focus();},reload:function(){this.startLoading();new Ajax.Updater("bagContents",contextPath+"/bag/contents",{method:"GET",onComplete:this.handleReloadResponse.bind(this)});},handleReloadResponse:function(){this._focusOnFirstOrderItem();},checkout:function(_c){if(this.reloadSummary()){Event.stop(_c);this.hide();}else{window.location.href=contextPath+"/checkout";}},showNoReload:function(){this.dialog.show();},hide:function(){this.dialog.hide();},show:function(_d){if(typeof _d!="undefined"){this.startupFocusNode=_d;}this.dialog.show();this.reload();},startLoading:function(){$("loading").show();$("bagContents").hide();if($("bagForm")){$("bagForm").stopObserving("submit");}},startLittleLoading:function(){$("littleLoader").show();},handleAddItemResponse:function(){this.stopLoading();this._focusOnPostalCode();},stopLoading:function(){$("loading").hide();$("bagContents").show();if($("bagForm")){$("grouponExample").hide();$("dealVogueExample").hide();if($("discountType").value=="dealVogue"){this._showDealVoguePane();}else{if($("discountType").value=="groupon"){this._showGrouponPane();}else{this._showDiscountPane();}}$("littleLoader").hide();$("bagForm").observe("submit",this.update.bindAsEventListener(this));$("updateButton").observe("click",this.update.bindAsEventListener(this));$("shopButton").observe("click",this.onShopButtonPressed.bindAsEventListener(this));$("discountTab").observe("click",this.onDiscountTabClicked.bind(this));$("grouponTab").observe("click",this.onGrouponTabClicked.bind(this));$("grouponHelpIcon").observe("click",this.onGrouponHelpClicked.bind(this));$("closeGrouponExampleButton").observe("click",this.onCloseGrouponExampleButtonClicked.bindAsEventListener(this));$("dealVogueTab").observe("click",this.onDealVogueTabClicked.bind(this));$("dealVogueHelpIcon").observe("click",this.onDealVogueHelpClicked.bind(this));$("closeDealVogueExampleButton").observe("click",this.onCloseDealVogueExampleButtonClicked.bindAsEventListener(this));$("selectedDiscount").observe("change",this.onDiscountCodeChanged.bindAsEventListener(this));$("selectedDiscount").observe("keypress",this.onDiscountCodeKeyPressed.bindAsEventListener(this));$("selectedGroupon").observe("change",this.onGrouponNumberChanged.bindAsEventListener(this));$("selectedGroupon").observe("keypress",this.onGrouponNumberKeyPressed.bindAsEventListener(this));$("grouponRedemptionCode").observe("change",this.onGrouponRedemptionCodeChanged.bindAsEventListener(this));$("grouponRedemptionCode").observe("keypress",this.onGrouponRedemptionCodeKeyPressed.bindAsEventListener(this));$("selectedDealVogue").observe("change",this.onDealVogueNumberChanged.bindAsEventListener(this));$("selectedDealVogue").observe("keypress",this.onDealVogueNumberKeyPressed.bindAsEventListener(this));$("country").observe("change",this.onCountryChanged.bindAsEventListener(this));$("postalCode").observe("change",this.onPostalCodeChanged.bindAsEventListener(this));$("postalCode").observe("keypress",this.onPostalCodeKeyPressed.bindAsEventListener(this));$("checkoutButton").observe("click",this.checkout.bindAsEventListener(this));if($("shippingMethod")){$("shippingMethod").observe("change",this.onShippingMethodChanged.bind(this));}if(this._getCountryName()=="United States"){$("postalCodeRow").show();this._showPostalAlertArrow();}else{$("postalCodeRow").hide();}if(this._getCountryName()=="United States"&&!Form.Element.present("postalCode")){$("checkoutButton").hide();}}else{if($("outOfStock")){$("viewBagButton").observe("click",this.reload.bind(this));}}if(this.reloadSummary()){$("shopButton").hide();}this.reloadMiniBag();if(this.startupFocusNode&&$(this.startupFocusNode)){$(this.startupFocusNode).focus();delete this.startupFocusNode;}},_showPostalAlertArrow:function(){if(Form.Element.present("postalCode")){$("postalAlertArrow").hide();}else{$("postalAlertArrow").show();}},onDiscountCodeChanged:function(_e){Event.stop(_e);this._updateOrder(this.handleDiscountCodeChangedResponse.bind(this));},onDiscountCodeKeyPressed:function(_f){if(_f.keyCode==13){Event.stop(_f);this.onDiscountCodeChanged(_f);}},onGrouponNumberChanged:function(_10){Event.stop(_10);if(Form.Element.present("grouponRedemptionCode")){this._updateOrder(this.handleGrouponResponse.bind(this));}},onGrouponNumberKeyPressed:function(_11){if(_11.keyCode==13){Event.stop(_11);this.onGrouponNumberChanged(_11);}},onGrouponRedemptionCodeChanged:function(_12){Event.stop(_12);if(Form.Element.present("selectedGroupon")){this._updateOrder(this.handleGrouponResponse.bind(this));}},onGrouponRedemptionCodeKeyPressed:function(_13){if(_13.keyCode==13){Event.stop(_13);this.onGrouponRedemptionCodeChanged(_13);}},onDealVogueNumberChanged:function(_14){Event.stop(_14);this._updateOrder(this.handleDealVogueResponse.bind(this));},onDealVogueNumberKeyPressed:function(_15){if(_15.keyCode==13){Event.stop(_15);this.onDealVogueNumberChanged(_15);}},onDiscountTabClicked:function(){this._showDiscountPane();this._updateOrder(this.handleDiscountCodeChangedResponse.bind(this));},onGrouponTabClicked:function(){this._showGrouponPane();this._updateOrder(this.handleDiscountCodeChangedResponse.bind(this));},onGrouponHelpClicked:function(){$("grouponExample").show();},onCloseGrouponExampleButtonClicked:function(_16){Event.stop(_16);$("grouponExample").hide();},onDealVogueTabClicked:function(){this._showDealVoguePane();this._updateOrder(this.handleDiscountCodeChangedResponse.bind(this));},onDealVogueHelpClicked:function(){$("dealVogueExample").show();},onCloseDealVogueExampleButtonClicked:function(_17){Event.stop(_17);$("dealVogueExample").hide();},_showDiscountPane:function(){$("discountType").value="discount";$("discountPane").show();$("dealVoguePane").hide();$("grouponPane").hide();},_showGrouponPane:function(){$("discountType").value="groupon";$("discountPane").hide();$("dealVoguePane").hide();$("grouponPane").show();},_showDealVoguePane:function(){$("discountType").value="dealVogue";$("discountPane").hide();$("grouponPane").hide();$("dealVoguePane").show();},handleGrouponResponse:function(){this.stopLoading();$("grouponRedemptionCode").focus();},handleDealVogueResponse:function(){this.stopLoading();$("selectedDealVogue").focus();},handleDiscountCodeChangedResponse:function(){this.stopLoading();if($("discountType").value=="groupon"){$("selectedGroupon").focus();}else{if($("discountType").value=="dealVogue"){$("selectedDealVogue").focus();}else{$("selectedDiscount").focus();}}},onShopButtonPressed:function(_18){Event.stop(_18);this.hide();},_updateOrder:function(_19){if(typeof _19=="undefined"){_19=this.stopLoading.bind(this);}this.startLittleLoading();new Ajax.Updater("bagContents",contextPath+"/bag/update",{parameters:$("bagForm").serialize(true),onComplete:_19});},reloadSummary:function(){var _1a=$("bagSummary");if(_1a){new Ajax.Updater("bagSummary",contextPath+"/checkout/itemSummary",{onComplete:this._observeCompleteOrderForm.bind(this)});}return _1a;},reloadMiniBag:function(){var _1b=$("miniBag");if(_1b){new Ajax.Updater("miniBag",contextPath+"/bag/mini");}}});
