var isFixed		= false;
var isVisible   = false;
var clickPoint	= new Coord();
var mapCanvas;
var zoomCanvas;
var currentX;
var currentY;
var currentH = 0;

function showTooltip(msg,bak)
{
    if(isFixed) return; //true, if zoomWidnow is visible
    if(isVisible) return;
    isVisible = true;
    var mdtl0;
	//alert(msg.locClass);
    if(msg.locClass == -1)mtdl0 = "expired";
	else mtdl0 = msg.m0;
	//alert(mtdl0);

    var content = "<TABLE WIDTH=200 CELLPADDING=3 CELLSPACING=0 STYLE='font-size:12px;BORDER: black 1px solid'" +
                  "BGCOLOR=" + bak + "><TR><TD ALIGN=left bgcolor=#ececec><FONT COLOR=black FACE=Verdana>" + mtdl0 +
                  " " + msg.m1 + " " + msg.m2 +"</FONT></TD></TR>" + 
                  "</TABLE>";


	if(currentY > 222)
    {
        if(ie4)
        {
            if(window.opera)
            {
                skn.top = currentY - (currentH + Yoffset + 50);
            }
            else
            {
		        skn.top = currentY - (currentH + Yoffset);
		    }
		}
		else
		{
		    skn.top = currentY - (currentH + Yoffset + 50);
		}
		//alert(skn.top);	
    }
    else
	{
		skn.top = currentY + Yoffset;
	}
    //if(ns4){skn.document.write(content);skn.document.close();skn.visibility="visible"}
    if(ie4)
    {
		document.all("dek").innerHTML=content;
		skn.display='';
	}
	else
	{
	    document.getElementById("dek").innerHTML=content;
	    skn.display='';
	}
}

function adjustTooltip()
{
	if(ie4)
	{		 
	    currentH = document.all("dek").offsetHeight;
	}
	else
	{
	    currentH = document.getElementById("dek").offsetHeight;
	}
	if(currentY > 222)
    {
		skn.top = currentY - (currentH + Yoffset);
    }
    else
	{
		skn.top = currentY + Yoffset;
	}
}

function shutdownTooltip()
{
    if(ns4)             skn.visibility	= "hidden";
    else if (ns6||ie4)  skn.display		= "none";
    
    isVisible = false;
}

function goToLocation()
{
    X = window.X;
    i = window.I;
	if(X.indexOf("none") == -1)
	{
		url=
		location.replace(url);
	}
}
//the info object
function M(locclass,arM0,arM1,arM2,arM3,arM4) 
{
	this.locClass		= locclass;
	this.m0				= arM0;
	this.m1				= arM1;
	this.m2				= arM2;
	this.m3				= arM3;
	this.m4				= arM4;
	this.AllText		= arM0 + "\n" + arM1 + " " + arM2 + " " + arM3 + " " + arM4;
}

function getLayerPropertiesByImage(img)
{
	wi = 594;
	he = 401;	

	if (document.layers)
		return new Canvas(img.x, img.y, wi, he);
	else
	{
		var canvas = new Canvas(0, 0, wi, he);
		while(img)
		{
			//alert(img.offsetLeft+' ---- '+img.offsetTop);
			canvas.x += img.offsetLeft;
			canvas.y += img.offsetTop;
			img = img.offsetParent;
		}
		canvas.x = 10;
		//canvas.y = 10+11;
		canvas.y = 10;
		return canvas;
   }
}


function getLayerPropertiesByImageHome(img)
{
	wi = 456;
	he = 306;	

	if (document.layers)
		return new Canvas(img.x, img.y, wi, he);
	else
	{
		var canvas = new Canvas(0, 0, wi, he);
		while(img)
		{
			//alert(img.offsetLeft+' ---- '+img.offsetTop);
			canvas.x += img.offsetLeft;
			canvas.y += img.offsetTop;
			img = img.offsetParent;
		}
		canvas.x = 0;
		canvas.y = 0;
		return canvas;
   }
}


