 /*please see http://vailo.wordpress.com/2008/07/23/php-form-class-with-jquery/ */ 
 //Fixed a couple of small bugs and added ajax postback functionallity
 //
 //Requires jQuery.Form.js 
 jQuery(document).ready(function() {       
    jQuery('form.formoo').submit(function(event) {      
        var id = jQuery(this).attr('id');
        var form = jQuery('form#'+id);
        var formLog = jQuery('div#log_'+form.attr('id'));
        var formValid = true;
        formLog.html('');        
        jQuery(':input', form).each(function(i) {
            var type = this.type;
            var value = this.value;
            var name = this.name;
            var object = jQuery(this);
            if(type != 'hidden' && type != 'submit' && type != 'radio') {
                if(type == 'checkbox') {
                    value = jQuery('#' + form.attr('id') + ' :checkbox[name=' + name + ']:checked').size();
                }
                var data = jQuery.ajax({url: 'index.php?interface=ajax&form=' + form.attr('id') + '&field=' + name + '&value=' + value, async: false, type: 'POST', data: {}}).responseText;                     
                if(data) {
                    if(object.attr('class') == "fieldinlineInvalid" || object.attr('class') == "fieldinlineValid" || object.attr('class') == "fieldinline")
                    {
                          object.attr('class', 'fieldinlineInvalid'); 
                    }
                    else 
                    {
                        object.attr('class', 'formooFieldInvalid');
                        object.parent().find('span.formooPatrol').html(data);
                    }
                    formValid  = false;
                } else {
                    if(object.attr('class') == "fieldinlineInvalid" || object.attr('class') == "fieldinlineValid" || object.attr('class') == "fieldinline")
                    {
                          object.attr('class', 'fieldinlineValid'); 
                    }
                    else object.attr('class', 'formooFieldValid');
                    object.parent().find('span.formooPatrol').html('');
                }
            }
        });
        
        if(! formValid) event.stopImmediatePropagation();
        return formValid;
        this.blur();
    });
    
})

//reprocess the ajax hooks for a form
function ProcessForm($selector)
{
     jQuery($selector).submit(function(event) {      
        var id = jQuery(this).attr('id');
        var form = jQuery('form#'+id);
        var formLog = jQuery('div#log_'+form.attr('id'));
        var formValid = true;
        formLog.html('');        
        jQuery(':input', form).each(function(i) {
            var type = this.type;
            var value = this.value;
            var name = this.name;
            var object = jQuery(this);
            if(type != 'hidden' && type != 'submit' && type != 'radio') {
                if(type == 'checkbox') {
                    value = jQuery('#' + form.attr('id') + ' :checkbox[name=' + name + ']:checked').size();
                }
                var data = jQuery.ajax({url: 'index.php?interface=ajax&form=' + form.attr('id') + '&field=' + name + '&value=' + value, async: false, type: 'POST', data: {}}).responseText;                     
                if(data) {
                    if(object.attr('class') == "fieldinlineInvalid" || object.attr('class') == "fieldinlineValid" || object.attr('class') == "fieldinline")
                    {
                          object.attr('class', 'fieldinlineInvalid'); 
                    }
                    else 
                    {
                        object.attr('class', 'formooFieldInvalid');
                        object.parent().find('span.formooPatrol').html(data);
                    }
                    formValid  = false;
                } else {
                    if(object.attr('class') == "fieldinlineInvalid" || object.attr('class') == "fieldinlineValid" || object.attr('class') == "fieldinline")
                    {
                          object.attr('class', 'fieldinlineValid'); 
                    }
                    else object.attr('class', 'formooFieldValid');
                    object.parent().find('span.formooPatrol').html('');
                }
            }
        });
        
        if(! formValid) event.stopImmediatePropagation();
        return formValid;
        this.blur();
    });
}
