//*************************************************
//***** COPYRIGHT 2006, PRACTICAL DATA, INC. ******
//***** - UNAUTHORIZED USE IS PROHIBITED **********
//*************************************************
if(isBlank(pd_itemsPerPage)) var pd_itemsPerPage = 25;
if(isBlank(pd_itemsPerRow)) var pd_itemsPerRow = 1;
if(isBlank(pd_sortBy)) var pd_sortBy = "";

var pd_lastSection = pdGetCookie("V2pd_lastSection");
var pd_refreshId = "";
var pd_debugFlag = false;
var pd_currentPageNumber = getCurrentPageNumber();
var pd_pagesToDisplay = 5;
var pd_searchFirstRun = true;
var pd_sortMethod = "title"
var pd_filterSearchDelay = 650;

var pd_searchTextFirstLoad = "Filter By Keyword(s):";
var pd_searchText = "Filter By Keyword(s):";
var pd_brandSelected = "";
var pd_sizeSelected = "";
var pd_priceRange = "";

var pd_filteredDisplayList = new Array();

//***********************************************
//***** BEGIN MULTI ADD FUNCTIONALITY ******
//***********************************************
function selectItem(checkbox,item,orderable){
	//***** IF PRODUCT IS OUT OF STOCK, DO NOT ALLOW SELECTION ****//
	if(orderable == 'no'){
		alert("This item is out of stock and cannot be added with your order.");
		document.getElementById(checkbox).checked = false;
		return false
	}
	var getCheckboxId = checkbox;
	var status = document.getElementById(checkbox).checked;
	if(status == true){
		document.getElementById(getCheckboxId).checked = true;
	}else{
		document.getElementById(getCheckboxId).checked = false;
	}

	if(document.multiOrderForm[checkbox].checked){
		document.getElementById(item).style.backgroundColor = "#FFFFC8";
	}else{
		document.getElementById(item).style.backgroundColor = "";
	}
	calculateSubtotal();
}

function updateQuantity(name,currentValue){
	var num = name.replace(/vwquantity/,"");
	var frm = document.getElementById("singleItemFrm" + num);
	frm.vwquantity.value = currentValue;
	calculateSubtotal();
}

function calculateSubtotal(){
 var subTotal = 0;
 var formLen = document.multiOrderForm.elements.length;
 var elem;
 var name = "";
 var namevw = "";
 var elemNum = "";
 var elemNumStr = "";
 var quantity = 1;
 var price = 0;
		
	 for(i=0; i<formLen; i++){
		elem = document.multiOrderForm.elements[i]
		name = elem.name;
			if(elem.type == "checkbox" && elem.checked){
				elemNum = name.replace(/vwitem/,"");
				price = getFrmElementValue(name + "-price");
				quantity = getFrmElementValue("vwquantity" + elemNum); 
				subTotal += price * quantity;
			}
	 } 
 document.getElementById("multiOrderSubtotal").innerHTML = 'Checked Items Subtotal: ' + formatCurrency(subTotal);
 document.getElementById("multiOrderSubtotal2").innerHTML = 'Checked Items Subtotal: ' + formatCurrency(subTotal);
}


function formatCurrency(num) {
num = num.toString().replace(/\$|\,/g,'');
if(isNaN(num))
num = "0";
sign = (num == (num = Math.abs(num)));
num = Math.floor(num*100+0.50000000001);
cents = num%100;
num = Math.floor(num/100).toString();
if(cents<10)
cents = "0" + cents;
for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
num = num.substring(0,num.length-(4*i+3))+','+
num.substring(num.length-(4*i+3));
return (((sign)?'':'-') + '$' + num + '.' + cents);
}

function checkPagedBoxes(){
	var frm = document.multiOrderForm;
	var name= "";
	for (var i=0; i<frm.elements.length; i++) {
		name = frm.elements[i].name;
		namevw = name.substring(0,2);
		nameAdd = "add" + name;
		if(frm.elements[i].type == 'checkbox' && namevw == "vw" && frm.elements[i].checked) {
			doCheckPagedItemBox(nameAdd);
		}
	}
}
function doCheckPagedItemBox(item){
	if(document.getElementById(item)){
		document.getElementById(item).checked = "true";
		var itemValue = document.getElementById(item).value;
		selectItem(item,itemValue,'yes');
	}
}

function adjustPagedQuantity(){
	//alert("adjustPagedQuantity");
	var frm = document.multiOrderForm;
	var name= "";
	var namevw = "";
	var nameadd = "";
	for (var i=0; i<frm.elements.length; i++) {
		name = frm.elements[i].name;
		namevw = name.substring(0,2);
		nameadd = name.substring(0,3);
		if(frm.elements[i].type == 'text' && nameadd == "add") {
			doQtyAdjItem(name);
		}
	}
}
function doQtyAdjItem(item){
	if(document.getElementById(item)){
		itemQtyAdjName = item.replace(/add/,"");
		var qty = getFrmElementValue(itemQtyAdjName);
		document.getElementById(item).value = qty;
	}
}
//***********************************************
//***** END MULTI ADD FUNCTIONALITY *************
//***********************************************

//***********************************************
//***** PRODUCT COMPARISON ***********************
//***********************************************
function doCompare(){
	var frm = document.multiOrderForm;
	var name= "";
	var namevw = "";
	var linkIds = "";
	for (var i=0; i<frm.elements.length; i++) {
		name = frm.elements[i].name;
		namevw = name.substring(0,2);
		nameAdd = "add" + name;
		if(frm.elements[i].type == 'checkbox' && namevw == "vw" && frm.elements[i].checked) {
			linkIds += getFrmElementValue(name);
			linkIds += " ";
		}
	}
	comparePop(linkIds);
	return false;
	
}
function comparePop(ids){
	var url = "http://www.vitadigest.net/pdCompareDisplay/display.php?ids=" + ids;
	window.open(url,"comparison", "");
}
//***********************************************
//***** UTILITY FUNCTIONS ***********************
//***********************************************
function getCheckedValues() {
	var frm = document.multiOrderForm;
	var checked = "";
	for (var i=0; i<frm.elements.length; i++) {
		if(frm.elements[i].type == 'checkbox' && frm.elements[i].checked) {
			checked += frm.elements[i].name;
			checked += " ";
		}
	}
	return checked;
}

