
/*
 * Функции для форума
 * TimeZero <http://www.timezero.ru/>
 * 2008-01-22
 * Автор: Дмитрий Шкинёв <berkel@timezero.ru>
 */

var _ruslat = [['й','q'],['ц','w'],['у','e'],['к','r'],['е','t'],['н','y'],['г','u'],['ш','i'],['щ','o'],['з','p'],['ф','a'],['ы','s'],['в','d'],['а','f'],['п','g'],['р','h'],['о','j'],['л','k'],['д','l'],['ж',';'],['э',"'"],['я','z'],['ч','x'],['с','c'],['м','v'],['и','b'],['т','n'],['ь','m'],['б',','],['ю','.'],['Й','Q'],['Ц','W'],['У','E'],['К','R'],['Е','T'],['Н','Y'],['Г','U'],['Ш','I'],['Щ','O'],['З','P'],['Ф','A'],['Ы','S'],['В','D'],['А','F'],['П','G'],['Р','H'],['О','J'],['Л','K'],['Д','L'],['Ж',':'],['Э','"'],['Я','Z'],['Ч','X'],['С','C'],['М','V'],['И','B'],['Т','N'],['Ь','M'],['Б','<'],['Ю','>']];

var _translite = {"'": 'ь', 'jo':'ё', 'jj':'й','kh':'х','ch':'ч','sh':'ш','shh':'щ','eh':'э','yu':'ю','ya':'я','JO':'Ё','ZH':'Ж','KH':'Х','CH':'Ч','SH':'Ш','SHH':'Щ','EH':'Э','YU':'Ю','YA':'Я','a':'а','b':'б','v':'в','g':'г','d':'д','e':'е','zh':'ж','z':'з','i':'и','k':'к','l':'л','m':'м','n':'н','o':'о','p':'п','r':'р','s':'с','t':'т','u':'у','f':'ф','h':'Х','c':'ц','"':'ъ','y':'ы',"'":'ь', 'A':'А','B':'Б','V':'В','G':'Г','D':'Д','E':'Е','Z':'З','I':'И','JJ':'Й','K':'Л','L':'Л','M':'М','N':'Н','O':'О','P':'П','R':'Р','S':'С','T':'Т','U':'У','F':'Ф', 'h' : 'х', 'C':'Ц','"':'Ъ','Y':'Ы',"'":'Ь' };

function translite(sId) {

  var oElem = document.getElementById(sId);

  if (!oElem)
  {
	return false;
  }

  var start = 0;
  var end = 0;

  if (document.selection)
  {
	var range = document.selection.createRange();
	var stored_range = range.duplicate();
	stored_range.moveToElementText(oElem);
	stored_range.setEndPoint('EndToEnd', range);
	start = stored_range.text.length - range.text.length;
	end = start + range.text.length;
  }
  else
  {
	if (oElem.selectionStart != oElem.selectionEnd) {
	  start = oElem.selectionStart;
	  end = oElem.selectionEnd;
	}
  }


  var out='';
  for (var i = 0; i < oElem.value.length; i++)
  {
	if (start != end) {
	  if (i < start || i >= end) {
		out += oElem.value.charAt(i);
		continue;
	  }
	}

	 var letter = oElem.value.charAt(i);
	 var next_letter = oElem.value.charAt(i+1);
	 var flag = false;

	 if (letter.charCodeAt(0)==39) {
	   out+="ь";
	   continue;
	 }

	 if (letter.charCodeAt(0)==1100) {
	   out+="'";
	   continue;
	 }

	 for (src in _translite) {

	   if (letter+next_letter==src) {
		 out += _translite[src];
		 i+=1;
		 flag=true;
		 break;
	   }
	   if (letter==src) {
		 out += _translite[src];
		 flag=true;
		 break;
	   }

	   if (letter==_translite[src]) {
		 out += src;
		 flag=true;
		 break;
	   }

	 }
	 if (!flag)  {
	   out += letter;
	 }
  }
  oElem.value = out;
  oElem.focus();

  if (document.selection) {
	var range = oElem.createTextRange();
	range.collapse(true);
	range.moveStart("character", start);
	range.moveEnd("character", end - start);
	range.select();

  }
  else {
	oElem.selectionStart = start;
	oElem.selectionEnd = end;
  }

  return true;
}

function insertImage(value)
{
	$('#post-img-block').style.display = 'block';
}

