(function($) 
{
  
  
  $.fn.showIndicator = function()
  {
    this.each(function() 
    {
      if($(this).data('loadingObj') || !$(this).is(':visible'))
      {
        return this; 
      }
      
      var top = $(this).offset().top;
      var left = $(this).offset().left;
      var sw = $(this).outerWidth();
      var sh = $(this).outerHeight();
               
      var loadingObj = $('<div style="z-index: 666; position: absolute; background: #fff url(\'/ff/images/loading4.gif\') no-repeat scroll 50% 50%;"></div>');
    loadingObj.css({
      left : left,
      top : top,
      height : sh, 
      width: sw, 
      opacity: '0.5'});
    
      loadingObj.hide().appendTo('body').fadeIn(150);
      $(this).data('loadingObj',loadingObj);
  
    });
    
    return this;
  };
  
  $.fn.hideIndicator = function(time,callback)
  {
    if(time == undefined)
    {
      time = 150; 
    }
    
    
    this.each(function() 
    {     
    
      var loadingObj = $(this).data('loadingObj');
      $(this).removeData('loadingObj');
      if(loadingObj)
      {
        
        if(time == 0)
        {
          loadingObj.remove();
          return this;
        }
        
        loadingObj.height( $(this).outerHeight());
        loadingObj.width( $(this).outerWidth());

        loadingObj.fadeOut(time,function()
        {
          loadingObj.remove();
          if(callback)
          {
            callback(); 
          }
        });
      }
      });
      
      return this;
    };
  
  
  
  /*
   $.fn.enableLoading = function(settings) 
   {
     var config = 
     {
         'foo': 'bar'
     };
     
     if (settings) $.extend(config, settings);
 
     this.each(function() 
     {
       if($(this).data('loadingEnabled') == '1')
       {
         return;
       }
       
       var objectToFade = $(this);
       var loadingObj = null;
       var targetObjects = $.merge($(this),$(this).contents())
       
       $(targetObjects).ajaxSend(function()
       {
         
         var top = $(this).offset().top;
         var left = $(this).offset().left;
         var sw = $(this).outerWidth();
         var sh = $(this).outerHeight();
                  
         loadingObj = $('<div style="z-index: 666; position: absolute; background: #fff url(\'/ff/images/loading4.gif\') no-repeat scroll 50% 50%;"></div>');
         loadingObj.css({
           left : left,
           top : top,
           height : sh, 
           width: sw, 
           opacity: '0.5'});
         
         loadingObj.hide();
         loadingObj.appendTo('body');
         loadingObj.fadeIn(150);
        
       });
       
       $(targetObjects).ajaxStop(function()
       {
         
         
         loadingObj.height( $(this).outerHeight());
         loadingObj.height( $(this).outerWidth());
         
         loadingObj.fadeOut(150,function()
         {
           loadingObj.remove();
         });
         
         
       });
       
       $(this).data('loadingEnabled','1');
     });
 
     return this;
   };*/
 
 })(jQuery);

