/* loading */

$(document).ready(function(){
	$.ajaxSetup({  type: "POST" });
	
	$('#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_setcard').jqm({overlay: 0});	
	$('#popup_setcard').jqmAddClose('#setcard_close');
	
	$('#popup_send2friend').jqm({overlay: 0});	
	$('#popup_send2friend').jqmAddClose('#send2friend_close');
	
	$('#popup_ajax').jqm({overlay: 0});	
	
	$('textarea.resizable:not(.processed)').TextAreaResizer();

	if(!navigator.cookieEnabled)
	{
		alert2('Внимание!','Внимание!<br>В вашем браузере отключены cookies, необходимые для работы сайта. Вы не сможете войти на сайте с отключенными cookies.<br>Вам следует включить их или обратится к тому, кто знает как это сделать.');
	}
	
	// устанавливаем ширину поля каментов для ИЕ6
	if($('#comments_tree').length>0 && $.browser.msie && $.browser.version == "6.0")
	{
		var nw = screen.width-330;
		$('#comments_tree').css('width','690px');
	}
});


function hideAlertDiv()
{
	$('#alertdiv').slideUp("slow");
}

function walldelete(id)
{
	if(!confirm('Удалить этот отзыв?')) return false;
	$.post('/ajax/wall/delete/', {"id":id}, function(data)
	{
		if(data=='ok')
		{
			$('#wallrow'+id).hide();
			$('#nextrow'+id).hide();			
		}
	}
	);
	return false;
}

function walledit(id)
{
	$('#walltext'+id).hide();
	$('#walledit'+id).show();
	return false;
}

function dpShowTitle(title, desc)
{
	alert2('Состав блюда', '<b><i>'+title+'</i></b><div style="padding-top:8px;font-size:13px;">'+desc+"</div>" );
	return false;
}

function saveWallEdit(id)
{
	var tex = $('#walltextarea'+id).val();
	if(tex=='')
	{
		alert('Введите текст сообщения');
		return false;
	}
	
	$('#wallbtns'+id).html('Сохранение...');
	
	$.post('/ajax/wall/edit/',
		     { "tex":tex, "id":id  }, 
		     function(data)
				 {
				 		if(data!='error')
						{
							$('#wall_'+id).html(data);
						}
				});
	
	return false;
}

function cancelWallEdit(id)
{
	$('#walltext'+id).show();
	$('#walledit'+id).hide();
	return false;
}






function extrapager(url)
{
	var pagenum = $('#expage').val();
	if(pagenum=='') return;
	
	pagenum = pagenum.replace(/\s/, '');
	
	var reg = /\d/
	if (!reg.exec(pagenum)) {
 		alert('Вводите только цифры, пожалуйста :)');
		return false;
	}

	url = url.replace('extrapagenum',pagenum);
	document.location.href=url;
}


function loadNewForMeMore(morestr)
{
	$('#newformemore').html('Загрузка...');
	$.post('/ajax/newforme/more/', {'morestr':morestr},function(data){
			if(data!='error')
			{
				$('#newformemore').html(data);
			}
	});
	return false;
}



function freeze(id)
{
	if(!confirm('Закрыть обсуждение этой ветки?')) return false;
	$.post('/ajax/comments/freeze/',{'id':id},function(data)
	{
		if(data=='ok') refreshCommentsPage();
		else alert('Произошла ошибка...');
	});
	return false;
}


function setcard(type, id)
{
  $('#setcard_id').val(id);
	$('#setcard_type').val(type);
	$('#setcard_text').val('')
	$('#setcard_title').html('Дать карту');
	if(type=='comment')
		$('#setcard_description').html('Вы собираетесь дать пользователю жёлтую карту за нарушение правил в данном комментарии.<br><br>Выберите пункт правил, который нарушил пользователь:');
	else
		$('#setcard_description').html('Вы собираетесь дать пользователю жёлтую карту за нарушение правил в данном материале.<br><br>Выберите пункт правил, который нарушил пользователь:');
	
	$('#popup_setcard').jqmShow();
	return false;
}

