// ***************************************************************
// 2000/2001 by Markus Inger
// ***************************************************************

// ----------------------------------------
// Funktionen zur Identifizierung der jeweiligen Browser
// ----------------------------------------
function isOpera(){
	var s = navigator.userAgent;
	return (s.lastIndexOf("Opera") > -1);
}

function isMozilla(){
	var s = navigator.userAgent;
	return (s.lastIndexOf("Gecko") > -1 );
}

function isNS4(){
	return (document.layers);
}

function isMSIE5(){
	var s = navigator.userAgent;
	return ((s.lastIndexOf("MSIE 5") > -1 || s.lastIndexOf("MSIE 6") > -1) && s.lastIndexOf("Opera") == -1);
}

// ----------------------------------------
// Handler zur Abfrage der Mausposition
// ----------------------------------------

var mouseXpos = 0;
var mouseYpos = 0;

function GetX(e){
	/* if (isOpera()) { return e.x + pageXOffset; } */  
	if (document.layers) { return e.pageX; }
	if (document.all) { return event.clientX + document.body.scrollLeft; }
	if (document.getElementById) { return e.clientX; }
}

function GetY(e){
	/* if (isOpera()) { return e.y+pageYOffset; } */
	if (document.layers) { return e.pageY; }
	if (document.all) { return event.clientY + document.body.scrollTop; }
	if (document.getElementById) { return e.clientY; }
}

// Abfrage der Mausposition
function movehandler(e) {
	mouseXpos = GetX(e);
	mouseYpos = GetY(e);
	handler();
}

// Dummy Handler der ueberschrieben werden kann
function handler() {
}

// Eventhandler f&uuml;r Mousemove starten
function startMouseTracking() {
	if (document.captureEvents) {
		document.captureEvents(Event.MOUSEMOVE);
	}
	//document.onmousemove = movehandler;
	document.onmouseover = movehandler;//(pawel)
}



