	function createQueueItem(xmlItem, maxQueueItems) {
			var sku			= $(xmlItem).find("sku").text();
			var productId	= $(xmlItem).find("id").text();
			var productName	= $(xmlItem).find("productName").text();
			var position	= $(xmlItem).find("position").text();
			var queueID		= $(xmlItem).find("queueID").text();
			var statusStr	= $(xmlItem).find("status").text();
			var queueItem	= $(document.createElement("div"));
			queueItem.addClass("queueItem");
			
			queueItem.append("<div class='productId'>"+productId+"</div>");
			queueItem.append("<div class='queueID'>"+queueID+"</div>");
			queueItem.append("<div class=\"itemPic\"><a href=\"/view_Product.asp?productID="+productId+"\"><img src=\"/m23ProductImages/tiny/"+sku+".jpg\" border=\"0\"><p>"+sku+"</p></a></div>");
			queueItem.append("<div class=\"itemName\">"+productName+"</div>");
			queueItem.append("<div class=\"Position\">"+position+"</div>");
			var arrows		= $(document.createElement("div"));
			arrows.addClass("Arrows");
			arrows.appendTo("<a href='javascript:reOrder("+queueID+", 0)'><img src=\"/images/queue/upArrow.jpg\" onmouseout=\"this.src='/images/queue/upArrow.jpg'\" onmouseover=\"this.src='/images/queue/upArrowOver.jpg'\"></a>");
			arrows.appendTo("<a href='javascript:reOrder("+queueID+", "+maxQueueItems+")'><img src=\"/images/queue/downArrow.jpg\" onmouseout=\"this.src='/images/queue/downArrow.jpg'\" onmouseover=\"this.src='/images/queue/downArrowOver.jpg'\"></a>");
			queueItem.append(arrows);
			queueItem.append("<div class=\"Status\">"+statusStr+"</div>");
			queueItem.append("<div class=\"Actions\"><a href='javascript:addToCart("+productId+")'>Add to my shopping cart</a><br><a href='javascript:deleteFromQueue("+queueID+")'>Remove from my pick list</a></div>");
			queueItem.append("<p style=\"clear:both\"></p>");
			return queueItem;
	}
	
	/*
		Format items that have been checked out and returned
	*/
	function createHistoryItem(xmlItem) {
			var sku			= $(xmlItem).find("sku").text();
			var productId	= $(xmlItem).find("id").text();
			var productName	= $(xmlItem).find("productName").text();
			var position	= $(xmlItem).find("position").text();
			var queueID		= $(xmlItem).find("queueID").text();
			var statusStr	= $(xmlItem).find("status").text();
			var dateMod		= $(xmlItem).find("date").text();
			var history	= $(document.createElement("tr"));
			history.append("<td><img src=\"/m23ProductImages/tiny/"+sku+".jpg\"><p>"+sku+"</p></td>");
			history.append("<td>"+productName+"</td>");
			history.append("<td>"+statusStr+"</td>");
			history.append("<td>"+dateMod+"</td>");
			history.append("<td><a href='/purchase_a_rental.asp'>Buy this rental set</a></td>");			
			return history;
	}
	/*
		Format items that are in queue
	*/
	function displayQueueList(xml) {
		if($(xml).find("login").text() == "False") {
			$("#queue").append("Please login before adding queue items");
			var loginForm	= $(document.createElement("form"));
			loginForm.attr("method", "post");
			loginForm.attr("action", "/m23basket/CustomerAuthenticate.asp");
			loginForm.append("<input type=\"hidden\" name=\"sAction\" value=\"Login\">");
			loginForm.append("<input type=\"hidden\" name=\"sRedirectUrl\" value=\"2\">");
			loginForm.append("<input name=\"sEmail\" size=\"25\" alt=\"blank\" maxlength=\"250\" emsg=\"Please enter your email address or your login account name.\"><BR>");
			loginForm.append("<input name=\"sPassword\" type=\"password\" size=\"25\" alt=\"blank\" maxlength=\"250\" emsg=\"Please enter your password.\"><BR>");
			loginForm.append("<input type=\"submit\" name=\"Submit\" value=\" Log In &gt; \" class='imgbut'>");
			$("#queue").append(loginForm);
		} else {
			//Handle removal from queue
			$("#trash").droppableDestroy();
			$("#queue .queueItem").droppableDestroy();
			$("#queue .queueItem").draggableDestroy();
			$("#queue").empty();
			$(".checkedOutTable tbody").empty();
			var maxQueueItems = $(xml).find("info numInQueue").text();
			$(xml).find("onorder:first item").each( function() {
				$("#queue").append(createQueueItem($(this), maxQueueItems));
			});
			$(xml).find("onLocation:first item").each( function() {
				$(".checkedOutTable tbody").append(createHistoryItem($(this)));
			});
			//Stripe queue
			$(".checkedOutTable tbody tr:odd").addClass('odd');
			$(".checkedOutTable tbody tr:even").addClass('even');
			$(".checkedOutTable tbody tr:last td").css("background-image", "none");
			
			$(".queueItem").draggable({
					helper: 'clone',
					cursor: 'move'
			});
			
			//Handle drag and drop re-ordering of queue
			$(".queueItem").droppable({
				accept: ".queueItem",
				activeClass: 'droppable-active',
				hoverClass: 'droppable-hover',
				tolerance: 'pointer',
				drop: function(ev, ui) {
					//Get dragged item's ID
					var queueItem	= $(ui.draggable.element).children(".queueID").text();
					//Get target item's ID
					var position	= $(this).children(".Position").text();
					$(ui.draggable.element).fadeOut("normal");
					
					//Reorder then re-display
					reOrder(queueItem, position);
				}
			});	
			
			//Remove from queue
			$("#trash").droppable({
				accept: ".queueItem",
				activeClass: 'trash-droppable-active',
				hoverClass: 'trash-droppable-hover',
				tolerance: 'pointer',
				drop: function(ev, ui) {
					//Get item's ID
					var queueItem	= $(ui.draggable.element).children(".queueID").text();
					$(ui.draggable.element).fadeOut("normal");
					//Goodbye
					deleteFromQueue(queueItem);	
				}
			});		
			
			//Add an item to the cart
			$("#shoppingBag").droppable({
				accept: ".queueItem",
				activeClass: 'bag-droppable-active',
				hoverClass: 'bag-droppable-hover',
				tolerance: 'pointer',
				drop: function(ev, ui) {
					var prodID	= $(ui.draggable.element).children(".productId").text();
					addToCart(prodID);
					ev = null;
					ui = null;
				}
			});
		}
		updateScroll();
	}
	
	//Ajax call wrappers
	function reOrder(queueItem, position) {
		URL = "/_includes/script/ajax/reOrderQueue.asp?queueItem="+queueItem+"&orderNum="+position;
		ajaxCall(URL, displayQueueList);		
	}
	function deleteFromQueue(queueItem) {
		ajaxCall("/_includes/script/ajax/removeItemFromQueue.asp?queueItem="+queueItem, displayQueueList);		
	}
	
	//Smooth out the moving cart & trash area's movements
	var scrollTimer;
	function updateScroll() {
		clearTimeout(scrollTimer);
			scrollTimer = setTimeout(function() {
			var offset = $("#queue").offset();
			var left =  offset.left;
			var top = offset.top;
			var scrollAmt = parseInt(document.documentElement.scrollTop);
			if(scrollAmt < top) {
				scrollAmt = top;
			}
			//$(".cartTrashDiv").css("top", parseInt(scrollAmt));
			//$(".cartTrashDiv").css("left", left-50);
			$(".cartTrashDiv").animate({
				top: parseInt(scrollAmt),
				left: (left-50),
				opacity: 0.85
			});
		}, 100);
	}
	
