MACYS.namespace('MACYS.Storeavail');
var prodData = [];var storeData = [];var proxyServerName = "";var proxyServerPort = "";var ProxyServerPath = "/JSReqHandler";var serverName = "geocode.access.mapquest.com";var mqPort = "80";var mqPath = "mq";var mapServerName = "map.access.mapquest.com";var routeServerName = "route.access.mapquest.com";var storename;var street;var city;var state;var zvar;var storeCache = new MACYS.util.cache();var print_btn;var print_msg_ulogo = 'Find your item quickly in-store! Just hand this printout to one of our associates.';var cm_pg;if (typeof(furnitureOn)=='undefined') var furnitureOn = false;
MACYS.Storeavail.locator = (function(){    var self = {        currentStoreIdIndex: undefined,        isBusy: false,        furnitureOn: false,        CM_PageId: undefined,        productSize: 'none',        productColor: 'none',        productType: 'none',        prodJsonPath: '/store/storeavailability/index.ognc',        furnitureDeliveryZip: MACYS.util.Cookie.get('FurnitureDeliveryZip', 'profile'),         profileZip: MACYS.util.Cookie.get('ProfileZip', 'profile'),        csa_desc: '<div>&#42;PLEASE NOTE: Prices and promotions may vary in stores.</div></p><p>We make every effort to give you current product availability information, but our store inventory is always changing, the stock status information is approximate, and an item\'s availability cannot be guaranteed. At this time, stores in Hawaii, Guam and Puerto Rico are not participating in this feature.',        fur_desc: '<div>&#42;PLEASE NOTE: Samples, prices and promotions may vary in stores.</div></p><p>Some samples listed as \"available\" may actually be represented in-store by another item from the same furniture collection. Our associates will be happy to help you with additional color options and configurations. Because our inventory is always changing, stock status and sample availability cannot be guaranteed.',        load: new YAHOO.widget.Panel("wait",               {width: "240px", fixedcenter: true, close: false, draggable: false, modal: true, visible: false, zindex: 3000})     };        self.init = function(){
        /* main body and listeners (find in store buttons) */        var findItInStoreButtons = YAHOO.util.Dom.getElementsByClassName('sa-main');        YAHOO.util.Event.addListener(findItInStoreButtons, "click", this.openOverlay, this, true);        this.masterTable = YAHOO.util.Dom.get("masterTable");        this.pdpFlashImage = YAHOO.util.Dom.get("productFlash");        var em = document.createElement('div');        em.className = 'error-msg';        var lcc = YAHOO.util.Dom.get("localContentContainer");        this.errorMessageContainer = lcc.insertBefore(em, lcc.firstChild);                /* the overlay (and overlay header) */        this.SAOverlay = YAHOO.util.Dom.get('storeav-oy');        this.saModal = new YAHOO.widget.Overlay(this.SAOverlay, {constraintoviewport: true, close:false, visible:false, fixedcenter:false, width:"600px"});        this.saModal.render();        this.closeBtn = YAHOO.util.Dom.getElementsByClassName("close", 'a', this.SAOverlay)[0];        YAHOO.util.Event.addListener(this.closeBtn, "click", closeModal);        this.title = YAHOO.util.Dom.get('stp-ttl');        this.overlayErrorMessageContainer = this.topOverlayErrorMessageContainer = YAHOO.util.Dom.getElementsByClassName("error-msg", 'div', this.SAOverlay)[0];        this.productData = YAHOO.util.Dom.get("prod-data");        this.productImage = YAHOO.util.Dom.getElementsBy(function(){return true;}, "img", this.productData)[0];        this.productDataList = YAHOO.util.Dom.getElementsBy(function(){return true;}, "ul", this.productData)[0];                /* set the legal text */        YAHOO.util.Dom.get("ftr-txt-prt").innerHTML = (furnitureOn?this.fur_desc:this.csa_desc);                /* zip / city, state entry from */        this.searchForm = YAHOO.util.Dom.get('srch-frm');         this.submitBtn = YAHOO.util.Dom.getElementsByClassName('submit-btn')[0];        this.printBtn = YAHOO.util.Dom.getElementsByClassName('print-btn')[0];        YAHOO.util.Event.addListener(this.submitBtn, "click", this.searchFormSubmit, this, true);        YAHOO.util.Event.addListener(this.printBtn, "click", printDate, true);                this.changeStoreLink = '<a href="javascript: MACYS.Storeavail.locator.changeStores();" id="change-store">change store<\/a>';        this.updateDiv = YAHOO.util.Dom.get('saData');                this.furnitureZip = (MACYS.util.Cookie.get('FurnitureSampleZip', 'profile') || this.furnitureDeliveryZip || this.profileZip || '');        this.inStoreZip = (MACYS.util.Cookie.get('InStoreZip', 'profile') || this.profileZip || this.furnitureDeliveryZip || this.furnitureZip || '');                if (furnitureOn){            this.currentZip = this.furnitureZip;            this.CMconvEvId = "Furniture Sample Finder";        } else {            this.currentZip = this.inStoreZip;            this.CMconvEvId = "Check Store Availability";            var barcode_trk = YAHOO.util.Dom.getElementsByClassName('bc-img', 'div', 'bc-trk')[0];         	this.barcode_img = YAHOO.util.Dom.getElementsBy(function(){return true;}, 'img', barcode_trk)[0];        	this.barcode_img_src = "";        }        this.selectedStoreZip = null;                if (this.currentZip) { /* if we have a zip in the cookie we should display 'confirm' */            this.title.innerHTML = "Please confirm your ZIP Code";            this.submitBtn.innerHTML = "CONFIRM";        }                this.zipFormField = YAHOO.util.Dom.get("f1Zip");        this.cityFormField = YAHOO.util.Dom.get("f1City");        this.stateFormField = YAHOO.util.Dom.get("f1State");                /* store listings */        this.storeList = YAHOO.util.Dom.get("storeListings");         this.storeListings = YAHOO.util.Dom.getElementsByClassName("sd-box", 'div', this.storeList)[0];                /* mapquest store location */        this.storeLocation = YAHOO.util.Dom.get("storeLocation");        YAHOO.util.Event.addListener("getdir", "click", validateRoutForm, true);        var formItems = YAHOO.util.Dom.getElementsBy(function(node){if (node.nodeName.match(new RegExp("(input)|(select)", "i")))return true;return false;},null,this.storeLocation);        var keyListener = new YAHOO.util.KeyListener(formItems, {keys: 13}, { fn:validateRoutForm });        keyListener.enable();        this.storeDirectionsOverlayErrorMessageContainer = YAHOO.util.Dom.getElementsByClassName("error-msg", 'div', this.storeLocation)[0]                /* mapquest directions */        this.storeDirections = YAHOO.util.Dom.get("storeDirections");                /* the spinning weasel / loader */        this.load.setHeader("Loading, please wait...");        this.load.setBody("<img src='" + MACYS.config.Base.assetsUrl + "/img/rel_interstitial_loading.gif'/>");        this.load.render(document.body);
        /* create panel widget for more store hours */        this.moreHoursPanel = new YAHOO.widget.Panel("moreHoursPanel", { width:"250px", height:"190px", visible:false, draggable:false, y:0, zIndex:30 } );        this.moreHoursPanel.setHeader("More store hours");        this.moreHoursPanel.setBody("");        this.moreHoursPanel.render(document.body);    }        self.hideOverlay = function() {        MACYS.util.Dom.hideTransparentLayer();        this.moreHoursPanel.hide();        YAHOO.util.Dom.addClass(this.SAOverlay, 'hidden');        this.saModal.hide();        this.load.hide();        this.pdpFlashImage.style.visibility = 'visible';    }    self.showOverlay = function() {        MACYS.util.Dom.showTransparentLayer(20);        YAHOO.util.Dom.removeClass(this.SAOverlay, 'hidden');        this.saModal.show();        this.saModal.center();        this.load.show();        this.pdpFlashImage.style.visibility = 'hidden';    }        self.hideIframes = function() {    	this.load.hide();        this.iframeNodes = YAHOO.util.Dom.getElementsBy(function(node){if(node.style.display!='none')return true;}, 'iframe');        for (var i=0; i<this.iframeNodes.length; i++) {            this.iframeNodes[i].style.display = 'none';        }    }    self.showIframes = function() {        if (!this.iframeNodes) return;        for (var i=0; i<this.iframeNodes.length; i++) {            this.iframeNodes[i].style.display = '';        }    }        self.getPrintCssNode = function() {        var r = YAHOO.util.Dom.getElementsBy(function(node){if (node.href.toLowerCase()==MACYS.Storeavail.locator.printCSS.toLowerCase())return true; return false;}, 'link');        return r && r[0];    }        self.executePrintCss = function(printable) {        /* check to be sure the css is really there */        if (printable != true) printable = false;                var printCssLinkNode = this.getPrintCssNode();        if (printCssLinkNode) {            try {if (printCssLinkNode.sheet.cssRules.length > 1) printable = true; else printable = false;}catch(e){}            try {if (printCssLinkNode.styleSheet.rules) printable = true; else printable = false;}catch(e){}        }        if (YAHOO.env.ua.ie > 0) this.closeBtn.removeAttribute('style');        if (printable) {            window.print();            setTimeout(function(){var x = MACYS.Storeavail.locator.getPrintCssNode(); x.parentNode.removeChild(x); MACYS.Storeavail.locator.closeBtn.style.display='inline';}, 30000);        } else {            var self = this;            setTimeout(function(){self.executePrintCss(printCssLinkNode?true:false);}, 500);            return;        }    }        self.formDisabled = function(disable) {        var elements = YAHOO.util.Dom.getElementsBy(function(node){if (node.type =="text") return true; return false;}, 'input', this.SAOverlay);        elements = elements.concat(YAHOO.util.Dom.getElementsBy(function(){return true;}, 'select', this.SAOverlay));        for (var i=0; i < elements.length; i++) {            elements[i].disabled = disable;        }    }        self.busy = function() {        this.isBusy = true;        this.load.show();        this.formDisabled(true);    }    self.unbusy = function() {        this.isBusy = false;        this.load.hide();        this.formDisabled(false);        try{this.zipFormField.focus();}catch(e){}    }    self.displayError = function(err_msg) {        this.overlayErrorMessageContainer.innerHTML = err_msg;        YAHOO.util.Dom.removeClass(this.overlayErrorMessageContainer, "hidden");    }    self.removeError = function() {        this.overlayErrorMessageContainer.innerHTML = "";        YAHOO.util.Dom.addClass(this.overlayErrorMessageContainer, "hidden");    }        self.enablePrint = function() {        /* check if print button is already on */        if (YAHOO.util.Dom.hasClass(this.submitBtn, 'hidden') && !YAHOO.util.Dom.hasClass(this.printBtn, 'hidden')) return;        if (!this.printBtn2) {            var d = document.createElement('div');            d.className = 'print-btn button';            d.innerHTML = 'PRINT';            this.printBtn2 = this.productData.appendChild(d);            YAHOO.util.Event.addListener(this.printBtn2, "click", printDate, true);        }        YAHOO.util.Dom.addClass(this.submitBtn, 'hidden');        YAHOO.util.Dom.removeClass(this.printBtn, 'hidden');        YAHOO.util.Dom.removeClass(this.printBtn2, 'hidden');    }    self.disablePrint = function() {        if (!YAHOO.util.Dom.hasClass(this.submitBtn, 'hidden') && YAHOO.util.Dom.hasClass(this.printBtn, 'hidden')) return;        YAHOO.util.Dom.addClass(this.printBtn, 'hidden');        if(this.printBtn2) YAHOO.util.Dom.addClass(this.printBtn2, 'hidden');        YAHOO.util.Dom.removeClass(this.submitBtn, 'hidden');    }
    self.changeStores = function(){        YAHOO.util.Dom.addClass(this.searchForm, 'hidden');        YAHOO.util.Dom.addClass(this.storeLocation, 'hidden');        YAHOO.util.Dom.addClass(this.storeDirections, 'hidden');        YAHOO.util.Dom.removeClass(this.storeList, "hidden");        YAHOO.util.Dom.removeClass(this.printBtn2, 'hidden');        if (this.myMap) delete this.myMap;        YAHOO.util.Dom.get('map-div').innerHTML = "";        this.title.innerHTML = 'Search results for ' + this.resultLocation + '<a href="javascript: MACYS.Storeavail.locator.changeLocation();" id="chloc">change location<\/a>';        this.saModal.configWidth(null, ["600px"]);        this.saModal.center();        this.moreHoursPanel.hide();        this.removeError();        this.overlayErrorMessageContainer = this.topOverlayErrorMessageContainer;        if (YAHOO.env.ua.ie > 0) {           this.closeBtn.style.display = 'none';           this.closeBtn.style.position = 'absolute';           this.closeBtn.style.zIndex = 50;           this.closeBtn.style.display = 'inline';           this.closeBtn.style.position = 'relative';        }    }    self.changeLocation = function() {        YAHOO.util.Dom.removeClass(this.searchForm, 'hidden');        YAHOO.util.Dom.addClass(this.storeLocation, 'hidden');        YAHOO.util.Dom.addClass(this.storeDirections, 'hidden');        YAHOO.util.Dom.addClass(this.storeList, "hidden");        if (this.currentZip)            this.title.innerHTML = "Please confirm your ZIP Code";        else            this.title.innerHTML = 'Enter your Zip Code or City and State';        this.saModal.configWidth(null, ["600px"]);        this.saModal.center();        this.moreHoursPanel.hide();        this.disablePrint();        this.removeError();        this.overlayErrorMessageContainer = this.topOverlayErrorMessageContainer;        if (YAHOO.env.ua.ie > 0) {           this.closeBtn.style.display = 'none';           this.closeBtn.style.position = 'absolute';           this.closeBtn.style.zIndex = 50;           this.closeBtn.style.display = 'inline';           this.closeBtn.style.position = 'relative';        }    }        self.searchFormSubmit = function() {        if (this.isBusy) return;        this.busy();               var labelCity = YAHOO.util.Dom.getElementsByClassName('label-city', 'label', this.searchForm)[0];        var labelState = YAHOO.util.Dom.getElementsByClassName('label-state', 'label', this.searchForm)[0];        var labelZip = YAHOO.util.Dom.getElementsByClassName('label-zip', 'label', this.searchForm)[0];                var errorMessage = "";        var err_glob = document.getElementById('na-err');        this.removeError();        if(err_glob){            err_glob.parentNode.removeChild(err_glob);        }        YAHOO.util.Dom.removeClass(labelZip, 'error-msg');        YAHOO.util.Dom.removeClass(labelCity, 'error-msg');        YAHOO.util.Dom.removeClass(labelState, 'error-msg');                    if (this.zipFormField.value == '') {            if ( this.cityFormField.value == ''){ // no zip, no city                errorMessage = 'Please enter ZIP Code or City and State';                YAHOO.util.Dom.addClass(labelZip, 'error-msg');                YAHOO.util.Dom.addClass(labelCity, 'error-msg');                YAHOO.util.Dom.addClass(labelState, 'error-msg');            } else { // we have a city location                if (this.stateFormField.options[this.stateFormField.selectedIndex].value == 'NOSELECTION')  { // no state                    errorMessage = 'Please select State';                    YAHOO.util.Dom.addClass(labelState, 'error-msg');                }            }        } else { // we have a zip code            if (!this.zipFormField.value.match(/(^\d{5}$)|(^\d{5}-\d{4}$)/)) { // no zip or invalid zip                errorMessage = 'Sorry, we couldn\'t find ' + this.zipFormField.value + '. Please enter valid ZIP Code.';                YAHOO.util.Dom.addClass(labelZip, 'error-msg');            }        }            if (errorMessage != "") {            this.displayError(errorMessage);            this.unbusy();            cm('ERROR:' + errorMessage);            return false;        }                //if form validated post data and return json         this.currentZip = this.zipFormField.value;        var state = this.stateFormField.options[this.stateFormField.selectedIndex].value;        this.resultLocation = this.currentZip ? this.currentZip : this.cityFormField.value + ", " + state;        this.productSize = this.productSize || 'none';        this.productColor = this.productColor || 'none';        this.productType = this.productType || 'none';        if (prodData) {            var url = this.prodJsonPath + '?productID=' + prodData.productThumbnailVB.productId + '&size=' + this.productSize + '&color=' +                      this.productColor + '&type=' + this.productType + '&zipCode=' + this.currentZip + '&city=' +                       this.cityFormField.value + '&state=' + state + '&upcID=' + prodData.productThumbnailVB.upcId;                YAHOO.util.Connect.asyncRequest('POST', url, { success: successSendD, failure: failureSendD });        }    }        self.handleSuccessProdDet = function(o){        if(o.responseText !== undefined){             try {                 prodData = YAHOO.lang.JSON.parse(o.responseText);             }             catch (x) {                 alert("JSON Parse failed! no product data available" + x);                 return;             }             if(prodData.hasGlobalErrors){                 this.displayError(prodData.globalerrors);                 this.unbusy();                 this.formDisabled(true);                 YAHOO.util.Dom.addClass(this.submitBtn, 'hidden');             } else {                 showProdData(prodData);                 buildForm();             }        }    }    self.handleFailureProdDet = function(o){        if(o.responseText !== undefined){            var dd = document.getElementById('saData');            dd.innerHTML = '<p class="error-msg" id="tech-prb">We\'re sorry\; our site is experiencing technical difficulties. We\'re unable to provide this service at this time. Please try again later.</p>';        }        this.unbusy();    }        self.openOverlay = function(e) {        /* find it in store has been clicked, throw Coremetrics tag */        throwCreateConversionEventTag(this.CMconvEvId, 1, 'Find It In Store', 0);        this.CM_PageId = cmp_1; //coremetrix tracking
        /* first validate forms on the page for a properly selected product */        //if(col_lnk.className == 'sa-main chk-avail-lnk'){                var findItBtn = YAHOO.util.Event.getTarget(e);        var formContainer = (findItBtn.nodeName.toLowerCase()=='div'?findItBtn:findItBtn.parentNode).parentNode;        formContainer = formContainer.nodeName.toLowerCase()=='td'?formContainer.parentNode.previousSibling:formContainer.previousSibling;        if (formContainer.nodeType != 1) formContainer = formContainer.previousSibling;        var itemPattern = new RegExp("(color)|(type)|(size)");        var noSelection = new RegExp("(NOSELECTION)|(Select Color)|(Select Size)|(Select Type)");        var nodeType = new RegExp("(input)|(select)", "i");        if ((formContainer.id == "masterTable") || (formContainer.id == "order_detail")) { /* member page */           var nlst = YAHOO.util.Dom.getElementsBy(function(node){               if (node.nodeName && node.nodeName.match(nodeType) && node.id && node.id.match(itemPattern))                    return true;                    return false;               }, undefined, formContainer);        } else { /* master page */            this.selectedProductId = formContainer.id.split('_')[0].split('ID')[1];            var idPattern = new RegExp(this.selectedProductId);                        var nlst = YAHOO.util.Dom.getElementsBy(function(node){                if (node.nodeName && node.nodeName.match(nodeType) && node.id && node.id.match(idPattern) && node.id.match(itemPattern))                     return true;                 return false;            }, undefined, formContainer);        }        this.errorMessageContainer.innerHTML = "";        this.errorMessageContainer.style.display = "none";        for (var i=0; i < nlst.length; i++) {            var selectElem = nlst[i];            var sid = selectElem.id.match(itemPattern);            sid = sid && sid[0];            if (selectElem.value.match(noSelection)){                this.errorMessageContainer.style.display = "";                var errorPoint = YAHOO.util.Dom.getElementsByClassName('error-msg', 'div', selectElem.parentNode);                if (errorPoint.length==0)                    selectElem.parentNode.insertBefore(this.errorMessageContainer.cloneNode(true), selectElem).id = "err-sp";                this.errorMessageContainer.innerHTML = 'Please ensure that you have selected a ' + sid + ' for the item you are trying to find in-store.<br/>Then click FIND IT IN-STORE again.';                MACYS.util.Dom.setScrollTop(130);                return;            }            if(sid == "color")                this.productColor = selectElem.value;            else if(sid == "size")                this.productSize = selectElem.value;            else if(sid == "type")                this.productType = selectElem.value;            var err_sp = YAHOO.util.Dom.getElementsByClassName("error-msg", 'div', selectElem.parentNode);            if (err_sp.length) err_sp[0].parentNode.removeChild(err_sp[0]);        }        this.disablePrint();        if (this.currentZip)            this.title.innerHTML = "Please confirm your ZIP Code";        else            this.title.innerHTML = 'Enter your Zip Code or City and State';
        if (document.productAttributeDropdown && document.productAttributeDropdown.MasterID) {            prodId = this.selectedProductId;        } else {        //for individual product page            prodId = document.productAttributeDropdown.ID.value;        }        var callbackProdDet ={          success: this.handleSuccessProdDet,          failure: this.handleFailureProdDet,          scope: this        };        var url = this.prodJsonPath + '?productID=' + prodId + '&size=' + escape(this.productSize) + '&color=' + escape(this.productColor) + '&type=' + escape(this.productType);        YAHOO.util.Connect.asyncRequest('GET', url, callbackProdDet, null);
        this.showOverlay();        cm(this.CM_PageId);    }        return self;})();MACYS.onload(MACYS.Storeavail.locator.init, MACYS.Storeavail.locator, ['storeavail init'])
function closeModal(){    MACYS.Storeavail.locator.title.innerHTML = 'Enter your Zip Code or City and State';        var naErrC = document.getElementById('ftr-txt');    var naErr = document.getElementById('na-err');    if(naErr){        naErrC.removeChild(naErr);    }    YAHOO.util.Dom.removeClass(MACYS.Storeavail.locator.searchForm, 'hidden');    YAHOO.util.Dom.addClass(MACYS.Storeavail.locator.storeLocation, 'hidden');    YAHOO.util.Dom.addClass(MACYS.Storeavail.locator.storeDirections, 'hidden');    YAHOO.util.Dom.addClass(MACYS.Storeavail.locator.storeList, "hidden");    YAHOO.util.Dom.removeClass(MACYS.Storeavail.locator.printBtn2, 'hidden');        MACYS.Storeavail.locator.saModal.configWidth(null, ["600px"]);    MACYS.Storeavail.locator.saModal.center();        MACYS.Storeavail.locator.removeError();    MACYS.Storeavail.locator.overlayErrorMessageContainer = MACYS.Storeavail.locator.topOverlayErrorMessageContainer;    MACYS.Storeavail.locator.hideOverlay();}
function showProdData(prodData){    var pd = prodData;    var oa = pd.productThumbnailVB;    var pdDiv = document.getElementById('prod-data');    /* JC:2009 Note: For display purposes, we cannot use the color/size/type sent back from server (pd.inStoreAvailabilityEntryVB.color for example) as request filter may have removed apostrophes, etc.     *               Instead, we use actual properties of MACYS.Storeavail.locator.     *               Yes, its a bit of a hack.     */                  var cr_str = (pd.inStoreAvailabilityEntryVB.color == 'none' || pd.inStoreAvailabilityEntryVB.color == '')?'':'<b>Color: <\/b>' + MACYS.Storeavail.locator.productColor;    var sz_str = (pd.inStoreAvailabilityEntryVB.size == 'none' || pd.inStoreAvailabilityEntryVB.size == '')?'':'<b>Size: <\/b>' + MACYS.Storeavail.locator.productSize;    var tp_str = (pd.inStoreAvailabilityEntryVB.type == 'none' || pd.inStoreAvailabilityEntryVB.type == '')?'':'<b>Type: <\/b>' + MACYS.Storeavail.locator.productType;    var del = '', del2 = '';
    if(cr_str && sz_str)        del = ', ';    if((cr_str || sz_str) && tp_str)        del2 = ', ';    var sz_cr_str = cr_str + del + sz_str + del2 + tp_str;    if (oa) {        MACYS.Storeavail.locator.productImage.src = MACYS.config.Base.imageUrl + '/products/' + oa.sourceImage + '?wid=49&qlt=90,0&layer=comp&op_sharpen=0&resMode=bicub&op_usm=0.7,1.0,0.5,0&fmt=jpeg';        MACYS.Storeavail.locator.productDataList.innerHTML = '<li><b>' + oa.productName + '</b></li><li>' + sz_cr_str + '</li><li><b>Web ID: </b>' + oa.productId + ', <b>' + (furnitureOn?'SKU':'UPC') + ': </b>' + oa.upc + '</li><li><b>Price&#42;: </b>' + oa.price + '</li>';    }}
function buildForm(){        MACYS.Storeavail.locator.zipFormField.value = MACYS.Storeavail.locator.currentZip;        var stateField = YAHOO.util.Dom.get("f1State");        stateField.innerHTML = "";    for (var i=0;i < prodData.statesList.length;i++) {        var option = new Option(prodData.statesList[i][1]);        option.value = prodData.statesList[i][0];        stateField.options[stateField.options.length] = option;    }        MACYS.Storeavail.locator.load.hide();        var formItems = YAHOO.util.Dom.getElementsBy(function(node){if (node.nodeName.match(new RegExp("(input)|(select)", "i")))return true;return false;},null,MACYS.Storeavail.locator.searchForm);    var keyListener = new YAHOO.util.KeyListener(formItems, {keys: 13}, { fn:MACYS.Storeavail.locator.searchFormSubmit, scope:MACYS.Storeavail.locator, correctScope:true });    keyListener.enable();    MACYS.Storeavail.locator.zipFormField.focus();    if (MACYS.Storeavail.locator.zipFormField.value) MACYS.Storeavail.locator.searchFormSubmit();}
function doRoute(){    //loading();    cm_pg = 'cmp3';    var pgId = cmp_8; //coremetrix tracking    /* Route Options to avoid highways, tall and ferry lanes. Define vars before innerHTML cleared.*/    var is_chkHway = document.getElementById('chkHway');    var is_chkToll = document.getElementById('chkToll');    var is_chkFerry = document.getElementById('chkFerry');        //set up the connection to the geocode server    var mapExec = new MQExec(mapServerName, mqPath, mqPort, proxyServerName, ProxyServerPath, proxyServerPort);    var geoExec = new MQExec(serverName, mqPath, mqPort, proxyServerName, ProxyServerPath, proxyServerPort);    var routeExec = new MQExec(routeServerName, mqPath, mqPort, proxyServerName, ProxyServerPath, proxyServerPort);        //geocode the addresses    var addressF = new MQAddress();    var addressT = new MQAddress();     var gaCollection = new MQLocationCollection("MQGeoAddress");
    //populate the address object with the information from the form    addressF.setStreet(document.getElementById("street1").value);    addressF.setCity(document.getElementById("city").value);    addressF.setState(document.getElementById("state").value);    addressF.setPostalCode(document.getElementById("postalcode").value);    geoExec.geocode(addressF, gaCollection);    var geoAddrF = gaCollection.get(0);            addressT.setStreet(street);    addressT.setCity(city);    addressT.setState(state);    addressT.setPostalCode(MACYS.Storeavail.locator.selectedStoreZip);    geoExec.geocode(addressT, gaCollection);    var geoAddrT = gaCollection.get(0);
    var mainSD = MACYS.Storeavail.locator.storeDirections;    mainSD.innerHTML = '';    YAHOO.util.Dom.addClass(MACYS.Storeavail.locator.searchForm, 'hidden');    YAHOO.util.Dom.addClass(MACYS.Storeavail.locator.storeLocation, 'hidden');    YAHOO.util.Dom.removeClass(MACYS.Storeavail.locator.storeDirections, 'hidden');    YAHOO.util.Dom.addClass(MACYS.Storeavail.locator.storeList, "hidden");    YAHOO.util.Dom.removeClass(MACYS.Storeavail.locator.printBtn2, 'hidden');    MACYS.Storeavail.locator.title.innerHTML = 'Driving directions to ' + storename + MACYS.Storeavail.locator.changeStoreLink;    var overlay = document.getElementById('overlay-bd').style.width = 'auto';    MACYS.Storeavail.locator.overlayErrorMessageContainer = MACYS.Storeavail.locator.topOverlayErrorMessageContainer;        // build 3 containers to hold: origin and destination, routing steps and map data    var fromtoDiv = document.createElement('div');    fromtoDiv.id = 'fromto-div';    var stepsDiv = document.createElement('div');    stepsDiv.id = 'steps-div';    var mapC = document.createElement('div');    mapC.id = 'map-box';    mainSD.appendChild(fromtoDiv);    mainSD.appendChild(stepsDiv);    mainSD.appendChild(mapC);
    var map_c = document.getElementById('map-box');    var lat = geoAddrF.getMQLatLng().getLatitude();    var lng = geoAddrF.getMQLatLng().getLongitude();    var getLatLngF = new MQLatLng(lat,lng);    myPointF = new MQPoi(getLatLngF);        var latt = geoAddrT.getMQLatLng().getLatitude();    var lngt = geoAddrT.getMQLatLng().getLongitude();    var getLatLngT = new MQLatLng(latt,lngt);    myPointT = new MQPoi(getLatLngT);        var myMap = new MQTileMap(map_c);    myMap.setSize(new MQSize(430,350));    myMap.addPoi(myPointF);    myMap.addPoi(myPointT);    MACYS.Storeavail.locator.myMap = myMap;        myMap.addControl(new MQA.LargeZoomControl(), new MQMapCornerPlacement(MQMapCorner.TOP_RIGHT, new MQSize(0,0)));    myMap.addControl(new MQA.ViewControl(myMap), new MQMapCornerPlacement(MQMapCorner.BOTTOM_RIGHT, new MQSize(0,0)));
    var myIconStartUrl = MACYS.config.Base.assetsUrl + "/web20/assets/img/catalog/start.gif";    myIconF = new MQA.Icon(myIconStartUrl,37,11);    myPointF.setIcon(myIconF);        /* myIconT = new MQA.Icon(MACYS.config.Base.assetsUrl + "/img/mq/MQ09192.gif",37,11);    myPointT.setIcon(myIconT); */        var session = new MQSession();      var routeRes = new MQRouteResults();    var wayPoints = new MQLocationCollection();    var myBB = new MQRectLL(new MQLatLng(),new MQLatLng());    wayPoints.add(geoAddrF);    wayPoints.add(geoAddrT);    var routeOpt = new MQRouteOptions();    var sessId = routeExec.createSessionEx(session);        var aa = new MQStringCollection();        if (is_chkHway.checked==true){        aa.add(MQCONSTANT.MQROUTEOPTIONS_AVOID_ATTRIBUTE_LIMITED_ACCESS);    }    if (is_chkToll.checked==true){        aa.add(MQCONSTANT.MQROUTEOPTIONS_AVOID_ATTRIBUTE_TOLL_ROAD);    }    if (is_chkFerry.checked==true){        aa.add(MQCONSTANT.MQROUTEOPTIONS_AVOID_ATTRIBUTE_FERRY);    }       routeOpt.setAvoidAttrList(aa);        routeExec.doRoute(wayPoints,routeOpt,routeRes,sessId,myBB);        myMap.addRouteHighlight(myBB,"http://map.access.mapquest.com",sessId,true);        var origGeoAddress = (geoAddrF.getStreet()?geoAddrF.getStreet()+'<br/>':'') +                          '<p>' + (geoAddrF.getCity()?geoAddrF.getCity()+', ':'') +                          geoAddrF.getState() + ' ' + geoAddrF.getPostalCode() + '<\/p>';    var destGeoAddress = '<p><b>' + storename + '<\/b><\/p><p>' + geoAddrT.getStreet() + '<\/p><p>' + geoAddrT.getCity() + ', ' + geoAddrT.getState() + ' ' + geoAddrT.getPostalCode() + '<\/p>';    //var destGeoAddress = sStore + geoAddrT.getStreet() + geoAddrT.getCity() + geoAddrT.getState() + geoAddrT.getPostalCode();    fromtoDiv.innerHTML = '<div class="orig-box"><h6>Origin:<\/h6>' + origGeoAddress + '<\/div><div class="dest-box"><h6>Destination:<\/h6>' + destGeoAddress + '<\/div><div class="clearboth"></div><div class="tot-timedist-hdr cfx"><div class="steps-dir">DIRECTIONS<\/div><div class="steps-dis">DISTANCE<\/div><\/div>';
    var myMinutes = routeRes.getTime()/60;    if (myMinutes > 60) {        if (myMinutes/60 == 1) {            var myTotTime = "1 hr ";        }        else {            var myTotTime = Math.round((myMinutes/60)*100)/100 + " hrs";        }    }    else {        var myTotTime = myMinutes + " min";    }        var myDist = Math.round(routeRes.getDistance()*100)/100;     var myManStr = "";    var myTrkStr = "";      for (intX = 0; intX < routeRes.getTrekRoutes().get(0).getManeuvers().getSize(); intX ++){        myManDist = Math.round(routeRes.getTrekRoutes().get(0).getManeuvers().get(intX).getDistance()*100)/100;        myManStr = '<div class="steps-main cfx"><div class="steps-dir">' + (intX +1) +  '. ' + routeRes.getTrekRoutes().get(0).getManeuvers().get(intX).getNarrative() + '<\/div><div class="steps-dis">' + myManDist + ' miles<\/div><\/div>';        myTrkStr = myTrkStr + myManStr;    }        var totTime = myTotTime;    var totDist = myDist + " miles";    var totTDhdr = '<div class="start-store cfx"><img src="' + myIconStartUrl + '" width="37px" height="11px" alt="start" /> <b>' + origGeoAddress + '</b></div>';    var totTDstr = '<div class="start-store cfx"><img src="http://img.mqcdn.com/mqtoolkit/star.png" height="15px" alt="start" /> <p><b>' + storename + '</b></p></div>' + '<div class="tot-timedist cfx"><p class="tot-time">Estimated Driving Time: ' + totTime + '<\/p><div class="tot-dist">' + totDist + '<\/div><div class="tot-dist-Label">Total Distance:</div><\/div>';    stepsDiv.innerHTML = totTDhdr + myTrkStr + totTDstr;        cm(pgId);    MACYS.Storeavail.locator.unbusy();    MACYS.Storeavail.locator.saModal.center();}    function startMap(){    if (YAHOO.env.ua.ie > 0) {        MACYS.Storeavail.locator.hideIframes();    }    cm_pg = 'cmp2';    MACYS.Storeavail.locator.removeError();    var s_id = MACYS.Storeavail.locator.currentStoreIdIndex;    var o_sd = storeData.inStoreAvailabilityVB.searchResults;    storename = o_sd[s_id].storeName;    street = o_sd[s_id].addressVB.address1;    city = o_sd[s_id].addressVB.city;    state = o_sd[s_id].addressVB.state;    MACYS.Storeavail.locator.selectedStoreZip = o_sd[s_id].addressVB.zipCode;    var o_todhr = o_sd[s_id].storeHours.today;    var o_tomhr = o_sd[s_id].storeHours.tommorrow;
    var pgId = cmp_6; //coremetrix tracking    var geoExec = new MQExec(serverName, mqPath, mqPort, proxyServerName, ProxyServerPath, proxyServerPort );    var address = new MQAddress();    var gaCollection = new MQLocationCollection("MQGeoAddress");
    address.setStreet(street);    address.setPostalCode(MACYS.Storeavail.locator.selectedStoreZip);    address.setCity(city);    address.setState(state);    geoExec.geocode(address, gaCollection);        var geoAddr = gaCollection.get(0);    var lat = geoAddr.getMQLatLng().getLatitude();    var lng = geoAddr.getMQLatLng().getLongitude();    var getLatLng = new MQLatLng(lat,lng);        var myPoint = new MQA.Poi(getLatLng);    var storeA = street + ', ' + city + ', ' + state;    myPoint.setValue('infoTitleHTML', storename);    myPoint.setValue('InfoContentHTML', storeA);    myPoint.setKey('1A');        MACYS.Storeavail.locator.saModal.configWidth(null, ["770px"]);    MACYS.Storeavail.locator.saModal.center();        var mc = MACYS.Storeavail.locator.storeLocation;    /* mc.innerHTML = ""; */    YAHOO.util.Dom.get('map-div').innerHTML = '';        YAHOO.util.Dom.addClass(MACYS.Storeavail.locator.storeList, 'hidden');    YAHOO.util.Dom.addClass(MACYS.Storeavail.locator.storeDirections, 'hidden');    YAHOO.util.Dom.removeClass(mc, 'hidden');    YAHOO.util.Dom.addClass(MACYS.Storeavail.locator.printBtn2, 'hidden');    MACYS.Storeavail.locator.title.innerHTML = storename + MACYS.Storeavail.locator.changeStoreLink;        MACYS.Storeavail.locator.overlayErrorMessageContainer = MACYS.Storeavail.locator.storeDirectionsOverlayErrorMessageContainer;        var moreStoreHours = YAHOO.util.Dom.getElementsByClassName('seemore_lnk', null, MACYS.Storeavail.locator.storeLocation)[0];    var mSLink = YAHOO.util.Dom.getElementsBy(function(){return true;}, 'a', moreStoreHours)[0];        if (o_sd[s_id].storeId) {        mSLink.href = "javascript:pop('/store/storehours.ognc?storeId=" + o_sd[s_id].storeId + "'," + "'StoreHours','width=295,height=532,scrollbars=yes')";    } else {        mSLink.href = "javascript:void(0);";        mSLink.id = "moreStoreHoursLink";        var storeHours = o_sd[s_id].storeHours;        var daysOftheWeek = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];        var today = (new Date()).getDay();        var storeHoursBody = document.createElement('div');        var day = document.createElement('div');        day.innerHTML = "<span class=\"day\">Today</span><span class=\"hours\">" + storeHours[daysOftheWeek[today++]] + "</span><div class=\"clearboth\"></div>";        storeHoursBody.appendChild(day);        today = today<7?today:0;        day = document.createElement('div');        day.innerHTML = "<span class=\"day\">Tomorrow</span><span class=\"hours\">" + storeHours[daysOftheWeek[today++]] + "</span><div class=\"clearboth\"></div>";        storeHoursBody.appendChild(day);        today = today<7?today:0;        for (var i=0; i < 5; i++) {            day = document.createElement('div');            day.innerHTML = "<span class=\"day\">" + daysOftheWeek[today] + "</span><span class=\"hours\">" + storeHours[daysOftheWeek[today++]] + "</span><div class=\"clearboth\"></div>";            storeHoursBody.appendChild(day);            today = today<7?today:0;         }        MACYS.Storeavail.locator.moreHoursPanel.setBody(storeHoursBody);        YAHOO.util.Event.addListener("moreStoreHoursLink", "click", MACYS.Storeavail.locator.moreHoursPanel.show, MACYS.Storeavail.locator.moreHoursPanel, true);        YAHOO.util.Event.addListener("moreStoreHoursLink", "click", function(e){YAHOO.util.Dom.setXY("moreHoursPanel_c", YAHOO.util.Event.getXY(e));});    }    YAHOO.util.Dom.get('slct-store').innerHTML = '<ul><li>' + street + '</li><li>' + city + ', ' + state + ' ' + MACYS.Storeavail.locator.selectedStoreZip + '</li><li><b>Today\'s Hours: </b>' + o_todhr + '</li><li><b>Tomorrow\'s Hours: </b>' + o_tomhr + '</li></ul>';        myMap = new MQA.TileMap(document.getElementById('map-div'),12,getLatLng,'map');    //myMap=new MQA.TileMap(document.getElementById('map-div'),9,new MQALatLng(40.0446,-76.4131),"sat");    myMap.setSize(new MQA.Size(430,350));    myMap.addPoi(myPoint);    myMap.addControl(new MQA.LargeZoomControl(), new MQA.MapCornerPlacement(MQA.MapCorner.TOP_RIGHT, new MQA.Size(0,0)));    myMap.addControl(new MQA.ViewControl(myMap), new MQA.MapCornerPlacement(MQA.MapCorner.BOTTOM_RIGHT, new MQA.Size(0,0)));    MACYS.Storeavail.locator.myMap = myMap;        MACYS.Storeavail.locator.unbusy();    if (YAHOO.env.ua.ie > 0) {        setTimeout(function(){MACYS.Storeavail.locator.showIframes();},1000);    }    cm(pgId);}
function pgAjx(e,key){    if (MACYS.Storeavail.locator.isBusy) return;    MACYS.Storeavail.locator.busy();    var prodId = prodData.productThumbnailVB.productId;    var upcId = prodData.productThumbnailVB.upcId;    if(!key) key = 'noKey';    var data = 'productID=' + prodId + '&size=' + MACYS.Storeavail.locator.productSize + '&color=' +  MACYS.Storeavail.locator.productColor + '&type=' + MACYS.Storeavail.locator.productType + '&zipCode=' + MACYS.Storeavail.locator.currentZip + '&upcID=' + upcId + '&' + key;    storeCache.get(data, storeGetter, showStores, null);}
function asyncRequestFail() {    MACYS.Storeavail.locator.unbusy();}
function storeGetter(item, callBack, callBackScope){    var mCallback = {        success: callBack,        failure: asyncRequestFail,        scope: callBackScope,        argument: item    }
    var url = MACYS.Storeavail.locator.prodJsonPath + '?' + item;        var senddata = YAHOO.util.Connect.asyncRequest('POST', url, mCallback);}
function processStoreData(){    MACYS.Storeavail.locator.removeError();
    if(storeData.hasGlobalErrors){        var pgId = cmp_10; //coremetrix tracking    !!! if no stores within 500 miles        MACYS.Storeavail.locator.displayError(storeData.globalerrors);        MACYS.Storeavail.locator.unbusy();        cm(pgId);        return;    }        if(storeData.inStoreAvailabilityVB && storeData.inStoreAvailabilityVB.unavailableMessage)        MACYS.Storeavail.locator.displayError(storeData.inStoreAvailabilityVB.unavailableMessage);        YAHOO.util.Dom.addClass(MACYS.Storeavail.locator.searchForm, 'hidden');    YAHOO.util.Dom.addClass(MACYS.Storeavail.locator.storeLocation, 'hidden');    YAHOO.util.Dom.addClass(MACYS.Storeavail.locator.storeDirections, 'hidden');    YAHOO.util.Dom.removeClass(MACYS.Storeavail.locator.storeList, "hidden");    MACYS.Storeavail.locator.overlayErrorMessageContainer = MACYS.Storeavail.locator.topOverlayErrorMessageContainer;        //dropStoreList(MACYS.Storeavail.locator.storeListings);        cm_pg = 'cmp1';     var pgId = cmp_2; //coremetrix tracking !!! for the first 8 stores    /* STATIK */    var conFlag = storeData.inStoreAvailabilityVB.successFlag;    throwCreateConversionEventTag(MACYS.Storeavail.locator.CMconvEvId, 2, 'Find It In Store', getInStoreConvValue(conFlag), "-_-" + conFlag + "-_-");        MACYS.Storeavail.locator.title.innerHTML = 'Search results for ' + MACYS.Storeavail.locator.resultLocation + '<a href="javascript: MACYS.Storeavail.locator.changeLocation();" id="chloc">change location<\/a>';    var lnkMap = '<a href=\'javascript: void(0);\' class=\"map-n-dir\">map\/directions<\/a>';    try {        var address = new MQAddress();        address.setStreet("123 test if mapquest works");        delete address;    } catch (e) {        lnkMap = "";    }            if (!furnitureOn){        MACYS.Storeavail.locator.barcode_img_src = prodData.TrackingURL;    }            var aVB = storeData.inStoreAvailabilityVB;    var slist = aVB.searchResults;     n = slist.length;    var endIdx = Math.min(8, n);    var nextKey = aVB.nextKey;    var prevKey = aVB.prevKey;        /* clear out any old stores */    MACYS.Storeavail.locator.storeListings.innerHTML = "";
    for(var i=0; i<endIdx; i++) {        var m = slist[i];        var d = document.createElement('div');        d.className = 'rslt-loc';        d.id = 'store-' + i;        var dS = document.createElement('ul');        dS.className = 'ul-inline cfx';             dS.innerHTML = '<li class="d-a"><p class="dp-a">' + m.storeName + '</p><span>' +                        m.addressVB.address1 + '</span> / <span>' + m.addressVB.city + '</span>, <span>' + m.addressVB.state +                        '</span> <span>' + m.addressVB.zipCode + '</span><p><b>Today\'s hours:</b> ' + m.storeHours.today +                        '</p><p><b>Tomorrow\'s hours:</b> ' + m.storeHours.tommorrow +  '</p></li><li class=\'d-b\'>' +                        m.distance + ' miles<div>' + lnkMap + '</div></li><li class="d-c">' +                        m.availabilityStatus + '<\/li>';        d.appendChild(dS);        MACYS.Storeavail.locator.storeListings.appendChild(d);                  }
    if(prevKey && prevKey != null && prevKey !== ''){        var l = document.createElement('a');        l.id = 'see-prevstrs';        l.href = 'Javascript:void(0);';        l.innerHTML= 'see previous 8 stores';        l = MACYS.Storeavail.locator.storeListings.appendChild(l);        YAHOO.util.Event.addListener(l, "click", pgAjx, 'prevPageKey=' + prevKey);       /* YAHOO.util.Event.addListener(l, "click", function(){cm(cmp_2)}); */    }    if(nextKey && nextKey != null && nextKey !== ''){        var l = document.createElement('a');        l.id = 'see-nxtstrs';        l.href = 'Javascript:void(0);';        l.innerHTML= 'see more stores';        l = MACYS.Storeavail.locator.storeListings.appendChild(l);        YAHOO.util.Event.addListener(l, "click", pgAjx, 'nextPageKey=' + nextKey);        /* YAHOO.util.Event.addListener(l, "click", function(){cm(cmp_4)}); */    }    //swcPfS();    MACYS.Storeavail.locator.enablePrint();    var lnkMapDir = YAHOO.util.Dom.getElementsByClassName('map-n-dir', 'a');    YAHOO.util.Event.addListener(lnkMapDir, "click", mqMapReq, true);    MACYS.Storeavail.locator.saModal.center();    MACYS.Storeavail.locator.storeListings.scrollTop = 0;    MACYS.Storeavail.locator.unbusy();    /* STATIK: since this is always called and above is sometimes called as well,        there are multiple tags thrown for one page view.        Instead we should have all on eventlistner or use a delegate function.        For now commented out the above dups so tracking is always for the first page. */    cm(cmp_2);}
var successSendD = function(m){    if(m.responseText !== undefined){        storeData = YAHOO.lang.JSON.parse(m.responseText);        processStoreData();    }}
var showStores = function(m){    if(m !== undefined){        storeData = YAHOO.lang.JSON.parse(m);        processStoreData();    }}
var failureSendD = function(m){    if(m.responseText !== undefined){        MACYS.Storeavail.locator.updateDiv.innerHTML = '<p>We\'re sorry\; our site is experiencing technical difficulties. We\'re unable to provide this service at this time. Please try again later.</p>';    }    MACYS.Storeavail.locator.unbusy();}
function validateRoutForm(){    if (MACYS.Storeavail.locator.isBusy) return;    MACYS.Storeavail.locator.busy();    var frmRout = document.getElementById('addrss-avoid');    var frmRStreet = document.getElementById('street1');    var frmRCity = document.getElementById('city');    var frmRState = document.getElementById('state');    var frmRZip = document.getElementById('postalcode');       var labelStreet = YAHOO.util.Dom.getElementsByClassName('label-street', 'p', MACYS.Storeavail.locator.storeLocation)[0];    var labelCity = YAHOO.util.Dom.getElementsByClassName('label-city', 'p', MACYS.Storeavail.locator.storeLocation)[0];    var labelState = YAHOO.util.Dom.getElementsByClassName('label-state', 'p', MACYS.Storeavail.locator.storeLocation)[0];    var labelZip = YAHOO.util.Dom.getElementsByClassName('label-zip', 'p', MACYS.Storeavail.locator.storeLocation)[0];        var errorMessage = "";    MACYS.Storeavail.locator.removeError();    YAHOO.util.Dom.removeClass(labelStreet, 'error-msg');    YAHOO.util.Dom.removeClass(labelZip, 'error-msg');    YAHOO.util.Dom.removeClass(labelCity, 'error-msg');    YAHOO.util.Dom.removeClass(labelState, 'error-msg');
    if (!frmRZip.value.match(/(^\d{5}$)|(^\d{5}-\d{4}$)/)){ // no zip or invalid zip        YAHOO.util.Dom.addClass(labelZip, 'error-msg');        YAHOO.util.Dom.addClass(labelStreet, 'error-msg');        if (frmRCity.value != '' && frmRState.value == '') { // missing state             errorMessage += 'Please fill in all entry fields and click GET DIRECTIONS again';            YAHOO.util.Dom.addClass(labelState, 'error-msg');        } else if (frmRCity.value == '' && frmRState.value != '') { // missing city            errorMessage += 'Please fill in all entry fields and click GET DIRECTIONS again';            YAHOO.util.Dom.addClass(labelCity, 'error-msg');        } else if (frmRCity.value == '' && frmRState.value == '') { // missing both            errorMessage += 'Please fill in all entry fields and click GET DIRECTIONS again';            YAHOO.util.Dom.addClass(labelCity, 'error-msg');            YAHOO.util.Dom.addClass(labelState, 'error-msg');        } else { // we've got both city state,             YAHOO.util.Dom.removeClass(labelZip, 'error-msg');            YAHOO.util.Dom.removeClass(labelStreet, 'error-msg');        }    } // all we need is a zip        if (errorMessage != "") {        MACYS.Storeavail.locator.displayError(errorMessage);        MACYS.Storeavail.locator.unbusy();        cm('ERROR:' + errorMessage);        return false;    }        doRoute();}
function mqMapReq(e){    if (MACYS.Storeavail.locator.isBusy) return;    MACYS.Storeavail.locator.busy();    if (MACYS.Storeavail.locator.myMap) delete MACYS.Storeavail.locator.myMap;    YAHOO.util.Dom.get('map-div').innerHTML = "";    var elTarget = YAHOO.util.Event.getTarget(e);       while (elTarget.id != 'rslt-loc') {        if(elTarget.nodeName.toLowerCase()==='a' && elTarget.className == 'map-n-dir') {            var tP = elTarget.parentNode.parentNode.parentNode.parentNode;            MACYS.Storeavail.locator.currentStoreIdIndex = tP.id.split('-')[1];            //and then stop looking:            break;        } else {            //let's step up the DOM and keep looking:            //elTarget = elTarget.parentNode;            MACYS.Storeavail.locator.unbusy();            return;        }    }    startMap();}
function printDate(){/*    if(MACYS.Storeavail.locator.myMap){    alert('1');        var map_prt = document.createElement('div');        map_prt.id = 'map-prt';        var map_appA = document.getElementById('map-div');    alert('2');        var myURL = MACYS.Storeavail.locator.myMap.generatePFUrl(MACYS.Storeavail.locator.myMap.getSize());    alert('2a');        MACYS.Storeavail.locator.myMap.showStaticMap(myMapInit);    alert('2b');            map_prt.innerHTML = myURL;        map_prt.style.visibility = "visible";    alert('3');        //HidePrinterFriendly        //MACYS.Storeavail.locator.myMap.hideStaticMap(myMapInit);        var main_con = document.getElementById('main-sd');        main_con.appendChild(map_prt);    alert('4');    }*/      var d = new Date();    //var cd = d.toLocaleString();    var month = d.getMonth() + 1;    var day = d.getDate();    var year = d.getFullYear();    var date_str = month + '/' + day + '/' + year;        var hours = d.getHours();    var minutes = d.getMinutes();    if (minutes < 10)minutes = '0' + minutes;    var dn;    if(hours > 11){dn = 'p.m.';} else {dn = 'a.m.';}    var time_str = hours + ':' + minutes + ' ' + dn;        var date_c = document.createElement('p');    date_c.id = 'print-date';    date_c.innerHTML = date_str + '<br/>' + time_str;    var ulogo = document.createElement('p');    ulogo.id = 'print-ulogo-msg';    ulogo.innerHTML = print_msg_ulogo;        var desc_c = document.createElement('div');    desc_c.id = 'prt-msg-b';    if(!furnitureOn){        desc_c.innerHTML = MACYS.Storeavail.locator.csa_desc;        MACYS.Storeavail.locator.barcode_img.src = MACYS.Storeavail.locator.barcode_img_src;    } else {        desc_c.innerHTML = MACYS.Storeavail.locator.fur_desc;    }        var prt_date = document.getElementById('print-date');    var prt_msg2 = document.getElementById('prt-msg-b');    var prod_box = document.getElementById('prod-data');            var el_pn = MACYS.Storeavail.locator.closeBtn.parentNode;    var ulogo_msg = document.getElementById('print-ulogo-msg');    if(prt_date)el_pn.removeChild(prt_date);    if(ulogo_msg)el_pn.removeChild(ulogo_msg);    if(prt_msg2)prod_box.removeChild(prt_msg2);
    el_pn.appendChild(date_c);    el_pn.appendChild(ulogo);    prod_box.appendChild(desc_c);
    if(cm_pg == 'cmp1'){        var pgId = cmp_3;        cm(pgId);    } else if(cm_pg == 'cmp2'){        var pgId = cmp_7;        cm(pgId);    } else if(cm_pg == 'cmp3'){        var pgId = cmp_9;        cm(pgId);    }        YAHOO.util.Get.css(MACYS.Storeavail.locator.printCSS, {media:"print", onSuccess:MACYS.Storeavail.locator.executePrintCss, scope:MACYS.Storeavail.locator });    /* window.print(); */}