function setcardSend()
{
  var type = $('#setcard_type').val();
	var id = $('#setcard_id').val();
	var reason = $('#setcard_reason').val();
	
	if(reason.length==0)
	{
		alert('Пожалуйста, укажите пункт правил.');
		return;
	}
	
	$('#popup_setcard').jqmHide();
	ajax_show('Сохранение...');
	$.post('/ajax/setcard/',{'id':id, 'reason':reason, 'type':type},function(data)
	{
		ajax_close();

		if(data=='error') 	alert('Произошла ошибка, обновите страницу и попробуйте снова');
		if(data=='already') alert('Пользователю сегодня уже выставлена карточка');
		if(data=='old') 		alert('Нельзя ставить карту за комментарий или материал, оставленный до получения предыдущей карты');
		
		if(data=='ok') refreshCommentsPage();
	});
}


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('Сообщение отправлено','Ваше сообщение отправлено на рассмотрение модераторам.');
	});
}


var setting_as_read;
function setAsRead(docid, fav, groups, lovely)
{
	if(setting_as_read) return false;
	setting_as_read = true;
	
	var shown='';
	if(groups==1)
	{
		$('div.gunread').each(function(i){
			shown+='('+this.id.replace('funread_','')+')';
		});
	}
	else
	{
		$('div.funread').each(function(i){
			shown+='('+this.id.replace('funread_','')+')';
		});
	}
	
	$('#funread_'+docid).slideUp("fast");
	
	$.post('/ajax/setasread/',{'id':docid, 'shown':shown, 'fav':fav, 'lovely':lovely, 'groups':groups},function(data)
		{
			setting_as_read = false;
			if(data!='error' && data!='empty')
			{
				if(groups==1) $('#gunreadlist div.postlist').append(data);
				else					$('#funreadlist div.postlist').append(data);
			}
		});
	
	return false;
}


function setAsReadSUN(docid, fav)
{
	if(setting_as_read) return false;
	setting_as_read = true;
	
	var shown='';
	$('div.sunread').each(function(i){
		shown+='('+this.id.replace('sunread_','')+')';
	});
	
	$('#sunread_'+docid).slideUp("fast");
	
	$.post('/ajax/setasreadsun/',{'id':docid, 'shown':shown, 'fav':fav},function(data)
		{
			setting_as_read = false;
			if(data!='error' && data!='empty')
			{
				$('#sunreadlist div.postlist').append(data);
			}
		});
	
	return false;
}





var unread_loading;
function reloadGunread(lovely)
{
	if(unread_loading) return false;
	unread_loading = true;
	
	if(lovely)	{$('#gunread2').hide();$('#gunread1').show();}
	else				{$('#gunread2').show();$('#gunread1').hide();}
	$('#gunread').html('<br>Идёт загрузка...<br>');
	
	$.post('/ajax/reloadunread/', {"groups":1, "lovely":lovely}, function(data){
		unread_loading = false;
		$('#gunread').html(data);
	});
	
	return false;
}

function reloadFunread(lovely)
{
	if(unread_loading) return false;
	unread_loading = true;
	
	if(lovely)	{$('#funread2').hide();$('#funread1').show();}
	else				{$('#funread2').show();$('#funread1').hide();}
	$('#funread').html('<br>Идёт загрузка...<br>');
	
	$.post('/ajax/reloadunread/', {"groups":0, "lovely":lovely}, function(data){
		unread_loading = false;
		$('#funread').html(data);
	});
	
	return false;
}


function reloadNewcom(direct)
{
	if(direct)
	{
		if(unread_loading) return false;
		unread_loading = true;
	
		$('#newcom2').hide();
		$('#newcom1').show();
		$('#newcomid1').hide();
		$('#newcomid2').html('<br>Идёт загрузка...<br>').show();
		$.post('/ajax/direct/', function(data){
			unread_loading = false;
			$('#newcomid2').html(data);
		});	
	}
	else
	{
		$('#newcom2').show();
		$('#newcom1').hide();
		$('#newcomid2').hide();
		$('#newcomid1').show();
	}
	
	return false;
}


function togglePM(name, that)
{
	if(document.getElementById(name).style.display=='none')
	{
		$('#'+name).slideDown();
		that.parentNode.className='pm2';
	}
	else
	{
		$('#'+name).slideUp();
		that.parentNode.className='pm';
	}
	return false;
}

function slideToggle(id)
{
	$('#'+id+'_1').hide();
	$('#'+id+'_2').slideDown();
	return false;
}

function um_Toggle()
{
	if($('#um_items').get(0).style.display=='none')
		$('#um_items').slideDown();
	else
		$('#um_items').slideUp();
	return false;
}

