$j(function(){
		
		var $basketControler = $j("#basket-controler");
		var $basketContent = $j("#basket-content");
		var $basketItemCont = $basketContent.find("ul");
		var $basketElts;
		
		// Update items count in rendering
		function updateBasketInfos(){
			
			$basketElts = $basketItemCont.find("li:not(.last)");
			
			var items = $basketElts.length;
			
			//$basketContent.parent().find("p.basket-total span").text(items);
			
			if(items == 0){
				$basketContent.add($basketControler).hide();
			} else {
				$basketContent.add($basketControler).show();
			}
			if(items < 2){
				$basketItemCont.find("li.last").remove();
			}
			
			if(items > 5){
				$basketItemCont.find("li.last span").text(items);
			} 
			else {
				$basketItemCont.find("li.last span").text("");
			}
			
			$openedElt = $basketElts.trigger("collapse").slice(0,1).trigger("expand");
		};
		
		updateBasketInfos();
		
		$basketContent.removeClass("no-js").hide();
		
		var basketTimer;
		
		$basketItemCont
			.bind("expand", function(){
				$basketControler.addClass("expanded").text("Close basket");
				
				$j("#basket-container")
				.bind("mouseleave", function(){
					basketTimer = window.setTimeout(function(){
						$basketControler.click();
					},2000);
				})
				
				.bind("mouseenter", function(){
					window.clearTimeout(basketTimer);
				});
				
				$basketContent.slideDown();
			})
			.bind("collapse", function(){
				$basketControler.removeClass("expanded").text("Expand basket");
				$j("#basket-container").unbind();
				$basketContent.slideUp();
			});
		
		
		$basketControler.hover(
			function(){
				$j(this).addClass("hover");
			},
			function(){
				$j(this).removeClass("hover");
			}
		)
		.toggle(
			function(){
				$basketItemCont.trigger("expand");
			},
			function(){
				$basketItemCont.trigger("collapse");
			}
		);
		
		$basketElts
			.bind("collapse", function(){
				$j(this).removeClass("expanded").find("a.prd-image, p.prd-amount, p.prd-quantity, p.prd-desc").hide();
			})
			.bind("expand", function(){
				$j(this).addClass("expanded").find("a.prd-image, p.prd-amount, p.prd-quantity, p.prd-desc").show();
			})
			.find("a.prd-remove").click(function(){
				var ajaxUrl = $j(this).attr("rel").slice(8);
				var $oElement = $j(this);
				
				$j.get(ajaxUrl, function(data){
					var aResults = data.split('::');
					
					if (aResults[0] == 'true')
					{
						if (aResults[1] == '0')
						{
							document.location.reload();
						}
						else
						{
							$oElement.parent().remove();
							updateBasketInfos();
							$j("#basket-container").find(".basket-total span").html(aResults[1]);
							$j("#basket-container").find(".basket-amount").html(aResults[2]);
						}
					}
				});
			});
		
		var $openedElt = $basketElts.slice(0,1);
		
		$basketElts.trigger("collapse").find("p.prd-name a").click(function(e){
			e.preventDefault();
			$openedElt.trigger("collapse");
			$openedElt = $j(this).blur().parents("li:eq(0)").trigger("expand");
		});
		
		$openedElt.trigger("expand");
});