var headerCart = Class.create( {
	
	initialize : function(id) {
		this.id = id;
		var link = this.element().select(".head h4 a").first();
		
		var cart = this.element();
		cart.hide();
		cart.setStyle({visibility: "visible"});
		cart.appear({duration: 1});
		
		if ($("cart-items")) {
		
			cart.observe("cart:open", this.open);
			cart.observe("cart:close", this.close);
			
			link.observe("click", function(event) {
				$("main").observe("mouseover", function(event) { cart.fire("cart:close"); });
				
				if ($("cart-items").getStyle("display") == "none") {
					cart.fire("cart:open");
				} else {
					cart.fire("cart:close");
				}
			});
			
				$("cart-items").hide();
				$("cart-items-label").hide();	
		}
		

		$("cart-actions").hide();	
		
	},
	element : function() {

		return $(this.id);
	},
	open : function(event) {

		var cart = event.element();
		$("cart-totals").hide();
		
		
		$("cart-items-label").show();
		$("cart-items").appear({duration: 0.5});
		$("cart-actions").appear({duration: 0.5});
		
			
		var link = cart.select(".head h4 a").first();
		if (!link.hasClassName("active")) {
			link.addClassName("active");
		}
	},
	close : function(event) {

		var cart = event.element();
		$("cart-items-label").hide();
		$("cart-items").fade({duration: 0.2});
		$("cart-actions").fade({duration: 0.2});
		
		$("cart-totals").show();
		
		
		
		
		var link = cart.select(".head h4 a").first();
		if (link.hasClassName("active")) {
			link.removeClassName("active");
		}
		
	}
});

Event.observe(window, "load", function(event) {

	var cart = {
		header : {},
		sidebar : {}
	};

	cart.header = new headerCart("header-cart");

	$$("a.more").invoke("observe", "click", function(event) { 
		event.stop();
		
		var element = event.element().previous();
		var value = parseInt(element.getValue());
		
		if (isNaN(value)) {
			value = 1;
		}
		
		value++;
		
		element.setValue(value);
		
	});

	$$("a.less").invoke("observe", "click", function(event) { 
		event.stop();
		
		var element = event.element().next();
		var value = element.getValue();
		
		if (parseInt(value) <= 1 || isNaN(value)) {
			return false;
		}
		
		value--;
		
		element.setValue(value);
		
	});

	if ($$(".informations p")) {
	$$(".informations p").invoke("hide");
	}
	
	if ($("shipping-grouped-details")) {
	$("shipping-grouped-details").observe("click", function(event) { 
		event.stop();
		
		var element = event.element().up("div").next();
		if (event.element().hasClassName("active") == false) {
			element.show();
			event.element().addClassName("active");
			
			} else {
			element.hide();	
			event.element().removeClassName("active");

			}
		
		
	});
	}
	
	if ($("shipping-details")) {
		$("shipping-details").observe("click", function(event) { 
		event.stop();
		
		var element = event.element().up("div").next();
		
		if (event.element().hasClassName("active") == false) {
			element.show();
			event.element().addClassName("active");
			
			} else {
			element.hide();	
			event.element().removeClassName("active");

			}
		
	});
	}
		
});