function TextExpander(oBlock, bLong) {

	this.oNode = $(oBlock)
	if (!this.oNode) return false

	this.iMaxLength = bLong ? 250 : 130
	this.sClassName = bLong ? 'previewClipLong' : 'previewClip'

	if (this.oNode.offsetHeight > this.iMaxLength) {

		if (this.oNode.offsetHeight - this.iMaxLength < this.iMaxLength * 0.4) {
			return
		}

		this.bHard = Element.hasClassName(this.oNode, 'hard')

		Element.addClassName(this.oNode, this.sClassName)

		if (this.bHard) Element.removeClassName(this.oNode, 'hard')

		this.oExpand = document.createElement('div')
		Element.addClassName(this.oExpand, 'ExpanderButton')

  	var oA = document.createElement('a')
  	oA.className = 'nav'

  	if (this.oNode.nextSibling) {
			this.oNode.parentNode.insertBefore(this.oExpand, this.oNode.nextSibling)
  	} else {
  		this.oNode.parentNode.appendChild(this.oExpand)
  	}

		this.oExpand.appendChild(document.createTextNode(String.fromCharCode(8230) + ' '))
		this.oExpand.appendChild(oA)

  	oA.appendChild(document.createTextNode('mehr'))
  	oA.href = '#'
  	oA.onclick = this.click.bind(this)
	}
}

TextExpander.prototype.click = function() {
	Element.removeClassName(this.oNode, this.sClassName)
	Element.addClassName(this.oNode, 'hard')
	this.oExpand.parentNode.removeChild(this.oExpand)
	if (window.resize)resize()
	return false
}

/*
TextExpander.prototype._getText = function(oParent) {

	for (var c = 0; c < oParent.childNodes.length; c++) {
		var oChild = oParent.childNodes[c]

		switch (oChild.nodeType) {
			case 1:
				//alert('Elementknoten: ' + oChild.nodeName)
				if (oChild.childNodes.length > 0) {
					var oNewNode = this.aElementStack.last().appendChild(oChild.cloneNode(false))
					this.aElementStack.push(oNewNode)
					if (this._getText(oChild) == false) {
						return false
					}
				} else {
					this.aElementStack.last().appendChild(oChild.cloneNode(false))
				}
				break
			case 3:
				var sText = oChild.nodeValue
				var iTextLength = sText.length

				if (iTextLength > this._iRest) {
					var iOffset = this._iRest
					var iPos = sText.indexOf(' ', iOffset)
					this.aElementStack.last().appendChild(
						document.createTextNode(iPos == -1 ? sText : sText.substr(0, iPos))
					)					
					this.aElementStack.last().appendChild(document.createTextNode(' ... '))				
					//this.aElementStack.last().appendChild(document.createElement('br'))

					var oA = document.createElement('a')
					oA.className = 'nav'

					this.aElementStack.last().appendChild(oA)

					oA.appendChild(document.createTextNode('mehr'))
					oA.href = '#'
					oA.onclick = this.click.bind(this)

					return false
				} else {
					this.aElementStack.last().appendChild(document.createTextNode(sText))
					this._iRest -= iTextLength
				}
				break
			default:
				alert('unknown nodeType')
				break
		}
	}
	this.aElementStack.pop()
	return true
}
*/
