/*
Simple Image Trail script- By JavaScriptKit.com
Visit http://www.javascriptkit.com for this script and more
This notice must stay intact
*/

var offsetfrommouse=[10,10];	//image x,y offsets from cursor position in pixels. Enter 0,0 for no offset
var displayduration=0;		//duration in seconds image should remain visible. 0 for always.
var currentimageheight = 200;	// maximum image size.

if (document.getElementById || document.all){
	document.write('<div id="trailimageid">');
	document.write('</div>');
}

function gettrailobj(){
if (document.getElementById)
return document.getElementById("trailimageid").style
else if (document.all)
return document.all.trailimagid.style
}

function gettrailobjnostyle(){
if (document.getElementById)
return document.getElementById("trailimageid")
else if (document.all)
return document.all.trailimagid
}


function truebody(){
return (!window.opera && document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function showtrail(imagename,title,oriwidth,oriheight,zoomimgwidth,zoomimgheight){
//
// Set mouse offsets correctly
//
// If no picture sizes passed, set to 0, -40
//
if (oriwidth > 0){ offsetfrommouse[0] = oriwidth; }
if (oriheight > 0){ offsetfrommouse[1] = -1 *(zoomimgheight-oriheight)/2 - 40; }
//
// If it's an attribue image, notify the mouse handler about said fact by an empty offset table (0,0)
//
if (imagename.search("attributes") != -1) {
offsetfrommouse[0] = 0;
offsetfrommouse[1] = 0;
}
//
// Uncomment the alert for debugging
// alert (offsetfrommouse[0] + "," + offsetfrommouse[1]);
//
if (zoomimgheight > 0){ currentimageheight = zoomimgheight + 10; }
document.onmousemove=followmouse;
newHTML = '<div style="padding: 5px; background-color: #FFF; border: 1px solid #888;">' + title;
newHTML = newHTML + '<div align="center" style="padding: 2px 2px 2px 2px;"><img src="' + imagename + '" border="0"></div></div>';
gettrailobjnostyle().innerHTML = newHTML;
gettrailobj().visibility="visible";
}

function hidetrail(){
	gettrailobj().visibility = "hidden"
	document.onmousemove = ""
	gettrailobj().left = "-500px"
	gettrailobj().top = "-500px"
}

function followmouse(e){
var xcoord=offsetfrommouse[0]
var ycoord=offsetfrommouse[1]
//
// Detect browser
//
var NS4 = (document.layers)? true:false;
var IE4 = (document.all)? true:false;
var IE5 = false;
var GECKO = false;
if (IE4) { if (navigator.userAgent.indexOf('MSIE 5') > 0) { IE5 = true; } }
if(navigator.userAgent.indexOf("Gecko") != -1) { GECKO = true; }
//
// fixedloc = 0 will allow us to determine if it's an attribute image or not
//
var fixedloc= xcoord + ycoord
var docwidth=document.all? truebody().scrollLeft+truebody().clientWidth : pageXOffset+window.innerWidth-15
var docheight=document.all? Math.min(truebody().scrollHeight, truebody().clientHeight) : Math.min(window.innerHeight)
if (typeof e != "undefined"){
	if (docwidth - e.pageX < 300){
		xcoord = e.pageX - xcoord - 286; // Move to the left side of the cursor
	} else {
		xcoord += e.pageX;
	}
	if (docheight - e.pageY < (currentimageheight + 0)){
		ycoord += e.pageY - Math.max(0,(0 + currentimageheight + e.pageY - docheight - truebody().scrollTop));
	} else {
		ycoord += e.pageY;
	}
} else if (typeof window.event != "undefined"){
	if (docwidth - event.clientX < 300){
		xcoord = event.clientX + truebody().scrollLeft - xcoord - 286; // Move to the left side of the cursor
	} else {
		xcoord += truebody().scrollLeft+event.clientX
	}
	if (docheight - event.clientY < (currentimageheight + 0)){
		ycoord += event.clientY + truebody().scrollTop - Math.max(0,(0 + currentimageheight + event.clientY - docheight));
	} else {
		ycoord += truebody().scrollTop + event.clientY;
	}
}
// No idea what it's for, came with the original script but doesn't seem to make any sense here
	var docwidth=document.all? truebody().scrollLeft+truebody().clientWidth : pageXOffset+window.innerWidth-15
var docheight=document.all? Math.max(truebody().scrollHeight, truebody().clientHeight) : Math.max(document.body.offsetHeight, window.innerHeight)
// The rest does make sense though :)
if(ycoord < 0) { ycoord = ycoord*-1; }
if (fixedloc == 0) {
// Attribute image hover. Set offsetX and offsetY to where you want the hover, attribpicimage to space between adjacent
// attribute images (small ones).
// Current code will snap hover horizontally to the left edge of the attribute image you're hovering above, vertically won't move
//
// Check for scrollbars
	hscroll = (document.all) ? (truebody().scrollHeight - truebody().clientHeight) : (document.body.offsetHeight - window.innerHeight)
	if ((hscroll > 0) || (IE4) || (IE5)) {
		offsetX=(docwidth/2)-112;
	}
	else {	offsetX=(docwidth/2)-103;
	}
	offsetY=60;
	attribpicsize=34
	column = Math.round(((xcoord - offsetX) / attribpicsize) - 0.5);
//	alert ("offsetX "+offsetX+",xcoord "+xcoord+",column "+column+" -> "+(offsetX + (column * attribpicsize))+"px");
	gettrailobj().left = (offsetX + (column * attribpicsize))+"px";
	gettrailobj().top = offsetY+"px";
}
else {
// This is a regular hover. This code will make it not-moving, once it's set it stays there until you move the mouse away
// To make it follow the mouse, remove the condition from these lines
	if ((gettrailobj().left == "-500px") ||(gettrailobj().left == "")) gettrailobj().left=xcoord+"px"
	if ((gettrailobj().top == "-500px") || (gettrailobj().top == "")) gettrailobj().top=ycoord+"px"
}
// Uncomment this alert for debug
//	alert ("fixedloc: "+fixedloc+" trailobj: "+ gettrailobj().left+","+gettrailobj().top);
}
