var karten_move = 1;

function show_message()
{

	if (karten_move == 1) {
		document.getElementById('schloss_fixieren').style.visibility = 'visible';
	} else {
		document.getElementById('schloss_offen').style.visibility = 'visible';
	}

}
function hide_message()
{
	if (karten_move == 1) {
		document.getElementById('schloss_fixieren').style.visibility = 'hidden';
	} else {
		document.getElementById('schloss_offen').style.visibility = 'hidden';
	}
}

function change_karte()
{
	if (karten_move == 1) {

		karten_move = 0;
		document.images['schloss_grafik'].src = 'media/gif/schloss_lock.gif';
		document.getElementById('schloss_fixieren').style.visibility = 'hidden';
		document.getElementById('schloss_offen').style.visibility = 'hidden';

	} else {

		karten_move = 1;
		document.images['schloss_grafik'].src = 'media/gif/schloss_unlock.gif';
		document.getElementById('schloss_fixieren').style.visibility = 'hidden';
		document.getElementById('schloss_offen').style.visibility = 'hidden';

	}
}

function actFloatLayer(Margin, slideTime, layerName, Type, browser)
{

	if (karten_move == 1) {

		switch(browser)
		{
			case (1):
					// IE 4
					find = (Type < 3) ? document.body.clientHeight : document.body.clientWidth;
					current = (Type < 3) ? eval(layerName + ".style.pixelTop") : eval(layerName + ".style.pixelLeft");
					scrollAt = (Type < 3) ? document.body.scrollTop : document.body.scrollLeft;

					if ((window.document.body.scrollTop) > barrierBottom - (document.getElementById('floatbild').offsetHeight + 1) ) {
						document.getElementById(layerName).style.top = (barrierBottom - (document.getElementById('floatbild').offsetHeight + 1)) + "px";
						return;
					}

					if (window.document.body.scrollTop < barrierTop) {
						document.getElementById(layerName).style.top = barrierTop + "px";
				    	return;
					}

					break;

			case (2):
					// Netscape 4
					find = (Type < 3) ? window.innerHeight : window.innerWidth;
					current = (Type < 3) ? eval("document." + layerName + ".top") : eval("document." + layerName + ".left");
					scrollAt = (Type < 3) ? window.pageYOffset : window.pageXOffset;
					break;

			case (3):
					// Firefox / Netscape 6
					find = (Type < 3) ? window.innerHeight : window.innerWidth;
					current = (Type < 3) ? parseInt(eval("document.getElementById('" + layerName + "').style.top")) : parseInt(eval("document.getElementById('" + layerName + "').style.left"));
					scrollAt = (Type < 3) ? window.scrollY : window.scrollX;

				  	if ((window.pageYOffset) > barrierBottom - (document.getElementById('floatbild').offsetHeight + 1) ) {
						document.getElementById(layerName).style.top = (barrierBottom - (document.getElementById('floatbild').offsetHeight + 1)) + "px";
						return;
					}

					if (window.pageYOffset < barrierTop) {
						document.getElementById(layerName).style.top = barrierTop + "px";
				    	return;
					}

					break;
		}


		 switch(Type)
		   {
		      case (1): case (3): //Type : top and left
		         newTarget = scrollAt + Margin;
		         break;
		      case (2): case (4): //Type : bottom and right
		         newTarget = scrollAt + find - Margin;
		         break;
		   }

		   if ( current != newTarget )
		   {
		      if (newTarget !=  this.target )
		      {
		         target = newTarget;

		         now = new Date();
		         Mul = target - current;
		         Wave = Math.PI / ( 2 * slideTime );
		         Pass = now.getTime();

		         if (Math.abs(Mul) > find)
		         {

		            Dis = (Mul > 0) ? target - find : target + find ;
		            Mul = (Mul > 0) ? find : -find ;
		         }

		         else
		            Dis = current


		      }

		      now = new Date();
		      newPosition = Mul * Math.sin( Wave * ( now.getTime() - Pass ) ) + Dis;

		      newPosition = Math.round(newPosition);

		      if (( Mul > 0 && newPosition > current ) || ( Mul < 0 && newPosition < current ))
		      {

		         switch(browser)
		         {
		            case (1):
		                        (Type < 3) ? eval(layerName + ".style.pixelTop = newPosition;") : eval(layerName + ".style.pixelLeft = newPosition;");
								break;

		            case (2):
		                        (Type < 3) ? eval("document." + layerName + ".top = newPosition;") : eval("document." + layerName + ".left = newPosition;");
								break;
		            case (3):
		                        (Type < 3) ? eval("document.getElementById('" + layerName + "').style.top = newPosition + 'px';") : eval("document.getElementById('" + layerName + "').style.left = newPosition + 'px';");

								//if (document.getElementById(layerName).offsetTop <= 10) {
				 					//(Type < 3) ? eval("document.getElementById('" + layerName + "').style.top = newPosition + 'px';") : eval("document.getElementById('" + layerName + "').style.left = newPosition + 'px';");
				 				//}
								//alert(document.getElementById(layerName).offsetTop);
								break;
		         }
		      }

		   }


	} else {

		switch(browser)
		{
			case (1):
					// IE 4

					document.getElementById(layerName).style.top = barrierTop + "px";

					break;

			case (2):
					// Netscape 4
					find = (Type < 3) ? window.innerHeight : window.innerWidth;
					current = (Type < 3) ? eval("document." + layerName + ".top") : eval("document." + layerName + ".left");
					scrollAt = (Type < 3) ? window.pageYOffset : window.pageXOffset;
					break;

			case (3):

					document.getElementById(layerName).style.top = barrierTop + "px";

					break;
		}

	}




}

var barrierTop;
var barrierBottom;

function init()
{
	if (document.getElementById('position_gif')) {
		barrierTop = document.getElementById('position_gif').offsetTop;
	}
	if (document.getElementById('position2_gif')) {
		barrierBottom = document.getElementById('position2_gif').offsetTop;
	}
}

function moveLayer(layerName, x, Margin, slideTime, Type)
{
	if (document.getElementById(layerName)) {
		// Bild anhand des position_gif Positionieren
		document.getElementById(layerName).style.top = document.getElementById('position_gif').offsetTop;
		document.getElementById(layerName).style.left = document.getElementById('position_gif').offsetLeft;

		// Bild nach entgültiger Positionierung sichtbar machen
		document.getElementById(layerName).style.visibility = 'visible';

		// Höhe des <TD> in dem das Bild ist an dessen Höhe anpassen
		document.getElementById('bild_td').height = document.getElementById('floatbild').offsetHeight;

		// Position Schloss
		document.getElementById('schloss_layer').style.top = document.getElementById('floatbild').offsetHeight - 32;

		// Position Schloss
		document.getElementById('schloss_fixieren').style.top = document.getElementById('floatbild').offsetHeight - 20;
		document.getElementById('schloss_offen').style.top = document.getElementById('floatbild').offsetHeight - 20;

		// Endposition an die der Layer maximal fahren darf korrigieren
		barrierBottom = document.getElementById('position2_gif').offsetTop;


		//Browser-Typ
		var browser;

		if (document.all)
			browser = 1;  //IE 4

		if (document.layers)
			browser = 2;  //Netscape 4

		if (!document.all && document.getElementById)
			browser = 3 ; //Firefox / Netscape 6

		setInterval("actFloatLayer(" + Margin + ", " + slideTime + ", '" + layerName + "', " + Type + ", " + browser + ")", 10);
	}
}