/*

dependancies:
-------------

portability.js
    is_ie
    explorerHackery()

*/
var tooltips=new Array();
var tooltipActive=new Array();
var nextTip=0;

function toolOver(event,which) {
    window.clearTimeout(nextTip);
    if (!tooltipActive[which]) {
        document.getElementById('tooltip_'+which).setAttribute('style','display: none');
        nextTip=setTimeout("tooltipActive["+which+"]=1; document.getElementById('tooltip_"+which+"').setAttribute('style','display: block');","1000");
        setTimeout("tooltipActive["+which+"]=0;",4000);
    }
    return 0;
}

function createTooltip(headerText,contentHTML) {
    var ttid = tooltips.length;
    var node = document.createElement('div');
    tooltips[ttid]=node;
    tooltipActive[ttid]=0;
    with (node) {
        setAttribute('id','tooltip_'+ttid);
        with (appendChild(document.createElement('iframe'))) {
            // See: http://support.microsoft.com/default.aspx?scid=kb;en-us;261188
            if (is_ie) setAttribute('src','/unbreak_ie');

            setAttribute('id','tooltip_'+ttid+'_if');
            if (!is_ie) style.display='none';
            style.position='absolute';
            style.left='0px';
            style.top='0px';
            style.width='200px';
            style.height='0px'; // explicit height setting required otherwise ie 'unbreak' breaks visuals.
            setAttribute('frameBorder','0');
            setAttribute('scrolling','no');
        }
        with (appendChild(document.createElement('div'))) {
            setAttribute('class','header');
            innerHTML=headerText;
        }
        with (appendChild(document.createElement('div'))) {
            setAttribute('class','content');
            innerHTML=contentHTML;
        }
    }
    return node;
}

// -------------------------------------------------------------------------------

function createTooltipByNodeDelay(node) {
    node.setAttribute('onmouseover',"toolOver(event,"+(tooltips.length-1)+");");
    node.setAttribute('onmouseout',"window.clearTimeout(nextTip);");
}

function createTooltipByNodeFirst(node,headerText,contentHTML) {
    node.insertBefore(createTooltip(headerText,contentHTML),node.firstChild);
    if (!is_ie) createTooltipByNodeDelay(node); 
}

function createTooltipByNodeLast(node,headerText,contentHTML) {
    node.appendChild(createTooltip(headerText,contentHTML));
    if (!is_ie) createTooltipByNodeDelay(node); 
}

// default to after
function createTooltipByNode(node,headerText,contentHTML) {
    createTooltipByNodeLast(node,headerText,contentHTML);
}

// -------------------------------------------------------------------------------

function createTooltipByIdFirst(id,headerText,contentHTML) {
    createTooltipByNodeFirst(document.getElementById(id),headerText,contentHTML);
    explorerHackery(id);    
}

function createTooltipByIdLast(id,headerText,contentHTML) {
    createTooltipByNodeLast(document.getElementById(id),headerText,contentHTML);
    explorerHackery(id);    
}

function createTooltipById(id,headerText,contentHTML) {
    createTooltipByNode(document.getElementById(id),headerText,contentHTML);
    explorerHackery(id);    
}

