var offsetfrommouse=[400,-300]; //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 timer;

function gettrailobj()
 {
  if (document.getElementById)
   return document.getElementById('previewWindow').style;
 }

function gettrailobjnostyle()
 {
  if (document.getElementById)
   return document.getElementById('previewWindow');
 }

function truebody()
 {
  return (!window.opera && document.compatMode && document.compatMode != 'BackCompat') ? document.documentElement : document.body;
 }

function hidetrail()
 {
	gettrailobj().display = 'none';
	document.onmousemove = '';
	gettrailobj().left = '-5000px';
	clearTimeout(timer);
 }

function showtrail(imagename,title)
 {
	i = imagename;
	t = title;
	timer = setTimeout("show('"+i+"',t);",0);
 }

function show(imagename,title)
 {
  var docwidth=document.all? truebody().scrollLeft+truebody().clientWidth : pageXOffset+window.innerWidth - offsetfrommouse[0];
	var docheight=document.all? Math.min(truebody().scrollHeight, truebody().clientHeight) : Math.min(window.innerHeight);

	if ((navigator.userAgent.indexOf('Konqueror') == -1  || navigator.userAgent.indexOf('Firefox') != -1 || (navigator.userAgent.indexOf('Opera') == -1 && navigator.appVersion.indexOf('MSIE') != -1)) && (docwidth > 650 && docheight > 500))
	 {
		document.onmousemove=followmouse;
		newHTML = '<center><h2 style="display: inline; font-family: Tahoma; font-size: 16px; color: #666666;">'+title+'</h2></center>';
   	newHTML = newHTML + '<img src="' + imagename + '" style="border: 1px solid #999999;" />';
   	newHTML = newHTML+'</div>';
		
		if (navigator.userAgent.indexOf('MSIE') != -1 && navigator.userAgent.indexOf('Opera') == -1)
   	 newHTML = newHTML+'<iframe src="about:blank" scrolling="no" frameborder="0"></iframe>';

		gettrailobjnostyle().innerHTML = newHTML;
		gettrailobj().display="block";
	}
}

function followmouse(e)
 {
	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);

  var xcoord=offsetfrommouse[0];
	var ycoord=offsetfrommouse[1];

	if (typeof e != 'undefined')
   {
    if (docwidth - e.pageX < 2*offsetfrommouse[0])
     xcoord = e.pageX - xcoord; // Move to the left side of the cursor
    else
     xcoord += e.pageX;
    if (docheight - e.pageY < 2*offsetfrommouse[1])
     ycoord += e.pageY - Math.max(0,(2*offsetfrommouse[1] + e.pageY - docheight - truebody().scrollTop));
    else
     ycoord += e.pageY;
	 }
  else if (typeof window.event != 'undefined')
   {
    if (docwidth - event.clientX < 2*offsetfrommouse[0])
     xcoord = event.clientX + truebody().scrollLeft - xcoord; // Move to the left side of the cursor
    else
     xcoord += truebody().scrollLeft+event.clientX
    if (docheight - event.clientY < (2*offsetfrommouse[1]))
     ycoord += event.clientY + truebody().scrollTop - Math.max(0,(2*offsetfrommouse[1] + event.clientY - docheight));
    else
     ycoord += truebody().scrollTop + event.clientY;
	 }
	gettrailobj().left=xcoord+"px";
	gettrailobj().top=ycoord+"px";
 }
