var cart_service = new CartService();
var cart_total = new Object();
var cart_total_qty;


function get_cart_total(removed){

	cart_service.get_total.call();
	cart_service.get_total.result = function(result) {
		
		if(result){
			cart_total = result;
			
			var a_obj = new getObj('cart-link');
			
			if(cart_total.qty){
				
				var items = 'Item';
				
				if(cart_total.qty > 1){
					
					items = 'Items';
				}
				
				a_obj.obj.innerHTML =  cart_total.qty + ' ' + items + ': ' + convertCurrency(cart_total.total, currency);
				
			}else{
				
				a_obj.obj.innerHTML = '';
			}
		}
	}
}

function cart_remove(item_id){
	
	var div = new getObj('cart-popup');
	
	div.obj.innerHTML = '<img src="/images/public/waiting.gif" />';
	
	cart_service.remove_item.call(item_id);
	cart_service.remove_item.result = function(success) {
		
		get_cart_total(_.instore);
		get_cart_list();

	}
}

function get_cart_list(){
	
	var div = new getObj('cart-popup');
	
	var cart_popup = $('cart-popup');
	
	cart_popup.innerHTML = '<div id="cart-popup-inner"><img src="/images/public/waiting.gif" /></div>';
	
	cart_service.get_items.call();
	cart_service.get_items.result = function(items) {
			
		cart_popup.innerHTML = '<div id="cart-popup-inner"><a id="cart-popup-link" href="/checkout">Proceed to Checkout...</a>';
		
		var count = 0;
		
		for(var i in items){
			
			var item = items[i];
			
			if(item.cart_item_id){
				
				count++;
				
				var price = Number(item.original_price);
				
				price = price.formatMoney();
				
				//alert(price);
				
				cart_popup.innerHTML += '<div class="cart-popup-item"><img src="/inc/scripts/image.php?trim=1&w=30&h=50&file_id=' + item.file_id + '" />' + 
									'<span class="title"><a href="/product/' + item.product_id + '/">' + item.title + '</a></span>' + 
									'<span class="price">'+ convertCurrency(price, currency) +'</span><button onclick="cart_remove(' + item.cart_item_id + ')">X</button></div>';
			}
		}
		
		cart_popup.innerHTML += '</div>';
		
		var content_height = 280;
		
		if(count < 5){
		
			content_height = count * 62 + 41;
			cart_popup.setStyle('overflow-y: hidden;');
			
		}else{
			
			cart_popup.setStyle('overflow-y: scroll;');
		}
		
		new Effect.Morph(cart_popup, {
			  style: 'height: ' + content_height + 'px;',
			  duration: 0.2
			});
		
		cart_popup.has_items = true;
		cart_popup.content_height = content_height;
		cart_popup.count = count;
		
	}
}

function show_cart_popup(){
	
	if(cart_total.qty){
		
		//var div = new getObj('cart-popup');
		
		//div.obj.className = 'visible';
		
		if(cart_total_qty != cart_total.qty){
			
			cart_total_qty = cart_total.qty;
			
			get_cart_list();
		}
		
		var cart_popup = $('cart-popup');
		
		clearTimeout(cart_popup.timeout);
		
		if(!cart_popup.open){
		
			cart_popup.timeout = setTimeout(function(){
				
				cart_popup.open = true;
				
				//cart_popup.();
				
				if(cart_popup.has_items){
								
					if(cart_popup.count < 5){
						
						cart_popup.setStyle('overflow-y: hidden;');
						
					}else{
						
						cart_popup.setStyle('overflow-y: scroll;');
					}
					
					cart_popup.setStyle('height: 20px;');
					
					var effect = new Effect.Appear(cart_popup, {duration: 0});
					
					new Effect.Morph(cart_popup, {
						  style: 'height: ' + cart_popup.content_height + 'px;',
						  duration: 0.2
						});
					
				}else{
					
					var effect = new Effect.Appear(cart_popup, { duration: 0.2});
				}
					
			},200);
		}
	}
}

function hide_cart_popup(){
	
	var cart_popup = $('cart-popup');
	
	clearTimeout(cart_popup.timeout);
	
	if(cart_popup.open){
		
		cart_popup.timeout = setTimeout(function(){
			
			cart_popup.open = false;
			
			Effect.BlindUp(cart_popup, {duration: 0.2});
			
		},200);
	}
	
}


document.observe('dom:loaded',function() {
	
	get_cart_total();
	
	var cart_button = $('cart-button');
	
	Event.observe(cart_button,'mouseenter', function() {
			
		show_cart_popup();
	});
	
	Event.observe(cart_button,'mouseleave', function() {
		
		hide_cart_popup();
	});
});