function getFrmElementValue(elemId) {
	var value = document.getElementById(elemId).value;
	return value;
}
function resetDisplay(){
	var frm = document.multiOrderForm;
	var name = "";
	var nameMatch = "";
	var itemValue = "";
	for (var i=0; i<frm.elements.length; i++) {
		
		if(frm.elements[i].type == 'checkbox' && frm.elements[i].checked) {
			name = frm.elements[i].name;
			itemValue = frm.elements[i].value;
			frm.elements[i].checked = false;
			document.getElementById(itemValue).style.backgroundColor = "";
		}
	}
	for (var i=0; i<frm.elements.length; i++) {
		name = frm.elements[i].name;
		nameMatch = name.match("vwquantity");
		if(frm.elements[i].type == 'text' && nameMatch) {
			frm.elements[i].value = "1";
		}
	}
	//clearSearch();
	viewPage(1);
}
//***********************************************
//***** END UTILITY FUNCTIONS *******************
//***********************************************

function parseDisplayList() {

	//***********************************************
	//***** BUILD JS ARRAY OF PRODUCT ELEMENTS ******
	//***********************************************
	var i = 0;
	var displayList = new Array();
	
	//*******************************************
	//*** ONLY LOAD IF PRODUCT WRAPPER EXISTS ***
	//*******************************************
	var productIdString = "";
	var listWrapper = "";
	try {
		listWrapper = document.getElementById("listWrapper");
	} catch(e) {
		//*** IGNORE		
	}
	
debug("listWrapper = " + listWrapper);
	
	if(!isBlank(listWrapper)) {
	
		if(listWrapper.firstChild) { // check for children
			var oChild = listWrapper.firstChild;
			while(oChild) {
			
			    if(oChild.nodeType==1 && String(oChild.id).indexOf("productDisplay") > -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) {
						if(subChild.id == "id") displayList[i].id = String(subChild.title);
						if(subChild.id == "ha-name") displayList[i].haName = String(subChild.title);
						if(subChild.id == "name") displayList[i].title = String(subChild.title);
						if(subChild.id == "brand") displayList[i].brand = String(subChild.title).toUpperCase();
						if(subChild.id == "sizeForm") displayList[i].sizeForm = String(subChild.title);
						if(subChild.id == "price") displayList[i].price = subChild.title - 0;
						if(subChild.id == "rating") displayList[i].rating = subChild.title - 0;
						if(subChild.id == "bestseller") displayList[i].bestseller = subChild.title;
						if(subChild.id == "sizeList") displayList[i].sizeList = subChild.title;
					}
					
					//*********************************
					//*** USE HA-NAME, IF SPECIFIED ***
					//*********************************					
					if(!isBlank(displayList[i].haName)) displayList[i].title = displayList[i].haName;
										
					subChild = subChild.nextSibling;
				}
				
				//**************************
				//*** BUILD SEARCH INDEX ***
				//**************************
				displayList[i].searchIndex = "";
				if(displayList[i].title) displayList[i].searchIndex += String(displayList[i].title).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();
				
				//***********************************************************
				//**** 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;
		   }
		}
	} 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_displayList;
	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);	
	for(item in productArray) {
		productIdList += productArray[item].id;
		tempHtml = '';
		if(pageNumber == pd_currentPageNumber || pd_currentPageNumber == "all") {

			//******* CREATE OPENING PRODUCT HTML DIV WRAPPER **********
			tempHtml += '<div id="' + productArray[item].id;
			if(!shade) {
				tempHtml += '" class="displayDivOn">';
			} else {
				tempHtml += '" class="displayDiv">';
			}
			//******* GET HTML FROM PRODUCT DIV **********
			tempHtml += String(productArray[item].html)
			//******* CLOSE DIV **********
			tempHtml += '</div>';
			rowItemCount++;
			
			if(rowItemCount > pd_itemsPerRow) {
				tempHtml += '';
				rowItemCount = 1;
				isOpen = false;
			}
			
			shade = !shade;
		}
		i++;
		pageNumber = Math.ceil(i / pd_itemsPerPage);
		html += tempHtml;
	}
	return html;
}


function displayProductArray() {
	debug("displayProductArray");
	

	//*******************************
	//**** RENDER PAGE ELEMENTS *****
	//*******************************		
	if(isBlank(pd_currentPageNumber)) {
		debug("could not find pd_currentPageNumber " + pd_currentPageNumber + ": setting = 1");
		pd_currentPageNumber = 1;
	}
	
	document.getElementById("listWrapper").innerHTML = renderProductArray();


	//**************
	//*** RETURN ***
	//**************
	return false;
}



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;
	var currentSection = pdGetCookie("V2pd_stickyBreadcrumbSection");
	if(pd_lastSection == currentSection) {
		pageNumber = pdGetCookie("V2pd_currentPageNumber");
	}
	pdSetCookie("V2pd_lastPageNumber", pageNumber);
	pdSetCookie("V2pd_lastSection", currentSection);
	if(isBlank(pageNumber)) pageNumber = 1;
	return pageNumber;	
}



function debug(message) {
	if(pd_debugFlag == true) {
		alert(message);
	}
	return false;
}
