// Функции для редактирования сообщений с помощью bb-кода

function getSelectText(formName)
{
	sSelTxt = '';
	if (navigator.appName == 'Microsoft Internet Explorer' && document.selection)
	{
		// IE support
		document.getElementById(formName).message.focus();
		oSelTxt = document.selection.createRange();
		sSelTxt = oSelTxt.text;
	}
	else if (document.getElementById(formName).message.selectionStart || document.getElementById(formName).message.selectionStart == "0")
	{
		// MOZILLA/NETSCAPE support
		oSelTxt 	= document.getElementById(formName).message;
		startPos	= oSelTxt.selectionStart;
		endPos		= oSelTxt.selectionEnd;
		messageText	= oSelTxt.value;
		sSelTxt		= messageText.substring(startPos, endPos);
	}
	else
	{
		sSelTxt ='';
	}
	return sSelTxt;
}

function setSelectText(formName, addText)
{
	if (navigator.appName == 'Microsoft Internet Explorer' && document.selection)
	{
		// IE support
		oSelTxt.text = addText;
		document.getElementById(formName).message.focus();
	}
	else if (oSelTxt.selectionStart || oSelTxt.selectionStart == "0")
	{
		// MOZILLA/NETSCAPE support
		oSelTxt 		= document.getElementById(formName).message;
		startPos		= oSelTxt.selectionStart;
		endPos			= oSelTxt.selectionEnd;
		messageText		= oSelTxt.value;
		sSelTxt			= messageText.substring(0, startPos) + addText + messageText.substring(endPos, messageText.length);
		oSelTxt.value	= sSelTxt;
	}
	else if (navigator.appName == 'Opera')
	{
		document.getElementById(formName).message.value += addText;
	}
	else
	{
		document.formName.message.value += addText;
	}
}
		
function addToMessage(formName, iconType)
{
	sSelTxt	= getSelectText(formName);
	addText	= '[*' + iconType + '*]';
	setSelectText(formName, addText);
}
		
function addFontType(formName, fontType)
{
	sSelTxt	= getSelectText(formName);
	addText = '[' + fontType + ']' + sSelTxt + '[/' + fontType + ']';
	setSelectText(formName, addText);
}
		
function addFontFace(formName, fontFace)
{
	sSelTxt	= getSelectText(formName);
	addText = '[font=' + fontFace + ']' + sSelTxt + '[/font]';
	setSelectText(formName, addText);
}

function addFontSize(formName, fontSize)
{
	sSelTxt	= getSelectText(formName);
	addText = '[size=' + fontSize + ']' + sSelTxt + '[/size]';
	setSelectText(formName, addText);
}

function addHeaders(formName, tag)
{
	sSelTxt	= getSelectText(formName);
	addText = '[' + tag + ']' + sSelTxt + '[/' + tag + ']';
	setSelectText(formName, addText);
}	
		
function addFontColor(formName, divName, fontColor)
{
	sSelTxt	= getSelectText(formName);
	addText = '[color=' + fontColor + ']' + sSelTxt + '[/color]';
	setSelectText(formName, addText);
	document.getElementById(divName).style.display = 'none';
}		

function addLink(formName, lintType)
{
	sSelTxt	= getSelectText(formName);

	if (lintType == 'http://')
	{
		enterURL    = prompt('Введите URL для данной ссылки', "http://");
		if (enterURL == '')
		{
			alert('Не введен URL для данной ссылки');
			return false;
		}
		if (sSelTxt == '')
			enterTitle  = prompt('Введите описание ссылки', 'Описание ссылки');
		else
			enterTitle = sSelTxt;
		if (enterTitle == '')
			enterTitle = enterURL;
		addText = "[url=" + enterURL + "]" + enterTitle + "[/url]";
	}
	else
	{
		enterURL    = prompt('Введите email для данной ссылки', '');
		if (enterURL == '')
		{
			alert('Не введен email для данной ссылки.');
			return false;
		}
		else if (!/^([\w-~_]+\.)*[\w-~_]+@([\w-_]+\.){1,3}\w{2,3}$/.test(enterURL))
		{
			alert('Email для данной ссылки введен не правильно.');
			return false;
		}
		if (sSelTxt == '')
			enterTitle  = enterURL;
		else
			enterTitle = sSelTxt;
		if (enterTitle == '')
			enterTitle = enterURL;
		addText = "[email=" + enterURL + "]" + enterTitle + "[/email]";
	}
	
	setSelectText(formName, addText);
	return true;
}

function showFonts(elementName, parent)
{
	if (document.getElementById(elementName).style.display == 'none')
	{
		document.getElementById(elementName).style.display = 'inline';
	}
	else
		document.getElementById(elementName).style.display = 'none';
}

function addTag(formName, tag)
{
	sSelTxt	= getSelectText(formName);
	addText = '[' + tag + ']';
	setSelectText(formName, addText);
}

// Другие финкции

function showFormAddMessage(id)
{
	document.getElementById('add_message_' + id).style.display = 'inline';
	
	return false;
}

function showHideAddMessage(id)
{
	document.getElementById('add_message_' + id).style.display = 'none';
	
	return false;
}

function canSaveMessage(prefix)
{
	title		= document.getElementById('add_message_form' + prefix).title.value;
	poster_name	= document.getElementById('add_message_form' + prefix).poster_name.value;
	poster_mail	= document.getElementById('add_message_form' + prefix).poster_mail.value;
	message		= document.getElementById('add_message_form' + prefix).message.value;
	
	if (title == '' || poster_name == '' || message == '')
	{
		msg = "";
		if (title == '')
			msg = "тема сообщения";
		if (poster_name == '')
		{
			if (msg != '')
				msg += ", ";
			msg += "ваше имя";
		}
		if (message == '')
		{
			if (msg != '')
				msg += " и ";
			msg += "текст сообщения";
		}
		msg = "Не введены обязательные поля формы:\n" + msg + ".";
		alert(msg);
		return false;
	}

	if (poster_mail != '' && !/^([\w-~_]+\.)*[\w-~_]+@([\w-_]+\.){1,3}\w{2,3}$/.test(poster_mail))
	{
		alert('Email введен не верно.');
		return false;
	}
	
	return true;
}