// on load
var toplogin_changing = false;
var toplogin_closeafteropen = false;
var comment_selected = 0;
var last_selected = 0;
var current_str = false;
var quote_tm = false;
var quote_id;

$(document).ready(function(){
	$.ajaxSetup({  type: "POST" });
	triggerLogin();
	triggerPassword();
	

	$('#popup_message').jqm({overlay: 0});    
	$('#popup_message').jqmAddClose('#msg_close');
	
	$('#popup_video').jqm({overlay: 0});    
	$('#popup_video').jqmAddClose('#video_close');
	$('#popup_video').jqmAddClose('#video_close2');
	
	$('#popup_confirm').jqm({overlay: 0});	
	$('#popup_confirm').jqmAddClose('#confirm_no');
	
	$('#popup_complain').jqm({overlay: 0});	
	$('#popup_complain').jqmAddClose('#complain_close');
	
	$('#popup_send2friend').jqm({overlay: 0});	
	$('#popup_send2friend').jqmAddClose('#send2friend_close');
	
	$('#popup_ajax').jqm({overlay: 0});	
	
	$('textarea.resizable:not(.processed)').TextAreaResizer();
	
	$('#toplogin').bind("mouseenter", function(e){
			if(!toplogin_changing)
			{
				toplogin_changing=true;
        $('#menutri').hide();
      	$('#toplogin_extra').slideDown("normal",function(){
					if(toplogin_closeafteropen)
					{
            $('#toplogin_extra').slideUp("normal",function(){
              $('#menutri').fadeIn("fast");
							toplogin_changing=false;
							toplogin_closeafteropen=false;
						});
					}
					else toplogin_changing=false;
				});
			}
  });
		
	$('#toplogin').bind("mouseleave", function(e){
			if(!toplogin_changing)
			{
				toplogin_changing=true;
        
      	$('#toplogin_extra').slideUp("normal",function(){
          $('#menutri').fadeIn("fast");
					toplogin_changing=false;
				});
			}
			else
			{
				toplogin_closeafteropen = true;
			}
  });
	
	/*
	if( window.js_time < (window.php_time - 1000) 
	    ||
		  window.js_time > (window.php_time + 1000)
		 )
	{
		 	alert2('Внимание!','На вашем компьютере неверно установлено время, что может послужить причиной неправильной работы сайта.<br>Пожалуйста, установите правильное время.');
	}
	*/
	
	if(!navigator.cookieEnabled)
	{
		alert2('Внимание!','Внимание!<br>В вашем браузере отключены cookies, необходимые для работы сайта. Вы не сможете войти на сайте с отключенными cookies.<br>Вам следует включить их или обратится к тому, кто знает как это сделать.');
	}
});





function complain(type, id)
{
  $('#complain_id').val(id);
	$('#complain_type').val(type);
	$('#complain_text').val('')
	$('#complain_title').html('Пожаловаться');
	if(type=='comment')
		$('#complain_description').html('Вы можете сообщить модератору о нарушении правил в данном комментарии.<br><br>Пожалуйста, укажите причину, по которой вы хотите обратить внимание на данный комментарий:');
	else
		$('#complain_description').html('Вы можете сообщить модератору о нарушении правил в данном материале.<br><br>Пожалуйста, укажите причину, по которой вы хотите обратить внимание на данный материал:');
	
	$('#popup_complain').jqmShow();
	return false;
}


function complainSend()
{
  var txt = $('#complain_text').val();
	var id = $('#complain_id').val();
	var type = $('#complain_type').val();
	
	if(txt.length==0)
	{
		alert('Пожалуйста, укажите причину жалобы.');
		return;
	}
	
	$('#popup_complain').jqmHide();
	ajax_show('Отправка сообщения...');
	$.post('/ajax/complain/',{'id':id, 'text':txt, 'type':type},function(data)
	{
		ajax_close();
		alert2('Сообщение отправлено','Ваше сообщение отправлено на рассмотрение модераторам.');
	});
}







this.vtip = function() {    
    this.xOffset = 0;
    this.yOffset = -15; 
    
    $(".vtip").unbind().hover(    
        function(e) {
						
						$('#texttip').html(this.title);
						
					
            this.t = this.title;
            this.title = ''; 
            this.top = (e.pageY + yOffset - $('#vtip').height() ); 
						this.left = (e.pageX + xOffset);
						if(this.left + 350 > getWindowWidth()) 
						{
							this.left-=310;
							$('#vtipArrow').addClass('right');
							$('#vtipArrow2').addClass('right');
						}
						else
						{
							$('#vtipArrow').removeClass('right');
							$('#vtipArrow2').removeClass('right');
						}
						
						if(this.top - 30 < getScrollTop()) 
						{
							this.top = this.top + $('#vtip').height() + 50;
							$('#vtipArrow2').show();
							$('#vtipArrow').hide();
						}
						else
						{
							$('#vtipArrow2').hide();
							$('#vtipArrow').show();
						}
						
						if(document.all)
	            $('#vtip').css("top", this.top+"px").css("left", this.left+"px").show();
						else
							$('#vtip').css("top", this.top+"px").css("left", this.left+"px").fadeIn("normal");						
        },
        function() {
            this.title = this.t;
            $("#vtip").hide();
        }
    ).mousemove(
        function(e) {
						this.top = (e.pageY + yOffset - $('#vtip').height() ); 
						this.left = (e.pageX + xOffset);                         
						if(this.left + 350 > getWindowWidth()) 
						{
							this.left-=310;
							$('#vtipArrow').addClass('right');
							$('#vtipArrow2').addClass('right');
						}
						else
						{
							$('#vtipArrow').removeClass('right');
							$('#vtipArrow2').removeClass('right');
						}
						
						if(this.top - 30 < getScrollTop()) 
						{
							this.top = this.top + $('#vtip').height() + 50;
							$('#vtipArrow2').show();
							$('#vtipArrow').hide();
						}
						else
						{
							$('#vtipArrow2').hide();
							$('#vtipArrow').show();
						}
						
            $("#vtip").css("top", this.top+"px").css("left", this.left+"px");
        }
    );            
    
};

jQuery(document).ready(function($){vtip();}) 










function startSelectComment(start_id)
{
	current_str = false;
	var str = getSelectedText();
	if(str=='' || last_selected>0) comment_selected=start_id;
	else comment_selected=0;
}


function guestComment()
{
	alert2('Написать комментарий','Оставлять комментарии могут только зарегистрированные пользователи.<br><div style="margin:15px 0px 5px;font-size:16px;color:#FE3322;"><a href="/signup/" style="font-size:18px;color:#FE3322;">Зарегистрироваться</a>,</div>или <a href="/login/">войти</a> если вы уже регистрировались.');
	return false;
}

function top1()
{
	alert2('Добавить статью','Хотите опубликовать свою статью? Для этого вам необходимо зарегистрироваться.<br><div style="margin:15px 0px 5px;font-size:16px;color:#FE3322;"><a href="/signup/" style="font-size:18px;color:#FE3322;">Зарегистрироваться</a>,</div>или <a href="/login/">войти</a> если вы уже регистрировались.');
	return false;
}

function top2()
{
	alert2('Завести дневник','Желаете завести собственный дневник? Для этого вам необходимо зарегистрироваться.<br><div style="margin:15px 0px 5px;font-size:16px;color:#FE3322;"><a href="/signup/" style="font-size:18px;color:#FE3322;">Зарегистрироваться</a>,</div>или <a href="/login/">войти</a> если вы уже регистрировались.');
	return false;
}

