(function(app){if(app){app.search={result:null,bindClickToAllRefineLinks:function(){jQuery(".compareCheck").click(function(){var box=jQuery(this)[0];var data=jQuery(this).data("data");if(box.checked===true){app.compare.addProduct({id:data.id,category:data.catId,boxId:data.boxId,img:jQuery(this).parent().siblings("div.image").find("p.productimage a img")});}else{app.compare.removeProduct({id:data.id,category:data.catId,boxId:data.boxId,img:jQuery(this).parent().siblings("div.image").find("p.productimage a img")});}});jQuery("div.refineattributes ul li a").click(function(e){app.search.result.toggleRefine(this);return false;});jQuery("#searchrefinements div.refinedclear a").click(function(e){var refID=jQuery(this).parents()[1].id;app.search.result.clearRefinement(app.search.result.get(refID));return false;});jQuery("#content div.swatches div.invisible").hide();jQuery("#content div.swatches a.swatch img.hiddenthumbnail").hide();jQuery("#content div.swatches > a").click(function(e){var cont=jQuery(this).parent().find("div.palette");cont.show().focus();return false;});jQuery("#content div.swatches div.invisible").mouseout(function(e){if(!e)var e=window.event;var tg=(window.event)?e.srcElement:e.target;if(tg.nodeName!='DIV')return;var reltg=(e.relatedTarget)?e.relatedTarget:e.toElement;while(reltg!=tg&&reltg.nodeName!='BODY')
reltg=reltg.parentNode
if(reltg==tg)return;jQuery(this).hide();return false;});jQuery("#content div.swatches div.palette a.swatch").bind("mouseover mouseout",function(e){var swatch=jQuery(this);app.producttile.toggleVariationThumbnail(swatch);});jQuery("#content div.swatches div.palette a.swatch").click(function(e){var swatch=jQuery(this);app.producttile.selectVariation(swatch);return false;});},bindClickToPaginationLinks:function(){jQuery("#search div.pagination a").click(function(e){var pageName=jQuery(this).attr("class");app.search.result.pageTo(pageName);return false;});},bindChangeToSortBy:function(){jQuery("div.sortby select").change(function(e){var url=jQuery(this).val();app.search.result.updateGrid(url);return false;});},bindChangeToItemsPerPage:function(){jQuery("div.itemsperpage select").change(function(e){var url=jQuery(this).val();app.search.result.updateGrid(url);return false;});},updateRefineBindings:function(){app.search.bindClickToAllRefineLinks();app.search.bindClickToPaginationLinks();app.search.bindChangeToSortBy();app.search.bindChangeToItemsPerPage();},SearchResult:function(keywordSearch,categoryID)
{this.refinements=[];this.initialized=false;this.keywordSearch=keywordSearch;this.categoryID=null;this.loading=false;this.get=function(id)
{for(var i=0;i<this.refinements.length;i++)
{if(this.refinements[i].id==id)return this.refinements[i];}
return null;};this.register=function(dwRefinement,pos)
{if(pos<1)return;if(this.isRegistered(dwRefinement,pos)&&this.initialized)
{this.refresh(dwRefinement);this.updateValues(dwRefinement);this.updateClear(dwRefinement);return;}
else if(this.isRegistered(dwRefinement)&&this.initialized)
{this.moveRefinement(dwRefinement,pos);this.refresh(dwRefinement);this.updateValues(dwRefinement);this.updateClear(dwRefinement);return;}
dwRefinement.refreshed=true;this.refinements.splice(pos-1,0,dwRefinement);if(this.initialized)
{this.renderRefinement(dwRefinement,pos);}};this.refresh=function(dwRefinement)
{for(var i=0;i<this.refinements.length;i++)
{if(this.refinements[i].id!=dwRefinement.id)continue;this.refinements[i].refreshed=true;return;}};this.removeRefinement=function(dwRefinement)
{jQuery("#"+dwRefinement.id).remove();};this.isRegistered=function(dwRefinement,pos)
{for(var i=0;i<this.refinements.length;i++)
{if((this.refinements[i].id==dwRefinement.id)&&pos==null)return true;if((this.refinements[i].id==dwRefinement.id)&&(pos-1)==i)return true;}
return false;};this.renderRefinement=function(dwRefinement,pos)
{var refSet=jQuery("div.refinement");if(refSet.length==0||refSet.length<pos-1)pos=1;var predecessorID=null;if(typeof(this.refinements[pos-2])!="undefined")
{predecessorID=this.refinements[pos-2].id;}
if(predecessorID!=null)
{jQuery("#"+predecessorID).after(this.buildHtmlRefinement(dwRefinement));}
else
{jQuery("#searchrefinements").prepend(this.buildHtmlRefinement(dwRefinement));}
this.bindToggleEvent(dwRefinement);this.updateValues(dwRefinement);};this.bindToggleEvent=function(dwRefinement)
{jQuery("#"+dwRefinement.id+" h3").click(function(e){jQuery(this).toggleClass("collapsed");jQuery(this).nextAll("div.refineattributes").toggle();});};this.bindRefineEvents=function(dwRefinement)
{if(dwRefinement.type=="category")
{return;}
else
{jQuery("#"+dwRefinement.id+" ul li a").click(function(e){app.search.result.toggleRefine(this);return false;});return;}};this.buildHtmlRefinement=function(dwRefinement)
{var html="";if(dwRefinement.type=="category")
{html="<div id=\""+dwRefinement.id+"\" class=\"searchcategories refinement\">"+"<ul id=\"category-level-1\" class=\"refinementcategory\"><\/ul><\/div>";}
else
{var html="<div id=\""+dwRefinement.id+"\" class=\"navgroup refinement\">"+"<h3>"+dwRefinement.displayName+"</h3><div class=\"refinedclear\"><\/div>";html+="<div class=\"refineattributes\">";if(dwRefinement.swatchBased)
{html+="<div class=\"swatches "+dwRefinement.displayName+"\"><ul><\/ul><\/div><div class=\"clear\"><\/div>";}
else
{html+="<div><ul><\/ul><\/div>";}
html+="<\/div>";}
return html;};this.moveRefinement=function(dwRefinement,positionTo)
{var currentIdx=null;var newIdx=positionTo-1;if(newIdx>this.refinements.length)return;for(var i=0;i<this.refinements.length;i++)
{if(this.refinements[i].id==dwRefinement.id)
{currentIdx=i;break;}}
if(currentIdx==null)return;this.refinements[currentIdx]=this.refinements[newIdx];this.refinements[newIdx]=dwRefinement;};this.updateValues=function(dwRefinement)
{jQuery("#"+dwRefinement.id+" ul").empty();if(dwRefinement.type=="attribute"&&!dwRefinement.swatchBased&&dwRefinement.cutoffThreshold!=null)
{if(dwRefinement.values.length>dwRefinement.cutoffThreshold)
{jQuery("#"+dwRefinement.id+" div.refineattributes").children().addClass("scrollable");}
else
{jQuery("#"+dwRefinement.id+" div.refineattributes").children().removeClass("scrollable");}}
if(dwRefinement.type=="category"&&this.keywordSearch&&this.categoryID==null)
{jQuery("div.searchcategory").empty();jQuery("div.searchcategory").append("<span>"+dwRefinement.displayName+"</span>");}
var listElemID="";for(var i=0;i<dwRefinement.values.length;i++)
{var value=dwRefinement.values[i];if(i==0&&dwRefinement.type=="category"&&this.keywordSearch&&this.categoryID!=null)
{jQuery("div.searchcategory").empty();jQuery("div.searchcategory").append("<span><a href=\""+value.refineUrl+"\" class=\"searchcategories\">"+value.displayValue+"</a></span> (<a href=\""+dwRefinement.clearUrl+"\" class=\"clear\">View All<\/a>)");continue;}
var aClass="refineLink";if(dwRefinement.swatchBased)aClass="swatchRefineLink";var aID=dwRefinement.getValueElementID(value);var aUrl=value.refineUrl;var liClass=null;if(value.refined&&dwRefinement.type!="category"){aUrl=value.relaxUrl;liClass="selected";}
if(value.active&&dwRefinement.type=="category"){aClass+=" active";liClass="active";}
if(!value.selectable){aUrl=null;liClass="unselectable";}
if(dwRefinement.type=="category"&&value.expandable)
{if(liClass!=null)
{liClass+=" expandable";}
else
{liClass="expandable";}}
if(dwRefinement.type=="category")
{listElemID="category-level-"+value.level;if(jQuery("#"+dwRefinement.id+" ul#"+listElemID).length==0)
{var parentListElemID="category-level-"+(value.level-1);jQuery("#"+dwRefinement.id+" ul#"+parentListElemID+" li.active").append("<ul id=\""+listElemID+"\" class=\"refinementcategory\"><\/ul>");}}
else
{listElemID="";}
jQuery("#"+dwRefinement.id+" ul"+(listElemID!=""?"#"+listElemID:"")).append("<li"+(liClass!=null?" class=\""+liClass+"\"":"")+"><a "+(aID!=null?" id=\""+aID+"\"":"")+" class=\""+aClass+"\" "+(aUrl!=null?" href=\""+aUrl+"\"":"")+">"+value.displayValue+"<\/a><\/li>");}
this.bindRefineEvents(dwRefinement);};this.updateClear=function(dwRefinement)
{if(jQuery("#"+dwRefinement.id+" div.refinedclear a").length==1)
{jQuery("#"+dwRefinement.id+" div.refinedclear").empty();jQuery("#"+dwRefinement.id+" div.refinedclear").append("(<a href=\""+dwRefinement.clearUrl+"\">Clear<\/a>)");}}
this.clean=function()
{if(!this.initialized)
{this.initialized=true;return;}
var removeIdx=[];for(var i=0;i<this.refinements.length;i++)
{if(this.refinements[i].refreshed)continue;removeIdx[removeIdx.length]=i;}
for(var i=0;i<this.refinements.length;i++)
{if(this.refinements[i].refreshed){if(jQuery("#"+this.refinements[i].id+" ul li.selected").length==0)
{jQuery("#"+this.refinements[i].id+" div.refinedclear").empty();}}}
if(removeIdx.length==0){return;}
for(var j=removeIdx.length-1;j>=0;j--)
{this.removeRefinement(this.refinements[removeIdx[j]]);this.refinements.splice(removeIdx[j],1);}};this.outdate=function()
{for(var i=0;i<this.refinements.length;i++)
{this.refinements[i].refreshed=false;}};this.toggleRefine=function(objRef)
{if(typeof objRef=="undefined"||objRef==null)return;if(this.loading)return;var url=jQuery(objRef).attr("href");var refID=jQuery(objRef).parents()[4].id;if(!url)return;if(jQuery(objRef).parent().hasClass("selected"))
{jQuery(objRef).parent().removeClass("selected");app.search.result.relax(refID,url);return;}
jQuery(objRef).parent().addClass("selected");app.search.result.refine(refID,url);}
this.refine=function(refinementID,url)
{var dwRefinement=this.get(refinementID);if(dwRefinement==null)return;if(dwRefinement.type=="category")app.search.result.outdate();this.updateGrid(url);if(jQuery("#"+dwRefinement.id+" div.refinedclear:empty").length==1&&dwRefinement.type!="category")
{jQuery("#"+dwRefinement.id+" div.refinedclear").append("(<a href=\""+dwRefinement.clearUrl+"\">Clear<\/a>)");jQuery("#"+dwRefinement.id+" div.refinedclear a").click(function(e){var refID=jQuery(this).parents()[1].id;app.search.result.clearRefinement(app.search.result.get(refID));return false;});}};this.relax=function(refinementID,url)
{var dwRefinement=this.get(refinementID);if(dwRefinement==null)return;if(jQuery("#"+dwRefinement.id+" ul li.selected").length==0)
{jQuery("#"+dwRefinement.id+" div.refinedclear").empty();}
this.updateGrid(url);};this.clearRefinement=function(dwRefinement)
{if(dwRefinement==null)return;if(this.loading)return;var url=jQuery("#"+dwRefinement.id+" div.refinedclear a").attr("href");jQuery("#"+dwRefinement.id+" div.refinedclear").empty();jQuery("#"+dwRefinement.id+" ul li").removeClass("selected");this.updateGrid(url);}
this.updateGrid=function(url)
{if(url==null)return;this.loading=true;jQuery("#content").html(app.showProgress("productloader"));url=app.util.appendParamToURL(url,"format","ajax");var quickViewOptions={buttonSelector:"#content div.quickviewbutton",imageSelector:"#content div.product div.image",buttonLinkSelector:"#content div.quickviewbutton a",productNameLinkSelector:"#content div.product div.name a"};jQuery("#content").load(url,function(){app.quickView.bindEvents(quickViewOptions);jQuery("#content").fadeIn("normal",function(){app.search.updateRefineBindings();app.search.result.loading=false;app.hiddenData();});});};this.pageTo=function(pageName)
{if(typeof pageName=="number")
{if(pageName<1)return;pageName="page-"+pageName;}
var pageObj=jQuery("."+pageName);if(pageObj.length==0)return;app.search.result.updateGrid(pageObj[0].href);};},Refinement:function(id,displayName,type,swatchBased,clearUrl,cutoffThreshold)
{this.id=id;this.displayName=displayName;this.values=[];this.type=type;this.swatchBased=swatchBased;this.clearUrl=clearUrl;this.cutoffThreshold=cutoffThreshold;this.refreshed=false;this.add=function(id,value,presentationID,displayValue,refineUrl,relaxUrl,refined,selectable,expandable,level,active)
{this.values[this.values.length]={"value":value,"presentationID":presentationID,"displayValue":displayValue,"refineUrl":refineUrl,"relaxUrl":relaxUrl,"refined":refined,"selectable":selectable,"expandable":expandable,"level":level,"active":active};};this.get=function(id)
{for(var i=0;i<this.values.length;i++)
{if(this.values[i].id==id)return this.values[i];}
return null;};this.getValueElementID=function(value)
{if(value=="undefined"){return null;}
var elementID=null;if(this.swatchBased){elementID="swatch-";if(value.presentationID!=null){elementID+=value.presentationID;}else{elementID+=value.displayValue;}}
return elementID;}}}}else{alert("app namespace is not loaded yet!");}})(app);jQuery(document).ready(function(){app.search.updateRefineBindings();jQuery("#searchrefinements div.navgroup h3").click(function(e){jQuery(this).toggleClass("collapsed");jQuery(this).nextAll("div.refineattributes").toggle();});var quickViewOptions={buttonSelector:"#content div.quickviewbutton",imageSelector:"#content div.product div.image",buttonLinkSelector:"#content div.quickviewbutton a",productNameLinkSelector:"#content div.product div.name a"};app.quickView.bindEvents(quickViewOptions);});

