var Navigation = Class.create();
Navigation.prototype = {
	initialize : function () {
		this.bound_show_menu = this.show_menu.bindAsEventListener(this);
		this.bound_hide_menu = this.hide_menu.bindAsEventListener(this);
	
		var drop_menus = document.getElementsByClassName('primary_nav')[0].getElementsByClassName('drop');
		for (i=0; i<drop_menus.length; i++) {
			Element.extend(drop_menus[i]);
			Event.observe(drop_menus[i], 'mouseover', this.show_menu);
			Event.observe(drop_menus[i], 'mouseout', this.hide_menu);
		}
	},

	show_menu : function (event) {

		var elt = Event.element(event);
		if (elt.hasClassName('drop')) {
			elt.addClassName('over');
		} else {
			elt.up('.drop').addClassName('over');
		}

	},

	hide_menu : function (event) {
		
		var elt = Event.element(event);
		if (elt.hasClassName('drop')) {
			elt.removeClassName('over');
		} else {
			elt.up('.drop').removeClassName('over');
		}
	}
	
}	
var HomepageBox = Class.create();
HomepageBox.prototype = {

	initialize : function () {
		this.menu_events();
		this.auto_swapper = setInterval(this.swap_next.bind(this), 10000);
	},

	menu_events : function () {
		var menu = $('homepagebox_menu');
		var menu_items = menu.getElementsByTagName('li');
		
		for (i=0; i<menu_items.length; i++) {
			Element.extend(menu_items[i]);
			if (!menu_items[i].hasClassName('on_now')) {
				menu_items[i].observe('click', this.swap_homepagebox.bindAsEventListener(menu_items[i]));
				menu_items[i].observe('click', this.kill_auto.bindAsEventListener(this));
			}
		}
	},

	swap_next : function () {
		var menu = $('homepagebox_menu');
		var menu_items = menu.getElementsByTagName('li');
		
		for (i=0; i<menu_items.length; i++) {
			if (!menu_items[i].hasClassName('on_now') && menu_items[i].hasClassName('selected')) {
				if (i == 3) {
					menu_item = menu_items[0];
				} else {
					menu_item = menu_items[i + 1];
				}

				item_id = menu_items[i].id.replace(/homepagebox_/, '');
				menu_items[i].removeClassName('selected');
				item_image = $('homepagebox_image_' + item_id);
				if (item_image.style.display != 'none') {
					Effect.Fade(item_image, {duration: 0.5, queue: 'front'});
				}
			}
		}
		if (menu_item.id) {
			homepagebox_id = menu_item.id.replace(/homepagebox_/, '');
			homepagebox_image = $('homepagebox_image_' + homepagebox_id);
			Effect.Appear(homepagebox_image, {duration: 0.5, queue: 'end'});
			menu_item.addClassName('selected');
		}
	},

	kill_auto : function (event) {
		clearInterval(this.auto_swapper);
	},

	swap_homepagebox : function (event) {
		if (!this.hasClassName('selected')) {
			var homepagebox_id = this.id.replace(/homepagebox_/, '');
			var homepagebox_image = $('homepagebox_image_' + homepagebox_id);
			var menu = $('homepagebox_menu');
			var menu_items = menu.getElementsByTagName('li');
	
			for (i=0; i<menu_items.length; i++) {
				if (!menu_items[i].hasClassName('on_now')) {
					item_id = menu_items[i].id.replace(/homepagebox_/, '');
					menu_items[i].removeClassName('selected');
					item_image = $('homepagebox_image_' + item_id);
					if (item_image.style.display != 'none') {
						Effect.Fade(item_image, {duration: 0.5, queue: 'front'});
					}
				}
			}
			Effect.Appear(homepagebox_image, {duration: 0.5, queue: 'end'});
			this.addClassName('selected');
		}
	}

}

Event.observe(window, 'load', function (event) {
	var navigation = new Navigation();
});

