function clearForm(formObj) {
    for (var i = 0; i < formObj.elements.length; i++) {
        var item = formObj.elements[i]

        if (item.type == "radio" || item.type == "checkbox")
            item.checked = false
        else if (item.type == "text" || item.type == "textarea" || 
                item.type == "password")
            item.value = ""
        else if (item.type == "select-one" || item.type == "select-multiple") {
            for (var j = 0; j < item.options.length; j++) {
                item.options[j].selected = false
            item.options[0].selected = true
            }
        }
    }
    return false
}


function reqFieldNotEmpty(formObj, id) {
    var msg = "Mandatory field cannot be empty!"
    var radioButts = new Object()

    for (var i = 0; i < formObj.elements.length; i++) {
        var item = formObj.elements[i]

        if (item.id == id)
            if (item.type == "radio") {
                if (!radioButts[item.name]) {
                    radioButts[item.name] = false
                    if (item.checked)
                        radioButts[item.name] = true
                }
            }
            else if (item.value == "" && item.type != "checkbox") {
                alert(msg)
                item.focus()
                return false
            }
    }
    for (var prop in radioButts) {
        if (!radioButts[prop]) {
            alert(msg)
            for (var i = 0; i < formObj.elements.length; i++) {
                var item = formObj.elements[i]
                if (item.name == prop) {
                    item.focus()
                    break
                }
            }
            return false
        }
    }
    return true
}


function equalValue(obj1, obj2, msg) {
    if (obj1.value != obj2.value) {
        alert(msg)
        obj1.focus()
        obj1.value = ""
        obj2.value = ""
        return false
    }
    return true
}


function intRange(formObj, id, from, to, msg) {
    var item = formObj.elements[i]
    for (var i = 0; i < formObj.elements.length; i++) {
        if (item.id == id) {
            value = parseInt(item.value)
            if (value > to || value < from) {
                alert(msg)
                obj.focus()
                obj.value = ""
                return false
            }
        }
    }
    return true
}


function checkNumber(formObj, id, msg) {
    if (!msg) { msg = "A number is expected!" }

    for (var i = 0; i < formObj.elements.length; i++) {
        var item = formObj.elements[i]
        if (item.id == id) {
            if (item.value) {
                num = parseFloat(item.value)
                /* undefine != undefine, but number == number */
                if (!(num == num)) {
                    item.focus() 
                    alert(msg) 
                    return false
                }
            }
        }
    }
    return true
}


function checkPosNumber(formObj, id, msg) {
    if (!msg) { msg = "Positive number is expected!" }

    for (var i = 0; i < formObj.elements.length; i++) {
        var item = formObj.elements[i]
        if (item.id == id) {
            if (item.value) {
                num = parseFloat(item.value)
                /* undefine != undefine, but number == number */
                if (!(num == num) || num < 0) {
                    item.focus() 
                    alert(msg) 
                    return false
                }
            }
        }
    }
    return true
}


function checkDate(yObj, mObj, dObj) {
    var y = yObj.value, m = mObj.value, d = dObj.value
    var msg = "Invalid Date"
    var result = true
    if (y < 0)                { yObj.focus(); alert(msg); result = false; }
    else if (m < 1 || m > 12) { mObj.focus(); alert(msg); result = false; }
    else if (d < 1 || d > 31) { dObj.focus(); alert(msg); result = false; }
    else {
        m -= 1
        var dateObj = new Date(y, m, d)
        if (dateObj == 'Invalid Date' || dateObj.getMonth() != m) {
            dObj.focus()
            result = false
        }
    }

    if (result == false)
        alert(msg)
    return result
}


function validEMailAddr(field) {
    var matchAddr = field.value.match(/\b(^(\S+@).+((\.com)|(\.net)|(\.edu)|(\.mil)|(\.gov)|(\.org)|(\..{2,2}))$)\b/gi);

    if (!matchAddr) { 
       alert('Invalid e-mail address!')
       field.focus()
       field.select() 
        return false
    }
    return true
}


