
function __rw_debug_div_resize(pixels)
{
    $("rw_debug_div_pane").style.height = parseInt($("rw_debug_div_pane").style.height) + pixels;
    return false;
}

function rw_format_string(args)
{
    var msg = args[0];
    for (var i = 1; i < args.length; i++)
        msg = msg.replace('%s', args[i]);
    return msg;
}

function rw_debug_log() {

    var pane = $('rw_debug_div_pane');

    if (!pane) {
        /* Create a new DIV in the bottom of the page */
        pane = document.createElement('div');
        pane.id = 'rw_debug_div_pane';
        pane.style.background = 'white';
        pane.style.borderWidth = '1px';
        pane.style.borderStyle = 'solid';
        pane.style.borderColor = '#000077';
        pane.style.left = '0px';
        pane.style.right = '0px';
        pane.style.bottom = '0px';
        pane.style.height = '70';
        pane.style.position = 'fixed';
        pane.style.overflow = 'auto';
        pane.style.width = '100%';
        pane.innerHTML = '<a href="#" style="text-decoration: none; font-size: 120%" onclick="return __rw_debug_div_resize(-30)">-</a> ' +
                         '<a href="#" style="text-decoration: none; font-size: 120%" onclick="return __rw_debug_div_resize(30)">+</a><br/>'

        document.body.appendChild(pane);
    }

    var text = document.createElement("span");
    text.appendChild(document.createTextNode(rw_format_string(arguments)));
    text.appendChild(document.createElement('br'));
    pane.appendChild(text);

    pane.scrollTop = pane.scrollHeight;
}

function rw_get_box(element)
{
    element = $(element);
    var pos = Position.page(element);
    var dim = Element.getDimensions(element);

    return {
        x: pos[0],
        y: pos[1],
        height: dim.height,
        width: dim.width,

        left: pos[0],
        top: pos[1],
        right: pos[0] + dim.width,
        bottom: pos[1] + dim.height
    }
}

function rw_swap_nodes(nodeA, nodeB)
{
    if(nodeA.swapNode) {
        nodeA.swapNode(nodeB);
    } else {
        var nextSibling = nodeB.nextSibling;
        var parentNode = nodeB.parentNode;
        nodeA.parentNode.replaceChild(nodeB, nodeA);
        parentNode.insertBefore(nodeA, nextSibling);
    }
}

function rw_swap_css_class(nodes, class_add, class_remove)
{
    for(var i = 0; i < nodes.length; i++) {
        Element.removeClassName(nodes[i], class_remove);
        Element.addClassName(nodes[i], class_add);
    }
}