function selectComment(end_id, e)
{
	if(comment_selected==0 || end_id != comment_selected) 
	{
		comment_selected=0;
		last_selected=0;
		current_str = false;
		return;
	}
	if(e.button==2) return;
	
	// получаем текст в выборке
	var str = getSelectedText();
	
	if(str!='') 
	{
		quote_id = end_id;
		last_selected = end_id;
		current_str = str;
		showQuote(e);
	}
	else
	{
		current_str = false;
		last_selected = 0;
	}
}


function getSelectedText()
{
	var txt = '';
  if (window.getSelection)
  {
     txt = window.getSelection();
  }
  else if (document.getSelection)
  {
     txt = document.getSelection();
  }
  else if (document.selection)
  {
     txt = document.selection.createRange().text;
  }
  return txt;
}


function showQuote(e)
{
	if(quote_tm) {clearTimeout(quote_tm);quote_tm=false;}
	var x;
	var y;
	if(document.all)
	{
		x=e.x;
		y=e.y;
	}
	else
	{
		x=e.pageX;
		y=e.pageY;
	}
	
		
	if( x+20+300 > getWindowWidth() )
	{
		x -= 300;
	}
	else
	{
		x += 20;
	}
	if( y+20+80 > getWindowHeight() )
	{
		y -= 80;
	}
	else
	{	
		y+=20;
	}
	
	document.getElementById('quote_comment').style.top = y+'px';
	document.getElementById('quote_comment').style.left = x+'px';
	$('#quote_comment').fadeIn();
	
	quote_tm = setTimeout(fadeQuote, 10000);
}

function fadeQuote()
{
	current_str = false;
	if(quote_tm) {clearTimeout(quote_tm);quote_tm=false;}
	$('#quote_comment').fadeOut("fast");	
	return false;
}

function outsideQuote()
{	
	if(quote_tm) {clearTimeout(quote_tm);quote_tm=false;}
	$('#quote_comment').fadeOut("fast");	
}

function insertQuote()
{
	var type = 'comment';
	if($('#mail_form').length>0) type='mail';
	
	if(type=='comment')
	{
		showCommentFormNoHide(quote_id);
		var textarea = document.getElementById('comment_tex_'+quote_id);
		var author = $('#quote'+quote_id).html();
		if(!author) author = $('#a_author').html();
		var text = '[quote='+author+']' + current_str + '[/quote]'+"\n";
	}
	else
	{
		var textarea = document.getElementById('text_id');
		var text = '[quote]' + current_str + '[/quote]'+"\n";
	}
		
	if (!isNaN(textarea.selectionStart))
	{
		var sel_start = textarea.selectionStart;
		var sel_end = textarea.selectionEnd;

		mozWrap(textarea, text, '')
		textarea.selectionStart = sel_start + text.length;
		textarea.selectionEnd = sel_end + text.length;
	}		
	else if (textarea.createTextRange && textarea.caretPos)
	{
		if (baseHeight != textarea.caretPos.boundingHeight) 
		{
			textarea.focus();
			storeCaret(textarea);
		}		
		var caret_pos = textarea.caretPos;
		caret_pos.text = caret_pos.text.charAt(caret_pos.text.length - 1) == ' ' ? caret_pos.text + text + ' ' : caret_pos.text + text;
		
	}
	else
	{
		textarea.value = textarea.value + text;
	}
	textarea.focus();
	return false;
}



function getWindowWidth()
{
	var x = 0;
	if (document.body) {
    x = document.body.clientWidth;
	}
	return x;
}

function getScrollTop()
{
	if(document.all)
	{
		var iebody=(document.compatMode && document.compatMode != "BackCompat")? document.documentElement : document.body;
		return iebody.scrollTop;
	}
	return window.pageYOffset;
}

function getWindowHeight()
{
  var y = 0;
	if(document.scrollHeight)
	{
		y = document.scrollHeight;
	}
	else if (self.innerHeight) {
    y = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) {
    y = document.documentElement.clientHeight;
	} else if (document.body) {
    y = document.body.clientHeight;
	}
	return (document.all ? document.body.scrollTop : window.pageYOffset) + y;
}


function getVHistory(docid)
{
  $('#vote_history_top').toggle();
	$('#vote_history_block').toggle();
  
  $('#vote_history_block').load('/ajax/load/vhistory/'+docid);
  
	return false;
}

function favDelete()
{
  //считаем
  var cnt=0;
  $('.favcheck').each(function(){if(this.checked) cnt++;});
  
  if(cnt==0) 
  {
    alert('Вы ничего не отметили');
    return false;
  }
  
  if(confirm('Удалить '+cnt+' '+plural_form(cnt,'материал','материала','материалов')+' из вашего избранного?'))
  {
    document.getElementById('favitemz').submit();
  }
  
  return false;
}

var fav_new=0;

function showNewRub()
{
  fav_new=1;
  $('#fav_select_rub').hide();
  $('#fav_new_rub').show();
  return false;
}

function hideNewRub()
{
  fav_new=0;
  $('#fav_new_rub').hide();
  $('#fav_select_rub').show();
  return false;
}


function showAddFav()
{
  $('#bloginsert1').hide();
  $('#add2fav').toggle();
  return false;
}

function onAdd2Fav()
{
	var id = $('#fav_id').val();
	var title = $('#fav_title').val();
  var folder_name = $('#fav_folder').val();
  if(fav_new) folder_name = $('#fav_newfolder').val();
  
  $('#fav_buttons').hide();
  $('#fav_status').html('Идёт добавление...').show();
  $.post("/ajax/add2fav/", 
		{'id':id, 'title':title, 'folder': folder_name},
  		function(data){
        if(data!='error')
        {        
				  $('#fav_status').html('Добавлено в <a href="'+data+'">ваше избранное</a>!');
        }
 		});
	return false;
}

function showInvisHelp()
{
  alert2('Режим невидимости','При включенном режиме невидимости вас не будет в списках тех кто сейчас online, а в вашем профиле не будет пометки "Сейчас на сайте".');
  return false;
}

function invis(val)
{
  $('#invisible_on').hide();
  $('#invisible_off').hide();
  $('#invis_status').show();
  $.post("/ajax/invisible/", 
		{'val':val},
  		function(data){
        if(data!='error')
        {
          $('#invis_status').hide();
				  if(val==1) $('#invisible_on').show();
          if(val==0) $('#invisible_off').show();
        }
 		});
	return false;
}

function ban(val,userid)
{
	if(!confirm('Изменить статус пользователя?')) return false;
  $('#ban_on').hide();
  $('#ban_off').hide();
  $('#ban_status').show();
  $.post("/ajax/ban/", 
		{'val'   : val, 
     'userid': userid},
  		function(data){
        if(data!='error')
        {
          $('#ban_status').hide();
				  if(val==1) $('#ban_on').show();
          if(val==0) $('#ban_off').show();
        }
 		});
	return false;
}


function showPollInsert(id)
{
	$('#poll_votes_'+id).hide();
  $('#poll_insert_'+id).toggle();
  return false;
}

function showPollPreview(id)
{
  $('#poll_preview_'+id).toggle();
  return false;
}

function showBlogInsert()
{
  $('#add2fav').hide();
  $('#bloginsert1').toggle();
  return false;
}

function previewBlogInsert()
{
  $('#bloginsert2').toggle();
  return false;
}

function ajax_show(title)
{
	$('#ajax_title').html(title);
	$('#popup_ajax').jqmShow();
}

function ajax_close()
{
	$('#popup_ajax').jqmHide();
}

