function cCutText()
{	
	this.arText = new Array();
	this.countChar = 0;
	this.actualText = 0;
	this.link = false;

	this.linkSetted = false;

	this.lastKnoten = false;
	this.lastText = false;

	//--- Knoten laden dessen unterKnoten später nach Text durchsucht werden
	this.load = function(node, zeichen, link, linktext, sign, haveToSet, beforText)
	{
		if(!node || !zeichen)
		{
			return false;
		}		
		var count = this.arText.length;
		this.arText[count] = new Array();
		this.arText[count]['node'] = node;
		this.arText[count]['zeichen'] = zeichen;
		this.arText[count]['link'] = link;
		this.arText[count]['linktext'] = linktext;
		this.arText[count]['sign'] = (sign) ? sign : " ";		
		this.arText[count]['haveToSet'] = (haveToSet) ? true : false;
		this.arText[count]['afterText'] = (beforText) ? false : true;		
	}

	//--- Suchlauf und Textzählung beginnen
	this.init = function()
	{		
		for(var zahl in this.arText)
		{
			this.actualText = zahl;
			this.linkSetted = false;
			
			this.arText[this.actualText]['node'] = document.getElementById(this.arText[this.actualText]['node']);
			if(!this.arText[this.actualText]['node'])
			{
				continue;
			}
			//--- ab welchem Zeichen soll abgeschnitten werden
			this.countChar = this.arText[this.actualText]['zeichen'];			
			
			//--- beginn die suche nach Knoten
			this._searchText(this.arText[this.actualText]['node']);			

			//--- Wenn Link noch nicht gesetzt wurde aber ein Zwang des Linksetztens besteht
			if(!this.linkSetted && this.arText[this.actualText]['haveToSet'])
			{			
				this.Text += " ";
				this._setLink();
			}
		}
	}
	
	//--- Nach Text Knoten suchen
	this._searchText = function(knoten)
	{
		if(knoten && knoten != this.link)
		{			
			if(knoten.nodeType == 3)
			{					
				//--- Wenn der Text bereits gekürzt wurde sollen die folgenden Text Knoten leer gemacht werden
				if(this.linkSetted)
				{				
					knoten.replaceData(0,knoten.data.length,"");
				}else{
					text = this._trim(knoten.data);
					if(text.length > 0)
					{
						this.Text = text;
						this.Knoten = knoten;
						//--- Wenn dieser Textknoten schon die kritische Grenze überschreitet soll gekürzt werden
						//--- ansonsten Anzahl der Zeichen zählen
						if(this.countChar - this.Text.length > 0)
						{
							this.countChar -= this.Text.length;						
						}else{
							this._cut();
							return true;
						}
					}
				}
			}
			
			if(knoten.hasChildNodes())
			{
				for(var i = 0;i <= knoten.childNodes.length; i++)
				{
					this._searchText(knoten.childNodes[i]);
				}
			}
		}
	}
	
	//--- Zeichen Abschneiden
	this._cut = function()
	{
		//--- soll vor oder nach "Zeichen" abgeschnitten werden
		if(this.arText[this.actualText]['afterText'])
		{			
			var spacePlace = this.Text.indexOf(this.arText[this.actualText]['sign'],this.countChar);			
		}else{
			var spacePlace = this.Text.lastIndexOf(this.arText[this.actualText]['sign'],this.countChar);					
		}		

		//--- Wenn es sich um das letzte oder erste Wort handelt
		if(spacePlace == -1)
		{
			this.countChar -= this.Text.length;
			return false;
		}
		
		this.Text = this.Text.substr(0,spacePlace) + " ";		
		this._setLink();
	}

	//--- Linktext an den Text dran basteln
	this._setLink = function()
	{
		this.link = false;
		
		//--- Wenn ein wirklicher Link gesetzt ist muss ein Element Erstellt werden...
		if(this.arText[this.actualText]['link'])
		{
			this.Knoten.replaceData(0,this.Knoten.data.length,this.Text);		
			this.link = document.createElement("a");
			this.link.href = this.arText[this.actualText]['link'];
			this.link.innerHTML = this.arText[this.actualText]['linktext'];
			this.Knoten.parentNode.insertBefore(this.link,this.Knoten.nextSibling);
		}else{
			//--- ...andernfalls einfach den Linktext an den Text hängen
			this.Text = this.Text + this.arText[this.actualText]['linktext'];
			this.Knoten.replaceData(0,this.Knoten.data.length,this.Text);		
		}		
		this.linkSetted = true;		
	}
	
	this._trim = function(s)
	{
		if(s)
		{
			return s.replace (/^\s+/, '').replace (/\s+$/, '');
		}
	}
}