// subcat scroller variables

// 1 = up
// 2 = down
subCatDirection = 2;

// 1 = wrap around, repeat
// 2 = up/down, no repeat
subCatWrap = 2;

// speed, higher this number is, faster it scrolls
scrollSpeedChkLst = 5;

subCatTimer = "";

function subCatDown(sDiv){
	if(subCatDirection == 2){
		if(subCatWrap == 2){
			if(document.getElementById(sDiv).scrollTop < 1){
				return;
			}
		}
		
		if(document.getElementById(sDiv).scrollTop >= backStageHeight[sDiv] * 2){
			subCatpixPos[sDiv] = backStageHeight[sDiv];
		}
		if(document.getElementById(sDiv).scrollTop <= 0){
			subCatpixPos[sDiv] = backStageHeight[sDiv];
		}
	} else if(subCatDirection == 1){
		if(subCatWrap == 2){
			if(document.getElementById(sDiv).scrollTop + sHeight >= backStageHeight[sDiv]){
				return;
			}
		}
		
		if(document.getElementById(sDiv).scrollTop >= backStageHeight[sDiv]){
			subCatpixPos[sDiv] = 0;
		}
	}
	
	if(subCatDirection == 2){
		subCatpixPos[sDiv] -= scrollSpeedChkLst;
		document.getElementById(sDiv).scrollTop = subCatpixPos[sDiv];
	} else if(subCatDirection == 1){
		subCatpixPos[sDiv] += scrollSpeedChkLst;
		document.getElementById(sDiv).scrollTop = subCatpixPos[sDiv];
	}
	
	subCatTimer = setTimeout("subCatDown('" + sDiv + "'," + sHeight + ")",25);
}

function subCatStop(){
	subCatTimer = clearTimeout(subCatTimer);
}

function subCatScroll(sDiv, d){
	sHeight = sDiv.toString();
	sHeight = sHeight.replace(/Div/, "Height");
	sHeight = eval(sHeight);
	subCatDirection = d; subCatDown(sDiv, sHeight);
}

subCatpixPos    = new Array();
backStageHeight = new Array();

function chkLstInit(sDiv, sTab, sHeight){
	bsHeightElem = document.getElementById(sTab);
	
	subCatpixPos[sDiv]        = 0;
	backStageHeight[sDiv] = bsHeightElem.offsetHeight;
	
	if(backStageHeight[sDiv] > sHeight){
		document.getElementById(sDiv).style.height  = sHeight + "px";
		document.getElementById(sTab).height        = backStageHeight[sDiv] + "px";
		document.getElementById(sTab).align         = "";
		
		document.getElementById(sDiv).innerHTML = document.getElementById(sDiv).innerHTML + document.getElementById(sDiv).innerHTML;
	}
}

// end sub cat scroller

function ged(noDays){
	today = new Date();
	expr  = new Date(today.getTime() + noDays*24*60*60*1000);
	return expr.toGMTString();
}

function showItemForm(id, nme){
	if(!loaded){return;}
	
	if(document.getElementById('orderTab1').style.display == 'none'){
		document.getElementById('orderTab1').style.display = '';
		document.getElementById('orderTab2').style.display = '';
	} else {
		document.getElementById('orderTab1').style.display = 'none';
		document.getElementById('orderTab2').style.display = 'none';
	}
}

function testCookies(){
	cookieStr  = 'sesscookieok=1; path=/; domain=' + mainDomain + '; ';
	cookieStr += 'expires=' + ged(0.1);
	document.cookie = cookieStr;
	
	isset = printCookies("sesscookieok");
	
	if(isset != 1){
		return false;
	} else {
		return true;
	}
	
	//hideCart();
	//window.location = ScriptURL + '?cookieinfo';
}

function setVals(f){
	vals = f.mitems.options[f.mitems.selectedIndex].value.split("||");
	f.items.value = vals[0];
	f.price.value = vals[1];
}

function addtoCart(id, nme, f, wCart, price, items, discs){
	if(!loaded){return;}
	
	cartUpdated  = 0;
	discUpdated  = 0;
	clrid        = 0;
	mpricesStr   = "";
	qcprodstr    = "";
	prodVals     = new Array();
	MP           = new Array();
	mpDivs       = new Array();
	mpLines      = new Array();
	
	if(items){
		numItems = parseInt(items, 10);
	} else {
		numItems = f.items.value;
		numItems = numItems.replace(/\D+/ig, "");
	}
	
	if(discs){
		theDiscs   = discs;
	} else {
		theDiscs   = f.mprices ? f.mprices.value : "";
	}
	
	numItems = numItems < 1 ? 1 : numItems;
	
	if(price){
		itemPrice = parseFloat(price, 10).toFixed(2);
	} else {
		itemPrice = f.price.value;
	}
	
	if(f.clrid){
		clrid     = f.clrid.options[f.clrid.selectedIndex].value;
		confColorname = f.clrid.options[f.clrid.selectedIndex].text;
	}
	
	isCookies = testCookies();
	
	if(!isCookies){
		appLang   = navigator.browserLanguage ? navigator.browserLanguage : '';
		colorD    = screen.colorDepth ? screen.colorDepth : '';
		cpu       = navigator.cpuClass ? navigator.cpuClass : '';
		sW        = screen.width;
		sH        = screen.height;
		sAW       = screen.availWidth;
		sAH       = screen.availHeight;
		
		str       = appLang + colorD + cpu + sW + sH + sAW + sAH;
		
		window.location = ScriptURL + '?checkoutSS=' + id + '=' + numItems + '=' + clrid + '=' + str;
		return;
	}
	
	currqcprods = printCookies("qcprods");
	currmprices = printCookies("mprices");
	
	// update the product details
	if(currqcprods){
		prodVals   = currqcprods.split("||");
	}
	
	for(a = 0; a < prodVals.length; a += 6){
		if(prodVals[a]){
			if(prodVals[a] == id && prodVals[a + 3] == clrid){
				cartUpdated = 1;
				newNum  = parseInt(prodVals[a + 1], 10) + parseInt(numItems, 10);
				qcprodstr += prodVals[a] + '||' + newNum + '||' + escape(nme) + '||' + clrid + '||';
				qcprodstr += confColorname + '||' + itemPrice + '||';
			} else {
				qcprodstr += prodVals[a] + '||' + prodVals[a + 1] + '||' + prodVals[a + 2]  + '||';
				qcprodstr += prodVals[a + 3]  + '||' + prodVals[a + 4]  + '||';
				qcprodstr += prodVals[a + 5]  + '||';
			}
		}
	}
	
	if(cartUpdated == 0){
		qcprodstr += id + '||' + numItems + '||' + escape(nme) + '||' + clrid + '||';
		qcprodstr += confColorname + '||' + itemPrice + '||';
	}
	
	// update the discount pricing
	if(currmprices){
		mpLines  = currmprices.split("mpSplit");
	}
	
	for(a = 0; a < mpLines.length; a++){
		mpDivs = mpLines[a].split("||");
		
		if(mpDivs[0] == id){
			discUpdated = 1;
			mpricesStr += id + '||' + clrid + "||" + theDiscs + "mpSplit";
		} else if(mpDivs[0]){
			mpricesStr += mpLines[a] + "mpSplit";
		}
	}
	
	if(discUpdated == 0){
		mpricesStr += id + '||' + clrid + "||" + theDiscs + "mpSplit";
	}
	
	cookieStr  = 'qcprods=' + qcprodstr + '; path=/; domain=' + mainDomain + '; ';
	cookieStr += 'expires=' + ged(nDays);
	document.cookie = cookieStr;
	
	cookieStr  = 'mprices=' + mpricesStr + '; path=/; domain=' + mainDomain + '; ';
	cookieStr += 'expires=' + ged(nDays);
	document.cookie = cookieStr;
	
	if(wCart == 'mini'){
		if(document.getElementById("divCart").style.visibility == "visible"){
			viewCart();
		}
		
		if(document.getElementById("divTiniCart1")){
			updateTinyCart();
		}
		
		viewMiniCart();
	} else {
		
		if(document.getElementById("divMiniCart")){
			if(document.getElementById("divMiniCart").style.visibility == "visible"){
				viewMiniCart();
			}
		}
		
		if(document.getElementById("divTiniCart1")){
			updateTinyCart();
		}
		
		viewCart();
	}
}

