var layer_aktiv = "";
var myTimeOut=0;

function getLayerRef(id, document) {
	if (!document)
		{ document = window.document; }
		
	if (document.layers) {
		for (var l = 0; l < document.layers.lenght; l++) {
			if (document.layers[l].id == id)
				{ return document.layers[l]; }
			for (var l = 0; l < document.layers.lenght; l++) {
				var result = getLayerRef(id, document.layers[l].document);
				if (result)
					{ return result; }
			}
			return null;
		}
	}
	else if (document.all)
		{ return document.all[id]; }
	else if (document.getElementById)
		{ return document.getElementById(id); }
}

function activeLayer(layerName, top) {
	if(layer_aktiv != layerName) {
		if (layer_aktiv) hideLayer(layer_aktiv);
	}
	showLayer2(layerName, top);
	layer_aktiv = layerName;	
}

function activeHomeLayer(layerName, top) {
	if(layer_aktiv != layerName) {
		if (layer_aktiv) hideLayer(layer_aktiv);
	}
	showLayer(layerName, top);
	layer_aktiv = layerName;	
}


function showLayer(layerName) {
	var objLayer = getLayerRef(layerName);
	
	if (document.layers) {
		eval('document["' + layerName + '"].visibility = "visible"');
	}
	else if (document.all) {
		objLayer.style.visibility = "visible";
	}
	else if (window.opera) {
		objLayer.style.visibility = "visible";
	}
	else if (document.getElementById) {
		objLayer.style.visibility = "visible";
	}
}


function hideLayer(layerName) {
	objLayer = getLayerRef(layerName);
	
	if (document.layers) {
		eval('document["' + layerName + '"].visibility = "hidden"');
	}
	else if (document.all) {
		objLayer.style.visibility = "hidden";
	}
	else if (window.opera) {
		objLayer.style.visibility = "hidden";
	}
	else if (document.getElementById) {
		objLayer.style.visibility = "hidden";
	}
}

function alleaus() {
	if (layer_aktiv != "") {
		hideLayer(layer_aktiv);
		layer_aktiv = "";
	}
}

function init() {
	document.onmouseup = alleaus;
}


/*********************************************************************************************
Beschreibung: Funktionen für das Einblenden der Pulldowns direkt an der Cursor-Position
*********************************************************************************************/
function showLayer2(layerName, top) {
	var objLayer = getLayerRef(layerName);


	if (document.layers) {
		e = event.MOUSEOVER;
		mCoord = getMouseXY(e);
		mCoord.x = 200;

		eval('document["' + layerName + '"].visibility = "visible"');
	     layerName.left = mCoord.x;
	     layerName.top  = mCoord.y-20;
	}
	else if (document.all) { // IE
		e = event.MOUSEOVER;
		mCoord = getMouseXY(e);
		//mCoord.y = 55;
		mCoord.y = top;

		objLayer.style.visibility = "visible";
		objLayer.style.left       = mCoord.x-0;
		objLayer.style.top        = mCoord.y+0;
	}
	else if (window.opera) {
		e = event.MOUSEOVER;
		mCoord = getMouseXY(e);
		mCoord.x = 270;

		objLayer.style.visibility = "visible";
		objLayer.style.left       = mCoord.x;
		objLayer.style.top        = mCoord.y-20;
	}
}

function Coord(x, y) {
  this.x = (!x)?0:x;
  this.y = (!y)?0:y;
  
  this.toString = objToString;
  this.equals = equalsCoord;
}


function objToString() {
  var ret = "{";
  for(p in this ) {
    if (typeof this[p] == "function" || typeof this[p] == "object") continue;
    if(ret.length > 1)
      ret += ",";
    ret += p + ":" + this[p];
  }
  return ret + "}";
}

function equalsCoord(/*Coord*/ c) {
  return (this.x == c.x && this.y == c.y);
}

function getMouseXY(evt) {
  e = evt || window.event;
  if(!e) return new Coord(200 , 200 );

  if(document.layers) {
    return new Coord(e.pageX, e.pageY);
  }
	else if(window.opera) {
    return new Coord(e.clientX, e.clientY);
  }
	else if(document.all ) {
    return new Coord(e.x + document.body.scrollLeft, e.y + document.body.scrollTop);
  }
	else if(document.getElementById) {
		return new Coord(200 , 200 );
  }
}
