function insert_tags($formular,$eingabefeld,PaTag, PeTag, VA)
{


// bei den 0-Listen (erster Eintrag) wird nichts gemacht
    if (PaTag == '--') return;
//  alert($formular);
//  alert($eingabefeld);

    var input = document.forms[$formular].elements[$eingabefeld];
    input.focus();
// Anfang-TAG
	var aTag = PaTag;
// Ende-Tag
	var eTag = PeTag;

	if (VA == 'list')

		eTag = "\n"  + PeTag;


	var output_selection = '';

//    alert('Form ' + $formular + ' Feld ' + $eingabefeld + ' aTag ' + aTag + ' eTag '+ eTag + ' VA ' + VA);

//    alert(VA);

    var Leerlink = 'http://';
	var Link 	 = '';


//	if (aTag == '' && eTag == '') return;



	var browser = navigator.userAgent.toLowerCase();
//		alert(browser);

// ************************************************
// für Internet Explorer aber nicht Opera!
// ************************************************
    if (typeof document.selection != 'undefined' &&
	    browser.substr(0,5) 	  != 'opera')
    {

//    	alert('MSIE');



        var range   = document.selection.createRange();
        var insText = range.text;



// wurde auf Link geklickt, so wird geprüft,
// ob bereits ein Text (Link?) markiert wurde.
        if (VA == 'link' ||
        	VA == 'imagelink')
        {

            aTag = '';
            eTag = '';

//        	alert('bin in Link');

// der reine Input
//            alert(insText);
//            alert(Leerlink);
            if (insText.length > 0)
            {
// wurde bereits ein Link im Text markiert, so muss die
// Abfrage nach einem Link nicht erfolgen.
                if (insText.substr(0,7) == Leerlink &&
                    insText.length >= 12)
                {
                    Link 			 = insText;
                    output_selection = Link;

					if (VA == 'link')
					{
                        aTag = '[url=' + Link + ']';
                        eTag = '[/url]';
					}
					else
					{
                        aTag = '[img]';
                        eTag = '[/img]';
					}

                }
                else
                {
                    alert('Der markierte Text ist kein gültiger Link!');
                    return;
                }
			}
			else
			{


		        Link = get_link_from_promt();

        //        alert('Link = ' + Link);

                if (Link != 'leer')
                {
                    output_selection = Link;

					if (VA == 'link')
					{
                        aTag = '[url=' + Link + ']';
                        eTag = '[/url]';
					}
					else
					{
                        aTag = '[img]';
                        eTag = '[/img]';
					}
                }

			}
			range.text  = aTag + output_selection + eTag;
        }
// verarbeiten der Listen
        else if (VA == 'list')
        {

//        	alert('Liste');

	        if (insText.length > 0)
            {
                alert('Bei Listen darf kein Text markiert sein!');
                return;
            }
            else
            {

	            output_selection = get_Text_from_promt('list');

	            if (output_selection != '')
					range.text  = aTag + output_selection + eTag;

// wurde die Liste abgebrochen, so dürfen auch die Tags nicht ausgegeben werden
				else
				{
                    aTag = '';
                    eTag = '';

				}
            }

        }
        else
// Einfügen des Formatierungscodes
	         range.text  = aTag + insText + eTag;


// Anpassen der Cursorposition
        range = document.selection.createRange();


// *************************************************
// den Cursor wieder richtig positionieren
// *************************************************


// wenn ein zusätzlich zu markierender Output
// (zB Link) erzeugt wurde
        if (output_selection != '')
        {

//        	alert('range ' + range.text.length);
// wenn beim Link vorher ein Text markiert wurde
// und ein gültiger Link war
			if (insText.length > 0)
			{
                range.move('character', aTag.length);
                range.moveEnd('character',output_selection.length);

			}

// *************************************************************
// Wenn vorher kein Text markiert wurde
// aber ein zusätzlicher Output erzeugt wurde
// *************************************************************
// bei Listen muss der Cursor nicht ans Ende gestellt werden
// weil er da dann schon ist
			else if (VA != 'list')
			{
                range.move('character', -eTag.length-output_selection.length);
                range.moveEnd('character',output_selection.length);
			}
		}
// alles außer Links
        else
        {
            if (insText.length == 0)
            {
              range.move('character', -eTag.length);
            }
            else
            {
              range.moveStart('character', aTag.length + insText.length + eTag.length);
            }
        }
        range.select();
		$eingabefeld.focus();
    }


// ************************************************
// 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.substr(start, end-start);

//		alert ('Gecko');

//		alert('start ' +start);
//		alert('ende ' +end);
//	    alert(insText);

        if (VA == 'link' ||
        	VA == 'imagelink')
        {

            aTag = '';
            eTag = '';

//            alert(insText);

            if (insText.length > 0)
            {

// wurde bereits ein Link im Text markiert, so muss die
// Abfrage nach einem Link nicht erfolgen.
                if (insText.substr(0,7) == Leerlink &&
                    insText.length >= 12)
                {
                    Link 			 = insText;

                    output_selection = Link;

//                    alert(Link);
					if (VA == 'link')
					{

                        aTag = '[url=' + Link + ']';
                        eTag = '[/url]';
					}
					else
					{
                        aTag = '[img]';
                        eTag = '[/img]';
					}

                }
                else
                {
                    alert('Der markierte Text ist kein gültiger Link!');
                    return;
                }

            }
// wenn kein Input markiert wurde
			else
			{


		        Link = get_link_from_promt();

        //        alert('Link = ' + Link);

                if (Link != 'leer')
                {

                    output_selection = Link;
					if (VA == 'link')
					{

                        aTag = '[url=' + Link + ']';
                        eTag = '[/url]';
                    }
                    else
                    {
                        aTag = '[img]';
                        eTag = '[/img]';

                    }

                }

			}

        	input.value =  input.value.substr(0, start) + aTag + output_selection + eTag + input.value.substr(end);

		}
// ***************************************
// verarbeiten der Listen
// ***************************************
        else if (VA == 'list')
        {

//        	alert('Liste');

	        if (insText.length > 0)
            {
                alert('Bei Listen darf kein Text markiert sein!');
                return;
            }
            else
            {

	            output_selection = get_Text_from_promt('list');

// wurde die Liste abgebrochen, so dürfen auch die Tags nicht ausgegeben werden
	            if (output_selection == '')
				{
                    aTag = '';
                    eTag = '';

				}


            }

        	input.value =  input.value.substr(0, start) + aTag + output_selection + eTag + input.value.substr(end);
        }


// *****************************************
// ohne VA-Parameter werden die TAGS
// entsprechend eingefügt
// *****************************************

        else
        	input.value = input.value.substr(0, start) + aTag + insText + eTag + input.value.substr(end);
        /* Anpassen der Cursorposition */
        var pos;

// *****************************************
// Nachbearbeitung
// *****************************************



// Wenn ein Link eingegeben wurde
        if (output_selection != '')
        {
// bei Listen wird der Cursor ans Ende gestellt
            if (VA == 'list')
			{
                input.selectionStart = start + aTag.length + output_selection.length + eTag.length;
                input.selectionEnd   = start + aTag.length + output_selection.length + eTag.length;

			}
// bei Links wird der Linktext markiert
			else
			{
                input.selectionStart = start + aTag.length;
                input.selectionEnd   = start + aTag.length + output_selection.length;
        	}
        }
// bei allen anderen Tags wird der Cursor ans Ende gestellt
        else
        {

            if (insText.length == 0)
            {
              pos = start + aTag.length;
            }
            else
            {
              pos = start + aTag.length + insText.length + eTag.length;
            }
            input.selectionStart = pos;
            input.selectionEnd   = pos;
		}

//		alert(navigator.userAgent.toLowerCase());

		$eingabefeld.focus();

    }