tinyCarts = 0;
function printTinyCart(){
	isCookies = testCookies();
	
	if(!isCookies){
		document.write(confTiniNoCookies);
		return;
	}
	
	tinyCarts++;
	totalSav     = 0;
	hasqcprods   = 0;
	orderTotal   = 0;
	numUnits     = 0;
	numItems     = 0;
	prodVals     = "";
	qcprodstr    = "";
	
	currqcprods  = printCookies("qcprods");
	currmprices  = printCookies("mprices");
	
	MP           = new Array();
	mpDivs       = new Array();
	mpLines      = new Array();
	prodVals     = new Array();
	
	if(currqcprods){
		prodVals   = currqcprods.split("||");
	}
	
	// get multi unit pricing
	if(currmprices){
		mpLines  = currmprices.split("mpSplit");
		
		c = 0;
		for(a = 0; a < mpLines.length; a++){
			mpDivs = mpLines[a].split("||");
			
			for(b = 2; b < mpDivs.length; b += 2){
				MP[c] = [mpDivs[0] + '_' + mpDivs[1], mpDivs[b], mpDivs[b + 1]];
				c++;
			}
		}
	}
	
	for(a = 0; a < prodVals.length; a += 6){
		if(prodVals[a]){
			hasqcprods++;
			numItems   += parseInt(prodVals[a + 1], 10);
			numUnits    = prodVals[a + 1];
			savPrice    = 0.00;
			regPrice    = prodVals[a + 5];
			mulPrice    = prodVals[a + 5];
			
			savLineTotal = parseFloat(0).toFixed(2);
			
			for(c = 0; c < MP.length; c++){
				if(MP[c][0] == prodVals[a] + '_' + prodVals[a + 3]){
					numUnits = parseInt(numUnits);
					MP[c][1] = parseInt(MP[c][1]);
					if(numUnits >= MP[c][1]){
						mulPrice = MP[c][2];
					}
				}
			}
			
			savPrice       = parseFloat(regPrice - mulPrice).toFixed(2);
			savPrice       = formatInt(savPrice);
			
			regLineTotal   = parseFloat(prodVals[a + 5] * prodVals[a + 1]).toFixed(2);
			mulLineTotal   = parseFloat(mulPrice * prodVals[a + 1]).toFixed(2);
			savLineTotal   = parseFloat(regLineTotal - mulLineTotal).toFixed(2);
			
			orderTotal    += mulPrice * prodVals[a + 1];
			totalSav      += regLineTotal - mulLineTotal;
			
			regLineTotal   = formatInt(regLineTotal);
			mulLineTotal   = formatInt(mulLineTotal);
			savLineTotal   = formatInt(savLineTotal);
			// convert to string here
			numUnits       = formatInt(prodVals[a + 1]);
		}
	}
	
	orderTotal   = formatInt(orderTotal.toFixed(2));
	numItems     = formatInt(numItems);
	
	itemText = numItems == 1 ? confTiniCartItem : confTiniCartItems;
	
	qcprodstr += '<table border="0" cellpadding="0" cellspacing="0" class="cdTinyText">';
	qcprodstr += '<tr>';
	qcprodstr += '<td id="divTiniCart' + tinyCarts + '">';
	
	qcprodstr += '<table border="0" cellpadding="3" cellspacing="0">';
	qcprodstr += '<tr>';
	qcprodstr += '<td nowrap><b>' + confTiniCartCart + '</b></td>';
	qcprodstr += '<td nowrap><a href="javascript:viewMiniCart();" class="cdTinyLink">' + numItems + ' ' + itemText + '</a></td>';
	qcprodstr += '<td nowrap><b>' + confTiniCartTotal + '</b></td>';
	qcprodstr += '<td nowrap><b>' + confCurrUnit1 + orderTotal + confCurrUnit2 + '</b></td>';
	qcprodstr += '<td nowrap><a href="' + ScriptURL + '?checkout1" class="cdTinyLink">' + confMiniCheckout + '</a></td>';
	qcprodstr += '</tr>';
	
	qcprodstr += '</table>';
	
	qcprodstr += '</td></tr></table>';
	
	document.write(qcprodstr);
}

