/* Index.js
 * Author: Josh Lamb
 * Date: March 3, 2009
 * Description: Contains the sidebar and menu objects, used in the main page
 */
 
var sidebar = {
	arr: {}, // Collapsed items

	collapse_button_click: function(id_to_collapse, img_id) {
		var el = document.getElementById(id_to_collapse);
		var img = document.getElementById(img_id);
		
		if ((typeof(this.arr[id_to_collapse]) == 'undefined') || (this.arr[id_to_collapse] == false)) {
			// Collapse the doodad
			this.arr[id_to_collapse] = true;
			img.src = 'images/site/button-highlight-expand-hover.gif';
			el.className = 'collapse';
		}
		else {
			// Expand the doodad
			this.arr[id_to_collapse] = false;
			img.src = 'images/site/button-highlight-collapse-hover.gif';
			el.className = 'expand';
		}
	},

	highlight_button: function(img_id, toggle, id_collapse_check) {
		var suffix;
		var img = document.getElementById(img_id);
		
		if (toggle) {
			// Mouse is hovering over picture
			suffix = '-hover.gif';
		}
		else {
			// Mouse has left picture
			suffix = '.gif';
		}
		
		if ((typeof(this.arr[id_collapse_check]) == 'undefined') || (this.arr[id_collapse_check] == false)) {
			// Doodad is expanded
			suffix = '-collapse' + suffix;
		}
		else {
			// Doodad is collapsed
			suffix = '-expand' + suffix;
		}

		img.src = 'images/site/button-highlight' + suffix;								
	}							
};

var menu = {
	entered_menu: '', 
	getElementsByStyleClass: function (className) {
		/* Returns an array containing the id of all elements with the 
		 * given className
		 */
		var allelems = document.all ? document.all : document.getElementsByTagName('*');
		
		var elements = new Array();
		
		for (var e = 0; e < allelems.length; e++) {
			if (allelems[e].className == className) {
				elements[elements.length] = allelems[e];
			}
		}
		
		return elements;
	},
	
	submenu_hide: function() {
		/* Hides all visible submenus (ie menu objects with class submenu 
		 *	are set to class submenu-hide
		 */
		var men_items = this.getElementsByStyleClass('submenu');
		var cnt = men_items.length;
		var excepted = this.entered_menu;
		
		for (var i = 0; i < cnt; i++) {
			if (men_items[i].id != excepted) {
				men_items[i].className = 'submenu-hide';
			}
		}	
	},
	
	mouse_exit: function(id) {
		/* Waits 2 seconds and then executes collapse_submenu, which will check if 
		 * hover_menu is still false and hide all submenus if true.
		 */
		this.entered_menu = '';
		var exec = "menu.submenu_hide()";
		setTimeout(exec, 2);
	},
	
	mouse_enter: function(id) {
		/* Sets entered_menu and show's the menu
		 */
		var cur_menu = document.getElementById(id);
		this.entered_menu = id;
		cur_menu.className = 'submenu';
	}
};
