//*************************************************

//***** COPYRIGHT 2007, PRACTICAL DATA, INC. ******

//***** - UNAUTHORIZED USE IS PROHIBITED **********

//*************************************************



//***************************************************************************

//********************* INITIALIZE PAGING VARIABLES *************************

//***************************************************************************



var pd_itemsPerPage = "";

var pd_pagesToDisplay = "";

var pd_itemsPerRow = "";

var pd_sortBy = "";

var pd_gridViewTableWidth = "";

var pd_yahooStoreId = "";

var pd_debugFlag = "";

var pd_noItemsFoundMessage = "";



var pd_lastSection = "";

var pd_currentSection = "";

var pd_currentPageNumber = 1;

var pd_viewAll = false;



var pd_refreshId = "";

var pd_searchFirstRun = true;

var pd_sortMethod = "name"

var pd_filterSearchDelay = 650;

var pd_pagingDisplayMode = "";

var pd_pagingDisplayModeDefault = "list";

var pd_searchText = "";

var pd_brandSelected = "";

var pd_sizeSelected = "";

var pd_colorSelected = "";

var pd_materialSelected = "";

var pd_categorySelected = "";

var pd_priceRange = "";

var pd_filterBy = "";

var pd_filterByStoneButton = "";

var pd_filterByNonStoneButton = "";

var pd_searchTextFirstLoad = "Enter Keyword(s):";



var pd_sortTemp = "";



var pd_displayList = new Array();

var pd_filteredDisplayList = new Array();



/*

function loadPricingRulesAndUpdatePricesForPaging(uid) {

	if(uid != undefined && uid != false) {

		var currentDateTime = new Date();

		var cb = String(currentDateTime.getFullYear()) + String(currentDateTime.getMonth() + 1) + String(currentDateTime.getDate());

		var url = pd_myAccountUrl + "/tmp/" + uid + "_paging.js?cb=" + cb;

		var script = document.createElement('script');

		script.type = 'text/javascript';

		script.src = url;

		document.getElementsByTagName("head")[0].appendChild(script);

	} else {

		pdPagingInitialize();

	}

}

*/



//*************************

//*** INITIALIZE PAGING ***

//*************************

function pdPagingInitialize() {

debug("pdPagingInitialize()");



	if(isBlank(pd_itemsPerPage)) pd_itemsPerPage = 25;

	if(isBlank(pd_pagesToDisplay)) pd_pagesToDisplay = 8;

	if(isBlank(pd_itemsPerRow)) pd_itemsPerRow = 1;

	if(isBlank(pd_sortBy)) pd_sortBy = getCurrentSortBy();

	if(isBlank(pd_gridViewTableWidth)) pd_gridViewTableWidth = "100%";

	if(isBlank(pd_yahooStoreId)) pd_yahooStoreId = "";

	if(isBlank(pd_debugFlag)) pd_debugFlag = false;

	if(isBlank(pd_noItemsFoundMessage)) pd_noItemsFoundMessage = "No Items Found.";

	if(isBlank(pd_pagingDisplayMode)) pd_pagingDisplayMode = getPagingDisplayMode();

	else setPagingDisplayMode(pd_pagingDisplayMode);

	if(isBlank(pd_filterByStoneButton)) pd_filterByStoneButton = false;

	if(isBlank(pd_filterByNonStoneButton)) pd_filterByNonStoneButton = false;

	

	pd_displayList = parseDisplayList();



	performSort();

	renderControlPanelFilters();

	renderControlPanelSortLinks();

	renderControlPanelFilterButtons();

	performFilter(true);

	return true;

}



//***************************************************************************

//********* FILTER BY KEYWORD/ SEARCH WHILE TYPING FUNCTIONS ****************

//***************************************************************************

function filterProductArrayBySearchTerm(searchText) {

debug("filterProductArrayBySearchTerm(" + searchText + ")");

	pd_filteredDisplayList = getFilteredDisplayList(searchText);

	pd_currentPageNumber = 1;

	var success = displayProductArray();

	return false;

}



function getFilteredDisplayList(searchTermString) {

debug("getFilteredDisplayList");

	var productArray = pd_filteredDisplayList;

	searchTermString = String(searchTermString).toLowerCase();

	searchTermString = String(searchTermString).replace(/,/g, " ");

	var searchTermList = String(searchTermString).split(" ");

	var filteredHash = new Array();

	var item = new Object();

	for(item in productArray) {

		if(productArray.hasOwnProperty(item)) {

			var found = true;

			for(item2 in searchTermList) {

				if(searchTermList.hasOwnProperty(item2)) {

					if(!isBlank(searchTermList[item2])) {

						if(productArray[item].searchIndex.indexOf(searchTermList[item2]) == -1) found = false;

					}

				}

			}

			if(found == true) {

				filteredHash[productArray[item].id] = productArray[item];

			}

		}

	}

	var filteredList = convertHashToArray(filteredHash);

	return filteredList;

}







function performFilter(noResetPageNumber) {

debug("performFilter()");



	//*****************************************************************

	//*** LOAD FILTERED DISPLAY LIST WITH COPY OF FULL PRODUCT LIST ***

	//*****************************************************************

	pd_filteredDisplayList = pd_displayList;



	//*************************

	//*** RESET PAGE NUMBER ***

	//*************************

	if(noResetPageNumber == true) {

	//**** DO NOTHING

	}else{

		resetPageNumber();

	}

	

	//************************************

	//*** LOAD FILTERS VALUES FROM GUI ***

	//************************************

	//alert("pd_searchText=" + pd_searchText);

	loadFilters();

	//alert("pd_searchText=" + pd_searchText);

	

	//***********************

	//*** PERFORM FILTERS ***

	//***********************

	if(!isBlank(pd_brandSelected)) pd_filteredDisplayList = getFilteredDisplayListByFullStringMatch("brand", pd_brandSelected);

	debug("pd_filteredDisplayList.length=" + pd_filteredDisplayList.length);

	if(!isBlank(pd_materialSelected)) pd_filteredDisplayList = getFilteredDisplayListBySubStringMatch("material", pd_materialSelected);

	debug("pd_filteredDisplayList.length=" + pd_filteredDisplayList.length);

	if(!isBlank(pd_sizeSelected)) pd_filteredDisplayList = getFilteredDisplayListBySubStringMatch("size", pd_sizeSelected);

	debug("pd_filteredDisplayList.length=" + pd_filteredDisplayList.length);

	if(!isBlank(pd_colorSelected)) pd_filteredDisplayList = getFilteredDisplayListBySubStringMatch("color", pd_colorSelected);

	debug("pd_filteredDisplayList.length=" + pd_filteredDisplayList.length);

	if(!isBlank(pd_categorySelected)) pd_filteredDisplayList = getFilteredDisplayListByFullStringMatch("category", pd_categorySelected);

	debug("pd_filteredDisplayList.length=" + pd_filteredDisplayList.length);

	if(!isBlank(pd_priceRange)) pd_filteredDisplayList = getFilteredDisplayListByNumericRange("price", pd_priceRange);

	debug("pd_filteredDisplayList.length=" + pd_filteredDisplayList.length);

	

	/*

	if(pd_filterByStoneButton == false && pd_filterByNonStoneButton == false) {

		pd_filteredDisplayList = getFilteredDisplayListByBooleanMatch("hasStone", false);

		pd_filteredDisplayList = getFilteredDisplayListByBooleanMatch("hasStone", true);

	} else if(pd_filterByStoneButton == false && pd_filterByNonStoneButton == true) {

		pd_filteredDisplayList = getFilteredDisplayListByBooleanMatch("hasStone", false);

	} else if(pd_filterByStoneButton == true && pd_filterByNonStoneButton == false) {

		pd_filteredDisplayList = getFilteredDisplayListByBooleanMatch("hasStone", true);

	} else if(pd_filterByStoneButton == true && pd_filterByNonStoneButton == true) {

		//**** FILTER NOTHING

	}

	*/

	

	debug("pd_filteredDisplayList.length=" + pd_filteredDisplayList.length);

	

	//**************************************************************************

	//*** IGNORE "SEARCH AS YOU TYPE" FILTER IF IT CONTAINS PLACEHOLDER TEXT ***

	//**************************************************************************

	if(pd_searchText != pd_searchTextFirstLoad){

		pd_filteredDisplayList = getFilteredDisplayListBySubStringMatch("searchIndex", pd_searchText);

		//alert(pd_searchText);

		debug("pd_filteredDisplayList.length=" + pd_filteredDisplayList.length);

	}

	

	//***************************

	//**** REDISPLAY RESULTS ****

	//***************************	

	var success = displayProductArray();

	

	//********************************************

	//*** RESET CURSOR FOCUS TO KEYWORD FILTER ***

	//********************************************

	if(document.getElementById("pdPagingFilterByKeyword")){

		document.getElementById("pdPagingFilterByKeyword").focus();

		document.getElementById("pdPagingFilterByKeyword").value = pd_searchText;

	}

	

	//****************************************************************

	//*** SHOW SEARCH CANCEL BUTTON IF THE SEARCH BOX IS POPULATED ***

	//****************************************************************

	if(!isBlank(pd_searchText))	displaySearchCancelButton();

	

	return false;

}