function updateTinyCart(){
	isCookies = testCookies();
	
	if(!isCookies){
		return;
	}
	
	hasqcprods   = 0;
	orderTotal   = 0;
	prodVals     = "";
	numItems     = 0;
	qcprodstr    = "";
	
	currqcprods  = printCookies("qcprods");
	currmprices  = printCookies("mprices");
	
	MP           = new Array();
	mpDivs       = new Array();
	mpLines      = new Array();
	prodVals     = new Array();
	
	if(currqcprods){
		prodVals   = currqcprods.split("||");
	}
	
	// get multi unit pricing
	if(currmprices){
		mpLines  = currmprices.split("mpSplit");
		
		c = 0;
		for(a = 0; a < mpLines.length; a++){
			mpDivs = mpLines[a].split("||");
			
			for(b = 2; b < mpDivs.length; b += 2){
				MP[c] = [mpDivs[0] + '_' + mpDivs[1], mpDivs[b], mpDivs[b + 1]];
				c++;
			}
		}
	}
	
	for(a = 0; a < prodVals.length; a += 6){
		if(prodVals[a]){
			hasqcprods++;
			numItems   += parseInt(prodVals[a + 1], 10);
			numUnits    = prodVals[a + 1];
			savPrice    = 0.00;
			regPrice    = prodVals[a + 5];
			mulPrice    = prodVals[a + 5];
			
			savLineTotal = parseFloat(0).toFixed(2);
			
			for(c = 0; c < MP.length; c++){
				if(MP[c][0] == prodVals[a] + '_' + prodVals[a + 3]){
					numUnits = parseInt(numUnits);
					MP[c][1] = parseInt(MP[c][1]);
					if(numUnits >= MP[c][1]){
						mulPrice = MP[c][2];
					}
				}
			}
			
			savPrice       = parseFloat(regPrice - mulPrice).toFixed(2);
			savPrice       = formatInt(savPrice);
			
			regLineTotal   = parseFloat(prodVals[a + 5] * prodVals[a + 1]).toFixed(2);
			mulLineTotal   = parseFloat(mulPrice * prodVals[a + 1]).toFixed(2);
			savLineTotal   = parseFloat(regLineTotal - mulLineTotal).toFixed(2);
			
			orderTotal    += mulPrice * prodVals[a + 1];
			totalSav      += regLineTotal - mulLineTotal;
			
			regLineTotal   = formatInt(regLineTotal);
			mulLineTotal   = formatInt(mulLineTotal);
			savLineTotal   = formatInt(savLineTotal);
			// convert to string here
			numUnits       = formatInt(prodVals[a + 1]);
		}
	}
	
	orderTotal   = formatInt(orderTotal.toFixed(2));
	numItems     = formatInt(numItems);
	
	itemText = numItems == 1 ? confTiniCartItem : confTiniCartItems;
	
	qcprodstr += '<table border="0" cellpadding="3" cellspacing="0" class="cdTinyText">';
	qcprodstr += '<tr>';
	qcprodstr += '<td nowrap><b>' + confTiniCartCart + '</b></td>';
	qcprodstr += '<td nowrap>' + numItems + ' ' + itemText + '</td>';
	qcprodstr += '<td nowrap><b>' + confTiniCartTotal + '</b></td>';
	qcprodstr += '<td nowrap><b>' + confCurrUnit1 + orderTotal + confCurrUnit2 + '</b></td>';
	qcprodstr += '<td nowrap><a href="' + ScriptURL + '?checkout1" class="cdTinyLink">' + confMiniCheckout + '</a></td>';
	qcprodstr += '</tr>';
	qcprodstr += '</table>';
	
	for(a = 1; a <= tinyCarts; a++){
		document.getElementById("divTiniCart" + a).innerHTML = qcprodstr;
	}
}