// ----------------------------------------
// layerobject anhand des names suchen
// ----------------------------------------
function findLayer(name, doc) {
	var i, layer;
	var length = doc.layers.length;
	for (i = 0; i < 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;
}

// ----------------------------------------
// Layer Anzeigen
// ----------------------------------------
var menushowed=false;
function myshowLayer(id) {
	
	if (document.layers) {
		id = findLayer(id, document);
		id.visibility = "show";
	} else if (document.all) {
		document.all[''+id+''].style.visibility = "visible";
	} else if (document.getElementById) {
		document.getElementById(''+id+'').style.visibility = "visible";
	}
	menushowed=true;		
	//alert(menushowed);		
}

// ----------------------------------------
// Layer Verbergen
// ----------------------------------------
function myhideLayer(id) {
	if(menushowed) {
		if (document.layers) {
			id = findLayer(id, document);
			id.visibility = "hide";
		} else if (document.all) {
			document.all[''+id+''].style.visibility = "hidden";
		} else if (document.getElementById) {
			document.getElementById(''+id+'').style.visibility = "hidden";
		}
	}	
	menushowed=false;
	//	alert(menushowed);	
}

function delayedClose(id) {
		setTimeout( function () {myhideLayer(id)}, 200 );
}
// ----------------------------------------
// Layer positionieren
// ----------------------------------------
function myposLayer(id,lax,lay) {
	if (lax){
		if (document.layers) { document.layers[''+id+''].left = lax }
		else if (document.all) { document.all[''+id+''].style.left = lax }
		else if (document.getElementById) { document.getElementById(''+id+'').style.left = lax + "px" }
	}
	if (lay){
		if (document.layers) { document.layers[''+id+''].top = lay }
		else if (document.all) { document.all[''+id+''].style.top = lay }
		else if (document.getElementById) { document.getElementById(''+id+'').style.top = lay + "px"}
	}
}

// ----------------------------------------
// Layer verschieben
// ----------------------------------------
function mymoveLayer(id,lax,lay) {
	if (lax){
		if (document.layers) { document.layers[''+id+''].left += lax }
		else if (document.all) { document.all[''+id+''].style.left = mygetLayerXpos(id) + lax }
		else if (document.getElementById) { document.getElementById(''+id+'').style.left = mygetLayerXpos(id) + lax}
	}
	if (lay){
		if (document.layers) { document.layers[''+id+''].top += lay }
		else if (document.all) { document.all[''+id+''].style.top = mygetLayerYpos(id) + lay }
		else if (document.getElementById) { document.getElementById(''+id+'').style.top =  mygetLayerYpos(id) + lay}
	}
}

// ----------------------------------------
// X-Koordinate eines Layers lesen
// ----------------------------------------
function mygetLayerXpos(id) {
	if (document.layers) { 
		pos = document.layers[''+id+''].left;
	} else if (document.all) { 
		pos = document.all[''+id+''].style.left;
		pos = pos.substring(0,(pos.length-2));
	} else if (document.getElementById) {
		
		pos = document.getElementById(''+id+'').style.left;
		pos = pos.toString();
		pxpos = pos.indexOf("px");
		if (pxpos != -1) {
			pos = pos.substring(0,pxpos);
		}
	}
	pos = pos * 1;
	return pos;
	
}

// ----------------------------------------
// Y-Koordinate eines Layers lesen
// ----------------------------------------
function mygetLayerYpos(id) {
	if (document.layers) { 
		pos = document.layers[''+id+''].top;
	} else if (document.all) { 
		pos = document.all[''+id+''].style.top
		pos = pos.substring(0,(pos.length-2));
	} else if (document.getElementById) {
		pos = document.getElementById(''+id+'').style.top 
		pos = pos.toString();
		pxpos = pos.indexOf("px");
		if (pxpos != -1) {
			pos = pos.substring(0,pxpos);
		}
	}
	pos = pos * 1; 
	return pos;
}


// ----------------------------------------
// Layer an Bild positionieren und anzeigen
// ----------------------------------------
function myshowPosLayer(id,img,xoffset,yoffset) {
	if (!xoffset) { xoffset = 0; }
	if (!yoffset) { yoffset = 0; }
	x = mygetImagePageLeft(getImage(img)) + xoffset + 1;
	y = mygetImagePageTop(getImage(img)) + yoffset + 1;
	myposLayer(id,x,y);
	myshowLayer(id);
}

// ----------------------------------------
// Layerbreite einstellen
// ----------------------------------------
function mysetwidth(id,mywidth) {
	if (document.layers) {
		id = findLayer(id, document);
		id.document.width = mywidth;
	} else if (document.all) {
		document.all[''+id+''].style.width = mywidth;
	} else if (document.getElementById) {
		document.getElementById(''+id+'').style.width = mywidth;
	}	
}

// ----------------------------------------
// Layer Inhalt austauschen
// ----------------------------------------
function myContent(id,content) {
	if (content && id){		
		if (document.layers) {
			sprite=document.layers[''+id+''].document;
		  	sprite.open();
		  	sprite.write(content);
		  	sprite.close();
		} else if (document.all) {
			document.all[''+id+''].innerHTML = content;	
		} else if (document.getElementById) {
			rng = document.createRange();
			el = document.getElementById(''+id+'');
			rng.setStartBefore(el);
			htmlFrag = rng.createContextualFragment(content);
			while(el.hasChildNodes()) {
				el.removeChild(el.lastChild);
			}
			el.appendChild(htmlFrag);
				
		}	
	}
}

// ----------------------------------------
// Sichtbarkeit eines Layers auslesen
// ----------------------------------------
function mygetVisibility(id) {
	if (document.layers) { return document.layers[''+id+''].visibility; }
	else if (document.all) { return document.all[''+id+''].style.visibility; }
	else if (document.getElementById) { return document.getElementById(''+id+'').style.visibility; }
}

// ----------------------------------------
// image suchen (NS4)
// ----------------------------------------
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;
}

// ----------------------------------------
// Image Obj zur&uuml;ckgeben
// ----------------------------------------
function getImage(name) {
	if (document.layers) {
		return findImage(name, document);
	} else if (document.all) {
		return eval('document.all.' + name);
	} else if (document.getElementById) {
		return document.getElementById(''+name+'');
	}
	return null;
}

