/**
   Intelligent Web Form Validation Functions
   Version 1.1
   Part of Intelligent Web Core
   Copyright Intelligent Web, 2006-2008
**/

function requiredFieldValidate(id, message) {
    if (submitted) {
        var formItem = eval("document.forms[0]." + id);
        if (formItem) {
            if (formItem.value == "") {
                showError(id, message);
                return 1;
            } else {
                return 0;
            }
        } else {
            alert("Can't find: " + formItem);
        }
    }
}

function compareValidate(id1, id2, message) {
    var formItem1 = eval("document.forms[0]." + id1);
    var formItem2 = eval("document.forms[0]." + id2);
    if (formItem1.value != formItem2.value) {
        showError(id1, message);
        return 1;
    } else {
        return 0;
    }
}

function differenceValidate(id1, id2, message) {
    var formItem1 = eval("document.forms[0]." + id1);
    var formItem2 = eval("document.forms[0]." + id2);
    if (formItem1.value == formItem2.value) {
        showError(id1, message);
        return 1;
    } else {
        return 0;
    }
}

function emailValidate(id) {
    var formItem = eval("document.forms[0]." + id);
    if (formItem.value == '') return 0;
    if (formItem.value.length < 7  || formItem.value.indexOf("@") == -1 || formItem.value.indexOf(".") == -1) {
        showError(id, "Please enter a valid email address");
        return 1;
    } else {
        return 0;
    }
}

function dateValidate(id, message) {
    var formItem = eval("document.forms[0]." + id);
    if (formItem.value == '') return 0;
    var regexpDate = /^\d{2}\/\d{2}\/\d{4}$/
    if (formItem.value.search(regexpDate)==-1) {
        showError(id, message);
        return 1;
    } else {
        return 0;
    }
}

function noHtmlValidate(id, message) {
    var formItem = eval("document.forms[0]." + id);
    if (formItem.value.indexOf('<')>-1) {
        showError(id, message);
        return 1;
    } else {
        return 0;
    }
}

function numberValidate(id, message) {
    var formItem = eval("document.forms[0]." + id);
    if (formItem.value == '') return 0;
    if (isNaN(formItem.value)) {
        showError(id, message);
        return 1;
    } else {
        // ensure it is an integer
        formItem.value = Math.round(formItem.value);
        return 0;
    }
}

function showError(id, message) {

    var container = document.getElementById(id + "_container");
    if (container) {
        container.className = "error";
    }
    var errorID = id + "_error";
    var obj = document.getElementById(errorID);
    if (obj) {
        obj.innerHTML = message;
        obj.style.display = "";
    } else {
        alert("ID doesn't exist: " + errorID);
    }
}

function hideError(id) {
    var container = document.getElementById(id + "_container");
    if (container) {
        var formItem = eval("document.forms[0]." + id);
        if (formItem && formItem.value != '') {
            container.className = 'hasValue';
        } else {
            container.className = "empty";
        }

    }
    var errorID = id + "_error";
    var obj = document.getElementById(errorID);
    if (obj) {
        obj.style.display = "none";
    }
}
