/*
    Initialize Events
    ---------------------------------------------------------------*/
    $(document).ready(function(event){
        $('a[rel="submit_form"]').bind('click',validate_form);
    });
    
    
    
    
    
/*
    Form Events
    ---------------------------------------------------------------*/
    
    
    /* Validate Form
    ---------------------------------------------------------------*/
    function validate_form(event){
        var $form                       = $(this).parents('form:eq(0)').attr('id');
        var $form_errors                = 0;
        var $form_fields                = [];
        var $form_message               = '';
        
        $(this).hide();

        
        if(($('form#'+$form+' [name="antispam"]').val() == '') || ($('form#'+$form+' [name="user_form_antispam"]').val() == '')){
        	$('form#'+$form+' :input').each(function(e){
        	    $(this).parents('div:eq(0)').removeClass('fail');
        	
        	    if($(this).parents('div:eq(0)').children('kbd').length > 0){            
        	    	if($(this).val()       == ''){
        	            $form_errors       ++;
        	            $form_message       = $form_message+'\n > '+$(this).siblings('label').text();
        	            $form_fields.push($(this).attr('name'));
        	            $(this).parents('div:eq(0)').addClass('fail');
        	    	} else if($(this).parents('ol').hasClass('field_radio') && $('[name="'+$(this).attr('name')+'"]:checked').length == 0){
        	            if(!in_array($(this).attr('name'),$form_fields)){
        	                $form_errors   ++;
        	                $form_message   = $form_message+'\n > '+$(this).parent().parent().siblings('label').text();
        	                $form_fields.push($(this).attr('name'));
        	            }
        	            
        	            $(this).parents('div:eq(0)').addClass('fail');
        	        }
        	    }
        	});
        
        
            if($form_errors            == 0){
                if(event.data          && event.data.callback != undefined){
                    var $callback       = event.data.callback;
                
                    eval($callback)();
                } else {
                    $('form#'+$form).submit();
                }
            } else {
                alert("There are [ "+$form_errors+" ] form errors in your submission.\n\nPlease review your entry, fulfill all required fields, and resubmit.\n\n"+$form_message);
                $(this).show();
            }
        }
        
        return false;
    }