function send2friend(documentid)
{
  $('#add2fav').hide();
  $('#bloginsert1').hide();
	$('#sf_documentid').val(documentid);
	$('#sf_email').val('');
	$('#sf_error').html('');
	$('#popup_send2friend').jqmShow();
	return false;
}

function send2friend_submit()
{
	$('#sf_error').val('');
	id = $('#sf_documentid').val();
	email =  $('#sf_email').val();
	name = $('#sf_name').val();
	
	if(email=='') 
	{
		$('#sf_error').html('Введите e-mail');
		return;
	}

	if(!test_email(email))
	{
		$('#sf_error').html('E-mail задан неправильно. Проверьте введенный вами адрес');
		return;		
	}
	
	if(name=='') 
	{
		$('#sf_error').html('Введите своё имя');
		return;
	}

	
	$('#popup_send2friend').jqmHide();
	ajax_show('Идёт отправка...');
	$.post("/ajax/send2friend/", 
		{id:id, email:email, name:name},
  		function(data){
				ajax_close();
				if(data=='error')
					alert2('Произошла ошибка','Сообщение не может быть отправлено');
				else
					alert2('Сообщение отправлено','Ссылка на материал была отправлена по адресу: <b>'+email+'</b>');
 		});
	return false;
}


function subscribe(documentid)
{
	ajax_show('Отправка запроса...');
	$.post("/ajax/subscribe/", 
		{documentid:documentid},
  		function(data){
				ajax_close();
				if(data=='error')
				{
					alert2('Произошла ошибка','Подписка не может быть выполнена');
				}
				else
				{
					alert2('Вы подписались на комментарии','Теперь вы будете получать уведомления о новых комментариях к этому материалу на ваш e-mail');
					$('#link_sub').hide();
					$('#link_unsub').show();
					$('#cform_ss').hide();
				}
 		});
	return false;
}

function unsubscribe(documentid)
{
	ajax_show('Отправка запроса...');
	$.post("/ajax/unsubscribe/", 
		{documentid:documentid},
  		function(data){
				ajax_close();
				if(data=='error')
				{
					alert2('Произошла ошибка','Подписка не может быть удалена');
				}
				else
				{
					alert2('Вы отписались от комментариев','Вы больше не будете получать уведомления о новых комментариях к этому материалу');
					$('#link_unsub').hide();
					$('#link_sub').show();
				}
 		});
	return false;
}

/* отписка из блока на главной */
function unsubscribe2(documentid)
{
	if(!confirm('Отписаться от комментариев к данной теме?')) return false;
	
	$.post("/ajax/unsubscribe/", 
		{documentid:documentid},
  		function(data){
				ajax_close();
				if(data=='error')
				{
					alert2('Произошла ошибка','Подписка не может быть удалена');
				}
				else
				{
					$('#new_for_me_'+documentid).slideUp();
				}
 		});
	return false;
}


function showBlock(name)
{
	$('#'+name+'_top').toggle();
	$('#'+name+'_block').toggle();
	return false;
}

function slideBlock(name)
{
	if($('#'+name).get(0).style.display=='none') $('#'+name).slideDown();
	else $('#'+name).slideUp();
	return false;
}

function initTabs(id,count)
{
	for(var i=1;i<=count;i++)
	{
		$('#h_'+id+'_'+i).bind("click", {num: i},  function(e) {
				selectTab(id,count,e.data.num);
				e.preventDefault();
		});
	}
}

function selectTab(id,count,num)
{
	for(var i=1;i<=count;i++)
	{
		$('#h_'+id+'_'+i).removeClass('active');
		$('#c_'+id+'_'+i).hide();
	}
	$('#h_'+id+'_'+num).addClass('active');
	$('#c_'+id+'_'+num).show();
}



var tabs_content = new Array();
var tabs_count = new Array();
var tabs_lifetime = new Array();
var tabs_activity = new Array();

function initAjaxTabs(id,count)
{
	tabs_count[id] = count;
	tabs_content[id] = new Array();
	tabs_lifetime[id] = new Array();
	tabs_activity[id] = 0;
	for(var i=1;i<=count;i++)
	{
		$('#h_'+id+'_'+i).bind("click", {num: i},  function(e) {
				var start = this.href.indexOf('#');
				var part = this.href.substring(start);
				if(part=='#') e.preventDefault();
				selectAjaxTab(id,e.data.num);
		});
		if($('#h_'+id+'_'+i).hasClass('active'))
		{
			tabs_content[id][i] = $('#a_'+id).html();
			var date_obj = new Date();
			tabs_lifetime[id][i] = date_obj.getTime();
		}
	}
}


function ajaxTabPage(id,num,page)
{
	if(tabs_activity[id]==1) return;
	
	tabs_activity[id]=1;
	$('#ajax_pager_'+id).html('Идёт загрузка...');
	var lnk = $('#h_'+id+'_'+num).attr('rel');
	
	$.get(lnk,{id:id,num:num,page:page}, function(data){
			$('#a_'+id).html(data);
			vtip();
			tabs_activity[id]=0;
			document.location.href='#'+id+'top';
		});
}


function selectAjaxTab(id,num)
{
	if(tabs_activity[id]==1) return;
	count = tabs_count[id];
		
	var previous_active=0;
	for(var i=1;i<=count;i++)
	{
		if($('#h_'+id+'_'+i).hasClass('active')) previous_active = i;
		$('#h_'+id+'_'+i).removeClass('active');
	}
	$('#h_'+id+'_'+num).addClass('active');		
	
	var date_obj = new Date();
	if(previous_active!=num && tabs_content[id][num] && date_obj.getTime()-tabs_lifetime[id][num]<60000 )
	{
	  // берем из кэша
		$('#a_'+id).html(tabs_content[id][num]);
	}
	else
	{
		tabs_activity[id]=1;
		$('#a_'+id).html('Идёт загрузка...');
		var lnk = $('#h_'+id+'_'+num).attr('rel');
		$.get(lnk,{id:id,num:num}, function(data){
			tabs_content[id][num] = data;
			var date_obj = new Date();
			tabs_lifetime[id][num] = date_obj.getTime();
			$('#a_'+id).html(data);
			vtip();
			tabs_activity[id]=0;
		});
	}
}


function selectAjaxTabByUrl(id,num)
{
	var start = document.location.href.indexOf('#');
	if(start!=-1)
	{
		var part = document.location.href.substring(start+1);
		part = part.replace(id,'');
		if(part.search(/^\d+$/)!=-1) num = part;
	}
	if(num) selectAjaxTab(id,num);
}


function alert2(title, text)
{
	$('#popup_title').html(title);
	$('#popup_text').html(text);
	$('#popup_message').jqmShow();
	return false;
}


var confirm2_type;
var confirm2_param;
function confirm2(title, text, type, param)
{
	$('#confirm_title').html(title);
	$('#confirm_text').html(text);
	confirm2_type=type;
	confirm2_param=param;
	$('#popup_confirm').jqmShow();
	return false;
}

function onConfirm2()
{
	$('#popup_confirm').jqmHide();
	if(confirm2_type=='link') document.location.href=confirm2_param.href;
}

function triggerLogin()
{
	if(!$('#login_field').length) return;
	$('#login_field').bind("focus", function(e){
        if(this.value=='Логин') {this.value='';this.style.color='black';}
    });
    $('#login_field').bind("blur", function(e){
        if(this.value=='') {this.style.color='';this.value='Логин';}
    });
}

