/*document.onkeypress = function(e)
{
	if (typeof document.all != 'undefined')
	{
		key=event.keyCode;
		if (key == 1) wrapSelectionWithLink();
		if (key == 2) wrapSelection('[b]','[/b]');
		if (key == 9) wrapSelection('[i]','[/i]');
		if (key == 21) wrapSelection('[u]','[/u]');
		if (key == 19) wrapSelection('[s]','[/s]');
	}
	else if (document.getElementById)
	{
		ctrl=e.ctrlKey;
		shft=e.shiftKey;
		chr=e.charCode;
		if (ctrl) if (shft) if (chr==65) wrapSelectionWithLink();
		if (ctrl) if (shft) if (chr==66) wrapSelection('[b]','[/b]');
		if (ctrl) if (shft) if (chr==73) wrapSelection('[i]','[/i]');
		if (ctrl) if (shft) if (chr==85) wrapSelection('[u]','[/u]');
		if (ctrl) if (shft) if (chr==83) wrapSelection('[s]','[/s]');
	}
	return true;
}*/

var doclibsOpened = Array();
var currentTextarea;
var lastWindow;

var rml_buttons = Array('bold', 'italic', 'underline', 'strike','hline',
					'sup', 'sub','hline',
					'align_left', 'align_center', 'align_right','hline',
					'list_bullet', 'list_num','hline',
					'color_bg', 'color_fg','hline',
					'link', 'image','hline',
					'table', 'hr','hline',
					'maximize', 'documentlibrary');

function setCurrentTextarea(window)
{
	currentTextarea = doclibsOpened[window];
	lastWindow = window;
};

function getToolbar( showDocumentLibrary )
{
	var x = document.createElement('div');
	jscss('add',x,'rmltoolbar','');

	var image;
	for(var i = 0; i < rml_buttons.length;i++)
	{
		if(rml_buttons[i] == 'documentlibrary' && !showDocumentLibrary)
			continue;

		image = document.createElement('img');

		if(rml_buttons[i] != 'hline')
			addEvent(image, 'click', handleRMLToolbarClick);
		else
			jscss('add',image,'hline','');

		image.id = 'rmltoolbar_'+rml_buttons[i];
		image.src = board_template_url+'img/icons/toolbar/'+rml_buttons[i]+'.gif';
		x.appendChild(image);
	}

	return x;
};

function handleRMLToolbarClick(ev, ob)
{
	var x = getObj(ev, ob);

	if(x.parentNode && x.parentNode.nextSibling && x.parentNode.nextSibling.tagName == 'TEXTAREA')
	{
		currentTextarea = x.parentNode.nextSibling;
	}

	var listtype, my_link, my_title, sel, rows, type, out;

	switch(x.id)
	{
		case 'rmltoolbar_bold':
			wrapSelection('[b]','[/b]');
			return;
			break;
		case 'rmltoolbar_italic':
			wrapSelection('[i]','[/i]');
			return;
			break;
		case 'rmltoolbar_underline':
			wrapSelection('[u]','[/u]');
			return;
			break;
		case 'rmltoolbar_strike':
			wrapSelection('[s]','[/s]');
			return;
			break;
		case 'rmltoolbar_sup':
			wrapSelection('[sup]','[/sup]');
			return;
			break;
		case 'rmltoolbar_sub':
			wrapSelection('[sub]','[/sub]');
			return;
			break;
		case 'rmltoolbar_align_left':
			wrapSelection('[left]','[/left]');
			return;
			break;
		case 'rmltoolbar_align_center':
			wrapSelection('[center]','[/center]');
			return;
			break;
		case 'rmltoolbar_align_right':
			wrapSelection('[right]','[/right]');
			return;
			break;
		case 'rmltoolbar_list_bullet':
			listtype = '*';
		case 'rmltoolbar_list_num':
				if(typeof listtype == 'undefined')
					listtype = '1';
				var type = '*';
				var sel = getCurrentSelection();
				var rows = sel.split('\n');
				var out = '[list='+listtype+']';
				for(var i = 0; i < rows.length;i++)
				{
					if(rows[i] != '')
						out += '\n[li]'+rows[i] + '[/li]';
				}
				out += '\n[/list]';
				setSelection(out);
			return;
			break;
		case 'rmltoolbar_color_bg':
			my_link = prompt(getText('j_toolbar', 'enter_color'),"#");
			if (my_link != null)
			{
				lft="[fgcolor=" + my_link + "]";
				rgt="[/fgcolor]";
				wrapSelection(lft, rgt);
			}
			return;
			break;
		case 'rmltoolbar_color_fg':
			my_link = prompt(getText('j_toolbar', 'enter_color'),"#");
			if (my_link != null)
			{
				lft="[bgcolor=" + my_link + "]";
				rgt="[/bgcolor]";
				wrapSelection(lft, rgt);
			}
			return;
			break;
		case 'rmltoolbar_table':
			sel = getCurrentSelection();
			rows = sel.split('\n');
			out = '[table border=1 bgcolor=#FFFFFF width=350 cellpadding=2 bordercolor=#000000]';
			var j;
			for(var i = 0; i < rows.length;i++)
			{
				out += '\n[tr]';
				var cells = rows[i].split('\t');
				for(j=0; j < cells.length;j++)
				{
					out += '\n[td]'+cells[j]+'[/td]';
				}
				out += '\n[/tr]';
			}
			out += '\n[/table]';

			setSelection(out);
			return;
			break;
		case 'rmltoolbar_image':
			if(getCurrentSelection() != '')
			{
				wrapSelection('[img]', '[/img]');
				return;
			}
			my_link = prompt(getText('j_toolbar', 'enter_img_url'),"http://");

			if (my_link != null && my_link !='http://')
			{
				lft="[img]" + my_link;
				rgt="[/img]";
				wrapSelection(lft, rgt);
			}
			return;
			break;
		case 'rmltoolbar_link':
			my_link = prompt("Enter URL:","http://");
			if (my_link != null)
			{
				var selection = getCurrentSelection();
				my_title = prompt(getText('j_toolbar', 'enter_title'),"");

				if ( selection == '' )
				{
					if(my_title != '' )
						lft="[url=" + my_link + "]"+my_title;
					else
						lft="[url=" + my_link + "]"+my_link;
				}
				else
				{
					if(my_title != '' )
						lft="[url=" + my_link + ","+my_title+"]";
					else
						lft="[url=" + my_link + "]";
				}

				rgt="[/url]";
				wrapSelection(lft, rgt);
			}
			return;
			break;
		case 'rmltoolbar_documentlibrary':
			var ref = window.open(board_script_url+'/list_documents_small','DocumentLibrary','width=900,height=500,resizable=yes,scrollbars=yes');
			doclibsOpened[ref] = x.parentNode.nextSibling;
			break;
		case 'rmltoolbar_maximize':
			jscss('toggle',get_rmltextarea(),'large','');
			break;
		case 'rmltoolbar_hr':
			setSelection('[hr]');
			break;
	}
};

