var pyorat;
var osat;
var huollot;
var talvi;
var menus=new Array(3);
var mbarColor='black';
var mbarOTColor='#FF9900';
var mbarOpenColor='#666600';
var menuBgColor='#E1E1E1';
var menuBgOTColor='#990033';
var menuBgMDownColor='#FF0000';
var auki=false;
var menuItems=new Array(5);
var ua=navigator.userAgent.toLowerCase();
var o=(ua.indexOf('opera')!=-1)?true:false;
var MD=false;
var OT=false;

var menuBarIDs=('pyoratmenu','osatmenu', 'talvimenu', 'huollotmenu');
var TBODYids = new Array('pyoratTableBody','osatTableBody', 'talviTableBody', 'huollotTableBody');

//Array.push() methodi Mac IE 5:lle
if (typeof Array.prototype.push=='undefined'){
	Array.prototype.push=function(){
		var i=0;
		for (var i=0; i<arguments.length; i++)this[this.length+i]=arguments[i];
		return this.length;
	}
}

function init(){
	if (window.document.all){
		pyorat=new Menu(window.document.all('pyoratmenu'), window.document.all('pyoratbar'));
		osat=new Menu(window.document.all('osatmenu'), window.document.all('osatbar'));
		talvi=new Menu(window.document.all('talvimenu'), window.document.all('talvibar'));		
		huollot=new Menu(window.document.all('huollotmenu'), window.document.all('huollotbar'));
	}
	else if (window.document.getElementById){
		pyorat=new Menu(window.document.getElementById('pyoratmenu'), window.document.getElementById('pyoratbar'));
		osat=new Menu(window.document.getElementById('osatmenu'), window.document.getElementById('osatbar'));
		talvi=new Menu(window.document.getElementById('talvimenu'), window.document.getElementById('talvibar'));
		huollot=new Menu(window.document.getElementById('huollotmenu'), window.document.getElementById('huollotbar'));
	}
	menus[0]=pyorat;
	menus[1]=osat;
	menus[2]=talvi;
	menus[3]=huollot;
	
	setHandlers();

	window.document.onmousedown = function (e){
		source=(e)?((o)?e.target:e.target.parentNode):window.event.srcElement;
		if (source){
			for (var i=0; i<menuItems.length; i++){	
				if (menuItems[i]==source){
					return true;
				}
			}
			for (var i=0; i<menus.length; i++){
				if (menus[i].htmlTitleObj==source){
					return true;
				}
			}
		}
		MD=false;
		suljeKaikki();
		return true;
	}
	window.document.onselectstart=function(){
		if (OT)	return false;
		else return true;
	}
}

function suljeKaikki(){
	for (var i=0; i<menus.length; i++){
		menus[i].sulje();
	}
	auki=false;
}

function Menu (menuObj, menuTitleObj){
	this.auki=false;
	this.htmlObj=menuObj;	
	this.htmlTitleObj=menuTitleObj;
	this.htmlObj.faija=this;
	this.htmlTitleObj.faija=this;
	this.avaa=function (){
		suljeKaikki();
		this.htmlTitleObj.style.color=mbarOpenColor;
		this.htmlObj.style.visibility='visible';
		auki=true;
		this.auki=true;
	}
	this.sulje=function (){
		this.htmlTitleObj.style.color=mbarColor;
		this.htmlObj.style.visibility='hidden';
		this.auki=false;
	}

	this.htmlTitleObj.onmousedown=function(e){
		if (this.faija.auki){
			this.faija.sulje();
			auki=false;
		}
		else {
			this.faija.avaa();
		}
		if (e) e.stopPropagation();
		else window.event.cancelBubble=true;
		return false;
	}
	this.htmlTitleObj.onmouseover=function(){
		OT=true;
		if (!(auki)){
			this.style.color=mbarOTColor;
		}
		else if (!(this.faija.auki)){
			this.faija.avaa();
		}
		return false;
	}
	this.htmlTitleObj.onmouseout=function(){
		OT=false;
		if (!(this.faija.auki)){
			this.style.color=mbarColor;
		}
		return false;
	}
}

function setHandlers(){
	//var skip=(window.document.all)?1:2; //Hyppää olemattomien textien yli <tr>:ien sisällä Netscapessa
	for (var i=0; i<TBODYids.length; i++){
		var tbody=(window.document.all)?window.document.all(TBODYids[i]):window.document.getElementById(TBODYids[i]);
		//j=(skip==1)?0:1; //Eka lapsi Netscapessa täynnä paskaa
		var j=0;
		while (j<tbody.childNodes.length){
			var k=0;
			if (tbody.childNodes[j].nodeName == 'TR'){
				var linkTD=tbody.childNodes[j].firstChild;
				linkTD.link=makeURL(linkTD);
				linkTD.onmouseover=function(){
					OT=true;
					this.style.backgroundColor=(MD)?menuBgMDownColor:menuBgOTColor;
					this.style.color='white';
					window.status=this.link;
					return false;
				}
				linkTD.onmouseout=function(){
					OT=false;
					this.style.backgroundColor=menuBgColor;
					this.style.color='black';
					window.status='';
				}
				linkTD.onmousedown=function(e){
					this.style.backgroundColor=menuBgMDownColor;
					MD=true;
					if (e) e.stopPropagation();
					else window.event.cancelBubble=true;
					return false;
				}
				linkTD.onmouseup=function(){
					MD=false;
					window.location.href=this.link;
					suljeKaikki();
				}
				
				linkTD.style.backgroundColor=menuBgColor;
				linkTD.style.padding='3px';
				menuItems[k]=linkTD;
				k++;
			}
			j++;
		}
	}
}

function makeURL(obj){
	var url=(obj.title)?obj.title:obj.attributes.getNamedItem('title');
	return url;
}
