(function ($) {
    $.fn.align = function (options) {
        var defaults = {
            horizontal: 'left',
            vertical: 'top'
        };
        
        var settings = $.extend({}, defaults, options);
        
        return this.each(function () {
            var $obj = $(this);
            var $obj_parent = $obj.parent();
            
            $obj.css({ position: 'relative', margin: 0, lineHeight: 0, padding: 0 });
            // $obj_parent.css({ position: 'relative' });
            
            switch (settings.horizontal) {
                case 'left':    $obj.css({ left: 0 });
                                break;
                                
                case 'center':
                case 'middle':  var offset = ($obj_parent.width() / 2) - ($obj.width() / 2);
                                
                                $obj.css({ left: offset + 'px' });
                                break;
                                
                case 'right':   $obj.css({ right: 0 });
                                break;
            }
            
            switch (settings.vertical) {
                case 'top':     $obj.css({ top: 0 });
                                break;
                            
                case 'center':  var offset = ($obj_parent.height() / 2) - ($obj.height() / 2);
                
                                $obj.css({ top: offset + 'px' });
                                break;
                                
                case 'bottom':  $obj.css({ bottom: 0 });
                                break;
            }
        });
    };
}) (jQuery);
