var OldObj=null
var OldObjButton=null
var varIsNewForumTema = false
var curTaragetFrame=""
var SymbolCountMax = 3000

function InsertFormAnswerAndHideLastEdit(objAnswerForm,objAnswerButton,actionPage,param1,param2,IsNewForumTema,Title,taragetFrame,editText,isGuest) {
	InsertFormAnswerAndHideLast("edit",objAnswerForm,objAnswerButton,actionPage,param1,param2,IsNewForumTema,Title,taragetFrame,isGuest)
	editText = editText.replace(/\[SQ\]/ig,"'");
	editText = editText.replace(/\[DQ\]/ig,"\"");
	editText = editText.replace(/<br>/ig,"\r\n");
	FormSendMessage.FormText.value = editText;
}
function InsertFormAnswerAndHideLast(cmd,objAnswerForm,objAnswerButton,actionPage,param1,param2,IsNewForumTema,Title,taragetFrame,isGuest) {
	if (OldObj != null) OldObj.innerHTML = "";
	RestoreOldDisplay();
	OldObj = objAnswerForm;
	OldObjButton = objAnswerButton;

	InsertFormAnswer(cmd,objAnswerForm,actionPage,param1,param2,IsNewForumTema,Title,taragetFrame,isGuest)
	objAnswerForm.innerHTML = objAnswerForm.innerHTML;
	objAnswerForm.style.display = ""
	objAnswerButton.style.display = "none"
}	
function CloseMessage() {
	if (FormSendMessage.FormText.value!="") {if (!confirm("Вы уверены что хотите отменить ввод сообщения?")) return};
	RestoreOldDisplay()
}
function RestoreOldDisplay() {
	if (OldObj != null) {
		OldObj.style.display = "none"
	}
	if (OldObjButton != null) {
		OldObjButton.style.display = "";
	}
}
///////////////////////////////////////////////
function InsertFormAnswer(cmd,objAnswerForm,actionPage,param1,param2,IsNewForumTema,Title,taragetFrame,isGuest) {
	varIsGuest = isGuest
	varIsNewForumTema = IsNewForumTema
	if (taragetFrame!="") s2 = "target='"+taragetFrame+"'"; else s2="";
	curTaragetFrame=taragetFrame
	s=""
	s=s+"<form name='FormSendMessage' " + s2 + " action='" + actionPage + "' method='POST'>";
	s=s+"<br><p align='center'>" + Title + "&nbsp;"
	s=s+"(<span id='SymbolCounter'>" + SymbolCountMax + "</span>)&nbsp;&nbsp;&nbsp;"
	s=s+"<input class='smallForm' style='font-weight: bold;'  type='button' value='Ж' onclick='InsertTag(\"[B]\",\"[/B]\",false)' title='жирный'> ";
	s=s+"<input class='smallForm' style='font-style: italic;' type='button' value='К' onclick='InsertTag(\"[I]\",\"[/I]\",false)' title='курсивный'> ";
	s=s+"<input class='smallForm' style='text-decoration: underline;' type='button' value='Ч' onclick='InsertTag(\"[U]\",\"[/U]\",false)' title='подчеркнутый'> ";

	s=s+"<input class='smallForm' style='background:#BF0000' type='button' value=' ' onclick='InsertTag(\"[red]\",\"[/red]\",false)' title='красный'> ";
	s=s+"<input class='smallForm' style='background:#00BF00' type='button' value=' ' onclick='InsertTag(\"[green]\",\"[/green]\",false)' title='зеленый'> ";
	s=s+"<input class='smallForm' style='background:#0000BF' type='button' value=' ' onclick='InsertTag(\"[blue]\",\"[/blue]\",false)' title='синий'> ";

	s=s+"<input class='smallForm' type='button' value='ИЗОБР' onclick='InsertImg()' title='вставка изображения из инета'> ";
	s=s+"<input class='smallForm' type='button' value='ССЫЛКА' onclick='InsertURL()' title='вставка ссылки'> ";
	s=s+"<input class='smallForm' type='button' value='ЦИТАТА' onclick='InsertQuote()' title='вставка цитаты'> ";

	if (IsNewForumTema) s=s+"<input class='smallForm' type='button' value='ГОЛОС' onclick='InsertVoite()' title='вставка 1 голоса в голосовании'> ";
	if (OldObj != null) s=s+"&nbsp;&nbsp;<input class='smallForm' type='button' value=' x ' onclick='CloseMessage()' title='закрыть окно'>";

	s=s+"<br>";

	s=s+"<input type='hidden' name='taragetFrame' value='" + taragetFrame + "'>";
	s=s+"<input type='hidden' name='param1' value='" + param1 + "'>";
	s=s+"<input type='hidden' name='param2' value='" + param2 + "'>";
	s=s+"<input type='hidden' name='FormCommand' value='" + cmd + "'>";
	if (IsNewForumTema) s=s+"<br>	тема сообщения <input type='text'   name='FormTextTitle' size='75' maxlength='100' style='margin-left: 1' class='formSmall'><br>";
	s=s+"<textarea style='margin:5px' name='FormText' onkeyup='CheckSymbolCount(this)' onChange = 'CheckSymbolCount(this)' maxlength='" + SymbolCountMax + "' rows='8' cols='76' tabindex='1'></textarea><br>";
	if (isGuest) {
		s=s+"<b>Внимание! Сообщения от гостей проходят через премодерацию и появляются не сразу!</b><br>Так же не забудьте прочитать <a href='PravilaPovedeina.php' target='_blank'>правила поведения на сайте</a><br>";
		s=s+"<b>Если Вы зарегистрированы, то СНАЧАЛА <a href='login.php'>войдите на сайт</a>, нажав ВХОД вверху страницы<br><br>";
		s=s+"Введите ваше имя гостя <input type='text' name='UserName' size='25' maxlength='25' class='formSmall'><br><br>"
	}
	s=s+"<a class='Box4' href='rus-keyboard.php' target='virtKlava' title='русская клавиатура'>RUS</a>&nbsp;&nbsp;";
	s=s+"<span id='SmileSection'></span>&nbsp;&nbsp;&nbsp;";

	s=s+"<input type='submit' value='Отправить' onclick='return ClickSubmitButton(this)'>";
	s=s+"</p>"
	s=s+"<span id='SmileCatalogSection' style='display:none; width: 98%;'></span>";
	s=s+"</form>";
	objAnswerForm.innerHTML = s;
	SmileSection.innerHTML = GenerateMainSmileMap();
	setTimeout("FormSendMessage.FormText.focus();FormSendMessage.FormText.select();",1)
}	



