// on load
$(document).ready(function(){
	
	$.ajaxSetup({  type: "POST" });
	triggerLogin();
	triggerPassword();
	
	$('#popup_message').jqm({overlay: 1});    
	$('#popup_message').jqmAddClose('#msg_close');
	
	$('#popup_confirm').jqm({overlay: 1});	
	$('#popup_confirm').jqmAddClose('#confirm_no');
	
	$('#popup_ask').jqm({overlay: 1});	
	$('#popup_ask').jqmAddClose('#ask_close');
	
	$('textarea.resizable:not(.processed)').TextAreaResizer();
	
	if(!navigator.cookieEnabled)
	{
		alert2('Внимание!','Внимание!<br>В вашем браузере отключены cookies, необходимые для работы сайта. Вы не сможете войти на сайте с отключенными cookies.<br>Вам следует включить их или обратится к тому, кто знает как это сделать.');
	}
	
	//ресайз для широких картинок по ширине центральной части
	var maxW = parseInt($('#content').attr('offsetWidth')) - 10;
	$('#content img').each(function(i){
		if (this.offsetWidth  > maxW) {
			var height = Math.floor(this.offsetHeight * maxW / this.offsetWidth);
			var wr = $('<a href="'+this.src+'" target="_blank" title="Кликните чтобы открыть в оригинальном размере (в новом окне)"></a>');
			$(this).css('width', maxW+'px').css('height', height).wrap(wr);
		}
	});
	

	initPopups();	
	$(document).click(function(){
		$('#cluetip-close').click();
	});

   $("#search_roll_up").click(function(){
  	$("#extend-link").click();
  });

	initPhotoSroller();
});

function initPopups(parent)
{
	parent = parent || document;
	// всплывающие карточки пользователя и компании
	$('a.cardPopup', $(parent)).each(function(i){
		$(this).attr('rel', '/ajax/card?u='+($(this).attr('href')));
	});

  	$('a.cardPopup', $(parent)).cluetip({
  		sticky: true, 
  		dropShadow: false,
  		mouseOutclose: true,
  		showTitle: false,
  		closeText: '',
  		width: 396,
  		ajaxSettings: { type: 'GET' },
  	    hoverIntent: { sensitivity: 2, interval: 200 }
  	});
}

var adding_favourite_in_progress = false;

function addFavourite(documentid) {
	if (adding_favourite_in_progress) return false;
	adding_favourite_in_progress = true;
	
	$.post('/ajax/favourite/add/'+documentid, function(data){
		adding_favourite_in_progress = false;
		if (data != 'removed' && data != 'added') {
			alertRed('Ошибка', '<p>Произошла ошибка. Пожалуйста повторите вашу попытку пожже</p>');
			return;
		}
		if (data == 'added') {
			$('#add-to-favourite-'+documentid).text('Удалить из избранного');
			alertGreen('Операция прошла успешно', '<p>Документ был успешно добавлен в избранное.</p>')
			$(document).one("click",function(){$("#success_popup").hide();});
		} else {
			$('#add-to-favourite-'+documentid).text('Добавить в избранное');
		}
	});
	
	return false;
}

function addFavouriteVacancy(documentid) {
	if (adding_favourite_in_progress) return false;
	adding_favourite_in_progress = true;

	$.post('/ajax/favourite_vacancy/add/'+documentid, function(data){
		adding_favourite_in_progress = false;
		if (data != 'removed' && data != 'added') {
			alertRed('Ошибка', '<p>Произошла ошибка. Пожалуйста повторите вашу попытку пожже</p>');
			return;
		}
		if (data == 'added') {
			$('#add-to-favourite-'+documentid).text('Удалить из избранного');
			alertGreen('Операция прошла успешно', '<p>Вакансия была успешно добавлена в избранное.</p>')
			$(document).one("click",function(){$("#success_popup").hide();});
		} else {
			$('#add-to-favourite-'+documentid).text('Добавить в избранное');
		}
	});

	return false;
}

function login(backurl) {
	if (backurl) window.loginRedirectURL = backurl;
	$("#account-login").click();
	return false;
}

function signup(backurl) {
	if (backurl) window.loginRedirectURL = backurl;
	$("#short_reg").show();
	$("#short_reg #reg_tab1").click();
	return false;
}