function resetFilters() {

debug("resetFilters()");

	try {document.getElementById("pdPagingFilterByBrand").options.selectedIndex = -1;} catch(e) {}

	try {document.getElementById("pdPagingFilterBySize").options.selectedIndex = -1;} catch(e) {}

	try {document.getElementById("pgPagingFilterByColor").options.selectedIndex = -1;} catch(e) {}

	try {document.getElementById("pgPagingFilterByMaterial").options.selectedIndex = -1;} catch(e) {}

	try {document.getElementById("pgPagingFilterByPriceRange").options.selectedIndex = -1;} catch(e) {}

	try {document.getElementById("pgPagingFilterByKeyword").value = "";} catch(e) {}

	

	pd_searchText = "";	//*** MUST SET HERE

	pdSetCookie("V2pd_filterSettings", "", "", "", "");

	

	return false;

}



function loadSavedFilters() {

debug("loadSavedFilters()");



	var filterString = pdGetCookie("V2pd_filterSettings");

	if(!isBlank(filterString)) {

		var filterPairs = filterString.split("&");

		for(var i=0;i<filterPairs.length;i++) {

			var pair = filterPairs[i].split("=");

			if(pair[0] == "brandSelected") pd_brandSelected = pair[1];

			else if(pair[0] == "sizeSelected") pd_sizeSelected = pair[1];

			else if(pair[0] == "colorSelected") pd_colorSelected = pair[1];

			else if(pair[0] == "materialSelected") pd_materialSelected = pair[1];

			else if(pair[0] == "priceRange") pd_priceRange = pair[1];

			else if(pair[0] == "searchText") pd_searchText = pair[1];		

		}

		setDropdownValue("pdPagingFilterByBrand", pd_brandSelected);

		setDropdownValue("pdPagingFilterBySize", pd_sizeSelected);

		setDropdownValue("pdPagingFilterByColor", pd_colorSelected);

		setDropdownValue("pdPagingFilterByMaterial", pd_materialSelected);

		setDropdownValue("pdPagingFilterByPriceRange", pd_priceRange);

		try { document.getElementById("pdPagingFilterByKeyword").value = pd_searchText;} catch(e) {}				

	}

	return false;

}



function setDropdownValue(elementId, value) {

	var dropdown = document.getElementById(elementId);

	if(dropdown != null) {	

		for(var i=0;i<dropdown.options.length;i++) {

			if(dropdown.options[i].value == value) dropdown.selected = true;

		}

	}

	return false;	

}





function loadFilters() {

debug("loadFilters()");

	try {pd_brandSelected = document.getElementById("pdPagingFilterByBrand").options[document.getElementById("pdPagingFilterByBrand").selectedIndex].value;} catch(e){}

	try {pd_sizeSelected = document.getElementById("pdPagingFilterBySize").options[document.getElementById("pdPagingFilterBySize").selectedIndex].value;} catch(e){}

	try {pd_colorSelected = document.getElementById("pdPagingFilterByColor").options[document.getElementById("pdPagingFilterByColor").selectedIndex].value;} catch(e){}

	try {pd_materialSelected = document.getElementById("pdPagingFilterByMaterial").options[document.getElementById("pdPagingFilterByMaterial").selectedIndex].value;} catch(e){}

	try {pd_priceRange = document.getElementById("pdPagingFilterByPriceRange").options[document.getElementById("pdPagingFilterByPriceRange").selectedIndex].value;} catch(e){}	

	

//alert("pd_searchText1=" + pd_searchText);

/*

	try {pd_searchText = document.getElementById("pdPagingFilterByKeyword").value;} catch(e) {}	//*** IGNORE

*/

//alert("pd_searchText2=" + pd_searchText);

	

	//************************

	//*** REMEMBER FILTERS ***

	//************************

	var filterList = new Array();

	if(!isBlank(pd_brandSelected)) filterList.push("brandSelected=" + pd_brandSelected);

	if(!isBlank(pd_sizeSelected)) filterList.push("sizeSelected=" + pd_sizeSelected);

	if(!isBlank(pd_colorSelected)) filterList.push("colorSelected=" + pd_colorSelected);

	if(!isBlank(pd_materialSelected)) filterList.push("materialSelected=" + pd_materialSelected);

	if(!isBlank(pd_priceRange)) filterList.push("priceRange=" + pd_priceRange);

	if(!isBlank(pd_searchText)) filterList.push("searchText=" + pd_searchText);

	var filterString = filterList.join("&");

	//pdSetCookie("V2pd_filterSettings", filterString, "", "", "");

	

//alert("pd_searchText4b=" + pd_searchText);

	

	return false;

}



function searchWhileTyping() {

debug("searchWhileTyping()");

	pd_searchText = String(document.getElementById("pdPagingFilterByKeyword").value);

	displaySearchCancelButton();	

	window.clearTimeout(pd_refreshId);

	pd_refreshId = window.setTimeout("performFilter()", pd_filterSearchDelay);

	return false;

}



function noEnter(e){

  	var keycode;

  	if (window.event) keycode = window.event.keyCode;

  	else if (e) keycode = e.which;

	if(keycode == 13){

		return false;

	}else{

		return true;

	}

}



function displaySearchCancelButton() {

debug("displaySearchCancelButton");

	var pdPagingFilterByKeywordCancelButton = document.getElementById("pdPagingFilterByKeywordCancelButton");

	var pdPagingFilterByKeywordCancelButtonActive = document.getElementById("pdPagingFilterByKeywordCancelButtonActive");

	pdPagingFilterByKeywordCancelButtonActive.className = "showDiv";

	pdPagingFilterByKeywordCancelButton.className = "hideDiv";

	try {pdRemoveEvent(pdPagingFilterByKeywordCancelButtonActive,"click", clearSearch);} catch(e) {}

	pdAddEvent(pdPagingFilterByKeywordCancelButtonActive,"click", clearSearch);

	return false;	

}



function clearFirstTimeSearchText() {

debug("clearFirstTimeSearchText()");

	if(pd_searchFirstRun) {

		document.getElementById("pdPagingFilterByKeyword").value = "";

		pd_searchFirstRun = false;

	}

	return false;

}



function clearSearch() {

debug("clearSearch");

	var searchFieldValue = document.getElementById("pdPagingFilterByKeyword").value;

	if(searchFieldValue != pd_searchTextFirstLoad){

		searchFieldValue = pd_searchTextFirstLoad;

	}

	clearSearchBox();

	setPageNumber(1);

	resetFilters();

	performFilter();

	return false;

}



function clearSearchBox() {

debug("clearSearchBox");

	//document.getElementById("pdPagingFilterByKeywordCancelButtonActive").innerHTML = '<img src="' + pd_imageUrl + 'spacer.gif">';

	document.getElementById("pdPagingFilterByKeywordCancelButtonActive").className = "hideDiv";

	document.getElementById("pdPagingFilterByKeywordCancelButton").className = "showDiv";

	

	document.getElementById("pdPagingFilterByKeyword").value = "";

	return false;

}



//***************************************************************************

//****** END FILTER BY KEYWORD/ SEARCH WHILE TYPING FUNCTIONS ***************

//***************************************************************************



//***********************************************

//********* PAGINATION FUNCTIONS ****************

//***********************************************



function parseDisplayList() {



	//******************

	//*** INITIALIZE ***

	//******************

	pd_lastSection = pdGetCookie("V2pd_lastSection");

	setCurrentSection(MD5.hex(location.href));

	pd_currentPageNumber = getCurrentPageNumber();

	loadSavedFilters();

	

	//***********************************************

	//***** BUILD JS ARRAY OF PRODUCT ELEMENTS ******

	//***********************************************

	var i = 0;

	var displayList = new Array();

	

	//*******************************************

	//*** ONLY LOAD IF PRODUCT WRAPPER EXISTS ***

	//*******************************************

	var productIdString = "";

	var dataWrapper = "";

	try {

		dataWrapper = document.getElementById("productDataWrapper");

	} catch(e) {

		//*** IGNORE

	}

		

	if(!isBlank(dataWrapper)) {

	

		if(dataWrapper.firstChild) { // check for children

			var oChild = dataWrapper.firstChild;

			while(oChild) {

			

			    if(oChild.nodeType==1 && String(oChild.id).indexOf("productData") > -1) { 

					displayList[i] = new Object();

					displayList[i].id = oChild.id;

										

					displayList[i].html = document.getElementById(oChild.id).innerHTML;

		

					//**************************************************

					//**** PARSE PRODUCT ATTRIBUTES (2 levels deep) ****

					//**************************************************

					var subChild = oChild.firstChild;

					while(subChild) {

						if(subChild.nodeType==1) {

							displayList[i][subChild.id] = String(subChild.title).replace(/&quot;/g, '"');

						}

						subChild = subChild.nextSibling;

					}

					

					//******************************

					//*** CREATE DEFAULT SORT ID ***

					//******************************

					displayList[i].defaultSortId = i;

					

					//**************************

					//*** BUILD SEARCH INDEX ***

					//**************************

					displayList[i].searchIndex = "";

					if(displayList[i].itemId) displayList[i].searchIndex += " " + String(displayList[i].itemId).toLowerCase();

					if(displayList[i].name) displayList[i].searchIndex += " " + String(displayList[i].name).toLowerCase();

					if(displayList[i].brand) displayList[i].searchIndex += " " + String(displayList[i].brand).toLowerCase();

					if(displayList[i].keywords) displayList[i].searchIndex += " " + String(displayList[i].keywords).toLowerCase();

					

					//***********************************************************

					//**** BUILD PRODUCT ID STRING ******************************

					//**** - LIMIT TO 200 TO PREVENT OVERFLOWING COOKIE LIMIT ***

					//***********************************************************

					if(displayList[i].id && i < 200) productIdString += displayList[i].id + ",";

					

				 	i++;

				 }

			  oChild = oChild.nextSibling;

		   }

		}

		

		//*******************************************

		//**** TURN OFF DISPLAY OF DATA ELEMENTS ****

		//*******************************************

		turnOffDisplayOfDataElements();

		

	} else {

		displayList = false;

	}

	

	//*******************************

	//**** SAVE productIdString *****

	//*******************************

	if(!isBlank(productIdString)) {

		productIdString = String(productIdString).substring(0, productIdString.length -1);	//*** TRIM TRAILING COMMA

		pdSetCookie("V2pd_currentProductList", productIdString, "", "", "");

	}

	

	//*******************************************

	//*** SAVE INITIAL FILTERED PRODUCT ARRAY ***

	//*******************************************

	pd_filteredDisplayList = displayList;

	

	//****************

	//**** RETURN ****

	//****************

	return displayList;	

}



