function get_padding_left( style )
  { if ( style )
	  { var cssrules = style.split(';');
        for ( var i  = 0; i < cssrules.length; i++ )
          { var keyvalue = cssrules[i].replace(/^\s+/,'').replace(/\s+$/,'').split(':');
            var key      = keyvalue[0].replace(/^\s+/,'').replace(/\s+$/,'');
            var value    = keyvalue[1].replace(/^\s+/,'').replace(/\s+$/,'');
    	    if ( key == 'padding-left' ) return parseInt(value)*1;	
          }	
	  }
	return -1;
  }

function switch_icon( image, showopen )
  { //   imgsrc zu + collapse
	if ( showopen )
	  image.src = image.src.replace('expand','collapse');
	else
      image.src = image.src.replace('collapse','expand');
		
	var title = ( showopen ) ? 'aufklappen' : 'zuklappen';
	$(image).attr('title',title);
	$(image).attr('alt',title);
  }

function treeswitch( object, close )
  { var pobject = $(object).parents('table'); pobject = pobject[0]; // übergeordnete Tabelle
    var width   = get_padding_left($(pobject).attr('style'));     // deren Breite
    var stop    = false;                                          // Aufhören mit auf/zuklappen

    $(pobject).nextAll('table').map(function()
	  { if ( ! stop ) 
	      { if ( get_padding_left($(this).attr('style')) > width ) 
	          { if ( close ) $(this).hide(); else $(this).show(); 
	            $('img',this).map(function(){switch_icon(this,close);});
	          }
	        else // beim ersten gleich großen aufhören (Einrückung ist zu Ende)
	          stop = true;
	      } 		 
	  });

    // Bild und Beschriftung umsetzen
    switch_icon(object,close);
  }

// Wrapper für das kürzen von Forenbeiträgen
$( function() 
	{ $('.beitrag').map( function(index) 
			               { if (  $(this).text().length > 250 ) 
		                       $(this).html('<span class="hidden">' + $(this).html() + ' </span>' +
		                    		        '<span class="shorten">' + $(this).text().substring(0,250) + '... </span>' +
		                                    '<span class="mehr">[mehr]</span>'); 
			               } 
	                   );
	  $('.mehr').click( function() 
			              { if ( $(this).text().match('mehr') )
			                  { // einblenden
			            	    $(this.parentNode).children('span.hidden').css('display','inline');
			            	    $(this.parentNode).children('span.shorten').css('display','none');
			            	    $(this).text('[weniger]');
			                  }
			                else // ausblenden
			                  { $(this.parentNode).children('span.hidden').css('display','none');
			            	    $(this.parentNode).children('span.shorten').css('display','inline');
			            	    $(this).text('[mehr]');
			                  }
			              }
	                  )

	  $('.expand').css('cursor','pointer');
	  $('.expand').click( function() { treeswitch(this,this.src.match('expand')); } );   
	  // Falls man auf- und zuklappen kann, Schalter anzeigen
	  if ( $('.expand') ) 
		{ $('#baumansicht').show();
	      $('#forum_collapseall').click( function() { $('.expand').map(function() { treeswitch(this,true); }); });
	      $('#forum_expandall').click( function() { $('.expand').map(function() { treeswitch(this,false); }); });
		}
	}
 );