/****************************************************************************/
/* display functions */
/****************************************************************************/
var errorsVisible = false;

function makeVisible(nr) {
    if (document.layers) {
        document.layers[nr].visibility = 'show'
    }
    else if (document.all) {
        document.all[nr].style.visibility = 'visible';
    }
    else if (document.getElementById) {
        document.getElementById(nr).style.visibility = 'visible';
    }
}

function makeUnVisible(nr) {
    if (document.layers) {
        document.layers[nr].visibility = 'hide'
    }
    else if (document.all) {
        document.all[nr].style.visibility = 'hidden';
    }
    else if (document.getElementById)  {
        document.getElementById(nr).style.visibility = 'hidden';
    }
}

function setDisplay(nr,display)
{
    if (document.layers) {
        document.layers[nr].display = display;
    }
    else if (document.all) {
        document.all[nr].style.display = display;
    }
    else if (document.getElementById) {
        document.getElementById(nr).style.display = display;
    }
}

function setMessage(id,msg) {
    if (document.getElementById) {
        document.getElementById(id).innerHTML = msg;
    }
    else if (document.layers) {
        document.layers[id].innerHTML = msg;
    }
    else if (document.all) {
        document.all[id].innerHTML = msg;
    }
}

function addMessage(id,msg) {
    if (document.getElementById) {
        document.getElementById(id).innerHTML += msg;
    }
    else if (document.layers) {
        document.layers[id].innerHTML += msg;
    }
    else if (document.all) {
        document.all[id].innerHTML += msg;
    }
}

function addError(id,msg) {
    addMessage(id,'<li class="errors">'+msg+'</li>\n');

    if (!errorsVisible) {
        errorsVisible = true;
        showErrors("errorTab");
    }
}

function resetErrors(id) {
    setMessage(id,'');
}

function showErrors(id) {
        makeVisible(id);
        setDisplay(id,'block');
}

function hideErrors(id) {
        setDisplay(id,'');
        makeUnVisible(id);
}

/***************************************************************************/
/* validation functions */
/***************************************************************************/
var reWhitespace = /^\s+$/
var reFloat =   /^((\d+(,\d*)?)|((\d*,)?\d+))$/
var rePrecision =   /^((\d+(,\d{0,4})?)|((\d*,)?\d{0,4}))$/

var reInteger = /^\d+$/

function isEmpty(s) {
   return ((s == null) || (s.length == 0))
}

function isWhitespace (s) {
    return (isEmpty(s) || reWhitespace.test(s));
}

function isFloat (s) {
    if(isWhitespace(s)) return true;
    else return reFloat.test(s);
}

function isInteger (s) {
    if(isWhitespace(s)) return true;
    else return reInteger.test(s);
}

function precision (s) {
    if(isWhitespace(s)) return true;
    else return rePrecision.test(s);
}

/* EOF */