function renderProductArray() {

	debug("renderProductArray");

	var productArray = pd_filteredDisplayList;

	var html = "";

	var pageNumber = 1;

	var i = 1;

	var item = new Object();

	var tempHtml = "";

	var tempProductHtml = "";

	var rowItemCount = 1;

	var isOpen = false;

	var productIdList = "";

	var shade = true;

	debug("pd_currentPageNumber render = " + pd_currentPageNumber);	



	// RESET PRODUCT WRAPPER HTML TO FIX ISSUE WHEN CHANGING DISPLAY STYLES

	document.getElementById("productWrapper").innerHTML = "";

		

	for(item in productArray) {

		if(productArray.hasOwnProperty(item)) {

		

			productIdList += productArray[item].id;

			tempHtml = '';

			

			if(pageNumber == pd_currentPageNumber || pd_currentPageNumber == "all") {

		

				//var pd_pagingDisplayMode = pdGetCookie("V2pd_pagingDisplayMode");

				//if(isBlank(pd_pagingDisplayMode)){pd_pagingDisplayMode = "list";}

				

				//**************************************

				//****** GENERATE GRID VIEW HTML *******

				//**************************************

				if(pd_pagingDisplayMode == "grid"){

					var cellWidth = pd_gridViewTableWidth / pd_itemsPerRow;

	

					if(rowItemCount == 1) {

						tempHtml += '<table border="0" cellpadding="0" cellspacing="0" width="' + pd_gridViewTableWidth + '">';

						tempHtml += '<tr valign="top">\r\n';

						isOpen = true;

					}

					tempHtml += '<td align="center" style="text:align:center;">';

					//tempHtml += '<td width="' + Math.floor(cellWidth) + '" align="center">';

					tempHtml += '<div class="displayDivGCellWidth"><img src="' + pd_imageUrl + 'spacer.gif" height="1" width="' + Math.floor(cellWidth) + '"></div>';

					tempHtml += '<div class="displayDivGCellWidth" class="" id="' + productArray[item].id + '">';

					tempHtml += genProductHtmlGrid(productArray[item].id);

					tempHtml += '</div></td>';

					rowItemCount++;

					if(rowItemCount > pd_itemsPerRow) {

						tempHtml += '</tr></table>';

						tempHtml += '<div class="displayDivGBar"><img src="' + pd_imageUrl + 'spacer.gif" height="1"></div>';

						rowItemCount = 1;

						isOpen = false;

					}		

					

					

				//*************************************************

				//*************** GENERATE LIST VIEW HTML *********

				//*************************************************					

				} else {

					tempHtml += '<div id="' + productArray[item].id;

					if(!shade) {

						tempHtml += '" class="displayDivLOn">';

					} else {

						tempHtml += '" class="displayDivL">';

					}

					tempHtml += genProductHtmlList(productArray[item].id);

					tempHtml += '</div>';

					

					shade = !shade;

				}

	

			}

			i++;

			pageNumber = Math.ceil(i / pd_itemsPerPage);

			tempHtml += '<img src="' + pd_imageUrl + 'spacer.gif" width="1" height="1">';

			html += tempHtml;

		}

	}



	return html;

}



//***********************************************

//******** VIEW PRODUCT ARRAY AS GRID ***********

//***********************************************

function genProductHtmlGrid(item){

	var displayDiv = new String(item);

	var dataDiv = displayDiv.replace(/Display/g, 'Data');

	var childElem = document.getElementById(dataDiv).childNodes; 

	

	//*** DEFINE ITEM DATA ***

	var itemData = new Object();

	

	for(var i=0;i<childElem.length;i++){

		itemData[childElem[i].id] = String(childElem[i].title);

	}

	//*** PRICE DISPLAY LOGIC ***

	var priceReg = itemData["priceReg"] - 0;

	var priceSale = itemData["priceSale"] - 0;

	if(!priceSale) priceSale = priceReg;	

	var priceDisplay = '';

	if(priceReg > priceSale){

		priceDisplay = '<div class="pagedPriceDiv"><span class="pagedPrice">' + pd_regPriceText + '<strike>' + ' $' + formatCurrency(priceReg) + '</strike></span><br><span class="pagedPriceSale">' + pd_salePriceText + ' $' + formatCurrency(itemData["price"]-0) + '</span></div>';

	}else if(priceReg > 0){

		priceDisplay = '<div class="pagedPriceDiv"><span class="pagedPriceSale">Our Price: $' + formatCurrency(itemData["price"]-0) + '</span></div>';

	}
	
	var linkHtml = '<a href="' + itemData["itemId"] + '.html" class="pagedLink">';

	var html = '';

	html += '' + linkHtml + '<div class="pagingItemImg" style="margin-left:40px;"><img src="' + itemData["image"] + '" border="0" vspace="5"></a></div>';

	html += linkHtml + itemData["name"] + '</a>';
	
	html += '<div class="pagingAbstract">' + itemData["abstract"] + '</div>';

	html += priceDisplay;

	

	//********************************************************

	//*** RETRIEVE DISCOUNT AND CALCULATE DISCOUNTED PRICE ***

	//********************************************************

	var discountPercentage = 0;

	try {

		discountPercentage = getDiscountPercentage(itemData["itemId"]);

	} catch(e) {

		//*** IGNORE IF NOT AVAILABLE 

	}

	if(discountPercentage > 0) {

		var discountedPrice = priceSale - (priceSale * (discountPercentage/100));		

		html += '<div class="pagingMyAccountPrice">';	

		html += 'Your Price: ' + formatCurrency(discountedPrice, true);

		html += '</div>';

	}	

/*	
html +='<table cellpadding=0 cellspacing=0 border=1><tr><td>';
html += '<div style="padding-top:5px;">';
html += 'Product Rating';
html +='<script>';
html +='var showrate;';
html +='showrate="<sc"+"ript src=\'http://site.surveillance-video.com/reviews/customer-reviews1.php?theid='+itemData["itemId"]+'&thename='+itemData["name"]+'\'><\\\/script>";';
html +='document.write (showrate)';
html += '</script></div>';
html +='</td></tr></table>'
html += 'showrate="<sc"+"ript src=\""+gpath+"customer-reviews1.php?theid="+gid+"&thename="+gname+"\"><\/script>";';
html += 'document.write (showrate)';
html += '<form method="POST" style="display:inline;" action="https://order.store.yahoo.net/cgi-bin/wg-order?' + pd_yahooStoreId + '+' + itemData["itemId"] + '">';
html += '<input name="vwitem" type="hidden" value="' + itemData["itemId"] + '">';
html += '<input name="vwcatalog" type="hidden" value="' + pd_yahooStoreId + '">';
html += '<table border="0"><tr><td><span class="qtyText">Qty: </span><input type="text" name="vwquantity" value="1" size="2" style="width:30px;"></td><td>';
html += '<input type="image" src="' + pd_imageUrl + 'addToCartSm.gif" border="0"></td></tr></table>';
html += '</form>';
html += '</div>';
*/

	return html;

}

//***********************************************

//******** VIEW PRODUCT ARRAY AS LIST ***********

//***********************************************

function genProductHtmlList(item){

	var displayDiv = new String(item);

	var dataDiv = displayDiv.replace(/Display/g, 'Data');

	var childElem = document.getElementById(dataDiv).childNodes; 



	//*** DEFINE ITEM DATA ***

	var itemData = new Object();

	

	for(var i=0;i<childElem.length;i++){

	//alert(childElem[i].id);

		itemData[childElem[i].id] = String(childElem[i].title);

	}

	//*** PRICE DISPLAY LOGIC ***

	var priceReg = itemData["priceReg"] - 0;

	var priceSale = itemData["priceSale"] - 0;

	if(!priceSale) priceSale = priceReg;	

	var priceDisplay = '';

	if(priceReg > priceSale){

		priceDisplay = '<div class="pagedPriceDiv"><span class="pagedPrice">' + pd_regPriceText + '<strike>' + ' $' + formatCurrency(priceReg) + '</strike></span><br><span class="pagedPriceSale">' + pd_salePriceText + ' $' + formatCurrency(itemData["price"]-0) + '</span></div>';

	}else if(priceReg > 0){

		priceDisplay = '<div class="pagedPriceDiv"><span class="pagedPriceSale">Our Price: $' + formatCurrency(itemData["price"]-0) + '</span></div>';

	}

	

	var displayHtml = document.getElementById(dataDiv).innerHTML;

	//********************************************************

	//*** RETRIEVE DISCOUNT AND CALCULATE DISCOUNTED PRICE ***

	//********************************************************

	var discountPercentage = 0;

	try {

		discountPercentage = getDiscountPercentage(itemData["itemId"]);

	} catch(e) {

		//*** IGNORE IF NOT AVAILABLE 

	}

	

	if(discountPercentage > 0) {

		var discountedPrice = priceSale - (priceSale * (discountPercentage/100));

		var html = '<div class="pagingMyAccountPrice">';	

		html += 'Your Price: ' + formatCurrency(discountedPrice, true);

		html += '</div>';

		displayHtml = displayHtml.replace("<!-" + "- pdPricingDisplay -" + "->", html);

		

		var discountAmount = Math.round((priceSale - discountedPrice) * 100)/100;

		var discountOption = '<input type="hidden" name="Discount" value="(- $' + formatCurrency(discountAmount) + ')">';

		displayHtml = displayHtml.replace(/<\/form>/i, discountOption + "</form>");

	}	

	return displayHtml;

}



