var prodName="PRODNAME";var prodStock="PRODSTOCK";var prodUrl="PRODLINK";var prodPrice="PRODPRICE";var prodImage="PRODIMAGE";var almostGoneAmount=5;function convertQuotes(a){return(a+"").replace(/([\\"'])/g,"&quot;").replace(/\0/g,"\\0")}function Product(){this.setProduct=function(a){this.productName=a[prodName];this.productStock=a[prodStock];this.productPrice=a[prodPrice];this.productImage=a[prodImage];this.productUrl=a[prodUrl]}}function productSearch(){this.rootNode=document.getElementById("productResults");this.currentProduct=new Product();this.layoutContainer=null;this.debug=false;this.printPagedProducts=function(m){var a=m.pageNum;var j=m.perPage;var g=m.sortBy;var q=m.sortDir;var p=m.layoutContainerClass;var n=m.layoutContainerID;var h=m.header;var o=m.alternateColor;var e=m.limitAlmostGone;var k=m.printOutOfStock;var b=m.showPaging;var d=m.removeSortFieldZeroes;var l=m.showFields;var c=this.initiateProductArray();c=this.productSorter(g,q,c);if(!k){c=this.removeOutOfStockFromArray(c)}if(e){c=this.removeHigherQuantities(c)}if(d){c=this.removeSortFieldZeroes(c,g)}pageStartIndex=(a==1)?0:((a*j)-j);pageEndIndex=(j>c.length)?c.length:pageStartIndex+j;pageEndIndex=(pageEndIndex>c.length)?c.length:pageEndIndex;p=(p)?p:this.layoutContainer;if(c.length>0){productContainer=(document.getElementById(n))?"":'<div class="'+p+'" id="'+n+'">';if(this.debug){productContainer+="Total Products: "+c.length+"<br>Current Page: "+a+"<br>Per Page: "+j+"<br>Page Start Index: "+pageStartIndex+"<br>Page End Index: "+pageEndIndex+"<br>Sort By: "+g+"<br>Sort Direction: "+q+"<br>containerClass: "+p+"<br>containerID: "+n+"<br>limitAlmostGone: "+e+"<br>printOutOfStock: "+k+"<br>showPaging: "+b+"<br>"}productContainer+=(h)?'<div class="resultHeader">'+h+"</div>":"";productContainer+='<div class="resultContainer">';for(var f=pageStartIndex;f<pageEndIndex;f++){this.currentProduct.setProduct(c[f]);productContainer+=(o&&f%2)?'<div class="productResultWrapper" style="background-color:'+o+';">':'<div class="productResultWrapper">';productContainer+=(l.productImage)?'<div class="productImage">'+this.currentProduct.productImage+"</div>":"";productContainer+='<div class="productName"> '+this.currentProduct.productName+"</div>";productContainer+=(l.productStock)?'<div class="productStock">'+this.currentProduct.productStock+" left </div>":"";productContainer+=(l.productPrice)?'<div class="productPrice">'+this.currentProduct.productPrice+"</div>":"";productContainer+="</div>"}productContainer+='</div><div style="clear:both;height:5px;"></div>';productContainer+=(b)?this.addPageLinks(m,c.length)+'<div style="clear:both;height:15px;"></div>':"";productContainer+=(document.getElementById(n))?"":"</div>";if(document.getElementById(n)){document.getElementById(n).innerHTML=productContainer}else{document.write(productContainer)}}};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(c,f){var a=c.pageNum;var d=c.perPage;var e='<div class="pageLinks">';pageStartIndex=(a==1)?0:((a*d)-1);pageEndIndex=(d>f)?f:pageStartIndex+d;pageEndIndex=(pageEndIndex>f)?f:pageEndIndex;totalPages=Math.ceil(f/d);if(totalPages>1){for(var b=0;b<totalPages;b++){c.pageNum=b+1;linkOptions=this.printOptionsAsString(c);e+=(b+1!=a)?'<a href="javascript:;" onClick="productSearch.printPagedProducts('+linkOptions+');">'+(b+1)+"</a> ":'<span class="currentPage">'+(b+1)+"</span> "}if(a<totalPages){c.pageNum=a+1;linkOptions=this.printOptionsAsString(c);e+='<a href="javascript:;" onClick="productSearch.printPagedProducts('+linkOptions+');">></a>'}}e+="</div>";return e};this.productSorter=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.removeSortFieldZeroes=function(a,c){tempArray=new Array();useArray=a;reIndex=0;for(var b=0;b<useArray.length;b++){if(useArray[b][c]!=0){tempArray[reIndex]=useArray[b];reIndex++}}return tempArray};this.removeOutOfStockFromArray=function(a){tempArray=new Array();useArray=a;reIndex=0;for(var b=0;b<useArray.length;b++){if(useArray[b][prodStock]!=0){tempArray[reIndex]=useArray[b];reIndex++}}return tempArray};this.removeHigherQuantities=function(a){tempArray=new Array();useArray=a;reIndex=0;for(var b=0;b<useArray.length;b++){if(useArray[b][prodStock]<=almostGoneAmount){tempArray[reIndex]=useArray[b];reIndex++}}return tempArray};this.printProductArray=function(){for(var b in productArray){document.write(b+". {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");for(var a in productArray[b]){document.write(a+":"+productArray[b][a]+", <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;")}document.write(" } <br>")}};this.initiateProductArray=function(){arrayCount=0;productArray=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){productArray[arrayCount]=new Array();for(var a in workingProductUL.childNodes){if(this.isDetailLInode(workingProductUL.childNodes[a])){attributeName=workingProductUL.childNodes[a].getAttribute("id");productArray[arrayCount][attributeName]=workingProductUL.childNodes[a].innerHTML}}arrayCount++}}}}return productArray};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.printMatchingProducts=function(b,a){if(!b){b=prodName}if(!a){a="*"}}}var listTreeId="catlist";var catName="CATNAME";var catImage="CATIMAGE";var catPriority="CATPRIORITY";function Category(){this.setCategory=function(a){this.categoryName=a[catName];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;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"><img src="'+this.currentCategory.categoryImage+'" width=200></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");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="*"}}};
