$(document).ready(init);

function init()
{
	build_menu();
	
	build_daytopic();
}

function build_menu()
{
	if(!active_menu_id)
	{
		return false;
	}
	
	$("div.menu > a[href='"+active_menu_id+"']").addClass("active");
	
	var loc = location.pathname.substring(1).split('/');
	loc		= '/' + loc[0] + '/' + loc[1] + '/';
	
	$("div.submenu > a[href$='"+loc+"']").addClass("active");
}

function showdaytopic(daytopicid)
{
	$(document).ready(function()
	{
		if( $("#daytopic-" + daytopicid).css("display") != 'none')
		{
			return false;
		}
		
		$("a.latertopicactive").attr("class", "latertopic");
		$("#latertopic-" + daytopicid).addClass("latertopicactive");
		
		$("div.daytopic:visible").hide();
		$("#daytopic-"   + daytopicid).show();
		
		
		return true;
	});
}

function menuboxsb(subpunctid)
{
	$(document).ready(function()
	{
		if( $("#mbsubpuncts-" + subpunctid).css("display") != 'none')
		{
			$("#mbsubpuncts-" + subpunctid).slideUp("slow");
			
			return true;
		}
		
		$("#mbsubpuncts-" + subpunctid).slideDown("slow");
		
		return true;
	});
}

function build_daytopic()
{
	var daytopicsmaxheight = 0;
	var daytopicsheight	   = 0;
	
	$("div.daytopic").each(function()
	{
		daytopicsheight = $(this).height();
		
		if(daytopicsheight > daytopicsmaxheight)
		{
			daytopicsmaxheight = daytopicsheight;
		}
	});
	
	if(daytopicsmaxheight)
	{
		$("div.daytopic").height(daytopicsmaxheight);
	}
	
	return true;
}

function do_search()
{
	var search_query = $("#searchfield").val();
	var raw_search_query = search_query;
	
	if(!search_query)
	{
		alert("Запрос должен состоять минимум из 4-х букв");
		return false;
	}
	
	search_query = search_query.substr(0, $("#searchfield").attr("maxlength"));
	search_query = search_query.replace(/[^a-zа-яё0-9\*\-\+]/ig, ' ').replace(/\s+/g, ' ').replace(/\s$/g, '').replace(/^\s/g, '');
	search_query = search_query.replace(/(\s[^\s]{1,3}\s)/g, ' ').replace(/^[^\s]{1,3}\s/g, '').replace(/\s[^\s]{1,3}$/g, '');

	if(!search_query)
	{
		alert("Ваш запрос состоит из слов, каждое из которых короче 4х букв, либо используются недопустимые символы");
		return false;
	}
	
	$.ajax({
	  type: 'post',
	  url: '/search/',
	  beforeSend: function()
	  {
	  	$("#searchbutton").attr("disabled","disabled");
	  },
	  
	  complete: function()
	  {
	  	$("#searchbutton").removeAttr("disabled");
	  },
	  success: function(data, textStatus) {
	    if(data == 'none')
	    {
	    	alert('К сожалению, ничего не найдено');
	    	
	    	$("#searchfield").val('');
	    	
	    	return false;
	    }
	    
	    data = data.split('-');
	    
	    if(data[0] == 'error')
	    {
	    	if(data[1] == '1')
	    	{
	    		alert('Слишком частые запросы. Повторите попытку через ' + data[2] + 'сек.');
	    		return false;
	    	}
	    	
	    	if(data[1] == '2')
	    	{
	    		alert('Ваш запрос состоит из слов, каждое из которых короче 4-х букв, либо используются недопустимые символы');
	    		return false;
	    	}
	    }
	    
	    if(data[0] == 'done')
	    {
	    	window.location.href = "/search/" + data[1] + "/";
	    }
	  },
	  error: function(xhr, textStatus, errorThrown) {
	    alert('Ошибка соединения с сервером');
	  },
	  cache: false,
	  data: {query: raw_search_query},
	  dataType: "text"
	});
	
	return false;
}

