function replace_text( id, aTag, eTag )
{
	aTag = '' + aTag + '';

	input = document.getElementById(id);
	if( input.style.display != 'none' )
	{
		input.focus();

		/* für Internet Explorer */
		if( typeof document.selection != 'undefined' )
		{
			/* Einfügen des Formatierungscodes */
			var range = document.selection.createRange();
			var insText = range.text;
			range.text = aTag + insText + eTag;
			//alert(eTag);

			/* Anpassen der Cursorposition */
			range = document.selection.createRange();
			if (insText.length == 0) {
				range.move('character', -eTag.length);
			} else {
				range.moveStart('character', aTag.length + insText.length + eTag.length);
			}
			range.select();
		}
		/* für neuere auf Gecko basierende Browser */
		else if( typeof input.selectionStart != 'undefined' )
		{
			/* Einfügen des Formatierungscodes */
			var start = input.selectionStart;
			var end = input.selectionEnd;
			var insText = input.value.substring(start, end);
			input.value = input.value.substr(0, start) + aTag + insText + eTag + input.value.substr(end);

			/* Anpassen der Cursorposition */
			var pos;
			if (insText.length == 0) {
				pos = start + aTag.length;
			} else {
				pos = start + aTag.length + insText.length + eTag.length;
			}
			input.selectionStart = pos;
			input.selectionEnd = pos;
		}
		/* für die übrigen Browser */
		else
		{
			/* Abfrage der Einfügeposition */
			var pos;
			var re = new RegExp('^[0-9]{0,3}$');
			while(!re.test(pos)) {
				pos = prompt('Einfügen an Position (0..' + input.value.length + '):', '0');
			}
			if(pos > input.value.length) {
				pos = input.value.length;
			}
			/* Einfügen des Formatierungscodes */
			var insText = prompt('Bitte geben Sie den zu formatierenden Text ein:');
			input.value = input.value.substr(0, pos) + aTag + insText + eTag + input.value.substr(pos);
		};
	};
};

function farbe_waehlen( id )
{
	farbpalette = document.getElementById( id );
	if( farbpalette.style.display == "" )
	{
		farbpalette.style.display = "none";
	} else {
		farbpalette.style.display = "";
	};
};

function farbe_waehlen_schliessen( id )
{
	farbpalette = document.getElementById( id );
	farbpalette.style.display = "none";
};

function vorschau( vorbezeichnung, id )
{
	input = document.getElementById( id );
	vorschau_div = document.getElementById( id + "_vorschau" );
	vorschau_button = document.getElementById( id + "_vorschau_button" );

	if( vorschau_div.style.display == "none" )
	{
		text = "text="+encodeURIComponent( input.value );

		//Laden der Optionen wenn vorhanden
		optionen = "optionen=";
		formular = input;
		while( formular.tagName != 'FORM' && formular.tagName != 'HTML' )
		{
			formular = formular.parentNode;
		};

		sonderzeichen = "formular."+vorbezeichnung+"sonderzeichen_ein";
		if( eval( sonderzeichen ) )
		{
			if( eval(sonderzeichen+".checked") )
			{
				optionen = optionen+"1, 1, ";
			} else {
				optionen = optionen+"0, 1, ";
			};
		} else {
			optionen = optionen+"1, 1, ";
		};

		bbcode = "formular."+vorbezeichnung+"bbcode_ein";
		if( eval( bbcode ) )
		{
			if( eval(bbcode+".checked") )
			{
				optionen = optionen+"1, ";
			} else {
				optionen = optionen+"0, ";
			};
		} else {
			optionen = optionen+"1, ";
		};


		vorschau_div.innerHTML = ajax( "text_vorschau.php?"+optionen, text );
		//vorschau_button.innerHTML = "Bearbeiten";
		vorschau_button.getElementsByTagName("span")[0].style.display = "none";
		vorschau_button.getElementsByTagName("span")[1].style.display = "";

		input.style.display = "none";
		vorschau_div.style.display = "";
	} else {
		input.style.display = "";
		vorschau_div.style.display = "none";
		//vorschau_button.innerHTML = "Vorschau";
		vorschau_button.getElementsByTagName("span")[0].style.display = "";
		vorschau_button.getElementsByTagName("span")[1].style.display = "none";
	};
};

http_request = false;

function ajax( url, post )
{
	http_request = false;

	if ( window.XMLHttpRequest )
	{ // Mozilla, Safari,...
		http_request = new XMLHttpRequest();
		if (http_request.overrideMimeType)
		{
			http_request.overrideMimeType('text/xml');
			// zu dieser Zeile siehe weiter unten
		};
	} else if ( window.ActiveXObject ) { // IE
		try
		{
			http_request = new ActiveXObject( "Msxml2.XMLHTTP" );
		} catch (e) {
			try
			{
				http_request = new ActiveXObject( "Microsoft.XMLHTTP" );
			} catch (e) {};
		};
	};

	if ( !http_request )
	{
		alert( 'Ende :( Kann keine XMLHTTP-Instanz erzeugen' );
		return false;
	};

	http_request.onreadystatechange = alertInhalt;
	http_request.open( 'POST', url, false ); //('Methode','link','JavaScript-Funktion weiter ausgeführt wenn true')
			//GET, POST, HEAD; Bei der Übergabe der Daten per POST ist zu beachten, dass der MIME-Typ der Anfrage wie folgt angepasst werden muss: http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

	http_request.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded' );
	http_request.send( post );

	return http_request.responseText;
};

function alertInhalt()
{
	if (http_request.readyState == 4)
	{
				//0 (nicht initialisiert)
				//1 (lade)
				//2 (geladen)
				//3 (interaktiv)
				//4 (vollständig)
		if (http_request.status == 200)
		{
			//alert(http_request.responseText);
		} else {
			alert('Bei dem Request ist ein Problem aufgetreten.');
		};
	};

}







