function validate(form) {
    
    var errors = new Array;
    if (form.email.value.search(/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/) == -1) {
        
        errors[errors.length] = 'Email address is invalid';
        
    }
    if (form.email.value != form.email_verify.value) {
        
        errors[errors.length] = 'Email address and email verify do not match';
        
    }
    if (form.username.value.search(/^[A-Z0-9]{3,32}$/i) == -1) {
        
        errors[errors.length] = 'Username must be alphanumeric and 3-32 characters.';
        
    }
    if (form.password.value.search(/^[^\s]{6,32}$/i) == -1) {
        
        errors[errors.length] = 'Password must be at least 6 characters long.';
        
    }
    if (form.password.value != form.password_verify.value) {
        
        errors[errors.length] = 'Password and Password Verify do not match';
        
    }
    if (form.password_question.options[form.password_question.selectedIndex].value == '') {
        
        errors[errors.length] = 'Security question has not been selected';
        
    }
    if (form.password_answer.value == '') {
        
        errors[errors.length] = 'Security answer is blank';
        
    }
    if (form.fname.value == '') {
        
        errors[errors.length] = 'First name is required';
        
    }
    if (form.lname.value == '') {
        
        errors[errors.length] = 'Last name is required';
        
    }
    if (form.address.value == '') {
        
        errors[errors.length] = 'Address is required';
        
    }
    if (form.city.value == '') {
        
        errors[errors.length] = 'City is required';
        
    }
    if (form.zip.value == '') {
        
        errors[errors.length] = 'Zip is required';
        
    }
    if (form.country.options[form.country.selectedIndex].value == 'US' && form.state.options[form.state.selectedIndex].value == '') {
        
        errors[errors.length] = 'State is required';
        
    }
    if (form.phone_day.value == '') {
        
        errors[errors.length] = 'Primary phone is required';
        
    }
    if (form.source.options[form.source.selectedIndex].value == '') {
        
        errors[errors.length] = 'Where you heard about us is required';
        
    }
    if (form.purchasing_for.options[form.purchasing_for.selectedIndex].value == '') {
        
        errors[errors.length] = 'Purchasing for is required';
        
    }
    if (form.username.value && getURL('register.php?ajax=1&op=check_username&username='+escape(form.username.value)) != 0) {

        errors[errors.length] = 'Chosen username is already in use - please select a different username';
        
    }
    if (errors.length > 0) {
        
        var errormessage = "The following problems were detected with the information you submitted:\n\n";
        for (var i = 0; i < errors.length; i++) {
            
            errormessage += ' - '+errors[i]+"\n";
            
        }
        errormessage += "\nPlease make appropriate changes and resubmit.";
        alert(errormessage);
        
    }
    return (errors.length == 0) ? true : false;
    
}