function viewMiniCart(){
	if(!loaded){return;}
	
	currLoc = window.location.toString();
	if(currLoc.search(/qcart\.cgi\?checkout/) >= 0) return;
	
	isCookies = testCookies();
	
	if(!isCookies){
		window.location = ScriptURL + '?checkout1';
		return;
	}
	
	totalSav     = 0;
	hasqcprods   = 0;
	orderTotal   = 0;
	numItems     = 0;
	numUnits     = 0;
	prodVals     = "";
	
	currqcprods  = printCookies("qcprods");
	currmprices  = printCookies("mprices");
	
	MP           = new Array();
	mpDivs       = new Array();
	mpLines      = new Array();
	prodVals     = new Array();
	
	if(currqcprods){
		prodVals   = currqcprods.split("||");
	}
	
	// get multi unit pricing
	if(currmprices){
		mpLines  = currmprices.split("mpSplit");
		
		c = 0;
		for(a = 0; a < mpLines.length; a++){
			mpDivs = mpLines[a].split("||");
			
			for(b = 2; b < mpDivs.length; b += 2){
				MP[c] = [mpDivs[0] + '_' + mpDivs[1], mpDivs[b], mpDivs[b + 1]];
				c++;
			}
		}
	}
	
	cOpn  = '';
	if(confUseCartImgs == 1){
		cOpn += '<table cellpadding="0" cellspacing="0">';
		cOpn += '<tr>';
		cOpn += '<td><img src="' + pathToImages + '/tt_1.gif" width="16" height="32" alt=""></td>';
		cOpn += '<td background="' + pathToImages + '/tt_3.gif"><img src="' + pathToImages + '/tt_3.gif" width="1" height="32" alt=""></td>';
		cOpn += '<td><img src="' + pathToImages + '/tt_4.gif" width="20" height="32" alt=""></td>';
		cOpn += '</tr>';
		cOpn += '<tr>';
		cOpn += '<td background="' + pathToImages + '/tt_5.gif"><img src="' + pathToImages + '/tt_5.gif" width="16" height="1" alt=""></td>';
		cOpn += '<td bgcolor="#ffffff">';
	} else {
		cOpn += '<table border="0" bgcolor="white" cellpadding="0" cellspacing="0" style="border: ' + confBorderColor + ' solid 1px;" class="cdMiniText">';
		cOpn += '<tr>';
		cOpn += '<td>';
	}
	
	cCls  = '';
	if(confUseCartImgs == 1){
		cCls += '</td>';
		cCls += '<td background="' + pathToImages + '/tt_6.gif"><img src="' + pathToImages + '/tt_6.gif" width="20" height="1" alt=""></td>';
		cCls += '</tr>';
		
		cCls += '<tr>';
		cCls += '<td><img src="' + pathToImages + '/tt_7.gif" width="16" height="20" alt=""></td>';
		cCls += '<td background="' + pathToImages + '/tt_8.gif"><img src="' + pathToImages + '/tt_8.gif" width="1" height="20" alt=""></td>';
		cCls += '<td><img src="' + pathToImages + '/tt_9.gif" width="20" height="20" alt=""></td>';
		cCls += '</tr>';
		cCls += '</table>';
	} else {
		cCls += '</td></tr></table>';
	}
	
	qcprodstr    = '<table border="0" cellpadding="0" cellspacing="0">';
	qcprodstr   += '<tr><td valign="top">';
	qcprodstr   += '<table border="0" cellpadding="5" cellspacing="0" class="cdMiniText">';
	
	qcprodstr   += '<tr><td nowrap><b>' + confMiniCartCart + '</b></td><td align="right" nowrap><a href="javascript:miniMin();"><img src="' + pathToImages + '/ico_min.gif" width="12" height="12" alt="" border="0"></a> &nbsp; <a href="javascript:miniMax();"><img src="' + pathToImages + '/ico_max.gif" width="12" height="12" alt="" border="0"></a> &nbsp; <a href="javascript:miniClose();"><img src="' + pathToImages + '/ico_close.gif" width="12" height="12" alt="" border="0"></a></td></tr>';
	
	for(a = 0; a < prodVals.length; a += 6){
		if(prodVals[a]){
			hasqcprods++;
			numItems   += parseInt(prodVals[a + 1], 10);
			
			numUnits    = prodVals[a + 1];
			savPrice    = 0.00;
			regPrice    = prodVals[a + 5];
			mulPrice    = prodVals[a + 5];
			
			savLineTotal = parseFloat(0).toFixed(2);
			
			for(c = 0; c < MP.length; c++){
				if(MP[c][0] == prodVals[a] + '_' + prodVals[a + 3]){
					numUnits = parseInt(numUnits);
					MP[c][1] = parseInt(MP[c][1]);
					if(numUnits >= MP[c][1]){
						mulPrice = MP[c][2];
					}
				}
			}
			
			savPrice       = parseFloat(regPrice - mulPrice).toFixed(2);
			savPrice       = formatInt(savPrice);
			
			regLineTotal   = parseFloat(prodVals[a + 5] * prodVals[a + 1]).toFixed(2);
			mulLineTotal   = parseFloat(mulPrice * prodVals[a + 1]).toFixed(2);
			savLineTotal   = parseFloat(regLineTotal - mulLineTotal).toFixed(2);
			
			orderTotal    += mulPrice * prodVals[a + 1];
			totalSav      += regLineTotal - mulLineTotal;
			
			regLineTotal   = formatInt(regLineTotal);
			mulLineTotal   = formatInt(mulLineTotal);
			savLineTotal   = formatInt(savLineTotal);
			// convert to string here
			numUnits       = formatInt(prodVals[a + 1]);
		}
	}
	
	orderTotal   = formatInt(orderTotal.toFixed(2));
	
	if(hasqcprods == 0){
		qcprodstr += '<tr id="divMiniInner">';
		qcprodstr += '<td colspan="2">' + confMiniCartEmpty + '</td>';
		qcprodstr += '</tr>';
	} else {
		itemText = numItems == 1 ? confMiniCartItem : confMiniCartItems;
		
		qcprodstr += '<tr id="divMiniInner">';
		qcprodstr += '<td colspan="2">';
		
		qcprodstr += '<table border="0" cellpadding="4" cellspacing="0" class="cdMiniText">';
		
		if(hasqcprods == 0){
			qcprodstr += '<tr>';
			qcprodstr += '<td class="dashedSmll">' + confCartEmpty + '</td>';
			qcprodstr += '</tr>';
		} else {
			qcprodstr += '<tr>';
			qcprodstr += '<td colspan="4" class="blackLine"><img src="' + pathToImages + '/spacer.gif" width="1" height="1" alt="" border="0"></td>';
			qcprodstr += '</tr>';
			
			for(a = 0; a < prodVals.length; a += 6){
				if(prodVals[a]){
					lineTotal  = parseFloat(prodVals[a + 5] * prodVals[a + 1]).toFixed(2);
					lineTotal  = formatInt(lineTotal);
					
					numUnits   = formatInt(prodVals[a + 1]);
					
					qcprodstr += '<tr>';
					qcprodstr += '<td class="dashedSmll" nowrap>' + numUnits + '</td>';
					qcprodstr += '<td class="dashedSmll" nowrap><a href="javascript:miniItemUpDown(' + prodVals[a] + ', \'' + prodVals[a + 3] + '\', 1);"><img src="' + pathToImages + '/ico_count_up.gif" width="12" height="12" border="0" align="absmiddle" vspace="1"></a><br><a href="javascript:miniItemUpDown(' + prodVals[a] + ', \'' + prodVals[a + 3] + '\', 2);"><img src="' + pathToImages + '/ico_count_down.gif" width="12" height="12" border="0" align="absmiddle" vspace="1"></a><br><a href="javascript:removeItemJS(' + prodVals[a] + ', \'' + prodVals[a + 3] + '\');"><img src="' + pathToImages + '/ico_close.gif" width="12" height="12" alt="" border="0"></a></td>';
					qcprodstr += '<td class="dashedSmll" nowrap>' + unescape(prodVals[a + 2]) + '</td>';
					qcprodstr += '<td class="dashedSmll" align="right" nowrap>' + confCurrUnit1 + lineTotal + confCurrUnit2 + '</td>';
					qcprodstr += '</tr>';
				}
			}
			
			qcprodstr += '<tr>';
			qcprodstr += '<td class="dashedSmll" colspan="3"><b>' + confOrderTotal + '</b></td>';
			qcprodstr += '<td align="right" class="dashedSmll" nowrap><b>' + confCurrUnit1 + orderTotal + confCurrUnit2 + '</b></td>';
			qcprodstr += '</tr>';
			
			qcprodstr += '<tr>';
			qcprodstr += '<td colspan="4">' + confMiniCartBlurb + '</td>';
			qcprodstr += '</tr>';
			
			qcprodstr += '<tr>';
			qcprodstr += '<td colspan="4" align="center"><a class="cdMiniLink" href="' + ScriptURL + '?checkout1">' + confMiniCheckout + '</a></td>';
			qcprodstr += '</tr>';
			
		}
		
		qcprodstr += '</table>';
		
		qcprodstr += '</td>';
		qcprodstr += '</tr>';
	}
	
	qcprodstr   += '</table></td></tr></table>';
	
	cdX  = getWinX() - 275 + getScrollX(); 
	cdY  = 10; 
	
	document.getElementById("divMiniCart").style.top        = cdY + "px";
	document.getElementById("divMiniCart").style.left       = cdX + "px";
	document.getElementById("divMiniCart").innerHTML        = cOpn + qcprodstr + cCls;
	document.getElementById("divMiniCart").style.visibility = "visible";
}

