(function($){$.fn.expandable=function(options){debug(this);return this.each(function(){var $this=$(this);var defaults={button:$this.find('a.expander'),buttonBackground:'#aaa',axis:'vertical',expandEvent:'click'};var opts=$.extend({},defaults,options);var o=$.meta?$.extend({},opts,$this.data()):opts;var button=o.button;$this.data('originalHeight',$this.css('height'));$this.data('originalWidth',$this.css('width'));$(button).bind(o.expandEvent,function(e){switch(o.axis){case'vertical':var currHeight=$this.css('height');if(currHeight==$this.data('originalHeight')){var originalHeight=$this.height();var newHeight=$this.css('height','auto').height();$this.css('height',originalHeight);$this.animate({height:newHeight},o.speed);$(button).css('bottom','10px');$(button).css('bottom','0px')}else{$this.animate({height:$this.data('originalHeight')},o.speed)}break;case'horizontal':var currWidth=$this.css('width');if(currWidth==$this.data('originalWidth')){var originalWidth=$this.width();var newWidth=$this.css('width','auto').width();$this.css('width',originalWidth);$this.animate({width:newWidth},o.speed)}else{$this.animate({width:$this.data('originalWidth')},o.speed)}break;default:}})})};function debug($obj){if(window.console&&window.console.log)window.console.log('expandable selection count: '+$obj.size())}})(jQuery);