function alertRed(title, message, callback) {
	alertGreen(title, message, callback, 'error3');	
}

function alertYellow(title, message, callback) {
	alertGreen(title, message, callback, 'error2');	
}

function alertGreen(title, message, callback, popupClass){
	if (typeof popupClass == 'undefined') popupClass = 'error1';
	if (typeof callback != 'function') {
		callback = function(){
			$('#success_popup').fadeOut();
		}
	}

	$('#success_popup')
		.attr('className', popupClass)
		.find('h3').html(title).end()
		.find('p').html(message).end()
		.fadeIn(function(){
			$(document).one('click', callback);
		});
}

function functionInWorking() {
	$('#function_in_working').show();
	$(document).one('click',function () {
		$('#function_in_working').hide();
	});
}

function showBlock(name)
{
	$('#'+name+'_top').toggle();
	$('#'+name+'_block').toggle();
	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) {
				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);
			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);
			tabs_activity[id]=0;
		});
	}
}


function alert2(title, text)
{
	$('#popup_title').html(title);
	$('#popup_text').html(text);
	$('#popup_message').jqmShow();
	return false;
}


function ask2(title, text, param)
{
	$('#ask_title').html(title);
	$('#ask_text').html(text);
	$('#ask_form').attr('action',param.href);
	$('#popup_ask').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 selectVisible(id)
{
	if($('#vs_'+id).val()!='groups') 
	{
		$('#vg_'+id).hide();
		return;
	}
	
	$('#vg_'+id).show();	
}


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, answer)
{
	answer = (typeof answer == 'undefined') ?  false : answer;

    var authorId = answer ? $('#acompanySel').val() : $('#companySel').val();
    
	var text = answer ? $('#answer_form textarea').val()
                      : document.getElementById('comment_tex_'+parentid).value;
	
	if(text.length==0) return;
	
	if (answer) {
		$('#answer_form input, #answer_form textarea').attr('disabled', 'disabled');
		$("#answer_form_loading").html("Идёт добавление комментария...");
	} else {
		$("#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;
	}
	
	var topicVote = $('.chek_mark:checked').val();
	var subscribe = $('#subscribe_comments').attr('checked') ? $('#subscribe_comments').val() : 0;

	// отправляем коммент, получаем массив - статус (0 если неудача, или id добавленного коммента если удача) и ветку
	$.post("/ajax/newcomment/", 
		{parentid: parentid, tex: text, guestmode: gmode, cap:cap, guestname: guestname, 
		 topicVote: topicVote, subscribe:subscribe, company:authorId},
  		function(data){
  			if(data=='captcha')
  			{
  				$("#comment_span_"+parentid).html("Неправильно указан код с картинки");
  			}
  			else
  			{ 				
  				data = eval(data);
				if (data.id)
	  			{  	
	  				if (answer)	{
	  					$('#answer_form_placeholder').append($('#answer_form').hide());
	  				}
	  				
		  			var cont = $("#comment_node_"+parentid);
		  			
		  			if(cont.attr("rel")=='rootnode') {
		  				cont.html(data.html);
					} else {
		  				cont.html(data.html).find('div.comments').removeClass('comments');
					}
		  			
					if (answer) {
						$('#answer_form_loading').html('');
						$('#answer_form textarea').val('');
					} else {
		    			$('#comment_tex_'+parentid).val("");
		    			$("#comment_span_"+parentid).html("");
		    		}
		    		
					document.location.href='#com'+data.id;
						
					if (topicVote == 1 || topicVote == -1) {
						updateDocRating(data.documentId, topicVote);
					}
					
					if (subscribe == 1 || subscribe == -1) {
						$('#subscribe_comments').val(-1 * subscribe).attr('checked', false);
						$('#subscribe_comments+label').text(
							subscribe == -1 
								? 'Подписаться на обсуждение и получать уведомление о новых комментариях на e-mail'
								: 'Отписаться от уведомлений о новых комментариях на e-mail'
							);
					}
	  			}
	  			else  				
	  			{
  					$("#comment_span_"+parentid).html("При добавлении комментария произошла ошибка");
  				}
	  		}  			
	  		if (answer) {
	  			$('#answer_form input,#answer_form textarea').removeAttr('disabled');
  			} else {
				$("#comment_tex_"+parentid).removeAttr("disabled");
				$("#comment_button_"+parentid).removeAttr("disabled");			
			}
  		});
}

function addCommentAnswer()
{
	if (!current_comment_form) return;
	addComment(current_comment_form, false, true);
}

function showCommentForm(parentid)
{
	current_comment_form = parentid;	
	$('#comment_node_'+parentid).append($('#answer_form').show());
}


function expandComments(parentid,that)
{
	$("#comments_subtree_"+parentid+" div").html('<br>Идёт загрузка ветки комментариев...');
	$("#comments_subtree_"+parentid).load("/ajax/commentsubtree", {parentid: parentid});
}


function deleteFeedback(id) {
	$.post('/ajax/feedback/delete/'+id, function(data){
		window.location.reload();
	});
	return false;
}

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;
			$('#comment_node_'+id).remove();

			// все нормально - удалился, подгружаем ветку
			var cont = $("#comment_node_"+parentid);

 			if(cont.attr("rel")=='rootnode')
  				cont.parent('div').html(data);
  			else
  				cont.parent('div').html(data);
  		});
}


