// Original code from http://www.fu2k.org/alex/css/test/Corners.mhtml
// and adapted by ps@nomensa.com
// modified again by th@nomensa.com

// Avoid conflicts, use local object for all properties
var roundedCorners = new Object();

// Classes to apply rounded corners to
roundedCorners.targetedClasses = ['sidebox', 'rounded', 'box'];

// Elements we want to check for the right class
roundedCorners.targetedElements = ['div', 'dd', 'ul', 'li', 'h2', 'fieldset', 'form'];

// Top classes (working inside out)
roundedCorners.topClasses = ['ne', 'nw'];

// Bottom classes (working inside out)
roundedCorners.bottomClasses = ['se', 'sw'];

// Add the rounded corners to all classes specified in targetedClasses
function setCorners() {

    // Temp ignore Mac IE 5.2
    if(navigator.userAgent.indexOf("MSIE")!=-1 
        && navigator.userAgent.indexOf("Mac")!=-1
        && parseFloat(navigator.appVersion.split("MSIE")[1]) >= 5 ) { return; }
    
    // Inspect every targeted element in the DOM
    for (var elem=0;elem<roundedCorners.targetedElements.length; elem++) {

        for (var i=0;i<document.getElementsByTagName(roundedCorners.targetedElements[elem]).length; i++) {

            // Get its class (if present)
            var className = document.getElementsByTagName(roundedCorners.targetedElements[elem]).item(i).className;
            
            // flag to check we have a match
            var found = false;

            // Check all classes we are interested in
            for (var c=0; c<roundedCorners.targetedClasses.length; c++) {

                // Does the className have multiple classes ??
                var tokens = className.split(" ");

                // Loop through tokenised class value (if any)
                for (var t=0; t<tokens.length; t++) {
                    if (roundedCorners.targetedClasses[c] == tokens[t]) {
                        found = true;
                        break;
                    }
                }
            }

            if (found) {
                // Fetch the current element we found
                var targetObject = document.getElementsByTagName(roundedCorners.targetedElements[elem]).item(i);

        // Generate top divs
        var cornerne = document.createElement("span");
        cornerne.className = roundedCorners.topClasses[0];
        cornerne.innerHTML = "&nbsp;";
        var cornernw = document.createElement("span");
        cornernw.className = roundedCorners.topClasses[1];
        cornernw.innerHTML = "&nbsp;";

        // Generate bottom divs
        var cornerse = document.createElement("span");
        cornerse.className = roundedCorners.bottomClasses[0];
        cornerse.innerHTML = "&nbsp;";
        var cornersw = document.createElement("span");
        cornersw.className = roundedCorners.bottomClasses[1];
        cornersw.innerHTML = "&nbsp;";   

        // Add top corners before content
        targetObject.insertBefore(cornernw, targetObject.firstChild);
        targetObject.insertBefore(cornerne, targetObject.firstChild);

        // Add bottom corners after content
        targetObject.appendChild(cornerse);
        targetObject.appendChild(cornersw);
            }
        }
    }
 }
 
// Add function to onload handler
addEvent('onload', window, setCorners);
