MACYS.namespace("MACYS.addToRegistry");MACYS.addToRegistry.weddingAddToRegistryUrl="/registry/wedding/addtoregistry";MACYS.addToRegistry.viewRegistryUrl="/registry/wedding/registrant";MACYS.addToRegistry.registrySignIn="/registry/wedding/registrysignin";MACYS.addToRegistry.registryClaim="";MACYS.addToRegistry.button=function(a){this.button=YAHOO.util.Dom.get(a);YAHOO.util.Dom.removeClass(this.button,"hidden");YAHOO.util.Event.addListener(this.button,"click",this.click,this,true);this.busy=false;if(YAHOO.util.Dom.hasClass(this.button.parentNode.parentNode,"master_bag_buttons")){this.validate=this.validateMaster}};MACYS.addToRegistry.button.prototype.click=function(a){MACYS.addToRegistry.registryClaim="";YAHOO.util.Event.preventDefault(a);if(this.busy){return}this.busy=true;MACYS.loading.show();this.validate()};MACYS.addToRegistry.button.prototype.validateMaster=function(){var f=MACYS.pdp.masterTab.getActiveTabName();var c="masterTable";if(f){c=f+"_content"}var g=YAHOO.util.Dom.getElementsByClassName("masterPdpMemberPrice","td",YAHOO.util.Dom.get(c));var e=[];var b=(window.location.href.indexOf("registry/wedding")!=-1)?"MWEDD_"+document.productAttributeDropdown.CategoryID.value:document.productAttributeDropdown.CategoryID.value;for(var a=0;a<g.length;a++){var d=this._getProduct(g[a].parentNode);if(typeof(d)=="string"){this.removeBusy();MACYS.addToRegistry.hideErrMsg();MACYS.addToRegistry.showErrMsg(d);return}if(d){d.name=YAHOO.util.Dom.getElementsByClassName("productThumbDesc","h2",g[a].parentNode)[0].innerHTML;e.push(d);cmCreateConversionEventTag(d.ID,1,"Add to Registry",d.Quantity,"-_--_-"+d.price+"-_-"+YAHOO.util.Dom.get("coremetricsDepthPath").value+"-_-"+d.name)}}if(e&&e.length>0){YAHOO.util.Connect.asyncRequest("POST",MACYS.addToRegistry.weddingAddToRegistryUrl+MACYS.addToRegistry.registryClaim,{success:this.handleJsonResponse,failure:function(h){this.removeBusy();MACYS.addToRegistry.hideErrMsg();MACYS.addToRegistry.showErrMsg("We're Sorry, We're experiencing a temporary problem updating your registry. Please refresh the page and try again.")},scope:this,argument:e},this.buildProductPost(e))}else{this.removeBusy();MACYS.addToRegistry.hideErrMsg();MACYS.addToRegistry.showErrMsg("Please ensure that you have selected at least one item that you are trying to add. Then click Add to Registry again.")}};MACYS.addToRegistry.button.prototype.validate=function(){var a=this._getProduct(YAHOO.util.Dom.get("Quantity0").parentNode.parentNode);if(a){a.ID=YAHOO.util.Dom.get("productId").value;a.name=YAHOO.util.Dom.getElementsBy(function(){return true},"h1")[0].innerHTML;var b=[a];cmCreateConversionEventTag(a.ID,1,"Add to Registry",a.Quantity,"-_--_-"+a.price+"-_-"+YAHOO.util.Dom.get("coremetricsDepthPath").value+"-_-"+a.name);YAHOO.util.Connect.asyncRequest("POST",MACYS.addToRegistry.weddingAddToRegistryUrl+MACYS.addToRegistry.registryClaim,{success:this.handleJsonResponse,failure:function(c){this.removeBusy();MACYS.addToRegistry.hideErrMsg();MACYS.addToRegistry.showErrMsg("We're Sorry, We're experiencing a temporary problem updating your registry. Please refresh the page and try again.")},scope:this,argument:b},this.buildProductPost(b))}else{this.removeBusy();MACYS.addToRegistry.hideErrMsg();MACYS.addToRegistry.showErrMsg("Please ensure that you have selected a color/size/type for the item that you are trying to add. Then click Add to Registry again.")}};MACYS.addToRegistry.button.prototype._getProduct=function(g){var b,f={};var e=/[0-9]/;var d=YAHOO.util.Dom.getElementsBy(function(h){if(h.nodeName=="INPUT"||h.nodeName=="SELECT"){return true}return false},null,g);var a=false;for(var c=0;c<d.length;c++){if(d[c].name.charAt(0).match(e)){continue}if(d[c].id){b=d[c].id.split(e)[0]}else{b=d[c].name.split(e)[0]}if(!b){continue}if(d[c].value!="NOSELECTION"){f[b]=d[c].value||"NA"}else{a=true}}if(a){if(f.Quantity&&f.Quantity!="NA"){return"Please select a color, size, and/or type"}else{return false}}if(!f.color){f.color="NA"}if(f.Quantity&&f.Quantity!="NA"&&f.type&&f.size&&f.price){return f}return false};MACYS.addToRegistry.button.prototype.buildProductPost=function(f){var a=[],e=[],c=[],g=[],d=[];for(var b=0;b<f.length;b++){a.push(f[b].color);e.push(f[b].size);c.push(f[b].type);g.push(f[b].Quantity);d.push(f[b].ID)}return"productId="+d.join(",")+"&color="+a.join(",")+"&size="+e.join(",")+"&type="+c.join(",")+"&quantity="+g.join(",")};MACYS.addToRegistry.button.prototype.handleJsonResponse=function(d){this.removeBusy();MACYS.addToRegistry.hideErrMsg();try{var l=MACYS.addToRegistry.showErrMsg;var f=MACYS.addToRegistry.overlay;var k=0;var c={};c=YAHOO.lang.JSON.parse(d.responseText);if(c&&c.HAS_REGISTRY){if(c.HAS_REGISTRY=="NO"){MACYS.addToRegistry.overlayClaim.show();return}}else{if(c&&c.REDIRECT){window.location=c.REDIRECT;return}}if(c.ERROR_MSG){if(c.LIMIT_EXCEEDED){this.handleExceededLimit(c.LIMIT_EXCEEDED,c.ERROR_MSG)}else{l(c.ERROR_MSG)}MACYS.pdp.resetForm();return}if(c.LIMIT_EXCEEDED){k=parseInt(c.LIMIT_EXCEEDED_SIZE)||"";this.handleExceededLimit(c.LIMIT_EXCEEDED)}if(!c.nonRegistrableUPCs&&(!c.registrantInfo||!c.imgMap)){if(!MACYS.addToRegistry.limitExceeded){l("We're Sorry, We're experiencing a temporary problem updating your registry. Please refresh the page and try again.")}MACYS.pdp.resetForm();return}else{if(c.nonRegistrableUPCs&&(!c.registrantInfo||!c.imgMap)){this.handleNonRegUPCResponse(c);return}}var o=document.productAttributeDropdown.CategoryID.value;var a="Add_To_Registry_MCOM";if(window.location.href.indexOf("registry/wedding")!=-1){o="MWEDD_"+o;a="Add_To_Registry_MWEDD"}f.clearProducts();f.setRegistryId(c.registrantInfo.registryId);var b=0;for(var g=0;g<d.argument.length;g++){if(c.imgMap[d.argument[g].ID]){if(c.LIMIT_EXCEEDED){var h=false;var n=c.LIMIT_EXCEEDED;for(var e=0;e<n.length;e++){if(n[e]==d.argument[g].ID){h=true;break}}if(h){continue}}cmCreateConversionEventTag(d.argument[g].ID,2,"Add to Registry",d.argument[g].Quantity,"-_--_-"+d.argument[g].price+"-_-"+YAHOO.util.Dom.get("coremetricsDepthPath").value+"-_-"+d.argument[g].name);b+=parseInt(d.argument[g].Quantity);var p=f.addProduct(c.imgMap[d.argument[g].ID],d.argument[g])}}if(c.nonRegistrableUPCs&&c.nonRegistrableCount>0){if(k!=""){f.setAddedCount(b,c.nonRegistrableCount+k)}else{f.setAddedCount(b,c.nonRegistrableCount)}this.handleNonRegUPCResponse(c)}else{if(k!=""){f.setAddedCount(b,k)}else{f.setAddedCount(b,0)}}YAHOO.util.Dom.addClass(p,"noborder");if(b){f.setRegistryLink(c);f.show();cmCreatePageviewTag(a,o,"","",getMMCVendor(),getMMCCategory(),getMMCPlacement(),getMMCItem(),getLinkShareID(),thisUser.getMachID(),getReferrerURL())}else{l("We're Sorry, We're experiencing a temporary problem updating your registry. Please refresh the page and try again.")}MACYS.pdp.resetForm()}catch(m){l("We're Sorry, We're experiencing a temporary problem updating your registry. Please refresh the page and try again.");MACYS.pdp.resetForm();return}};MACYS.addToRegistry.button.prototype.handleExceededLimit=function(a,c){MACYS.addToRegistry.limitExceeded=true;if(a.length==1){if(!c){MACYS.addToRegistry.showErrMsg(null,"We're sorry. You've exceeded the maximum quantity allowed for this item. Please select a lower quantity for this item or select a new item.")}else{MACYS.addToRegistry.showErrMsg(null,c)}}else{if(a.length>1){if(!c){MACYS.addToRegistry.showErrMsg(null,"We're sorry. You've exceeded the maximum quantity allowed for these items. Please select a lower quantity for these items or select a new item.")}else{MACYS.addToRegistry.showErrMsg(null,c)}}}for(var b=0;b<a.length;b++){if(YAHOO.util.Dom.get("limitExceededUpcMarker_"+a[b])){YAHOO.util.Dom.setStyle("limitExceededUpcMarker_"+a[b],"display","block")}}};MACYS.addToRegistry.button.prototype.handleNonRegUPCResponse=function(c){var b=new Array();var a=new Array();for(var f=0;f<c.nonRegistrableUPCs.length;f++){var h=c.nonRegistrableUPCs[f];var g=h.substring(0,h.indexOf(","));var e=h.substring(h.indexOf(",")+1);b.push(g);a.push(e)}if(b.length!=0&&a.length!=0){for(var f=0;f<b.length;f++){if(YAHOO.util.Dom.get("nonRegUpcMarker_"+b[f])){YAHOO.util.Dom.setStyle("nonRegUpcMarker_"+b[f],"display","block")}}if(c&&c.nonRegistrableCount==1){MACYS.addToRegistry.showErrMsg("We're sorry. 1 item has not been added to your registry because it's unavailable for purchase on Macy's Wedding Registry.")}else{if(c&&c.nonRegistrableCount>1){var d="We're sorry. "+c.nonRegistrableCount+" items have not been added to your registry because these are unavailable for purchase on Macy's Wedding Registry.";MACYS.addToRegistry.showErrMsg(d)}}}MACYS.pdp.resetForm()};MACYS.addToRegistry.button.prototype.removeBusy=function(){this.busy=false;MACYS.loading.hide()};MACYS.addToRegistry.overlay=(function(){var a={};a.init=function(){YAHOO.util.Dom.removeClass(YAHOO.util.Dom.get("addToRegistryModal"),"hidden");this.panel=new YAHOO.widget.Panel("addToRegistryModal",{modal:true,underlay:false,draggable:false,close:false});this.panel.render();this.panel.hide();YAHOO.util.Event.addListener(YAHOO.util.Dom.getElementsByClassName("registryClose","a",this.panel.element),"click",this.hide,this,true);YAHOO.util.Event.addListener("continueShopping","click",this.hide,this,true);YAHOO.util.Event.addListener("viewRegistry","click",this.goToRegistry,this,true)};a.show=function(){this.panel.show();this.panel.center()};a.hide=function(b){if(b){YAHOO.util.Event.preventDefault(b)}this.panel.hide()};a.goToRegistry=function(b){if(b){YAHOO.util.Event.preventDefault(b)}if(this.registryId){window.location=MACYS.addToRegistry.viewRegistryUrl}this.hide();MACYS.loading.show()};a.setRegistryLink=function(c){var b=YAHOO.util.Dom.getElementsByClassName("registryLink","a",this.panel.element)[0];if(c.registrantInfo){b.innerHTML=c.registrantInfo.registrantName+" & "+c.registrantInfo.coRegistrantName+"'s registry"}};a.setAddedCount=function(c,d){var b=YAHOO.util.Dom.getElementsByClassName("totalQtyInfo","span",this.panel.element);if(b&&b.length>0){b[0].innerHTML=(c==1?"1 item has":c+" items have")+" been added to your registry"}if(d>0){b=YAHOO.util.Dom.getElementsByClassName("nonRegQtyInfoDiv","div",this.panel.element)[0];if(b){YAHOO.util.Dom.removeClass(b,"hidden");b=YAHOO.util.Dom.getElementsByClassName("nonRegQtyInfoSpan","span",this.panel.element)[0];if(b){b.innerHTML=(d==1?"1 item has ":d+" items have ")+"not been added to your registry"}}}else{b=YAHOO.util.Dom.getElementsByClassName("nonRegQtyInfoDiv","div",this.panel.element)[0];if(b){YAHOO.util.Dom.addClass(b,"hidden")}}};a.setRegistryId=function(b){this.registryId=b};a.addProduct=function(f,e){var c=document.createElement("tr");var b=document.createElement("td");b.innerHTML='<div class="itemImg"><img border="1" width="60" src="'+MACYS.config.Base.imageUrl+f+'?wid=60"/></div><div class="itemName">'+e.name+"</div><ul>"+(e.color!="NA"?'<li class="itemColor">Color: <span>'+e.color+"</span></li>":"")+(e.size!="NA"?'<li class="itemSize">Size: <span>'+e.size+"</span></li>":"")+(e.type!="NA"?'<li class="itemType">Type: <span>'+e.type+"</span></li></ul>":"");c.appendChild(b);b=document.createElement("td");b.innerHTML="$"+e.price;c.appendChild(b);b=document.createElement("td");b.innerHTML=e.Quantity;c.appendChild(b);var d=YAHOO.util.Dom.getElementsByClassName("itemsTable","div",this.panel.element)[0];d=YAHOO.util.Dom.getElementsBy(function(){return true},"tr",d)[0].parentNode;return d.appendChild(c)};a.clearProducts=function(){var c=YAHOO.util.Dom.getElementsByClassName("itemsTable","div",this.panel.element)[0];var d=YAHOO.util.Dom.getElementsBy(function(){return true},"tr",c)[0];var b=YAHOO.util.Dom.getNextSibling(d);while(b){if(b.nodeName=="TR"){b.parentNode.removeChild(b)}else{break}b=YAHOO.util.Dom.getNextSibling(d)}};return a})();MACYS.addToRegistry.overlayClaim=(function(){var a={};a.init=function(){YAHOO.util.Dom.removeClass(YAHOO.util.Dom.get("registryClaim"),"hidden");this.panel=new YAHOO.widget.Panel("registryClaim",{modal:true,underlay:false,draggable:false,close:false});this.panel.render();this.panel.hide();YAHOO.util.Event.addListener(YAHOO.util.Dom.getElementsByClassName("registryClaimClose","a",this.panel.element),"click",this.hide,this,true);YAHOO.util.Event.addListener("accessRegistryButton","click",this.goToClaim,this,true);YAHOO.util.Event.addListener("createRegistryButton","click",this.goToCreate,this,true)};a.show=function(){this.panel.show();this.panel.center()};a.hide=function(b){if(b){YAHOO.util.Event.preventDefault(b)}this.panel.hide()};a.goToClaim=function(c){if(c){YAHOO.util.Event.preventDefault(c)}this.hide();var b=YAHOO.util.Dom.get("registryClaimForm");if(b){b.action=MACYS.addToRegistry.weddingAddToRegistryUrl+"?registryClaim=YES";b.submit()}return};a.goToCreate=function(c){if(c){YAHOO.util.Event.preventDefault(c)}this.hide();var b=YAHOO.util.Dom.get("registryClaimForm");if(b){b.action=MACYS.addToRegistry.weddingAddToRegistryUrl+"?registryClaim=NO";b.submit()}return};return a})();YAHOO.util.Event.onDOMReady(function(){MACYS.addToRegistry.overlay.init();MACYS.addToRegistry.overlayClaim.init();new MACYS.addToRegistry.button("ADDTOREGISTRY_BUTTON")});MACYS.addToRegistry.showErrMsg=function(b,a){window.scroll(0,0);YAHOO.util.Dom.setStyle("genErrMsgDiv","display","none");if(!this.limitExceeded){YAHOO.util.Dom.setStyle("splErrMsgDiv","display","none")}YAHOO.util.Dom.setStyle("errMsgDiv","display","block");if(b){YAHOO.util.Dom.get("errMsg").innerHTML=b;YAHOO.util.Dom.setStyle("genErrMsgDiv","display","block")}if(a){YAHOO.util.Dom.get("splErrMsg").innerHTML=a;YAHOO.util.Dom.setStyle("splErrMsgDiv","display","block")}};MACYS.addToRegistry.hideErrMsg=function(){YAHOO.util.Dom.get("errMsg").innerHTML="";YAHOO.util.Dom.setStyle("errMsgDiv","display","none");YAHOO.util.Dom.setStyle("genErrMsgDiv","display","none");YAHOO.util.Dom.setStyle("splErrMsgDiv","display","none");YAHOO.util.Dom.setStyle(YAHOO.util.Dom.getElementsByClassName("nonRegErrorIcon"),"display","none")};