need_focus=false;



function checkSignup(field)
{
	debugger;
	if(field=='login')
	{
		
		ajaxCheckLogin(true);
	}
	if(field=='email')
	{
		ajaxCheckEmail(true);
	}
	if(field=='msisdn')
	{
		checkMsisdn(true);
	}
	if(field=='fio')
	{
		checkFio();
	}
	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;
		oke = checkMsisdn(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('');
			$("#"+field+"_id").removeClass('invalid');
		}
		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();
			}
			$("#"+field+"_id").addClass('invalid');
		}
}

function msisdnChecked(field,ret,num)
{
		if(ret=='ok')
		{
			if($("#f_"+field).length && $("#f_"+field).get(0).className=='required') $("#f_"+field).get(0).className='ok';
			$("#msisdn1_id").removeClass('err');
			$("#msisdn2_id").removeClass('err');
			$("#e_"+field).html('');
		}
		else
		{
			if($("#f_"+field).length && $("#f_"+field).get(0).className=='ok') $("#f_"+field).get(0).className='required';
			if(num & 1)
				$("#msisdn1_id").addClass('err');
			if(num & 2)
				$("#msisdn2_id").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 ajaxCheckEmail(ajax)
{
	var str = $('#email_id').val();
	if(str.length==0) 
	{
		fieldChecked('email',"Введите email");
		return false;
	}
	
	
	//var reg = /\w+@\w+\.\w/
	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,})$/
	if (!reg.exec(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!=4) 
	{
		fieldChecked('cap',"Введите число, изображенное на картинке");
		return false;
	}
	fieldChecked('cap','ok');
	return true;
}


//********
function checkMsisdnRuntime()
{
	var is_ok = ($('#f_msisdn').get(0).className=='ok');
	
	var str1 = $('#msisdn1_id').val();
	var str2 = $('#msisdn2_id').val();
	var str = str1+str2;
	
	if(str1.length==0 && str2.length==0) 
	{
		if(is_ok)	msisdnChecked('msisdn',"Введите ваш номер телефона",1);
		return;
	}
	
	if(str1.length==0) 
	{
		if(is_ok)	msisdnChecked('msisdn',"Введите 3 цифры кода",1);
		return;
	}
	
	if(str2.length==0) 
	{
		if(is_ok)	msisdnChecked('msisdn',"Введите 7 цифр номера",2);
		return;
	}
		
	
	var reg = /^([\d]{3})$/
	if (!reg.exec(str1)) 
	{	
 		if(is_ok)	msisdnChecked('msisdn',"Код должен состоять из 3 цифр", 1);
		return;
	}
	
	var reg = /^([\d]{7})$/
	if (!reg.exec(str2)) 
	{	
 		if(is_ok)	msisdnChecked('msisdn',"Номер должен состоять из 7 цифр", 2);
		return;
	}
	
	if(!is_ok) msisdnChecked('msisdn','ok');
}


function checkMsisdn()
{
	var str1 = $('#msisdn1_id').val();
	var str2 = $('#msisdn2_id').val();
	var str = str1+str2;
	
	if(str1.length==0 && str2.length==0) 
	{
		msisdnChecked('msisdn',"Введите ваш номер телефона",1);
		return false;
	}
	
	if(str1.length==0) 
	{
		msisdnChecked('msisdn',"Введите 3 цифры кода",1);
		return false;
	}
	
	if(str2.length==0) 
	{
		msisdnChecked('msisdn',"Введите 7 цифр номера",2);
		return false;
	}
	
	var reg = /^([\d]{3})$/
	if (!reg.exec(str1)) 
	{	
 		msisdnChecked('msisdn',"Код должен состоять из 3 цифр", 1);
		return false;
	}
	
	var reg = /^([\d]{7})$/
	if (!reg.exec(str2)) 
	{	
 		msisdnChecked('msisdn',"Номер должен состоять из 7 цифр", 2);
		return false;
	}
	
	msisdnChecked('msisdn','ok');
	return true;
}

function checkFio()
{
	var str = $('#fio_id').val();
	if(str.length==0) 
	{
		fieldChecked('fio',"Введите ваше полное имя");
		return false;
	}
	
	fieldChecked('fio','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;
	}
	
	var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,})$/
	if (!reg.exec(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 submitNewsPreview()
{
	$('#hidden_preview').val(1);
	if(onSubmitNews())
	{
		document.mainform.submit();
	}
}

function submitNews()
{
	$('#hidden_preview').val(0);
	if(onSubmitNews())
	{
		document.mainform.submit();
	}
}


function onSubmitNews()
{
	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;
		}
	}

	var oEditor = FCKeditorAPI.GetInstance('tex_id');
	oEditor.UpdateLinkedField();

	// копируем в скрытые поля из полей котрые не попали в основную форму
	//$('#hidden_short').val($('#visible_short').val());
	//$('#hidden_tags').val($('#visible_tags').val());

	// проверяем все ли поля заполнены
	var result = true;
	result = notEmpty('title','Введите заголовок') && result ;
	//result = notEmpty('blog','Укажите дневник') && result;
	result = notEmpty('tex','Введите текст вашей записи') && result;

	if(!result) 
	{
		$('#formerror').show();
		document.location.href='#formtop';
	}
	return result;
} 




