/**
*
 * This script contains all the basic DOM functions
 * which are used in several files.
 *
 * @author     Vera Kern <vera@worksmartlabs.com>
 * @copyright  2008 WorkSmart Labs, Inc.
 */

/**
 * @param string name
 * @return DOM Element with the specified name
 */
function el(name) {
    return document.getElementById(name);
}

/**
 * This function hides the specified DOM Element
 * @param DOM Element element
 */
function displayNone(element) {
    element.style.display = 'none';
}

/**
 * This function displays the specified DOM Element
 * @param DOM Element element
 */
function displayBlock(element) {
    element.style.display = 'block';
}

/**
 * This function hides all elements in the array
 * @param array of element names
 */
function hideAll(arrayOfNames) {
    for (var n = 0; n < arrayOfNames.length; n++) {
        displayNone(el(arrayOfNames[n]));
    }
}

/**
 * This function displays all elements in the array
 * @param array of element names
 */
function displayAll(arrayOfNames) {
    for (var n = 0; n < arrayOfNames.length; n++) {
        displayBlock(el(arrayOfNames[n]));
    }
}

/**
 * This function shows or hides a specified DOM Element
 * depending on the current status of the element.
 * @param string name
 * @return -
 */
function toggleDiv(name) {
    element = el(name);
    if (element.style.display == 'block') {
        displayNone(element);
    } else {
        displayBlock(element);
    }
}

/**
 * This function adds an onclick handler to a DOM element
 * @param  DOM Element domElement
 * @param Object handlerObject
 * @param Function handlerFunction
 * @return -
 */
function setClickHandler(domElement, handlerObject, handlerFunction) {
   domElement.onclick = function() {
      handlerFunction.call(handlerObject)
   };
}

/**
 * This function adds an onblur handler to a DOM element
 * @param  DOM Element domElement
 * @param Object handlerObject
 * @param Function handlerFunction
 * @return -
 */
function setBlurHandler(domElement, handlerObject, handlerFunction) {
   domElement.onblur = function() {
	   handlerFunction.call(handlerObject)
   };
}

/**
 * This function adds an onfocus handler to a DOM element
 * @param  DOM Element domElement
 * @param Object handlerObject
 * @param Function handlerFunction
 * @return -
 */
function setFocusHandler(domElement, handlerObject, handlerFunction) {
   domElement.onfocus = function() {
	   handlerFunction.call(handlerObject)
   };
}