var NN4 = !!document.layers;			// Netscape Navigator 4
var W3C = !!document.getElementById;	// Nyere browsere
var IE4 = !!document.all;				// Internet Explorer 4+

var hovedmenu;	// Nedenstående objekter og funktioner er afhængige af dennes eksistens

// Objektdefinition af en hovedmenu. Kaldes fra body.onload med navne (id)
// for alle undermenuer som paramtre

function Menusystem(lagnavne) {
// Egenskaber
	this.mlag = new Object();
// Metoder
	function lagMedId(id) {
		return this.mlag[id];
	}
	function visLag(id) {
		var i;
		with (this) {
			for (i in mlag)
				mlag[i].skjul();
			mlag[id].vis();
		}
	}
	function skjulLag(id) {
		this.mlag[id].onmouseout();
	}
	this.lagMedId = lagMedId;
	this.visLag = visLag;
	this.skjulLag = skjulLag;
// Konstruktør
	var i, id;
	for (i = 0; i < lagnavne.length; i++) {
		id = lagnavne[i];
		this.mlag[id] = opretLag(id);
	}
}

// Dette er ikke en objektdefinition, men i stedet en funktion som tilføjer
// nyttige egenskaber og metoder til et eksisterende objekt i DOM. Objektet
// formodes at være en DIV som indeholder en undermenu.

function opretLag(id) {
	var obj = MM_findObj(id);
// Tilføjelse af egenskaber til obj
	obj.stil = NN4 ? obj : obj.style;
	obj.timeoutCmd = 'hovedmenu.lagMedId("' + id + '").skjul()';
	obj.skjuler = false;
// Tilføjelse af metoder til obj
	function bredde() { return NN4 ? this.clip.width : this.offsetWidth; }
	function hoejde() { return NN4 ? this.clip.height : this.offsetHeight; }
	function vis() {
		with (this) {
			if (skjuler) {
				clearTimeout(skjuler);
				skjuler = false;
			}
			stil.visibility = "visible";
		}
	}
	function skjul() { this.stil.visibility = "hidden"; }
	function onmouseout() {
		if (!this.skjuler)
			this.skjuler = setTimeout(this.timeoutCmd, 300);
	}
	obj.bredde = bredde;
	obj.hoejde = hoejde;
	obj.vis = vis;
	obj.skjul = skjul;
	obj.onmouseout = onmouseout;
	obj.onmouseover = vis;

	return obj;
}

// Nedenstående funktion (eksempel) skal defineres på alle sider, som skal
// have en menu. Evt. i den aktuelle template.

function opretMenu() {
	hovedmenu = new Menusystem(arguments);
}

function visLag(lagnavn) {
	if (hovedmenu)
		hovedmenu.visLag(lagnavn);
}

function skjulLag(lagnavn) {
	if (hovedmenu)
		hovedmenu.skjulLag(lagnavn);
}
