function int(str){
    return ( parseInt(str) || 0 );
}

function inf_msg(str){
	$.gritter.add({
		title: 'Информация',
		text: str,
		image: ROOT_URL + 'img/interface/info.png'
	});	 
}
function err_msg(str){
	$.gritter.add({
		title: 'OOPS!',
		text: str,
		image: ROOT_URL + 'img/interface/error.png'
	});	 	
}

function strcut(str, str_max_len){
    str_max_len || (str_max_len=32);
    var dots = '\u2026';
    if (str_max_len<=dots.length) return str.length>str_max_len?str.substring(0, str_max_len):str;
    var str_max_left = Math.floor((str_max_len-dots.length)/2);
    var str_max_right = str_max_len - str_max_left - dots.length;
    if (str.length>str_max_len) str = str.substring(0, str_max_left) + dots + str.substring(str.length-str_max_right, str.length);
    return str;
}

function change_logo_bg_color(obj){
	if(!obj){
		obj = $("#site_logo");
	}else{
		obj = $(obj);
	}
	var colors = new Array();
	colors.push('#00aeef', '#3cb878', '#8781bd', '#fff200', '#f68e56', '#8c6239', '#ec008c', '#00aeef', '#111111', '#b4ce25', '#ed1c24');
	var last_color_number = obj.attr('last_color_number');
	if(!last_color_number || last_color_number>=colors.length-1){
		last_color_number = 0;
	}
	last_color_number++;
	obj.css('background', colors[last_color_number]).attr('last_color_number', last_color_number);
}

function more_feeds(section, newest){
	
	if(typeof(feeds_loading)!='undefined' && feeds_loading==1) return;
	
	var jtable = $("#feed_table");
	var offset = int( jtable.attr('offset') );
    var count =  12;
	offset = 12 + int(offset);
	$("#more_feeds").hide();
	$("#loading_feeds").show();
	$("#more_feeds_container").removeClass("color_block_2").addClass("color_block_3");
	feeds_loading = 1;
	$.post('/ajax/feed', {offset:offset, count:count, section:section, newest:newest}, function(data){
	   jtable.attr('offset', offset).append(data);
	    $("#loading_feeds").hide();
		$("#more_feeds").show();
		$("#more_feeds_container").removeClass("color_block_3").addClass("color_block_2");
		feeds_loading = 0;
		
		show_hide_feed_galleries_button();
	});
	
	return false;
}

function toggle_gallery(id, caller){
	var obj = $("#feed_gallery_"+id);
	var is_overflow = obj.css('overflow');
	
	if (is_overflow == 'hidden') {
	   obj.removeClass('feed_gallery');
	   obj.addClass('feed_gallery_no_overflow');
	   $(".show_photos", caller).hide();
	   $(".hide_photos", caller).show();
	}else{
       obj.removeClass('feed_gallery_no_overflow');
       obj.addClass('feed_gallery');
       $(".hide_photos", caller).hide();
       $(".show_photos", caller).show();	   	   	   
	}
}

function show_hide_feed_galleries_button()
{
	$(".feed_gallery").each(function(i,v)
	{
		var photo_group = $(v);
		var total = $("li", photo_group).length;
		var show_hide_link = $(photo_group).next(".show_hide_feed_gallery");

		if(!show_hide_link.size())
		{
			show_hide_link = $("<div class='show_hide_feed_gallery' />")
			.html( "<span class='ajax'>"+$.lang('Show all photos (%s)', total)+"</span>" )
			.insertAfter(photo_group)
			.click(function(){
								
				if (photo_group.css('overflow') == 'hidden') 
				{
				   photo_group.removeClass('feed_gallery');
				   photo_group.addClass('feed_gallery_no_overflow');
				   $("span",show_hide_link).text($.lang('Hide'));
				}
				else
				{
			       photo_group.removeClass('feed_gallery_no_overflow');
			       photo_group.addClass('feed_gallery');
				   $("span",show_hide_link).text( $.lang('Show all photos (%s)', total) );
				}				
				
			});
			
			if(photo_group.attr('offsetHeight') != photo_group.attr('scrollHeight')){
				show_hide_link.show();
			}else{
				show_hide_link.hide();
			}		
		}
		
		
	});
}



function confirmation(str){
	var answer = confirm(str);
	if(!answer) return false;
}


function comment_reply(id_comment)
{
	var cmnt = $('#comment_item_' + id_comment);
	if (id_comment == 'main') {
		$("#add_form_lite").appendTo(cmnt).css('float', 'none');
		$('#comment_item_main_link').hide();
	}
	else {
		$("#add_form_lite").appendTo(cmnt).css('float', 'right').hide().slideDown();
		$('#comment_item_main_link').show();
	}
	$("#add_form_lite input[name=to_id]").val(id_comment);
	$("#add_form_lite textarea").focus();
	return false;
}

function debug_log(str){
	return false;
	if(DEBUG)
	{
		//console.log(str);	
	}
}

