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

	if ($("carousel")) {
		var carouselZindex = $("carousel").style.zIndex;
	}	
	Event.observe('nav', "mouseover", function(event) {
		$("carousel").style.zIndex = -2;	
		return true;	
	});
	
	Event.observe("main", "mouseover", function(event) {
		$("carousel").style.zIndex = carouselZindex;	
		return true;
	});
	var mea = {small: {}, wide: {}};

	mea.wide = {path: {}, nav: {}, links: {}, items: {}, current: {}};
	mea.small = {path: {}, nav: {}, links: {}, items: {}, current: {}};
	
	mea.wide.path = {
			items :"#carousel .container ul li",
			links : [ "#mea-nav a" ],
			nav :"#mea-nav ul"
		};
	mea.small.path = {
				items :"#carousel-small .container ul li",
				links : [ "#mea-nav-small a" ],
				nav :"#mea-nav-small ul"
			};
	mea.wide.nav = $$(mea.wide.path.nav).first();
	mea.wide.links = $$(mea.wide.path.links);
	mea.wide.items = $$(mea.wide.path.items);

	mea.wide.current = mea.wide.links.first();

	mea.wide.timer = {};
	
	mea.small.nav = $$(mea.small.path.nav).first();
	mea.small.links = $$(mea.small.path.links);
	mea.small.items = $$(mea.small.path.items);

	mea.small.current = mea.small.links.first();
	mea.small.timer = {};
	
	mea.wide.run = function(event) {

		if (mea.wide.links !== "undefined") {

			var max = ($(mea.wide.links).length / $(mea.wide.path.links).length) - 1;
			var current = mea.wide.current.rel;
			current++;

			if (current > max) {
				current = 0;
			}

			var link = $$('#mea-nav a[rel="' + mea.wide.current.rel + '"]').first();

			if ($(link).ancestors().first().hasClassName("disabled")) {
				$(link).ancestors().first().removeClassName("disabled")
			}

			mea.wide.current = mea.wide.links[current];

			mea.wide.carousel.scrollTo(mea.wide.current.rel);
			link = $$('#mea-nav a[rel="' + mea.wide.current.rel + '"]').first();

			$(link).ancestors().first().addClassName("disabled");

		}
	};
	
	mea.small.run = function(event) {

		if (mea.small.links !== "undefined") {

			var max = ($(mea.small.links).length / $(mea.small.path.links).length) - 1;
			var current = mea.small.current.rel;
			current++;

			if (current > max) {
				current = 0;
			}

			var link = $$('#mea-nav-small a[rel="' + mea.small.current.rel + '"]').first();

			if ($(link).ancestors().first().hasClassName("disabled")) {
				$(link).ancestors().first().removeClassName("disabled")
			}

			mea.small.current = mea.small.links[current];

			mea.small.carousel.scrollTo(mea.small.current.rel);
			link = $$('#mea-nav-small a[rel="' + mea.small.current.rel + '"]').first();

			$(link).ancestors().first().addClassName("disabled");

		}
	};

	$(mea.wide.nav).show();
	$(mea.small.nav).show();

	//mea.wide.timer = new PeriodicalExecuter(mea.wide.run, 5);
	mea.small.timer = new PeriodicalExecuter(mea.small.run, 5);
	
	mea.wide.timer = new PeriodicalExecuter(mea.wide.run, 5);

	
	$(mea.wide.current).ancestors().first().addClassName("disabled");
	

	Event.observe('smallcarousel', "mouseover", function(event) {
		mea.small.timer.stop();
	});

	Event.observe('smallcarousel', "mouseout", function(event) {
		mea.small.timer = new PeriodicalExecuter(mea.small.run, 5);
	});
	
	Event.observe('carousel', "mouseover", function(event) {
		mea.wide.timer.stop();
		event.element().style.zIndex = carouselZindex;	
	});

	Event.observe('carousel', "mouseout", function(event) {
		mea.wide.timer = new PeriodicalExecuter(mea.wide.run, 5);
	});

	$(mea.small.current).ancestors().first().addClassName("disabled");
	/*
	 * alert(mea.items.length); alert(mea.links.length);
	 * 
	 * if (mea.links.length =! mea.items.length) { mea.nav.remove(); mea.nav =
	 * new Element("ul"); $("mea-nav").insert(mea.nav); mea.items.each(
	 * function(str, index) { var li = new Element("li"); var a = new
	 * Element("a"); a.setAttribute("href", "#"); a.setAttribute("rel", index);
	 * li.insert(a); mea.nav.insert(li);
	 * 
	 * alert(a); }); }
	 */

	mea.wide.links.each( function(str, index) {

		Event.observe(mea.wide.links[index], "click", function(event) {
			event.stop();

			var link = $$('#mea-nav a[rel="' + mea.wide.current.rel + '"]').first();

			if ($(link).ancestors().first().hasClassName("disabled")) {
				$(link).ancestors().first().removeClassName("disabled")
			}

			mea.wide.current = mea.wide.links[index];
			link = $$('#mea-nav a[rel="' + mea.wide.current.rel + '"]').first();

			$(link).ancestors().first().addClassName("disabled");

			mea.wide.timer.stop();

			mea.wide.carousel.scrollTo(mea.wide.current.rel);
			return false;
		});
	});
	
	mea.wide.carousel = new UI.Carousel("carousel", {
		scrollInc :1
	});
	
	
	mea.small.links.each( function(str, index) {

		Event.observe(mea.small.links[index], "click", function(event) {
			event.stop();
			
			var link = $$('#mea-nav-small a[rel="' + mea.small.current.rel + '"]').first();

			if ($(link).ancestors().first().hasClassName("disabled")) {
				$(link).ancestors().first().removeClassName("disabled")
			}

			mea.small.current = mea.small.links[index];
			link = $$('#mea-nav-small a[rel="' + mea.small.current.rel + '"]').first();

			$(link).ancestors().first().addClassName("disabled");

			mea.small.timer.stop();

			mea.small.carousel.scrollTo(mea.small.current.rel);
			return false;
		});
	});

	mea.small.carousel = new UI.Carousel("smallcarousel", {
		scrollInc :1
	});
	
	mea.categories = {
		timer : {},

		close : function(event) {
			mea.categories.previous = event.element();

			return new PeriodicalExecuter(mea.categories.fade, 0.1);

		},
		open : function(event) {

			event.stop();
			
			if (!Object.isUndefined(mea.categories.current)) {
				var element = event.element();
				var box = element.up("h2").next();
				var currentId = mea.categories.current.id;
				
				if (box.id == currentId) { return false; }
				
				mea.categories.reset(event);
				
			}
			var redirect_link = event.element();
			window.location = redirect_link;
			

			var title = event.element().ancestors().first();

			//title.fire("categories:open");
			

		},
		fade : function(timer) {

			timer.stop();

			mea.categories.previous.fade( {
				duration :0.5
			});
			mea.categories.previous.previous().appear( {
				duration :0.5
			});
		},
		appear : function(event) {

			var title = event.element();

			title.fade( {
				duration :0.1
			});
			title.next().appear( {
				duration :0.5
			});
			

			mea.categories.current = title.next();

			mea.categories.current.observe("click", mea.categories.reset);

			
			mea.categories.timer = new PeriodicalExecuter(mea.categories.reset, 15);
			
		},
		reset: function (event) {
			
			if (mea.categories.timer instanceof PeriodicalExecuter) {
				
				mea.categories.timer.stop();
				delete mea.categories.timer;
			}
			
			if (!Object.isUndefined(mea.categories.current)) {
				mea.categories.current.fire("categories:close");
				
				delete mea.categories.current;
			}
		}
	};

	$$('.categories-boxes ul li ul.level0').invoke('hide');
	$$('.categories-boxes ul li h2 span').invoke('hide');

	$$('.categories-boxes ul li h2 a').invoke('observe', 'click',
			mea.categories.open);
	
	$$('.categories-boxes ul li ul li.see-all a').invoke('observe', 'click', function(event) { 
		event.stop();
		var link = event.element().up("a");
		
		window.location = link.href;
	});
	
	
	$$('.categories-boxes ul li h2').invoke('observe', 'categories:open',
			mea.categories.appear);
	$$('.categories-boxes ul li ul').invoke('observe', 'categories:close',
			mea.categories.close);

});