function triggerPassword()
{
	if(!$('#pwd_field').length) return;
	//$('#pwd_field').get(0).type='text';
	$('#pwd_field').bind("focus", function(e){
        if(this.value=='Пароль') {this.value='';/*this.type='password';*/this.style.color='black';}
    });
    $('#pwd_field').bind("blur", function(e){
        if(this.value=='') {this.style.color='';/*this.type='text';*/this.value='Пароль';}
    });
}


function plural_form(n, form1, form2, form5)
  {
    n = n % 100;
    n1 = n % 10;
    if (n > 10 && n < 20) return form5;
    if (n1 > 1 && n1 < 5) return form2;
    if (n1 == 1) return form1;
    return form5;
  }
  





// comments
var current_comment_form=0;
function addComment(parentid,guestmode)
{
	text = document.getElementById('comment_tex_'+parentid).value;
	if(text.length==0) return;
	//text = encodeURIComponent(text);
	
	subscribe=0;
	if( $('#subcomments').length>0 
			&& $('#subcomments').get(0).checked)
	{
		subscribe=1;
	}
	
	$("#comment_button_"+parentid).attr("disabled","disabled");
	$("#comment_tex_"+parentid).attr("disabled","disabled");
	$("#comment_span_"+parentid).html("Идёт добавление комментария...");
	
	var cap=0;
	var guestname = '';
	var gmode = 0;
	if(guestmode)
	{
		cap = $('#cap_'+parentid).val();
		guestname = $('#guestname_'+parentid).val();
		gmode = 1;
	}

	// отправляем коммент, получаем массив - статус (0 если неудача, или id добавленного коммента если удача) и ветку
	$.post("/ajax/newcomment/", 
		{parentid: parentid, tex: text, guestmode: gmode, cap:cap, guestname: guestname, subscribe:subscribe},
  		function(data){
        if(data=='antiflood')
  			{
  				$("#comment_span_"+parentid).html("Вы не можете отправлять комментарии чаще чем раз в 15 секунд.");
  			}
  			else if(data=='closed')
  			{
  				$("#comment_span_"+parentid).html("Обсуждение данной темы закрыто.");
  			}
  			else if(data=='captcha')
  			{
  				$("#comment_span_"+parentid).html("Вы неправильно указали код с картинки.");
  			}
  			else
  			{ 				
  				data = eval(data);
					
					if(data.id)
	  			{  			
						$('#link_sub').hide();
						$('#link_unsub').show();
						$('#cform_ss').hide();
					
		  			var cont = $("#comment_node_"+parentid);
		  			if(cont.attr("rel")=='rootnode') {
		  				$("#comment_node_"+parentid).html(data.html);
						}
		  			else {
		  				$("#comment_node_"+parentid).replaceWith(data.html);
						}
						vtip();
		  			
		    		$('#comment_tex_'+parentid).val("");
		    		$("#comment_span_"+parentid).html("");
						document.location.href='#com'+data.id;
	  			}
	  			else  				
	  			{
  					$("#comment_span_"+parentid).html("При добавлении комментария произошла ошибка");
  				}
	  		}  			
			$("#comment_tex_"+parentid).removeAttr("disabled");
			$("#comment_button_"+parentid).removeAttr("disabled");			
 		});
}



function showCommentEdit(id)
{
  $('#cmcontent'+id).hide();
  $('#cmtarea'+id).show();
  $('#cmcontrols'+id).hide();
  $('#cmcontrols'+id+'_2').show();  
}

function acceptCommentEdit(id)
{
  var str = $('#comarea'+id).get(0).value;
  
  $('#cmcontrols'+id+'_2').hide();
  $('#cmcontrols'+id+'_3').html('<small class="clear">Идёт сохранение комментария...</small>').show();
  
  $.post("/ajax/comments/edit15/",
        {"id":id, "text": str}, 
        function(data)
        {
          if(data=='error')
          {
            alert2('Ошибка сохранения','Во время сохранения комментария произошла ошибка.<br>Обновите страницу и попробуйте ещё раз.');
            declineCommentEdit(id);            
          }
          if(data=='expired')
          {
            alert2('Ошибка сохранения','Комментарии можно редактировать только в течение 15 минут после опубликования. <br>Время редактирования данного комментария окончилось.');
            declineCommentEdit(id);
          }

          $('#cmcontrols'+id+'_3').hide();
          $('#cmcontrols'+id).show();
          $('#cmtarea'+id).hide();
          $('#cmcontent'+id).html(data).show();
        });  
}

function declineCommentEdit(id)
{
  $('#cmcontrols'+id+'_3').hide();
  $('#cmcontrols'+id+'_2').hide();
  $('#cmcontrols'+id).show();
  $('#cmtarea'+id).hide();
  $('#cmcontent'+id).show();  
}



function showCommentFormNoHide(parentid)
{
	$("#comments_form_"+parentid).show();
	current_comment_form=parentid;
}


function showCommentForm(parentid)
{
	if(current_comment_form) {$("#comments_form_"+current_comment_form).hide();}
	
	$("#comments_form_"+parentid).show();
	current_comment_form=parentid;
}


function expandComments(parentid,that)
{
	$("#comments_subtree_"+parentid+" div").html('<br>Идёт загрузка ветки комментариев...');
	$("#comments_subtree_"+parentid).load("/ajax/commentsubtree", {parentid: parentid});
}


function simpleDeleteComment(id)
{
	$.post("/ajax/deletecomment2", 
		{id: id},
  		function(data){
  			if(data=='error') return;
				$("#del_com_"+id).replaceWith('<small class="red">Комментарий был удалён</small>');
  		});
}

function deleteComment(id,parentid,childcount)
{
	var question = 'Вы уверены в том что хотите удалить этот комментарий?';
	if(childcount%10==1 && childcount%100!=11) question = 'Вместе с этим комментарием удалится и один ответ на него. Все равно удалить?';
	else if(childcount>0) question = 'Вместе с этим комментарием удалятся и '+childcount+' вложенных. Удалить всю ветку?';
	if(!confirm(question)) return;
	
	// отправляем запрос, получаем массив - статус (0 если неудача, или parentid если удалили) и ветку родителя
	$.post("/ajax/deletecomment", 
		{id: id, parentid: parentid},
  		function(data){
  			if(data=='error') return;
  			
			// все нормально - удалился, подгружаем ветку
			var cont = $("#comment_node_"+parentid);
 			if(cont.attr("rel")=='rootnode')
  				$("#comment_node_"+parentid).html(data);
  			else
  				$("#comment_node_"+parentid).replaceWith(data);
  		});
}


need_focus=false;



function checkSignup(field)
{
	if(field=='login')
	{
		ajaxCheckLogin(true);
	}
	if(field=='email')
	{
		ajaxCheckEmail(true);
	}
	if(field=='password')
	{
		checkPassword();
	}
	if(field=='cap')
	{
		checkCap();
	}
	if(field=='all')
	{
		var oke=true;
		need_focus=true;
		oke = checkCap() && oke;
		oke = checkAgree() && oke;
		oke = checkBDate() && oke;
		oke = checkGender() && oke;
		oke = checkPassword() && oke;
		oke = ajaxCheckEmail(false) && oke;
		oke = ajaxCheckLogin(false) && oke;
		need_focus=false;
		return oke;
	}
}



