function validate_and_submit_form(f) {
    
	var inputs=document.getElementsByTagName('INPUT');
    var selects=document.getElementsByTagName('SELECT');
	var textareas=document.getElementsByTagName('TEXTAREA');
	
    for (var i=0;i<inputs.length;i++) {
        var x=inputs[i];
        if ((x) && (x.getAttribute) && (x.getAttribute('required')==1)){
            if ((x.type) && (x.type.toUpperCase() == 'TEXT')) {
                if (x.value == '') {
					var fieldName = x.name
                    alert('Please enter a value for ' + fieldName.replace("_", " "));
                    try {
                        x.focus();
                        x.select();
                    } catch(e) {
                    }
                    return false;
                }
				
				var fieldName = x.name
				if (fieldName.indexOf("Email") != -1) {
					if (checkEmail(x.value) == false) {
						alert('Please enter a valid email address');
						try {
							x.focus();
							x.select();
						} catch(e) {
						}
						return false;
					}
				}				
            }
        }
    }
    
    for (var i=0;i<selects.length;i++) {
        var x=selects[i];
        if ((x) && (x.getAttribute) && (x.getAttribute('required')==1)){
                if (x.value == '') {
                    alert('Please enter a value for ' + x.name);
                    try {
                        x.focus();
                        x.select();
                    } catch(e) {
                    }
                    return false;
                }
        }
    }
    
    for (var i=0;i<textareas.length;i++) {
        var x=textareas[i];
        if ((x) && (x.getAttribute) && (x.getAttribute('required')==1)){
                if (x.value == '') {
                    alert('Please enter a value for ' + x.name);
                    try {
                        x.focus();
                        x.select();
                    } catch(e) {
                    }
                    return false;
                }
        }
    }	
	
	
    f.submit();
    for (var i=0;i<inputs.length;i++) {
        try {
            inputs[i].disabled=true;
        } catch (e) {
        
        }
    }
     for (var i=0;i<selects.length;i++) {
        try {
            selects[i].disabled=true;
        } catch (e) {

        }
    }
}

function checkEmail(email_address) {
	var filter = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
	if (filter.test(email_address)) {
		return true
	} else {
		return false;
	}
}