//***********************************************

//*** END NEW DISPLAY STYLE FUNCTIONALITY *******

//***********************************************



function displayProductArray() {

	debug("displayProductArray");



	//*************************************

	//**** TEST FOR NOTHING TO DISPLAY ****

	//*************************************

	if(!pd_filteredDisplayList) return false;

		

	//**********************************

	//**** REMEMBER GLOBAL SETTINGS ****

	//**********************************

	pdSetCookie("V2pd_pagingSortBy", pd_sortBy);

	

	//*******************************

	//**** RENDER PAGE ELEMENTS *****

	//*******************************		

	if(isBlank(pd_currentPageNumber)) {

		debug("could not find pd_currentPageNumber " + pd_currentPageNumber + ": setting = 1");

		pd_currentPageNumber = 1;

	}

	

	//*********************************************

	//*** POPULATE RESULTS INTO PRODUCT WRAPPER ***

	//*********************************************

	if(pd_filteredDisplayList.length >0) {

		document.getElementById("productWrapper").innerHTML = renderProductArray();

	} else {

		document.getElementById("productWrapper").innerHTML = '<div class="noProductsFound">' + pd_noItemsFoundMessage + '</b></div>';

	}

	

	//**********************************************************

	//*** TURN ON HEADER CONTROL PANEL AND POPULATE ELEMENTS ***

	//**********************************************************

	document.getElementById("pdPagingControlPanel").className = "pagingControlPanelShow";

	document.getElementById("pageInfo").innerHTML = renderPageInfo(pd_filteredDisplayList.length);

	document.getElementById("pageInfoBottom").innerHTML = renderPageInfo(pd_filteredDisplayList.length);

	document.getElementById("pageNumberLinks").innerHTML = renderPageNumberLinks(pd_filteredDisplayList.length);

	document.getElementById("pageNumberLinksBottom").innerHTML = renderPageNumberLinks(pd_filteredDisplayList.length);



	//**************

	//*** RETURN ***

	//**************

	return false;

}





function renderControlPanelSortLinks() {



	//********************************

	//**** SORT BY DEFAULT BUTTON ****

	//********************************

	var pdPagingSortByDefaultButton = document.getElementById("pdPagingSortByDefaultButton");



	var pdPagingSortByDefaultButtonActive = document.getElementById("pdPagingSortByDefaultButtonActive");

	if(pdPagingSortByDefaultButton != null && pdPagingSortByDefaultButtonActive != null) {

		try {pdRemoveEvent(pdPagingSortByDefaultButton,"click", sortAndDisplayByDefault);} catch(e) {}

		pdPagingSortByDefaultButton.className = "hiddenElem";

		pdPagingSortByDefaultButtonActive.className = "hiddenElem";

		if(pd_sortBy == "default") pdPagingSortByDefaultButtonActive.className = "sortLinkActive";

		else pdPagingSortByDefaultButton.className = "sortLink";

		pdAddEvent(pdPagingSortByDefaultButton,"click", sortAndDisplayByDefault);

	}



	//******************************

	//**** SORT BY BRAND BUTTON ****

	//******************************

	var pdPagingSortByBrandButton = document.getElementById("pdPagingSortByBrandButton");

	var pdPagingSortByBrandButtonActive = document.getElementById("pdPagingSortByBrandButtonActive");

	if(pdPagingSortByBrandButton != null && pdPagingSortByBrandButtonActive != null) {

		try {pdRemoveEvent(pdPagingSortByBrandButton,"click", sortAndDisplayByBrand);} catch(e) {}

		pdPagingSortByBrandButton.className = "hiddenElem";

		pdPagingSortByBrandButtonActive.className = "hiddenElem";

		if(pd_sortBy == "brand") pdPagingSortByBrandButtonActive.className = "sortLinkActive";

		else pdPagingSortByBrandButton.className = "sortLink";

		pdAddEvent(pdPagingSortByBrandButton,"click", sortAndDisplayByBrand);

	}

		

	//******************************

	//**** SORT BY NAME BUTTON ****

	//******************************	

	var pdPagingSortByNameButton = document.getElementById("pdPagingSortByNameButton");

	var pdPagingSortByNameButtonActive = document.getElementById("pdPagingSortByNameButtonActive");

	if(pdPagingSortByNameButton != null && pdPagingSortByNameButtonActive != null) {

		try {pdRemoveEvent(pdPagingSortByNameButton,"click", sortAndDisplayByName);} catch(e) {}

		pdPagingSortByNameButton.className = "hiddenElem";

		pdPagingSortByNameButtonActive.className = "hiddenElem";

		if(pd_sortBy == "name") pdPagingSortByNameButtonActive.className = "sortLinkActive";

		else pdPagingSortByNameButton.className = "sortLink";

		pdAddEvent(pdPagingSortByNameButton,"click", sortAndDisplayByName);	

	}

	

	//*****************************

	//**** SORT BY SIZE BUTTON ****

	//*****************************	

	var pdPagingSortBySizeButton = document.getElementById("pdPagingSortBySizeButton");

	var pdPagingSortBySizeButtonActive = document.getElementById("pdPagingSortBySizeButtonActive");

	if(pdPagingSortBySizeButton != null && pdPagingSortBySizeButtonActive != null) {

		try {pdRemoveEvent(pdPagingSortBySizeButton,"click", sortAndDisplayBySize);} catch(e) {}

		pdPagingSortBySizeButton.className = "hiddenElem";

		pdPagingSortBySizeButtonActive.className = "hiddenElem";

		if(pd_sortBy == "size") pdPagingSortBySizeButtonActive.className = "sortLinkActive";

		else pdPagingSortBySizeButton.className = "sortLink";

		pdAddEvent(pdPagingSortBySizeButton,"click", sortAndDisplayBySize);	

	}

		

	//******************************

	//**** SORT BY PRICE BUTTON ****

	//******************************	

	var pdPagingSortByPriceButton = document.getElementById("pdPagingSortByPriceButton");

	var pdPagingSortByPriceButtonActive = document.getElementById("pdPagingSortByPriceButtonActive");

	if(pdPagingSortByPriceButton != null && pdPagingSortByPriceButtonActive != null) {

		try {pdRemoveEvent(pdPagingSortByPriceButton,"click", sortAndDisplayByPrice);} catch(e) {}

		pdPagingSortByPriceButton.className = "hiddenElem";

		pdPagingSortByPriceButtonActive.className = "hiddenElem";

		if(pd_sortBy == "price") pdPagingSortByPriceButtonActive.className = "sortLinkActive";

		else pdPagingSortByPriceButton.className = "sortLink";

		pdAddEvent(pdPagingSortByPriceButton,"click", sortAndDisplayByPrice);	

	}

	

	//***************************************

	//**** SORT BY CASE PACK SIZE BUTTON ****

	//***************************************

	var pdPagingSortByCasePackSizeButton = document.getElementById("pdPagingSortByCasePackSizeButton");

	var pdPagingSortByCasePackSizeButtonActive = document.getElementById("pdPagingSortByCasePackSizeButtonActive");

	if(pdPagingSortByCasePackSizeButton != null && pdPagingSortByCasePackSizeButtonActive != null) {

		try {pdRemoveEvent(pdPagingSortByCasePackSizeButton,"click", sortAndDisplayByCasePackSize);} catch(e) {}

		pdPagingSortByCasePackSizeButton.className = "hiddenElem";

		pdPagingSortByCasePackSizeButtonActive.className = "hiddenElem";

		if(pd_sortBy == "casePackSize") pdPagingSortByCasePackSizeButtonActive.className = "sortLinkActive";

		else pdPagingSortByCasePackSizeButton.className = "sortLink";

		pdAddEvent(pdPagingSortByCasePackSizeButton,"click", sortAndDisplayByCasePackSize);	

	}

	

	//******************************

	//**** SORT BY SCORE BUTTON ****

	//******************************

	var pdPagingSortByScoreButton = document.getElementById("pdPagingSortByScoreButton");

	var pdPagingSortByScoreButtonActive = document.getElementById("pdPagingSortByScoreButtonActive");

	if(pdPagingSortByScoreButton != null && pdPagingSortByScoreButtonActive != null) {

		try {pdRemoveEvent(pdPagingSortByScoreButton,"click", sortAndDisplayByScore);} catch(e) {}

		pdPagingSortByScoreButton.className = "hiddenElem";

		pdPagingSortByScoreButtonActive.className = "hiddenElem";

		if(pd_sortBy == "score") pdPagingSortByScoreButtonActive.className = "sortLinkActive";

		else pdPagingSortByScoreButton.className = "sortLink";

		pdAddEvent(pdPagingSortByScoreButton,"click", sortAndDisplayByScore);	

	}

	

	//***********************************

	//**** SORT BY BESTSELLER BUTTON ****

	//***********************************

	var pdPagingSortByBestsellerButton = document.getElementById("pdPagingSortByBestsellerButton");

	var pdPagingSortByBestsellerButtonActive = document.getElementById("pdPagingSortByBestsellerButtonActive");

	if(pdPagingSortByBestsellerButton != null && pdPagingSortByBestsellerButtonActive != null) {

		try {pdRemoveEvent(pdPagingSortByBestsellerButton,"click", sortAndDisplayByBestseller);} catch(e) {}

		pdPagingSortByBestsellerButton.className = "hiddenElem";

		pdPagingSortByBestsellerButtonActive.className = "hiddenElem";

		if(pd_sortBy == "bestseller") pdPagingSortByBestsellerButtonActive.className = "sortLinkActive";

		else pdPagingSortByBestsellerButton.className = "sortLink";

		pdAddEvent(pdPagingSortByBestsellerButton,"click", sortAndDisplayByBestseller);	

	}	

	

	//*************************************

	//**** VIEW ALL ITEMS / PAGED VIEW ****

	//*************************************

	var pdPagingViewAllButton = document.getElementById("pdPagingViewAllButton");

	var pdPagingViewAllButtonActive = document.getElementById("pdPagingViewAllButtonActive");

	if(pdPagingViewAllButton != null && pdPagingViewAllButtonActive != null) {

		try {pdRemoveEvent(pdPagingViewAllButton,"click", toggleViewAll);} catch(e) {}

		try {pdRemoveEvent(pdPagingViewAllButtonActive,"click", toggleViewAll);} catch(e) {}

		pdPagingViewAllButton.className = "hiddenElem";

		pdPagingViewAllButtonActive.className = "hiddenElem";

		if(pd_currentPageNumber == "all") pdPagingViewAllButtonActive.className = "displayModeActive";

		else pdPagingViewAllButton.className = "displayMode";

		pdAddEvent(pdPagingViewAllButton,"click", toggleViewAll);

		pdAddEvent(pdPagingViewAllButtonActive,"click", toggleViewAll);

	}



	//*****************************

	//**** DISPLAY GRID BUTTON ****

	//*****************************

	var pdPagingDisplayGridButton = document.getElementById("pdPagingDisplayGridButton");

	var pdPagingDisplayGridButtonActive = document.getElementById("pdPagingDisplayGridButtonActive");

	if(pdPagingDisplayGridButton != null && pdPagingDisplayGridButtonActive != null) {

		try {pdRemoveEvent(pdPagingDisplayGridButtonActive,"click", togglePagingDisplayMode);} catch(e) {}

		pdPagingDisplayGridButton.className = "hiddenElem";

		pdPagingDisplayGridButtonActive.className = "hiddenElem";

		if(pd_pagingDisplayMode == "list") pdPagingDisplayGridButtonActive.className = "displayMode";

		else pdPagingDisplayGridButton.className = "displayModeActive";

		pdAddEvent(pdPagingDisplayGridButtonActive,"click", togglePagingDisplayMode);	

	}

	

	//*****************************

	//**** DISPLAY LIST BUTTON ****

	//*****************************

	var pdPagingDisplayListButton = document.getElementById("pdPagingDisplayListButton");

	var pdPagingDisplayListButtonActive = document.getElementById("pdPagingDisplayListButtonActive");

	if(pdPagingDisplayListButton != null && pdPagingDisplayListButtonActive != null) {

		try {pdRemoveEvent(pdPagingDisplayListButtonActive,"click", togglePagingDisplayMode);} catch(e) {}	

		pdPagingDisplayListButton.className = "hiddenElem";

		pdPagingDisplayListButtonActive.className = "hiddenElem";

		if(pd_pagingDisplayMode == "grid") pdPagingDisplayListButtonActive.className = "displayMode";

		else pdPagingDisplayListButton.className = "displayModeActive";

		pdAddEvent(pdPagingDisplayListButtonActive,"click", togglePagingDisplayMode);	

	}

	

	

	return true;

}



