function ShowForumCreateThemeForm(subsectionID) {
	var div = document.getElementById('newThemeContainer');
	if (div) {
		var event = 
			function (result) {
				div.innerHTML = result;
			} // end event
		HttpRequest(site_path + 'AJAX/GetForumThemeCreateForm.aspx?SubsectionID=' + subsectionID, null, 'forum', event);
	} // end if
	return false;
} // end function

function ClearForumCreateThemeForm() {
	if (document.forumCreateThemeForm) {
		var form = document.forumCreateThemeForm;
		if (form.section) form.section.selectedIndex = 0;
		form.title.value = '';
		form.message.value = '';
	} // end if
	return false;
} // end function

function LoadForumThemeList(sid, page) {
	var div = document.getElementById('allForumThemesContainer');
	if (div) {
		var event = 
			function (result) {
				div.innerHTML = result;
			} // end event
		HttpRequest(site_path + 'get_forum_theme_list.php?SubsectionID=' + sid + '&Page=' + page, null, 'forum', event);
	} // end if
	return false;
} // end function

var forum_subsections = new Array();

function ForumSectionClick(sid) {
	var list = document.getElementById('forumThemesList').tBodies[0];
	var rows = list.childNodes;
	var i, id, obj;
	var temp = 'forum_section' + sid;
	var deleted = new Array();
	var prev_rows = new Array();
	var prev_id = 0;
	for (i = 0; i < rows.length; i++) {
		if (rows[i].nodeType == 1) {
			if (rows[i].className.substr(0, temp.length) == temp) deleted.push(rows[i]);
			if (rows[i].id.substr(0, 6) == 'fs_row') {
				id = parseInt(rows[i].id.substr(6));
				if (prev_id) prev_rows[prev_id] = id;
				prev_id = id;
			} // end if
		} // end if
	} // end for
	prev_rows[prev_id] = 0;
	if (deleted.length > 0) { // collapse
		forum_subsections[sid] = deleted;
		if (obj = document.getElementById('fs_row' + sid)) obj.className = (prev_rows[sid]) ? '' : 'lastSection';
		for (i = 0; i < deleted.length; i++) list.removeChild(deleted[i]);
	} else { // expand
		var ExpandSection =
			function () {
				if (obj = document.getElementById('fs_row' + sid)) obj.className = 'openSubitems';
				if (forum_subsections[sid]) {
					obj = document.getElementById('fs_row' + prev_rows[sid]);
					for (i = 0; i < forum_subsections[sid].length; i++) {
						if (obj) {
							list.insertBefore(forum_subsections[sid][i], obj);
						} else {
							list.appendChild(forum_subsections[sid][i]);
						} // end if
					} // end for
				} // end if
			} // end function
		if (forum_subsections[sid]) {
			ExpandSection();
		} else {
			var event = 
				function (result) {
					var root = XmlRootByText(result);
					var subsections = GetXmlNodesByTagName(root, 'subsection');
					if (subsections.length > 0) {
						forum_subsections[sid] = new Array();
						var item, tr, td_sub, td_title, td_themes, td_replies, td_lastmsg, themes, replies, link, link_href, link_title, lastmsg, lastmsg_html;
						for (i = 0; i < subsections.length; i++) {
							item = subsections[i];
							themes = GetXmlAttributeValue(item, 'themes');
							replies = GetXmlAttributeValue(item, 'replies');
							link = GetXmlNodeByTagName(item, 'link');
							link_href = GetXmlAttributeValue(link, 'href');
							link_title = GetXmlNodeValue(link);
							lastmsg = GetXmlNodeByTagName(item, 'lastmsg');
							lastmsg_html = GetXmlNodeValue(lastmsg);
							td_title = document.createElement('TD');
							td_title.className = 'posts';
							td_title.innerHTML = '<a href="' + link_href + '">' + link_title + '</a>';
							td_themes = document.createElement('TD');
							td_themes.className = 'branches';
							td_themes.innerHTML = themes;
							td_replies = document.createElement('TD');
							td_replies.className = 'count';
							td_replies.innerHTML = replies;
							td_lastmsg = document.createElement('TD');
							td_lastmsg.className = 'lastPosts';
							td_lastmsg.innerHTML = lastmsg_html;
							tr = document.createElement('TR');
							tr.className = 'forum_section' + sid + ' subitems' + (i == subsections.length - 1 ? ((prev_rows[sid]) ? ' lastSubitem' : ' lastSubitem2') : '');
							tr.appendChild(td_title);
							tr.appendChild(td_themes);
							tr.appendChild(td_replies);
							tr.appendChild(td_lastmsg);
							forum_subsections[sid].push(tr);
						} // end for
						ExpandSection();
					} else {
						alert('В данном разделе нет подразделов.');
					} // end if
				} // end event
			HttpRequest(site_path + 'AJAX/GetForumSectionSubsections.aspx?SectionID=' + sid, null, 'forum', event);
		} // end if
	} // end if
	return false;
} // end function