function ruslat(sId)
{
  var oElem = document.getElementById(sId);

  if (!oElem)
  {
	return false;
  }

  if (oElem.value == '')
  {
	return false;
  }

  var start = 0;
  var end = 0;

  if(document.selection)
  {
	var range = document.selection.createRange();
	var stored_range = range.duplicate();
	stored_range.moveToElementText(oElem);
	stored_range.setEndPoint('EndToEnd', range);
	start = stored_range.text.length - range.text.length;
	end = start + range.text.length;
  }
  else
  {
	if (oElem.selectionStart != oElem.selectionEnd) {
	  start = oElem.selectionStart;
	  end = oElem.selectionEnd;
	}
  }

  var new_value = '';

  var isTag = false;

  for (var i=0; i < oElem.value.length; i++)
  {
	if (start != end) {
	  if (i < start || i >= end) {
		new_value += oElem.value.charAt(i);
		continue;
	  }
	}

	var letter = oElem.value.charAt(i);

	if (letter == '<') {
	  isTag = true;
	}
	else if (letter == '>') {
	  isTag = false;
	}

	if (!isTag) {
	  for (var n=0; n < _ruslat.length; n++) {
		if (letter == _ruslat[n][0]) {
		  letter = _ruslat[n][1];
		}
		else if (letter == _ruslat[n][1]) {
		  letter = _ruslat[n][0];
		}
	  }
	}

	new_value += letter;
  }

  oElem.value = new_value;
  oElem.focus();

  if (document.selection) {
	var range = oElem.createTextRange();
	range.collapse(true);
	range.moveStart("character", start);
	range.moveEnd("character", end - start);
	range.select();
  }
  else {
	oElem.selectionStart = start;
	oElem.selectionEnd = end;
  }

  return true;
}

function switchVoteView()
{
	var voteForm = document.getElementById('vote-form-block');
	var voteResult = document.getElementById('vote-result');

	if(voteResult.style.display == "none") {
	   voteResult.style.display = '';
		 voteForm.style.display = 'none';
	} else {
		voteResult.style.display = 'none';
		voteForm.style.display = '';
	}
}


function voted(formName)
{
	var rv = false;
	var f = document.forms.voteForm;
	var itemList = document.getElementsByName('voteItem');
	for(var i = 0; i < itemList.length; i++) {
		if(f.voteItem[i].checked) {
			rv = true;
			break;
		}
	}

	if(rv === true) {
		f.submit();
	} else {
		errorPopup('Выберете один из вариантов');
	}
}

var changedLang = false;

function changeLang(e)
{
  var el = $(e);

  if (changedLang)
	Common.Event.remove(el, 'keypress', changeLetter);
  else
	Common.Event.add(el, 'keypress', changeLetter);

  changedLang = !changedLang;
}

var lastContent = "";

function changeLetter(e)
{
  var code = e.keyCode || e.charCode;
  var el = $('post-message');
}

function insertTag(sId, sTagName)
{
  var oElem = document.getElementById(sId);
 var oPreviewContainer2 = document.getElementById('post-message');
  if (!(oElem || oElem.value) || oPreviewContainer2.disabled)
  {
	return false;
  }

  var value = oElem.value;

  if (Common.informationObject.bIE)
  {
	if (document.selection && document.selection.createRange().text != '')
	{
	  document.selection.createRange().text = "<" + sTagName + ">" + document.selection.createRange().text + "</" + sTagName + ">";
	}
	else
	{
	  oElem.value += "<" + sTagName + "></" + sTagName + ">";
	}
  }
  else if (typeof(oElem.selectionStart) != 'undefined' && typeof(oElem.selectionEnd) != 'undefined')
  {
	var t1 = value.substring(0, oElem.selectionStart);
	var t2 = value.substring(oElem.selectionEnd);

	var selectedText = value.substring(oElem.selectionStart, oElem.selectionEnd);

	if (selectedText)
	{
	  oElem.value = t1 + "<" + sTagName + ">" + selectedText + "</" + sTagName + ">" + t2;
	}
	else
	{
	  oElem.value += "<" + sTagName + "></" + sTagName + ">";
	}
  }
  else
  {
	oElem.value += "<" + sTagName + "></" + sTagName + ">";
  }
}

