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

        
        $('form#'+$form+' :input').each(function(event){
            $(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#'+$form+' [name="antispam"]').val() == ''){
        
            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;
    }