var current_form_id = 0;
var current_form_type = '';
var forum_expanded_messages = 0;
var forum_max_messages = 0;

function ShowForumReplyForm(id) {
	var div = document.getElementById('frf' + id);
	if ((div) && ((id != current_form_id) || (current_form_type != 'reply'))) {
		var event = function (result) {
				HideForumReplyForm();
				div.innerHTML = result;
                div.style.display = 'block';
				current_form_id = id;
				current_form_type = 'reply';
		} // end event
		HttpRequest(site_path + 'AJAX/GetForumReplyForm.aspx?ParentMessageID=' + id, null, 'forum', event);
	} // end if
	return false;
} // end function

function ShowForumMessageEditForm(id) {
	var div = document.getElementById('frf' + id);
	if ((div) && ((id != current_form_id) || (current_form_type != 'message'))) {
		var event = 
			function (result) {
				HideForumReplyForm();
				div.innerHTML = result;
				div.style.display = 'block';
				current_form_id = id;
				current_form_type = 'message';
			} // end event
		HttpRequest(site_path + 'AJAX/GetForumMessageEditForm.aspx?MessageID=' + id, null, 'forum', event);
	} // end if
	return false;
} // end function

function ShowForumResumeForm(rootMessageID) {
	var div = document.getElementById('frf' + rootMessageID);
	if ((div) && ((current_form_id != 1) || (current_form_type != 'resume'))) {
		var event = 
			function (result) {
				HideForumReplyForm();
				div.innerHTML = result;
				div.style.display = 'block';
				current_form_id = rootMessageID;
				current_form_type = 'resume';
			} // end event
		HttpRequest(site_path + 'AJAX/GetForumResumeForm.aspx?RootMessageID=' + rootMessageID, null, 'forum', event);
	} // end if
	return false;
} // end function

function ShowForumFriendForm(id) {
	var div = document.getElementById('frf' + id);
	if ((div) && ((id != current_form_id) || (current_form_type = 'sendfriend'))) {
		var event = 
			function (result) {
				HideForumReplyForm();
				div.innerHTML = result;
				div.style.display = 'block';
				current_form_id = id;
				current_form_type = 'sendfriend';
			} // end event
		HttpRequest(site_path + 'AJAX/GetForumSendToFriendForm.aspx?MessageID=' + id, null, 'forumSendToFriend', event);
	} // end if
	return false;
} // end function

function ShowForumModerForm(id) {
	var div = document.getElementById('frf' + id);
	if ((div) && ((id != current_form_id) || (current_form_type = 'sendmoder'))) {
		var event = 
			function (result) {
				HideForumReplyForm();
				div.innerHTML = result;
				div.style.display = 'block';
				current_form_id = id;
				current_form_type = 'sendmoder';
			} // end event
		HttpRequest(site_path + 'AJAX/GetForumNotifyModeratorForm.aspx?MessageID=' + id, null, 'forumShowModerForm', event);
	} // end if
	return false;
} // end function

