(function($){
  $.fn.extend({
    pushpop: function(opt){
      return this.each(function(){
        opt = $.extend({up: '0 2px 2px 0', down: '2px 0 0 2px'}, opt || {});

        var node = $(this);
        if (! (node.is('img') || node.is(':image'))) {
          node.find('img,:image').pushpop(opt);
          return;
        }

        node.css('padding', opt.up)
          .bind('mousedown', function(){ $(this).css('padding', opt.down); })
          .bind('mouseup'  , function(){ $(this).css('padding', opt.up); });
      });
    }
  });
})(jQuery);
