/*

   DynAPI Distribution

   Browser Class



   The DynAPI Distribution is distributed under the terms of the GNU LGPL license.

*/

function Browser() {
	var b=navigator.appName;
	if (b.indexOf('Netscape')!=-1) this.b="ns";
	else if ((b=="Opera") || (navigator.userAgent.indexOf("Opera")>0)) this.b = "opera";
	else if (b=="Microsoft Internet Explorer") this.b="ie";
	if (!b) {this.b="invalid"; this.invalid=true;}
	this.version=navigator.appVersion;
	this.v=parseInt(this.version);
	this.ns=(this.b=="ns" && this.v>=4);
	this.ns4=(this.b=="ns" && this.v==4);
	this.ns6=(this.b=="ns" && this.v==5);
	this.ie=(this.b=="ie" && this.v>=4);
	this.ie4=(this.version.indexOf('MSIE 4')>0);
	this.ie5=(this.version.indexOf('MSIE 5')>0);
	this.ie55=(this.version.indexOf('MSIE 5.5')>0);
	this.ie6=(this.version.indexOf('MSIE 6.0')>0);
	this.opera=(this.b=="opera");
	this.dom=(document.createElement && document.appendChild && document.getElementsByTagName)?true:false;
	this.def=(this.ie||this.dom); // most used browsers, for faster if loops
	var ua=navigator.userAgent.toLowerCase();
	if (ua.indexOf("win")>-1) this.platform="win32";
	else if (ua.indexOf("mac")>-1) this.platform="mac";
	else this.platform="other";
}

is=new Browser();



var currentDMenu = null;
var dmTimer = 0;
var dmTimeOut = 300;
var dmReady = false;


function DMenuInit ()
{
	if (is.ns4) return;
	var vaxis=78;
	if (is.ie){vaxis=78;}

	lProdukte = getLayer ('MenuLayer_Admin');
	moveLayerTo (lProdukte, getImagePageLeft(getImage('picAdmin'))-12, vaxis);

	lMyData = getLayer ('MenuLayer_MyData');
	moveLayerTo (lMyData, getImagePageLeft(getImage('picMyData'))-12, vaxis);
	
	lLinks = getLayer ('MenuLayer_Links');
	moveLayerTo (lLinks, getImagePageLeft(getImage('picLinks'))-12, vaxis);

	lGuild = getLayer ('MenuLayer_Guild');
	moveLayerTo (lGuild, getImagePageLeft(getImage('picGuild'))-12, vaxis);
	
	lMisc = getLayer ('MenuLayer_Misc');
	moveLayerTo (lMisc, getImagePageLeft(getImage('picMisc'))-12, vaxis);

	lFAQ = getLayer ('MenuLayer_FAQ');
	moveLayerTo (lFAQ, getImagePageLeft(getImage('picFAQ'))-12, vaxis);

	lStrat = getLayer ('MenuLayer_Strat');
	moveLayerTo (lStrat, getImagePageLeft(getImage('picStrat'))-12, vaxis);

	window.tmDMenu = setInterval ('DMenuTimer()', 100);
}



function DMenu (dm) {
	if (is.ns4 || (dmReady != true)) return;
	if (currentDMenu != null){
		hideLayer (currentDMenu);
		DMenuTrace (dm);
	}else{
		DMenuTrace (dm);
	};
}

function DMenuTrace (dm){
	if (is.ns4 || (dmReady != true)) return;
	currentDMenu = getLayer (dm);
	showLayer (currentDMenu);
	dmTimer = dmTimeOut;
}

function DMenuTimer (){
	if (is.ns4 || (dmReady != true)) return;
	if (dmTimer > 0){
		dmTimer -= 100;
	}
	else
	{
		if (currentDMenu != null) hideLayer (currentDMenu);
		currentDMenu = null;
	};
}

function dmTimerOver (){
	if (is.ns4 || (dmReady != true)) return;
	dmTimer = 10000000;
}

function dmTimerOut (){
	if (is.ns4 || (dmReady != true)) return;
	dmTimer = dmTimeOut;
}

function getLayer(name) {
	if (is.ns4)
		return findLayer(name, document);
	if (is.ie && !is.dom)
		return eval('document.all.' + name);
	if (is.dom)
		return document.getElementById(name);
	return null;
}

