$('document').ready(function(){

    $('input[type="submit"]').focus(function(){
        $(this).addClass('focused');
    })
    
    $('input[type="submit"]').blur(function(){
        $(this).removeClass('focused');
    })
    
    myCallback = xajax.callback.create(100, 10000);
    
    var curr_button;
    var form;
    var formID;
    
    xajax.callback.global.onRequest = function()
    {
        try
        {        
            var curr_button = jQuery('input[type="submit"].focused').get(0);
            var form = jQuery(curr_button).parents('form');
            var formID = jQuery(form).get(0).id;
            
            jQuery(curr_button).hide();
            
            jQuery('#' + formID + '_button_holder').append('<div id="' + formID + '_loader" class="ajax_loader"></div>');
        }
        catch(err)
        {
            return true;
        }
    };
    
    xajax.callback.global.onComplete = function()
    {
        try
        {
            var curr_button = jQuery('input[type="submit"].focused').get(0);
            var form = jQuery(curr_button).parents('form');
            var formID = jQuery(form).get(0).id;
            
            jQuery(curr_button).show();
            jQuery('#' + formID + '_loader').remove();
        }
        catch(err)
        {
            return true;
        }
    };
    
    xajax.callback.global.onSuccess = function()
    {
        try
        {
            var curr_button = jQuery('input[type="submit"].focused').get(0);        
            var form = jQuery(curr_button).parents('form');
            var formID = jQuery(form).get(0).id;
            
            jQuery(curr_button).css({'background-color': 'green'});
            
            setTimeout(function(){
                jQuery(curr_button).css({'background-color': 'lightgrey'});
            }, 2000);
        }
        catch(err)
        {
            return true;
        }
    };
    
    xajax.callback.global.onError = function()
    {
        try
        {
            var curr_button = jQuery('input[type="submit"].focused').get(0);        
            var form = jQuery(curr_button).parents('form');
            var formID = jQuery(form).get(0).id;
    
            jQuery(curr_button).css({'background-color': 'red'});
            
            setTimeout(function(){
                jQuery(curr_button).css({'background-color': 'lightgrey'});
            }, 2000);
            
            /*
            setTimeout(function(){
                jQuery('#' + formID + '_error').hide('slow', function(){
                    jQuery(curr_button).show();
                });            
            }, 1500);
            */
        }
        catch(err)
        {
            return true;
        }
    };
});
