/*
 * Ersetzt ein DIV durch ein Flash, das den gleichen Text (ohne HTML-Tags)
 * anzeigt.
 * Die übergebene Höhe sollte auf eine einzeilige Headline gemessen werden,
 * da das JavaScript die Höhe mal der Anzahl der gefundenen Zeilen
 * multipliziert (um ein "Zucken" auf der Website zu vermindern)
 */
function replaceHeadline(id,width,height,font) {
	var div = document.getElementById(id);
	if (div) {
		// Text der Headline suchen
		var lines = 1;
		var text = div.innerText ? div.innerText : div.textContent;
		if (text) {
			// Whitespaces am Anfang und Ende entfernen
			text = text.replace(/^\s+/, "");
			text = text.replace(/\s+$/, "");
			// &-Zeichen ersetzen
			text = text.replace(/&/, "%26");
			// Newlines vereinfachen
			text = text.replace(/[\r\n]+/, "\n");
			// Anzahl Zeilen zählen
			lines = text.split("\n").length;
		}

		// Link der Headline suchen
		var link;
		var atags = getElementsByTagName(div, "a");
		if (atags && atags.length > 0) {
			link = atags[0].href;
		}

		// Flash einsetzen
		var so = new SWFObject("/img/headline.swf", id, width, lines*height, "8", "#FFFFFF");
		so.addVariable("id", id);
		so.addVariable("hltext", text);
		so.addVariable("hlfont", font);
		if (link && link != '') {
			so.addVariable("hllink", link);
		}
		so.addParam("wmode", "transparent");
		so.write(id);

		// Gefundenes DIV zurückliefern
		return div;
	}
}

/*
 * Liefert alle Tags eines bestimmten Namens unterhalb des
 * übergebenen Root-Knotens
 */
function getElementsByTagName(root, tagname) {
	// Neue Liste für zu bearbeitende Knoten
	var todo = new Array(root);
	// Neue Liste für gefundene Tags
	var found = new Array();
	// Tagnamen auf Großbuchstaben bringen
	tagname = tagname.toUpperCase();

	// Liste abarbeiten
	while(todo.length > 0) {
		var tag = todo.pop();
		if (tag.nodeName.toUpperCase() == tagname) {
			found.push(tag);
		}
		if (tag.childNodes) {
			for(var i=tag.childNodes.length-1 ; i>=0 ; --i) {
				todo.push(tag.childNodes[i]);
			}
		}
	}

	return found;
}


function closeLayer() {
	var layer = $('#layer');
	//$('#flash').css("display","none");
	layer.removeClass('block');
	layer.addClass('none');
	$.modal.close();
}

function showLayer() {
	var layer = $('#layer');
	layer.addClass('block');
	layer.modal({
		opacity: 50,
		zIndex: 8000,
		overlayCss:{background:'#000'},
		close: false
	});
}
