$(function() {
	$('#shopping_bag_control').mouseenter(function() {
		is_mouse_over_minibasket = true;
		if ( !is_animation_in_progress ) {
			minibasketShow();
		}
	});
	
	$('#shopping_bag_control').mouseleave(function() {
		is_mouse_over_minibasket = false;
		if ( !is_animation_in_progress ) {
			minibasketHide();
		}
	});
});

var is_mouse_over_minibasket = false;
var is_animation_in_progress = false;
var is_basket_updated = false;
var animation_delay = 300;

function minibasketShow() {
	is_animation_in_progress = true;
	$('#shopping_bag_control').addClass('active');
	$('#minibasket_container').slideDown(animation_delay, function() {
		is_animation_in_progress = false;
	});
}

function minibasketHide() {
	// in case if someone takes mouse out of div for a sec by mistake
	setTimeout(
		function() {
			if ( !is_mouse_over_minibasket && !is_animation_in_progress ) {
				is_animation_in_progress = true;
				$('#minibasket_container').slideUp(animation_delay, function() {
					$('#shopping_bag_control').removeClass('active');
					is_animation_in_progress = false;
					is_basket_updated = false;
				});
			}
		},
		500
	);
}

function minibasketShowAfterUpdate(msg) {
	is_basket_updated = true;
	$('#minibasket_container').html(msg);
	minibasketShow();
	setTimeout(
		'minibasketHide()',
		3000
	);
}

setInterval(
	function() {
		if ( !is_basket_updated && !is_animation_in_progress && $('#minibasket_container').css('display')!='none' ) {
			minibasketHide(true);
		}
	},
	1000
);
