/*
* Funktionen zur Erstellung von Tags in einer Textarea-Box
*
* Autor           : Joachim Ruf
* Erstellungsdatum: 2008.11.06
*
* Letzte Änderung : 2008.11.14
* Revision        : 1.2


Doku:
2008-11-14 : insertTag() um start- und EndTag erweitert

*/





/**
* @desc Erstellt in der ausgewählten Textarea "secId" den Tag "tagName"
*       für einen Selektierten Bereich in "secId"
* @param secId : Textarea, welche manipuliert werden soll
* @param tagStart : zu startender tag, welcher für den in secId ausgewählten Bereich erstellt werden soll
* @param tagEnd : zu endender Tag, welcher für den in secId ausgewählten Bereich erstellt werden soll
* @return bool
*/
function insertTag(secId, tagStart, tagEnd)
{
    //var tagStart = '<' + tagName + '>';
    //var tagEnd = '</' + tagName + '>';

    var input = document.getElementById(secId);
    input.focus();

    // Internet Explorer
    if(typeof document.selection != 'undefined')
    {
        // Einfügen des Formatierungscodes
        var range = document.selection.createRange();
        var insText = range.text;
        range.text = tagStart + insText + tagEnd;
        // Anpassen der Cursorposition
        range = document.selection.createRange();
        if (insText.length == 0)
            range.move('character', -tagEnd.length);
        else
            range.moveStart('character', tagStart.length + insText.length + tagEnd.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) + tagStart + insText + tagEnd + input.value.substr(end);

        // Anpassen der Cursorposition
        var pos;
        if (insText.length == 0)
            pos = start + tagStart.length;
        else
            pos = start + tagStart.length + insText.length + tagEnd.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) + tagStart + insText + tagEnd + input.value.substr(pos);
    }
}