function HideForumReplyForm() {
	var div = document.getElementById('frf' + current_form_id);
	if (div) {
		div.innerHTML = '';
		div.style.display = 'none';
		current_form_id = 0;
		current_form_type = '';
	} // end if
	return false;
} // end function

function ProcessForumReplyForm(form, messageID) {
	if ((current_form_id) && (current_form_type == 'reply')) {
		// current_form_id
        if (!form) return false;
        var messagesBlockDiv = document.getElementById('forumMessageList');
        if (!messagesBlockDiv) return false;
        var frm = form.elements;
        var data = '';
        for (i = 0; i < frm.length; i++) 
        {
	        var element = frm[i];
	        if (element.name == "") continue;		    
	        data += element.name + '=' + encodeURIComponent(element.value) + '&';	    
        }		
        data += 'ParentMessageID=' + messageID;
		var event = function (result) {
		    var answer = result;
		    if (answer.substr(0, 5) == 'ERROR') {
		        alert(answer.substr(6));
		    } else {	
        		HideForumReplyForm();
        		messagesBlockDiv.innerHTML = answer;
			}
		}
		HttpRequest(site_path + 'AJAX/ForumCreateEditMessage.aspx', data, 'postReply', event);
	} // end if
	return false;
} // end function

function ProcessForumMessageEditForm(form, messageID) {
	if ((current_form_id) && (current_form_type == 'message')) {
		// current_form_id
        if (!form) return false;
        var titleBlock = document.getElementById('messageTitleBlock' + messageID);
        if (!titleBlock) return false;
        var infoBlock = document.getElementById('messageInfoBlock' + messageID);
        if (!infoBlock) return false;
        var bodyBlock = document.getElementById('messageBodyBlock' + messageID);
        if (!bodyBlock) return false;        
        var frm = form.elements;
        var data = '';
        for (i = 0; i < frm.length; i++) 
        {
	        var element = frm[i];
	        if (element.name == "") continue;		    
	        data += element.name + '=' + encodeURIComponent(element.value) + '&';	    
        }		
        data += 'MessageID=' + messageID;
		var event = function (result) {
		    var answer = result;			    
		    if (answer.substr(0, 5) == 'ERROR') {
		        alert(answer.substr(6));
		    } else {
			    var root = XmlRootByText(result);
			    var messageTitle = GetXmlNodeByTagName(root, 'MessageTitle');
			    titleBlock.innerHTML = GetXmlNodeValue(messageTitle);
			    var messageInfo = GetXmlNodeByTagName(root, 'MessageInfo');
			    infoBlock.innerHTML = GetXmlNodeValue(messageInfo);
			    var messageBody = GetXmlNodeByTagName(root, 'MessageBody');
			    bodyBlock.innerHTML = GetXmlNodeValue(messageBody);
        		HideForumReplyForm();
			}			
		}
		HttpRequest(site_path + 'AJAX/ForumCreateEditMessage.aspx', data, 'postReply', event);
	} // end if
	return false;	
} // end function

function ProcessForumResumeForm(form, themeID) {
	if ((current_form_id) && (current_form_type == 'resume')) {
		// current_form_id
        if (!form) return false;
        var resumeBlock = document.getElementById('resumebodyblock');
        if (!resumeBlock) return false;
        var frm = form.elements;
        var data = '';
        for (i = 0; i < frm.length; i++) 
        {
	        var element = frm[i];
	        if (element.name == "") continue;		    
	        data += element.name + '=' + encodeURIComponent(element.value) + '&';	    
        }		
        data += 'ThemeID=' + themeID;
		var event = function (result) {
		    var answer = result;			    
		    if (answer.substr(0, 5) == 'ERROR') {
		        alert(answer.substr(6));
		    } else {
			    var root = XmlRootByText(result);
			    var resumeBodyNode = GetXmlNodeByTagName(root, 'ResumeBody');
			    resumeBlock.innerHTML = GetXmlNodeValue(resumeBodyNode);
        		HideForumReplyForm();
			}			
		}
		HttpRequest(site_path + 'AJAX/ForumEditThemeResume.aspx', data, 'editResume', event);
	} // end if
	return false;
} // end function

