(function($){
    $.fn.doUpdate = function(options){

        var url, userData, target = this;
        var settings = {
          'object': 'event',
          'method': 'get',
          'data': null,
          'response': 'html',
          'handler': function(data){
              target.html(data);
          }
        };

        this.each(function(){
            
           if(options){
               $.extend(settings, options);
           } 
        });
        
        if(settings.method == 'post' || settings.data == null){
            url = '/services/' + settings.object + '/';
            userData = settings.data;
        } else {
            url = '/services/' + settings.object + '/' + settings.data + '/';
            userData = {};
        }
        
        $.ajax({
            url: url,
            dataType: settings.response,
            type: settings.method.toUpperCase(),
            success: settings.handler,
            data: userData
        });
        
        return this;
        
    };
})(jQuery);

function liveUpdate(){
    $('.liveUpdate').each(function(){
       var id = $(this).attr('id'), target = $(this);
       
       saveState(id);
       
       $(this).doUpdate({
           object: $(this).attr('id'),
           handler: function(data){
               target.html(data);
               loadState();
           }
       });
   });
   
   return true;
}
