function check_form(form) {
    for (var i = 0; i < form.elements.length; i++) {
        if ( form.elements[i].name.indexOf("field") < 0 ) continue;
        
        var field = parseInt(form.elements[i].name.substr(5));
        
        if ( form.elements[i].className.indexOf("required") > -1 ) {
            if ( form.elements[i].value.length <= 0 ) {
                v = document.getElementById("lf-" + field)
                if ( v )
                    alert( v.innerHTML.substr(0, v.innerHTML.length - 1) + " required." );
                else
                    alert( "Field " + field + " required." );
                form.elements[i].focus();
                return false;
            }
        }
        
        if ( form.elements[i].className.indexOf("validate") > -1 ) {
            var okay = true;
            if ( form.elements[i].className.indexOf("email") > -1 ) {
                if ( !isEmail(form.elements[i].value) ) okay = false;
            }
            if ( form.elements[i].className.indexOf("number") > -1 )
                if ( !isSignedInteger(form.elements[i].value) ) okay = false;
            
            if ( !okay ) {
                v = document.getElementById("lf-" + field)
                if ( v )
                    alert( v.innerHTML.substr(0, v.innerHTML.length - 1) + " must be valid." );
                else
                    alert( "Field " + field + " must be valid." );
                form.elements[i].focus();
                return false;
            }
        }                    
    }
    return true;
}


// Adapted from Netscape Validation library
// http://developer.netscape.com/library/examples/javascript/formval/overview.html
// 18 Feb 97 created Eric Krock
// (c) 1997 Netscape Communications Corporation

function isDigit (c) {
    return ((c >= "0") && (c <= "9"))
}
function isInteger (s) {
    var i;

    for (i = 0; i < s.length; i++) {   
        var c = s.charAt(i);
        if (!isDigit(c)) return false;
    }

    return true;
}

function isSignedInteger (s) {

    var startPos = 0;
    var secondArg = defaultEmptyOK;

    // skip leading + or -
    if ( (s.charAt(0) == "-") || (s.charAt(0) == "+") )
       startPos = 1;    
    return (isInteger(s.substring(startPos, s.length)))
}

function isEmail (s) {
  
    var i = 1;
    var sLength = s.length;

    while ((i < sLength) && (s.charAt(i) != "@")) i++;

    if ((i >= sLength) || (s.charAt(i) != "@")) return false;
    else i += 2;

    while ((i < sLength) && (s.charAt(i) != ".")) i++;

    if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
    else return true;
}