function moreSmiles(id)
{
	if($('#bbextra'+id).css('display')=='none') 	
	{
		$('#bbmore').addClass('utri').removeClass('dtri');
		$('#bbextra'+id).slideDown();
	}
	else 
	{
		$('#bbmore').addClass('dtri').removeClass('utri');
		$('#bbextra'+id).slideUp();		
	}
	return false;
}


/* quotes */
var comment_selected = 0;
var last_selected = 0;
var current_str = false;
var quote_tm = false;
var quote_id;

function startSelectComment(start_id)
{
	current_str = false;
	var str = getSelectedText();
	if(str=='' || last_selected>0) comment_selected=start_id;
	else comment_selected=0;
}

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;}
	
	if(document.all)
	{
		var y = e.y;
		var x = e.x;
	}
	else
	{
		var y = e.pageY;
		var x = e.pageX;
	}
	
		
	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($('#club_form').length>0) type='club';
	
	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();
		if(author) var text = '[quote="'+author+'"]' + current_str + '[/quote]'+"\n";
		else var text = '[quote]' + current_str + '[/quote]'+"\n";
	}
	if(type=='club')
	{
		var textarea = document.getElementById('text_id');
		var author = $('#quote'+quote_id).html();
		if(!author) author = $('#a_author').html();
		if(author) var text = '[quote="'+author+'"]' + current_str + '[/quote]'+"\n";
		else var text = '[quote]' + current_str + '[/quote]'+"\n";
	}
	if(type=='mail')
	{
		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;
}






/* comments smiles window */

var sm_showed_at = null;
var sm_textarea_id = null;

function closeSmilesAt()
{
	if(!sm_showed_at) return;
	$('#smiles-popup').remove();
	sm_showed_at.src = '/i/csm.gif';
	sm_showed_at=null;
	sm_textarea_id=null;	
}

function showSmilesAt(elem, area_id)
{
	if(elem==sm_showed_at) {closeSmilesAt();return;}
	elem.src = '/i/csmclose.gif';
	
	$(elem.parentNode).prepend( $('#smiles-popup2').clone().attr('id','smiles-popup').show() );		
	sm_showed_at = elem;
	sm_textarea_id = area_id;
}

function em2(text) {
	insert_text(' '+text+' ', sm_textarea_id);
	closeSmilesAt();
}




var tm_profiletip = null;
var a_profiletip;
var pt_x;
var pt_y;
var pt_cancel = false;
var pt_cache = new Array();
function profiletip_setup()
{    
	$('#profiletip').unbind().hover(
			function(e){},
			function(){			
			$('#profiletip').hide();
	});
  $("a[rel='profile']").unbind().hover(
        function(e) {				
					if(tm_profiletip) clearTimeout(tm_profiletip);
					tm_profiletip = setTimeout("profiletip_show()", 1000);
					a_profiletip = this;
					pt_x = e.pageX;
					pt_y = e.pageY;
				},
        function() {
            if(tm_profiletip) clearTimeout(tm_profiletip);
						pt_cancel = true;
	     }
			 ).mousemove(function(e){
			 		pt_x = e.pageX;
					pt_y = e.pageY;
			});
}
function profiletip_show()
{
	var username = a_profiletip.href;
	username = username.replace('http://','');
	username = username.replace(/\..*/,'');
	
	if(pt_cache[username])
	{
		profiletip_display(pt_cache[username]);
	}
	else
	{
		pt_cancel = false;
		$.get('/ajax/profiletip/',{"username":username}, function(data){
			if(data=='error') return;
			pt_cache[username] = data;
			if(pt_cancel) return;
			profiletip_display(data);
		});
	}
}
function profiletip_display(data)
{
	var tx = pt_x - 25;
	var ty = pt_y - 25;
	
	if(tx + 360 > getWindowWidth()) 
	{
		tx = pt_x - (360-25);
	}
	
	$('#profiletip').html(data);
	$('#profiletip').css("top", ty+"px").css("left", tx+"px").show();
}
jQuery(document).ready(function($){profiletip_setup();});




/* status */
var vtip_timeout = false;