function ProcessForumFriendForm(form, messageID) {
	if ((current_form_id) && (current_form_type == 'sendfriend')) {
        if (!form) return false;
        var frm = form.elements;
        var data = '';
        for (i = 0; i < frm.length; i++) 
        {
	        var element = frm[i];
	        if (element.name == "") continue;		    
	        data += element.name + '=' + encodeURIComponent(element.value) + '&';	    
        }		
        data += 'MessageID=' + messageID;
		var event = function (result) {
		    var root = XmlRootByText(result);
		    if (GetXmlNodeValue(GetXmlNodeByTagName(root, 'Result')) == '0') 
        		HideForumReplyForm();
	        alert(GetXmlNodeValue(GetXmlNodeByTagName(root, 'ErrorMessage')));
		}
		HttpRequest(site_path + 'AJAX/ForumSendToFriend.aspx', data, 'sendToFriend', event);
	} // end if
	return false;
} // end function

function ProcessForumModerForm(form, messageID) {
	if ((current_form_id) && (current_form_type == 'sendmoder')) {
		// current_form_id
        if (!form) return false;
        var frm = form.elements;
        var data = '';
        for (i = 0; i < frm.length; i++) 
        {
	        var element = frm[i];
	        if (element.name == "") continue;		    
	        data += element.name + '=' + encodeURIComponent(element.value) + '&';	    
        }		
        data += 'MessageID=' + messageID;
		var event = function (result) {
		    var root = XmlRootByText(result);
		    if (GetXmlNodeValue(GetXmlNodeByTagName(root, 'Result')) == '0') 
        		HideForumReplyForm();
	        alert(GetXmlNodeValue(GetXmlNodeByTagName(root, 'ErrorMessage')));
		}
		HttpRequest(site_path + 'AJAX/ForumCreateComplaint.aspx', data, 'createComplaint', event);
	} // end if
	return false;
} // end function

function UpdateForumMessageCount() {
	if (forum_max_messages == 0) {
		forum_expanded_messages = 0;
		var block_div = document.getElementById('forumMessageList');
		if (block_div) {
			var items = block_div.getElementsByTagName('DIV');
			if (items) {
				for (i = 0; i < items.length; i++) {
					if (items[i].id.substr(0, 3) == 'fmd') {
						forum_max_messages++;
						if (items[i].style.display != 'none') forum_expanded_messages++;
					} // end if
				} // end for
			} // end if
		} // end if
	} // end if
} // end function

function UpdateForumButtons() {
	var exl = document.getElementById('fmec');
	if (exl) {
		UpdateForumMessageCount();
		if ((forum_max_messages == 0) || (forum_expanded_messages < forum_max_messages)) {
			exl.className = 'plus';
		} else {
			exl.className = 'minus';
		} // end if
	} // end if
} // end function

function ForumMessageClick(id) {
	var block = document.getElementById('fmd' + id);
	var link = document.getElementById('fml' + id);
	if (block) {
		if (block.style.display == 'none') {
			if (block.innerHTML.length == 0) {
				var event = 
					function (result) {
						if (block.style.display == 'none') {
							block.innerHTML = result;
							block.style.display = 'block';
							if (link) link.className = 'postHeading open';
							forum_expanded_messages++;
							UpdateForumButtons();
						} // end if
					} // end event
				HttpRequest(site_path + 'AJAX/GetForumExpandedMessage.aspx?MessageID=' + id, null, 'forum', event);
			} else {
				block.style.display = 'block';
				if (link) link.className = 'postHeading open';
				forum_expanded_messages++;
				UpdateForumButtons();
			} // end if
		} else {
			if (id == current_form_id) HideForumReplyForm();
			block.style.display = 'none';
			if (link) link.className = 'postHeading';
			forum_expanded_messages--;
			UpdateForumButtons();
		} // end if
	} // end if
	return false;
} // end function

