
var NS = typeof(document.layers) != 'undefined';
var IE = typeof(document.all) != 'undefined';
if (navigator.family=='gecko') {
	NS=true;
	IE=false;
}
if (navigator.family=='safari') {
	NS=true;
	IE=false;
}

if (IE) {
	SHOW = "visible";
	HIDE = "hidden";
}
if (NS) {
	SHOW = "show";
	HIDE = "hide";
}
if (navigator.family == 'gecko') {
	SHOW = "visible";
	HIDE = "hidden";
}
if (navigator.family == 'safari') {
	SHOW = "visible";
	HIDE = "hidden";
}



function DH_getLayer(id){
//	var layer = (NS) ? document[id] : document.all[id].style;
	switch(navigator.family) {
		case 'nn4':
			var layer = document[id];
		break;
		case 'ie4':
			if (typeof(document.all[id]) == "object") {
				var layer = document.all[id];
				}
			else
				var layer=void(0);
		break;
		case 'opera':
			if (typeof(document.all[id]) == "object") {
				var layer = document.all[id];
				}
			else
				var layer=void(0);
		break;
		case 'gecko':
			if (typeof(document.getElementById(id)) == "object" && document.getElementById(id) != null) 
				var layer = document.getElementById(id);
			else
				var layer=void(0);
		break;
		case 'safari':
			if (typeof(document.getElementById(id)) == "object" && document.getElementById(id) != null) 
				var layer = document.getElementById(id);
			else
				var layer=void(0);
		break;
	}
	
	if(typeof(layer)=="undefined"){
		return void(0);
	}
	return DH_getLayerDirect(layer)
}


function DH_getLayerDirect(layer) {
	switch(navigator.family) {
		case 'nn4':
			layer.doc = layer.document;
			layer.style = layer;
		break;
		case 'ie4':
			layer.doc = layer.style;
		break;
		case 'gecko':
			layer.doc = layer;
			//layer.offsetWidth; // akt breite (IE und NS behandeln paddings, etc unterschiedl)
		break;
		case 'safari':
			layer.doc = layer;
			//layer.offsetWidth; // akt breite (IE und NS behandeln paddings, etc unterschiedl)
		break;
	}

	if (IE) {
		//layer.doc.write = ie_write;
		//layer.doc.open = ie_open;
		//layer.doc.close = ie_close;
	}
	else {
	}
	switch(navigator.family) {
		case 'nn4':
			layer.posInitialTop = Math.floor(layer.pageY);
			layer.posInitialLeft = Math.floor(layer.pageX);
		break;
		case 'ie4':
			layer.posInitialTop = DHX_offsetTop(layer);
			layer.posInitialLeft = DHX_offsetLeft(layer); //.offsetParent.offsetLeft;
		break;
		case 'opera':
			layer.posInitialTop = DHX_offsetTop(layer);
			layer.posInitialLeft = DHX_offsetLeft(layer); //.offsetParent.offsetLeft;
		break;
		case 'gecko':
			layer.posInitialTop = DHX_offsetTop(layer);
			layer.posInitialLeft = DHX_offsetLeft(layer); //.offsetParent.offsetLeft;
		break;
		case 'safari':
			layer.posInitialTop = DHX_offsetTop(layer);
			layer.posInitialLeft = DHX_offsetLeft(layer); //.offsetParent.offsetLeft;
		break;
	}

	//layer.clipTo = Layer_clipTo;
	layer.getWidth = DHX_Layer_getWidth;
	layer.getHeight = DHX_Layer_getHeight;
	//layer.getLeft = Layer_getLeft;
	//layer.getTop = Layer_getTop;
	layer.getAbsoluteLeft = Layer_getAbsoluteLeft;
	layer.getAbsoluteTop = Layer_getAbsoluteTop;
	//layer.resize = Layer_resize;
	//layer.write = Layer_write;
	//layer.changeImage = Layer_changeImage;
	if (navigator.family=='gecko' || navigator.family=='safari' || IE) {
		layer.moveTo = DHX_Layer_moveTo;
		layer.moveBy = DHX_Layer_moveBy;
	}		
	return layer;
}

function DH_showLayer(id){
     var layer = DH_getLayer(id);
     if(typeof(layer) == "object"){
       layer.style.visibility= SHOW;
     }
}

function DH_hideLayer(id){
     var layer = DH_getLayer(id);
     if(typeof(layer) == "object"){
       layer.style.visibility= HIDE;
     }
}

function DH_showLayer_fast(layer){
     if(layer){
        layer.style.visibility= SHOW;
	 }
}

function DH_hideLayer_fast(layer){
     if(layer){
       layer.style.visibility= HIDE;
     }
}



function DHX_offsetTop(el)
{
  y = el.offsetTop
  for (e = el.offsetParent; e; e = e.offsetParent)
    y += e.offsetTop - e.scrollTop;
  return Math.floor(y)
} 

function DHX_offsetLeft(el)
{
  x = el.offsetLeft
  for (e = el.offsetParent; e; e = e.offsetParent)
    x += e.offsetLeft;
  return Math.floor(x)
} 

function DHX_Layer_moveTo(x, y) {
	this.style.top  = Math.floor(y);   
	this.style.left  = Math.floor(x);   
}

function DHX_Layer_getWidth() {
	var w = (navigator.family == "nn4") ? this.doc.width : this.offsetWidth; //this.doc.scrollWidth;
	return Math.floor(w);
}

function DHX_Layer_getHeight() {
	var h = (navigator.family == "nn4") ? this.doc.height : this.offsetHeight; //this.doc.scrollHeight;
	return Math.floor(h);
}

// activated 22.7.04
function Layer_getAbsoluteTop() {
	var top = (navigator.family == "nn4") ? this.doc.pageY : this.doc.posTop;
	return Math.floor(top);
}
function Layer_getAbsoluteLeft() {
	var left = (navigator.family == "nn4") ? this.doc.pageX : this.doc.posLeft;
	return Math.floor(left);
}
// end activated 22.7.04


function DHX_Layer_moveBy(x, y) {
	this.style.top  = parseInt(this.style.top) + Math.floor(y);   
	this.style.left  = parseInt(this.style.left) + Math.floor(x);   
}