this.vtip = function() {    
    this.xOffset = 0;
    this.yOffset = -15; 
    
    $("a.vtip").unbind().hover(
        function(e) {
						
						if(this.rel)
							$('#texttip').html(this.rel);
						else
							$('#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(vtip_timeout) clearTimeout(vtip_timeout);
						vtip_timeout = setTimeout(function(){$("#vtip").hide();},4000);
						
						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) {
						if(vtip_timeout) clearTimeout(vtip_timeout);
						vtip_timeout = setTimeout(function(){$("#vtip").hide();},4000);
						
						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 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;
	var old_btns = $('#status_buttons').html();
	$('#status_buttons').html('идёт сохранение...');
	
	$.post("/ajax/status/save/",{str:str,userid:userid},
		function(data)
		{
			status_sending = false;
			if(data=='link')
			{
				$('#status_buttons').html(old_btns);
				alert('У нас не допускается использование ссылок в статусах');
				return;
			}
			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;
}


/* polls */	
var poll_votes_status = new Array();

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('Опрос','Необходимо выбрать вариант(ы) ответа!');
			}
		}
	}
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();
		
		$.get("/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();
		
		$.get("/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;
}


/* tests */
var test_already_status = 0;	
function showTestAlready(id)
{
	if(test_already_status!=1)
	{
		test_already_status = 1;
		
		$('#test_already').html('загрузка списка...');
		$('#test_already').slideDown();
		
		$.get("/ajax/test/already/", { 'testid':id },
				function(data)
					{
						if(data!='error')
						{						
							$('#test_already').html(data);
							document.location.href='#already';
						}
					}
				);
	}
	else
	{
		$('#test_already').toggle();
	}
	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;
}


/* rating */
function voteForDoc(docid,rate,indoc)
{
	if(rate==-1)
	{
		if(!confirm('Уверены, что хотите поставить минус?')) return false;
	}
	$.post("/ajax/vote/", { documentid: docid, rate: rate, indoc:indoc, spart:spart },
		  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 vfc(cid,rate)
{	
	if(rate==-1)
	{
		if(!confirm('Уверены, что хотите поставить минус?')) return false;
	}
	$.post("/ajax/cvote/", { commentid: cid, rate: rate },
		  function(data){
				if(data=='points1')
				{
					alert2('Голосование за комментарий','У вас закончился дневной заряд голосов за комментарии.<br><br><a href="/points/">Узнать о том, как увеличить свой заряд</a>');
					return;
				}
				if(data=='points2')
				{
					alert2('Голосование за комментарий','У вас не хватает голосов чтобы поставить минус.<br>Для отрицательной оценки требуется заряд в два голоса.');
					return;
				}
				if(data=='silent')
				{
					alert2('Голосование за комментарий','С жёлтой карточкой нельзя голосовать за комментарии.');
					return;
				}
		  	if(data && data.length<300 && data!='error')
		  	{
					data = eval(data);
		    	$("#cvote"+cid).html(data.html);
					//$("#topbattery").html(data.points);
					//$("#topbattery").get(0).className = 'battery-'+data.pointssize;
					//$("#fx_battery2").html(data.points);
		  	}
		  });
	return false;
}


/* blog inserts */
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 showCodes(mod)
{
	if(mod)
	{
		$('#codes_top').hide();
		$('#codes').show();
	}
	else
	{
		$('#codes_top').show();
		$('#codes').hide();	
	}
	return false;
}


/* popups and tabs */
function ajax_show(title)
{
	$('#ajax_title').html(title);
	$('#popup_ajax').jqmShow();
}

function ajax_close()
{
	$('#popup_ajax').jqmHide();
}
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 ajaxSimplePage(id,lnk,page)
{
	$('#ajax_pager_'+id).html('Идёт загрузка...');
	
	$.get(lnk,{page:page}, function(data){
			$('#'+id).html(data);
			vtip();
			$('#'+id+' a[rel*=facebox]').facebox();
			document.location.href='#'+id;
		});
}





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();
			profiletip_setup();
			$('#a_'+id+' a[rel*=facebox]').facebox();
			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]);
		$('#a_'+id+' a[rel*=facebox]').facebox();
		vtip();
		profiletip_setup();
	}
	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);
			$('#a_'+id+' a[rel*=facebox]').facebox();
			vtip();
			profiletip_setup();
			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 ajaxLoadTab(id,num,url,handlers)
{
	if(tabs_activity[id]==1) return;
	
	tabs_activity[id]=1;
	$('#a_'+id).html('Идёт загрузка...');
	
	$.get(url, {id:id,num:num}, function(data){
			$('#a_'+id).html(data);
			if(handlers)
			{
				vtip();
				profiletip_setup();
				$('#a_'+id+' a[rel*=facebox]').facebox();
			}
			tabs_activity[id]=0;
			document.location.href='#'+id+'top';
		});
}




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;
}









