// insertcode is used for bold, italic, underline and quote and just
// wraps the tags around a selection or prompts the user for some
// text to apply the tag to
function insertcode(tag, desc)
{
    // our textfield
    var textarea = b=document.getElementById("introduction");

    // our open tag
    var open = "[" + tag + "]";

    // our close tag
    var close = "[/" + tag + "]";

    if(!textarea.setSelectionRange)
    {
        var selected = document.selection.createRange().text; 
        if(selected.length <= 0)
        { 
            // no text was selected so prompt the user for some text
            textarea.value += open + prompt("Please enter the text you'd like to " + desc, "") + close;
        }
        else
        {
            // put the code around the selected text
            document.selection.createRange().text = open + selected + close; 
        }

    }
    else
    {
        // the text before the selection
        var pretext = textarea.value.substring(0, b.selectionStart);
        
        // the selected text with tags before and after
        var codetext = open + textarea.value.substring(b.selectionStart, b.selectionEnd) + close;

        // the text after the selection
        var posttext = textarea.value.substring(b.selectionEnd, textarea.value.length)
        
        // check if there was a selection
        if(codetext == open + close)
        {
            //prompt the user
            codetext = open + prompt("Please enter the text you'd like to " + desc, "") + close;
        }

        // update the text field
        textarea.value = pretext + codetext + posttext;
    }

    // set the focus on the text field
    textarea.focus();
}

// inserts an image by prompting the user for the url
function insertimage()
{
    // our textfield
    var textarea = b= document.getElementById("introduction");

    // our image
    var image = "[img]" + prompt("Please enter the image url", "http://") + "[/img]";

    if(!textarea.setSelectionRange)
    {
        // get selected text
        var selected = document.selection.createRange().text; 

        if(selected.length <= 0)
        { 
            // no text was selected so add the image to the end
            textarea.value += image;
        }
        else
        {
            // replace the selection with the image
            document.selection.createRange().text = image; 
        }
    }
    else
    {
        // the text before the selection
        var pretext = textarea.value.substring(0, b.selectionStart);

        // the text after the selection
        var posttext = textarea.value.substring(b.selectionEnd, textarea.value.length)

        // update the text field
        textarea.value = pretext + image + posttext;
    }

    // set the focus on the text field
    textarea.focus();
}

// inserts a link by prompting the user for a url
function insertlink()
{
    // our textfield
    var textarea = b= document.getElementById("introduction");


    // our link
    var url = prompt("Please enter the url", "http://");

    if(!textarea.setSelectionRange)
    {
        // get selected text
        var selected = document.selection.createRange().text; 

        if(selected.length <= 0)
        { 
            // no text was selected so add the link to the end
			var link = "[url=" + url + "]" + url + "[/url]";
            textarea.value += link;
        }
        else
        {
            // replace the selection with the link
			var link = "[url=" + url + "]" + selected + "[/url]";
            document.selection.createRange().text = link; 
        }
    }
    else
    {
        // the text before the selection
		var link = "[url=" + url + "]" + url + "[/url]";
        var pretext = textarea.value.substring(0, b.selectionStart);

        // the text after the selection
        var posttext = textarea.value.substring(b.selectionEnd, textarea.value.length)

        // update the text field
        textarea.value = pretext + link + posttext;
    }

    // set the focus on the text field
    textarea.focus();
}