function submitPostPreview()
{
	$('#hidden_preview').val(1);
	if(onSubmitPost())
	{
		document.post.submit();
	}
}

function submitPost()
{
	$('#hidden_preview').val(0);
	if(onSubmitPost())
	{
		document.post.submit();
	}
}



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;
		}
	}
	
	var oEditor = FCKeditorAPI.GetInstance('tex_id');
	oEditor.UpdateLinkedField();
	
	// копируем в скрытые поля из полей котрые не попали в основную форму
	//$('#hidden_short').val($('#visible_short').val());
	//$('#hidden_tags').val($('#visible_tags').val());
	
	// проверяем все ли поля заполнены
	var result = true;
	result = notEmpty('title','Введите заголовок') && result ;
	//result = notEmpty('blog','Укажите дневник') && result;
	result = notEmpty('tex','Введите текст вашей записи') && result;
	
	if(!result) 
	{
		$('#formerror').show();
		document.location.href='#formtop';
	}
	return result;
} 

function onSubmitCommunity()
{
	var result = true;
	result = notEmpty('title','Введите название') && result ;	
	return result;
} 

function onSubmitAlbum()
{
	// проверяем все ли поля заполнены
	var result = true;
	result = notEmpty('title','Введите название') && result ;
	
	return result;
} 

function onSubmitPhoto()
{
	if (typeof window.showUpload == 'function') {
		//blocking UI
		$('input[type=submit]').attr('disabled', true);
		$('#uploadbar').show();
		setTimeout(window.showUpload, 1500);
	}
	
	// проверяем все ли поля заполнены
	var result = true;
	if ($('#file_id').length>0) result = notEmpty('file','Выберите файл') && result ;
	result = notEmpty('title','Введите название') && result ;	
	
	return result;
} 

function onSubmitTitleForm()
{
	// проверяем все ли поля заполнены
	var result = true;
	result = notEmpty('title','Введите название') && result ;
	
	return result;
} 


function onMailSend()
{
	var result = true;
	result = notEmpty('text','Введите текст сообщения') && result ;
	
	if(result)
	$('#sm_button').html('Отправка сообщения...');
	
	return result;
}

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 updateDocRating(docid, value) 
{
	$("ul.vdoc_"+docid+">li")
		.find("a").replaceWith('<a href="#" onclick="return false;">&nbsp;</a>').end()
		.find("span").fadeOut(function(){$(this).html(value).fadeIn();});
}