function do_rate(rate, nid)
{
	$.ajax({
	  type: 'post',
	  url: '/_newsajax/',
	  beforeSend: function()
	  {
	  	$("#ratingajaxload").show();
	  },
	  
	  complete: function()
	  {
	  	$("#ratingajaxload").hide();
	  },
	  success: function(data, textStatus)
	  {
	    data = data.split('-');
	    
	    if(data[0] == 'error')
	    {
	    	if(data[1] == '1')
	    	{
	    		alert('Неверный запрос');
	    		return false;
	    	}
	    	
	    	if(data[1] == '2')
	    	{
	    		alert('Вы уже голосовали за эту статью');
	    		return false;
	    	}
	    	
	    	if(data[1] == '3')
	    	{
	    		alert('В вашем браузере отключены cookie, голос не учтен');
	    		return false;
	    	}
	    	
	    	return false;
	    }
	    
	    if(data[0] == 'done')
	    {
	    	$("#statrating li.current").attr("style", "").removeClass("current");
	    	$("#star-" + data[1]).attr("style", "width: "+(data[1]*20)+"px").addClass("current");
	    	$("#rateon").attr("id", "rateoff");
	    	$("#statrating a").attr("onclick", "event.returnValue = false; return false;");
	    	$("#statrating a").click(function(){ return false; });
	    	return false;
	    }
	  },
	  error: function(xhr, textStatus, errorThrown) {
	    alert('Ошибка соединения с сервером');
	  },
	  cache: false,
	  data: {action: "ratearticle", ratearticle: rate, nid: nid},
	  dataType: "text"
	});
	
	return false;
}

function ratetab(uniq_id, show_id)
{
	if($("#rtab"+show_id+"_"+uniq_id).hasClass("active"))
	{
		return false;
	}
	
	var rbody = $("#ratebox-" + uniq_id);
	
	$("div.ratebody:visible", rbody).hide();
	$("a.active", rbody).removeClass("active");
	
	$("#ratebody"+show_id+"_"+uniq_id).show();
	$("#rtab"+show_id+"_"+uniq_id).addClass("active");
	
	return false;
	/*
	hide_id = (show_id == 1) ? 2 : 1;
	
	$("#ratebody"+hide_id+"_"+uniq_id).hide();
	$("#ratebody"+show_id+"_"+uniq_id).show();
	
	$("#rtab"+show_id+"_"+uniq_id).addClass("active");
	$("#rtab"+hide_id+"_"+uniq_id).removeClass("active");
	
	return false;*/
}

function showcomments()
{
	$("#hidecomments").show();
	$("#showcomments").hide();
	
	if(allow_comments)
	{
		$("#reloadcomments").show();
		$("#commentsform").show();
		if($("#captcha_id").val())
		{
			$("#captcha_row").show();
		}
	}
	
	if(!comments_was_loaded)
	{
		loadcomments(1);
	}
	else
	{
		$("#commentsrows").show();
	}
	
	return false;
}

function hidecomments()
{
	$("#showcomments").show();
	$("#hidecomments").hide();
	$("#reloadcomments").hide();
	$("#commentsform").hide();
	$("#captcha_row").hide();
	
	$("#commentsrows").hide();
	
	return false;
}

function reloadcomments()
{
	if(!allow_comments)
	{
		return false;
	}
	
	loadcomments(comments_page);
	
	return false;
}

function loadcomments(st_page)
{
	$.ajax({
	  type: 'post',
	  url: '/_newsajax/',
	  beforeSend: function()
	  {
	  	$("#ajaxloadmini").attr("src", "/design/img/ajaxloadmini.gif");
	  },
	  
	  complete: function()
	  {
	  	$("#ajaxloadmini").attr("src", "/design/img/spacer.gif");
	  },
	  
	  success: function(data, textStatus)
	  {
	     if(data.error)
	     {
	     	alert(data.error);
	     	return false;
	     }
	     
	     if(data.done)
	     {
	     	data.total_comments = parseInt(data.total_comments);
	     	
	     	if(data.total_comments != total_comments)
	     	{
	     		$("#showcomments").html( $("#showcomments").html().replace(total_comments, data.total_comments) );
	     		
	     		total_comments = data.total_comments;
	     	}

	     	allow_comments = parseInt(data.allow_comments);
	     	comments_page  = parseInt(data.comments_page);
	     	
	     	if(!allow_comments)
	     	{
	     		$("#reloadcomments").hide();
				$("#commentsform").hide();
	     	}
	     	
	     	$("#commentsrows").empty().append(data.comments).show();
	     	
	     	comments_was_loaded = 1;
	     }
	     
	     return false;
	  },
	  error: function(xhr, textStatus, errorThrown) {
	    alert('Ошибка соединения с сервером');
	  },
	  cache: false,
	  data: {action: "getcomments", nid: news_id, st: st_page},
	  dataType: "json"
	});
}