function renderControlPanelFilters() {



	//*****************************

	//***** FILTER BY KEYWORD *****

	//*****************************

	var pdPagingFilterByKeyword = document.getElementById("pdPagingFilterByKeyword");


	if(pdPagingFilterByKeyword != null) {

		try {pdRemoveEvent(pdPagingFilterByKeyword,"click", clearFirstTimeSearchText);} catch(e) {}

		pdPagingFilterByKeyword.value = pd_searchTextFirstLoad;	

		pdAddEvent(pdPagingFilterByKeyword,"click", clearFirstTimeSearchText);

		pdAddEvent(pdPagingFilterByKeyword,"keyup", searchWhileTyping);

	}



	//*************************

	//**** FILTER BY BRAND ****

	//*************************

	var pdPagingFilterByBrand = document.getElementById("pdPagingFilterByBrand");

	if(pdPagingFilterByBrand != null) {

		try {pdRemoveEvent(pdPagingFilterByBrand, "change", performFilter);} catch(e) {}

		var filterList = generateFilterList("brand");

		if(filterList.length == 0) pdPagingFilterByBrand.className = "hideDiv";

		else {

			pdPagingFilterByBrand.className = "showDivInline";

			populateSelectOptions(pdPagingFilterByBrand, filterList, pd_brandSelected);

			pdAddEvent(pdPagingFilterByBrand,"change", performFilter);

		}

	}

	

	//************************

	//**** FILTER BY SIZE ****

	//************************

	var pdPagingFilterBySize = document.getElementById("pdPagingFilterBySize");

	if(pdPagingFilterBySize != null) {

		try {pdRemoveEvent(pdPagingFilterBySize, "change", performFilter);} catch(e) {}

		var filterList = generateFilterList("size");

		if(filterList.length == 0) pdPagingFilterBySize.className = "hideDiv";

		else {

			pdPagingFilterBySize.className = "showDivInline";

			populateSelectOptions(pdPagingFilterBySize, filterList, pd_sizeSelected);

			pdAddEvent(pdPagingFilterBySize,"change", performFilter);

		}

	}

		

	//*************************

	//**** FILTER BY COLOR ****

	//*************************

	var pdPagingFilterByColor = document.getElementById("pdPagingFilterByColor");

	if(pdPagingFilterByColor != null) {

		try{pdRemoveEvent(pdPagingFilterByColor, "change", performFilter);} catch(e) {}

		var filterList = generateFilterList("color");

		if(filterList.length == 0) pdPagingFilterByColor.className = "hideDiv";

		else {

			pdPagingFilterByColor.className = "showDivInline";

			populateSelectOptions(pdPagingFilterByColor, filterList, pd_colorSelected);

			pdAddEvent(pdPagingFilterByColor,"change", performFilter);

		}

	}

	

	//****************************

	//**** FILTER BY MATERIAL ****

	//****************************

	var pdPagingFilterByMaterial = document.getElementById("pdPagingFilterByMaterial");

	if(pdPagingFilterByMaterial != null) {

		try {pdRemoveEvent(pdPagingFilterByMaterial, "change", performFilter);} catch(e) {}

		var filterList = generateFilterList("material");

		if(filterList.length == 0) pdPagingFilterByMaterial.className = "hideDiv";

		else {

			pdPagingFilterByMaterial.className = "showDivInline";

			populateSelectOptions(pdPagingFilterByMaterial, filterList, pd_materialSelected);

			pdAddEvent(pdPagingFilterByMaterial,"change", performFilter);

		}

	}

	

	//****************************

	//**** FILTER BY CATEGORY ****

	//****************************

	var pdPagingFilterByCategory = document.getElementById("pdPagingFilterByCategory");

	if(pdPagingFilterByCategory != null) {

		try {pdRemoveEvent(pdPagingFilterByCategory, "change", performFilter);} catch(e) {}

		var filterList = generateFilterList("category");

		if(filterList.length == 0) pdPagingFilterByCategory.className = "hideDiv";

		else {

			pdPagingFilterByCategory.className = "showDivInline";

			populateSelectOptions(pdPagingFilterByCategory, filterList, pd_categorySelected);

			pdAddEvent(pdPagingFilterByCategory,"change", performFilter);

		}

	}

	

	//*******************************

	//**** FILTER BY PRICE RANGE ****

	//*******************************

	var pdPagingFilterByPriceRange = document.getElementById("pdPagingFilterByPriceRange");

	if(pdPagingFilterByPriceRange != null) {

		try {pdRemoveEvent(pdPagingFilterByPriceRange,"change", performFilter);} catch(e) {}

		pdAddEvent(pdPagingFilterByPriceRange,"change", performFilter);

	}



	return false;

}



function renderControlPanelFilterButtons() {

debug("renderControlPanelFilterButtons()");



	//*********************************

	//**** FILTER BY STONE BUTTONS ****

	//*********************************

	var pdPagingFilterStoneButton = document.getElementById("pdPagingFilterStoneButton");

	var pdPagingFilterStoneButtonActive = document.getElementById("pdPagingFilterStoneButtonActive");

	if(pdPagingFilterStoneButton != null && pdPagingFilterStoneButtonActive != null) {

		try {pdRemoveEvent(pdPagingFilterStoneButtonActive, "click", setAndPerformFilterByStoneButton);} catch(e) {}

		try {pdRemoveEvent(pdPagingFilterStoneButton, "click", setAndPerformFilterByStoneButton);} catch(e) {}

		if(pd_filterByStoneButton == true) {

			pdPagingFilterStoneButton.className = "hiddenElem";

			pdPagingFilterStoneButtonActive.className = "sortLinkActive";

		} else {

			pdPagingFilterStoneButtonActive.className = "hiddenElem";

			pdPagingFilterStoneButton.className = "sortLinkActive";

		}

		pdAddEvent(pdPagingFilterStoneButton,"click", setAndPerformFilterByStoneButton);

		pdAddEvent(pdPagingFilterStoneButtonActive,"click", setAndPerformFilterByStoneButton);

	}

	

	//*************************************

	//**** FILTER BY NON STONE BUTTONS ****

	//*************************************

	var pdPagingFilterNonStoneButton = document.getElementById("pdPagingFilterNonStoneButton");

	var pdPagingFilterNonStoneButtonActive = document.getElementById("pdPagingFilterNonStoneButtonActive");

	if(pdPagingFilterNonStoneButton != null && pdPagingFilterNonStoneButtonActive != null) {

		try {pdRemoveEvent(pdPagingFilterNonStoneButtonActive, "click", setAndPerformFilterByNonStoneButton);} catch(e) {}

		try {pdRemoveEvent(pdPagingFilterNonStoneButton, "click", setAndPerformFilterByNonStoneButton);} catch(e) {}

		if(pd_filterByNonStoneButton == true) {

			pdPagingFilterNonStoneButton.className = "hiddenElem";

			pdPagingFilterNonStoneButtonActive.className = "sortLinkActive";

		} else {

			pdPagingFilterNonStoneButtonActive.className = "hiddenElem";

			pdPagingFilterNonStoneButton.className = "sortLinkActive";

		}

		pdAddEvent(pdPagingFilterNonStoneButton,"click", setAndPerformFilterByNonStoneButton);

		pdAddEvent(pdPagingFilterNonStoneButtonActive,"click", setAndPerformFilterByNonStoneButton);

	}



	return false;

}







