/**
 * Boolean check
 * accepts 1,0 / true/false / yes,no as boolean values.
 */
function bool(val) {
    retVal = val;
    if (typeof retVal=="string") {
        switch (retVal.toLowerCase()) {
            default:
            case 'false':
            case 'no': 
            case '0': retVal = false;
                      break;
            case 'true':
            case 'yes': 
            case '1': retVal = true;
                      break;
        }
    }
    return (retVal)?true:false;
}

/**
 * Object class attribute may consist of a space separated list of class names.
 * This function iterates thorugh an objects <obj> class list and checks for a match of <match>.
 */
function hasClassName(obj, match) {
    var retVal = false;
    var list = obj.className.split(" ");
    for (var i=0; i<list.length; i++) {
        if (list[i]==match) {
            retVal = true;
            break;
        }
    }
    return retVal;
}

/**
 * Object class attribute may consist of a space separated list of class names.
 * This function adds <name> to an objects <obj> class list and optionally replaces class <remove> with the given class name.
 */
function setClassName(obj, name, remove) {
    var list = obj.className.split(" ");
    if (remove) {
        for (var i=0; i<list.length; i++) {
            if (list[i]==remove) {
                list[i] = name;
                name = "";
                break;
            }
        }
    }
    if (name) list[list.length] = name;
    obj.className = list.join(" ");
}

/**
 * Toggle style display none / block
 */

function flipbox(divID){
	var flipbox=document.getElementById(divID);
	if (flipbox!=null) flipbox.style.display = (flipbox.style.display=='none') ? "block" :"none";
}