// JavaScript Document

var offsetfrommouse = [15,15]; //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 defaultimageheight = 200;    // maximum image size.
var defaultimagewidth = 200;     // maximum image size.

var timer;

function gettrailobj() {
    if (document.getElementById)
    return document.getElementById("preview_div").style;
}

function gettrailobjnostyle() {
    if (document.getElementById)
    return document.getElementById("preview_div");
}

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

function hidetrail() {
        gettrailobj().display= "none";
        document.onmousemove="";
        gettrailobj().left="-500px";
        clearTimeout(timer);
}

function showtrail(imagename,width,height) {
        i = imagename;
        w = width;
        h = height;
        timer = setTimeout("show('"+i+"',w,h);",200);
}

function show(imagename,width,height) {

    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)) {
	( width == 0 ) ? width = defaultimagewidth: '';
	( height == 0 ) ? height = defaultimageheight: '';
	width  += 30;
	height += 55;
	defaultimageheight = height;
	defaultimagewidth = width;

	document.onmousemove=followmouse;

	newHTML = '<DIV STYLE="width:'+ width +'px; height:'+ height +'px; opacity: .98; filter: alpha(opacity=98);">';
	newHTML = newHTML + '<IMG SRC="' + imagename + '" STYLE="border: 1px solid #58481C; bgcolor: #ffffff" BORDER=0></IMG>';
	newHTML = newHTML + '</DIV>';

	gettrailobjnostyle().innerHTML = newHTML;
	gettrailobj().display="block";
    }
}

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 (typeof e != "undefined") {
        if (docwidth - e.pageX < defaultimagewidth + 2*offsetfrommouse[0]) {
            xcoord = e.pageX - xcoord - defaultimagewidth; // Move to the left side of the cursor
        } else {
            xcoord += e.pageX;
        }
        if (docheight - e.pageY < defaultimageheight + 2*offsetfrommouse[1]){
            ycoord += e.pageY - Math.max(0,(2*offsetfrommouse[1] + defaultimageheight + e.pageY - docheight - truebody().scrollTop));
        } else {
            ycoord += e.pageY;
        }
    } else if (typeof window.event != "undefined"){
        if (docwidth - event.clientX < defaultimagewidth + 2*offsetfrommouse[0]){
            xcoord = event.clientX + truebody().scrollLeft - xcoord - defaultimagewidth; // Move to the left side of the cursor
        } else {
            xcoord += truebody().scrollLeft+event.clientX
        }
        if (docheight - event.clientY < (defaultimageheight + 2*offsetfrommouse[1])){
            ycoord += event.clientY + truebody().scrollTop - Math.max(0,(2*offsetfrommouse[1] + defaultimageheight + event.clientY - docheight));
        } else {
            ycoord += truebody().scrollTop + event.clientY;
        }
    }

    gettrailobj().left=xcoord+"px"
    gettrailobj().top=ycoord+"px"
}

