/*
Simple Image Trail script- By JavaScriptKit.com
Visit http://www.javascriptkit.com for this script and more
This notice must stay intact
*/

//image x,y offsets from cursor position in pixels. Enter 0,0 for no offset
var offsetfrommouse = [15, 15];

//duration in seconds image should remain visible. 0 for always.
var displayduration = 0;


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, height) {
	document.onmousemove = followmouse;
	
	newHTML = '<div style="padding: 5px; background-color: #FFF; border: 1px solid #888; text-align: center;">'
			+ '    <img src="'+imagename+'" border="0" id="largeImage" />'
			+ '</div>';
	
	getTrailObjNoStyle().innerHTML = newHTML;
	getTrailObj().display = "inline";
	
	currentimageheight = $('largeImage').getSize().y;
}



function hidetrail(){
	getTrailObj().innerHTML = " ";
	getTrailObj().display = "none";
	document.onmousemove = "";
	getTrailObj().left = "-500px";

}


function followmouse(e) {
	var xcoord = offsetfrommouse[0];
	var ycoord = offsetfrommouse[1];
	
	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 (document.all){
	//	gettrailobjnostyle().innerHTML = 'A = ' + truebody().scrollHeight + '<br>B = ' + truebody().clientHeight;
	//} else {
	//	gettrailobjnostyle().innerHTML = 'C = ' + document.body.offsetHeight + '<br>D = ' + window.innerHeight;
	//}
	
	if(typeof e != "undefined") {
		if(docwidth - e.pageX < 380) {
			xcoord = e.pageX - xcoord - 400; // Move to the left side of the cursor
		} else {
			xcoord += e.pageX;
		}
		
		if (docheight - e.pageY < (currentimageheight + 110)) {
			ycoord += e.pageY - Math.max(0, (110 + currentimageheight + e.pageY - docheight - truebody().scrollTop));
		} else {
			ycoord += e.pageY;
		}
	} else if(typeof window.event != "undefined") {
		if(docwidth - event.clientX < 380) {
			xcoord = event.clientX + truebody().scrollLeft - xcoord - 400; // Move to the left side of the cursor
		} else {
			xcoord += truebody().scrollLeft + event.clientX
		}
		if(docheight - event.clientY < (currentimageheight + 110)) {
			ycoord += event.clientY + truebody().scrollTop - Math.max(0, (110 + currentimageheight + event.clientY - docheight));
		} else {
			ycoord += truebody().scrollTop + event.clientY;
		}
	}
	
	if(ycoord < 0) {
		ycoord = ycoord * -1;
	}
	
	getTrailObj().left = xcoord + "px";
	getTrailObj().top = ycoord + "px";

}


