
/**
	* Wstawia taga w textarea. Jesli zaznaczony jest jakis tekst, to tekst zostanie
	* otoczony tagiem zamykajacym i otwierajacym.
	*
	* @param strOpeningTag tag otwierajacy; moze byc takze np tagiem <img ... />
	* @param strClosingTag tag zamykajacy; moze go nie byc
	* @param objTextArea obiekt textarea (musi to byc obiekt, a nie nazwa!)
	*/
function insertTag(strOpeningTag, strClosingTag, objTextArea)
{
	var is_ie = ((navigator.userAgent.toLowerCase().indexOf("msie") != -1) && (navigator.userAgent.toLowerCase().indexOf("opera") == -1));
	if (is_ie && document.selection)
	{
		theSelection = document.selection.createRange().text;
		objTextArea.focus();
		if (strClosingTag)
		{
			document.selection.createRange().text = strOpeningTag + theSelection + strClosingTag;
		}
		else
		{
			// Nie ma taga zamykajacego - zamieniamy zaznaczony tekst.
			document.selection.createRange().text = strOpeningTag;
		}
		return;
	}

	// Pozycja startowa i koncowa zaznaczonego tekstu.
	var intSelStart = objTextArea.selectionStart;
	var intSelEnd = objTextArea.selectionEnd;
	
	// Pozycja kursora na ekranie (bedzie potrzebna po powrocie).
	var intScrollTop = objTextArea.scrollTop;
	
	// Fragmenty tekstu, odpowiednio: poczatkowy, srodkowy (zaznaczony) i koncowy.
	var strTextStart = (objTextArea.value).substring(0, intSelStart);
	var strTextMiddle = (objTextArea.value).substring(intSelStart, intSelEnd);
	var strTextEnd = (objTextArea.value).substring(intSelEnd, objTextArea.textLength);
	
	if (strClosingTag)
	{
		// Otaczamy tekst tagami otwierajacym i zamykajacym.
		strTextMiddle = strOpeningTag + strTextMiddle + strClosingTag;
	}
	else
	{
		// Nie ma taga zamykajacego - zamieniamy zaznaczony tekst.
		strTextMiddle = strOpeningTag;
	}

	// Przepisujemy textarea z nowo wstawionym tagiem.
	objTextArea.value = strTextStart + strTextMiddle + strTextEnd;
	
	// Ustawiamy kursor w pozycji.
	var intCursorPos = intSelStart + (strTextMiddle.length);
	objTextArea.selectionStart = intCursorPos;
	objTextArea.selectionEnd = intCursorPos;
	
	// Przewijamy textarea do poprzedniego miejsca.
	objTextArea.scrollTop = intScrollTop;

	// Wracamy do textarea.	
	objTextArea.focus();
}///~ insertTag()

// cmdExec -- wywolywana po kliknieciu na jakas ikonke.
// Dla kazdej ikonki trzeba napisac odpowiednia akcje.
function cmdExec(strFormName, strFieldName, strCommand)
{
	switch (strCommand)
	{
		case 'bold':
			insertTag('[b]', '[/b]', window.document[strFormName][strFieldName]);
		break;

		case 'italic':
			insertTag('[i]', '[/i]', window.document[strFormName][strFieldName]);
		break;

		case 'underline':
			insertTag('[u]', '[/u]', window.document[strFormName][strFieldName]);
		break;

		case 'justifyleft':
			insertTag('[p align="left"]', '[/p]', window.document[strFormName][strFieldName]);
		break;

		case 'justifyright':
			insertTag('[p align="right"]', '[/p]', window.document[strFormName][strFieldName]);
		break;

		case 'justifycenter':
			insertTag('[p align="center"]', '[/p]', window.document[strFormName][strFieldName]);
		break;

		case 'br':
			insertTag('[br /]' + "\n", '', window.document[strFormName][strFieldName]);
		break;

		case 'hr':
			insertTag('[hr /]' + "\n", '', window.document[strFormName][strFieldName]);
		break;
	}
}

/* Stara funkcja `emots()' zostala usunieta */
function emots(strValue, strFormName, strFieldName)
{
	insertTag(' ' + strValue + ' ', null, window.document[strFormName][strFieldName]);
}