//*********************************************************************

//****** DISPLAY PAGE ELEMENTS RELATED TO SORTING AND FILTERING *******

//*********************************************************************



function clearFilter() {

debug("clearFilter");

	pd_currentPageNumber = 1;

	performFilter();

	return false;

}



function renderPageNumberLinks(productCount) {



debug("renderPageNumberLinks(productCount)");



	var pageCount = Math.ceil(productCount/pd_itemsPerPage);

	if(pageCount == 1) return "";	

	var html = "";



	if(pd_currentPageNumber != "all") {

	

		var pagesToDisplay = pd_pagesToDisplay;

		var extraPages = 0;



		var firstPageNumberToDisplay = pd_currentPageNumber - Math.floor(pagesToDisplay / 2);

		if(firstPageNumberToDisplay < 1) {

			extraPages = Math.abs(firstPageNumberToDisplay) + 1;

			firstPageNumberToDisplay = 1;

		}



		var lastPageNumberToDisplay = (pd_currentPageNumber - 0) + Math.floor(pagesToDisplay / 2) + extraPages;

		if(lastPageNumberToDisplay > pageCount) {

			firstPageNumberToDisplay -= lastPageNumberToDisplay - pageCount;

			lastPageNumberToDisplay = pageCount;

			if(firstPageNumberToDisplay < 1) firstPageNumberToDisplay = 1;

		}		

		html += '<table border="0" cellpadding="0" cellspacing="1"><tr>';

		

		//**********************

		//*** PREVIOUS ARROW ***

		//**********************		

		if(pd_currentPageNumber != "all") {	

			if(pd_currentPageNumber > 1) {

				var previousPage = pd_currentPageNumber - 1;

				html += '<td><a href="#" onClick="return(setPageNumberAndDisplayProductArray(' + previousPage + '))" class="pageArrow"><img src="' + pd_imageUrl + 'pagingprevious.gif" border="0" hspace="3" class="imgBlock"></a></td>';

			} else {

				html += '';

			}

		}

			

		for(var i=firstPageNumberToDisplay;i<=lastPageNumberToDisplay;i++) {

			if(pd_currentPageNumber == i) {

				html += '<td><div class="pageNumBgOn">' + i + '</div></td>';

				if(i < lastPageNumberToDisplay) html += '';

			} else {

				html += '<td><div class="pageNumBg" onClick="return(setPageNumberAndDisplayProductArray(' + i + '))"><a href="#" class="pageNum" onClick="return(setPageNumberAndDisplayProductArray(' + i + '))">' + i + '</a></div></td>';

				if(i < lastPageNumberToDisplay) html += '';

			}

		}

		

		//******************

		//*** NEXT ARROW ***

		//******************	

		if(pd_currentPageNumber != "all") {	

			var nextPage = pd_currentPageNumber + 1;

			if(nextPage <= pageCount) {

				html += '<td onClick="setPageNumberAndDisplayProductArray(' + nextPage + ')"><a href="#" onClick="return(setPageNumberAndDisplayProductArray(' + nextPage + '))" class="pageArrow"><img src="' + pd_imageUrl + 'pagingnext.gif" border="0" hspace="3" class="imgBlock"></a></td>';

			} else {

				html += '';

			}

		}

		

		html += '</tr></table>';

	}	

	return html;

}





function renderPageInfo(productCount) {



debug("renderPageInfo");



	var pageCount = Math.ceil(productCount/pd_itemsPerPage);

	if(pageCount == 1 || pageCount == 0) return "";

	var html = "";

	

	if(pd_currentPageNumber != "all") {

		html += '<span class="pageInfo"><nobr>Page ' + pd_currentPageNumber + ' of ' + pageCount + '&nbsp; &nbsp;</nobr></span>';

	}

	

	return html;

}



function toggleViewAll() {

debug("toggleViewAll()");

	//*************************

	//*** TOGGLE pd_viewAll ***

	//*************************

	if(pd_currentPageNumber != "all") setPageNumber("all");

	else setPageNumber(1);

	

	//*****************

	//*** REDISPLAY ***

	//*****************

	renderControlPanelSortLinks();

	displayProductArray();



	//**************

	//*** RETURN ***

	//**************

	return false;

}



function togglePagingDisplayMode() {

debug("togglepagingDisplayMode()");

	//***********************************

	//*** TOGGLE pd_pagingDisplayMode ***

	//***********************************

	if(pd_pagingDisplayMode == "list") setPagingDisplayMode("grid");

	else setPagingDisplayMode("list");



	//*****************

	//*** REDISPLAY ***

	//*****************

	renderControlPanelSortLinks();

	displayProductArray();



	//**************

	//*** RETURN ***

	//**************

	return false;

}





function viewPage(pageNumber) {

	debug("viewPage, setting pageNumber = " + pageNumber);

	setPageNumber(pageNumber);

	displayProductArray();

	return false;

}



function populateSelectOptions(selectElement, optionList, selected) {

	var optionCount = 0;

	var item = new Object();

	for(item in optionList) {

		if(optionList.hasOwnProperty(item)) {

			optionCount++;

			selectElement.options[optionCount] = new Option(optionList[item].name, optionList[item].name);

			if(selected == optionList[item].name) selectElement.options[optionCount].selected = true;

		}

	}

	return false;

}



function renderSelectOptions(list, defaultOptionName, defaultOptionValue, optionSelected) {

	debug("renderSelectOptions(list, defaultOptionName, defaultOptionValue, optionSelected)");



	var html = "";

	html += '<option value="' + defaultOptionValue + '">' + defaultOptionName + '</option>';

	var item = new Object();

	for(item in list) {

		if(list.hasOwnProperty(item)) {

			html += '<option value="' + list[item].name + '"';

			if(list[item].name == optionSelected) html += ' SELECTED';

			html += '>' + list[item].name + '</option>';

		}

	}

	return html;

}



function renderBestsellerFilterLink() {

	var html = '';

	if(pd_filterBy != 'bestseller'){

		html += '<nobr><img src="' + pd_imageUrl + 'arrowSmall.gif"><a href="#" class="filterLink"  onClick="return(filterProductArrayByBestseller(\'bestseller\'))">Show Bestsellers</a></nobr>';

	}else{	

		html += '<div class="filterLinkDOn"><nobr><img src="' + pd_imageUrl + 'arrowSmallW.gif" hspace="4"><a href=" " class="filterLinkOn"  onClick="return(filterProductArrayByBestseller(\'all\'))"><b>Show All Items</b></a></nobr></div>';

	}

	return html;

}



/*

function renderSortByDropdown() {

	var html = '';

	html += '<form style="display:inline;margin:0;padding:0;">';

	html += '<table border="0" cellpadding="0" cellspacing="0"><tr><td align="center">';

	html += '<select name="sortBy" id="sortBy" onChange="return(doSortBy(this.options[this.selectedIndex].value,\'sortBy\'))" class="sortDDMenu">';

	html += '<option>Sort Results By</option>';



	html += '<option value="title"';

	if(pd_sortBy == "title") html += ' SELECTED';

	html += '>Name</option>';



	html += '<option value="brand"';

	if(pd_sortBy == "brand") html += ' SELECTED';

	html += '>Brand</option>';



	html += '<option value="price"';

	if(pd_sortBy == "price") html += ' SELECTED';

	html += '>Price</option>';



	html += '<option value="bestseller"';

	if(pd_sortBy == "bestseller") html += ' SELECTED';

	html += '>Top Sellers</option>';

		

	html += '<option value="costPerServing"';

	if(pd_sortBy == "costPerServing") html += ' SELECTED';

	html += '>Cost Per Serving</option>';

	

	html += '</select></td></tr>';

	html += '<tr><td align="center"><img src="' + pd_imageUrl + 'upArrowOff.gif" border="0" id="sortArrow"></td></tr>';

	html += '</table></form>';

	

	return html;

	resetMenuHighlight();

}

*/



function doSortBy(sortBy,elem) {

debug("doSortBy(sortBy, elem)");

	pd_sortBy = sortBy;

	var result = displayProductArray();

	return false;

}



function filterProductArrayByBrand(brand) {

debug("filterProductArrayByBrand:" + brand);

	pd_brandSelected = brand;

	pd_filteredDisplayList = getFilteredDisplayListByBrand(brand);

	pd_currentPageNumber = 1;

	var success = displayProductArray();

	return false;

}