function miniMin(){
	if(!loaded){return;}
	document.getElementById('divMiniInner').style.display = 'none';
}

function miniMax(){
	if(!loaded){return;}
	document.getElementById('divMiniInner').style.display = '';
}

function miniClose(){
	if(!loaded){return;}
	
	document.getElementById('divMiniCart').style.visibility = 'hidden';
	document.getElementById('divMiniCart').style.top        = -1000 + "px";
	document.getElementById('divMiniCart').style.left       = -1000 + "px";
}

function miniItemUpDown(id, clrid, d){
	if(!loaded){return;}
	
	qcprodstr    = "";
	prodVals     = "";
	currqcprods  = printCookies("qcprods");
	currmprices  = printCookies("mprices");
	
	MP           = new Array();
	mpDivs       = new Array();
	mpLines      = new Array();
	prodVals     = new Array();
	
	if(currqcprods){
		prodVals   = currqcprods.split("||");
	}
	
	// get multi unit pricing
	if(currmprices){
		mpLines  = currmprices.split("mpSplit");
		
		c = 0;
		for(a = 0; a < mpLines.length; a++){
			mpDivs = mpLines[a].split("||");
			
			for(b = 2; b < mpDivs.length; b += 2){
				MP[c] = [mpDivs[0] + '_' + mpDivs[1], mpDivs[b], mpDivs[b + 1]];
				c++;
			}
		}
	}
	
	updated    = 0;
	
	for(a = 0; a < prodVals.length; a += 6){
		if(prodVals[a]){
			if(prodVals[a] == id && prodVals[a + 3] == clrid){
				if(d == 1){
					prodVals[a + 1]++;
				} else {
					prodVals[a + 1]--;
				}
				
				prodVals[a + 1] = prodVals[a + 1] < 0 ? 0 : prodVals[a + 1];
				
				if(prodVals[a + 1]){
					qcprodstr += prodVals[a] + '||' + prodVals[a + 1] + '||' + prodVals[a + 2];
					qcprodstr +=  '||' + prodVals[a + 3] + '||' + prodVals[a + 4] + '||';
					qcprodstr += prodVals[a + 5] + '||';
				}
				
			} else {
				qcprodstr += prodVals[a] + '||' + prodVals[a + 1] + '||' + prodVals[a + 2] + '||';
				qcprodstr += prodVals[a + 3] + '||' + prodVals[a + 4] + '||';
				qcprodstr += prodVals[a + 5] + '||';
			}
		}
	}
	
	cookieStr  = 'qcprods=' + qcprodstr + '; path=/; domain=' + mainDomain + '; ';
	cookieStr += 'expires=' + ged(nDays);
	document.cookie = cookieStr;
	
	if(document.getElementById("divCart").style.visibility == "visible"){
		viewCart();
	}
	
	if(document.getElementById("divTiniCart1")){
		updateTinyCart();
	}
	
	viewMiniCart();
}

