
	var curPage = 0;
	var commentsActions = "actions/comments.php";
	
	function CheckNewtopicForm()
	{
		var nform = document.getElementById("newtopic_form");
		if (nform.dirid.value == 0) {
			alert('Выберите раздел'); 
			return false;
		}
		return true;
	}
	function AddTopicByEnter(e, checkform)
	{
		if (e.keyCode == 13 && e.ctrlKey) {
			if (checkform && CheckNewtopicForm())
				document.getElementById("newtopic_form").submit();
			else if (!checkform)
				document.getElementById("newtopic_form").submit();
		}
	}
	//------------------

	function SubmitLiteSearch()
	{
		document.getElementById("search_text").value =	document.getElementById("real_search_text").value;
		document.forms["lite_search"].submit();
		return false;
	}
	
	function SubmitLiteSearchByEnter(e)
	{
		if (e.which == 13) {
			SubmitLiteSearch();
		}
	}
	
	function pasteQuote()
	{
		var answerTextField = document.getElementById("answerTextField");
		if (GK || OP)
			var quote = window.getSelection();
		else if (IE)
			var quote = document.selection.createRange().text;
		if (quote != "")
		{
			if (answerTextField.value == "") {
				answerTextField.value = "[quote]" + quote + "[/quote]\n";
			} else {
				InsertText("[quote]" + quote + "[/quote]\n", "");
			}
			answerTextField.focus();
		}
	}
	
	function pasteNick(nick)
	{
		var answerTextField = document.getElementById("answerTextField");
		if (answerTextField.value == "") {
			answerTextField.value = "[b]"+ nick +"[/b]\n";
		} else {
			InsertText("[b]"+ nick +"[/b]\n", "");
		}
		answerTextField.focus();
	}
	
	function InsertText(open, close)
	{
		var msgfield = document.getElementById("answerTextField");
		msgfield.focus();
		var ss = msgfield.selectionStart, st = msgfield.scrollTop, sh = msgfield.scrollHeight;
		if (!ss && document.selection) 
		{
			msgfield.caretPos = document.selection.createRange().duplicate();		
			var text = open;
			if (close != "")
				text += document.selection.createRange().text;
			text += close;
			msgfield.caretPos.text = text;
		}
		else if (ss || ss == '0') {
			var se = msgfield.selectionEnd;
			var text = msgfield.value.substring(0, ss) + open;
			if (close != '')
				text += msgfield.value.substring(ss, se);
			text += close + msgfield.value.substring(se, msgfield.value.length);
			msgfield.value = text;
			se = close.length ? se : ss;
			msgfield.selectionStart = se + open.length + close.length;
			msgfield.selectionEnd = se + open.length + close.length;
		}
		else
			msgfield.value += open + close;
		msgfield.scrollTop = st + msgfield.scrollHeight - sh;
		msgfield.focus();
	}
	
	function SendPostByCtrlEnter(e)
	{
		//var key = (e.keyCode == 0) ? e.which : e.keyCode;
		if (e.keyCode == 13 && e.ctrlKey)
			sendPost();
	}	
	function sendPost() 
	{
		var posts_req = new XmlHttp();
		posts_req.Init();
		posts_req.url = commentsActions;
		posts_req.method = "post";
		posts_req.callBackFunc = sendPostCallback;		
		posts_req.errorCallbackFunc = sendPostCallbackError;
		
		var commentForm = document.forms["comments_form"];
		document.getElementById("sbmt_btn").disabled = true;
		commentForm.answerTextField.disabled = true;
		var vars = {
			action: "add_comment",
			place_num: commentForm.place_num.value,
			answerTextField: posts_req.PrepareString(commentForm.answerTextField.value),
			anonymous: (commentForm.anonymous.checked) ? "on" : "",
			nosmiles: (commentForm.nosmiles.checked) ? "on" : ""
		}
		try {
			posts_req.SendRequest(vars, 10000);
			document.getElementById("forum_send_info_img").style.display = "block";
			document.getElementById("forum_send_info_text").innerHTML = "Отправка сообщения";
		} catch (e) {
			sendPostCallbackError(e);
		}
		setTimeout("EnableSbmtBtn()", 5000);		
	}
	function sendPostCallback(jsHttp)
	{
		eval("var json = " + jsHttp.responseText);
		
		if (json.Message.Type == "info") 
		{
			document.getElementById("forum_send_info_text").innerHTML = "Обновление списка сообщений";
			//enable формы и её очистка проходит в getPostss
			getPosts(0, topic_id, "", "yes", true);
		} else {
			ShowMsg(json.Message.Text, json.Message.Type);
			document.getElementById("answerTextField").disabled = false;
			
			document.getElementById("forum_send_info_img").style.display = "none";
			document.getElementById("forum_send_info_text").innerHTML = "Добавить сообщение";
		}
	}
	function sendPostCallbackError(message, readyState)
	{
		if (message) ShowMsg(message + " Сообщение не отправлено.", "error");
		document.getElementById("answerTextField").disabled = false;		
		document.getElementById("forum_send_info_img").style.display = "none";
		document.getElementById("forum_send_info_text").innerHTML = "Добавить сообщение";
	}	

	function EnableSbmtBtn()
	{
		document.getElementById('sbmt_btn').disabled = false;
		//!
		CloseMsg("msg_block");
	}
	
	function getPosts(dirid, talkid, st, getlastpage, fromsend)
	{
		var posts_req = new XmlHttp();
		posts_req.Init();
		posts_req.url = commentsActions;
		posts_req.method = "get";
		//posts_req.callBackFunc = getPostsCallback;		
		posts_req.errorCallbackFunc = getPostsCallbackError;
		
		if (!getlastpage && getlastpage != "yes") getlastpage = "no";
		var vars = {
			action: "getposts",
			talkid: talkid,
			st: st,
			getlastpage: getlastpage
		}
		//if (!fromsend)		
		SwitchPostsLoadThrobber("block");
		try {
			posts_req.callBackFunc = function(jsHttp) {
				eval("var json = " + jsHttp.responseText);
				document.getElementById("posts_list_td").innerHTML = json.Html;
				if (IE && document.location.hash.indexOf("post") > -1 && curPage != json.CurPage) {
					//window.scrollTo(0,0);
					document.getElementById("top_pagebar").scrollIntoView(true);
				} else {
					if (curPage != json.CurPage) document.location.hash = "#st=" + json.CurPage;
				}
				curPage = json.CurPage;
				SwitchPostsLoadThrobber("none");
				
				if (fromsend)
				{
					document.getElementById("forum_send_info_img").style.display = "none";
					document.getElementById("forum_send_info_text").innerHTML = "Добавить сообщение";

					ShowMsg("Сообщение добавлено", "info");
					document.getElementById("answerTextField").value = "";
					document.getElementById("answerTextField").disabled = false;
				}
			}
			posts_req.SendRequest(vars, 10000, 3);
		} catch (e) {
			getPostsCallbackError(e);
		}
	}
	function getPostsCallbackError(message)
	{
		SwitchPostsLoadThrobber("none");
		if (message) alert("Ошибка!\n" + message + "\nНе удалось загрузить список сообщений.");
	}
	function SwitchPostsLoadThrobber(display)
	{
		var forum_getposts_imgs = document.getElementsByName("forum_getposts_img");
		if (forum_getposts_imgs.length == 2) 
		{
			forum_getposts_imgs[0].style.display = display;
			forum_getposts_imgs[1].style.display = display;
		}
	}

	
	