(function(jQuery) {
    jQuery.fn.extend({
        showHide: function(options) {

         var defaults = {
         clipperId:'clipper_', //Id die an das versteckte element gehängt wird
         divider: '<!--stop-->', //wird als Trenner gesetzt
         ender:'', //wird ans letzte Wort gehängt
         bttnId:'shower_',//Id des generierten Buttons
         bttnClass:'more',//Klasse des generierten Butten
         moreText:'[mehr]',//Text des generierten Button wenn geschlossen
         hideText:'[weniger]',//Text des generierten Button wenn geöffnet
         autoBreak:false, //false: manuelle Setzung, words: nach x Wörtern, chars: nach x Zeichen
         amount:200,//Menge der wörter/Zeichen wenn autoBreak nicht false
         trueBreak:true,// Wenn Chars beim AutoBreak gewählt wurden, werden weitere zeichen eingefügt, solange eine Leerstelle kommt (so werden keine Wörter abgehackt)
         enderId:'hider_' //Id des... Spans
         }


	        var opt = jQuery.extend(defaults, options);
            return this.each(function(i,element) {
		        var obj = jQuery(this);
            if(opt.autoBreak !=false){
            var modArr =obj.html()
            var modArr = modArr.replace(opt.divider,'')
            if(opt.autoBreak=="words"){
            var conn=' '
            }else
            if(opt.autoBreak=="chars"){
            var conn=''
            }
            var modArr=modArr.split(conn)
            if(opt.trueBreak===true&&opt.autoBreak=="chars"){
            if(modArr[opt.amount]!= ' '){
            do{opt.amount=opt.amount+1}while(modArr[opt.amount]!= ' ')
            }

            }
            modArr.splice(opt.amount,0,opt.divider)
            var modString = modArr.join(conn)
            obj.html(modString);
            }
             var clipArr = obj.html().split(opt.divider);
             obj.html('')
             if(opt.ender==''){var ending=''}else{var ending = '<span style="display:none" id="'+opt.enderId+i+'" >'+opt.ender+'</span>'}

             obj.append(clipArr[0]+ending+'<div id="'+opt.clipperId+i+'" style="display:none">'+clipArr[1]+'</div>');
             obj.append('<a href="#" class="'+opt.bttnClass+'" id="'+opt.bttnId+i+'">'+opt.moreText+'</a>')
              jQuery('.'+opt.bttnClass,obj).click(function(){
              var buttonId=jQuery(this).attr('id')
              var buttonId= buttonId.replace(opt.bttnId,'')
              if(jQuery('#'+opt.clipperId+buttonId).is(':hidden')){
              jQuery('#'+opt.enderId+buttonId).css('display','block');
              jQuery('#'+opt.clipperId+buttonId).fadeIn('slow')
              jQuery('#'+opt.bttnId+buttonId).html(opt.hideText)
              }else{
              jQuery('#'+opt.clipperId+buttonId).fadeOut('slow')
              jQuery('#'+opt.enderId+buttonId).css('display','none');
              jQuery('#'+opt.bttnId+buttonId).html(opt.moreText)

              }
              return false;



             })


             })
        }
    })
})(jQuery)






