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:16335,logHost:generic.env.domain.match(/www/)?"njlndca01":"localhost",logPort:16339,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"),select:new Element("select"),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(){this.accordionHeaderNode=this.node.down(".accordion-header");this.accordionContentNode=this.node.down(".accordion-content");if(this.accordionHeaderNode&&this.accordionContentNode){this.accordionHeaderNode.stopObserving("click");this.accordionHeaderNode.observe("click",this.toggleAccordion.bind(this))}},toggleAccordion:function(){if(this.accordionHeaderNode.hasClassName("collapsed")){this.openAccordion()}else{this.closeAccordion()}},openAccordion:function(){this.accordionHeaderNode.removeClassName("collapsed");this.accordionContentNode.show()},closeAccordion:function(){this.accordionHeaderNode.addClassName("collapsed");this.accordionContentNode.hide()}};endeca.mixins.pagination={initialize:function($super,a){this.pagingNodeTop=null;this.pagingNodeBottom=null;$super(a)},displayResults:function($super,a){$super(a);this.setupPagination()},setupPagination:function(){this.paginationSummaryNode=this.node.down(".pagination-summary");if(this.pagination){if(this.pagingNodeTop){this.pagination.parentNode=this.pagingNodeTop;this.pagination.displayResults()}if(this.pagingNodeBottom){this.pagination.parentNode=this.pagingNodeBottom;this.pagination.displayResults()}if(this.paginationSummaryNode){this.pagination.paginationSummaryNode=this.paginationSummaryNode;this.pagination.setupSummary()}}},reset:function($super,a){$super(a);if(this.pagination){this.pagination.reset()}if(this.pagingNodeTop){this.pagingNodeTop.update()}if(this.pagingNodeBottom){this.pagingNodeBottom.update()}if(this.paginationSummaryNode){this.paginationSummaryNode.update()}}};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["Selection Link"]||b.resultData["Selection Link"]||b.resultData["Removal Link"];var c=b.node||b.parentNode||this.node||this.parentNode;c=c.down(".link-mixin")||c.down()||c;if(d&&c){var f=endeca.control.productQuery.getMergedQueryString(d);c.observe("click",this.onClick.bind(this).curry(f));c.observe("simulate: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);scroll(0,0);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.mixins.selectbox={displayResults:function($super,a){$super(a);this.node.observe("change",this.onChange.bind(this))},onChange:function(b){var a=b.element().options[b.element().selectedIndex];a.fire("simulate:click");b.stop();return false}};endeca.classes.query=Class.create({initialize:function(a){this.used=0;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.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",productShoppable:"p_shoppable|GT+0"});this.rangeFilters=$A(["skuSearchable","productShoppable","productDisplayable"]);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)",discontinued:"NOT(s_discontinued:1)"});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},prepare:function(){this.setupServer();if(this.recordId){this.setupRecordId()}else{if(this.searchTerm){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();new Ajax.Request(a,{method:"get",onComplete:this.onComplete.bind(this)})},onComplete:function(a){this.used=1;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(a){var a=a||{};this.urlParams.set("Ntt",a.searchTerm||this.searchTerm);this.urlParams.set("Ntk",this.searchKey);this.urlParams.set("Ntx",this.searchMode.match(/mode\+/)?this.searchMode:("mode+"+this.searchMode))},setupDimensionSearch:function(a){var a=a||{};this.urlParams.set("D",a.searchTerm||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(/\+/g," ")}});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("item"):endeca.rb.get("items");this.searchInfo.startingRecord=this.searchInfo.totalProductRecords?this.getMetaProp("Starting Record Number",1,true):0;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();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;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:"View more &raquo;",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,PRICE: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()}else{if(this.node){this.node.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){this.node=endeca.helpers.div.update(html).firstDescendant()||endeca.helpers.select.update(html).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){if(this.displayResultCallback){this.displayResultCallback({"Selection Link":"Ne="+this.moreRefinements.join("+"),node:b})}b.show()}else{b.hide()}}.bind(this))},createResult:function($super,b){var b=b||{};$super(b);var a=this.resultNodes.last();if(a&&a.moreRefinement){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})},setupNodes:function(a){var a=a||{};this.node=this.parentNode||a.node},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=endeca.classes.results.contentzone[this.resultData.get(c.key).style]?this.resultData.get(c.key).style:"content";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);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).replace(/\+/," "),"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(endeca.configuration.refinementTemplates&&endeca.configuration.refinementTemplates[this.resultData["Dimension ID"]]){a.templateKey=endeca.configuration.refinementTemplates[this.resultData["Dimension ID"]]}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")),{displayResults:function($super,a){a.templateKey="endeca.templates.breadcrumbs.top.link";a.resultData.collect(function(b){return Object.extend(b,{"Dimension Name":this.resultData["Dimension Name"]})}.bind(this));$super(a)}});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.left.container";$super(a)},displayResults:function($super,a){a.templateKey="endeca.templates.breadcrumbs.left.link";$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.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)},displayResults:function($super,a){$super(a);if(this.resultNodes.size()){this.resultNodes.first().node.addClassName("first");this.resultNodes.last().node.addClassName("last")}},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.shadeResults=null;this.addButton=null;$super(a);this.displayResult()},displayResult:function($super,a){this.setupReviewData();this.setupBrandData();$super(a)},displayResultCallback:function(a){this.setupQuickShop();this.setupNote();if(this.resultData.GIFTSET_COMPONENTS){this.setupGiftSetComponents()}if(this.resultData.shaded){this.setupShades()}},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")},setupBrandData:function(){this.resultData.price=el.productView.formatPriceRange(this.resultData);this.resultData.PRODUCT_SIZE=this.resultData.skus[0].PRODUCT_SIZE;this.resultData.shadesDisplayed=endeca.configuration.maxmimumShades;this.resultData.totalSkus=this.resultData.skus.length;this.resultData.skinTypeString=this.resultData.ATTRIBUTE_SKINTYPE?(typeof this.resultData.ATTRIBUTE_SKINTYPE=="string"?this.resultData.ATTRIBUTE_SKINTYPE:this.resultData.ATTRIBUTE_SKINTYPE.join(", ")):""},setupQuickShop:function(){this.node.select("a.quickshop-link").each(function(a){a.observe("click",function(c){c.preventDefault();var b=el.productView.quickshop({productData:this.resultData})}.bind(this));a.observe("mouseover",function(b){this.select(".quickshop-btn")[0].addClassName("qs-active")});a.observe("mouseout",function(b){this.select(".quickshop-btn")[0].removeClassName("qs-active")})}.bind(this))},setupNote:function(){if(this.resultData.MISC_FLAG){var c=this.node.select(".prod_details .prod_title .note")[0];if(c){var b=el.productView.flagImages.get(this.resultData);var a=new Element("img",{src:b.mppimg,alt:b.alt});c.update(a)}}},setupGiftSetComponents:function(){var a=this.node.down(".giftset");if(a){a.show()}},setupShades:function(){if(this.node.down(".shade_selector")){var a=endeca.configuration.maxmimumShades?this.resultData.skus.slice(0,this.resultData.skus.size()>=endeca.configuration.maxmimumShades?endeca.configuration.maxmimumShades:this.resultData.skus.size()):this.resultData.skus;a=a.collect(function(b){b.url=this.resultData.url;return b}.bind(this));this.shadeResults=new endeca.classes.results({resultData:a,parentNode:this.node.down(".shade_selector"),childClass:"shade"});this.shadeResults.displayResults()}}});endeca.classes.result.shade=Class.create(endeca.helpers.mixin(endeca.classes.result,endeca.configuration.mixins("result.shade")),{initialize:function($super,a){$super(a);this.templateKey="endeca.templates.products.shade";this.displayResult()},displayResultCallback:function(a){if(this.node.down(".set_item")){this.setupHexValues()}if(this.node.down(".btn-tos")){this.setupInventoryStatus()}if(this.node.down(".shade_info .note")){this.setupNote()}if(this.node.down(".shade_info")){this.node.down(".shade_info").show()}},setupHexValues:function(){var a=this.node.down(".set_item");var g=this.resultData.HEX_VALUE_STRING.split(/,/);for(var d=0;d<g.length;d++){var e=new Element("span",{"class":"swatch"});var f=new Element("a",{href:this.resultData.url});var c=new Element("span",{"class":"swatch_ico"});var b=g[d].replace(" ","");c.setStyle({backgroundColor:b});f.insert(c);e.insert(f);a.insert(e)}},setupInventoryStatus:function(){el.productView.displayInventoryStatus({skuData:this.resultData,node:this.node.down(".btn-tos")})},setupNote:function(){if(this.resultData.MISC_FLAG){var c=this.node.down(".shade_info .note");var b=el.productView.flagImages.get(this.resultData);var a=new Element("img",{src:b.mppimg,alt:b.alt});c.update(a)}}});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();this.resultNodes.clear();var a=new endeca.classes.query({recordsPerPage:10000});this.createResult({templateKey:"endeca.templates.pagination.viewAll",result:{"Selection Link":a.toQueryString()}});if(this.resultData.previousPageLink&&endeca.templates.pagination.previous){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&&endeca.templates.pagination.next){this.createResult({templateKey:"endeca.templates.pagination.next",result:{"Selection Link":this.resultData.nextPageLink}})}this.resultNodes.first().node.addClassName("first");this.resultNodes.last().node.addClassName("last")}},setupSummary:function(){if(this.paginationSummaryNode){if(this.summaryResultData&&this.summaryResultData.totalProductRecords>1){var c="endeca.templates.pagination.summary.shown";if(this.resultData&&this.resultData.numberOfCurrentPage==1){c="endeca.templates.pagination.summary.topShown"}this.createResult({templateKey:c,result:this.summaryResultData,contentNode:this.paginationSummaryNode})}if(this.resultData&&this.resultData.nextPageLink){this.createResult({templateKey:"endeca.templates.pagination.summary.next",result:{"Selection Link":this.resultData.nextPageLink},contentNode:this.paginationSummaryNode})}if(this.summaryResultData){var a=null;var d=null;if(this.summaryResultData.startingRecord==1&&this.summaryResultData.endingRecord>10){a="endeca.templates.pagination.summary.viewLess";d={}}else{if(this.summaryResultData.totalProductRecords>10){a="endeca.templates.pagination.summary.viewAll";d={recordsPerPage:10000}}}if(a){var b=new endeca.classes.query(d);this.createResult({templateKey:a,result:{"Selection Link":b.toQueryString()},contentNode:this.paginationSummaryNode})}}}}});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,c){var c=c||{};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(c);var d=this.node.down(".searchTerms");if(this.resultData.breadcrumbs&&d){var a=this.resultData.breadcrumbs.pluck("Dimension Values").flatten().pluck("Dim Value Name").collect(function(f){return', "'+f+'"'});d.insert(a.join(""))}var e=this.node.down("#auto-correct");if(this.resultData.correctedTerms.length&&e){this.templateKey="endeca.templates.summary.autoCorrect";c.resultData=this.resultData;c.resultData.correctedTerm=this.resultData.correctedTerms.join(",");c.parentNode=e;$super(c)}var b=this.node.down("#did-you-mean");if(this.resultData.didYouMean.length&&b){this.templateKey="endeca.templates.summary.didYouMean";c.resultData=this.resultData.didYouMean[0];c.parentNode=b;$super(c)}},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");this.resultNodes.last().node.addClassName("last");this.resultNodes.each(function(b){if(b.resultData.content_link=="undefined"){b.node.down(".content-link").hide()}})},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.contentSummaryNode=null;this.noResultsNode=null;this.loadingNode=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.contentSummaryNode=this.contentSummaryNode||this.resultsContainer.down(".content-summary");this.loadingNode=this.loadingNode||this.resultsContainer.down(".loading");this.noResultsNode=this.noResultsNode||this.resultsContainer.down(".no-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.contentSummary=new endeca.classes.result({parentNode:this.contentSummaryNode,templateKey:"endeca.templates.typeahead.contentSummary"});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:["discontinued","activeSkus","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.showLoading();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=this.meta.searchInfo;this.productsSummary.displayResult();this.productResults.show();this.hasResults=true}else{this.productResults.hide()}if(this.meta.supplementalContent.size()){this.contentResults.resultData=$A([this.meta.supplementalContent.get("ContentZone").records[0]]);this.contentResults.zoneName="content";this.contentResults.displayResults();this.contentSummary.resultData={totalContentRecords:this.meta.supplementalContent.get("ContentZone").records.size()};this.contentSummary.displayResult();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("+");if(this.hasResults){a.show()}else{a.hide()}}.bind(this));this.resultsContainer.show();if(this.hasResults){if(this.noResultsNode){this.noResultsNode.hide()}}else{if(this.noResultsNode){this.noResultsNode.show()}}this.hideLoading()},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()}if(this.contentSummary){this.contentSummary.reset()}},showLoading:function(){if(this.loadingNode){this.loadingNode.show()}},hideLoading:function(){if(this.loadingNode){this.loadingNode.hide()}}});