function fieldChecked(field,ret)
{
		if(ret=='ok')
		{
			if($("#f_"+field).length && $("#f_"+field).get(0).className=='required') $("#f_"+field).get(0).className='ok';
			$("#f_"+field+" input").removeClass('err');
			$("#f_"+field+" select").removeClass('err');
			$("#e_"+field).html('');
		}
		else
		{
			if($("#f_"+field).length && $("#f_"+field).get(0).className=='ok') $("#f_"+field).get(0).className='required';
			$("#f_"+field+" input").addClass('err');
			$("#f_"+field+" select").addClass('err');
			$("#e_"+field).html('<span>'+ret+'</span>');
			if($("#"+field+"_id").length && need_focus)
			{
				$("#"+field+"_id").get(0).focus();
			}
		}
}


  
// ajax:
function ajaxCheckLogin(ajax)
{
	var str = $('#login_id').val();
	if(str.length==0) 
	{
		fieldChecked('login',"Введите логин");
		return false;
	}
	if(!ajax) return true;
	
	$.get("/ajax/check/signup/login", { login: str },
		function(data){
			fieldChecked('login',data);
			return;
	});
	
	return true;
}

function test_email(email)
{
	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,})$/
	return reg.exec(email);
}

function ajaxCheckEmail(ajax)
{
	var str = $('#email_id').val();
	if(str.length==0) 
	{
		fieldChecked('email',"Введите email");
		return false;
	}
	
	
	if (!test_email(str)) {
 		fieldChecked('email',"Неправильно задан адрес email");
		return false;
	}
	
	if(!ajax) return true;
	
	$.get("/ajax/check/signup/email", { email: str },
		function(data){
			fieldChecked('email',data);
			return;
	});
	
	return true;
}

function checkCap()
{
	var str = $('#cap_id').val();
	if(str.length<5 || str.length>6) 
	{
		fieldChecked('cap',"Введите число, изображенное на картинке");
		return false;
	}
	fieldChecked('cap','ok');
	return true;
}

function checkGender()
{
	if($('#pol1').get(0).checked || $('#pol2').get(0).checked) 
	{
		fieldChecked('gender','ok');
		return true;
	}
	
	fieldChecked('gender',"Пожалуйста, укажите ваш пол");
	return false;
}


function checkBDate()
{
	var d = $('#s_day').val();
	var m = $('#s_month').val();
	var y = $('#s_year').val();
	
	if(	   (d=='' || m=='' || y=='') 
	    && (d!='' || m!='' || y!='') ) 
	{
		fieldChecked('birthdate',"Укажите дату полностью");
		return false;
	}
	
	fieldChecked('birthdate','ok');
	return true;	
}


function checkAgree()
{
	if( $('#agree_id').get(0).checked)
	{
		fieldChecked('agree','ok');
		return true;
	}
	
	fieldChecked('agree',"Вам следует ознакомиться с условиями<br>пользовательского соглашения и принять их");
	return false;
}

function checkPassword()
{
	var str = $('#password1_id').val();
	var str2 = $('#password2_id').val();
	if(str.length==0) 
	{
		fieldChecked('password1',"Введите пароль");
		return false;
	}
	if(str.length<4) 
	{
		fieldChecked('password1',"Выберите пароль не короче 4 символов");
		return false;
	}
	var reg = /\w/
	if (!reg.exec(str)) {
 		fieldChecked('password1',"Только латинские символы и цифры");
		return false;
	}
	fieldChecked('password1','ok');
	
	if(str2.length==0) 
	{
		fieldChecked('password2',"Повторите пароль еще раз");
		return false;
	}
	if(str2!=str) 
	{
		fieldChecked('password2',"Введенные пароли не совпадают");
		return false;
	}
	
	fieldChecked('password2','ok');
	return true;
}


// эти функции вызываются каждый раз при нажатии символа
// её цель не засорять эфир и не выводить сообщение об ошибке,
// а просто показывать ОК если всё стало ок
// а ошибку только если было ОК а стало не ОК
function checkPwd1()
{
	var is_ok = ($('#f_password1').get(0).className=='ok');
	var str = $('#password1_id').val();

	if(str.length==0) 
	{
		if(is_ok)	fieldChecked('password1',"Введите пароль");
		return;
	}
	
	if(str.length<4) 
	{
		if(is_ok)	fieldChecked('password1',"Выберите пароль не короче 4 символов");
		return;
	}
		
	var reg = /\w/
	if (!reg.exec(str)) 
	{
		if(is_ok)	fieldChecked('password1',"Только латинские символы и цифры");
		return;
	}
	
	if(!is_ok) fieldChecked('password1','ok');
}

//********
function checkPwd2()
{
	var is_ok = ($('#f_password2').get(0).className=='ok');
	var str = $('#password1_id').val();
	var str2 = $('#password2_id').val();

	if(str2.length==0) 
	{
		if(is_ok)	fieldChecked('password2',"Повторите пароль еще раз");
		return;
	}
	if(str2!=str) 
	{
		if(is_ok)	fieldChecked('password2',"Введенные пароли не совпадают");
		return;
	}
	
	if(!is_ok) fieldChecked('password2','ok');
}

//********
function checkEml()
{
	var is_ok = ($('#f_email').get(0).className=='ok');
	
	var str = $('#email_id').val();
	if(str.length==0) 
	{
		if(is_ok)	fieldChecked('email',"Введите email");
		return;
	}
	
	if (!test_email(str)) 
	{	
 		if(is_ok)	fieldChecked('email',"Неправильно задан адрес email");
		return;
	}
	
	if(!is_ok) fieldChecked('email','ok');
}












function er(mes,field)
{
	alert(mes);
	$('#'+field).get(0).focus();
	return false;
}

function notEmpty(field,message)
{
	if(!$('#'+field+'_id').val())
	{
		fieldChecked(field,message);
		return false;
	}
	else 
	{
		fieldChecked(field,'ok');
		return true;
	}
}


function backPreview()
{
	$('#hidden_preview').val('edit');
	document.post.submit();
}

function submitArticlePreview()
{
	$('#hidden_preview').val(1);
	if(onSubmitArticle())
	{
		document.post.submit();
	}
}

function submitArticle()
{
	$('#hidden_preview').val(0);
	if(onSubmitArticle())
	{
		document.post.submit();
	}
}





function submitPostDraft()
{
	$('#hidden_preview').val(0);
	$('#draft_id').val(1);
	if(onSubmitPost())
	{
		document.post.submit();
	}
}


function submitPostPreview()
{
	$('#hidden_preview').val(1);
	if(onSubmitPost())
	{
		document.post.submit();
	}
}

function submitPost()
{
	$('#hidden_preview').val(0);
	if(onSubmitPost())
	{
		document.post.submit();
	}
}


function isLower(ch)
{
	if(ch=='q' || ch=='w' || ch=='e' 	|| ch=='r' || ch=='t' || ch=='y'
	|| ch=='u' || ch=='i' || ch=='o' 	|| ch=='p' || ch=='a' || ch=='s'
	|| ch=='d' || ch=='f' || ch=='g' 	|| ch=='h' || ch=='j' || ch=='k'
	|| ch=='l' || ch=='z' || ch=='x' 	|| ch=='c' || ch=='v' || ch=='b'
	|| ch=='n' || ch=='m' 
	|| ch=='ц' || ch=='у' || ch=='к' 	|| ch=='е' || ch=='н' || ch=='г'
	|| ch=='ш' || ch=='щ' || ch=='з' 	|| ch=='х' || ch=='ъ' || ch=='ф'
	|| ch=='ё' || ch=='ы' || ch=='в' 	|| ch=='а' || ch=='п' || ch=='р'
	|| ch=='о' || ch=='л' || ch=='д' 	|| ch=='ж' || ch=='э' || ch=='я'
	|| ch=='ч' || ch=='с' || ch=='м' 	|| ch=='и' || ch=='т' || ch=='ь'
	|| ch=='б' || ch=='ю'	|| ch=='й'
	) return true;
	return false;
}