function insertBlockquote(sPostId)
{
  var container = $('post-message');
  var oElemMessage = $("post-message-" + sPostId);
  var oElemUser = $("post-user_id-" + sPostId);

  if (!(container || oElemMessage || oElemUser))
  {
	return false;
  }
  //запрос первоначального содержания
 var args = 'mode=edit_post&id=' + sPostId;

		var answ = Common.AJAX.getContent('POST', '/post.php', args);

		if (answ == '')
		{
		  return false;
		}
//запрос первоначального содержания
var message =answ;
//  var message = oElemMessage.innerHTML.replace(/<img.*?smiles\/(.*?)\.gif.*?>/gi, ":$1:") + "\n";
 // message = message.replace(/<p>(.*?)<\/p>/gi, "$1");
  //message = message.replace(/^\s*(.*?)\s*$/gi, "$1");
 message = message.replace(/&quot;/gi, "\"");
  var selected_text = '';

  if (Common.informationObject.bIE)
  {
	selected_text = document.selection.createRange().text;
  }
  else if (window.getSelection)
  {
	selected_text = window.getSelection();
  }

  if (selected_text != '')
  {
	message = selected_text + "\n";
  }

  container.value += "<blockquote>" + '<b>' + oElemUser.innerHTML + " пишет:</b>\n" + message + "\n</blockquote>\n";

  container.value = container.value.replace(/<a\s(?:.*?)>(.*?)<\/a>/gi, '$1');

  container.focus();

  return false;
}

function checkAddThemeForm(oElem)
{
  if (!oElem)
  {
	return false;
  }

  var name = oElem.elements['theme[name]'];
  var message = $('post-message');
  if(!message) message =$('post-message-prev-copy');

  if (!name || name.value == '' || name.value.replace(/\s/g, '').length == 0)
  {
	errorPopup("Введите название темы");
	return false;
  }

  if (!message || message.value == '' || message.value.replace(/\s/g, '').length == 0)
  {
	errorPopup("Введите текст сообщения");
	return false;
  }

  if($('vote').checked) {
		var voteItemList = document.getElementsByName('voteItem[]')
		var count = voteItemList.length;

		var notEmptyField = 0;
		for(var i = 0; i < count; i++) {
			if(voteItemList[i].value.length > 0) {
				notEmptyField++;
			}
		}

		if(notEmptyField <= 1) {
			errorPopup("Ответов должно быть не менее двух");
			return false;
		}
  }

	return true;
}

function checkAddPostForm(oElem)
{
  if (!oElem)
  {
	return false;
  }

  var oItem = oElem.elements['post[message]'];

  if (!oItem || oItem.value == '' || oItem.value.replace(/\s/g, '').length == 0)
  {
	return false;
  }

  return true;
}

var smileContainerId = '';

function showSmilesContainer(oElem, sId)
{
  var container = document.getElementById(sId);

  if (!(oElem || container))
  {
	return false;
  }

  if (container.style.display == 'block')
  {
	return false;
  }

  smileContainerId = sId;

  var oElemPos = Common.getAbsolutePos(oElem);

  container.style.top = ((oElemPos.y + oElem.offsetHeight) + 5) + 'px';
  container.style.left = (oElemPos.x) + 'px';

  container.style.display = 'block';

  Common.Event.add(document.body, 'mouseup', hideSmilesContainer);
}

function hideSmilesContainer()
{
  var container = $(smileContainerId);

  if (!container)
  {
	return false;
  }

  container.style.display = '';

  Common.Event.remove(document.body, 'mouseup', hideSmilesContainer);
}

function setNick(str)
{
  var container = $('post-message');

  if (!(str || container))
  {
	return false;
  }

  container.value += '<b>' + str + '</b>, ';

  container.focus();
}

function setSmile(oElem, sId)
{
  var container = $(sId);

  if (!(oElem || container))
  {
	return false;
  }

  if (container.value != '')
  {
	var matches = container.value.match(/:([a-z]+):/gi);

	if (matches && matches.length > 4)
	{
	  return false;
	}
  }

  container.value += oElem.alt;

  hideSmilesContainer();

  container.focus();
}

