//-------------------------------------------------------------------------------------------------
// Geert Dekkers Web Studio 2008, 2009
// base.js for protonconferentie.nl
//-------------------------------------------------------------------------------------------------

Event.observe(window, 'load', function(){				// Observe elements when the DOM is fully loaded

	lightwindowInit();
	observeElements('leftMenu');
	
	var topMenu = $('topMenu').descendants();
	topMenu.each(function(menuElement){
		Event.observe(menuElement, 'click', doClick);
		Event.observe(menuElement, 'click', toggleBackground);
	});
	
			
});

	function doTopMenuClick(event){
		// 
		var element = event.element();
		var contentElement = 'content_' + element;
		var topMenu = $('topMenu').descendants();
		topMenu.each(function(menuElement){
			if (menuElement != element){
				otherContentElement = 'content_' + menuElement;
			}
			
		});
		
		
	}
	
	
	function toggleBackground(event){
		var element = event.element();
		$('indexBG').className = element.id + 'BG';
		
		// while we're at it, why not set all menu backgrounds back to default?
		
		var menuElements = $('leftMenu').descendants();
		
		menuElements.each(function(menuElement){
			menuElement.className = menuElement.id;
		});
		
	}
	
	function observeElements(parentElement){
		// Depends on prototype
		// Takes the id of a parent element
		
		var menuElements = $(parentElement).descendants();
		menuElements.each(function(menuElement){
			Event.observe(menuElement.id, 'mouseover', doMouseOver);			
			Event.observe(menuElement.id, 'click', doClick);
			Event.observe(menuElement.id, 'mouseout', doMouseOut);
		});
	
	}
	
	function doClick(currentEvent){
		// Depends on prototype (http://www.prototypejs.org/)
		// Takes event or string representing element id
		
		// Naming convention:
		// Content element id is named "content_" + menu id.
		
		// We'll pass input of an unknown type then figure out 
		// if an it's an event that has been passed or a string
		
		var element;
		if(currentEvent.element()){
			element = currentEvent.element().id;
		}else{
			element = currentEvent;
		}
		var activeClass = 'active_' + element;
		var contentElement = 'content_' + element;
		$('indexBG').className = 'indexBG';
		$(element).className = activeClass;
		Effect.Appear($(contentElement), {duration:.5});				// show the element
		var parentElement = $(element).ancestors()[1];					// this gives us the parent menu container
		menuElements = parentElement.descendants();
		menuElements.each(function(menuElement){
			
			if (menuElement.hasClassName('container') == false){
				defaultClass = menuElement.id;							// get the default class name of the menu element
				if (menuElement != $(element)){
				contentMenuElement = 'content_' + menuElement.id;	
				$(contentMenuElement).hide(); 							// hide all other descendants
				menuElement.className = defaultClass;
				}
			}
		});
		
		
		// Activate additional functions for certain divs
		
		if(element == 'fotogalerij'){
			doShowCats('fotogalerij', 'galerij');
		}
		
		if (element == 'muurkrant'){
			doShowCats('stickynotes','stickies');
		}


		
	}
	
	function presentContent(currentEvent){
		// Presents a content div triggered by an element
		// other than the left menu.
		
		element = currentEvent.element().id;
		el = element.split("_")[1];
		
		contentElement = 'content_' + el;
		$('indexBG').className = 'indexBG';
		$(element).className = activeClass;
		Effect.Appear($(contentElement), {duration:.5});				// show the element
		closeScreens(); 
		
	}
	
	function doMouseOver(event){
		// Depends on prototype
		// Takes event
		
		// Naming convention: 
		// Menu classes each have an "over"
		// class as follows: "over_" + class
		
		var element = event.element();
		overClassElement = 'over_' + element.id;
		activeClassElement = 'active_' + element.id;
		
		if (element.className != activeClassElement){		
			element.className = overClassElement; 			//set over class for current element if it isn't active'
		}
		
		var parentElement = element.ancestors()[0];
		var menuElements = $(parentElement).descendants();
		
		menuElements.each(function(menuElement){
			
			defaultClass = menuElement.id;				// find out what the element class is
			overClass = 'over_' + menuElement.id;		// set the over class from the convention
			activeClass = 'active_' + menuElement.id;
			
			if(menuElement != element){
				if (menuElement.className == activeClass){
					menuElement.className = activeClass;
				}else{
					menuElement.className = defaultClass;	
				}	
			}
			
		});
		
	}
	
	function doMouseOut(event){
		var element = event.element();
		
		defaultClass = element.id;						// find out what the element class is
		activeClass = 'active_' + element.id;			// get the active class
		
		if (element.className != activeClass){
			element.className = defaultClass;
		}
		
	}
	

	