function ExpandAllForumMessages() {
	var div = document.getElementById('forumMessageList');
	if (div) {
		var items = div.getElementsByTagName('DIV');
		if (items) {
			var id, block, link;
			for (i = 0; i < items.length; i++) {
				block = items[i];
				if (block.id.substr(0, 3) == 'fmd') {
					id = block.id.substr(3);
					link = document.getElementById('fml' + id);
					if (block.innerHTML.length == 0) {
						var event = 
							function (result, block, link) {
								if (block.style.display == 'none') {
									block.innerHTML = result;
									block.style.display = 'block';
									if (link) link.className = 'postHeading open';
									forum_expanded_messages++;
									UpdateForumButtons();
								} // end if
							} // end event
						HttpRequest(site_path + 'AJAX/GetForumExpandedMessage.aspx?MessageID=' + id, null, null, event, block, link);
					} else if (block.style.display == 'none') {
						block.style.display = 'block';
						if (link) link.className = 'postHeading open';
						forum_expanded_messages++;
						UpdateForumButtons();
					} // end if
				} // end if
			} // end for
		} // end if
	} // end if
	return false;
} // end function

function CollapseAllForumMessages() {
	HideForumReplyForm();
	var div = document.getElementById('forumMessageList');
	if (div) {
		var items = div.getElementsByTagName('DIV');
		if (items) {
			var id, block, link;
			for (i = 0; i < items.length; i++) {
				block = items[i];
				if (block.id.substr(0, 3) == 'fmd') {
					id = block.id.substr(3);
					link = document.getElementById('fml' + id);
					if (block.style.display != 'none') {
						block.style.display = 'none';
						if (link) link.className = 'postHeading';
						forum_expanded_messages--;
						UpdateForumButtons();
					} // end if
				} // end if
			} // end for
		} // end if
	} // end if
	return false;
} // end function

function CreateForumTheme(form, sectionID){
    var data = '';
	var div = document.getElementById('newThemeContainer');
    var frm = form.elements;
    for (i = 0; i < frm.length; i++) 
    {
	    var element = frm[i];
	    if (element.name == "") continue;		    
	    data += element.name + '=' + encodeURIComponent(element.value) + '&';	    
    }		
    data += 'section=' + sectionID;
	if (div) {
		var event = function (result) {
		    var answer = result;			    
		    if (answer.substr(0, 5) == 'ERROR') {
		        alert(answer.substr(6));
		    } else 
			    div.innerHTML = answer;
		}
    HttpRequest(site_path + 'AJAX/CreateForumTheme.aspx', data, 'createForumTheme', event);
    }
}

function DeleteForumTheme(themeID){
    if (!confirm('Вы действительно хотите удалить тему и все сообщения в ней?'))
        return false;
           
	var event = function (result) {
	    var root = XmlRootByText(result);
        alert(GetXmlNodeValue(GetXmlNodeByTagName(root, 'ErrorMessage')));
	    if (GetXmlNodeValue(GetXmlNodeByTagName(root, 'Result')) == '0') 
    		window.location.href = GetXmlNodeValue(GetXmlNodeByTagName(root, 'SubsectionUrl'));
	}
	HttpRequest(site_path + 'AJAX/ForumDeleteTheme.aspx?ThemeID=' + themeID, null, 'deleteTheme', event);
    return false;
}

