addEvent(window,"load",initDropShadow);

function initDropShadow() {
    if (!document.createElement) return;
    
    // Sigh, IE doesn't do getElementsByTagName("*")
    if (document.all) {
        var els = document.all;
    } else {
        var els = document.getElementsByTagName("*");
    }
    for (i=0;i<els.length;i++) {
        if ((' '+els[i].className+' ').indexOf(' dropshadow ') != -1) {
            DS_process(els[i])
        }
    }
}

function DS_process(e) {
    // Make a duplicate of this element, with all its subelements
    var nel = e.cloneNode(1);
    // Set its class to shadowed
    nel.className = "shadowed";
    nel.className += e.className.replace('dropshadow', '');
    e.className = e.className.replace('dropshadow', 'finalDrop');
    // Set floating text colour
    textColour = e.getAttribute("textColour");
    if (textColour) nel.style.color = textColour;
    textColor = e.getAttribute("textColor");
    if (textColor) nel.style.color = textColor;
    // Add it to the document
    e.parentNode.insertBefore(nel,e);
    i++;
    nel.style.top = (e.offsetTop - 1) + "px";
    nel.style.left = (e.offsetLeft - 2) + "px";
    //nel.style.top = "-1px";
    //nel.style.left = "-2px";
}

function addEvent(obj, type, fn) {
    if (obj.addEventListener)
        obj.addEventListener(type, fn, false);
    else if (obj.attachEvent) {
        obj["e" + type + fn] = fn;
        obj[type + fn] = function() { obj["e" + type + fn](window.event); }
        obj.attachEvent("on" + type, obj[type + fn]);
    }
}
