/*****************************************/
// Name: Javascript Textarea BBCode Markup Editor
// Version: 1.3
// Author: Balakrishnan
// Last Modified Date: 25/jan/2009
// License: Free
// URL: http://www.corpocrat.com
/******************************************/

var textarea;
var content;
document.write("<link href=\"bbeditor/styles.css\" rel=\"stylesheet\" type=\"text/css\">");


function edToolbar(obj) {
    $('#menu').html("<div class=\"toolbar\">");
    $('#menu').append("<img class=\"button\" src=\"bbeditor/images/b.jpg\" name=\"btnBold\" title=\"Bold\" onClick=\"doAddTags('[b]','[/b]','" + obj + "')\">");
	$('#menu').append("<img class=\"button\" src=\"bbeditor/images/i.jpg\" name=\"btnItalic\" title=\"Italic\" onClick=\"doAddTags('[i]','[/i]','" + obj + "')\">");
	$('#menu').append("<img class=\"button\" src=\"bbeditor/images/u.jpg\" name=\"btnUnderline\" title=\"Underline\" onClick=\"doAddTags('[u]','[/u]','" + obj + "')\">");
	$('#menu').append("<img class=\"button\" src=\"bbeditor/images/left.jpg\" name=\"btnLeft\" title=\"Left\" onClick=\"doLeft('" + obj + "')\">");
	$('#menu').append("<img class=\"button\" src=\"bbeditor/images/right.jpg\" name=\"btnRight\" title=\"Right\" onClick=\"doRight('" + obj + "')\">");
	$('#menu').append("<img class=\"button\" src=\"bbeditor/images/center.jpg\" name=\"btnCenter\" title=\"Center\" onClick=\"doCenter('" + obj + "')\">");
	$('#menu').append("<img class=\"button\" src=\"bbeditor/images/red.jpg\" name=\"btnPodglad\" title=\"Czerwony\" onClick=\"doKolor('" + obj + "','Red')\">");
	$('#menu').append("<img class=\"button\" src=\"bbeditor/images/green.jpg\" name=\"btnPodglad\" title=\"Zielony\" onClick=\"doKolor('" + obj + "','Green')\">");
	$('#menu').append("<img class=\"button\" src=\"bbeditor/images/blue.jpg\" name=\"btnPodglad\" title=\"Niebieski\" onClick=\"doKolor('" + obj + "','Blue')\">");
	$('#menu').append("<img class=\"button\" src=\"bbeditor/images/podglad.jpg\" name=\"btnPodglad\" title=\"Podglad\" onClick=\"doPodglad('" + obj + "')\">");
	$('#menu').append("</div>");
	//document.write("<textarea id=\""+ obj +"\" name = \"" + obj + "\" cols=\"" + width + "\" rows=\"" + height + "\"></textarea>");

}

