
var timeLine = new Array(0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2);
var windows = new Array();
var iid = setInterval('interrupt()', 1);

function interrupt() {

    if (windows.length) {

        for (i = 0; i < windows.length; i++) {

            if (windows[i][0] < timeLine.length && windows[i][3]) { // If it isn't the end and running

                c = timeLine[windows[i][0]];
                if (c == 1) {overlay(windows[i][1], windows[i][2]); windows[i][3] = 0;}
                if (c == 2) overlayclose(windows[i][2]);
                windows[i][0]++;
            }
        }
    }
}

function setQueue(curobj, subobj) {

    flag = 1;
    if (windows.length) { // Array isn't empty

        for (i = 0; i < windows.length; i++) {

            if (windows[i][2] == subobj) { // Array has line already

                if (windows[i][0] == timeLine.length) windows[i][0] = 0; // End? Go to begin
                else windows[i][0] = 1; // Middle? Go to nearly begin
		windows[i][1] = curobj;
                windows[i][3] = 1; // Show must go on!
                flag = 0; // Don't add a new line
                break;
            }
        }
    }
    if (flag) windows[windows.length] = new Array(0, curobj, subobj, 1); // counter, curobj, subobj, running(1)/stopped(0)
}

function stopCount(subobj) {

    for (i = 0; i < windows.length; i++) {
    
        if (windows[i][2] == subobj) {
        
            windows[i][3] = 0;
            break;
        }
    }
}

function continueCount(subobj) {

    for (i = 0; i < windows.length; i++) {

        if (windows[i][2] == subobj) {

            windows[i][0] = timeLine.length - 4; // Delay before closing
            windows[i][3] = 1;
            break;
        }
    }
}

function getposOffset(overlay, offsettype) {

    var totaloffset = (offsettype == "left") ? overlay.offsetLeft : overlay.offsetTop;
    var parentEl = overlay.offsetParent;
    while (parentEl != null){

        totaloffset = (offsettype == "left") ? totaloffset + parentEl.offsetLeft : totaloffset + parentEl.offsetTop;
        parentEl=parentEl.offsetParent;
    }
    return totaloffset;
}

var xpos;
var ypos;

function imouse()
{  
ypos=event.y+document.body.scrollTop;  
xpos=event.x+document.body.scrollLeft;  }
document.onmousemove=imouse;

function overlay(curobj, subobj) {

    if (document.getElementById){
        var subobj = document.getElementById(subobj);
        subobj.style.left = xpos +getposOffset(curobj, "left")- 100 + "px";
        subobj.style.left = xpos - 100 + "px";
        subobj.style.top = getposOffset(curobj, "top") + 11 + "px";

        subobj.style.display = "block";
        return false;

    } else {

        return true;
    }
}

function overlayclose(subobj) {

    document.getElementById(subobj).style.display = "none";
}


