/**
 * BB Code in Textare einfügen bei Mausklick
 */
function codeInsert(startTag, endTag) {
    var input = document.getElementById("commentarea");
    if(input.value == "Schreib hier deinen Kommentar"){    // Area Inhalt löschen
        input.value = "";
    }
    input.focus();
    var insText = null;
    var pos = null;
    
    /* für Internet Explorer */
    if(typeof document.selection != 'undefined') {
        /* Einfügen des Formatierungscodes */
        var range = document.selection.createRange();
        insText = range.text;
        range.text = startTag + insText + endTag;
        /* Anpassen der Cursorposition */
        range = document.selection.createRange();
        if (insText.length === 0) {
            range.move('character', -endTag.length);
        }
        else {
            range.moveStart('character', startTag.length + insText.length + endTag.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;
        insText = input.value.substring(start, end);
        input.value = input.value.substr(0, start) + startTag + insText + endTag + input.value.substr(end);
        /* Anpassen der Cursorposition */
        if (insText.length === 0) {
            pos = start + startTag.length;
        } else {
            pos = start + startTag.length + insText.length + endTag.length;
        }
        input.selectionStart = pos;
        input.selectionEnd = pos;
    }
    /* für die übrigen Browser */
    else { /* TODO wtf macht das hier? */
        /* Abfrage der Einfügeposition */
        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 */
        insText = prompt("Bitte geben Sie den zu formatierenden Text ein:");
        input.value = input.value.substr(0, pos) + startTag + insText + endTag + input.value.substr(pos);
    }
}
// XmlHttpRequest Object und so
function getXmlHttpRequestObject() {
    if (window.XMLHttpRequest) {
        return new XMLHttpRequest();
    } else if(window.ActiveXObject) {
        return new ActiveXObject("Microsoft.XMLHTTP");
    } else {
        return null;
    }
}
var xmlObj = getXmlHttpRequestObject();
// Wenn man im Forum auf den zitieren Knopf drückt
function quoteButtonPressed(postID){
    if(xmlObj.readyState == 4 || xmlObj.readyState === 0) {
        xmlObj.open("GET", '/plugins/getQuote.php?postid=' + postID, true);
        xmlObj.onreadystatechange = handleGetQuote;
        xmlObj.send(null);
    }
}
// Trennt das Empfangene Dokument nach Zeilen auf
// und leitet es an die entsprechende Funktion weiter
function handleGetQuote(){
    if (xmlObj.readyState == 4) {
        var autor = xmlObj.responseXML.getElementsByTagName("autor");
        var comment = xmlObj.responseXML.getElementsByTagName("comment");
        codeInsert('[quote='+autor[0].firstChild.nodeValue+']'+comment[0].firstChild.nodeValue+'[/quote]\n', '');
    }
}
var firstRecipient = true;
/**
 * Comment
 */
function addRecipient(username){
    var ele = $("#messageEmpfaenger");
    if(firstRecipient && ele.val()==''){
        ele.val("" + username);
        firstRecipient = false;
    }
    else {
        ele.val(ele.val() + ";" + username);
    }
}