function parse(s) {
    s = s.toString().replace(/\[left]/g, '<p style="text-align:left;">');
    s = s.toString().replace(/\[\/left]/g, '</p>');
    
    s = s.toString().replace(/\[right]/g, '<p style="text-align:right;">');
    s = s.toString().replace(/\[\/right]/g, '</p>');
    
    s = s.toString().replace(/\[color=Red]/g, '<span style="color:red;">');
    s = s.toString().replace(/\[\/color]/g, '</span>');
    
    s = s.toString().replace(/\[color=Green]/g, '<span style="color:green;">');
    s = s.toString().replace(/\[\/color]/g, '</span>');
    
    s = s.toString().replace(/\[color=Blue]/g, '<span style="color:blue;">');
    s = s.toString().replace(/\[\/color]/g, '</span>');
    
    s = s.toString().replace(/\[b]/g, '<b>');
    s = s.toString().replace(/\[\/b]/g, '</b>');

    s = s.toString().replace(/\[u]/g, '<u>');
    s = s.toString().replace(/\[\/u]/g, '</u>');
    
    s = s.toString().replace(/\[i]/g, '<i>');
    s = s.toString().replace(/\[\/i]/g, '</i>');

    s = s.toString().replace(/\[center]/g, '<center>');
    s = s.toString().replace(/\[\/center]/g, '</center>');
    
    //s = s.toString().replace(/\[/g, '<');
    //s = s.toString().replace(/]/g, '>');
    s = s.toString().replace(/\n/g, '<br/>');
    return s;
}
function doPodglad(obj) {
    textarea = document.getElementById(obj);
    $('#post').html(parse(textarea.value));
}
function doKolor(obj,str) {
    // Code for IE
    textarea = document.getElementById(obj);
    if (document.selection) {
        textarea.focus();
        var sel = document.selection.createRange();
        //alert(sel.text);
        sel.text = "[color=" + str + "]" + sel.text + "[/color]";
        doPodglad(obj);
    }
    else {  // Code for Mozilla Firefox
        var len = textarea.value.length;
        var start = textarea.selectionStart;
        var end = textarea.selectionEnd;


        var scrollTop = textarea.scrollTop;
        var scrollLeft = textarea.scrollLeft;


        var sel = textarea.value.substring(start, end);
        var rep = "[color=" + str + "]" + sel + "[/color]";
        textarea.value = textarea.value.substring(0, start) + rep + textarea.value.substring(end, len);

        textarea.scrollTop = scrollTop;
        textarea.scrollLeft = scrollLeft;
        $('#post').html(parse(textarea.value));
    }
}

			
function doCenter(obj) {
    // Code for IE
    textarea = document.getElementById(obj);
    if (document.selection) {
        textarea.focus();
        var sel = document.selection.createRange();
        //alert(sel.text);
        sel.text = "[center]" + sel.text + "[/center]";
        doPodglad(obj);
    }
    else {  // Code for Mozilla Firefox
        var len = textarea.value.length;
        var start = textarea.selectionStart;
        var end = textarea.selectionEnd;


        var scrollTop = textarea.scrollTop;
        var scrollLeft = textarea.scrollLeft;


        var sel = textarea.value.substring(start, end);
        var rep = "[center]" + sel + "[/center]";        
        textarea.value = textarea.value.substring(0, start) + rep + textarea.value.substring(end, len);

        textarea.scrollTop = scrollTop;
        textarea.scrollLeft = scrollLeft;
        $('#post').html(parse(textarea.value));
    }
}
function doLeft(obj) {
    // Code for IE
    textarea = document.getElementById(obj);
    if (document.selection) {
        textarea.focus();
        var sel = document.selection.createRange();
        //alert(sel.text);
        sel.text = "[left]" + sel.text + "[/left]";
        doPodglad(obj);
    }
    else {  // Code for Mozilla Firefox
        var len = textarea.value.length;
        var start = textarea.selectionStart;
        var end = textarea.selectionEnd;


        var scrollTop = textarea.scrollTop;
        var scrollLeft = textarea.scrollLeft;


        var sel = textarea.value.substring(start, end);
        var rep = "[left]" + sel + "[/left]";
        textarea.value = textarea.value.substring(0, start) + rep + textarea.value.substring(end, len);

        textarea.scrollTop = scrollTop;
        textarea.scrollLeft = scrollLeft;
        $('#post').html(parse(textarea.value));
    }
}
function doRight(obj) {
    // Code for IE
    textarea = document.getElementById(obj);
    if (document.selection) {
        textarea.focus();
        var sel = document.selection.createRange();
        //alert(sel.text);
        sel.text = "[right]" + sel.text + "[/right]";
        doPodglad(obj);
    }
    else {  // Code for Mozilla Firefox
        var len = textarea.value.length;
        var start = textarea.selectionStart;
        var end = textarea.selectionEnd;


        var scrollTop = textarea.scrollTop;
        var scrollLeft = textarea.scrollLeft;


        var sel = textarea.value.substring(start, end);
        var rep = "[right]" + sel + "[/right]";
        textarea.value = textarea.value.substring(0, start) + rep + textarea.value.substring(end, len);

        textarea.scrollTop = scrollTop;
        textarea.scrollLeft = scrollLeft;
        $('#post').html(parse(textarea.value));
    }
}
function doImage(obj)
{
textarea = document.getElementById(obj);
var url = prompt('Enter the Image URL:','http://');
var scrollTop = textarea.scrollTop;
var scrollLeft = textarea.scrollLeft;

if (url != '' && url != null) {

	if (document.selection) 
			{
				textarea.focus();
				var sel = document.selection.createRange();
				sel.text = '[img]' + url + '[/img]';
			}
   else 
    {
		var len = textarea.value.length;
	    var start = textarea.selectionStart;
		var end = textarea.selectionEnd;
		
        var sel = textarea.value.substring(start, end);
	    //alert(sel);
		var rep = '[img]' + url + '[/img]';
        textarea.value =  textarea.value.substring(0,start) + rep + textarea.value.substring(end,len);
		
			
		textarea.scrollTop = scrollTop;
		textarea.scrollLeft = scrollLeft;
	}
}

}