function findLayer(name, doc) {
	var i, layer;
	for (i = 0; i < doc.layers.length; i++) {
		layer = doc.layers[i];
		if (layer.name == name)
			return layer;
		if (layer.document.layers.length > 0)
			if ((layer = findLayer(name, layer.document)) != null)
				return layer;
	}
	return null;
}

//--------------------------------------------------

function hideLayer(layer) {
	if (is.ns4){
		layer.visibility = "hide"
	}else{
		layer.style.visibility = "hidden"
	};
}

function showLayer(layer) {
	if (is.ns4){
		layer.visibility = "show"
	}else{
		layer.style.visibility = "visible"
	};
}

function getVisibility(layer) {
	if (is.ns4) {
		if (layer.visibility == "show")
			return "visible";
		if (layer.visibility == "hide")
			return "hidden";
		return layer.visibility;
	}else{
		return layer.style.visibility
	};
	return "";
}

//--------------------------------------------------

function moveLayerTo(layer, x, y) {
	if (is.ns4)
	{
		layer.moveTo(x, y);
	}
	else
	{
		layer.style.left = x;
		layer.style.top  = y
	};
}

//--------------------------------------------------

function getImage(name) {
	if (is.ns4){
		return findImage(name, document)
	};
	if (is.ie && !is.dom){
		return eval('document.all.' + name)
	};

	if (is.dom){
		return document.getElementById(name);
	}
	return null;
}



function findImage(name, doc) {
	var i, img;

	for (i = 0; i < doc.images.length; i++)
		if (doc.images[i].name == name)
			return doc.images[i];
	for (i = 0; i < doc.layers.length; i++)
		if ((img = findImage(name, doc.layers[i].document)) != null) {
			img.container = doc.layers[i];
			return img;
		}
	return null;
}

function getImagePageLeft(img) {
	var x, obj;

	if (is.ns4) {
		if (img.container != null)
			return img.container.pageX + img.x;
		else
			return img.x;
	}else{
		x = 0;
		obj = img;
		while (obj.offsetParent != null) {
			x += obj.offsetLeft;
			obj = obj.offsetParent;
		}
		x += obj.offsetLeft;
		return x;
	};
	return -1;
}

function getImagePageTop(img) {
	var y, obj;
	if (is.ns4) {
		if (img.container != null)
			return img.container.pageY + img.y;
		else
			return img.y;
	}else{
		y = 0;
		obj = img;
		while (obj.offsetParent != null) {
			y += obj.offsetTop;
			obj = obj.offsetParent;
		}
		y += obj.offsetTop;
		return y;
	};
	return -1;
}

function showZoom (path, w, h)
 {
	params = "width=" + (w+32) + ",height=" + (h+32) + ",menubar=no,location=no,directories=no,toolbar=no";
	window.open (path, "", params);
 }
 
function StartOther ()
	{
			return true;
	}

function f_bg (e, n)
 {
 if (is.ie) f_bg1(eval(e), n);
 }

function f_bg1 (e, n){
 switch (n){
	case 'white': {
		e.style.backgroundColor = 'white';
		e.style.borderTop = '1px solid #999999';
		e.style.borderBottom = '1px solid #999999';
		e.backgroundColor = 'white';
		e.borderTop = '1px solid #999999';
		e.borderBottom = '1px solid #999999';
		break;
	}
	case '#F0F0F0': {
		e.style.backgroundColor = '#F0F0F0';
		e.style.borderTop = '1px solid #F0F0F0';
		e.style.borderBottom = '1px solid #F0F0F0';
		e.backgroundColor = '#F0F0F0';
		e.borderTop = '1px solid #F0F0F0';
		e.borderBottom = '1px solid #F0F0F0';
		break;
	}
	case 'over': {
		e.style.backgroundColor = '#DCDCDC';
		e.style.borderTop = '1px solid #999999';
		e.style.borderBottom = '1px solid #999999';
		e.backgroundColor = '#DCDCDC';
		e.borderTop = '1px solid #999999';
		e.borderBottom = '1px solid #999999';
		break;
	 }
  }
 }


