(function( $ ){
  $.fn.newExpander = function(options) {
	var opts = $.extend({}, $.fn.newExpander.defaults, options);
	return this.each(function() {
		var o = $.meta ? $.extend({}, opts, $this.data()) : opts;
		var $this = $(this);
		$this.wrapInner('<div class="content_inner" />');
		if($('.content_inner',$this).height() > o.minHeight)
		{
			var topButtons = '<div class="button_div" style="text-align:right">'
						  + '<span class="button" style="cursor:pointer">'
						  + '<span class="expand_txt">'+o.expandText+'</span>'
						  + '<span class="collapase_txt">'+o.collapseText+'</span>'
						  + '</span>'
						  + '</div>';
			
			if(o.buttonPosition == 'top'){
				$this.prepend(topButtons);
			}
			else if(o.buttonPosition == 'bottom'){
				$this.append(topButtons);
			}
			else{$this.append(topButtons);}
			
			$this.addClass('expandable_content');
			var contentHeight = ($('.content_inner',$this).height()) + 30;
			$('.content_inner',$this).height(o.minHeight);
			$('.content_inner',$this).css('overflow','hidden');
			$('.button_div .collapase_txt',$this).css('display','none');
			
			$('.button_div .button',$this).click(function(){
				if(($('.content_inner',$this).height()) == o.minHeight){
					$('.content_inner',$this).css({height:'100%','overflow':'visible'});
					$(this).addClass('collapse');
					$('.expand_txt',$this).css('display','none');
					$('.collapase_txt',$this).css('display','inline');
				}
				else{$('.content_inner',$this).css({height:o.minHeight,'overflow':'hidden'});
					$(this).removeClass('collapse');
					$('.expand_txt',$this).css('display','inline');
					$('.collapase_txt',$this).css('display','none');	
				}
			});	
		}
	});
	
  };
  
 $.fn.newExpander.defaults = {
	minHeight: 200, // Minimum Height of the DIV
	expandText: 'Expand', // Text for Expand button
	collapseText: 'Collapse', // Text for Collapse button
	buttonPosition: 'top' // Expand/Collapse button Position (top or Bottom);
};
})( jQuery );