//place the layer over the map
function setCanvas(/*in: LayerReferenz */ objLayer,/*in: Canvas */ canvas) 
{
    if(document.layers)
    {
		objLayer.top			= canvas.y;
		objLayer.left			= canvas.x;
		objLayer.clip.width		= canvas.width;
		objLayer.clip.height	= canvas.height;
    } 
    else if(window.opera)
    {
		objLayer.style.top		= canvas.y;
		objLayer.style.left		= canvas.x;
		objLayer.style.height	= canvas.height;
		objLayer.style.width	= canvas.width;

    }
    else if(document.all)//IE Layer über der Karte positionieren
    {
		objLayer.style.pixelTop = canvas.y;
		objLayer.style.pixelLeft= canvas.x;
		objLayer.style.height	= canvas.height;
		objLayer.style.width	= canvas.width;
    }
    else if(document.getElementById)
    {
		objLayer.style.top		= canvas.y + 'px'; 
		objLayer.style.left		= canvas.x + 'px';
		objLayer.style.height	= canvas.height;
		objLayer.style.width	= canvas.width;
    }    
}
//onmousedown
function setSquare(evt)
{
	e = evt || window.event;
	window.clickPoint = getMouseXY(e);
	setCanvas(objZoomSquare, new Canvas(clickPoint.x, clickPoint.y, 1, 1));
	setVisibility(objZoomSquare, true);
	if(document.layers)
		objZoomSquare.background.src="img/s.gif";
	window.isFixed = true;
}
//onmousemove
function drawSquare(evt)
{
	e = evt || window.event;
	var mouseXY	= getMouseXY(e);
	//skn.left = mouseXY.x + Xoffset; //x-Koordinate für Tooltip-Box
	currentY = mouseXY.y;
	currentX = mouseXY.x;
	if(!isVisible)
	{
		if((currentX + 200 + Xoffset) > 444)
		{
			skn.left = currentX - 200 - Xoffset;
		}
		else
		{
			skn.left = mouseXY.x + Xoffset;
		}
	}
	if(window.isFixed)
	{
		var diffx		= mouseXY.x - window.clickPoint.x;
		var diffy		= mouseXY.y - window.clickPoint.y;
		zoomCanvas		= new Canvas(window.clickPoint.x, window.clickPoint.y);
    
		if((diffx) < 0)
		{
			zoomCanvas.x	= (window.clickPoint.x + diffx);      
		}
		if((diffy) < 0 )
		{
			zoomCanvas.y	= (window.clickPoint.y + diffy );
		}
		zoomCanvas.height	= Math.abs(diffy);
		zoomCanvas.width	= Math.abs(diffx);
		// zoomen nur innerhalb der zulässigen Grenzen 
		if( zoomCanvas.x		< mapCanvas.x || 
			zoomCanvas.y		< mapCanvas.y ||
			mapCanvas.width		< (zoomCanvas.width		+ zoomCanvas.x - mapCanvas.x) || 
			mapCanvas.height	< (zoomCanvas.height	+ zoomCanvas.y - mapCanvas.y)) 
		{
			return;    
		}
		else 
		{
			setCanvas(objZoomSquare, zoomCanvas);
		}
	}
}
//onmouseout
function send()
{
	var x1, y1, x2, y2, x, y;
 
	if(isFixed == true)
	{
		isFixed = false;
   
		if(!zoomCanvas)
		{
			x = window.clickPoint.x-mapCanvas.x;
			y = window.clickPoint.y-mapCanvas.y;
			if(document.all && !window.opera)
			{
				x += document.body.scrollLeft;
				y += document.body.scrollTop;
			}
			setVisibility(objZoomSquare, false);
			return;
		}
		else
		{
			x1 = zoomCanvas.x - mapCanvas.x;
			y1 = zoomCanvas.y - mapCanvas.y;
			x2 = zoomCanvas.x - mapCanvas.x + zoomCanvas.width; 
			y2 = zoomCanvas.y - mapCanvas.y + zoomCanvas.height;
	
			x1 = x1 < 0 ? 0 : x1;
			y1 = y1 < 0 ? 0 : y1;
			x2 = x2 > mapCanvas.width ? mapCanvas.width : x2;
			y2 = y2 > mapCanvas.height ? mapCanvas.height : y2;
			
			dx = x1 > x2 ? x1 - x2 : x2 - x1;
			dy = y1 > y2 ? y1 - y2 : y2 - y1;
			if(dx < 10 || dy < 10)
			{
				setVisibility(objZoomSquare, false);
				//zoomRect(0,0,0,0);
			}
			else
			{
				xa = x1 > x2 ? x2 : x1;
				xb = x1 > x2 ? x1 : x2;

				ya = y1 > y2 ? y1 : y2;
				yb = y1 > y2 ? y2 : y1;
				goMap(xa,ya,xb,yb);
				

			}
		}

		return;
	}
}
//call in the onload event of the body (main-html)
function init(mapName)
{
	mapCanvas				= getLayerPropertiesByImage(document.images[mapName]);
	//alert(mapCanvas);
	window.objContainer		= getLayerRef("poi");
	window.objZoomSquare	= getLayerRef("zoomWindow");

	setCanvas(objContainer, mapCanvas);
	setVisibility(objContainer, true);

	if(document.layers)
	{
		objContainer.captureEvents(Event.MOUSEDOWN)
		document.captureEvents(Event.MOUSEMOVE | Event.MOUSEUP);
	}
	objContainer.onmousedown	= setSquare;
	document.onmousemove		= drawSquare;
	document.onmouseup			= send;
}


function init2(mapName)
{
	mapCanvas				= getLayerPropertiesByImage(document.images[mapName]);
	//alert(mapCanvas);
	window.objContainer		= getLayerRef("poi");
	window.objZoomSquare	= getLayerRef("zoomWindow");

	setCanvas(objContainer, mapCanvas);
	setVisibility(objContainer, true);
	if(document.layers)
	{
		objContainer.captureEvents(Event.MOUSEDOWN)
		document.captureEvents(Event.MOUSEMOVE | Event.MOUSEUP);
	}
	//objContainer.onmousedown	= setSquare;
	document.onmousemove		= drawSquare;
	//document.onmouseup			= send;

}

function init3(mapName)
{
	mapCanvas				= getLayerPropertiesByImageHome(document.images[mapName]);
	window.objContainer		= getLayerRef("poi");
	window.objZoomSquare	= getLayerRef("zoomWindow");
	setCanvas(objContainer, mapCanvas);
	setVisibility(objContainer, true);
	if(document.layers)
	{
		objContainer.captureEvents(Event.MOUSEDOWN)
		document.captureEvents(Event.MOUSEMOVE | Event.MOUSEUP);
	}
	document.onmousemove		= drawSquare;

}


