String.prototype.trim = function() { return this.replace(/^\s+|\s+$/, ''); };

function DOM_cloneLastChild(element)
{
    element = DOM_getElement(element);

    if (!element) {
        return false;
    }

    // insert new node
    element.insertBefore(element.lastChild.cloneNode(true), null);

    return true;
}

function DOM_removeLastChild(element)
{
    element = DOM_getElement(element);

    if (!element) {
        return false;
    }

    // insert new node
    element.removeChild(element.lastChild);

    return true;
}

function DOM_getElement(element)
{
    if (typeof(element) == 'string') {
        // we have an element id
        element = document.getElementById(element);
    }

    return element;
}

/**
 * adds a class name to an element
 *
 * @param	mixed	element	    element or id
 * @param	string	classname   name of class to add
 * @return	boolean	success
 */
function DOM_addClass(element, classname)
{
    element = DOM_getElement(element);

    if (!element) {
        return false;
    }

    element.className += ' ' + classname;

    return true;
}

/**
 * removes a class name to an element
 *
 * @param	mixed	element     element or id
 * @param	string	classname   name of class to remove
 * @return	boolean	success
 */
function DOM_removeClass(element, classname)
{
    element = DOM_getElement(element);

    if (!element) {
        return false;
    }

    element.className = element.className.replace(classname, '').trim();

    return true;
}

// hides and displays block-level elements
function switchlayer(Layer_Name)
{
    DOM_getElement(Layer_Name).style.display
     = (DOM_getElement(Layer_Name).style.display=='block') ? 'none' : 'block';
}

// hides and displays block-level elements
function switchTbody(Layer_Name)
{
    DOM_getElement(Layer_Name).style.display
     = (DOM_getElement(Layer_Name).style.display=='table-header-group') ? 'none' : 'table-header-group';
}