// ***********************************************
// 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 gib den zu formatierenden Text ein");
        input.value = input.value.substr(0, pos) + aTag + insText + eTag + input.value.substr(pos);
    }



}

function get_link_from_promt()
{

//	alert('hier');

	var Link = "http://";

	var Eingabe = window.prompt("Bitte die URL des Links eingeben", Link);


//  	alert(Eingabe);

  	if (Eingabe != null &&
  		Eingabe != Link &&
  		Eingabe != '')
	  	return Eingabe;
  	else
		return 'leer';


}

function get_Text_from_promt(Parm)
{
	var Text 			= 'http://';
	var return_Text 	= '';
	var ZusatzTag_start = '';
	var ZusatzTag_end 	= '';
	var Eingabe			= '';

	if (Parm == 'list')
	{
		var Text = '';
		ZusatzTag_start = "\n[*]";
		ZusatzTag_end   = '[/*]';
	}

	while (Eingabe != null)
	{
		var Eingabe = window.prompt("Bitte gib einen Listenpunkt ein, lass ihn leer oder klicke auf abbrechen:", Text);
        if (Eingabe != null &&
            Eingabe != Text &&
            Eingabe != '')

	        return_Text =  return_Text +  ZusatzTag_start + Eingabe  + ZusatzTag_end;
	    else
	    	Eingabe = null;

	}

	return return_Text;

}


function set_select_to_startvalue($formular,$select,$startvalue)
{


//	alert(document.forms[$formular].elements[$select].value);
	document.forms[$formular].elements[$select].value = $startvalue;

}
