var basketPopinAction = {
	init:function(){
		if($('#shortcut #basketCountItem').text() ==  0){
			$('#shortcut .basketOff').hide();
		}
	},
	openBasket:function() {
        box.ui('generic.basketLoader').removeFromDOM();
			box.ui('generic.basket')
            .addToDOM({target: '.basketLink'});

		box.ui('escape').create('basket');
		if($('#popinBasketMain div.products dl').length>5){
			$('#popinBasketMain #scrollable').css('height','250px').addClass('borderScroll');	
		}
		box.ui('scroll').create({
			id: 'basket',
			element: '#popinBasketMain div.products'
		});
		basketTimer.init();
    },
    
    closeBasket:function() {
		basketTimer.mouseOutBasket = false;
		basketTimer.popinRunning = false;
		basketTimer.count = 0;		
		box.ui('scroll').destroy('basket');
        box.ui('generic.basket').removeFromDOM();
		/*box.ui('generic').destroy('basket');*/
    },
    
    openLoader:function() {
        box.ui('generic.basketLoader')
            .addToDOM({target: '.basketLink'});
			//.applyStyles({top: '54px', right: '-1px'});
    }
};


(function() {
    
    var W = this, D = this.document;
	
	box.ui('scroll').configure({
	  bar: '<a href="#" class="{$barCls}"><span class="start"></span><span class="end"></span></a>'
	});

    
	box.ui('generic').create({
		id: 'basketLoader'
	}).set({
		html: '<div id="basketLoader">' + l10n.loading + '</div>'
	});
	
	box.ui('generic').create({
		id: 'basket'
	});
	    
    box.bind({
        'contentloaded.generic.basket': function() {
            basketPopinAction.openBasket();
        },'closefromkey.escape.basket': function(e) {
            basketPopinAction.closeBasket();
        }
    });
    
    box.addClick({
        id: 'basket',
        deepness: 3,
        test: function(e, element) {
            return (element.nodeName.toLowerCase() == 'a' && element.className.indexOf('box[id=basket]') > -1);
        },
        action: function(e, element) {
            e.preventDefault();
			var li = $('#shortcut li.basketLink');
			if(!basketTimer.popinRunning) {
				li.removeClass('basketOff').addClass('basketOn').show();
				basketPopinAction.openLoader();
				box.ui('generic.basket').set({url: element.href, cache:false});
			} else {
				box.ui('scroll').destroy('basket');
        		box.ui('generic.basket').removeFromDOM();
				box.ui('generic.basket').set({url: element.href, cache:false});
				basketTimer.mouseOutBasket = false;
				basketTimer.count = 0;
			}
        }
    });
    
})();

//counter to close basket after 3 secondes
var basketTimer = {
	//popin basket active
	popinRunning: false,
	count: 0,
	//time in seconde
	displayTime: 6,
	//pointer is not over basket box
	mouseOutBasket: false,
	//init baskettimer
	init:function(){
		basketTimer.mouseOutBasket = true;
		basketTimer.popinRunning = true;
		basketTimer.count = 0;
		//launch countdown
		basketTimer.clock();
		//handler to stop the countdown if mouse is over popinBasket
		$('#popinBasket').hover(function(){
			basketTimer.mouseOutBasket = false;
			basketTimer.count = 0;
		},
		function(){
			basketTimer.mouseOutBasket = true;
			basketTimer.clock();	
		});
	},
	clock:function(){
		if(basketTimer.mouseOutBasket){
			if(basketTimer.count > basketTimer.displayTime){
				basketTimer.popinRunning = false;
			}
			if(basketTimer.popinRunning){
				basketTimer.count++;
				setTimeout("basketTimer.clock()", 1000);
			}
			//destroy popin basket and reset basketTimer
			if(!basketTimer.popinRunning){
				basketPopinAction.closeBasket();
				$('#shortcut li.basketLink').removeClass('basketOn').addClass('basketOff'); // A remettre
				return false;
			}
		}
	}
}


$(document).ready(function() {
   basketPopinAction.init();
});