function viewCart(){
	if(!loaded){return;}
	
	currLoc = window.location.toString();
	if(currLoc.search(/qcart\.cgi\?checkout/) >= 0) return;
	
	isCookies = testCookies();
	
	if(!isCookies){
		window.location = ScriptURL + '?checkout1';
		return;
	}
	
	hasqcprods   = 0;
	totalSav     = 0;
	orderTotal   = 0;
	currqcprods  = printCookies("qcprods");
	currmprices  = printCookies("mprices");
	prodVals     = "";
	mpVals       = "";
	
	MP           = new Array();
	mpDivs       = new Array();
	mpLines      = new Array();
	prodVals     = new Array();
	
	if(currqcprods){
		prodVals = currqcprods.split("||");
	}
	
	// get multi unit pricing
	if(currmprices){
		mpLines  = currmprices.split("mpSplit");
		
		c = 0;
		for(a = 0; a < mpLines.length; a++){
			mpDivs = mpLines[a].split("||");
			
			for(b = 2; b < mpDivs.length; b += 2){
				MP[c] = [mpDivs[0] + '_' + mpDivs[1], mpDivs[b], mpDivs[b + 1]];
				c++;
			}
		}
	}
	
	cOpn  = '';
	if(confUseCartImgs == 1){
		cOpn += '<table cellpadding="0" cellspacing="0" width="350">';
		cOpn += '<tr>';
		cOpn += '<td><img src="' + pathToImages + '/tt_1.gif" width="16" height="32" alt=""></td>';
		cOpn += '<td background="' + pathToImages + '/tt_3.gif" width="100%"><img src="' + pathToImages + '/tt_3.gif" width="1" height="32" alt=""></td>';
		cOpn += '<td><img src="' + pathToImages + '/tt_4.gif" width="20" height="32" alt=""></td>';
		cOpn += '</tr>';
		cOpn += '<tr>';
		cOpn += '<td background="' + pathToImages + '/tt_5.gif"><img src="' + pathToImages + '/tt_5.gif" width="16" height="1" alt=""></td>';
		cOpn += '<td bgcolor="#ffffff">';
	} else {
		cOpn += '<table border="0" bgcolor="white" cellpadding="0" cellspacing="0" style="border: ' + confBorderColor + ' solid 1px;" width="350" class="cdMaxiText">';
		cOpn += '<tr>';
		cOpn += '<td>';
	}
	
	cCls  = '';
	if(confUseCartImgs == 1){
		cCls += '</td>';
		cCls += '<td background="' + pathToImages + '/tt_6.gif"><img src="' + pathToImages + '/tt_6.gif" width="20" height="1" alt=""></td>';
		cCls += '</tr>';
		
		cCls += '<tr>';
		cCls += '<td><img src="' + pathToImages + '/tt_7.gif" width="16" height="20" alt=""></td>';
		cCls += '<td background="' + pathToImages + '/tt_8.gif"><img src="' + pathToImages + '/tt_8.gif" width="1" height="20" alt=""></td>';
		cCls += '<td><img src="' + pathToImages + '/tt_9.gif" width="20" height="20" alt=""></td>';
		cCls += '</tr>';
		cCls += '</table>';
	} else {
		cCls += '</td></tr></table>';
	}
	
	qcprodstr    = '<table border="0" cellpadding="0" cellspacing="0" width="600">';
	qcprodstr   += '<tr><td height="400" valign="top">';
	qcprodstr   += '<table border="0" cellpadding="5" cellspacing="0" width="100%" class="cdMaxiText">';
	
	qcprodstr   += '<tr>';
	
	qcprodstr   += '<td class="blackLine" width="100%"><b>' + confCartContents + '</b></td>';
	qcprodstr   += '<td align="right" colspan="5" class="blackLine" nowrap><a href="javascript:removeAll();" class="cdMaxiLink">' + confClearCart + '</a> &nbsp; <a href="javascript:hideCart();" class="cdMaxiLink">' + confHideTheCart + '</a> &nbsp; <a href="' + ScriptURL + '?checkout1" class="cdMaxiLink">' + confCheckout + '</a></td>';
	
	qcprodstr   += '</tr>';
	
	qcprodstr   += '<tr><td colspan="6"><br></td></tr>';
	
	qcprodstr   += '<tr>';
	
	qcprodstr   += '<td class="blackLine" width="100%">' + confProductName + '</td>';
	qcprodstr   += '<td class="blackLine">' + confNumUnits + '</td>';
	qcprodstr   += '<td class="blackLine">' + confUnitPrice + '</td>';
	qcprodstr   += '<td class="blackLine">' + confSavings + '</td>';
	qcprodstr   += '<td class="blackLine">' + confLineTotal + '</td>';
	qcprodstr   += '<td class="blackLine" align="right">' + confDelItem + '</td>';
	
	qcprodstr   += '</tr>';
	
	
	sss = '';
	
	for(a = 0; a < prodVals.length; a += 6){
		if(prodVals[a]){
			hasqcprods++;
			
			numUnits    = prodVals[a + 1];
			savPrice    = 0.00;
			regPrice    = prodVals[a + 5];
			mulPrice    = prodVals[a + 5];
			
			savLineTotal = parseFloat(0).toFixed(2);
			
			for(c = 0; c < MP.length; c++){
				if(MP[c][0] == prodVals[a] + '_' + prodVals[a + 3]){
					numUnits  = parseInt(numUnits);
					discUnits = parseInt(MP[c][1]);
					if(numUnits >= discUnits){
						mulPrice = MP[c][2];
						//alert('Prod Name = ' + prodVals[a + 2] + ' ProductID = ' + MP[c][0] + ' Product Ordered = ' + prodVals[a] + '_' + prodVals[a + 3] + ' Disc Units = ' + MP[c][1] + ' Units ordered = ' + numUnits + ' MulPrice = ' + mulPrice)
					}
				}
				//sss += 'c = ' + MP[c][0] + ', ' + MP[c][1] + ', ' + MP[c][2] + ', '
			}
			
			savPrice       = parseFloat(regPrice - mulPrice).toFixed(2);
			savPrice       = formatInt(savPrice);
			
			regLineTotal   = parseFloat(prodVals[a + 5] * prodVals[a + 1]).toFixed(2);
			mulLineTotal   = parseFloat(mulPrice * prodVals[a + 1]).toFixed(2);
			savLineTotal   = parseFloat(regLineTotal - mulLineTotal).toFixed(2);
			
			orderTotal    += mulPrice * prodVals[a + 1];
			totalSav      += regLineTotal - mulLineTotal;
			
			regLineTotal   = formatInt(regLineTotal);
			mulLineTotal   = formatInt(mulLineTotal);
			savLineTotal   = formatInt(savLineTotal);
			// convert to string here
			numUnits    = formatInt(prodVals[a + 1]);
			
			qcprodstr += '<tr>';
			qcprodstr += '<td class="dashedSmll" nowrap>' + unescape(prodVals[a + 2]) + '</td>';
			qcprodstr += '<td class="dashedSmll" nowrap>' + numUnits + '</td>';
			qcprodstr += '<td class="dashedSmll" nowrap>' + confCurrUnit1 + prodVals[a + 5] + confCurrUnit2 + '</td>';

			if(document.getElementById("tt")){
				
				blurbStr = '<table border=0 cellpadding=5 cellspacing=0><tr><td style=border-bottom: black solid 1px; nowrap>' + confNormPrice + '</td><td style=border-bottom: black solid 1px; nowrap>' + confMultiPrice + '</td><td style=border-bottom: black solid 1px; nowrap>' + confSaving + '</td><td style=border-bottom: black solid 1px; nowrap>&nbsp;</td><td style=border-bottom: black solid 1px; nowrap>&nbsp;</td><td style=border-bottom: black solid 1px; nowrap>&nbsp;</td><td style=border-bottom: black solid 1px; nowrap>' + confTotalSaving + '</td></tr><tr><td><strike style=color:red;>' + confCurrUnit1 + regPrice + confCurrUnit2 + '</strike></td><td>' + confCurrUnit1 + mulPrice + confCurrUnit2 + '</td><td>' + confCurrUnit1 + savPrice + confCurrUnit2 + '</td><td>X</td><td>' + numUnits + '</td><td>=</td><td>' + confCurrUnit1 + savLineTotal + confCurrUnit2 + '</td></tr><tr><td colspan=7>' + confSavingBlurb + '</td></tr></table>';
			
				qcprodstr += '<td class="dashedSmll" nowrap onmouseover="showTT(\'' + blurbStr + '\', event)" onmouseout="hideTT()">' + confCurrUnit1 + savLineTotal + confCurrUnit2 + '</td>';
			} else {
				
				qcprodstr += '<td class="dashedSmll" nowrap>' + confCurrUnit1 + savLineTotal + confCurrUnit2 + '</td>';
			}
			
			qcprodstr += '<td class="dashedSmll" nowrap>' + confCurrUnit1 + mulLineTotal + confCurrUnit2 + '</td>';
			qcprodstr += '<td class="dashedSmll" align="right"><a href="javascript:removeItemJS(' + prodVals[a] + ', \'' + prodVals[a + 3] + '\');"><img src="' + pathToImages + '/off.gif" width="16" height="16" border="0" align="absmiddle"></a></td>';
			qcprodstr += '</tr>';
		}
	}
	
	orderTotalTax = orderTotal + (orderTotal * confTaxRate / 100);
	
	orderTotal    = formatInt(orderTotal.toFixed(2));
	totalSav      = formatInt(totalSav.toFixed(2));
	orderTotalTax = formatInt(orderTotalTax.toFixed(2));
	
	if(hasqcprods == 0){
		qcprodstr += '<tr>';
		qcprodstr += '<td colspan="6" class="dashedSmll">' + confCartEmpty + '</td>';
		qcprodstr += '</tr>';
	} else {
		qcprodstr += '<tr>';
		qcprodstr += '<td align="right" colspan="6" class="blackLine"><br></td>';
		qcprodstr += '</tr>';
		
		qcprodstr += '<tr>';
		qcprodstr += '<td class="blackLine">' + confOrderTotal + '</td>';
		qcprodstr += '<td align="right" colspan="5" class="blackLine"><b>' + confCurrUnit1 + orderTotal + confCurrUnit2 + '</b></td>';
		qcprodstr += '</tr>';
		
		qcprodstr += '<tr>';
		qcprodstr += '<td class="blackLine">' + confTotalWithVAT + '</td>';
		qcprodstr += '<td align="right" colspan="5" class="blackLine"><b>' + confCurrUnit1 + orderTotalTax + confCurrUnit2 + '</b></td>';
		qcprodstr += '</tr>';
		
		qcprodstr += '<tr>';
		qcprodstr += '<td colspan="6"><br>' + confCartBlurb + '</td>';
		qcprodstr += '</tr>';
		
	}
	
	qcprodstr   += '</table></td></tr></table>';
	
	cdX  = getWinX() / 2 - 320 + getScrollX(); 
	cdY  = getWinY() / 2 - 200 + getScrollY(); 
	
	document.getElementById("divCart").style.top        = cdY + "px";
	document.getElementById("divCart").style.left       = cdX + "px";
	document.getElementById("divCart").innerHTML        = cOpn + qcprodstr + sss + cCls;
	document.getElementById("divCart").style.visibility = "visible";
}