function get_rmltextarea()
{
	if(typeof currentTextarea == 'undefined')
		currentTextarea = document.getElementById('rml_textarea');
	return currentTextarea;
};

function getContentFromOriginal()
{
	get_rmltextarea().value=window.opener.get_rmltextarea().value;
};

function setContentToOriginal()
{
	window.opener.get_rmltextarea().value=get_rmltextarea().value;window.close();
};

function rescaleTextarea(txtarea)
{
	if (typeof document.all != 'undefined')
	{
		txtarea.style.height=(document.body.clientHeight-80)+'px';
		txtarea.style.width=(document.body.clientWidth-15)+'px';
	}
	else
	{
		txtarea.style.height=(window.innerHeight-80)+'px';
		txtarea.style.width=(window.innerWidth-15)+'px';
	}
};

function wrapSelection(lft, rgt)
{
	var txtarea = get_rmltextarea();

	if (typeof txtarea.selectionStart == 'undefined')
	{
		IEWrap(txtarea, lft, rgt);
	}
	else if (document.getElementById)
	{
		mozWrap(txtarea, lft, rgt);
	}
};

function mozWrap(txtarea, lft, rgt)
{
	var selLength = txtarea.textLength;
	var selStart = txtarea.selectionStart;
	var selEnd = txtarea.selectionEnd;
	if (selEnd==1 || selEnd==2)
	{
		selEnd = selLength;
	}
	var s1 = txtarea.value.substring(0,selStart);
	var s2 = txtarea.value.substring(selStart, selEnd);
	var s3 = txtarea.value.substring(selEnd, selLength);
	txtarea.value = s1 + lft + s2 + rgt + s3;
};

function IEWrap(txtarea, lft, rgt)
{
	strSelection = document.selection.createRange().text;
	if (strSelection!="")
	{
		document.selection.createRange().text = lft + strSelection + rgt;
	}
	else
	{
		txtarea.value += lft + rgt;
	}
};

function getCurrentSelection()
{
	if (typeof document.selection != 'undefined' && document.selection.createRange)
	{
		return IEGet();
	}
	else if (document.getElementById)
	{
		var txtarea = get_rmltextarea();
		return mozGet(txtarea);
	}
	return '';
};

function mozGet(txtarea)
{
	var selLength = txtarea.textLength;
	var selStart = txtarea.selectionStart;
	var selEnd = txtarea.selectionEnd;
	if (selEnd==1 || selEnd==2) selEnd=selLength;
	return (txtarea.value).substring(selStart, selEnd);
};

function IEGet()
{
	return document.selection.createRange().text;
};

function setSelection(str)
{
	var txtarea = get_rmltextarea();
	if (typeof document.all != 'undefined')
	{
		IESet(txtarea, str);
	}
	else if (document.getElementById)
	{
		mozSet(txtarea, str);
	}
};

function mozSet(txtarea, str)
{
	var selLength = txtarea.textLength;
	var selStart = txtarea.selectionStart;
	var selEnd = txtarea.selectionEnd;
	if (selEnd==1 || selEnd==2) selEnd=selLength;
	var s1 = txtarea.value.substring(0,selStart);
	var s2 = txtarea.value.substring(selStart, selEnd);
	var s3 = txtarea.value.substring(selEnd, selLength);
	txtarea.value = s1 + str + s3;
};

function IESet(txtarea, str)
{
	strSelection = document.selection.createRange().text;

	if (strSelection!="")
	{
		document.selection.createRange().text = str;
	}
	else
	{
		txtarea.value += str;
	}
};

function storeCursor(element)
{
	if (typeof document.all != 'undefined' && element.createTextRange )
		element.cursorPos = document.selection.createRange().duplicate();
};

function putStr( text )
{
	var target = get_rmltextarea();

	if ( target )
	{
		if (typeof document.all != 'undefined' && target.cursorPos)
		{
			var cursorPos = target.cursorPos;
			cursorPos.text = cursorPos.text.charAt(cursorPos.text.length - 1) == ' ' ? text + ' ' : text;
		}
		else
		{
			try
			{
				if(typeof target.selectionStart != 'undefined')
				{
					wrapSelection('', text);
				}
				else
				{
					target.value += text;
				}
			}
			catch(e)
			{
				target.value += text;
			}
		}

		if(lastWindow)
		{
			lastWindow.close();
		}

		target.focus();
	}
};