/****************************************************************************
* naviControl.js
* JavaScript object: preloader, mouse capture, object constructor
* author: oh@design-aspekt.com | date: 2004-01-19
*
* produced by design aspekt
* http://design-aspekt.com
***************************************************************************/
var naviImgs = new Array();
var naviOpen = false;	// speichert, ob gegenwärtig Menu geöffnet ist
var currentNavi = null;	// speichert aktives Menu

function captureEvent() {// Cross-Browser Event-Capturing für MOUSEMOVE
	if(document.layers) {	// NS4
		window.captureEvents(Event.MOUSEMOVE);
		window.onmousemove = mouseMove;			
	}
	else if(document.all) { document.onmousemove = mouseMove; }	// IE
	else if(document.getElementById) { document.addEventListener("mousemove", mouseMove, true); }	// W3C
}

// Aktion bei Event MOUSEMOVE
function mouseMove(e) {
	if(naviOpen == true) {
		if(getMouseX(e)>(currentNavi.layerLeft+currentNavi.layerWidth) || getMouseX(e)<currentNavi.layerLeft) {
			currentNavi.off();
		}
	}
}

// Cross-Browser Basis-Funktionenen für Bild- / Layer-Aktionen sowie Erfassung der Mausposition
function getImage(bildName,layerID) { return (document.all || document.getElementById ? window.document.images[bildName] : layerID ? document.layers[layerID].document.images[bildName] : window.document.images[bildName]); }
function getLayer(layerID) { return (document.getElementById ? document.getElementById(layerID).style : document.all ? document.all[layerID].style : document.layers[layerID]); }
function getMouseX(e) { return (document.layers ? e.pageX : document.all ? window.event.clientX : document.getElementById ? e.pageX : false); }
function getMouseY(e) { return (document.layers ? e.pageY : document.all ? window.event.clientY : document.getElementById ? e.pageY : false); }

// Array für Navi-Bilder inkl. Preloader
function preLoad(imgName,srcOff,srcOn) {
	naviImgs[imgName] = new Array();
	naviImgs[imgName]["off"] = new Image();
	naviImgs[imgName]["off"].src = srcOff;
	naviImgs[imgName]["on"] = new Image();
	naviImgs[imgName]["on"].src = srcOn;
}

// 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];
	this.layerWidth	= arguments[6];
	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,"navi").src = naviImgs[this.imgName]["on"].src;
		naviOpen = true;
		currentNavi = this;
	}
	this.off = function() {	// Methode zur Menu-Deaktivierung
		getLayer(this.layerID).visibility = "hidden";
		getImage(this.imgName,"navi").src = naviImgs[this.imgName]["off"].src;
		naviOpen = false;
		currentNavi = null;
	}
}