	function setOpacity(obj, opacity) 
	{ 
		opacity = (opacity == 100)?99.999:opacity; 
		
		// IE/Win 
		obj.style.filter = "alpha(opacity:"+opacity+")"; 
		
		// Safari<1.2, Konqueror 
		obj.style.KhtmlOpacity = opacity/100; 
		
		// Older Mozilla and Firefox 
		obj.style.MozOpacity = opacity/100; 
		
		// Safari 1.2, newer Firefox and Mozilla, CSS3 
		obj.style.opacity = opacity/100; 
	}

//---------------------------------------------------------------//
	function drag_onMouseMove(e)
	{			
	  if (draggable)
	  {		
		var cartobj = document.getElementById('cart_pod');
		
		var cart_width = cartobj.offsetWidth;
		var cart_height = cartobj.offsetHeight;		
		
		var posArray = findPosition(cartobj);
		var scrollArray = getScrollXY();
		
		var cart_x1 = posArray[0];
		var cart_x2 = cart_x1 + cart_width;
		var cart_y1 = posArray[1];
		var cart_y2 = cart_y1 + cart_height;
			
		var mouse_x = 0;
		var mouse_y = 0;
		if (!e) var e = window.event;
		if (e.pageX || e.pageY)
		{
			mouse_x = e.pageX;
			mouse_y = e.pageY;
		}
		else if (e.clientX || e.clientY)
		{
			mouse_x = e.clientX + scrollArray[0];
			mouse_y = e.clientY + scrollArray[1];
		}
		
		var fobjPos = findPosition(fobj);
		var	dobjPos = findPosition(dobj);
		
		
		if (((dobjPos[0] - fobjPos[0] > -15) && (dobjPos[0] - fobjPos[0] < 15)) &&
			((dobjPos[1] - fobjPos[1] > -15) && (dobjPos[1] - fobjPos[1] < 15)))
		{
			movement = true;
		}
		
		if (self.innerWidth)
		{
			winWidth = self.innerWidth;
			winHeight = self.innerHeight;
		}
		else if (document.documentElement && document.documentElement.clientWidth)
		{
			winWidth = document.documentElement.clientWidth;
			winHeight = document.documentElement.clientHeight;
		}
		else if (document.body)
		{
			winWidth = document.body.clientWidth;
			winHeight = document.body.clientHeight;
		}
		
		// Remove dragged item if it gets near the edge of the screen
		if (	((mouse_x - 25) < (0 + scrollArray[0]))
			||  ((mouse_x + 25) > (winWidth + scrollArray[0]))
			||	((mouse_y - 25) < (0 + scrollArray[1])) 
			|| 	((mouse_y + 25) > (winHeight + scrollArray[1]))
		   )
		{
			dobj.parentNode.removeChild(dobj);
			draggable = false;
			carthover = false;
			movement = false;
			
		}
		
		// window.status = "mouse_x: " + mouse_x + "; mouse_y: " + mouse_y + "; winWidth: " + winWidth + "; winHeight: " + winHeight + "; scrollArray[0]: " + scrollArray[0] + "; scrollArray[1]: " + scrollArray[1];

		if ((mouse_x > cart_x1) && (mouse_x < cart_x2) &&
			(mouse_y > cart_y1) && (mouse_y < cart_y2))
		{
			drag_onCartOver();	
		}
		else
		{
			drag_onCartOut();
		}	
	  		
	  	dobj.style.left = nn6 ? tx + e.clientX - x : tx + event.clientX - x;
		dobj.style.top  = nn6 ? ty + e.clientY - y : ty + event.clientY - y;	
		
		return false;
	  }
	}
	
	
	
	
		//---------------------------------------------------------------//	
	function drawCart()
	{
		var response = requestURL('/x/xml/cart.php');
		redrawCart(response);	
		
		document.getElementById('cartLoading').style.display = 'none';
		document.getElementById('cart').style.display = 'block';
		
		var cartItems = document.getElementById('cartItems');
		cartItems.scrollTop = cartItems.scrollHeight;
	}
	
	//---------------------------------------------------------------//
	function redrawCart(xml)
	{
		var cart = xml.documentElement;
		var cartChild = cart.firstChild;
		
		var total;
		
		// var cartEmpty = document.getElementById('cartEmpty');
		var cartItems = document.getElementById('cartItems');
		
		cartItems.innerHTML = '';
		
		
		while(cartChild != null)
		{
			if(cartChild.nodeName == "sub_total")
			{
				total = cartChild.firstChild.nodeValue;		
				document.getElementById('cartTotal').innerHTML = total;
			}
			
			
			if(cartChild.nodeName == "products")
			{
				var cartItem = document.getElementById('cartItem');
				var temp_product_link = document.getElementById('temp_product_link');
				var temp_product_quantity = document.getElementById('temp_product_quantity');
				var temp_product_unit_price = document.getElementById('temp_product_unit_price');
				var temp_product_inventory_options = document.getElementById('temp_product_inventory_options');
				var temp_product_image = document.getElementById('temp_product_image');
				var temp_product_remove = document.getElementById('temp_product_remove');
				
				var productid;
				var quantity;
				var inventory_options;
				var unit_price;
				var product_link;
				var image_link;
				var inventoryid;
				
				var temp_cartItem;
				
				var product = cartChild.firstChild;
				
				var productChild;
				
				var productCount = 0;
				
				while(product != null)
				{
					if(product.nodeType == 3)
					{
						product = product.nextSibling;	
						continue;	
					}
					
					productid = '';
					quantity = '';
					inventory_options = '';
					unit_price = '';
					product_link = '';
					image_link = '';
					temp_cartItem = '';
					inventoryid = '';
					
					productChild = product.firstChild;
								
					while(productChild != null)
					{
						if(productChild.nodeName == 'productid')
						{
							productid = productChild.firstChild.nodeValue;
						}
						else if(productChild.nodeName == 'quantity')
						{
							quantity = productChild.firstChild.nodeValue;
						}
						else if(productChild.nodeName == 'unit_price')
						{
							unit_price = productChild.firstChild.nodeValue;	
						}
						else if(productChild.nodeName == 'inventoryid')
						{
							inventoryid = productChild.firstChild.nodeValue;
						}
						else if(productChild.nodeName == 'inventory_options')
						{
							if(productChild.firstChild != null)
							{
								inventory_options = productChild.firstChild.nodeValue;
							}
						}
						
						productChild = productChild.nextSibling;		
					}
					
					product_link = '/x/c/product.php?productid=' + productid;
					image_link = '/x/image.php?productid=' + productid;
					temp_product_link.href = product_link;
					temp_product_image.src = image_link;
					temp_product_inventory_options.innerHTML = inventory_options;
					temp_product_quantity.innerHTML = quantity;
					
					if (unit_price == 0) {
						temp_product_unit_price.innerHTML = "Free";	
					} else {
						temp_product_unit_price.innerHTML = '$' + unit_price;
					}
					
					temp_product_remove.href = "javascript:removeItemFromCart(" + inventoryid + ");";
					
					
					temp_cartItem = cartItem.cloneNode(true);
					temp_cartItem.style.display = "block";
					cartItems.appendChild(temp_cartItem);
					
					// cartEmpty.style.display = 'none';
					// cartItems.style.display = 'block';
					
					product = product.nextSibling;
					productCount++;			
				}
			}
			
			cartChild = cartChild.nextSibling;	
		}
		
		var temp_dropCartItem;
		var dropCartItem = document.getElementById('dropCartItem');
		temp_dropCartItem = dropCartItem.cloneNode(true);
		temp_dropCartItem.style.display = "block";
		temp_dropCartItem.id = "validDropCartItem";
		cartItems.appendChild(temp_dropCartItem);
		productCount++;
		
		var temp_emptyCartItem;
		var emptyCartItem = document.getElementById('emptyCartItem');
				
		while (productCount < 4)
		{			
			temp_emptyCartItem = emptyCartItem.cloneNode(true);
			temp_emptyCartItem.style.display = "block";
			cartItems.appendChild(temp_emptyCartItem);
			productCount++;
		}
		
		cartItems.scrollTop = cartItems.scrollHeight;
	}
	
	//---------------------------------------------------------------//
	function drag_onMouseUp()
	{
		if(draggable)
		{		
			if(!movement)
			{	
				var child = fobj.parentNode.firstChild;
				
				while(child != null)
				{
					if( (child.tagName == "A") && (child.id == "product_details") )
					{
						document.location = child.href;
					}
					child = child.nextSibling;	
				}	
			}
			
			
			var child = fobj.parentNode.firstChild;
			var inventoryid, productid;
			while(child != null)
			{
				if( (child.tagName == "SPAN") && (child.id == "product_id") )
				{
					productid = child.innerHTML;
					inventoryid = document.getElementById("options_" + productid);
					
					if(inventoryid != null)
					{
						inventoryid = inventoryid.value;						
					}					
					
					break;
				}
				
				child = child.nextSibling;	
			}
			
			
			if(carthover)
			{
				addItemToCart(inventoryid, 1, '');			
			}
			
			dobj.parentNode.removeChild(dobj);
			
			document.getElementById('rollover-' + productid).style.visibility='hidden';
			
			draggable = false;
			movement = false;
			carthover = false;
			
			// Un-highlight the "Drop Item Here" box
			dragItemColorLevel = 0;
			document.getElementById('validDropCartItem').getElementsByTagName('td').item(0).style.color="#ccc";
			document.getElementById('validDropCartItem').getElementsByTagName('td').item(0).style.backgroundImage='none';
			
			return false;
		}
	}

	//---------------------------------------------------------------//
	function drag_onCartOver()
	{
		if (!carthover)
		{
			carthover = true;
		}
	}
	
	//---------------------------------------------------------------//
	function drag_onCartOut()
	{
		if (carthover)
		{
			carthover = false;
		}
	}

	//---------------------------------------------------------------//	
	function getScrollXY() 
	{
		var scrOfX = 0, scrOfY = 0;
		if( typeof( window.pageYOffset ) == 'number' ) 
		{
			//Netscape compliant
			scrOfY = window.pageYOffset;
			scrOfX = window.pageXOffset;
		} 
		else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) 
		{
			//DOM compliant
			scrOfY = document.body.scrollTop;
			scrOfX = document.body.scrollLeft;
		} 
		else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) 
		{
			//IE6 standards compliant mode
			scrOfY = document.documentElement.scrollTop;
			scrOfX = document.documentElement.scrollLeft;
		}

		return [ scrOfX, scrOfY ];
	}
	
	//---------------------------------------------------------------//	
	function findPosition(oLink)
	{
	  if( oLink.offsetParent ) 
	  {
	    for( var posX = 0, posY = 0; oLink.offsetParent; oLink = oLink.offsetParent ) 
	    {
	      posX += oLink.offsetLeft;
	      posY += oLink.offsetTop;
	    }
	    return [ posX, posY ];
	  } 
	  else 
	  {
	    return [ oLink.x, oLink.y ];
	  }
	}
	
	//---------------------------------------------------------------//	
	function repositionElements() 
	{
		var cBoxPos = findPosition(document.getElementById('cBox'));
		var scrollArray = getScrollXY();
		
		if (scrollArray[1] > (cBoxPos[1] - 2))
		{		
			document.getElementById('rBox').style.top = scrollArray[1];		
			//document.getElementById('lBox').style.top = scrollArray[1];
		}
		else
		{
			document.getElementById('rBox').style.top = cBoxPos[1];
			//document.getElementById('lBox').style.top = cBoxPos[1];
		}
		
		if (document.getElementById('orderProc'))
		{
			if (document.getElementById('orderProc').style.display == 'block')
			{
				if (self.innerWidth)
				{
					winWidth = self.innerWidth;
					winHeight = self.innerHeight;
				}
				else if (document.documentElement && document.documentElement.clientWidth)
				{
					winWidth = document.documentElement.clientWidth;
					winHeight = document.documentElement.clientHeight;
				}
				else if (document.body)
				{
					winWidth = document.body.clientWidth;
					winHeight = document.body.clientHeight;
				}
				
				document.getElementById('orderProc').style.height = winHeight;	
				
				if (document.documentElement && document.documentElement.clientWidth) {
					document.getElementById('orderProc').style.width  = winWidth-16;
				} else {
					document.getElementById('orderProc').style.width  = winWidth;
				}
				
				document.getElementById('orderProc').style.top  = (0 + scrollArray[1]);
				document.getElementById('orderProc').style.left = (0 + scrollArray[0]);
				
				document.getElementById('orderProcWindow').style.top  = ((winHeight/2) + scrollArray[1] - 150);
				document.getElementById('orderProcWindow').style.left = ((winWidth/2) + scrollArray[0] - 150);
			}
		}
	}
	

	
	//---------------------------------------------------------------//
	function requestURL(url)
	{
	        var xmlHttp;
	
	        if(window.ActiveXObject)
	        {
	                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP")
	                xmlHttp.open("GET", url, false)
	                xmlHttp.send();
	        }
	        else
	        {
	                xmlHttp = new XMLHttpRequest();
	                xmlHttp.open("GET", url, false);
	                xmlHttp.send(null);
	        }
	
	        xmlDoc = xmlHttp.responseXML;
	
	        return xmlDoc;
	}
	
	//---------------------------------------------------------------//
	function drag_onMouseDown(e) 
	{
	  fobj = nn6 ? e.target : event.srcElement;
	  var topelement = nn6 ? "HTML" : "BODY";
	  
	  while (fobj.tagName != topelement && fobj.className != "drag")
	  {
		fobj = nn6 ? fobj.parentNode : fobj.parentElement;
	  }

	  
	  if (fobj.className=="drag")
	  {  	
		draggable = true;
		
		// Highlight the "Drop Item Here" box
		document.getElementById('validDropCartItem').getElementsByTagName('td').item(0).style.color="#999";
		document.getElementById('validDropCartItem').getElementsByTagName('td').item(0).style.backgroundImage='url(/x/' + IMAGESDIR + '/dropItemBGDark.gif)';
		dragItemColorLevel = 2;
		var cartItems = document.getElementById('cartItems');
		cartItems.scrollTop = cartItems.scrollHeight;
			
		var option;
		var selectBoxParent;		
		var child = fobj.parentNode.firstChild;
		var origBannerDiv;
		var bannerDivID;
		
		while(child != null)
		{	
			if( (child.tagName == "SPAN") && (child.id == "product_id") )
			{
				var selectBox = document.getElementById("options_" + child.innerHTML);
				bannerDivID = "banners-" + child.innerHTML;
				origBannerDiv = document.getElementById(bannerDivID);
				
				if ( (selectBox != null) && (selectBox.tagName == "SELECT") )
				{
					selectBoxParent = selectBox.parentNode;
					var options = selectBox.options;
					for(var j=0; j<options.length; j++)
					{
						if(options[j].value == selectBox.value)
						{
							option = options[j].text;
							break; 	
						}
					}
				}
				break;
			}
			
			child = child.nextSibling;	
		}	
		
		var selectBoxParentOrigID = '';
		
		
		
		if( (selectBoxParent != null))
		{
			selectBoxParentOrigID = selectBoxParent.id
			selectBoxParent.id="tempOptionValueContainer";
			dobj = fobj.parentNode.cloneNode(true);
		}
		else
		{
			dobj = fobj.parentNode.cloneNode(true);
		}
		
		origBannerDiv.id = "origBannerDiv";
		
		document.getElementById("drag").appendChild(dobj);
		
		var tempBannerDiv = document.getElementById(bannerDivID);
		tempBannerDiv.id = "tempBannerDiv";
		tempBannerDiv.style.visibility='hidden';
		origBannerDiv.id = bannerDivID;
		
		if(selectBoxParent != null)
		{
			selectBoxParent.id=selectBoxParentOrigID;
			if (document.getElementById("tempOptionValueContainer") != null)
			{
				document.getElementById("tempOptionValueContainer").innerHTML = option + '&nbsp;';
			}
		}
		
		dobj.style.position = 'absolute';
		setOpacity(dobj, 65);
		var dobjPos = findPosition(fobj);
		dobj.style.top = dobjPos[1];
		dobj.style.left = dobjPos[0];
		dobj.style.zIndex = 10000;
		
		tx = parseInt(dobj.style.left + 0);
		ty = parseInt(dobj.style.top + 0);
		x = nn6 ? e.clientX : event.clientX;
		y = nn6 ? e.clientY : event.clientY;
		document.onmousemove = drag_onMouseMove;
		
		return false;
	  }
	}
	
	//---------------------------------------------------------------//
	function productListMouseOver(productid, isOver)
	{
		if(dragItemColorLevel==0)
		{
			var validDropCartItem = document.getElementById('validDropCartItem');
			
			if(validDropCartItem == null) return;
			
			validDropCartItem.getElementsByTagName('td').item(0).style.color='#ccc';
			
			if(isOver == true)
			{
				validDropCartItem.getElementsByTagName('td').item(0).style.backgroundImage='url(/x/skin3_images/dropItemBGLight.gif)';
				dragItemColorLevel=1;
			}
			else
			{
				validDropCartItem.getElementsByTagName('td').item(0).style.backgroundImage='none';
				dragItemColorLevel=0;
			}
		}
		
		if(isOver == true)
		{
			document.getElementById('rollover-' + productid).style.visibility='visible';
			if (document.getElementById('rollover_detail-' + productid)) {
				document.getElementById('rollover_detail-' + productid).style.visibility='visible';
			}
		}
		else
		{
			document.getElementById('rollover-' + productid).style.visibility='hidden';
			if (document.getElementById('rollover_detail-' + productid)) {
				document.getElementById('rollover_detail-' + productid).style.visibility='hidden';
			}
		}
	}