$(function() {
	
	/* question voting */
	var voteQ=function()
	{
        var id = $(this).parents('.question').attr('id').substring(9);
		var rate = ($(this).hasClass("linkYes") ? 'yes' : 'no');
		
		var v=$(this).parents('.votes').addClass('loading');
		
		$(v).load('/q/'+id+'/'+rate+'/', null, function(){
			$(v).removeClass('loading');
		});
	} 
    $(".question .linkYes").click(voteQ);
    $(".question .linkNo").click(voteQ);
	
	
	/* question admin */
	$(".censorQuestion").click(function(){
		var q = $(this).parents('.question');
		$('textarea.editQuestion',q).css('display','block').removeAttr("disabled");
		$('h3 .what',q).css('display','none');
	});

	/* fact voting */
	var voteF=function()
	{
        var id = $(this).parents('.fact').attr('id').substring(5);
		var rate = ($(this).hasClass("linkYes") ? 'yes' : 'no');
		
		var v=$(this).parents('.votes').addClass('loading');
		
		$(v).load('/faktai/vote/'+id+'/'+rate+'/', null, function(){
			$(v).removeClass('loading');
		});
	} 
    $(".fact .linkYes").click(voteF);
    $(".fact .linkNo").click(voteF);
	
	/* fact admin */
	$('form.filter input[type=radio]').change(function(){
		
		$(this).parents('form').submit();
		
	});
	
	var recolor=function(ul)
	{
		var c = $(ul).children();
		for (var i=0; i < c.length; i++) {
			$(c[i]).removeClass('r0');
			$(c[i]).removeClass('r1');
			$(c[i]).addClass('r'+(i%2));
		}
	}
	
	var changeFactStatus=function(){
		
		var query = location.href.indexOf('?')>-1 ? location.href.substring(location.href.indexOf('?')) : '';
		
		var ok = $(this).hasClass('fApprove') ? 1 : -1;
		var li = $(this).parents('.fact');
		var id = li.attr('id').substring(5);
		
		var ul = $(this).parents('ul.facts');
		$.getJSON('/fadmin/'+id+'/'+ok+'/'+query, null, function(data){
			// if viewing filtered - try to get next item
			if (!ul.hasClass('all')) {
				$(li).remove();
				//append next item, if available
				if (data) {
					$(ul).append(data.fact).find('.fact .fApprove, .fact .fDeny').click(changeFactStatus);
				}
				
				//no items available - move to previous page, or reload
				if ($(ul).children().length==0) {
					var page = $('ul.paging li.active a').html() || 1;
					if (location.href.match(/page\=(\d+)/) && page > 1) {
						location.href=location.href.replace(/page\=(\d+)/,"page="+(page-1));
					} else {
						location.reload();
					}
				
				//items available - recolour
				} else {
					recolor(ul);
				}
			
			// if viewing existing - redo it
			} else {
				var id = $(li).attr('id');
				$(li).replaceWith(data.fact);
				$('#'+id+'.fact .fApprove, #'+id+'.fact .fDeny').click(changeFactStatus);
				recolor(ul);
			}
		});
		
	};
	
	$('.fact .fApprove, .fact .fDeny').click(changeFactStatus);

	var host=location.host;
	var nextComments=function() {
		var hash=$(this).attr('href');
		var url='http://'+host+'/'+hash.substring(hash.indexOf('#')+1);

		var parent=$(this).parents('.blog_comments');
		var mainUl=$('ul', parent);
		var more=$('div.more', parent);
		
		$(this).addClass('loading');
		$.get(url,null, function(response) {
			var tmp=document.createElement('div');
			var r = $(response).appendTo(tmp);

			more.replaceWith($('div.more', tmp));
			hookComments();

			var list=$('ul', tmp).children();
			$(list).hide();
			mainUl.append(list);
			$(list).fadeIn(500);
			location.href='#'+$(list[0]).attr('id');
		});
		return false;
	}
	var hookComments=function() {
		$('.blog_comments .more a').click(nextComments); 
	};
	hookComments();

});
