
function validateForm()
{
    var i,p,q,nm,test,num,min,max,errors='',args=validateForm.arguments;

    for (i=0; i<(args.length-3); i+=4) {
        test = args[i+2];
        nm   = args[i+3];
        obj  = MM_findObj(args[i]);
        val  = MM_findObj(args[i]);
        if (val) {
            if ((val=val.value)!="") {
                obj.className = 'input';
                if (test.indexOf('isEmail')!=-1) {
                    p=val.indexOf('@');
                    if (p<1 || p==(val.length-1)) {
                        errors+='- '+nm+' must contain an e-mail address.\n';
                        obj.className = 'form_error';
                    }
                } else if (test.indexOf('isPhone') != -1) {
                    formatPhone(obj);
                } else if (test!='R') {
                    num = parseFloat(val);
                    if (isNaN(val)) {
                        errors+='- '+nm+' must contain a number.\n';
                        obj.className = 'form_error';
                    }
                    if (test.indexOf('inRange') != -1) {
                        p=test.indexOf(':');
                        min=test.substring(8,p);
                        max=test.substring(p+1);
                        if (num<min || max<num) {
                            errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
                            obj.className = 'form_error';
                        }
                    }

                }
            } else {
                obj.className = 'input';
                if (test.charAt(0) == 'R') {
                    errors += '- '+nm+' is required.\n';
                    obj.className = 'form_error';
                }
            }
        }
    }
    if (errors) alert('The following error(s) occurred:\n'+errors);
    document.MM_returnValue = (errors == '');
}

function resetForm(obj)
{
    obj.reset();
    for (i=0; i<obj.elements.length; i++) {
        if (obj.elements[i].type == 'select-one' || obj.elements[i].type == 'select-multiple' || obj.elements[i].type == 'text' || obj.elements[i].type == 'textarea') {
            obj.elements[i].className = 'form_input';
        }
    }
    obj.elements[0].focus();
    window.scrollTo(0,0);
    return true;
}

function isChecked(e)
{
    checked = false;
    for (i=0; i<e.length; i++) {
        if (e[i].checked) {
            checked = true;
        }
    }
    return checked;
}