function doURL(obj)
{
textarea = document.getElementById(obj);
var url = prompt('Enter the URL:','http://');
var scrollTop = textarea.scrollTop;
var scrollLeft = textarea.scrollLeft;

if (url != '' && url != null) {

	if (document.selection) 
			{
				textarea.focus();
				var sel = document.selection.createRange();
				
			if(sel.text==""){
					sel.text = '[url]'  + url + '[/url]';
					} else {
					sel.text = '[url=' + url + ']' + sel.text + '[/url]';
					}			

				//alert(sel.text);
				
			}
   else 
    {
		var len = textarea.value.length;
	    var start = textarea.selectionStart;
		var end = textarea.selectionEnd;
		
        var sel = textarea.value.substring(start, end);
		
		if(sel==""){
				var rep = '[url]' + url + '[/url]';
				} else
				{
				var rep = '[url=' + url + ']' + sel + '[/url]';
				}
	    //alert(sel);
		
        textarea.value =  textarea.value.substring(0,start) + rep + textarea.value.substring(end,len);
		
			
		textarea.scrollTop = scrollTop;
		textarea.scrollLeft = scrollLeft;
	}
 }
}

function doAddTags(tag1,tag2,obj)
{
textarea = document.getElementById(obj);
	// Code for IE
		if (document.selection) 
			{
				textarea.focus();
				var sel = document.selection.createRange();
				//alert(sel.text);
				sel.text = tag1 + sel.text + tag2;
				doPodglad(obj);
			}
   else 
    {  // Code for Mozilla Firefox
		var len = textarea.value.length;
	    var start = textarea.selectionStart;
		var end = textarea.selectionEnd;
		
		
		var scrollTop = textarea.scrollTop;
		var scrollLeft = textarea.scrollLeft;

		
        var sel = textarea.value.substring(start, end);
	    //alert(sel);
		var rep = tag1 + sel + tag2;
        textarea.value =  textarea.value.substring(0,start) + rep + textarea.value.substring(end,len);
		
		textarea.scrollTop = scrollTop;
		textarea.scrollLeft = scrollLeft;
		$('#post').html(parse(textarea.value));
		
	}
}

function doList(tag1,tag2,obj){
textarea = document.getElementById(obj);
// Code for IE
		if (document.selection) 
			{
				textarea.focus();
				var sel = document.selection.createRange();
				var list = sel.text.split('\n');
		
				for(i=0;i<list.length;i++) 
				{
				list[i] = '[*]' + list[i];
				}
				//alert(list.join("\n"));
				sel.text = tag1 + '\n' + list.join("\n") + '\n' + tag2;
			} else
			// Code for Firefox
			{

		var len = textarea.value.length;
	    var start = textarea.selectionStart;
		var end = textarea.selectionEnd;
		var i;
		
		var scrollTop = textarea.scrollTop;
		var scrollLeft = textarea.scrollLeft;

		
        var sel = textarea.value.substring(start, end);
	    //alert(sel);
		
		var list = sel.split('\n');
		
		for(i=0;i<list.length;i++) 
		{
		list[i] = '[*]' + list[i];
		}
		//alert(list.join("<br>"));
		var rep = tag1 + '\n' + list.join("\n") + '\n' +tag2;
		textarea.value =  textarea.value.substring(0,start) + rep + textarea.value.substring(end,len);
		textarea.scrollTop = scrollTop;
		textarea.scrollLeft = scrollLeft;
 }
}