function hideCart(){
	if(!loaded){return;}
	
	document.getElementById('divCart').style.visibility = 'hidden';
	document.getElementById('divCart').style.top        = -1000 + "px";
	document.getElementById('divCart').style.left       = -1000 + "px";
}

function removeItemJS(id, clrid){
	if(!loaded){return;}
	
	currLoc = window.location.toString();
	if(currLoc.search(/qcart\.cgi\?checkout/) >= 0) return;
	
	qcprodstr    = "";
	prodVals     = "";
	currqcprods  = printCookies("qcprods");
	currmprices  = printCookies("mprices");
	
	MP           = new Array();
	mpDivs       = new Array();
	mpLines      = new Array();
	prodVals     = new Array();
	
	if(currqcprods){
		prodVals   = currqcprods.split("||");
	}
	
	// get multi unit pricing
	if(currmprices){
		mpLines  = currmprices.split("mpSplit");
		
		c = 0;
		for(a = 0; a < mpLines.length; a++){
			mpDivs = mpLines[a].split("||");
			
			for(b = 2; b < mpDivs.length; b += 2){
				MP[c] = [mpDivs[0] + '_' + mpDivs[1], mpDivs[b], mpDivs[b + 1]];
				c++;
			}
		}
	}
	
	updated    = 0;
	
	for(a = 0; a < prodVals.length; a += 6){
		if(prodVals[a]){
			if(prodVals[a] == id && prodVals[a + 3] == clrid){
				// do nothing
			} else {
				qcprodstr += prodVals[a] + '||' + prodVals[a + 1] + '||' + prodVals[a + 2] + '||';
				qcprodstr += prodVals[a + 3] + '||' + prodVals[a + 4] + '||';
				qcprodstr += prodVals[a + 5] + '||';
			}
		}
	}
	
	cookieStr  = 'qcprods=' + qcprodstr + '; path=/; domain=' + mainDomain + '; ';
	cookieStr += 'expires=' + ged(nDays);
	document.cookie = cookieStr;
	
	if(document.getElementById("divMiniCart")){
		if(document.getElementById("divMiniCart").style.visibility == "visible"){
			viewMiniCart();
		}
	}
	
	if(document.getElementById("divTiniCart1")){
		updateTinyCart();
	}
	
	if(document.getElementById("divCart")){
		if(document.getElementById("divCart").style.visibility == "visible"){
			viewCart();
		}
	}
}

function formatInt(n){
	n += '';
	x = n.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}

