/****************************************************************************
* naviControl.js
* erwartet folgende Basis-Funktionen / Arrays (vgl, scripts.js):
*		getLayer()
*		getImage()
*		preLoad()
*		aImgs
* JavaScript object: preloader, mouse capture, object constructor
* author: oh@design-aspekt.com | date: 2004-08-03
*
* produced by design aspekt
* http://design-aspekt.com
***************************************************************************/

//______________________________________________________________________
// NaviControl
var naviOpen = false;	// speichert, ob gegenwärtig Menu geöffnet ist
var currentNavi = null;	// speichert aktives Menu
var delayTimer;

function captureEvent(layerID) {// Cross-Browser Event-Capturing für MOUSEMOVE
	if(document.layers) {	// NS4
		window.document.layers[layerID].captureEvents(Event.MOUSEOUT);
		window.document.layers[layerID].onmouseout = mouseOut;			
	}
	else if(document.all) { document.all[layerID].onmouseout = mouseOut; }	// IE
	else if(document.getElementById) {	// W3C
		document.getElementById(layerID).addEventListener("mouseout", mouseOut, true);
	}
}

// Aktion bei Event MOUSEMOVE
function mouseOut(e) {
	if(naviOpen == true) { hide(100); }	
}

function hide(mls) { delayTimer = setTimeout("currentNavi.off()",mls); }

function checkTimeout() {
	if(delayTimer) { clearTimeout(delayTimer); }
}

function hilight(tdId,mode) {
	if(mode == "over") { hexColor = '#CCDDEC'; }
	if(mode == "out") { hexColor = '#FFFFFF'; }	
	if(document.getElementById && document.getElementById(tdId)) { document.getElementById(tdId).style.backgroundColor = hexColor; }
	else if(document.all) { document.all[tdId].style.backgroundColor = hexColor; }
}

// Objekt-Konstruktor für Navi-Controller: erwartet Layer- und Bildnamen sowie Layerkoordinaten und -maße
function NaviControl() {
	this.layerID = arguments[0];
	this.imgName = arguments[1];
	this.imgOff	= arguments[2];
	this.imgOn = arguments[3];
	this.layerLeft = arguments[4];
	this.layerTop = arguments[5];
	if(arguments[6] != "") { this.layerWidth= arguments[6]; }
	if(arguments[7] != "") { this.layerHeight = arguments[7]; }
	
	if(this.imgOff != '' && this.imgOn != '') { preLoad(this.imgName,this.imgOff,this.imgOn); }
	else if(this.imgOff != '' && this.imgOn == '') { preLoad(this.imgName,this.imgOff,this.imgOff); }
	
	this.on = function() {	// Methode zur Menu-Aktivierung
		getLayer(this.layerID).visibility = "visible";
		//getImage(this.imgName).src = aImgs[this.imgName]["on"].src;	// nur bei Bildern
		naviOpen = true;
		currentNavi = this;
	}
	this.off = function() {	// Methode zur Menu-Deaktivierung
		getLayer(this.layerID).visibility = "hidden";
		//getImage(this.imgName).src = aImgs[this.imgName]["off"].src;	// nur bei Bildern
		naviOpen = false;
		currentNavi = null;
	}
	
	captureEvent(this.layerID);
}