﻿var offsetfrommouse = [10, 10];
var displayduration = 0;
var currentimageheight = 120;

if (document.getElementById || document.all) {
    document.write('<div id="previewimageid">');
    document.write('</div>');
}

function getpreviewobj() {
    if (document.getElementById)
        return document.getElementById("previewimageid").style
    else if (document.all)
        return document.all.previewimageid.style
}

function getpreviewobjnostyle() {
    if (document.getElementById)
        return document.getElementById("previewimageid")
    else if (document.all)
        return document.all.previewimageid
}

function truebody() {
    return (!window.opera && document.compatMode && document.compatMode != "BackCompat") ? document.documentElement : document.body
}

function showpreview(title, description) {
    currentimageheight = 120;

    document.onmousemove = followmouse;

    newHTML = '<dl>';
    newHTML = newHTML + '<dt>' + title + '</dt>';
    newHTML = newHTML + '<dd>' + description + '</dd>';
    newHtml = newHTML + '</dl>'
    getpreviewobjnostyle().innerHTML = newHTML;
    getpreviewobj().visibility = "visible";
}

function hidepreview() {
    getpreviewobj().visibility = "hidden"
    document.onmousemove = ""
    getpreviewobj().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 (typeof e != "undefined") {
        if (docwidth - e.pageX < 150) {
            xcoord = e.pageX - xcoord - 220;
        } else {
            xcoord += e.pageX;
        }
        if (docheight - e.pageY < (currentimageheight + 30)) {
            ycoord += e.pageY - Math.max(0, (30 + currentimageheight + e.pageY - docheight - truebody().scrollTop));
        } else {
            ycoord += e.pageY;
        }

    } else if (typeof window.event != "undefined") {
        if (docwidth - event.clientX < 150) {
            xcoord = event.clientX + truebody().scrollLeft - xcoord - 220;
        } else {
            xcoord += truebody().scrollLeft + event.clientX
        }
        if (docheight - event.clientY < (currentimageheight + 30)) {
            ycoord += event.clientY + truebody().scrollTop - Math.max(0, (30 + currentimageheight + event.clientY - docheight));
        } else {
            ycoord += truebody().scrollTop + event.clientY;
        }
    }

    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)
    if (ycoord < 0) { ycoord = ycoord * -1; }
    getpreviewobj().left = xcoord + "px"
    getpreviewobj().top = ycoord + "px"
}