/**
 * Diese Funktion fügt BBCodes oder anderes an der stelle des Cursors ein oder ersetzt
 * einen markierten text, bzw.fügt BBcodes ein.
 * @access public
 * @return void
 *
 * aTag => Starttag
 * eTag => Endtag
 * idname => name des Textfeldes in dem die änderung stattfinden soll
 *
 **/


function InsertBBCode(aTag, eTag,idname) {
	var input=document.getElementById(idname);
  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;
    /* Anpassen der Cursorposition */
    range = document.selection.createRange();
    if (insText.length == 0) {
      range.move('character', aTag.length + insText.length + 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 + insText.length + eTag.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);
  }
}



/********************************************************************************************************************/
var output=null;
var bn_http = new Array();
var http_counter=0;
var bn_object=new Array();

/*
 * global benötigte variablen
 *****************************
 * var output
 * var bn_http als array
 * var http_counter als zaehler
 *
 *
 * die Übergabe hier ist wie folgt:
 **********************************
 * url					= url die angesprochen werden soll
 * param				= übergabe parameter bei einer post anweisung
 * request_type = ob der request per get oder post erfolgen soll
 * func					=	eine mit new Function übergebene funktion
 *
 *
 * der Aufruf erfolgt dann zum Beispiel über:
 ********************************************
 * get_bn_content("./test/start.html","modul=test&want=" +
 *							encodeURIComponent("lösungsbücher"),"post",new Function ("bn_show_me("+http_counter+")"));
*/

function bn_get_content(url,param,request_type,func)
{	bn_http[http_counter]=null;
	if(!param) param=null;
	if (window.XMLHttpRequest)
	{  bn_http[http_counter] =  new XMLHttpRequest();
	}
	else 	if (window.ActiveXObject)
				{  bn_http[http_counter] = new ActiveXObject("Microsoft.XMLHTTP");
				}
				else alert("Es ist keine Ajax Möglichkeit vorhanden");

	if (bn_http[http_counter] != null)
	{	if(!request_type) 	request_type="GET";
		bn_http[http_counter].open(request_type, url, true);

		if(request_type!="GET")
		{	bn_http[http_counter].setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8 ');
		}
		bn_http[http_counter].onreadystatechange = func;
	  bn_http[http_counter++].send(param);
	}
}

