/**
 * Dynamic Divs
 * This library generates dynamic divs that can be used as tooltip popups, 
 * but with the benefit that any HTML content can be displayed in it
 *
 * Dependencies:
 *    windowUtils.js
 */
 
/**
 * Array of dynamic divs plus. This is used to control whether to close
 * div or not
 */
var divs = new Array();
/**
 * Array of delay time before closing divs
 * Default is 2 sec
 */
var delays = new Array();
 
/**
 *
 */
function addDiv (name, delay) {
    if (name) {
        divs[name] = false;
        divs[name+'_DIV'] = false;
        if (delay) {
            delays[name] = delay*1000;
        }
        else {
            // Default to 2 sec = 2000 msec
            delays[name] = 2000;
        }
    }
    var obj = document.getElementById(name);
    if (obj) {
        obj.onmouseover = function() { setDMO(name, true); }
        obj.onmouseout = function() { setDMO(name, false); }
    }
}
 
/**
 *
 */
function setDMO(name, status) {
   if (status) {
       divs[name+'_DIV'] = true;
       var div = document.getElementById(name);
       div.style.visibility = 'visible';
   }
   else {
       divs[name+'_DIV'] = false;
       if (!divs[name]) {
           setTimeout("doHideFilterSelect('"+name+"')", delays[name]);
       }
   }
//    setStatus('setDMO-' + name + '-' + status);
}

/**
 *
 */
function showFilterSelect(e, name, show) {
    if (isIE()) { e = window.event; }
    var obj = (isIE() ? e.srcElement : e.target);
    var div = document.getElementById(name);
    div.style.top = obj['offsetTop'] + 7 + 140;
    div.style.left = obj['offsetLeft'] + 20;
    div.style.visibility = (show ? 'visible' : 'hidden');
    divs[name] = true;
}

function doShowFilterSelect(name) {
    if (divs[name] || divs[name+'_DIV']) {
	    var div = document.getElementById(name);
	    div.style.visibility = 'visible';
    }
}

/**
 *
 */
function hideFilterSelect(name) {
    if (!divs[name+'_DIV']) {
        var obj = document.getElementById(name);
        setTimeout("doHideFilterSelect('"+name+"')", delays[name]);
    }
    divs[name] = false;
//    setStatus('hideFilterSelect-'+name);
}

/**
 *
 */
function doHideFilterSelect(name) {
    if (!divs[name] && !divs[name+'_DIV']) {
        var obj = document.getElementById(name);
        obj.style.visibility = 'hidden';
    }
//    setStatus('doHideFilterSelect-'+name);
}
 