function postcomment()
{
	var commenter_name  = $("#commenter_name");
	var commenter_email = $("#commenter_email");
	var comment_text 	= $("#comment_text");
	var captcha_img		= $("#captcha_img");
	var captcha_id		= $("#captcha_id");
	var captcha			= $("#captcha");
	var captcha_row		= $("#captcha_row");
	
	
	if(!$.trim(commenter_name.val()) || !$.trim(comment_text.val()))
	{
		return postcommenterror("Не заполнены обязательные поля");
	}
	
	if(comment_text.val().length > max_comment_length)
	{
		return postcommenterror("Текст комментария слишком длинный, допустимо максимум " + max_comment_length + " симв.");
	}
	
	if(captcha_id.val() && !$.trim(captcha.val()))
	{
		return postcommenterror("Введите защитный код");
	}
	
	$.ajax({
	  type: 'post',
	  url: '/_newsajax/',
	  beforeSend: function()
	  {
	  	$("#submitbutton").attr("disabled","disabled");
	  	$("#ajaxload").show();
	  },
	  
	  complete: function()
	  {
	  	$("#submitbutton").removeAttr("disabled");
	  	$("#ajaxload").hide();
	  },
	  success: function(data, textStatus)
	  {
	     if(typeof data.captcha !== 'undefined')
	     {
	     	if(data.captcha == '')
	     	{
	     		if(captcha_id.val())
	     		{
	     			captcha_row.hide("slow");
	     			captcha_id.val('');
	     		}
	     	}
	     	else
	     	{
	     		var old_captcha = captcha_id.val();
	     		
	     		captcha_id.val(data.captcha);
	     		
	     		captcha.val('');
	     		
	     		captcha_img.attr("src", captcha_img.attr("src").replace(old_captcha, data.captcha));
	     	}
	     }
	     
	     if(data.error)
	     {
	     	return postcommenterror(data.error);
	     }
	     
	     if(data.done)
	     {
	     	comment_text.val('');
	     	
	     	postcommentdone();
	     	
	     	loadcomments(1);
	     	
	     	return false;
	     }
	     
	     return false;
	  },
	  error: function(xhr, textStatus, errorThrown)
	  {
		return postcommenterror("Ошибка соединения с сервером");
	  },
	  cache: false,
	  data: {
	  			action: "postcomment",
	  			nid: news_id,
	  			commenter_name: commenter_name.val(),
	  			commenter_email: commenter_email.val(),
	  			comment_text: comment_text.val(),
	  			captcha: captcha.val(),
	  			captcha_id: captcha_id.val()
	  		},
	  dataType: "json"
	});
	
	return false;
}

function postcommenterror(text)
{
	$("#errorrow").empty().append(text).fadeIn("slow");
	
	var timeout = setTimeout(function(){ $("#errorrow").fadeOut("slow"); clearTimeout(timeout); }, 2000);
	
	return false;
}

function postcommentdone()
{
	$("#donerow").fadeIn("slow");
	
	var timeout = setTimeout(function(){ $("#donerow").fadeOut("slow"); clearTimeout(timeout); }, 1000);
	
	return false;
}

function postcontactform()
{
	var author_name  = $("#author_name");
	var author_email = $("#author_email");
	var send_message = $("#send_message");
	var captcha_img	 = $("#captcha_img");
	var captcha_id	 = $("#captcha_id");
	var captcha		 = $("#captcha");
	var base_url	 = $("#base_url").val();
	
	if(!$.trim(author_name.val()) || !$.trim(author_email.val()) || !$.trim(send_message.val()))
	{
		return postcommenterror("Не заполнены обязательные поля");
	}
	
	if(send_message.val().length > max_message_length)
	{
		return postcommenterror("Текст комментария слишком длинный, допустимо максимум " + max_message_length + " симв.");
	}
	
	if(captcha_id.val() && !$.trim(captcha.val()))
	{
		return postcommenterror("Введите защитный код");
	}
	
	$.ajax({
	  type: 'post',
	  url: base_url,
	  beforeSend: function()
	  {
	  	$("#submitbutton").attr("disabled","disabled");
	  	$("#ajaxload").show();
	  },
	  
	  complete: function()
	  {
	  	$("#submitbutton").removeAttr("disabled");
	  	$("#ajaxload").hide();
	  },
	  success: function(data, textStatus)
	  {
	     if(typeof data.captcha !== 'undefined')
	     {
	     	var old_captcha = captcha_id.val();
	     		
	     	captcha_id.val(data.captcha);
	     		
	     	captcha.val('');
	     		
	     	captcha_img.attr("src", captcha_img.attr("src").replace(old_captcha, data.captcha));
	     }
	     
	     if(data.error)
	     {
	     	return postcommenterror(data.error);
	     }
	     
	     if(data.done)
	     {
	     	send_message.val('');
	     	
	     	postcommentdone();
	     	
	     	return false;
	     }
	     
	     return false;
	  },
	  error: function(xhr, textStatus, errorThrown)
	  {
		return postcommenterror("Ошибка соединения с сервером");
	  },
	  cache: false,
	  data: {
	  			do_post_form: 1,
	  			author_name: author_name.val(),
	  			author_email: author_email.val(),
	  			send_message: send_message.val(),
	  			captcha: captcha.val(),
	  			captcha_id: captcha_id.val()
	  		},
	  dataType: "json"
	});
	
	return false;
}