function isUpper(ch)
{
	if(ch=='Q' || ch=='W' || ch=='E' 	|| ch=='R' || ch=='T' || ch=='Y'
	|| ch=='U' || ch=='I' || ch=='O' 	|| ch=='P' || ch=='A' || ch=='S'
	|| ch=='D' || ch=='F' || ch=='G' 	|| ch=='H' || ch=='J' || ch=='K'
	|| ch=='L' || ch=='Z' || ch=='X' 	|| ch=='C' || ch=='V' || ch=='B'
	|| ch=='N' || ch=='M' 
	|| ch=='Ц' || ch=='У' || ch=='К' 	|| ch=='Е' || ch=='Н' || ch=='Г'
	|| ch=='Ш' || ch=='Щ' || ch=='З' 	|| ch=='Х' || ch=='Ъ' || ch=='Ф'
	|| ch=='Ё' || ch=='Ы' || ch=='В' 	|| ch=='А' || ch=='П' || ch=='Р'
	|| ch=='О' || ch=='Л' || ch=='Д' 	|| ch=='Ж' || ch=='Э' || ch=='Я'
	|| ch=='Ч' || ch=='С' || ch=='М' 	|| ch=='И' || ch=='Т' || ch=='Ь'
	|| ch=='Б' || ch=='Ю'	|| ch=='Й' 		
	) return true;
	return false;
}

var shown=new Array(false,false,false,false,false,false,false,false,false);

function ArticleRules()
{
	var title = $('#title_id').val();
	if(!shown[0] && isLower(title.charAt(0)))
	{
		shown[0]=true;
		if(confirm("Заголовок статьи лучше начинать с заглавной буквы.\nВернуться к редактированию?"))
		{
			$('#title_id').get(0).focus();
			return false;
		}
	}
	
	var count_big=0;
	for(var i=0;i<title.length;i++)
	{
		if(isUpper(title.charAt(i))) count_big++;
	}
	if(!shown[1] && count_big > title.length/2)
	{
		shown[1]=true;
		if(confirm("Не рекомендуется набирать заголовок статьи ЗАГЛАВНЫМИ буквами.\nВернуться к редактированию?"))
		{
			$('#title_id').get(0).focus();
			return false;
		}
	}
	
	/*
	if(!shown[2] && $('#avatar_id').val()=='')
	{
		shown[2]=true;
		if(confirm("Мы рекомендуем давать хотя бы одну картинку к статье.\nМожет быть, у Вас есть возможность взять фотоаппарат и сделать интересную фотографию к Вашему материалу, или, в крайнем случае, отыскать картинку в одном из фотобанков, разрешающих бесплатное использование картинок.\nВернуться к редактированию?"))
		{
			$('#avatar_id').get(0).focus();
			return false;
		}
	}
	*/
	
	var tex = $('#tex_id').val();
	if(!shown[3] && tex.length<500)
	{
		shown[3]=true;
		if(confirm("Текст вашей статьи состоит менее чем из 500 символов.\nНе рекомендуется публиковать слишком короткие статьи.\nВернуться к редактированию?"))
		{
			$('#tex_id').get(0).focus();
			return false;
		}
	}
	
	var count_new=0;
	for(var i=0;i<tex.length-1;i++)
	{
		if(tex.charAt(i)=="\n" && tex.charAt(i+1)=="\n") count_new++;
	}
	if(!shown[4] && Math.floor(tex.length/1000)>count_new)
	{
		shown[4]=true;
		if(confirm("Мы рекомендуем разделять абзацы пустыми строками - в вашем тексте этого не сделано, его трудно читать.\nДля разделения текста на абзацы ставьте два перевода строки (клавиша Enter) подряд.\nВернуться к редактированию?"))
		{
			$('#tex_id').get(0).focus();
			return false;
		}
	}
	
	
	var tagsstr = $('#visible_tags').val();
	if(!shown[5] && tagsstr.split(" ").length>=3 && tagsstr.split(",").length==1)
	{		
		shown[5]=true;
		if(confirm("Внимание!\nВозможно вы забыли поставить запятые между тэгами.\nВернуться к редактированию?"))
		{
			$('#visible_tags').get(0).focus();
			return false;
		}
	}
	
	tex = tex.toLowerCase();
	if(!shown[6] && (tex.indexOf(title.toLowerCase())!=-1 && tex.indexOf(title.toLowerCase())<300) )
	{
		shown[6]=true;
		if(confirm("Заголовок Вашей статьи встречается в начале текста статьи.\nВ общем случае не требуется дублировать заголовок.\nВернуться к редактированию?"))
		{
			$('#tex_id').get(0).focus();
			return false;
		}
	}
	
	if(!shown[7] && (tex.indexOf('http://')!=-1 || tex.indexOf('https://')!=-1) )
	{
		shown[7]=true;
		if(confirm("Внимание! В статьях ЗАПРЕЩЕНЫ ссылки на другие сайты, также в разделе &quot;Статьи&quot; запрещено размещать перепечатки.\nЕсли Ваш материал не соответствует этому требованию - он будет удален, а к Вам будут применены санкции.\nВернуться к редактированию?"))
		{
			$('#tex_id').get(0).focus();
			return false;
		}
	}
	
	var reg = /([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,})/
	
	if(!shown[8] && reg.exec(tex) )
	{
		shown[8]=true;
		if(confirm("По общим правилам, размещение e-mail в тексте запрещено. Если Вы не согласовали размещение e-mail с администрацией проекта - материал может быть удален, а к Вам могут быть применены санкции.\nВернуться к редактированию?"))
		{
			$('#tex_id').get(0).focus();
			return false;
		}
	}

	return true;
}



function onSubmitArticle()
{
	// копируем в скрытые поля из полей котрые не попали в основную форму
	$('#hidden_short').val($('#visible_short').val());
	$('#hidden_tags').val($('#visible_tags').val());
	$('#hidden_agree').val($('#agree_id').val());
	$('#hidden_original').val($('#original_id').get(0).checked?1:0);
	
	// проверяем все ли поля заполнены
	var result = true;
	need_focus = true;
	result = checkAgree() && result;	
	result = notEmpty('tex','Введите текст вашей статьи') && result;
	result = notEmpty('cat','Укажите рубрику') && result;	
	result = notEmpty('title','Введите заголовок') && result ;
	need_focus = false;
	
	if(!result) 
	{
		$('#formerror').show();
		document.location.href='#formtop';
	}
	
	if(!result) return false;
	
	if(!ArticleRules()) return false;
	
	return true;
} 


function submitArticleDraft()
{
	$('#hidden_preview').val(0);
	$('#draft_id').val(1);
	if(onSubmitArticleDraft())
	{
		document.post.submit();
	}
}

function onSubmitArticleDraft()
{
	// копируем в скрытые поля из полей котрые не попали в основную форму
	$('#hidden_short').val($('#visible_short').val());
	$('#hidden_tags').val($('#visible_tags').val());
	$('#hidden_agree').val($('#agree_id').val());
	$('#hidden_original').val($('#original_id').get(0).checked?1:0);
	
	// проверяем все ли поля заполнены
	var result = true;
	need_focus = true;
	result = checkAgree() && result;	
	result = notEmpty('tex','Введите текст вашей статьи') && result;
	result = notEmpty('cat','Укажите рубрику') && result;	
	result = notEmpty('title','Введите заголовок') && result ;
	need_focus = false;
	
	if(!result) 
	{
		$('#formerror').show();
		document.location.href='#formtop';
	}
	
	if(!result) return false;
	
	//if(!ArticleRules()) return false;
	
	return true;
} 









