// JavaScript Document
//
// Copyright 2008 Alexander Wotschke (Pegasus Computerservice)
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

var imageID = "";
var oldTOP = "";
var oldLEFT = "";
var oldSize = "";
var moveTOP = "";
var moveLEFT = "";
var moveBoxEndTop = 0;
var moveBoxEndLeft = 0;
var zoomSteps = 15;   // Number of zoom animation frames
var zoomTimer;
var zoomActive; 


function setupZoom()
{
	var inBody = document.getElementsByTagName("body").item(0);
	var ZoomImage = document.createElement("img");
	var ZoomBox = document.createElement("div");
	var Shadowbox = document.createElement("div");
	
	Shadowbox.setAttribute('id', 'Shadowbox');
	Shadowbox.style.position = 'absolute';
	Shadowbox.style.left = '0px';
	Shadowbox.style.top = '0px';
	Shadowbox.onclick = function (event) { goOut(this, event); return false; };;
	Shadowbox.setAttribute("href", "javascript:goOut()");

	/*Shadowbox.style.background = '../Images/galeriebackground.gif';*/
	Shadowbox.style.visibility = 'hidden';
	Shadowbox.style.zIndex = '524';
	inBody.insertBefore(Shadowbox, inBody.firstChild);
	
	ZoomBox.setAttribute('id', 'ZoomBox');
	ZoomBox.style.position = 'absolute';
	ZoomBox.style.left = '10px';
	ZoomBox.style.top = '10px';
	ZoomBox.style.visibility = 'hidden';
	ZoomBox.style.zIndex = '525';
	ZoomBox.setAttribute('onClick','javascript:goOut();');
	inBody.insertBefore(ZoomBox, Shadowbox.firstChild);
	
	ZoomImage.setAttribute('id', 'ZoomImage');
	ZoomImage.setAttribute('height', '100px');
	ZoomBox.appendChild(ZoomImage);
}

function Image(sizeY, maxsizeX,maxsizeY, imageID)
{	
	/*document.getElementById("ZoomBox").style.width = '100px';*/
	document.getElementById("ZoomBox").style.height = '100px';
	document.getElementById("ZoomBox").style.visibility = 'visible';
	document.getElementById("ZoomBox").style.width = maxsizeX + 'px';
	document.getElementById("ZoomBox").style.height = maxsizeY + 'px';

	this.moveBoxEndTop = (screen.availHeight - maxsizeY) / 2;
	this.moveBoxEndLeft = (screen.availWidth  - maxsizeX) / 2;

	this.oldTOP = document.getElementById(imageID).offsetTop;
	this.oldLEFT = document.getElementById(imageID).offsetLeft;
	this.oldSize = sizeY;
		
	document.getElementById("ZoomImage").src = document.getElementById(imageID).src;
	
	this.imageID = imageID;
	
	
	zoomTimer = setInterval("sizeImage("+sizeY+", "+maxsizeY+", "+0+")", 5);
	zoomActive = true;
}
// Bildgröße mit dem Mausrad ändern

function goOut()
{
		document.getElementById("ZoomBox").style.left = oldLEFT + "px";
		document.getElementById("ZoomBox").style.top = oldTOP + "px";
		document.getElementById("ZoomImage").height = oldSize;
		/*document.getElementById("Shadowbox").style.visibility = 'hidden';*/
		/*document.getElementById("Shadowbox").style.width = '0px';*/
		/*document.getElementById("Shadowbox").style.height = '0px';*/
		document.getElementById("ZoomBox").style.visibility = 'hidden';
		
}
function sizeImage(size, maxsize, current) 
{	
	if (current == (this.zoomSteps+1)) 
	{
		zoomActive = false;
		clearInterval(zoomTimer);
		/*document.getElementById("Shadowbox").style.width = '100%';*/
		/*document.getElementById("Shadowbox").style.height = '100%';*/
		/*document.getElementById("Shadowbox").style.visibility = 'visible';*/
		/*document.getElementById("Shadowbox").style.background = 'url(Images/galeriebackground.gif)'*/
		/*setOpacity('50',"Shadowbox");*/
		

/*		if (execWhenDone != "") 
		{
			eval(execWhenDone);
		}*/
	}
	else 
	{
		moveX = cubicInOut(current, this.oldLEFT,this.moveBoxEndLeft - this.oldLEFT, 15);
		moveY = cubicInOut(current, this.oldTOP,this.moveBoxEndTop - this.oldTOP, 15);
		moveW = cubicInOut(current, size,maxsize-size, 15); 
	
		
		document.getElementById("ZoomBox").style.left = moveX + "px";
		document.getElementById("ZoomBox").style.top = moveY + "px";
		document.getElementById("ZoomImage").height = moveW;

		current++;
		
		clearInterval(zoomTimer);
		zoomTimer = setInterval("sizeImage("+size+", "+maxsize+", "+current+")", 5);
		 /*sizeImage(size,maxsize);*/
	}
	return false;
}

function cubicInOut(t, b, c, d)
{
	if ((t/=d/2) < 1) return c/2*t*t*t + b;
	return c/2*((t-=2)*t*t + 2) + b;
}

function setOpacity(opacity, theID) {

	var object = document.getElementById(theID).style;

	// If it's 100, set it to 99 for Firefox.

	if (navigator.userAgent.indexOf("Firefox") != -1) {
		if (opacity == 100) { opacity = 99.9999; } // This is majorly awkward
	}

	// Multi-browser opacity setting

	object.filter = "alpha(opacity=" + opacity + ")"; // IE/Win
	object.opacity = (opacity / 100);                 // Safari 1.2, Firefox+Mozilla

}