function printCookies(w){
	cName = "";
	pCOOKIES = new Array();
	pCOOKIES = document.cookie.split('; ');
	for(bb = 0; bb < pCOOKIES.length; bb++){
		NmeVal  = new Array();
		NmeVal  = pCOOKIES[bb].split('=');
		if(NmeVal[0] == w && NmeVal[1]){
			cName = NmeVal[1];
		}
	}
	
	cName = cName.replace(/\+/ig, " ");
	cName = cName.replace(/\%3A\%3A/ig, "::");
	cName = cName.replace(/\%26/ig, "&");
	cName = cName.replace(/\%3D/ig, "=");
	cName = cName.replace(/\%2C/ig, ",");
	cName = cName.replace(/\%3B/ig, ";");
	cName = cName.replace(/\%2B/ig, "+");
	cName = cName.replace(/\%25/ig, "%");
	cName = cName.replace(/\%20/ig, " ");
	
	return cName;
}

function removeAll(){
	currLoc = window.location.toString();
	if(currLoc.search(/qcart\.cgi\?checkout/) >= 0) return;
	
	cookieStr  = 'qcprods=; path=/; domain=' + mainDomain + '; ';
	cookieStr += 'expires=Thu, 01-Jan-1970 00:00:01 GMT;';
	document.cookie = cookieStr;
	
	if(document.getElementById("divMiniCart")){
		if(document.getElementById("divMiniCart").style.visibility == "visible"){
			viewMiniCart();
		}
	}
	
	if(document.getElementById("divTiniCart1")){
		updateTinyCart();
	}
	
	viewCart();
}

// end cookie cart code

sTimer = "";
pixelPos = 0;

// width and height of visible area
stageWidth = 376;

// speed, higher this number is, faster it scrolls
manualScrollSpeed = 7;

// speed to scroll when not using controls
autoScrollSpeed = 1;

// 0 = no autostart and no autoscroll
// 1 = autostart and the speed it should scroll while user isn't using controls
autoScrollSpeed = 1;

// number of seconds before scroller starts if autoScrollSpeed is on
autoScrollDelay = 3;

// initial scrolling direction
// 1 = right
// 2 = left
scrollerDirection = 2;

// 0 = left/right, no repeat
// 1 = wrap around, repeat
scrollerWrap = 1;

function sDown(){
	if(!loaded){return;}
	
	if(scrollerDirection == 1){
		if(!scrollerWrap){
			if(document.getElementById("stageDiv").scrollLeft < 1){
				pixelPos = 0;
				return;
			}
		}
		
		pixelPos -= scrollSpeed;
		document.getElementById("stageDiv").scrollLeft = pixelPos;
	} else if(scrollerDirection == 2){
		if(!scrollerWrap){
			if(document.getElementById("stageDiv").scrollLeft + stageWidth >= backStageWidth){
				return;
			}
		}
		
		pixelPos += scrollSpeed;
		document.getElementById("stageDiv").scrollLeft = pixelPos;
	}
	
	if(scrollerDirection == 1){
		if(document.getElementById("stageDiv").scrollLeft >= backStageWidth * 2){
			pixelPos = backStageWidth;
		}
		if(document.getElementById("stageDiv").scrollLeft <= 0){
			pixelPos = backStageWidth;
		}
	} else if(scrollerDirection == 2){
		if(document.getElementById("stageDiv").scrollLeft >= backStageWidth){
			pixelPos = 0;
		}
	}
	
	sTimer = setTimeout("sDown()",25);
}

function sRestart(){
	if(!loaded){return;}
	
	if(autoScrollSpeed){
		scrollSpeed = autoScrollSpeed;
		sDown();
	}
}

function sStop(){
	if(!loaded){return;}
	
	sTimer = clearTimeout(sTimer);
}

function scrollDir(d){
	if(!loaded){return;}
	
	scrollSpeed = manualScrollSpeed;
	
	scrollerDirection = d;
	sStop();
	sDown();
}

function slowDown(){
	if(!loaded){return;}
	
	if(autoScrollSpeed){
		scrollSpeed = autoScrollSpeed;
	} else {
		sStop();
	}
}

function sInit(){
	bsWidthElem = document.getElementById("backStageDiv");
	
	backStageWidth = bsWidthElem.offsetWidth;
	
	if(backStageWidth > stageWidth){
		document.getElementById("stageDiv").style.width  = stageWidth + "px";
		document.getElementById("backStageDiv").width    = backStageWidth + "px";
		document.getElementById("backStageDiv").align    = "left";
		
		if(scrollerWrap == 1){
			document.getElementById("stageDiv").innerHTML = document.getElementById("stageDiv").innerHTML + document.getElementById("stageDiv").innerHTML;
		}
		
		scrollSpeed = autoScrollSpeed;
		
		if(autoScrollSpeed){
			if(autoScrollDelay < 1){ autoScrollDelay = 1; }
			sTimer = setTimeout("sDown()", autoScrollDelay * 1000);
		}
		document.getElementById("stageDiv").display = '';
	}
}

// mini cart scroller
SMT = ""; 
SMspeed  = 20; 
SMtop    = 0;
SMnewP   = SMtop; SMcurP = SMtop; 

function checkSMP(){
	SMscT = getScrollY(); SMnewP = SMscT < SMtop ? SMtop : SMscT;
	if(SMcurP != SMnewP && !SMT){ SMT = 1;
		SMdir = SMcurP > SMnewP ? 0 : 1; mvSM(SMcurP, SMnewP, SMdir); SMcurP = SMnewP;
	}
}

function mvSM(c, n, d){
	c = d ? c += SMspeed : c -= SMspeed; document.getElementById('SMDiv').style.top = c + "px";
	if(d) SMT = c <= n ? setTimeout("mvSM(" + c + "," + n + "," + d + ")", 10) : cleanUpSM(c);
	else  SMT = c >= n ? setTimeout("mvSM(" + c + "," + n + "," + d + ")", 10) : cleanUpSM(c);
}

function cleanUpSM(c){
	SMscT = getScrollY(); SMDS = document.getElementById('SMDiv').style;
	SMscT < SMtop ? SMDS.top = SMscT + SMtop + "px" : SMDS.top = SMscT + "px"; 
	SMT = clearTimeout(SMT);
}

isLocal = false;

window.onbeforeunload = function(){
	if(confUseExitPop == 2) return;
	if(isLocal) return;
	currLoc = window.location.toString();
	if(currLoc.search(/qcart\.cgi\?checkout/) < 0) return;
	
	return checkExit();
}
