	allBasket = new Array();
	cookiesOn = false;
	basketTimer = false;

	basketAnim = 0;
	basketOriginX = basketOriginY = 0;
	basketNavX = basketNavY = 0;

	if (document.all) classFix = "className";
		else classFix = "class";

	function basketRemoveAll()
	{
		allBasket = new Array();
		basketSave();
		// Reload
		// window.location.href = window.location.href;
		setBasketVisibility();
		updateBasketCounter();
	}

	function basketRemove(el)
	{
		var id = el.id;

		for (i = 0; i < allBasket.length; i++) {
			if (id == allBasket[i]) {
				allBasket.splice(i, 1);
			}
		}
		basketSave();
		// Reload
		window.location.href = window.location.href;
	}

	function basketVisibility(id, state)
	{
		if (obj = document.getElementById(id)) {
			if (obj.className == 'add') {
				obj.style.visibility = state;
			}
		}
	}
	
	function setBasketVisibility()
	{
		for (var i = 0; i < allBasket.length; i++) {
			basketVisibility(allBasket[i], "hidden");
		}
	}

	function basketSave()
	{
		tempCookie = "basket=";
		for (var i = 0; i < allBasket.length; i++) {
			tempCookie += "^" + (allBasket[i]);
		}
		tempCookie += "; path=" + webDir + "/;";
		document.cookie = tempCookie;
	}

	function checkForCookies()
	{
		tempCookie = "basket=";
		for (var i = 0; i < allBasket.length; i++) {
			tempCookie += "^" + (allBasket[i]);
		}
		tempCookie += "; path=" + webDir + "/;";
		document.cookie = tempCookie;
		checkForCookie = document.cookie.split(";");
		for (var i = 0; i < checkForCookie.length; i++) {
			if (checkForCookie[i].indexOf("basket") >= 0) { cookiesOn = true; }
		}
  		if (cookiesOn == false) alert("You will need to enable cookies to use the basket.");
	}

	function basketLoad()
	{
		basketString = null;
		tempArray = document.cookie.split(";");
		for (tA = 0; tA < tempArray.length; tA++) {
			if (tempArray[tA].indexOf('basket=') > -1) //found the basket section
			{
				tPos = tempArray[tA].indexOf("=") + 2;
				basketString = tempArray[tA].substring(tPos, tempArray[tA].length); //striping out "basket=^"
			}
		}
		if (basketString != null && basketString != '') {		
			tempArray = basketString.split("^");
			if (tempArray.length > 0) {
				for (var i = 0; i < tempArray.length; i++) {
					allBasket[i] = tempArray[i];
				}
			}
		}
	}

	function updateBasketCounter()
	{
		obj = document.getElementById("num");
		if (obj) {
			obj.innerHTML = allBasket.length;
		}
	}

	function createSprites()
	{
		for (var i = 0; i < 4; i++) {
			if (document.getElementById("sprite" + i) == null) {
				sprite = document.createElement("img");
				sprite.src = webDir + "/graphics/basket_ghost.gif";
				sprite.setAttribute(classFix, "sprite");
				sprite.setAttribute("id", "sprite" + i);
				parentObj = document.getElementById("bodyNode");
				parentObj.appendChild(sprite);
			}
		}
	}

	function getElementLeft(eElement)
	{
		var nLeftPos = eElement.offsetLeft; // initialize var to store calculations
		var eParElement = eElement.offsetParent; // identify first offset parent element 
		while (eParElement != null)
		{ // move up through element hierarchy
			nLeftPos += eParElement.offsetLeft; // appending left offset of each parent
			eParElement = eParElement.offsetParent; // until no more offset parents exist
		}
		return nLeftPos; // return the number calculated
	}

	function getElementTop(eElement)
	{
		var nTopPos = eElement.offsetTop; // initialize var to store calculations
		var eParElement = eElement.offsetParent; // identify first offset parent element 
		while (eParElement != null)
		{ // move up through element hierarchy
			nTopPos += eParElement.offsetTop; // appending top offset of each parent
			eParElement = eParElement.offsetParent; // until no more offset parents exist
		}
		return nTopPos; // return the number calculated
	}

	function animateBasket()
	{
		if (basketAnim < 10) {
			for (var i = 0; i < 4; i++) {
				obj = document.getElementById("sprite" + i);
				obj.style.visibility = "visible";
				tX  = basketOriginX + (basketAnim * ((basketNavX - basketOriginX) / (12 - i)));
				tY  = basketOriginY + (basketAnim * ((basketNavY - basketOriginY) / (12 - i)));
				obj.style.left = tX + 'px';
				obj.style.top = tY + 'px';
			}
			basketAnim++;
		}
		else {
			for (var i = 0; i < 4; i++) {
				obj = document.getElementById("sprite" + i)
				obj.style.visibility = "hidden"
			}
			basketAnim = 0;
			clearInterval(basketTimer)
		}
	}

	function basketAdd(el)
	{
		var id = el.id;

		duplicate = false;
		for (i = 0; i < allBasket.length; i++) {
			if (id == allBasket[i]) {
				duplicate = true;
			}
		}
		if (id && !duplicate) {
			checkForCookies();
			if (cookiesOn == true) {
				allBasket[allBasket.length] = id;

 				basketOriginX = getElementLeft(el) + 3;
	 			basketOriginY = getElementTop(el) + 8;
				el.style.visibility = "hidden";
				
				obj = document.getElementById("basketimg")
				basketNavX = getElementLeft(obj);
				basketNavY = getElementTop(obj);
		 		
				clearInterval(basketTimer);
				basketTimer = setInterval("animateBasket()", 10);
				updateBasketCounter();
				basketSave();
			}
		}
	}


	function basketInit()
	{
		createSprites();
		basketLoad();
		setBasketVisibility();
		updateBasketCounter();
	}
	
	SafeAddOnload(basketInit);