//	Menu (somewhat hack-ish.. with multiple mousover / out events and timeouts)
Menu = {};

Menu.init = function(elem){
	var node = elem.firstChild;
	var mtimeout = null;

	while(node){
		if(node.tagName == 'LI'){
			if(node.className == 'selected') Menu.current = node;
			Menu.makehover(node);
		}
		node = node.nextSibling;
	}

	elem.onmouseover = function(){
		window.clearTimeout(mtimeout)
	}
	
	elem.onmouseout = function(){
		window.clearTimeout(mtimeout)
		mtimeout = window.setTimeout(function(){Menu.current.className = 'selected'}, 30);
	}

}

Menu.makehover = function(elem){
	var timeout = null;
	var img = elem.getElementsByTagName('IMG')[0]
	var a = elem.getElementsByTagName('A')[0]
	var src = img.src.split(".gif")[0]
	var visual = document.getElementById('visual') || {};

	var out = function(){
		elem.className = ''
		visual.className = 'visual'
	}
	var fin = function(){
		elem.className = 'open'
		visual.className = 'visual noflash'
	}
	
	elem.onmouseover = function(){
		if(elem != Menu.current) Menu.current.className = '';
		window.clearTimeout(timeout)
		timeout = window.setTimeout(fin, 5);
	}
	elem.onmouseout = function(){
		window.clearTimeout(timeout)
		timeout = window.setTimeout(out, 20);
	}
}



/********
*
*   Styleize utils
*
********/

function add_layers(elem, num, tagname){
	if(num <= 0) return;

	var current = document.createElement(tagname||'DIV'); current.className = "extra"+num;
	while(node = elem.firstChild){current.appendChild(node)}

	for(var i=1; i<num; i++){
		var layer = document.createElement(tagname||'DIV'); layer.className = "extra"+(num-i);
		layer.appendChild(current)
		current = layer
	}
	elem.appendChild(current)
}

function add2layers(elem){add_layers(elem, 2)}
function addSpan(elem){add_layers(elem, 1, 'SPAN')}
function initGolfmenu(elem){new TabbedPanel(elem)}
function fixCols(){
	var agenda = document.getElementById('agenda');
	var golf = document.getElementById('golf');
  var lft = document.createElement('DIV');
	lft.id = "leftcol"
	agenda.parentNode.insertBefore(lft, agenda)
	lft.appendChild(agenda)
	lft.appendChild(golf)
}




/****/


Behaviour.register({
	"ul#mainmenu"		: Menu.init,
	"div#agenda"		: add2layers,
	"div#news"			: add2layers,
	"div#golf" 			: add2layers,
	"ul#golfmenu" 	: initGolfmenu,
	"ul#golfmenu a"	:	addSpan,
	"#visual"				: fixCols
});