/* favourites */
var fav_new=0;
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;
}
function favComDelete()
{
  //считаем
  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;
}


function showNewRub()
{
  fav_new=1;
  $('#fav_select_rub').hide();
  $('#fav_new_rub').show();
	$('#fav_new_rub input').get(0).focus();
  return false;
}

function hideNewRub()
{
  fav_new=0;
  $('#fav_new_rub').hide();
  $('#fav_select_rub').show();
  return false;
}



function showBlogInsert2()
{
	if($('#bloginsert1').css('display')=='none')
	{
		if($('#a_addfav').length>0) $('#a_addfav').css('color','');
		$('#a_bloginsert').css('color','black');
		
		if($('#a_addfav').length>0 && $('#add2fav').css('display')!='none')
		{
			$('#add2fav').hide();
			$('#bloginsert1').show();
		}
		else
		{
			$('#bloginsert1').slideDown(); 
		}
	}
	else
	{
		$('#a_bloginsert').css('color','');
		$('#bloginsert1').slideUp();
	}
	return false;
}




function showAddFav()
{
	if($('#add2fav').css('display')=='none')
	{
		if($('#a_bloginsert').length>0) $('#a_bloginsert').css('color','');
		$('#a_addfav').css('color','black');
		
		if($('#a_bloginsert').length>0 && $('#bloginsert1').css('display')!='none')
		{
			$('#bloginsert1').hide();
			$('#add2fav').show();
		}
		else
		{
			$('#add2fav').slideDown(); 
		}
	}
	else
	{
		$('#a_addfav').css('color','');
		$('#add2fav').slideUp();
	}
	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;
}


var favcom_inproc=false;

function favCom(id)
{
	if(favcom_inproc) return false;
	favcom_inproc = true;
	$('#fc_'+id).removeClass('favcom').addClass('favcom1');
	$.post("/ajax/favcom/", {'id':id},
  		function(data)
			{
				favcom_inproc = false;
        if(data!='error')
        {
					$('#fc_'+id).html('<a href="#" onclick="return favComRem('+id+')" title="Убрать из избранного"></a>');
					$('#fc_'+id).removeClass('favcom1').addClass('favcom2');
				  alert2('Избранное','Комментарий добавлен в ваше избранное.');
        }
 		});
	return false;
}

function favComRem(id)
{
	if(favcom_inproc) return false;
	favcom_inproc = true;
	$.post("/ajax/favcom/remove/", {'id':id},
  		function(data)
			{
				favcom_inproc = false;
        if(data!='error')
        {
					$('#fc_'+id).html('<a href="#" onclick="return favCom('+id+')" title="Убрать из избранного"></a>');
					$('#fc_'+id).removeClass('favcom2').addClass('favcom');
				  alert2('Избранное','Комментарий удален из избранного.');
        }
 		});
	return false;
}



/* subscription */
 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;
}


/* comments */
var now_add_comment = false;
var current_comment_form=0;
function addComment(parentid,guestmode)
{
	if(now_add_comment) return;
	now_add_comment=true;
	
	text = document.getElementById('comment_tex_'+parentid).value;
	if(text.length==0) return;
	//text = encodeURIComponent(text);
	
	closeSmilesAt();
	
	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("Идёт добавление комментария...");
	

	// отправляем коммент, получаем массив - статус (0 если неудача, или id добавленного коммента если удача) и ветку
	$.post("/ajax/newcomment/", 
		{parentid: parentid, tex: text, subscribe:subscribe},
  		function(data){
				now_add_comment = false;
				if(data=='cspam')
  			{
  				document.location.href='/cspam/';
					return;
  			}
        if(data=='antiflood')
  			{
  				$("#comment_span_"+parentid).html("Вы не можете отправлять комментарии чаще чем раз в 5 секунд.");
  			}
			  else if(data=='same')
  			{
  				$("#comment_span_"+parentid).html("Вы уже добавили этот комментарий.");
  			}
				else if(data=='silent')
  			{
  				$("#comment_span_"+parentid).html('Вам выставлена жёлтая карточка, вы не можете писать на сайте в течение суток.');
  			}
  			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);
						cont.html(cont.html() + data.html);
						
						if(current_comment_form && current_comment_form!=top_level_parentid) 
						{
							closeSmilesAt();
							$("#comments_form_"+current_comment_form).hide();
						}
						current_comment_form = 0;
						
						vtip();
						profiletip_setup();
		  			
		    		$('#comment_tex_'+parentid).val("");
		    		$("#comment_span_"+parentid).html("");
						//document.location.href='#com'+data.id;
						$.scrollTo( $('#comment_node_'+data.id), 500 ,  {axis:'y'});
	  			}
	  			else  				
	  			{
  					$("#comment_span_"+parentid).html("При добавлении комментария произошла ошибка");
  				}
	  		}  			
			//$("#comment_tex_"+parentid).removeAttr("disabled");
			$("#comment_button_"+parentid).removeAttr("disabled");			
 		});
}



