var listTreeId="catlist";var catName="CATNAME";var catImage="CATIMAGE";var catPriority="CATPRIORITY";function convertQuotes(a){return(a+"").replace(/([\\"'])/g,"&quot;").replace(/\0/g,"\\0")}function Category(){this.setCategory=function(a){this.categoryName=a[catName];this.categoryLink=a.href;this.categoryImage=a[catImage]}}function categorySearch(){this.rootNode=document.getElementById(listTreeId);this.currentCategory=new Category();this.layoutContainer=null;this.debug=false;this.printCategories=function(j){var a=j.pageNum;var g=j.perPage;var e=j.sortBy;var n=j.sortDir;var m=j.layoutContainerClass;var k=j.layoutContainerID;var f=j.header;var l=j.alternateColor;var b=j.showPaging;var h=j.showFields;this.rootNode=(this.isLInode(this.rootNode.childNodes[0]))?this.rootNode:this.rootNode.childNodes[1];var c=this.initiateProductArray();c=this.categorySorter(e,n,c);pageStartIndex=(a==1)?0:((a*g)-g);pageEndIndex=(g>c.length)?c.length:pageStartIndex+g;pageEndIndex=(pageEndIndex>c.length)?c.length:pageEndIndex;m=(m)?m:this.layoutContainer;if(c.length>0){categoryContainer=(document.getElementById(k))?"":'<div class="'+m+'" id="'+k+'">';if(this.debug){categoryContainer+="Total categories: "+c.length+"<br>Current Page: "+a+"<br>Per Page: "+g+"<br>Page Start Index: "+pageStartIndex+"<br>Page End Index: "+pageEndIndex+"<br>Sort By: "+e+"<br>Sort Direction: "+n+"<br>containerClass: "+m+"<br>containerID: "+k+"<br>limitAlmostGone: "+limitAlmostGone+"<br>printOutOfStock: "+printOutOfStock+"<br>showPaging: "+b+"<br>"}categoryContainer+=(f)?'<div class="resultHeader">'+f+"</div>":"";categoryContainer+='<div class="resultContainer">';for(var d=pageStartIndex;d<pageEndIndex;d++){this.currentCategory.setCategory(c[d]);categoryContainer+=(l&&d%2)?'<div class="categoryResultWrapper" style="background-color:'+l+';">':'<div class="categoryResultWrapper">';categoryContainer+=(h.categoryImage)?'<div class="categoryImage"><a href='+this.currentCategory.categoryLink+'><img src="'+this.currentCategory.categoryImage+'" border=0></a></div>':"";categoryContainer+='<div class="categoryName">'+this.currentCategory.categoryName+"</div>";categoryContainer+="</div>"}categoryContainer+='</div><div style="clear:both;height:5px;"></div>';categoryContainer+=(b)?this.addPageLinks(j,c.length)+'<div style="clear:both;height:15px;"></div>':"";categoryContainer+=(document.getElementById(k))?"":"</div>";if(document.getElementById(k)){document.getElementById(k).innerHTML=categoryContainer}else{document.write(categoryContainer)}}};this.printOptionsAsString=function(c){linkOptions="{";loop1=0;loop2=0;for(var b in c){linkOptions+=(loop1==0)?"":",";linkOptions+="'"+b+"':";if(typeof(c[b])=="string"){linkOptions+="'"+convertQuotes(c[b])+"'"}if(typeof(c[b])=="boolean"){linkOptions+=c[b]}if(typeof(c[b])=="number"){linkOptions+=c[b]}if(b=="showFields"){linkOptions+="{";for(var a in c[b]){linkOptions+=(loop2==0)?"":",";linkOptions+="'"+a+"':"+c[b][a];loop2++}linkOptions+="}"}loop1++}linkOptions+="}";return linkOptions};this.addPageLinks=function(d,c){var a=d.pageNum;var e=d.perPage;var f='<div class="pageLinks">';pageStartIndex=(a==1)?0:((a*e)-1);pageEndIndex=(e>c)?c:pageStartIndex+e;pageEndIndex=(pageEndIndex>c)?c:pageEndIndex;totalPages=Math.ceil(c/e);if(totalPages>1){for(var b=0;b<totalPages;b++){d.pageNum=b+1;linkOptions=this.printOptionsAsString(d);f+=(b+1!=a)?'<a href="javascript:;" onClick="categorySearch.printPagedcategories('+linkOptions+');">'+(b+1)+"</a> ":'<span class="currentPage">'+(b+1)+"</span> "}if(a<totalPages){d.pageNum=a+1;linkOptions=this.printOptionsAsString(d);f+='<a href="javascript:;" onClick="categorySearch.printPagedcategories('+linkOptions+');">></a>'}}f+="</div>";return f};this.categorySorter=function(c,b,a){numericSortField=(isNaN(parseInt(a[0][c])))?false:true;sortAscending=(b=="asc")?true:false;if(numericSortField){funcNumber=0;sortFunction=function(e,d){return(parseInt(e[c])-parseInt(d[c]))}}else{if(!numericSortField){funcNumber=1;sortFunction=function(e,d){return(e[c]<d[c])?-1:1}}}if(c=="random"){funcNumber=2;sortFunction=function(e,d){return(0.5-Math.random())}}a.sort(sortFunction);if(!sortAscending){a.reverse()}return a};this.initiateProductArray=function(){arrayCount=0;categoryArray=new Array();for(var c in this.rootNode.childNodes){workingProductLI=(this.isLInode(this.rootNode.childNodes[c]))?this.rootNode.childNodes[c]:false;if(workingProductLI){for(var b in workingProductLI.childNodes){workingProductUL=(this.getProductULgroup(workingProductLI.childNodes[b]))?workingProductLI.childNodes[b]:false;if(workingProductUL){categoryArray[arrayCount]=new Array();for(var a in workingProductUL.childNodes){if(this.isDetailLInode(workingProductUL.childNodes[a])){attributeName=workingProductUL.childNodes[a].getAttribute("id");if(attributeName==catName){categoryArray[arrayCount]["href"]=workingProductUL.childNodes[a].childNodes[0].getAttribute("href")}categoryArray[arrayCount][attributeName]=workingProductUL.childNodes[a].innerHTML}}arrayCount++}}}}return categoryArray};this.getProductULgroup=function(a){return(this.isULnode(a))?a:false};this.isULnode=function(a){return(a.nodeType==1&&a.tagName=="UL")?true:false};this.isLInode=function(a){return(a.nodeType==1&&a.tagName=="LI")?true:false};this.isDetailLInode=function(a){return(a.tagName=="LI"&&a.getAttribute("id"))?true:false};this.printMatchingcategories=function(b,a){if(!b){b=prodName}if(!a){a="*"}}};