/* -----------------------------------------------------------*/
/*
*	Copyright 2007 bildunion.de
*	thumbnail.js - scripts for thumbnail preview
*
*	AUTHOR:
*	goma - Gordon Marshall - marshall(at)bildunion(dot)de
*
*	TODO:
*
*	LAST MODIFIED:
*	goma, 08.04.2007
*/
/* -----------------------------------------------------------*/



if (document.getElementById || document.all) {
	document.writeln('<div id="thumbPreview">');
	document.writeln('<img id="thumbImage" src="/img/img_wait.gif" ');
	document.writeln('lowsrc="/img/img_wait.gif" /><br />');
	document.writeln('<span id="thumbNo"></span>');
	document.writeln('</div>');
}

var myPreviewDiv = null;
var myBody = null;
var previewActive = "";

addLoadEvent(preparePreview); // in global.js



function preparePreview() {
	myPreviewDiv = getPreviewDiv();
	myBody = getBody();
	elements = document.getElementsByTagName("img");
	for (i=0;i<elements.length;i++) {
		if (elements[i].id != null) {
			if (elements[i].id.indexOf("thumbnail") > -1) {
				elements[i].onmouseover = showPreview;
				elements[i].onmouseout = hidePreview;
				//elements[i].onmousemove = setPosition;
			}
		}
	}
}



function getPreviewDiv() {
	if (document.getElementById) {
		return document.getElementById("thumbPreview");
	}
	else if (document.all) {
		return document.all.thumbPreview;
	}
}



function getBody() {
	return (document.compatMode && document.compatMode!="BackCompat") ?
			document.documentElement :
			document.body;
}



function showPreview(e) {	
	window.clearTimeout(previewActive);
	file = this.src.replace(/small/,previewFolder);
	document.getElementById('thumbImage').src = file;
	document.getElementById('thumbNo').innerHTML = "bu" + this.id.replace(/thumbnail/,"");		
	myPreviewDiv.style.display = 'block';
	setPosition(e);
	this.onmousemove = setPosition;
	this.setAttribute("alt","",0);
	this.parentNode.setAttribute("title","",0);
	previewActive = window.setTimeout("myPreviewDiv.style.visibility = 'visible'",500);
}



function hidePreview(e) {
	window.clearTimeout(previewActive);
	this.onmousemove = "";
	//file = "/img/img_wait.gif";
	//document.getElementById('thumbImage').src = file;
	document.getElementById('thumbNo').innerHTML = "";
	myPreviewDiv.style.display = 'none';
	myPreviewDiv.style.visibility = 'hidden';	
}



function setPosition(e) {

	myPreviewDiv.style.width = "auto";
	myPreviewDiv.style.height = "auto";
	
	var xPos = 0;
	var yPos = 0;
	var xMouseGap = 20;
	var yMouseGap = 20;
	var xWindowGap = 20;
	var yWindowGap = 20;
	if (document.all) {
		xWindowGap = 20;
		yWindowGap = 20;
	}
	
	var bodyWidth = document.all ?
					myBody.scrollLeft + myBody.clientWidth :
					pageXOffset + window.innerWidth;
	var bodyHeight = document.all ?
					Math.min(myBody.scrollHeight, myBody.clientHeight) :
					Math.min(document.body.offsetHeight, window.innerHeight);
					
	if (typeof e != "undefined") { // moz			
		xPos += e.pageX
		yPos += e.pageY
	}
	else if (typeof window.event != "undefined") { // ie
		xPos += myBody.scrollLeft + event.clientX
		yPos += myBody.scrollTop + event.clientY
	}
	
	var divWidth = myPreviewDiv.offsetWidth;
	var divHeight = myPreviewDiv.offsetHeight;	

	if (xPos - myBody.scrollLeft + divWidth + xMouseGap + xWindowGap > bodyWidth) {
		xPos = xPos - divWidth - xMouseGap;
		if (xPos - xWindowGap < myBody.scrollLeft) {
			xPos = myBody.scrollLeft + xWindowGap;
		}
	}
	else {
		xPos = xPos + xMouseGap;
	}
	
	if (yPos - myBody.scrollTop + divHeight + yMouseGap + yWindowGap > bodyHeight) {
		yPos = yPos - divHeight - yMouseGap;
		if (yPos - yWindowGap < myBody.scrollTop) {
			yPos = myBody.scrollTop + yWindowGap;
		}
	}
	else {
		yPos = yPos + yMouseGap;
	}
	
	myPreviewDiv.style.left = xPos + "px";
	myPreviewDiv.style.top = yPos + "px";

}