function showCommentEdit(id)
{
  $('#cmcontent'+id).hide();
  $('#cmcontrols'+id).hide();

	var bbcode = $('#cedittext'+id).val();
	
	var str = $('#hidden_reply').html();
	for(var i=0;i<10;i++)
	{
		str = str.replace('parentid', id+'edit');
	}
	$("#cmtarea"+id).html(str);
	$("#comment_button_"+id+'edit').hide();
	$("#comment_span_"+id+'edit').hide();
	
	$("#cmtarea"+id).addClass('comment-form');
	$("#cmtarea"+id).show();
	$("#comment_tex_"+id+'edit').val(bbcode);
	$("#comment_tex_"+id+'edit').TextAreaResizer();
	
  $('#cmcontrols'+id+'_2').show();
}


function acceptCommentEdit(id)
{
  var str = $("#comment_tex_"+id+'edit').get(0).value;
	$('#cedittext'+id).val(str);
  
  $('#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=='cspam')
	  			{
  					document.location.href='/cspam/';
						return;
  				}
          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)
{
	if(!$("#comments_form_"+parentid).hasClass('comment-form'))
	{
		var str = $('#hidden_reply').html();
		for(var i=0;i<10;i++)
		{
			str = str.replace('parentid', parentid);
		}
		$("#comments_form_"+parentid).html(str);
		$("#comments_form_"+parentid).addClass('comment-form');
		$("#comment_tex_"+parentid+":not(.processed)").TextAreaResizer();
	}
	$("#comments_form_"+parentid).show();
	current_comment_form=parentid;
}


function showCommentForm(parentid)
{
	if(current_comment_form && current_comment_form!=top_level_parentid) {closeSmilesAt();$("#comments_form_"+current_comment_form).hide();}
	if(current_comment_form == parentid)
	{	
		current_comment_form = 0;
	}
	else
	{
		if(!$("#comments_form_"+parentid).hasClass('comment-form'))
		{
			var str = $('#hidden_reply').html();
			for(var i=0;i<10;i++)
			{
				str = str.replace('parentid', parentid);
			}
			$("#comments_form_"+parentid).html(str);
			$("#comments_form_"+parentid).addClass('comment-form');
			$("#comment_tex_"+parentid+":not(.processed)").TextAreaResizer();
		}
		$("#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);
  		});
}








function refreshCap()
{
  document.getElementById('capimg').src='/lib/kcaptcha/?rnd='+Math.floor(Math.random()*10000);
  return false;
}


function guestComment()
{
	alert2('Написать комментарий','Оставлять комментарии могут только зарегистрированные пользователи.<br><div style="margin:15px 0px 5px;font-size:16px;color:#FE3322;"><a href="/getinvite/" style="font-size:18px;color:#FE3322;">Зарегистрироваться</a>,</div>или <a href="/login/">войти</a> если вы уже регистрировались.');
	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 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 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 showBlock(name)
{
	$('#'+name+'_top').toggle();
	$('#'+name+'_block').toggle();
	return false;
}





(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 = 65;
	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);

function slideBlock(name)
{
	if($('#'+name).get(0).style.display=='none') $('#'+name).slideDown();
	else $('#'+name).slideUp();
	return false;
}


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;
}
  
function test_email(email)
{
	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,})$/
	return reg.exec(email);
}



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 showWhats()
{
	if($('#whats_div').css('display')=='none')
	{
		$('#whats_div').slideDown("fast");
		$('#whats_b').slideUp();
	}
	else
	{
		$('#whats_b').slideDown();
		$('#whats_div').slideUp("fast");
	}
	return false;
}	