function voteForCite(link, docid, objid, rate, reloadPage)
{
	reloadPage = (typeof reloadPage == 'undefined') ? false : reloadPage;
	
	//console.log(arguments)
	$.post("/ajax/cite/vote", 
		{
			document_id: docid,
			object_id: objid,
			rate: rate
		}, 
		function(data){
			//$(link).parent('div').find('a.plus,a.minus').remove()
			$(link).parent().prepend($('<strong style="color:'+(data >= 0 ? 'green' : 'red')+'">'+data+'</strong>'));
			$('a.cv'+objid).remove();
			
	    	if (reloadPage) {
	    		window.location.reload();
	    	}
		}
	)
}
function voteForCiteLogin(link, docid, objid, rate)
{
	window.loginCallback = function() {
		voteForCite(link, docid, objid, rate, true);
	}
	login();
	return false;
}

function voteForDoc(docid,rate,indoc,callback)
{	
	$.post("/ajax/vote/", 
		{
			documentid: docid,
			rate: rate, 
			indoc:indoc 		
		},
		function(data) {
		  	if(data) {
		    	updateDocRating(docid, data);
		    	
		    	if (typeof callback == 'function') callback.call(data);
		  	}
	 	}
	);
	return false;
}

function voteForDocLogin(docid,rate,indoc)
{
	window.loginCallback = function() {
		voteForDoc(docid, rate, indoc, function() {
			window.location.reload();
		});
	}
	login();
	return false;
}

function voteForComLogin(cid,rate) {
	window.loginCallback = function() {
		voteForCom(cid, rate, true);
	}
	login();
	return false;
}

function voteForCom(cid,rate, refresh)
{	
	refresh = typeof refresh == 'undefined' ? false : refresh;
	
	$.post("/ajax/cvote/", { commentid: cid, rate: rate },
		  function(data){
		  	if(data) {
		  		var className = 'mark_' + (data>0 ? 'plus' : (data<0 ? 'minus' : ''));
		    	$("#cvote"+cid+">ul>li:first").fadeOut(function(){$(this).html(data).attr('class', className).fadeIn()});
		    	$("#cvote"+cid+">ul>li.plus").remove();
		    	$("#cvote"+cid+">ul>li.minus").remove();
		    	
		    	if (refresh) {
		    		window.location.reload();
		    	}
		  	}
		  });
	return false;
}

function joinCommunity(cid)
{
	$.get("/community/join/"+cid, function(data){
		alertGreen('Сообщество', data, function(){
			location.href = '/community/'+cid;
		});
	});
	return false;
}

function leaveCommunity(cid)
{
	$.get("/community/leave/"+cid, function(data){
		alertGreen('Сообщество', data, function(){
			location.href = '/community/'+cid;
		});
	});
	return false;
}

function askModerator(link,cid)
{
	$.get($(link).attr('href'), function(data){
		alertGreen('Сообщество', data, function(){
			location.href = '/community/'+cid;
		});
	});
	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_'+id).load("/ajax/poll/vote/", { 'pollid':id, 'votes': votes } );
		} else {
			alertYellow('Голосование', 'Необходимо выбрать вариант(ы) ответа!');
		}
	}
}

function makePollVoteLogin(id)
{
	window.loginCallback = function(data) {
		makePollVote(id);
	}
	login();	
	return false;
}

function submitPollPreview()
{
	$('#hidden_preview').val(1);
	if(onSubmitPoll())
	{
		document.post.submit();
	}
}

function submitPoll()
{
	$('#hidden_preview').val(0);
	if(onSubmitPoll())
	{
		document.post.submit();
	}
}


function onSubmitPoll()
{
	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;
		}
	}
	
	var result = true;
	result = notEmpty('title','Введите текст вопроса') && result ;
	//result = notEmpty('blog','Укажите дневник') && result;
	result = notEmptyPoll('options','Введите хотя бы 2 варианта ответа') && result;

	if(!result) 
	{
		$('#formerror').show();
		document.location.href='#formtop';
	}
	return result;
}

function notEmptyPoll(field,message)
{
	if(!$('#option1_id').val() || !$('#option2_id').val())
	{
		fieldChecked(field,message);
		return false;
	}
	else 
	{
		fieldChecked(field,'ok');
		return true;
	}
}