// ----------------------------------------
// image Y Cords (objekt angeben)
// ----------------------------------------
function mygetImagePageTop(img) {
	var y, obj;
	if (document.layers) {
    	if (img.container != null) {
			return img.container.pageY + img.y;
		} else {
			return img.y;
		}
	} else if (document.all) {
		y = 0;
		obj = img;
		while (obj.offsetParent != null) {
			y += obj.offsetTop;
			obj = obj.offsetParent;
		}
		y += obj.offsetTop;
		return y;
	} else if (document.getElementById) {
		obj = img;
		var pos = obj.offsetTop;
		while (obj.offsetParent != null) {
			obj = obj.offsetParent;
			pos += obj.offsetTop;
			if (obj.tagName == 'BODY') {
				break;
			}
		} 
		return pos;
	}
	return -1;
}

// ----------------------------------------
// image X Cords (objekt angeben)
// ----------------------------------------
function mygetImagePageLeft(img) {
	var x, obj;
	if (document.layers) {
		if (img.container != null) {
			return img.container.pageX + img.x;
		} else {
			return img.x;
		}
	} else if (document.all) {
		x = 0;
		obj = img;
		while (obj.offsetParent != null) {
			x += obj.offsetLeft;
			obj = obj.offsetParent;
		}
		x += obj.offsetLeft;
		return x;
	} else if (document.getElementById) {
		obj = img;
		var pos = obj.offsetLeft;
		while (obj.offsetParent != null) {
			obj = obj.offsetParent;
			pos += obj.offsetLeft;
			if (obj.tagName == 'BODY') {
				break;
			}
		} 
		return pos;
	}
	return -1;
}

// ----------------------------------------
// htmlblock einblenden / ausblenden (nur ie4+ und mozilla) 
// ----------------------------------------
function displayToggle(id) {
	if (document.layers) {
		// not supported :((
	} else if (document.all) {
		if ( document.all[''+id+''].style.display != "none" ) {
			document.all[''+id+''].style.display = "none";
		} else {
			document.all[''+id+''].style.display = "block";
		}
	} else if (document.getElementById) {
		if ( document.getElementById(''+id+'').style.display != "none" ) {
			document.getElementById(''+id+'').style.display = "none";
		} else {
			document.getElementById(''+id+'').style.display = "block";
		}
	}				
}

// ----------------------------------------
// testen ob object vorhanden
// ----------------------------------------
function isObject(id) {
	if (document.layers) {
		id = findLayer(id, document);
	} else if (document.all) {
		id = document.all[''+id+''];		
	} else if (document.getElementById) {
		id = document.getElementById(''+id+'');
	}
	if ( !id ) {
		return false;
	} else {
		return true;
	}
}

// ----------------------------------------
// reload handler (noch nicht fertig)
// ----------------------------------------
function reload(){
	location.reload(0);
	//history.go(0);
	//window.location.reload();
	//location.replace(location.href);
}
function moveYbySlicePos (y, img) {
	if(!document.layers) {
		var onWindows = navigator.platform ? navigator.platform == "Win32" : false;
		var macIE45 = document.all && !onWindows && getExplorerVersion() == 4.5;
		var par = img;
		var lastOffset = 0;
		while(par){
			if( par.topMargin && !onWindows ) y += parseInt(par.topMargin);
			if( (par.offsetTop != lastOffset) && par.offsetTop ) y += parseInt(par.offsetTop);
			if( par.offsetTop != 0 ) lastOffset = par.offsetTop;
			par = macIE45 ? par.parentElement : par.offsetParent;
		}		
	} else if (img.y >= 0) y += img.y;
	return y;
}
function moveXbySlicePos (x, img) { 
	if (!document.layers) {
		var onWindows = navigator.platform ? navigator.platform == "Win32" : false;
		var macIE45 = document.all && !onWindows && getExplorerVersion() == 4.5;
		var par = img;
		var lastOffset = 0;
		while(par){
			if( par.leftMargin && ! onWindows ) x += parseInt(par.leftMargin);
			if( (par.offsetLeft != lastOffset) && par.offsetLeft ) x += parseInt(par.offsetLeft);
			if( par.offsetLeft != 0 ) lastOffset = par.offsetLeft;
			par = macIE45 ? par.parentElement : par.offsetParent;
		}
	} else if (img.x) x += img.x;
	return x;
}
function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

