function is_Valid(form){
    var valid = true;
    form.select('.required').each(function(suspicious_input){
        var local_valid = validate(suspicious_input);
        local_valid === false ? valid = false : true;
    });
    return valid;
}
// Clears "not-valid" inputs
//
function clear_hints(){
    $$('.not-valid').invoke('removeClassName','not-valid');
}
//
//
function validate(suspicious_input){
    // emails
    if(suspicious_input.title == "email"){
        if(!RegExp("[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}").test(suspicious_input.value)){
            suspicious_input.addClassName("not-valid");
            return false;
        }
    }else{

        if(RegExp("^$|^(\S)*$").test(suspicious_input.value)){
            suspicious_input.addClassName("not-valid");
            return false;
        }

    }
    return true;

}

// Main method
//
document.observe('dom:loaded', function(evt){
    $$("form").each(function(form){
        form.observe("submit", function(evt){

            clear_hints();
            is_Valid(evt.element()) === false ? evt.stop() : true;
        });
    });

});

