var dict_descriptions = new Array();
var image_path = "http://static.pardus.at/images/";

function getElement(elName) {
    return document.getElementById(elName);
}

function writeContents(el, tip) {
    el.innerHTML = tip;
}

function getOffset(el, which) {
    var amount = el["offset" + which] ;
    if (which == "Top")
        amount += el.offsetHeight;
    el = el.offsetParent;
    while (el != null) {
        amount += el["offset" + which]
        el = el.offsetParent;
    }
    return amount;
}

function setPosition(el, src, hpos) {
    xOffset = 15;
    yOffset = -13;
    if (hpos == "l") {
        xOffset += -220;
    } else if (hpos == "er") {
        xOffset += 128;
    } else if (hpos == "lf") {
        xOffset += -160;
        yOffset += -310;
    }
    el.style.top = getOffset(src, "Top") + yOffset + "px";
    el.style.left = getOffset(src, "Left") + xOffset + "px";
}
  
function setVisibility(el, bDisplay) {
    if (bDisplay)
        el.style.visibility = "visible";
    else
        el.style.visibility = "hidden";
}

function getDescriptionFor(tip) {
    if (typeof(dict_descriptions[tip]) == "undefined") {
        return "Sorry, no description (" + tip + ") available.";
    }
    return dict_descriptions[tip];
}

function getContent(code, keyword, loc) {
    var content;
    var footer;
    if (loc == "portal")
        footer = "<b>Pardus Information Box</b>";
    else
        footer = "<b>GNN Library</b><img src='" + image_path + "info.gif' width='10' height='12' border='0'>";
    content = 
    "<table class='messagestyle' style='background:url(" + image_path + "bgd.gif)' cellspacing='0' cellpadding='3' width='100%'>" +
    "	<tr>" +
    "		<td style='text-align:left;background:#000000;'><b>" + keyword + "</b></td>" +
    "   </tr>"  +
    "   <tr>" +
    "   	<td style='text-align:left;'>" + getDescriptionFor(code) + "</td>" +
    "   </tr>" +
    "   <tr>" +
    "   	<td height='5'><spacer type='block' width='1' height='1'></td>" +
    "   </tr>" +
    "   <tr>" +
    "   	<td style='text-align:right;background:#31313A;'>" + footer + "</td>" +
    "   </tr>" +
    "</table>";
    return content;
}

function displayContents(srcObj, code, keyword, hpos, loc) {
    var el = getElement("tipBox");
    var content = getContent(code, keyword, loc);
    writeContents(el, content);
    setPosition(el, srcObj, hpos);
    setVisibility(el, true);
}

function tip(srcObj, code, keyword, hpos, loc) {
    code = unescape(code);
    if (typeof(dict_descriptions) == "undefined") return;
    displayContents(srcObj, code, keyword, hpos, loc); 
}

function nukeTip() {
    setVisibility(getElement("tipBox"), false);
}