//*********************************************

//********* FILTER BESTSELLER ITEMS ***********

//*********************************************

function filterProductArrayByBestseller(filterBy) {

debug("filterProductArrayByBestseller()");

	if(filterBy == 'bestseller'){

		pd_filterBy = 'bestseller';

		pd_filteredDisplayList = getFilteredDisplayListByBestseller();

		pd_currentPageNumber = 1;

		var success = displayProductArray();

	}else{

		pd_filterBy = 'all';

		return(clearFilter());

	}	

	return false;

}



function getFilteredDisplayListByBestseller() {

debug("getFilteredDisplayListByBestseller");

	var productArray = pd_filteredDisplayList;

	var filteredHash = new Array();

	var item = new Object();

	for(item in productArray) {

		if(productArray.hasOwnProperty(item)) {

			var isBestseller = productArray[item].bestseller;

			if(isBestseller == "Yes"){

				filteredHash[productArray[item].id] = productArray[item];

			}

		}

	}	

	var filteredList = convertHashToArray(filteredHash);

	return filteredList;

}

//*********************************************

//****** END FILTER BESTSELLER ITEMS **********

//*********************************************



function getFilteredDisplayListByFullStringMatch(filterName, filterValue) {

debug("getFilteredDisplayListByFullStringMatch(" + filterName + "," + filterValue + ")");

	var productArray = pd_filteredDisplayList;

	filterValue = String(filterValue).toLowerCase();	//*** LOWERCASE VALUE FOR CASE INSENSITIVE COMPARISON

	var filteredHash = new Array();

	var item = new Object();

	for(item in productArray) {

		if(productArray.hasOwnProperty(item)) {

			var found = true;

			if(String(productArray[item][filterName]).toLowerCase() != filterValue && filterValue != "") found = false;

			if(found == true) filteredHash[productArray[item].id] = productArray[item];

		}

	}

	var filteredList = convertHashToArray(filteredHash);

	return filteredList;

}



function getFilteredDisplayListByBooleanMatch(filterName, filterValue) {

debug("getFilteredDisplayListByBooleanMatch(" + filterName + "," + filterValue + ")");

	var productArray = pd_filteredDisplayList;

	filterValue = String(filterValue).toLowerCase();	//*** LOWERCASE VALUE FOR CASE INSENSITIVE COMPARISON

	var filteredHash = new Array();

	var item = new Object();

	for(item in productArray) {

		if(productArray.hasOwnProperty(item)) {

			var found = true;

			if(parseBoolean(productArray[item][filterName]) != parseBoolean(filterValue)) found = false;

			if(found == true) filteredHash[productArray[item].id] = productArray[item];

		}

	}

	var filteredList = convertHashToArray(filteredHash);

	return filteredList;



}





function getFilteredDisplayListBySubStringMatch(filterName, filterValue) {

debug("getFilteredDisplayListBySubStringMatch(" + filterName + "," + filterValue + ")");

	var productArray = pd_filteredDisplayList;

	filterValue = String(filterValue).toLowerCase();	//*** LOWERCASE VALUE FOR CASE INSENSITIVE COMPARISON

	var filteredHash = new Array();

	var item = new Object();

	for(item in productArray) {

		if(productArray.hasOwnProperty(item)) {

			var found = false;

			if(String(productArray[item][filterName]).toLowerCase().indexOf(filterValue) > -1) found = true;		

			if(filterValue == "") found = true;	//*** ALWAYS FIND A BLANK SEARCH

			if(found == true) filteredHash[productArray[item].id] = productArray[item];

		}

	}

	var filteredList = convertHashToArray(filteredHash);

	return filteredList;

}



function getFilteredDisplayListBySize(size) {

debug("getFilteredDisplayListBySize");

	var productArray = pd_filteredDisplayList;

	debug("productArray.length = " + productArray.length);

	size = String(size).toLowerCase();

	var filteredHash = new Array();

	var item = new Object();

	for(item in productArray) {

		if(productArray.hasOwnProperty(item)) {

			var found = false;

			var tempArray = productArray[item].sizeList.split(",");

			var item2 = new Object();

			for(item2 in tempArray) {

				if(tempArray.hasOwnProperty(item2)) {

					if(String(tempArray[item2]).toLowerCase() == size) found = true;

					if(isBlank(size)) found = true;

				}

			}

			if(found == true) {

				filteredHash[productArray[item].id] = productArray[item];

			}

		}

	}

	var filteredList = convertHashToArray(filteredHash);

	return filteredList;

}



function getFilteredDisplayListByNumericRange(attributeName, numericRange) {

debug("getFilteredDisplayListByNumericRange(" + numericRange + ")");

	var productArray = pd_filteredDisplayList;

	var numericRangeComponents = numericRange.split(":");

	var low = numericRangeComponents[0];

	var high = numericRangeComponents[1];

	

	var filteredList = new Array();

	var item = new Object();

	for(item in productArray) {

		if(productArray.hasOwnProperty(item)) {

			var found = false;

			if((productArray[item][attributeName]-0) >= (low-0) && (productArray[item][attributeName]-0) <= (high-0)) found = true;

			if(found == true) filteredList.push(productArray[item]);

		}

	}

	return filteredList;

}





function getFilteredDisplayListByTitleFirstLetterIsNumber() {

debug("getFilteredDisplayListByTitleFirstLetterIsNumber");

	var productArray = pd_displayList;

	var filteredList = new Array();

	var item = new Object();

	var i = 0;

	for(item in productArray) {

		if(productArray.hasOwnProperty(item)) {

			if(startsWithNumber(productArray[item].name)) {

				filteredList[i] = productArray[item];

				i++;

			}

		}

	}

	return filteredList;

}



function getFilteredDisplayListByBrandFirstLetterIsNumber() {

debug("getFilteredDisplayListByBrandFirstLetterIsNumber");

	var productArray = pd_displayList;

	var filteredList = new Array();

	var item = new Object();

	var i = 0;

	for(item in productArray) {

		if(productArray.hasOwnProperty(item)) {

			if(startsWithNumber(productArray[item].brand)) {

				filteredList[i] = productArray[item];

				i++;

			}

		}

	}

	return filteredList;

}



function getFilteredDisplayListByTitleFirstLetter(firstLetter) {

debug("getFilteredDisplayListByTitleFirstLetter");

	var productArray = pd_displayList;

	var filteredList = new Array();

	var item = new Object();

	var i = 0;

	for(item in productArray) {

		if(productArray.hasOwnProperty(item)) {

			if((String(productArray[item].name).substring(0, 1)).toLowerCase() == String(firstLetter).toLowerCase()) {

				filteredList[i] = productArray[item];

				i++;

			}

		}

	}

	return filteredList;

}



function getFilteredDisplayListByBrandFirstLetter(firstLetter) {

debug("getFilteredDisplayListByBrandFirstLetter");

	var productArray = pd_displayList;

	var filteredList = new Array();

	var item = new Object();

	var i = 0;

	for(item in productArray) {

		if(productArray.hasOwnProperty(item)) {

			if((String(productArray[item].brand).substring(0, 1)).toLowerCase() == String(firstLetter).toLowerCase()) {

				filteredList[i] = productArray[item];

				i++;

			}

		}

	}

	return filteredList;

}



function getFirstLetterListByBrand() {

debug("getFirstLetterListByBrand");

	var productArray = pd_displayList;

	var firstLetterHash = new Array();

	var item = new Object();

	var firstLetter = "";

	for(item in productArray) {

		if(productArray.hasOwnProperty(item)) {

			firstLetter = (String(productArray[item].brand).substring(0,1)).toUpperCase();

			firstLetterHash[firstLetter] = firstLetter;

		}

	}

	return firstLetterHash;

}



function getFirstLetterListByTitle() {

debug("getFirstLetterListByTitle");

	var productArray = pd_displayList;

	var firstLetterHash = new Array();

	var item = new Object();

	var firstLetter = "";

	for(item in productArray) {

		if(productArray.hasOwnProperty(item)) {

			firstLetter = (String(productArray[item].name).substring(0,1)).toUpperCase();

			firstLetterHash[firstLetter] = firstLetter;

		}

	}

	return firstLetterHash;

}





function generateFilterList(listType) {

debug("generateFilterList(" + listType + ")");

	var productArray = pd_displayList;

	var filteredHash = new Array();

	var tempName = "";

	var item = new Object();

	var item2 = new Object();

	for(item in productArray) {

				

		if(productArray.hasOwnProperty(item)) {

	

			var tempArray = String(productArray[item][listType]).split(",");

			for(item2 in tempArray) {	

				tempName = String(tempArray[item2]).toLowerCase();

				if(!isBlank(tempName)) {	

					if(!filteredHash[tempName]) {

						filteredHash[tempName] = new Object();

						filteredHash[tempName].name = tempArray[item2];

						filteredHash[tempName].count = 1;

					} else {

						filteredHash[tempName].count++;

					}

				}

			}

		}

	}

	

	var filteredList = convertHashToArray(filteredHash);

	

	//************************

	//*** SORT BY listType ***

	//************************

	pd_sortTemp = "name";

	filteredList.sort(compareGeneric);

	return filteredList;

}



function startsWithNumber(input) {

	if(	String(input).substring(0, 1) == "0" ||

		String(input).substring(0, 1) == "1" ||

		String(input).substring(0, 1) == "2" ||

		String(input).substring(0, 1) == "3" ||

		String(input).substring(0, 1) == "4" ||

		String(input).substring(0, 1) == "5" ||

		String(input).substring(0, 1) == "6" ||

		String(input).substring(0, 1) == "7" ||

		String(input).substring(0, 1) == "8" ||

		String(input).substring(0, 1) == "9") {

		return true;

	} else {

		return false;

	}

}