function onSubmitPost()
{
	var tagsstr = $('#visible_tags').val();
	if(tagsstr.split(" ").length>=3 && tagsstr.split(",").length==1)
	{		
		var ret = confirm('Внимание! Возможно вы забыли поставить запятые между тэгами. Вернуться к редактированию?');
		if(ret)
		{
			$('#visible_tags').get(0).focus();
			return false;
		}
	}
	
	// копируем в скрытые поля из полей котрые не попали в основную форму
	$('#hidden_short').val($('#visible_short').val());
	$('#hidden_tags').val($('#visible_tags').val());
	
	if($('#join_poll').val()=="1")
	{
		$('#hidden_days').val($('#visible_days').val());
		$('#hidden_multi').val($('#visible_multi').val());
		$('#hidden_votes').val($('#visible_votes').val());
		$('#hidden_results').val($('#visible_results').val());
		$('#hidden_question').val($('#visible_question').val());
		$('#hidden_option1').val($('#v1_id').val());
		$('#hidden_option2').val($('#v2_id').val());
		$('#hidden_option3').val($('#v3_id').val());
		$('#hidden_option4').val($('#v4_id').val());
		$('#hidden_option5').val($('#v5_id').val());
		$('#hidden_option6').val($('#v6_id').val());
		$('#hidden_option7').val($('#v7_id').val());
		$('#hidden_option8').val($('#v8_id').val());
	}
	
	// проверяем все ли поля заполнены
	var result = true;
	result = notEmpty('title','Введите заголовок') && result ;
	result = notEmpty('blog','Укажите дневник') && result;
	result = notEmpty('tex','Введите текст вашей записи') && result;
	
	if(!result) 
	{
		$('#formerror').show();
		document.location.href='#formtop';
	}
	
	if(!result) return false;
	
	var tex = $('#tex_id').val();
	var count_new=0;
	for(var i=0;i<tex.length-1;i++)
	{
		if(tex.charAt(i)=="\n" && tex.charAt(i+1)=="\n") count_new++;
	}
	if(!shown[4] && Math.floor(tex.length/1000)>count_new)
	{
		shown[4]=true;
		if(confirm("Мы рекомендуем разделять абзацы пустыми строками - в вашем тексте этого не сделано, его трудно читать.\nДля разделения текста на абзацы ставьте два перевода строки (клавиша Enter) подряд.\nВернуться к редактированию?"))
		{
			$('#tex_id').get(0).focus();
			return false;
		}
	}
	
	return true;
} 

function onSubmitCommunity()
{
	var result = true;
	result = notEmpty('title','Введите название') && result ;	
	return result;
} 

function onSubmitAlbum()
{
	// проверяем все ли поля заполнены
	var result = true;
	result = notEmpty('title','Введите название') && result ;
	
	return result;
} 

function onSubmitPhoto()
{
	// проверяем все ли поля заполнены
	var result = true;
	result = notEmpty('file','Выберите файл') && result ;
	
	return result;
} 



function onMailSend()
{
	var result = true;
	result = notEmpty('text','Введите текст сообщения') && result ;
	
	if(result)
	$('#sm_button').html('Отправка сообщения...');
	
	return result;
}


function ajaxWall(userid)
{
	if(notEmpty('tex','Введите текст отзыва'))
	{
		var tex = $('#tex_id').val();
		var rate = $('#rate_id').val();
		$('#guestbook_send').html('Отправка отзыва...');
		
		$.post('/ajax/wall/submit/'+userid,
			     { 'tex':tex, 'rate':rate, 'userid':userid }, 
			     function(data)
					 {
					 		if(data!='error')
							{
					 			$('#wall-inside').replaceWith(data);
							}
					});
	}
	return false;
}



function nextQuestion()
{
	$('#question_message').hide();
	
	var v = $('input[name=question]:checked').val()
	if(!v)
	{
		$('#question_message').html('Выберите вариант ответа.').show();
		return false;
	}
	
	$('#next_button').replaceWith('Отправка...');
	$.post('/ajax/test/step/',
			     { 'v':v  }, 
			     function(data)
					 {
					 		var str = data.replace('Redirect: ','');
					 		if(str!=data)
							{
								document.location.href = str;
							}
							else
							{
					 			$('#stepbox').html(data);
							}
				   });
	return false;
}


function onGuestbook()
{
	var result = true;
	result = notEmpty('tex','Введите текст отзыва') && result ;
	
	if(result)
	$('#guestbook_send').html('Отправка отзыва...');
	
	return result;
}

function sendMes()
{
	text = document.getElementById('sm_text').value;
	subject = document.getElementById('sm_subject').value;
	recipient = document.getElementById('sm_recipient').value;
	
	if(text.length=='') {alert('Введите текст сообщения');document.getElementById('sm_text').focus();return false;}
	
	$('#sm_button').hide();
	$('#sm_sending').show();
	
	$.post('/mail/send',
		{ subject:subject, text:text, recipient:recipient }, 
		function(data){
			data = eval(data);
			if(data.status=='ok')
			{
				$('#sm_sending').hide();
				$('#sm_sent').show();
			}
			// other cases
	});

	return false;
}

function onDeleteContacts()
{
	var cnt = $(".cont input:checked").length;
	if(cnt==0) {alert('Вы никого не выбрали');return false;}
	return confirm('Вы уверены что хотите удалить переписку с '+cnt+' '+plural_form(cnt,'пользователем','пользователями','пользователями')+'?');
}


function showCodes(mod)
{
	if(mod)
	{
		$('#codes_top').hide();
		$('#codes').show();
	}
	else
	{
		$('#codes_top').show();
		$('#codes').hide();	
	}
	return false;
}





function voteForDoc(docid,rate,indoc)
{	
	$.post("/ajax/vote/", { documentid: docid, rate: rate, indoc:indoc },
		  function(data){
		  	if(data && data.length>0)
		  	{
					if(data.substr(0,9)=='<!DOCTYPE') return false;
					if(data.substr(0,6)=='Error:')
					{
						alert2('Внимание',data.substr(6));
						return false;
					}
		    	$("#vote"+docid).html(data);
		  	}
		  });
	return false;
}

function voteForCom(cid,rate)
{	
	$.post("/ajax/cvote/", { commentid: cid, rate: rate },
		  function(data){
		  	if(data && data.length<300 && data.length>0)
		  	{
		    	$("#cvote"+cid).html(data);
		  	}
		  });
	return false;
}

function makePollVote(id) {
		var poll = document.getElementById('poll_' + id);
		var answers = poll.getElementsByTagName('input');
		var votes = '';
		if(answers != undefined) {
			for(var i=0;i<answers.length;i++) {
				if(answers[i].checked == true) {
					votes += answers[i].value + ",";
				}
			}
			if(votes.length > 0) {	
				$('#poll_button_'+id).attr("disabled","disabled");
				poll_votes_status[id] = 0;
				$.post("/ajax/poll/vote/", { 'pollid':id, 'votes': votes },
				function(data)
					{
						$('#poll_'+id).replaceWith(data);
					}
				);		
			} else {
				alert2('Опрос','Необходимо выбрать вариант(ы) ответа!');
			}
		}
	}


	