var Forum = {

  showImg : function (src, alt)
  {
	if (!src)
	{
	  return false;
	}

	var args = 'mode=img_info&src=' + src;

	var answ = Common.AJAX.getContent('POST', '/ajax.php', args);

	if (answ == '')
	{
	  return false;
	}

	eval(answ);

	var oScrollPos = Common.getScrollXY();
	var oPicture = $('gallery_viewer_pic');

	if (!oPicture)
	{
	  return false;
	}

	Common.Event.add(oPicture, 'click', Gallery.closeViewer);

	oPicture.src = '/i/blank.gif';
	oPicture.width = imgInfo[0];
	oPicture.height = imgInfo[1];

	$('gallery_viewer_name').innerHTML = alt;

	var oContainer = $('gallery_viewer_block');
	oContainer.style.display = 'block';
	oContainer.style.left = ((document.body.offsetWidth / 2) - (oContainer.offsetWidth / 2)) + 'px';
	oContainer.style.top = (oScrollPos.y + 100) + 'px';

	oPicture.src = src;

	return true;
  },

  Admin : {

	editPostIds : [],

	moveTheme : function(forum_id, id)
	{
	  if (!id)
	  {
		return false;
	  }

	  var args = 'mode=move_theme&forum_id=' + forum_id + '&id=' + id;

	  return this.send(args);
	},

	restoreTheme : function(id)
	{
	  if (!id)
	  {
		return false;
	  }

	  var args = 'mode=restore_theme&id=' + id;

	  return this.send(args);
	},

	unStopTheme : function(id)
	{
	  if (!id)
	  {
		return false;
	  }

	  var args = 'mode=unstop_theme&id=' + id;

	  return this.send(args);
	},

	stopTheme : function(id)
	{
	  if (!id)
	  {
		return false;
	  }

	  var args = 'mode=stop_theme&id=' + id;

	  return this.send(args);
	},

	delTheme : function(id)
	{
	  if (!id)
	  {
		return false;
	  }

	  var args = 'mode=del_theme&id=' + id;

	  return this.send(args);
	},

	editTheme: function(id, forumId)
	{
	  if(!id) {
		  return false;
	  }
			$('edit_path_them_block').style.display = 'block';
	  var txt = $('#forumTitle').innerHTML;
	  var obj = $('#forumTitleBlock');

	  var editForm  = '<form action="" method="post" onsubmit="Forum.Admin.themeSave(\'' + txt + '\'); return false" name="themeEditForm">';
		  editForm += '<input type="hidden" name="editThemeId" id="editThemeId" value="' + id + '"/>';
		  editForm += '<input type="hidden" name="editThemeForumId" id="editThemeForumId" value="' + forumId + '"/>';
		  editForm += '<input type="text" name="editThemeTitle" id="editThemeTitle" style="border:1px solid #C7B896;" value="' + txt + '" />&#160;';
		  editForm += '<input type="submit" value="Сохранить" onclick="void(0)"/>';

	 $('#edit_path_them_block').innerHTML = editForm;
	},

	themeSave: function(text)
	{
		var title   = $('#editThemeTitle').value;
		var id      = $('#editThemeId').value;
		var forumId = $('#editThemeForumId').value;
		var args = 'mode=edit_theme&id=' + id + '&title=' + title + '&forum_id=' + forumId;

		var res = this.send(args);

		if(res) {
		  text = title;
		}

		$('#forumTitle').innerHTML = text;
		$('#edit_new_them').innerHTML = text;
				$('edit_path_them_block').style.display = 'none';
	},

	delThemeFix : function(id)
	{
	  if (!id)
	  {
		return false;
	  }

	  var args = 'mode=del_theme_fix&id=' + id;

	  return this.send(args);
	},

	addThemeFix : function(id)
	{
	  if (!id)
	  {
		return false;
	  }

	  var args = 'mode=add_theme_fix&id=' + id;

	  return this.send(args);
	},

	delForumBlock : function(id)
	{
	  if (!id)
	  {
		return false;
	  }

	  var args = 'mode=del_forum_block&id=' + id;

	  return this.send(args);
	},

	addForumBlock : function(id)
	{
	  if (!id)
	  {
		return false;
	  }

	  var args = 'mode=add_forum_block&id=' + id;

	  return this.send(args);
	},

	updatePost : function(id)
	{
	  if (!id)
	  {
		return false;
	  }

	  var textArea = $('edit-post-' + id);

	  if (!textArea)
	  {
		return false;
	  }

	  var args = 'mode=update_post&str=' + encodeURIComponent(textArea.value) + '&id=' + id;

	  this.send(args);

	  window.location.reload();
	},

	editPost : function(id)
	{
	  if (!id)
	  {
		return false;
	  }

	  var oContainer = $('post-message-' + id);

	  if (!oContainer)
	  {
		return false;
	  }

	  if (this.editPostIds[id])
	  {
		oContainer.innerHTML = this.editPostIds[id];

		delete this.editPostIds[id];
	  }
	  else
	  {
		var args = 'mode=edit_post&id=' + id;

		var answ = Common.AJAX.getContent('POST', '/post.php', args);

		if (answ == '')
		{
		  return false;
		}

		var textArea = '<textarea style="width:520px;" rows="7" id="edit-post-' + id + '">' + answ + '</textarea>';

		textArea += '<div style="text-align:right;"><input type="button" value="сохранить" onclick="return Forum.Admin.updatePost(' + id + ');"/></div>';

		this.editPostIds[id] = oContainer.innerHTML;

		oContainer.innerHTML = textArea;
	  }

	  return false;
	},

	delPost : function(id)
	{
	  if (!id)
	  {
		return false;
	  }

	  var args = 'mode=del_post&id=' + id;

	  return this.send(args);
	},

	restorePost : function(id)
	{
	  if (!id)
	  {
		return false;
	  }

	  var args = 'mode=restore_post&id=' + id;

	  return this.send(args);
	},

	banProfile : function(nick, login, why, ban_time, message)
	{
	  if (!nick)
	  {
		return false;
	  }

	  var args = 'mode=ban&nick=' + nick + '&login=' + login + '&why=' + why + '&message=' + encodeURIComponent(message) + '&ban_time=' + ban_time;

	  return this.send(args);
	},

	delBan : function(nick)
	{
	  if (!nick)
	  {
		return false;
	  }

	  var args = 'mode=del_ban&nick=' + encodeURIComponent(nick);

	  return this.send(args);
	},

	addModerator : function(nick)
	{
	  if (!nick)
	  {
		return false;
	  }

	  var args = 'mode=add_moderator&nick=' + encodeURIComponent(nick);

	  return this.send(args);
	},

	delModerator : function(nick)
	{
	  if (!nick)
	  {
		return false;
	  }

	  var args = 'mode=del_moderator&nick=' + encodeURIComponent(nick);

	  return this.send(args);
	},

	addAdmin : function(nick)
	{
	  if (!nick)
	  {
		return false;
	  }

	  var args = 'mode=add_admin&nick=' + encodeURIComponent(nick);

	  return this.send(args);
	},

	delAdmin : function(nick)
	{
	  if (!nick)
	  {
		return false;
	  }

	  var args = 'mode=del_admin&nick=' + encodeURIComponent(nick);

	  return this.send(args);
	},

	showBans : function( login, nick, cntId )
	{
	  var oTr = $('tr-' + cntId);
	  var oCnt = $('cnt-' + cntId);

	  if( !oCnt || !oTr )
		return false;

	  if( oTr.style.display == 'block' ){
		oTr.style.display = '';
		oCnt.innerHTML = '';
		return true;
	  }

	  if (!nick || !login)
		return false;

	  var args = 'mode=get_bans&nick=' + encodeURIComponent(nick) + '&login=' + encodeURIComponent(login);

	  var answ = Common.AJAX.getContent('POST', '/post.php', args);;

	  if( answ == '' )
		return false;

	  var bans = [];
	  eval(answ);

	  if( bans.length ){
		oCnt.innerHTML = '';
		oTr.style.display = 'block';

		var tbl = '<table><tr><th>Забанил</th><th>до</th><th>Разбанил</th><th>когда</th><th>Причина бана</th></tr>';
		for( i=0; i< bans.length ; i++ )
		{
		  tbl += '<tr>';
		  tbl += '<td>' + bans[i].ban_profile_name + '</td>';
		  tbl += '<td>' + bans[i].ban_time + '</td>';
		  tbl += '<td>' + bans[i].unban_profile_name + '</td>';
		  tbl += '<td>' + bans[i].unban_time + '</td>';
		  tbl += '<td>' + bans[i].message + '</td>';
		  tbl += '</tr>';
		}
		tbl += '</table>';
		oCnt.innerHTML = tbl;
		return true;
	  }
	  else
		return false;

	},

	send : function(args)
	{
	  if (!args)
	  {
		return false;
	  }

	  var answ = Common.AJAX.getContent('POST', '/post.php', args);
	  if (!answ)
	  {
		return false;
	  }

	  eval(answ);
	  if (status == 'ok')
	  {
		return true;
	  }

	  return false;
	}
  },

  Post : {

	tdInnerHTML : '',

	previewMessage : '',

	preview : function()
	{

		var oMessage = $('post-message');

		if (!oMessage)
		{
			return false;
		}
		if (oMessage.value == '' || oMessage.value.search(/\S/) == -1)
		{
			return false;
		}
//[img.*?\](.*?)\[/img\]
		this.previewMessage = oMessage.value;

	 // var args = 'mode=post_preview&str=' + encodeURIComponent(str);

		var oThis = this;

		var TrPreview=$('post-message-preview-tr');
		var oPreviewContainer = $('post-message-preview');
		var ButPreview=$('answer-area-top-div-block');
		var DivAnswer=$('answer-div-id');
		var oPreviewContainerCopy=$('post-message-prev-copy');

		var avatarpostdiv =$("avatar-post-div");

		//	oPreviewContainer.innerHTML=this.previewMessage;
		if (oPreviewContainer)
		{
			//   oPreviewContainer.className = '';d
			oThis.InnerHTML = oPreviewContainer.innerHTML;
			oPreviewContainerCopy.value=oMessage.value;
			var TegMessage=oThis.previewMessage.replace(/:(\S*?):/g, '<img src=\'/i/smiles/$1.gif\'>');
			TegMessage=TegMessage.replace(/(http:\/\/(\S+))/g, '<a href=\'$1\'>$2</a>');
			TegMessage=TegMessage.replace(/\n/g, '<br>');
			TegMessage = TegMessage.replace(/\"/g, '&quot;');

			oPreviewContainer.innerHTML = TegMessage;
		}

		Common.CSSClass.set(DivAnswer, 'none_display_block');
		if (TrPreview) {
		//	Common.CSSClass.change(TrPreview, 'success-str');

			Common.CSSClass.remove(TrPreview, 'none_display_block');
		//	Common.CSSClass.set(TrPreview, 'success-bg');
		}

		//oMessage.disabled=true;
		//ButPreview.visible=false;
		//	Common.CSSClass.set(ButPreview, 'none_display_block');
		 var oPreviewButton = $('preview-button');
		 Common.CSSClass.set(oPreviewButton, 'answer-edit');
		Common.CSSClass.remove(oPreviewButton, 'answer-view');
		if(avatarpostdiv) {
		Common.CSSClass.set(avatarpostdiv, 'none_display_block');
		}
		// if (oPreviewButton)
		//{
		oPreviewButton.onclick = function ()
		{
		  Forum.Post.edit();
		};

		//oPreviewButton.src = '/i/buttons/edit.jpg';
		//}


	  return true;
	},

	submit: function(form, messageFieldId, additionalFieldList)
	{
		var val = $("#" + messageFieldId).value;
		for(var i = 0; i < additionalFieldList.length; i++) {
			val += additionalFieldList[i](val)
		}

		$("#" + messageFieldId).value = val;
		form.submit();
	},

	edit : function()
	{
	  var oPreviewContainer = $('post-preview-container');
	   var oPreviewContainer2 = $('post-message');
		var TrPreview=$('post-message-preview-tr');
		var ButPreview=$('answer-area-top-div-block');
		 var DivAnswer=$('answer-div-id');
		 var avatarpostdiv =$("avatar-post-div");
	  if (oPreviewContainer)
	  {
	   // oPreviewContainer.className = 'textarea';
			oPreviewContainer2.disabled=false;
		//oPreviewContainer.innerHTML = this.tdInnerHTML;
	  }
		Common.CSSClass.set(TrPreview, 'none_display_block');

	  var oPreviewButton = $('preview-button');
		Common.CSSClass.remove(DivAnswer, 'none_display_block');
				if(avatarpostdiv) {
			Common.CSSClass.remove(avatarpostdiv, 'none_display_block');
			}
	  if (oPreviewButton)
	  {
		Common.CSSClass.set(oPreviewButton, 'answer-view');
		Common.CSSClass.remove(oPreviewButton, 'answer-edit');

		oPreviewButton.onclick = function ()
		{
		  Forum.Post.preview();
		}

	   // oPreviewButton.src = '/i/buttons/preview.jpg';
	  }

	  var oMessage = $('post-message');

	  if (oMessage)
	  {
		oMessage.value = this.previewMessage;
	  }

	  return true;
	}
  }
};

var postMessageIsFosus = 0;

function keyHandler(e)
{
  if (!e.ctrlKey)
  {
	return false;
  }

  var code = e.keyCode || e.which || null;

  if (!code || code != 13)
  {
	return false;
  }

  var oForm = $('forum-form');

  if (!oForm)
  {
	return false;
  }

  if (!postMessageIsFosus)
  {
	return false;
  }

  oForm.submit();

  Common.Event.cancel(e);
}

function toggleSelect(selectId)
{
  var select = $(selectId);
  if ('block' == select.style.display)
	hideSelect(selectId);
  else
	showSelect(selectId);
}

function hideSelect(selectId)
{
  var select = $(selectId);
  if (select) { select.style.display = 'none'; }
}

function showSelect(selectId)
{
  var select = $(selectId);
  if (select) { select.style.display = 'block'; }
}

function hideForumSelect(e)
{
  // Мы все очень любим IE.
  if (typeof e == "undefined")
	e = window.event;

  var t = e.target;

  // Мы все очень любим IE.
  if (typeof t == 'undefined')
	t = e.srcElement;

  do {
	if (t.id == 'select-emul')
	  return;

	else if (t.className == 'select-emul-option' ||
			 t.className == 'select-emul-first-option' ||
			 t.className == 'select-emul-last-option') {

	  for (var i = 0; i < t.childNodes.length; i++) {
		if ('a' != t.childNodes[i].nodeName.toLowerCase())
		  continue;

		$('select-emul-active-forum-name').firstChild.nodeValue =
			t.childNodes[i].firstChild.nodeValue;
		break;
	  }
	}

	t = t.parentNode;
  } while (null != t);

  var o = $('select-emul-options');
  for (var i = 0; i < o.childNodes.length; i++) {
	if ('div' != o.childNodes[i].nodeName.toLowerCase())
	  continue;

	for (var j = 0; j < o.childNodes[i].childNodes.length; j++) {
	  var c = o.childNodes[i].childNodes[j];

	  if ('a' != c.nodeName.toLowerCase())
		continue;

	  if ($('select-emul-active-forum-name').firstChild.nodeValue != c.firstChild.nodeValue)
		continue;

	  clearSelected(c);

	  switch (c.parentNode.className) {
		case 'select-emul-first-option':
		  c.className = 'active-select-first-option';
		  break;

		case 'select-emul-last-option':
		  c.className = 'active-select-last-option';
		  break;

		default:
		  c.className = 'active-select-option';
		  break;
	  }
	}
  }

  hideSelect('select-emul-options');
}

function processSelect(e)
{
  // Мы все очень любим IE.
  if (typeof e == "undefined")
	e = window.event;

  var t = e.target;

  // Мы все очень любим IE. Очень!
  if (typeof t == 'undefined')
	t = e.srcElement;

  if ('a' == t.nodeName.toLowerCase()) {
	clearSelected(t);
	switch (t.parentNode.className) {
	  case 'select-emul-first-option':
		t.className = 'active-select-first-option';
		break;

	  case 'select-emul-last-option':
		t.className = 'active-select-last-option';
		break;

	  default:
		t.className = 'active-select-option';
		break;
	}

  }
}

function clearSelected(t)
{
  var p = t.parentNode.parentNode;

  for (var i = 0; i < p.childNodes.length; i++) {
	if ('div' != p.childNodes[i].nodeName.toLowerCase())
	  continue;

	for (var j = 0; j < p.childNodes[i].childNodes.length; j++) {
	  var c = p.childNodes[i].childNodes[j];
	  if ('a' == c.nodeName.toLowerCase()) {
		c.className = '';
	  }
	}
  }
}

function initSelect()
{
  var so = $('select-emul-options');
  if (!so) {
	return false;
  }
  Common.Event.add(so, 'mouseover', processSelect);
  Common.Event.add(document, 'click', hideForumSelect);

}

function show_vote_table(obj) {
	if(obj) {
		var obj_table = document.getElementById(obj);
		obj_table.style.display = obj_table.style.display == 'table' ? 'none' : 'table';
	}
}

//window.onload = initSelect;
Common.Event.add(document, 'keydown', keyHandler);