function openChat(url, emailUrlBase)
{
    var left = (screen.width-580)/2;
    var top = (screen.height-600)/2;
    if (typeof(emailUrlBase) != 'undefined') {
        url = emailUrlBase + url;
    }
	window.open(url,'_blank','toolbar=no,width=580, height=600,toolbar=no,scrollbars=no,resizable=no,status=no,left='+left+',top='+top);
	return false;
}

function openChatLogin(url)
{
	window.loginCallback = function(data) {
		openChat(url, data.url_mail);
	}
	login();
	return false;
}

function openFriendsRequest(url)
{
	window.open(url,'_blank','toolbar=no,width=580, height=630,toolbar=no,scrollbars=no,resizable=no,status=no,left=10,top=10');
	return false;
}



function addFriend(alink, userId) {
	$.get('/ajax/newfriend?id='+userId, function(data){
		if (data == 'ok') {
			alertGreen('Добавление в друзья', '<p>Пользоветель был успешно добавлен вами в друзья</p><br/>');
			$(alink).text('Удалить из друзей')
				.unbind('click')
				.click(function(){delFriend(alink, userId);});
		} else {
			alertYellow('Добавление в друзья', '<p>Произошла ошибка: '+data);
		}
	});	
	return false;
}

function delFriend(alink, userId) {
	$.get('/ajax/delfriend?id='+userId, function(data){
		if (data == 'ok') {
			alertGreen('Удаление из друзей', '<p>Пользоветель был успешно удален из списка ваших друзей</p><br/>');
			$(alink).text('Добавить в друзья')
				.unbind('click')
				.click(function(){addFriend(alink, userId);});
		} else {
			alertYellow('Удаление из друзей', '<p>Произошла ошибка: '+data);
		}
	});		
	return false;
}



function companySuggestOnSelect(oldValue) {
	if ($(this).val() == '[ Зарегистрировать компанию ]') {
		$(this).val(oldValue);
		$('#company_ref_form input[@name=title]').val(oldValue);
		if (window.isLogged) {
			$('#company_reg').show();
		} else {
			window.loginCallback = function() {
				$('#company_reg').show();
			}
			login();
		}
	}
}

function initPhotoSroller() {
	if (!$('#photoSlider').length) return;
	
	var count = $('#photoSlider li:not(.arr)').length;
	var current = 0;
	var size = 2;
	
	$('#scrUp').click(function(){
		if (current == 0) return false;
		current--;
		updatePhotoSlider(count, current, size);
		return false;
	});
	
	$('#scrDown').click(function(){
		if (current + size >= count) return false;
		current++;
		updatePhotoSlider(count, current, size);	
		return false;
	});
	
	updatePhotoSlider(count, current, size);
}

function updatePhotoSlider(count, current, size) {
	if (current == 0) {
		$('#scrUp').css('opacity', '0.2');
	} else {
		$('#scrUp').css('opacity', '1');
	}

	if (current + size == count) {
		$('#scrDown').css('opacity', '0.2');
	} else {
		$('#scrDown').css('opacity', '1');
	}
	
	$('#photoSlider li:not(.arr)')
		.addClass('hidden')
		.slice(current, current+size).removeClass('hidden');
}

function trim(string){
	return string.replace(/(^\s+)|(\s+$)/g, "");
}

/* Цитирование */
function citeRemove(id) {
	$.post('/ajax/cite/remove', {id:id, post_id:postId}, function(data){
		$('#postCites').html(data);
	});
}

addCiteUser = function(url, name){
	$.post('/ajax/cite/add/user', {
		post_id: postId,
		url: url,
		name: name
	}, function(result){
		$('#postCites').html(result);
	});
}

addCiteCompany = function(name, id){
	$.post('/ajax/cite/add/company', {
		post_id: postId,
		name: name,
		id: id
	}, function(result){
		$('#postCites').html(result);
	});
}

// send to friend
function emailVacancy(id) {
	$('#popup-window')
		.css('top', ($(document).scrollTop()+20)+'px')
		.fadeIn()
		.find('div.content').html('<br/><iframe width="420" height="300"'+
				'src="/vacancies/email/'+id+'"'+
				'border="0" style="background:#fff;overflow:hidden;" frameborder="0"></iframe>');
	return false;
}