function Basket() {
	this.shoppingBasket = new Array();
}

extend(Basket, {
	   add: function(product) {
			this.shoppingBasket.push(product);
	   },
	   
	   count: function() {
			return this.shoppingBasket.length;
	   }
})

function closeBasket() {
	byId("basket").style.display = "none";
}

function removeProduct(productId) {
	managerInstance.removeFromBasket(productId);
}

function fadeIn(evt) {
	if (evt.target instanceof HTMLImageElement) {
		var offsetX = 370;
		var offsetY = function() {
				var basketHeight = byId("cartCopy").style.height;
				var yy = getAbsolutePosition(byId(evt.target.id)).y + visualBuffer;
				if (yy < basketHeight) {
					yy = basketHeight + visualBuffer
				}
				return yy;
			  };
		dojo.lfx.html.fadeIn(byId("cartCopy"), 300).play();
		var absPosX = getAbsolutePosition(byId(evt.target.id)).x;
		
		if (window.innerWidth - absPosX < offsetX) {
			byId("cartCopy").style.left = absPosX - offsetX + "px";
		}
		else {
			byId("cartCopy").style.left = absPosX + offsetX + "px";
		}
		byId("cartCopy").style.top = offsetY() + "px";
	}
}

function fadeOut(evt) {
	dojo.lfx.html.fadeOut(byId("cartCopy"), 300).play();
	byId("cartCopy").style.left = 0+"px";
	byId("cartCopy").style.top = -1000+"px";
}

function displayCart(type, data, event) {
	byId("basketPlunge").innerHTML = data;	
	byId("basket").style.display = 'block';						
}

function updateCart(type, data, event) {
	var items = data.split(",");
	if (items.length > 0) {
		byId("lineItemCount").innerHTML = trim(items[0]);
		byId("copyLineItemCount").innerHTML = trim(items[0]);
		if (byId("cartSubtotal") != null) {
			byId("cartSubtotal").innerHTML = formatDollarValue(trim(items[1]));
			byId("cartCopySubtotal").innerHTML = formatDollarValue(trim(items[1]));
		}
	}	
}

function formatDollarValue(num) {
    num = num.toString().replace(/\$|\,/g,'');
    if(isNaN(num))
    num = "0";
    sign = (num == (num = Math.abs(num)));
    num = Math.floor(num*100+0.50000000001);
    cents = num%100;
    num = Math.floor(num/100).toString();
    if(cents<10)
    cents = "0" + cents;
    for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
    num = num.substring(0,num.length-(4*i+3))+','+
    num.substring(num.length-(4*i+3));
    return (((sign)?'':'-') + num + '.' + cents);
}

function remAllFromFloatingBasket(element) {
	var productElements = byId("cartCopy").getElementsByTagName("img");
	for (var i=0; i< productElements.length; i++) {
		if ((productElements[i].id.indexOf("IMG") != -1) || (productElements[i].id.indexOf("FTR") != -1)) {			
			productElements[i].parentNode.removeChild(productElements[i]);
		}
	}
}