function update_feed_opinion(id_feed, new_num, vote){
    //points_middle
	var container = $("#feed_points_"+id_feed);
	var vote_num_span = $(".points_middle", container);
    
    vote_num_span.html(new_num);
	vote_num_span.attr('voted',  1);
				
	var new_class = 'points_middle_neytral';
	
	if(new_num>0)
	{
		new_class = 'points_middle_good';
	}
	else if	(new_num<0)
	{
		new_class = 'points_middle_bad';
	}
	
	if(vote>0){
		$(".plus", container).addClass('plus_set');
        $(".minus_set", container).removeClass('minus_set').addClass('minus');
	}else{
		$(".minus", container).addClass('minus_set');
        $(".plus_set", container).removeClass('plus_set').addClass('plus');
	}
	
	vote_num_span.removeClass().addClass('points_middle').addClass(new_class);        
}

function feed_opinion(vote,id_feed,user_opinion)
{
	var container = $("#feed_points_"+id_feed);
	var vote_num_span = $(".points_middle", container);

	if(parseInt(user_opinion)==0){
		err_msg('Нельзя голосовать за своиже посты');
		return false;
	}
	
	var num = parseInt(vote_num_span.html());
	var new_num = parseInt(num)+parseInt(vote);

	if(new_num==0) new_num = '0';
	update_feed_opinion(id_feed, new_num, vote);		
	
	$.post(ROOT_URL + '/ajax/feed_opinion', {vote: vote, id_feed: id_feed}, function(data){
		var data =  eval( "(" + data + ")" );
        
        if (parseInt(data['error'])>0) 
        {
				err_msg(data['err_msg']);
		}
        else
        {
            update_feed_opinion(data['id_feed'], data['new_num'], data['vote']);        
        }
		
	}, 'JSON');
	
	return false;
}


function show_feed_voters(id_feed)
{
    $.post(ROOT_URL + 'ajax/feed_voters', {id_feed:id_feed}, function(data){
        $("#feed_points_"+id_feed).append(data);
        $(window).one('click',function(){
            $("#feed_voters_"+id_feed).remove();
        });
    });    
}


function comment_vote(vote, id_comment)
{
	var vote_num_container = $("#comment_opinion_"+id_comment);
	
	var num = parseInt(vote_num_container.html());
	var new_num = parseInt(num)+parseInt(vote);
	if(new_num==0) new_num = '0';
	
	update_comment_opinion(id_comment, new_num, vote);		
	
	$.post(ROOT_URL + '/ajax/comment_opinion', {vote: vote, id_comment: id_comment}, function(data){
		var data =  eval( "(" + data + ")" );
        
        if (parseInt(data['error'])>0) 
        {
				err_msg(data['err_msg']);
		}
        else
        {
        	update_comment_opinion(data['id_comment'], data['new_num'], data['vote']);
        }
		
	}, 'JSON');
	
	return false;	
}

function update_comment_opinion(id_comment, new_num, vote)
{
	var container = $("#comment_voting_"+id_comment);
	var vote_num_container = $("#comment_opinion_"+id_comment);
    

	
	var new_class = 'points_middle_neytral';
	
	if(new_num>0)
	{
		new_class = 'points_middle_good';
		new_num = "+" + new_num;
	}
	else if	(new_num<0)
	{
		new_class = 'points_middle_bad';
	}
	
	vote_num_container.html(new_num);
	
	if(vote>0){
		$(".comment_plus", container).addClass('comment_plus_set');
        $(".comment_minus_set", container).removeClass('comment_minus_set').addClass('comment_minus');
	}else{
		$(".comment_minus", container).addClass('comment_minus_set');
        $(".comment_plus_set", container).removeClass('comment_plus_set').addClass('comment_plus');
	}
	
	vote_num_container.removeClass().addClass('points_middle').addClass(new_class);	
}


// Jquery plugining in

(function($){
	function field_notice(str)
	{
		return this.filter(':text').each(function(){
		
			var field = $(this), 
				notice_style = 'field_notice',
				notice = field.prev('.'+notice_style);
						
			if(!str && field.attr('title')){
				notice_str = field.attr('title');
			}else if(str){
				field.attr('title', str);
				notice_str = str;
			}
			
			if (notice.size()) {
				notice.text(notice_str);
			} else {
			    notice = $('<div class="'+ notice_style +'" />').text(notice_str).insertBefore(field).
					css({
				    'position': 'absolute',
			     'line-height': field.outerHeight() + 'px',
					   'width': field.outerWidth()  + 'px',
					  'height': field.outerHeight() + 'px',
				   'font-size': field.css('font-size'),
				 'text-indent': field.css('border-left-width'),
				 'font-family': field.css('font-family')
				}).click(function(){
					notice.hide();
					field.focus();
				});
				
				field.bind('blur.field_notice', function(){
					notice[field.val().length?'hide':'show']();
				}).bind('focus.field_notice', function(){
					notice.hide();
				}).triggerHandler('blur.field_notice');		
			}
		});
	}
	
    $.fn.extend({
  	  'field_notice' : field_notice
      });	

})(jQuery);