(function($){ 
     $.fn.extend({ 
          center: function (options) { 
               var options =  $.extend({ // Default values 
                    inside:window, // element, center into window 
                    transition: 0, // millisecond, transition time 
                    minX:0, // pixel, minimum left element value 
                    minY:0, // pixel, minimum top element value 
                    withScrolling:true, // booleen, take care of the scrollbar (scrollTop) 
                    vertical:true, // booleen, center vertical 
                    horizontal:true // booleen, center horizontal 
               }, options); 
               return this.each(function() { 
                    var props = {position:'absolute'}; 
                    if (options.vertical) { 
                         var top = ($(options.inside).height() - $(this).outerHeight()) / 2; 
                         if (options.withScrolling) top += $(options.inside).scrollTop() || 0; 
                         top = (top > options.minY ? top : options.minY); 
                         $.extend(props, {top: top+'px'}); 
                    } 
                    if (options.horizontal) { 
                          var left = ($(options.inside).width() - $(this).outerWidth()) / 2; 
                          if (options.withScrolling) left += $(options.inside).scrollLeft() || 0; 
                          left = (left > options.minX ? left : options.minX); 
                          $.extend(props, {left: left+'px'}); 
                    } 
                    if (options.transition > 0) $(this).animate(props, options.transition); 
                    else $(this).css(props); 
                    return $(this); 
               }); 
          } 
     }); 
})(jQuery); 