function getCurrentPageNumber() {

	debug("initialize : getCurrentPageNumber");

	var pageNumber = 1;

	if(pd_lastSection == pd_currentSection) {

		pageNumber = pdGetCookie("V2pd_currentPageNumber");

	}



	setPageNumber(pageNumber);

	setLastSection(pd_currentSection);

	

	if(isBlank(pageNumber)) pageNumber = 1;

	return pageNumber;	

}

//*******************************************************************

//*********** END DISPLAY PAGE ELEMENTS RELATED TO SORTING **********

//*******************************************************************



//*******************************************************************

//****************** COMPARE AND SORT FUNCTIONS *********************

//*******************************************************************

function performSort() {

debug("performSort()");

	if(pd_sortBy == "default") sortProductArrayByNumeric("defaultSortId");

	else if(pd_sortBy == "name") sortProductArrayByGeneric("name");

	else if(pd_sortBy == "brand") sortProductArrayByGeneric("brand");

	else if(pd_sortBy == "price") sortProductArrayByNumeric("price");

	else if(pd_sortBy == "casePackSize") sortProductArrayByGeneric("casePackSize");

	else if(pd_sortBy == "bestseller") sortProductArrayByNumericDescending("bestseller");

	else if(pd_sortBy == "sizeForm") sortProductArrayByGeneric("sizeForm");

	else if(pd_sortBy == "size") sortProductArrayBySize();

	else if(pd_sortBy == "score") sortProductArrayByNumericDescending("score");

	return false;

}



function getCurrentSortBy() {

	debug("initialize : getCurrentSortBy");

	var pd_sortBy = "";

	pd_currentSection = "";

	if(pd_lastSection == pd_currentSection) {

		pd_sortBy = pdGetCookie("V2pd_pagingSortBy");

	}

	if(isBlank(pd_sortBy)) pd_sortBy = "";

	return pd_sortBy;	

}



function sortProductArrayByGeneric(sortBy) {

debug("sortProductArrayByGeneric");

	pd_sortTemp = "id";

	pd_filteredDisplayList = pd_filteredDisplayList.sort(compareGeneric);

	pd_sortTemp = sortBy;

	pd_filteredDisplayList = pd_filteredDisplayList.sort(compareGeneric);

	return false;

}



function sortProductArrayByNumeric(sortBy) {

debug("sortProductArrayByNumeric(" + sortBy + ")");

	pd_sortTemp = "id";

	pd_filteredDisplayList = pd_filteredDisplayList.sort(compareGeneric);

	pd_sortTemp = sortBy;

	pd_filteredDisplayList = pd_filteredDisplayList.sort(compareNumeric);

	return false;

}



function sortProductArrayByNumericDescending(sortBy) {

debug("sortProductArrayByNumericDescending(" + sortBy + ")");

	pd_sortTemp = "id";

	pd_filteredDisplayList = pd_filteredDisplayList.sort(compareGeneric);

	pd_sortTemp = sortBy;

	pd_filteredDisplayList = pd_filteredDisplayList.sort(compareNumericDescending);

	return false;

}





function compareGeneric(item1, item2) {

	if(String(item1[pd_sortTemp]).toUpperCase() > String(item2[pd_sortTemp]).toUpperCase()) return 1;

	else if(String(item1[pd_sortTemp]).toUpperCase() < String(item2[pd_sortTemp]).toUpperCase()) return -1;

	else return 0;

}



function compareNumeric(item1, item2) {

	if((item1[pd_sortTemp]-0) > (item2[pd_sortTemp]-0)) return 1;

	else if((item1[pd_sortTemp]-0) < (item2[pd_sortTemp]-0)) return -1;

	else return 0;

}

function compareNumericDescending(item1, item2) {

	if((item1[pd_sortTemp]-0) < (item2[pd_sortTemp]-0)) return 1;

	else if((item1[pd_sortTemp]-0) > (item2[pd_sortTemp]-0)) return -1;

	else return 0;

}



function compareSize(item1, item2) {

	if(getSizeSortValue(item1.size) > getSizeSortValue(item2.size)) return 1;

	else if(getSizeSortValue(item1.size) < getSizeSortValue(item2.size)) return -1;

	else return 0;

}



function getSizeSortValue(size) {

	size = size.toUpperCase();

	if(size == "XS" || size == "X-SMALL" || size == "EXTRA SMALL") sizeScore = 0;

	else if(size == "S" || size == "SMALL") sizeScore = 2;

	else if(size == "M" || size == "MEDIUM") sizeScore = 6;

	else if(size == "L" || size == "LARGE") sizeScore = 8;

	else if(size == "XL" || size == "EXTRA LARGE" || size == "X-LARGE") sizeScore = 10;

	else if(size - 0 == size) sizeScore = size;

	else sizeScore = 999;

	return sizeScore;

}

//*******************************************************************

//************** END COMPARE AND SORT FUNCTIONS *********************

//*******************************************************************



function debug(message) {

	if(pd_debugFlag == true) {

		alert(message);

	}

	return false;

}



function getElementsByClassName(classname, node)  {

    if(!node) node = document.getElementsByTagName("body")[0];

    var a = [];

    var re = new RegExp('\\b' + classname + '\\b');

    var els = node.getElementsByTagName("*");

    for(var i=0,j=els.length; i<j; i++)

        if(re.test(els[i].className))a.push(els[i]);

    return a;

}





function turnOffDisplayOfDataElements() {

	var elementArray = getElementsByClassName("displayDiv");

	var item = new Object();

	for(item in elementArray) {

		if(elementArray.hasOwnProperty(item)) {

			elementArray[item].className = "displayDivHide";

		}

	}

	return true;

}



function setPageNumber(pageNumber) {

	pd_currentPageNumber = pageNumber;

	pdSetCookie("V2pd_currentPageNumber", pageNumber);

	return true;

}



function resetPageNumber() {

	if(pd_currentPageNumber != "all") setPageNumber(1);

	return true;

}



function getPagingDisplayMode() {

	var pagingDisplayMode = pdGetCookie("V2pd_pagingDisplayMode");

	if(isBlank(pagingDisplayMode)) pagingDisplayMode = pd_pagingDisplayModeDefault;

	if(isBlank(pagingDisplayMode)) pagingDisplayMode = "list";

	setPagingDisplayMode(pagingDisplayMode);

	return pagingDisplayMode;

}



function setPagingDisplayMode(pagingDisplayMode) {

	pd_pagingDisplayMode = pagingDisplayMode;

	pdSetCookie("V2pd_pagingDisplayMode", pagingDisplayMode);

	return true;

}



function setCurrentSection(section) {	

	pd_currentSection = section;	

	pdSetCookie("V2pd_currentSection", section);

	return true;

}



function setLastSection(section) {	

	pd_lastSection = section;	

	pdSetCookie("V2pd_lastSection", section);

	return true;

}



function convertHashToArray(hash) {

	var tempArray = new Array();

	var item = new Object();

	for(item in hash) {

		if(hash.hasOwnProperty(item)) {

			tempArray.push(hash[item]);

		}	

	}

	return tempArray;

}



function setPageNumberAndDisplayProductArray(pageNumber) {

	setPageNumber(pageNumber);



	//SCROLL TO TOP OF PAGING

	var pagingTop = document.getElementById('pagingTop');

	pagingTop.scrollIntoView();



	displayProductArray();

	return false;

}



//**************************************

//*** CONCATENATED FUNCTION WRAPPERS ***

//**************************************

function sortAndDisplayByDefault() {

	resetPageNumber();

	pd_sortBy = "default";

	renderControlPanelSortLinks();

	performSort();

	displayProductArray();

}

function sortAndDisplayByBrand() {

	resetPageNumber();

	pd_sortBy = "brand";

	renderControlPanelSortLinks();

	performSort();

	displayProductArray();

}

function sortAndDisplayByName() {

	resetPageNumber();

	pd_sortBy = "name";

	renderControlPanelSortLinks();

	performSort();

	displayProductArray();

}

function sortAndDisplayByPrice() {

	resetPageNumber();

	pd_sortBy = "price";

	renderControlPanelSortLinks();

	performSort();

	displayProductArray();

}

function sortAndDisplayByCasePackSize() {

	resetPageNumber();

	pd_sortBy = "casePackSize";

	renderControlPanelSortLinks();

	performSort();

	displayProductArray();

}

function sortAndDisplayBySize() {

	resetPageNumber();

	pd_sortBy = "size";


	renderControlPanelSortLinks();

	performSort();

	displayProductArray();

}

function sortAndDisplayByScore() {

	resetPageNumber();

	pd_sortBy = "score";

	renderControlPanelSortLinks();

	performSort();

	displayProductArray();

}

function sortAndDisplayByBestseller() {

	resetPageNumber();

	pd_sortBy = "bestseller";

	renderControlPanelSortLinks();

	performSort();

	displayProductArray();

}



//************************

//**** BUTTON FILTERS ****

//************************

function setAndPerformFilterByStoneButton() {

debug("setAndPerformFilterByStoneButton()");

	pd_filterByStoneButton = !pd_filterByStoneButton;

	renderControlPanelFilterButtons();

	performFilter();

}

function setAndPerformFilterByNonStoneButton() {

debug("setAndPerformFilterByNonStoneButton()");

	pd_filterByNonStoneButton = !pd_filterByNonStoneButton;

	renderControlPanelFilterButtons();

	performFilter();

}