function ClickSubmitButton(obj) {
	if (varIsGuest) {
		if (FormSendMessage.UserName.value=="") {
			alert("Введите ваше имя!");
			return false;
		}
	}
	if (FormSendMessage.FormText.value=="") {
		alert("Введите текст сообщения!");
		return false;
	}
	if (varIsNewForumTema) {
		if (FormSendMessage.FormTextTitle.value=="") {
			alert("Введите тему сообщения!");
			return false;
		}
	}
	if (curTaragetFrame!="") RestoreOldDisplay();
	obj.style.visibility = "hidden"
	return true;
}

function InsertSmile(n) {
	InsertTag(" [sm" + n + "] ","",false)
}

function InsertImg() {
	url = prompt("Введите адрес изображения","http://");
	if (url==null) return;
	if (!CheckURL(url)) return;
	InsertTag("[img src=" + url + "]","",false)
}

function InsertURL() {
	url = prompt("Введите адрес","http://");
	if (url==null) return;
	if (!CheckURL(url)) return;
	InsertTag("[url=" + url + "]","[/url]",true)
}

function InsertQuote() {
	var t = GetSelection();
	if (t=="") {alert("Для вставки цитаты нужно сначала выделить текст");return;}
	InsertTag("[quote]" + t,"[/quote]",false)
}

function InsertVoite() {
	InsertTag("[voite=","]\r\n",true)
}

function InsertTag(tag1,tag2,isPromptText) {
	obj = document.FormSendMessage.FormText;
	obj.focus();
	if(document.selection) {
		var t = document.selection.createRange();
		s = GetInsertText(t.text,isPromptText);
		if (s===false) return;
		t.text = tag1 + s + tag2;
	}
	else {                            
		var scrollPos = obj.scrollTop; 
		var selStart = obj.selectionStart;
		var selEnd = obj.selectionEnd;
		var selLength = obj.textLength;  
		if (selEnd == 1 || selEnd == 2) selEnd = selLength; 
        text1 = obj.value.substring(0, selStart);
        text2 = obj.value.substring(selStart, selEnd)
        text3 = obj.value.substring(selEnd, selLength);
        s = GetInsertText(text2,isPromptText)
        if (s===false) return;
        obj.value = text1 + tag1 + s + tag2 + text3;
        obj.setSelectionRange(selStart, selStart + tag1.length + s.length + tag2.length); 
        obj.scrollTop = scrollPos; 
	}
//	setTimeout('obj.focus();',400)
//	obj.focus()
}

function GetSelection() {
    var str;
    if (window.getSelection)
        str = window.getSelection().toString();
    else if (document.getSelection)
        str = document.getSelection();
    else if (document.selection)
        str = document.selection.createRange().text;
	return str;
}


function GetInsertText(s,isPromptText) {
   	if (!isPromptText || s!="") return s;
	s = prompt("Введите текст","");
	if (s==null) return false;
	return s;
}

function CheckURL(url) {
	if (url.length<(7+3) || url.substring(0, 7)!="http://") {alert("Адрес должен начинаться на http:// и не должен быть пустым!"); return false;}
	return true
}


function CheckSymbolCount(obj1) {
	if (obj1 && obj1.all) { 
		if (obj1.value.length > SymbolCountMax) obj1.value = obj1.value.substring(0,SymbolCountMax);
 		SymbolCounter.innerHTML=(SymbolCountMax-obj1.value.length);
 		obj1.focus();
	}
}

function ConfirmIgnoreListAddOperation(UserMame,nOp) {
	return confirm("Вы уверены что хотите " + (nOp==0?"за":"раз") + "блокировать данного Жителя " + UserMame + "? Он " + (nOp==0?"НЕ СМОЖЕТ Вам больше писать личных сообщений":"СМОЖЕТ Вам теперь писать личные сообщения") )
}