function DeleteForumMessage(messageID, isModerator){
    var messagesBlockDiv = document.getElementById('forumMessageList');
    if (!messagesBlockDiv) return false;
    if (isModerator) {
        if (!confirm('Вы действительно хотите удалить сообщение и все ответы на него?'))
            return false;
    } else {
        if (!confirm('Вы действительно хотите удалить сообщение?'))
            return false;
    }
           
	var event = function (result) {
	    var root = XmlRootByText(result);
        alert(GetXmlNodeValue(GetXmlNodeByTagName(root, 'ErrorMessage')));
	    if (GetXmlNodeValue(GetXmlNodeByTagName(root, 'Result')) == '0') 
    		messagesBlockDiv.innerHTML = GetXmlNodeValue(GetXmlNodeByTagName(root, 'MessagesBlock'));
	}
	HttpRequest(site_path + 'AJAX/ForumDeleteMessage.aspx?MessageID=' + messageID, null, 'deleteMessage', event);
    return false;
}

function ExpandNewForumMessages(){
	var div = document.getElementById('forumMessageList');
	if (div) {
		var items = div.getElementsByTagName('DIV');
		if (items) {
			var id, block, link;
			for (i = 0; i < items.length; i++) {
				block = items[i];
				if (block.id.substr(0, 3) == 'fmd') {
					id = block.id.substr(3);
					link = document.getElementById('fml' + id);
					if (block.className == 'replyContainer new') {
					    if (block.innerHTML.length == 0) {
						    var event = 
							    function (result, block, link) {
								    if (block.style.display == 'none') {
									    block.innerHTML = result;
									    block.style.display = 'block';
									    if (link) link.className = 'postHeading open';
									    forum_expanded_messages++;
									    UpdateForumButtons();
								    } // end if
							    } // end event
						    HttpRequest(site_path + 'AJAX/GetForumExpandedMessage.aspx?MessageID=' + id, null, null, event, block, link);
					    } else if (block.style.display == 'none') {
						    block.style.display = 'block';
						    if (link) link.className = 'postHeading open';
						    forum_expanded_messages++;
						    UpdateForumButtons();
					    } // end if
					} else { 
					    if (block.style.display != 'none') {
						    block.style.display = 'none';
						    if (link) link.className = 'postHeading';
						    forum_expanded_messages--;
						    UpdateForumButtons();
					    } // end if
					} //end if new  
				} // end if
			} // end for
		} // end if
	} // end if

    return false;
}

function AuthorizationAlert(){
    alert('Чтобы иметь возможность добавлять сообщения, вам нужно авторизоваться на форуме');
    return false;
}

function AccessDeniedAlert(){
    alert('Вы не имеете права на выполнение этой операции');
    return false;
}

function DeleteForumComplaint(complaintID){
    var complaintsBlockDiv = document.getElementById('forumComplaintsContainer');
    if (!complaintsBlockDiv) return false;
    if (!confirm('Вы действительно хотите удалить жалобу?'))
        return false;
           
	var event = function (result) {
	    var root = XmlRootByText(result);
        alert(GetXmlNodeValue(GetXmlNodeByTagName(root, 'ErrorMessage')));
	    if (GetXmlNodeValue(GetXmlNodeByTagName(root, 'Result')) == '0') 
    		complaintsBlockDiv.innerHTML = GetXmlNodeValue(GetXmlNodeByTagName(root, 'ComplaintsBlock'));
	}
	HttpRequest(site_path + 'AJAX/ForumDeleteComplaint.aspx?ComplaintID=' + complaintID, null, 'deleteComplaint', event);
    return false;
}

function DeleteAllComplaints(themeID){
    var complaintsBlockDiv = document.getElementById('forumComplaintsContainer');
    if (!complaintsBlockDiv) return false;
    if (!confirm('Вы действительно хотите удалить все жалобы по теме?'))
        return false;
           
	var event = function (result) {
	    var root = XmlRootByText(result);
        alert(GetXmlNodeValue(GetXmlNodeByTagName(root, 'ErrorMessage')));
	    if (GetXmlNodeValue(GetXmlNodeByTagName(root, 'Result')) == '0') 
    		complaintsBlockDiv.innerHTML = '';
	}
	HttpRequest(site_path + 'AJAX/ForumDeleteThemeComplaints.aspx?ThemeID=' + themeID, null, 'deleteComplaint', event);
    return false;
}

