/*** REMOTE ADD TO CART ***/
function pdAddToCart(elem){
	document.forms[elem].submit();
	return false;
}

/*** SHOW ITEM DISPLAY ***/
function pdShowItem(code){
	
	//**** COPY DISCOUNT FIELD FROM SOURCE
	var sourceDiv = document.getElementById(code);
	try {
		var sourceField = getElementsByClassName("pdDiscountField", "", sourceDiv);
		var discountValue = sourceField[0].value;
	} catch(e) {
		//*** IGNORE
	}

	//*** COPY HTML
	var displayHTML = sourceDiv.innerHTML;
	var targetDiv = document.getElementById("itemPreview");
	targetDiv.innerHTML = displayHTML;
	
	//*** PASTE DISCOUNT
	try {
		var targetField = getElementsByClassName("pdDiscountField", "", targetDiv);
		targetField[0].value = discountValue;
	} catch(e) {
		//*** IGNORE
	}
	return false;
}

/*** GET PAGED COUNT ***/
function pdGetPagedCount() {
	var elementArrayOn = getElementsByClassName("on", "div");
	var elementArrayOff = getElementsByClassName("off", "div");
	var elementArray = elementArrayOn.concat(elementArrayOff);
	var elementArrayLen = elementArray.length;
	return elementArrayLen;
}
/*** GET ACTIVE PAGE ***/
function pdGetActivePage() {
	var active;
	var elem = getElementsByClassName("on", "div");
	if(elem[0]){active = elem[0]}else{active=false;}
	return active;
}
/*** SET PAGE ***/
function pdSetPage(page){
	var pageCount = pdGetPagedCount();
	for(var i=1;i<=pageCount;i++){
		var id = "page" + i;
		var elem = document.getElementById(id);
		if(page==i){elem.className = "on";}else{elem.className = "off";} 
	}
	pdDrawPagingNumbers();	
}

/*** DRAW PAGE NUMBERS ***/
function pdDrawPagingNumbers(){
	var html = "";
	var style = "";
	var pageCount = pdGetPagedCount();
	var activePageId;
	var activePageNum;
	
	var activePageElem = pdGetActivePage();
	if(activePageElem){
		activePageId = activePageElem.id;
		activePageNum = activePageId.replace("page", "") - 0;
	}else{
		activePageNum=1;
	}
	
	for(var i=1;i<=pageCount;i++){
		if(i==activePageNum){style = ' class="numOn"';}else{style = '';}
		html += '<div' + style + '><a href="#" onClick="pdSetPage(' + i + ');">' + i + '</a></div>';
	}	
	if(pageCount > 1){
		document.getElementById("pagingNumbers").innerHTML = html;
		pdDrawPagingPrevNext();
	}else{
		document.getElementById("pagingNumbersDisplay").style.display = "none";
	}
	
	return false;
}
/*** DRAW PAGE NUMBERS ***/
function pdDrawPagingPrevNext(){
	var pageCount = pdGetPagedCount();
	var prev = 	document.getElementById("pagingPrev");
	var next = 	document.getElementById("pagingNext");
	var prevHTML = '<a href="#" onClick="pdPrev()">Previous</a>';
	var nextHTML = '<a href="#" onClick="pdNext()">Next</a>';

	if(prev && pageCount > 1){prev.innerHTML = prevHTML;}
	if(next && pageCount > 1){next.innerHTML = nextHTML;}
}

/*** NEXT PAGE ***/
function pdNext(){
	var activePageElem = pdGetActivePage();
	var activePageId = activePageElem.id;
	var activePageNum = activePageId.replace("page", "") - 0;
	var nextPage = activePageNum + 1;
	var nextPageElem = "page" + nextPage;
	if(document.getElementById(nextPageElem)){pdSetPage(nextPage);}else{pdSetPage(1);}
	pdDrawPagingNumbers();
}
/*** PREVIOUS PAGE ***/
function pdPrev(){
	var pageCount = pdGetPagedCount();
	var firstPage = "page1";
	var activePageElem = pdGetActivePage();
	var activePageId = activePageElem.id;
	var activePageNum = activePageId.replace("page", "") - 0;
	var prevPage = activePageNum - 1;
	var prevPageElem = "page" + prevPage;
	if(activePageId == firstPage){pdSetPage(pageCount);}else{pdSetPage(prevPage);}
	pdDrawPagingNumbers();
}

/***** GET ELEMENTS BY CLASS NAME *****/
var getElementsByClassName = function (className, tag, elm){
	if (document.getElementsByClassName) {
		getElementsByClassName = function (className, tag, elm) {
			elm = elm || document;
			var elements = elm.getElementsByClassName(className),
				nodeName = (tag)? new RegExp("\\b" + tag + "\\b", "i") : null,
				returnElements = [],
				current;
			for(var i=0, il=elements.length; i<il; i+=1){
				current = elements[i];
				if(!nodeName || nodeName.test(current.nodeName)) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	else if (document.evaluate) {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = "",
				xhtmlNamespace = "http://www.w3.org/1999/xhtml",
				namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace)? xhtmlNamespace : null,
				returnElements = [],
				elements,
				node;
			for(var j=0, jl=classes.length; j<jl; j+=1){
				classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
			}
			try	{
				elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
			}
			catch (e) {
				elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
			}
			while ((node = elements.iterateNext())) {
				returnElements.push(node);
			}
			return returnElements;
		};
	}
	else {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = [],
				elements = (tag === "*" && elm.all)? elm.all : elm.getElementsByTagName(tag),
				current,
				returnElements = [],
				match;
			for(var k=0, kl=classes.length; k<kl; k+=1){
				classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
			}
			for(var l=0, ll=elements.length; l<ll; l+=1){
				current = elements[l];
				match = false;
				for(var m=0, ml=classesToCheck.length; m<ml; m+=1){
					match = classesToCheck[m].test(current.className);
					if (!match) {
						break;
					}
				}
				if (match) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	return getElementsByClassName(className, tag, elm);
};

