Object.extend(Hash.prototype,{diff:function(a){return this.inject($H(),function(b,c){if(this.get(c.key)!=a.get(c.key)){b.set(c.key,c.value)}return b}.bind(this))},slice:function(a){return a.inject($H(),function(b,c){if(typeof(this.get(c))!="undefined"){b.set(c,this.get(c))}return b}.bind(this))}});Object.extend(Array.prototype,{toInt:function(){return this.inject($A(),function(a,b){a.push(parseInt(b));return a}.bind(this))},without:function(){var a=Object.isArray(arguments[0])?arguments[0]:$A(arguments);return this.select(function(b){return !a.include(b)})}});endeca={classes:{},mixins:{},configuration:Object.extend({MDEXHost:"localhost",MDEXPort:16510,logHost:generic.env.domain.match(/www/)?"njlndca01":"localhost",logPort:16514,coremetricsEnabled:true,defaultDimensionIds:$A([]),mixins:function(){return{}}},typeof(page)!="undefined"&&typeof(page.endeca)!="undefined"&&typeof(page.endeca.configuration)!="undefined"?page.endeca.configuration:{}),rb:generic.rb("endeca"),templates:{},helpers:{div:new Element("div"),mixin:function(b,a){var c=b;if(Object.isArray(a)){a.each(function(d){c=endeca.helpers.mixin(c,d)})}else{if(a){c=Class.create(c,a)}}return c}}};endeca.coremetrics={enabled:false,productCount:0,contentCount:0,searchTerm:null,refinementsList:$A(),numberOfPages:1,currentPage:1,dimensionNameMap:{"Skin Type":"Typ","Skin Tone":"Ton"},initialize:function(a){Object.extend(this,a)},addRefinement:function(c){var c=c||{};if(c.dimensionName&&c.refinement){var a;if(this.dimensionNameMap[c.dimensionName]){a=this.dimensionNameMap[c.dimensionName]}else{var b=c.dimensionName.split(" ");a=b.shift().substr(0,3);a+=$A(b).invoke("charAt").join("")}this.refinementsList.push(a+":"+c.refinement)}},setPageView:function(){var b="Search Results "+this.currentPage;var d="2200";var a=this.searchTerm;var e=this.contentCount+this.productCount;var c=this.refinementsList.join(" > ");if(c){b="Search Results Filtered "+this.currentPage}if(this.contentCount>0&&this.productCount==0){a="*"+a}cmCreatePageviewTag(b,a,d,e.toString(),c)},contentClick:function(){cmCreatePageElementTag("CONTENT","SEARCH DROPDOWN")},productClick:function(){cmCreatePageElementTag("PRODUCTS","SEARCH DROPDOWN")},seeAllClick:function(){cmCreatePageElementTag("SEE ALL","SEARCH DROPDOWN")},reset:function(){this.refinementsList=$A()}};endeca.mixins.accordion={displayResults:function($super,a){$super(a);this.setupAccordion()},setupAccordion:function(){if(this.headerNode&&this.contentNode&&this.headerNode.hasClassName("accordion-header")&&this.contentNode.hasClassName("accordion-content")){this.headerNode.stopObserving("click");this.headerNode.observe("click",this.toggleAccordion.bind(this));this.accordionNode=this.node;this.node=this.contentNode}},toggleAccordion:function(){if(this.headerNode.hasClassName("collapsed")){this.headerNode.removeClassName("collapsed");this.contentNode.show()}else{this.headerNode.addClassName("collapsed");this.contentNode.hide()}}};endeca.mixins.pagination={displayResults:function($super,a){$super(a);this.setupPagination()},setupPagination:function(){if(this.pagination){this.parentNode.select(".pagination").each(function(a){this.pagination.parentNode=a;this.pagination.displayResults()}.bind(this))}},reset:function($super,a){$super(a);if(this.pagination){this.pagination.reset()}this.parentNode.select(".pagination").each(function(b){b.update()}.bind(this))}};endeca.mixins.summary={initialize:function($super,a){$super(a);this.summaryResultData={totalRecords:this.resultData.size()};this.summaryResultData.resultText=this.summaryResultData.totalRecords==1?endeca.rb.get("result"):endeca.rb.get("results")},displayResults:function($super,a){$super(a);this.setupSummary()},setupSummary:function(){if(this.summaryNode&&this.summaryTemplateKey&&this.summaryResultData){this.summary=new endeca.classes.result({parentNode:this.summaryNode,templateKey:this.summaryTemplateKey,resultData:this.summaryResultData});this.summary.displayResult()}},reset:function($super,a){$super(a);if(this.summaryNode){this.summaryNode.update()}}};endeca.mixins.links={displayResultCallback:function($super,b){var b=b||{};b.resultData=b.resultData||this.resultData;var d=b.resultData["Selection Link"]||b.resultData["Removal Link"];var c=b.node||b.parentNode||this.node||this.parentNode;c=c.down("a")||c;if(d&&c){var f=endeca.control.productQuery.getMergedQueryString(d);c.observe("click",this.onClick.bind(this).curry(f));if(c.href){var e=generic.env.parsedQuery;e.qs=encodeURIComponent(f);var a=document.location.pathname+"?"+$H(e).toQueryString();c.href=a}}}};endeca.mixins.links.SWFAddress=Object.extend({onClick:function(b,a){SWFAddress.setValue("?"+b);a.stop();return false}},endeca.mixins.links);endeca.mixins.links.standard=Object.extend({onClick:function(d,b){var c=generic.env.parsedQuery;c.qs=encodeURIComponent(d);var a=document.location.pathname+"?"+$H(c).toQueryString()+document.location.hash;document.location.href=a;b.stop();return false}},endeca.mixins.links);endeca.classes.query=Class.create({initialize:function(a){this.MDEXHost=endeca.configuration.MDEXHost;this.MDEXPort=endeca.configuration.MDEXPort;this.logHost=endeca.configuration.logHost;this.logPort=endeca.configuration.logPort;this.sessionId=Math.floor(Math.random()*999999)+1;this.searching=false;this.url="/enrpc/JSONControllerServlet.do";this.urlParams=$H({});this.defaultDimensionIds=$A([]);this.queryString=null;this.searchTerm="";this.searchKey="all";this.searchMode="matchallpartial";this.searchDimensions=true;this.computePhrasings=true;this.didYouMean=true;this.recordsPerPage=10;this.pageNumber=1;this.sortKey=null;this.rollup=true;this.rollupId="p_PRODUCT_ID";this.rollupDetail=true;this.defaultRangeFilters=$H({skuShoppable:"s_shoppable|GT+0",skuPromotional:"s_promotional|GT+0",skuSearchable:"s_searchable|GT+0",productTrFlag:"p_TR_FLAG|LT+1",productDisplayable:"p_displayable|GT+0"});this.rangeFilters=$A(["skuSearchable"]);this.additionalRangeFilters=$A([]);this.defaultRecordFilters=$H({products:"rec_type:product",content:"rec_type:content",locale:"locale:"+generic.cookie("LOCALE"),activeSkus:"NOT(s_INVENTORY_STATUS:5)",notSoldOut:"NOT(s_INVENTORY_STATUS:7)"});this.recordFilters=$A([]);this.additionalRecordFilters=$A([]);this.recordId=null;this.exportUrlParams=$A(["N","Ne","Nao","Ntt","D","M"]);Object.extend(this,a);this.setupServer()},reset:function(){this.urlParams=$H();this.queryString=null;this.jsonResult=null;this.searching=false},prepare:function(){this.setupServer();if(this.recordId){this.setupRecordId()}else{this.searchTerm=this.searchTerm.strip();if(this.computePhrasings){this.setupPhraseComputation()}if(this.didYouMean){this.setupDidYouMean()}if(this.searchDimensions){this.setupDimensionSearch()}if(this.pageNumber){this.setupPage()}if(this.sortKey){this.setupSort()}if(this.rollup){this.setupRollUp()}this.setupNavigation();this.setupRangeFilters();this.setupRecordFilters();this.setupSearch()}if(this.queryString){this.queryString=decodeURIComponent(this.queryString);this.processQueryString()}else{this.setupDimensionIds()}},execute:function(){var a=this.url+"?"+this.toQueryString();this.searching=true;new Ajax.Request(a,{method:"get",onComplete:this.onComplete.bind(this)})},onComplete:function(a){this.searching=false;this.rawResult=a.responseText;this.jsonResult=this.rawResult.evalJSON();this.callbackCompleted(this)},toQueryString:function(a){var a=a||{};var b=a.urlParams?a.urlParams.toQueryString():this.urlParams.toQueryString();b=b.replace(/%2B/gi,"+");return b},processQueryString:function(){this.urlParams.update(this.queryString.toQueryParams());this.searchTerm=this.urlParams.get("Ntt");this.setupDimensionIds();this.setupRangeFilters();this.setupRecordFilters()},getMergedQueryString:function(d){var b=$H(d.toQueryParams());if(!b.get("Nao")){b.set("Nao",0)}var a=this.urlParams.clone();a.update(b);var c=this._getDimensionIds({urlParams:b,oldDimensionIds:this.urlParams.get("Ne")});c=c.without(this.defaultDimensionIds);a.set("Ne",c.join("+"));return this.toQueryString({urlParams:a.slice(this.exportUrlParams)})},setupServer:function(){this.urlParams.set("M","host:"+this.MDEXHost+"|port:"+this.MDEXPort+"|recs_per_page:"+this.recordsPerPage);this.urlParams.set("L","SESSION_ID:"+this.sessionId+"|host:"+this.logHost+"|port:"+this.logPort)},setupRecordId:function(){this.urlParams.set("R",this.recordId)},setupNavigation:function(){this.urlParams.set("N","")},setupDimensionIds:function(){var a=this._getDimensionIds({urlParams:this.urlParams});if(a.length){this.urlParams.set("Ne",a.join("+"))}},setupSearch:function(){this.urlParams.set("Ntt",this.searchTerm);this.urlParams.set("Ntk",this.searchKey);this.urlParams.set("Ntx",this.searchMode.match(/mode\+/)?this.searchMode:("mode+"+this.searchMode))},setupDimensionSearch:function(){this.urlParams.set("D",this.searchTerm);this.urlParams.set("Dx",this.searchMode.match(/mode\+/)?this.searchMode:("mode+"+this.searchMode))},setupPhraseComputation:function(){this.urlParams.set("Ntpc",1);this.urlParams.set("Ntpr",1)},setupDidYouMean:function(){this.urlParams.set("Nty",1)},setupSort:function(){this.urlParams.set("Ns",this.sortKey)},setupRollUp:function(){this.urlParams.set("Nu",this.rollupId);this.urlParams.set("Np",this.rollupDetail?2:1)},setupPage:function(){this.urlParams.set("Nao",(this.pageNumber-1)*this.recordsPerPage)},setupRangeFilters:function(){var a=this._getFilters(this.rangeFilters,this.additionalRangeFilters,this.defaultRangeFilters);if(a.length){this.urlParams.set("Nf",a.join("|"))}},setupRecordFilters:function(){var a=this._getFilters(this.recordFilters,this.additionalRecordFilters,this.defaultRecordFilters);if(a.length){this.urlParams.set("Nr","AND("+a.join("|")+")")}},_getFilters:function(c,d,b){var a=$A();c.each(function(f,e){a.push(b.get(f))});d.each(function(f,e){a.push(f)});return a},_getDimensionIds:function(a){var b=$A();if(a.oldDimensionIds){b=b.concat(a.oldDimensionIds.split("+"))}if(a.addDefaultDimensionIds){b=b.concat(a.oldDimensionIds.split("+"))}b=b.concat(a.urlParams&&a.urlParams.get("Ne")?$A(a.urlParams.get("Ne").split("+")):$A());b=b.concat(this.defaultDimensionIds);b=b.toInt();b=b.uniq();return b},parsedSearchTerm:function(){return decodeURIComponent(this.searchTerm).replace(/\+/," ")}});endeca.classes.meta=Class.create({initialize:function(a){this.jsonResult=null;this.searchKey="all";this.followRedirects=true;this.pagination=null;this.dimensions=$H();this.metaInfo={};this.searchInfo={};this.supplementalObjects=$A();this.supplementalContent=$H();Object.extend(this,a);if(this.jsonResult){this.parseData()}},parseData:function(a){this.processSupplemental();this.processMetaInfo();this.processSearchInfo();this.processPagination();this.processDimensions()},processMetaInfo:function(){this.metaInfo=this.jsonResult.MetaInfo||this.metaInfo;this.numberOfPages=this.getMetaProp("Number of Pages",1,true);this.recordsReturned=this.getMetaProp("Number of Records Returned",0,true);this.recordsPerPage=this.getMetaProp("Number of Records per Page",0,true);this.totalMatchRecords=this.getMetaProp("Total Number of Matching Records",0,true);this.totalAggrRecords=this.getMetaProp("Total Number of Matching Aggregate Records",0,true)},processSearchInfo:function(){var a=this.jsonResult["Search Info"]?this.jsonResult["Search Info"][this.searchKey]:{};this.searchInfo.searchTerm=a["Search Term"]||"";this.searchInfo.totalContentRecords=0;this.supplementalContent.each(function(b){if(endeca.configuration.contentzones&&endeca.configuration.contentzones[b.key]&&endeca.configuration.contentzones[b.key].counted){this.searchInfo.totalContentRecords+=b.value.records.size()}}.bind(this));this.searchInfo.totalProductRecords=this.totalAggrRecords||this.totalMatchRecords;this.searchInfo.contentResultText=this.searchInfo.totalContentRecords==1?endeca.rb.get("result"):endeca.rb.get("results");this.searchInfo.productResultText=this.searchInfo.totalProductRecords==1?endeca.rb.get("result"):endeca.rb.get("results");this.searchInfo.totalRecords=parseInt(this.searchInfo.totalContentRecords)+parseInt(this.searchInfo.totalProductRecords);this.searchInfo.resultText=this.searchInfo.totalRecords==1?endeca.rb.get("result"):endeca.rb.get("results");this.searchInfo.startingRecord=this.getMetaProp("Starting Record Number",1,true);this.searchInfo.endingRecord=this.getMetaProp("Ending Record Number",1,true);this.searchInfo.originalRecords=this.searchInfo.totalRecords;this.searchInfo.originalResultText=this.searchInfo.resultText;this.searchInfo.correctedTerms=$A(a["Spell Correction"]).map(function(b){if(b["New Term"].indexOf(this.searchTerm)<0){return b["New Term"]}}.bind(this)).compact();if(this.searchInfo.correctedTerms.length){this.searchInfo.originalRecords=0;this.searchInfo.originalResultText=this.searchInfo.originalRecords==1?endeca.rb.get("result"):endeca.rb.get("results")}this.searchInfo.didYouMean=$A(a["DYM Information"]).map(function(b){if(b["New Term"].indexOf(this.searchTerm)<0){return{"Selection Link":b["Pivot Link"],Term:b["New Term"]}}}.bind(this)).compact()},processPagination:function(){if(this.numberOfPages>1){this.pagination={numberOfPages:this.numberOfPages,numberOfCurrentPage:this.getMetaProp("Page Number",1,true),previousPageLink:this.getMetaProp("Previous Page Link"),nextPageLink:this.getMetaProp("Next Page Link"),directPageLinks:$A(this.getMetaProp("Direct Page Links",""))}}},processDimensions:function(){var a=$A(this.jsonResult.Breadcrumbs).map(function(c){if(c&&c.Type=="Navigation"){return c}}).compact();var b=$A(this.jsonResult.Refinements).map(function(c){if(c&&c.Dimensions&&c.Dimensions[0]){return c.Dimensions[0]}}).compact();if(a.length){this.dimensions.set("breadcrumbs",a)}if(b.length){this.dimensions.set("refinements",b)}},processSupplemental:function(){this.supplementalObjects=$A(this.jsonResult["Supplemental Objects"])||this.supplementalObjects;this.supplementalObjects.each(function(a){if(a.Properties){if(a.Properties["DGraph.KeywordRedirectUrl"]&&this.followRedirects){document.location.href=a.Properties["DGraph.KeywordRedirectUrl"];throw $break}if(a.Properties["DGraph.SeeAlsoMerchId"]){var b=a.Properties.Zone;if(endeca.configuration.contentzones[b]){var c=this.supplementalContent.get(b)||{records:$A()};c.style=a.Properties.Style;c.records.push(a);this.supplementalContent.set(b,c)}}}}.bind(this))},getMetaProp:function(b,a,d){var c=(this.metaInfo[b]||a);if(d){c=parseInt(c)}return c}});endeca.classes.catalog=Class.create({initialize:function(a){this.jsonResult=null;Object.extend(this,a||{});if(this.jsonResult){this.parseData()}},parseData:function(){if(this.jsonResult.AggrRecords){this.jsonResult.AggrRecords.each(function(a){a.Records.each(function(b){this._parseRecord(b)},this)},this)}else{if(this.jsonResult.Records){this.jsonResult.Records.each(function(a){this._parseRecord(a)},this)}}}});endeca.classes.catalog.content=Class.create(endeca.classes.catalog,{initialize:function($super,a){this.contentList=$A();$super(a)},_parseRecord:function(a){this.contentList.push({Properties:{image:"",title:a.Properties.p_PROD_RGN_NAME,description:a.Properties.p_DESCRIPTION,link:a.Properties.p_url,link_text:"Learn More",Zone:"crawlData"}})}});endeca.classes.catalog.product=Class.create(endeca.classes.catalog,{initialize:function(a){this.categoryList={};this.productList={};this.skuList={};this.contentList=$A();this.responseError="";this.jsonResult=null;this.parseOrderHi=0;this.parseOrderLo=0;this.insert=false;Object.extend(this,a||{});if(this.jsonResult){this.parseData(this.jsonResult,this.insert)}},parseData:function(a,b){if(a.methodResponse&&a.methodResponse.fault&&a.methodResponse.fault.value&&a.methodResponse.fault.value.faultString){this.responseError=a.methodResponse.fault.value.faultString}if(a.AggrRecords){a.AggrRecords.each(function(c){this.parseERecord(c,b);c.Records.each(function(d){this.parseERecord(d,b)},this)},this)}else{if(a.Records){a.Records.each(function(c){this.parseERecord(c,b)},this)}}},parseERecord:function(h,i){var b=h.Properties.rec_type;if(b!="product"){var f=h.Properties.rec_id;if(f){this.contentList.push({image:"",header_text:h.Properties.p_PROD_RGN_NAME,description:h.Properties.p_DESCRIPTION,link_url:h.Properties.p_url,link_text:"View more &raquo;"})}}else{var a={};var d={};var g={};var j={DISPLAY_ORDER:true,shaded:true,sized:true,GIFTWRAP:true,HAZARDOUS_PRODUCT:true,REFILLABLE:true,SUPRESS_IN_CART:true,ONLY_RATINGS_COUNT:true,PRODUCT_TYPE:true,SKIN_TONE:true,SKIN_TYPE:true,TOTAL_REVIEW_COUNT:true,INVENTORY_STATUS:true,MISC_FLAG:true,shoppable:true,isShoppable:true};var e={AVERAGE_RATING:true};var c=function(m){var k=m.key.substr(2);var l=(j[k]?parseInt(m.value):e[k]?parseFloat(m.value):m.value);if(m.key=="p_tab_json"&&l!=""){d.tabs=l.evalJSON()}if(m.key.indexOf("c_")==0){a[k]=l}else{if(m.key.indexOf("p_")==0){d[k]=l}else{if(m.key.indexOf("s_")==0){g[k]=l}else{if(m.key=="DGraph.WhyDidItMatch"){d.matched=1;g.matched=0;g.matchedOn=m.value;[m.value].each(function(n){if(n.indexOf("s_")==0){d.matched=0;g.matched=1}})}}}}};$H(h.Properties).each(c,this);$H(h.Dimensions).each(c,this);["Record Spec","Dimensions","Record Detail Link"].each(function(k){g[k]=(h[k]?h[k]:"")});["Record Count","AggRec Detail Link"].each(function(k){d[k]=(h[k]?h[k]:"")});this.addProps(a,d,g,i)}},addProps:function(a,c,h,i){var f=a.CATEGORY_ID;var e=c.PRODUCT_ID;var g=h.SKU_ID;if(!f||!e||!g){return}var j=this.skuList[g]||{};this.skuList[g]=Object.extend(j,h);var d=this.productList[e]||{parseOrder:++this.parseOrderHi};if(i&&d.parseOrder>0){d.parseOrder=--this.parseOrderLo}d=Object.extend(d,c);if(!d.skus){d.skus=[]}if(!d.skuList){d.skuList={}}if(!d.skuList[g]){d.skus.push(j)}d.skuList[g]=j;this.productList[e]=d;var b=this.categoryList[f]||{};b=Object.extend(b,a);if(!b.prods){b.prods=[]}b.prods.push(d);this.categoryList[f]=b},getProducts:function(){var a=[];$H(this.productList).sortBy(function(b){return b.value.parseOrder}).each(function(c){var b=[];c.value.skus.sortBy(function(d){return d.DISPLAY_ORDER}).each(function(d){b.push(d)});c.value.skus=b;a.push(c.value)});return a},getSkus:function(){var a=[];$H(this.skuList).each(function(b){a.push(b.value)});return a},getCategory:function(a){var b=(this.categoryList?this.categoryList[a]:null);return b},getProduct:function(b){var a=(this.productList?this.productList[b]:null);return a},getSku:function(b){var a=(this.skuList?this.skuList[b]:null);return a},productCount:function(){return $H(this.productList).size()},contentCount:function(){this.contentList.size()},recordCount:function(){return this.productCount()+this.contentCount()}});endeca.classes.results=Class.create({initialize:function(a){this.parentNode=null;this.node=null;this.headerNode=null;this.contentNode=null;this.resultData=$A();this.resultNodes=$A();Object.extend(this,a)},setupNodes:function(a){var a=a||{};this.node=this.parentNode||a.node;if(this.node){if(this.templateKey){this.loadContainer()}this.headerNode=this.node.down(".results-header")?this.node.down(".results-header"):null;this.summaryNode=this.node.down(".results-summary")?this.node.down(".results-summary"):null;this.contentNode=this.node.down(".results")?this.node.down(".results"):this.node}},displayResults:function(b){var b=b||{};b.childClass=b.childClass||this.childClass;this.setupNodes(b);var a=b.resultData||this.resultData;a.each(function(c,d){this.createResult(Object.extend(b,{result:c,index:d}))}.bind(this))},loadContainer:function(args){var args=args||{};var templateKey=args.templateKey||this.templateKey;generic.templatefactory.get({key:templateKey,templateString:eval(templateKey),forceReload:true}).evaluateCallback({object:args.resultData||this.resultData,callback:function(html){endeca.helpers.div.update(html);this.node=endeca.helpers.div.firstDescendant();if(this.parentNode){this.parentNode.insert(this.node)}}.bind(this)})},createResult:function(b){var b=b||{};b.childClass=b.childClass||this.childClass;var c=endeca.classes.result[b.childClass]||endeca.classes.result;var a=new c({templateKey:b.templateKey,resultData:b.result,parentNode:b.contentNode||this.contentNode});this.resultNodes.push(a)},hide:function(){this.parentNode.hide()},show:function(){this.parentNode.show()},reset:function(){if(this.templateKey){if(this.node){this.node.remove()}}else{if(this.contentNode){this.contentNode.update()}}this.resultData=$A();this.resultNodes=$A()}});var generic=generic||{};var endeca=endeca||{};endeca.classes=endeca.classes||{};endeca.classes.result=endeca.helpers.mixin(Class.create({initialize:function(a){this.parentNode=null;this.node=null;this.resultData=null;this.templateKey=null;Object.extend(this,a)},displayResult:function(args){var args=args||{};var parentNode=args.parentNode||this.parentNode;generic.templatefactory.get({key:this.templateKey,templateString:eval(this.templateKey),forceReload:true}).evaluateCallback({object:args.resultData||this.resultData,callback:function(parentNode,args,html){endeca.helpers.div.update(html);this.node=endeca.helpers.div.firstDescendant();if(parentNode){parentNode.insert(this.node)}this.displayResultCallback(args)}.bind(this).curry(parentNode,args)})},displayResultCallback:function(a){},reset:function(){if(this.node&&this.node.parentNode&&this.node!=this.parentNode){this.node.remove()}else{this.parentNode.update()}}}),endeca.configuration.mixins("result"));endeca.classes.results.group=Class.create(endeca.helpers.mixin(endeca.classes.results,endeca.configuration.mixins("results.group")),{initialize:function($super,a){this.baseClass=endeca.classes.results;$super(a)},createResult:function($super,b){var b=b||{};var c=b.baseClass||this.baseClass;if(c){var a=new c[b.childClass]({resultData:b.result,parentNode:this.contentNode||this.node||this.parentNode,summaryResultData:this.summaryResultData});this.resultNodes.push(a)}}});endeca.classes.results.group.refinements=Class.create(endeca.helpers.mixin(endeca.classes.results.group,endeca.configuration.mixins("results.group.refinements")),{initialize:function($super,a){this.moreRefinements=$A();$super(a)},displayResults:function($super,a){var a=a||{};a.childClass="refinements";$super(a);$$(".expand-all").each(function(b){if(this.moreRefinements.length){var c=endeca.control.productQuery.getMergedQueryString("Ne="+this.moreRefinements.join("+"));b.stopObserving("click");b.observe("click",this.onClick.bind(this).curry(c));b.show()}else{b.hide()}}.bind(this))},createResult:function($super,b){var b=b||{};$super(b);var a=this.resultNodes.last();if(a&&a.moreRefinements){this.moreRefinements.push(a.moreRefinement)}},reset:function($super,a){this.moreRefinements=$A();$super(a)}});endeca.classes.results.group.breadcrumbs=Class.create(endeca.helpers.mixin(endeca.classes.results.group,endeca.configuration.mixins("results.group.breadcrumbs")),{displayResults:function($super,a){var a=a||{};a.baseClass=endeca.classes.results.breadcrumbs;$super(a)}});endeca.classes.results.group.contentzones=Class.create(endeca.helpers.mixin(endeca.classes.results.group,endeca.configuration.mixins("results.group.contentzones")),{initialize:function($super,a){this.resultData=$H();this.zones=$H();this.crawlData=$A();this.hasSoloResults=false;this.totalResults=0;$super(a)},processCrawlData:function(a){var a=a||{crawlData:$A()};this.resultData.set("crawlData",{style:"content",records:a.crawlData})},displayResults:function($super,a){var a=a||{};a.baseClass=endeca.classes.results.contentzone;$H(endeca.configuration.contentzones).each(function(c){var b=this.resultData.get(c.key);if(b&&b.records&&b.records.length){a.resultData=$A([this.resultData.get(c.key).records]);a.childClass=this.resultData.get(c.key).style;a.node=c.value.node;if(c.value.solo){this.hasSoloResults=true}if(c.value.counted){this.totalResults+=this.resultData.get(c.key).records.length}$super(a);a.node.show()}else{c.value.node.hide()}}.bind(this))},hide:function(){this.resultNodes.invoke("hide")},show:function(){this.resultNodes.invoke("show")},reset:function(){this.hasSoloResults=false;this.totalResults=0;this.resultNodes.invoke("reset")}});endeca.classes.results.recentsearches=Class.create(endeca.helpers.mixin(endeca.classes.results,endeca.configuration.mixins("results.recentsearches")),{initialize:function($super,a){this.searchTerm=null;this.maximumRecentSearches=5;$super(a)},displayResults:function($super,a){this.setupRecentSearches();$super({templateKey:"endeca.templates.recentSearch"});this.resultNodes.invoke("displayResult")},setupRecentSearches:function(){var b=encodeURIComponent(this.searchTerm.capitalize());var a=typeof generic.cookie("researches")!="undefined"?$A(String(generic.cookie("researches")).split(":::")):$A();a=a.findAll(function(d){return d!=b}.bind(this));if(this.searchTerm){a.unshift(b)}a=a.splice(0,this.maximumRecentSearches);if(a.length){generic.cookie("researches",a.join(":::"))}var c=new endeca.classes.query;this.resultData=a.map(function(d){c.searchTerm=d;c.prepare();return{searchTerm:decodeURIComponent(d),"Selection Link":c.toQueryString(),"Display Link":"?search="+d}})}});endeca.classes.results.refinements=Class.create(endeca.helpers.mixin(endeca.classes.results,endeca.configuration.mixins("results.refinements")),{initialize:function($super,a){this.templateKey="endeca.templates.refinements.container";this.childClass="refinement";this.moreRefinement=null;$super(a);this.displayResults({resultData:this.resultData["Dimension Values"]});this.resultNodes.invoke("displayResult")},createResult:function($super,a){a.templateKey="endeca.templates.refinements.link";if(this.resultData["Dim Value Properties"]&&this.resultData["Dim Value Properties"]["DGraph.More"]&&a.result["Dim Value Name"]=="More..."){a.templateKey="endeca.templates.refinements.showAll";this.moreRefinement=a.result["Dim Value ID"]}$super(a)}});endeca.classes.results.breadcrumbs=Class.create(endeca.helpers.mixin(endeca.classes.results,endeca.configuration.mixins("results.breadcrumbs")),{initialize:function($super,a){this.childClass="breadcrumb";$super(a);this.displayResults({resultData:this.resultData["Dimension Values"]})}});endeca.classes.results.breadcrumbs.top=Class.create(endeca.helpers.mixin(endeca.classes.results.breadcrumbs,endeca.configuration.mixins("results.breadcrumbs.top")),{});endeca.classes.results.breadcrumbs.left=Class.create(endeca.helpers.mixin(endeca.classes.results.breadcrumbs,endeca.configuration.mixins("results.breadcrumbs.left")),{initialize:function($super,a){this.templateKey="endeca.templates.breadcrumbs.container";$super(a)}});endeca.classes.result.breadcrumb=Class.create(endeca.helpers.mixin(endeca.classes.result,endeca.configuration.mixins("result.breadcrumb")),{initialize:function($super,a){$super(a);this.templateKey="endeca.templates.breadcrumbs.link";this.displayResult()}});endeca.classes.results.products=Class.create(endeca.helpers.mixin(endeca.classes.results,endeca.configuration.mixins("results.products")),{initialize:function($super,a){this.childClass="product";this.summaryTemplateKey="endeca.templates.summary.product";$super(a)},createResult:function($super,a){a.templateKey=this.childTemplateKey||"endeca.templates.products.result";a.result.context="product";$super(a)}});endeca.classes.result.product=Class.create(endeca.helpers.mixin(endeca.classes.result,endeca.configuration.mixins("result.product")),{initialize:function($super,a){this.addButton=null;this.selectedShade=null;this.shadeNameNode=null;this.shadeMouseOverState=false;this.shadeMouseOutTimeout=null;$super(a);this.displayResult()},displayResult:function($super,a){this.setupReviewData();this.setupBrandData();$super(a)},displayResultCallback:function(a){this.setupQuickShop();this.setupAddToBag();if(this.resultData.shaded){this.setupShaded()}else{this.setupNonShaded()}},setupReviewData:function(){this.resultData.ratingDisplay=this.resultData.TOTAL_REVIEW_COUNT!=null?"block":"none";this.resultData.ratingReviewWord=this.resultData.TOTAL_REVIEW_COUNT>1?generic.rb("language").get("reviews"):generic.rb("language").get("review");this.resultData.ratingRounded=Math.round(this.resultData.AVERAGE_RATING*10)/10},setupBrandData:function(){this.resultData.price=this.resultData.skus[0].formattedPrice;this.resultData.PRODUCT_SIZE=this.resultData.skus[0].PRODUCT_SIZE;this.resultData.shadesDisplayed=endeca.configuration.maxmimumShades;this.resultData.totalSkus=this.resultData.skus.length},setupQuickShop:function(){this.node.select("a.quickshop-link").each(function(a){bb.productView.initQuickshopLink(a,this.resultData)}.bind(this))},setupAddToBag:function(){var b=this.node.select("a.btn-add-to-bag")[0];var a=this.node.select("span.add-progress")[0];if(b){this.addButton=bb.productView.addButton({addButtonNode:b,progressNode:a,descriptionContainerNode:this.node,skuData:this.resultData.skus[0],itemType:"cart"});this.addButton.setShoppable()}},setupNonShaded:function(){if(this.node.down(".nonshaded")){this.node.down(".nonshaded").show()}},setupShaded:function(){var a=this.node.select(".shades")[0];if(a){var b=bb.productView.shadePicker({productData:this.resultData,pickerContainerNode:a,isSearchResult:1,shadeLimit:endeca.configuration.maxmimumShades});a.show();this.shadeNameNode=this.node.select(".shade-name")[0];if(this.shadeNameNode){this.node.observe("swatch:mouseover",function(d){var e=d.memo;this.shadeNameNode.update(e.SHADENAME);this.shadeMouseOverState=true;if(this.shadeMouseOutTimeout){clearTimeout(this.shadeMouseOutTimeout)}}.bind(this));var c=function(){if(!this.shadeMouseOverState){this.shadeNameNode.update(this.selectedShade.SHADENAME)}}.bind(this);this.node.observe("swatch:mouseout",function(d){this.shadeMouseOverState=false;this.shadeMouseOutTimeout=setTimeout(c,250)}.bind(this))}if(this.addButton){this.node.observe("select:sku",function(d){var e=d.memo;this.addButton.setSkuData(e);this.addButton.setShoppable();this.selectedShade=e;if(this.shadeNameNode){this.shadeNameNode.update(e.SHADENAME)}}.bind(this))}this.node.fire("select:sku",this.resultData.skus[0]);if(this.resultData.skus.size()>=endeca.configuration.maxmimumShades){this.node.down(".more-shades").show()}}}});endeca.classes.results.pagination=Class.create(endeca.helpers.mixin(endeca.classes.results,endeca.configuration.mixins("results.pagination")),{initialize:function($super,a){this.childClass="page";$super(a)},displayResults:function($super){if(this.resultData){this.setupNodes();var a=new endeca.classes.query({recordsPerPage:10000});this.createResult({templateKey:"endeca.templates.pagination.viewAll",result:{"Selection Link":a.toQueryString()}});if(this.resultData.previousPageLink){this.createResult({templateKey:"endeca.templates.pagination.previous",result:{"Selection Link":this.resultData.previousPageLink}})}this.resultData.directPageLinks.each(function(c,b){this.createResult({templateKey:this.resultData.numberOfCurrentPage==b+1?"endeca.templates.pagination.current":"endeca.templates.pagination.link",result:{"Selection Link":c,Content:b+1}})}.bind(this));if(this.resultData.nextPageLink){this.createResult({templateKey:"endeca.templates.pagination.next",result:{"Selection Link":this.resultData.nextPageLink}})}}}});endeca.classes.result.page=Class.create(endeca.helpers.mixin(endeca.classes.result,endeca.configuration.mixins("result.page")),{initialize:function($super,a){$super(a);this.displayResult()}});endeca.classes.result.summary=Class.create(endeca.helpers.mixin(endeca.classes.result,endeca.configuration.mixins("result.summary")),{displayResult:function($super,b){var b=b||{};if(this.resultData.searchTerm==""){this.templateKey="endeca.templates.summary.noTerm"}else{if(this.hasResults){this.templateKey="endeca.templates.summary.results"}else{this.templateKey="endeca.templates.summary.noResults"}}$super(b);var c=this.node.down("#auto-correct");if(this.resultData.correctedTerms.length&&c){this.templateKey="endeca.templates.summary.autoCorrect";b.resultData=this.resultData;b.resultData.correctedTerm=this.resultData.correctedTerms.join(",");b.parentNode=c;$super(b)}var a=this.node.down("#did-you-mean");if(this.resultData.didYouMean.length&&a){this.templateKey="endeca.templates.summary.didYouMean";b.resultData=this.resultData.didYouMean[0];b.parentNode=a;$super(b)}},reset:function(){this.parentNode.update()}});endeca.classes.results.contentzone=Class.create(endeca.helpers.mixin(endeca.classes.results,endeca.configuration.mixins("results.contentzone")),{initialize:function($super,a){$super(a)},displayResults:function($super,a){this.zoneName=this.resultData[0].Properties.Zone;$super(a)},createResult:function($super,a){var a=a||{};a.templateKey=a.childTemplateKey||this.childTemplateKey||endeca.configuration.contentzones[this.zoneName].template;$super(a)}});endeca.classes.results.contentzone.content=Class.create(endeca.helpers.mixin(endeca.classes.results.contentzone,endeca.configuration.mixins("results.contentzone.content")),{initialize:function($super,a){this.summaryTemplateKey="endeca.templates.summary.content";$super(a);if(this.resultData.size()){this.displayResults()}},displayResults:function($super,a){$super(a);this.resultNodes.invoke("displayResult")},createResult:function($super,a){a.result=a.result.Properties;$super(a)}});endeca.classes.results.contentzone.products=Class.create(endeca.helpers.mixin(endeca.classes.results.contentzone,endeca.configuration.mixins("results.contentzone.products")),{initialize:function($super,a){this.childClass="product";$super(a);this.resultData.each(function(b){$A(b.Records).each(function(c){var d=new endeca.classes.query({searchTerm:c["Record Spec"],searchKey:"rec_id",callbackCompleted:this.searchCompleted.bind(this)});d.prepare();d.execute()}.bind(this))}.bind(this))},searchCompleted:function(b){var a=new endeca.classes.catalog.product({jsonResult:b.jsonResult});this.displayResults({resultData:a.getProducts()})},createResult:function($super,a){a.result.context="featured-product";$super(a)}});endeca.classes.typeahead=Class.create({initialize:function(a){this.minSearchLength=3;this.maxProductsToShow=2;this.maxContentToShow=1;this.inputElement=null;this.resultsContainer=null;this.fullSearchBaseUrl="/products/search/esearch.tmpl?search=";this.closeLinkNode=null;this.productResultsNode=null;this.productsSummaryNode=null;this.contentResultsNode=null;this.searchTerm=null;Object.extend(this,a||{});if(this.resultsContainer&&this.inputElement){this.closeLinkNode=this.closeLink||this.resultsContainer.down(".close-link");this.productResultsNode=this.productResultsNode||this.resultsContainer.down(".product-results");this.productsSummaryNode=this.productsSummaryNode||this.resultsContainer.down(".product-summary");this.contentResultsNode=this.contentResultsNode||this.resultsContainer.down(".content-results");this.productResults=new endeca.classes.results.products({parentNode:this.productResultsNode,childTemplateKey:"endeca.templates.typeahead.productResult"});this.productsSummary=new endeca.classes.result({parentNode:this.productsSummaryNode,templateKey:"endeca.templates.typeahead.productSummary"});this.contentResults=new endeca.classes.results.contentzone.content({parentNode:this.contentResultsNode,childTemplateKey:"endeca.templates.typeahead.contentResult"});this.inputElement.observe("keyup",this.onKeyUp.bind(this));this._watchToClose()}this.productQuery=new endeca.classes.query({recordFilters:$A(["activeSkus","notSoldOut","products"]),recordsPerPage:this.maxProductsToShow,defaultDimensionIds:$A([]),callbackCompleted:this.productSearchCompleted.bind(this)});this.contentQuery=new endeca.classes.query({recordFilters:["content"],rollup:false,recordsPerPage:this.maxContentToShow,callbackCompleted:this.contentSearchCompleted.bind(this)})},onKeyUp:function(){this.search()},_watchToClose:function(){Event.observe(document.body,"click",function(b){var a=b.element();if((a==this.closeLinkNode||!a.descendantOf(this.resultsContainer))&&a!=this.inputElement&&a!=this.resultsContainer){this.resultsContainer.hide()}}.bind(this),this)},search:function(){var a=String(this.inputElement.value).strip();if(a!=this.searchTerm&&a.length>=this.minSearchLength){this.resetQueries();this.searchTerm=a;this.productQuery.searchTerm=this.searchTerm;this.productQuery.prepare();this.productQuery.execute();this.contentQuery.searchTerm=this.searchTerm;this.contentQuery.prepare();this.contentQuery.execute()}},productSearchCompleted:function(){if(this.contentQuery){if(this.contentQuery.jsonResult){this.searchCompleted()}}else{this.searchCompleted()}},contentSearchCompleted:function(){if(this.productQuery){if(this.productQuery.jsonResult){this.searchCompleted()}}else{this.searchCompleted()}},searchCompleted:function(){this.resetResults();this.productCatalog=new endeca.classes.catalog.product({jsonResult:this.productQuery.jsonResult});this.meta=new endeca.classes.meta({jsonResult:this.productQuery.jsonResult,searchKey:this.productQuery.searchKey,followRedirects:false});this.contentCatalog=new endeca.classes.catalog.content({jsonResult:this.contentQuery.jsonResult});if(this.productCatalog.productCount()>0){this.productResults.resultData=this.productCatalog.getProducts();this.productResults.displayResults();this.productsSummary.resultData={totalProducts:this.productCatalog.productCount(),resultText:this.productCatalog.productCount()==1?endeca.rb.get("product"):endeca.rb.get("products")};this.productsSummary.displayResult();this.productResults.show();this.hasResults=true}else{this.productResults.hide()}if(this.contentCatalog.contentList.size()>0){this.contentResults.resultData=this.contentCatalog.contentList;this.contentResults.displayResults();this.contentResults.show();this.hasResults=true}else{this.contentResults.hide()}this.resultsContainer.select(".see-all-results").each(function(a){a.href=this.fullSearchBaseUrl+this.searchTerm.split(" ").join("+")}.bind(this));if(this.hasResults){this.resultsContainer.show()}else{this.resultsContainer.hide()}},resetQueries:function(){if(this.productQuery){this.productQuery.reset()}if(this.contentQuery){this.contentQuery.reset()}},resetResults:function(){this.hasResults=false;if(this.productResults){this.productResults.reset()}if(this.contentResults){this.contentResults.reset()}if(this.refinementResults){this.refinementResults.reset()}if(this.breadcrumbs){this.breadcrumbs.reset()}if(this.summaryResult){this.summaryResult.reset()}if(this.productsSummary){this.productsSummary.reset()}}});Object.extend(endeca.templates,{typeahead:{productResult:'<div class="result">    <img alt="#{PROD_RGN_NAME}" src="#{SMALL_IMAGE}" class="product-thumb">    <dl class="search-product-text">    <dd class="title"><a href="#{url}" onclick="endeca.coremetrics.productClick();">#{PROD_RGN_NAME}</a></dd>    <dd class="price">#{price}</dd>    <dd class="stars" style="display:#{ratingDisplay}"><img alt="#{ratingRounded}" src="#{RATING_IMAGE}">&nbsp; (#{TOTAL_REVIEW_COUNT} #{ratingReviewWord})</dd>    <dd class="shop"><a href="#{url}" onclick="endeca.coremetrics.productClick();">Shop Now <img src="/images/icons/arrow-right.gif"/></a></dd>    </dl></div>',productSummary:"<span>Top #{totalProducts} #{resultText} shown</span>",contentResult:'<div class="result">    <img alt="#{title}" src="/images/search/generic_product_icon.gif" class="product-thumb">    <dl class="search-product-text">    <dd class="title"><a href="#{link}" onclick="endeca.coremetrics.contentClick();">#{title}</a></dd>    <dd class="shop"><a href="#{link}" onclick="endeca.coremetrics.contentClick();">#{link_text} <img src="/images/icons/arrow-right.gif"/></a></dd>    </dl></div>',contentSummary:"<span>Related Information</span>"}});