var test_already_status = 0;	
function showTestAlready(id)
{
	if(test_already_status!=1)
	{
		test_already_status = 1;
		
		$('#test_already').html('загрузка списка...');
		$('#test_already').slideDown();
		
		$.post("/ajax/test/already/", { 'testid':id },
				function(data)
					{
						if(data!='error')
						{						
							$('#test_already').html(data);
							document.location.href='#already';
						}
					}
				);
	}
	else
	{
		$('#test_already').toggle();
	}
	return false;
}	
	
	
	
	
var poll_votes_status = new Array();
function showPollVotes(id)
{
	$('#poll_results_'+id).hide();
	$('#poll_insert_'+id).hide();
	if(poll_votes_status[id]!=1)
	{
		poll_votes_status[id] = 1;
		
		$('#poll_votes_'+id).html('загрузка ответов...');
		$('#poll_votes_'+id).slideDown();
		
		$.post("/ajax/poll/getvotes/", { 'pollid':id },
				function(data)
					{
						if(data!='error')
						{						
							$('#poll_votes_'+id).html(data);
						}
					}
				);
	}
	else
	{
		$('#poll_votes_'+id).toggle();
	}
	return false;
}
	
	

var poll_results_status = new Array();	
function showPollResults(id)
{
	$('#poll_votes_'+id).hide();
	if(poll_results_status[id]!=1)
	{
		poll_results_status[id] = 1;
		
		$('#poll_results_'+id).html('загрузка результатов...');
		$('#poll_results_'+id).slideDown();
		
		$.post("/ajax/poll/getresults/", { 'pollid':id },
				function(data)
					{
						if(data!='error')
						{						
							$('#poll_results_'+id).html(data);
						}
					}
				);
	}
	else
	{
		$('#poll_results_'+id).toggle();
	}
	return false;
}
	
	
function endPoll(id)
{
	if(!confirm('Завершить данный опрос досрочно?')) return false;
	
	$.post("/ajax/poll/end/", { 'pollid':id },
				function(data)
					{
						if(data!='error')
						{						
							$('#poll_'+id).replaceWith(data);
						}
					}
	);
	return false;
}	
	
	
	
	
function showWhats()
{
	if($('#whats_div').css('display')=='none')
	{
		$('#whats_div').slideDown("fast");
		$('#whats_b').slideUp();
	}
	else
	{
		$('#whats_b').slideDown();
		$('#whats_div').slideUp("fast");
	}
	return false;
}	




function editStatus()
{
	$('#status_str').hide();
	$('#status_edit').show();
	$('#status_field').get(0).focus();
	return false;
}

function cancelStatus()
{
	var str = $('#status_a').html();
	if(str!='не задан') $('#status_field').val(str);
	else $('#status_field').val('');
	$('#status_edit').hide();
	$('#status_str').show();
	return false;
}

var status_sending = false;
function saveStatus(userid)
{
	if(status_sending) return false;
	
	var str = $('#status_field').val();
	if(str=='Ваш статус, максимум 100 символов') 
	{
		$('#status_field').focus();
		return false;
	}
	
	status_sending = true;
	$('#status_buttons').html('идёт сохранение...');
	
	$.post("/ajax/status/save/",{str:str,userid:userid},
		function(data)
		{
			status_sending = false;
			if(data=='error')
			{
				return false;
			}
			
			$('#profilestatus').html(data);
		}	
	);
	
	return false;
}

function showStatusHelp()
{
  alert2('Ваш статус','В поле "Статус" вы можете указать своё настроение, написать чем занимаетесь сейчас, какую музыку слушаете, а также все остальное что придёт вам в голову.<br><br>Единственное ограничение - длина не более 100 символов.');
  return false;
}

	
function delete_status_history(id)
{
	$.post("/ajax/status/delete/",{id:id},
		function(data)
		{
			if(data=='error')
			{
				return false;
			}			
			$('#sh_'+id).slideUp();
		}	
	);	
	return false;
}
	
	
	
	
function showVideoForm()
{
	$('#video_step2').hide();
	$('#video_step1').show();
	$('#video_alert').hide();
	$('#video_code').val('');
	$('#popup_video').jqmShow();
	return false;
}


function parseVideo()
{
	$('#video_alert').hide();
	
	var txt = $('#video_code').val();	
	if(txt=='') {alert('Введите код ролика');return;}
	
	var youtube=false;
	var rutube=false;
	var video_id=0;
	var start;
	var end;
	var result;
	
	if(txt.indexOf('video.rutube.ru/')!=-1)
	{
		rutube=true;
		start = txt.indexOf('video.rutube.ru/') + 16;
		end = txt.indexOf('"', start);
		video_id = txt.substring(start,end);
	}
	
	if(txt.indexOf('www.youtube.com/v/')!=-1)
	{
		youtube=true;
		start = txt.indexOf('www.youtube.com/v/') + 18;
		end = txt.indexOf('&', start);
		video_id = txt.substring(start,end);
	}
	
	var wrong=false;
	
	if(!youtube && !rutube) wrong=true;
	
	if(wrong)
	{
		$('#video_alert').show();
		return;
	}
	
	if(youtube) result = '[youtube]'+video_id+'[/youtube]';
	if(rutube)  result = '[rutube]'+video_id+'[/rutube]';
	
	$('#video_alert').hide();
	$('#video_code').val('');
	$('#video_code2').val(result);
	
	$('#video_step1').hide();
	$('#video_step2').show();
}
	

(function($) {
	/* private variable "oHover" used to determine if you're still hovering over the same element */
	var textarea, staticOffset;  // added the var declaration for 'staticOffset' thanks to issue logged by dec.
	var iLastMousePos = 0;
	var iMin = 32;
	var grip;
	/* TextAreaResizer plugin */
	$.fn.TextAreaResizer = function() {
		return this.each(function() {
		    textarea = $(this).addClass('processed'), staticOffset = null;

			// 18-01-08 jQuery bind to pass data element rather than direct mousedown - Ryan O'Dell
		    // When wrapping the text area, work around an IE margin bug.  See:
		    // http://jaspan.com/ie-inherited-margin-bug-form-elements-and-haslayout
		    $(this).wrap('<div class="resizable-textarea"><span></span></div>')
		      .parent().append($('<div class="grippie"></div>').bind("mousedown",{el: this} , startDrag));

		    var grippie = $('div.grippie', $(this).parent())[0];
		    grippie.style.marginRight = (grippie.offsetWidth - $(this)[0].offsetWidth) +'px';

		});
	};
	/* private functions */
	function startDrag(e) {
		textarea = $(e.data.el);
		textarea.blur();
		iLastMousePos = mousePosition(e).y;
		staticOffset = textarea.height() - iLastMousePos;
		textarea.css('opacity', 0.25);
		$(document).mousemove(performDrag).mouseup(endDrag);
		return false;
	}

	function performDrag(e) {
		var iThisMousePos = mousePosition(e).y;
		var iMousePos = staticOffset + iThisMousePos;
		if (iLastMousePos >= (iThisMousePos)) {
			iMousePos -= 5;
		}
		iLastMousePos = iThisMousePos;
		iMousePos = Math.max(iMin, iMousePos);
		textarea.height(iMousePos + 'px');
		if (iMousePos < iMin) {
			endDrag(e);
		}
		return false;
	}

	function endDrag(e) {
		$(document).unbind('mousemove', performDrag).unbind('mouseup', endDrag);
		textarea.css('opacity', 1);
		textarea.focus();
		textarea = null;
		staticOffset = null;
		iLastMousePos = 0;
	}

	function mousePosition(e) {
		return { x: e.clientX + document.documentElement.scrollLeft, y: e.clientY + document.documentElement.scrollTop };
	};
})(jQuery);
