$(function(){
	var _next = {ok:false},
		_activeID = 0,
		_inProgress = false,
		_prev = {thumb:new Image(),votes:0};

	var loader = {
		show : function(){
			$('#content').attr('innerHTML','').css('backgroundImage','url(http://css.static.lolkot.ru/images/loader.gif)');
		},
		hide : function(){
			$('#content').attr('innerHTML','').css('backgroundImage','none');
		}		
	};
	
	function updateImgInfo(data){
		loader.show();
		_activeID = _next.id;
		preloadNext(false);
		var img = new Image();
		img.onload = function(){
			loader.hide();
			$('#content').css('backgroundImage','url('+img.src+')');
			if(data.userid>0){
				$('#voteauthor').attr('innerHTML','<a href="http://lolkot.ru/user/'+data.userid+'/" target="_blank">'+data.username+'</a>');
			}else{
				data.username = data.username=='' ? '<em>аноним</em>' : data.username;
				$('#voteauthor').attr('innerHTML',data.username);
			}
			if(data.galleryid>0){
				$('#voteredolink').attr('innerHTML','<a href="http://lolkot.ru/lolmixer/#'+data.galleryid+'" target="_blank">Переделать!</a>').css('display','block');
			}else{
				$('#voteredolink').css('display','none');
			}
			$('#votedate').attr('innerHTML',data.date);	
			
			if(_prev.thumb.src!=''){
				$('#prevvote').css('display','block');
				if(_prev.votes<0){
					$('#prevvoteresult>span').removeClass('positive').addClass('negative').attr('innerHTML',_prev.votes);
				}else if (_prev.votes>0){
					$('#prevvoteresult>span').removeClass('negative').addClass('positive').attr('innerHTML','+'+_prev.votes);
				}else{
					$('#prevvoteresult>span').removeClass('positive').removeClass('negative').attr('innerHTML',_prev.votes);
				}
				$('#prevvoteimage').css('backgroundImage','url('+_prev.thumb.src+')');	
			}else{
				$('#prevvote').css('display','none');
			}
			_prev.thumb.src = 'http://lolkot.ru/voting/sm.php?src='+encodeURIComponent(data.url);
			_prev.votes = data.votesyes-data.votesno;
		}
		img.src = data.url;
	}	
	
	function preloadNext(display){
		$.ajax({
			type: 'POST',
			url: 'http://lolkot.ru/voting/act.php',
			data: 'act=load&id='+_activeID,
			success: function(msg){
				_next = eval('('+msg+')');
				if(_next.ok){
					if(display){
						updateImgInfo(_next);
					}else{
						var img = new Image(); 
						img.src = _next.url;
					}		
					_inProgress = false;
				}else{
					loader.hide();
					$('#content').attr('innerHTML','Лолкотов больше нет... Заходите позже и или <a href="http://lolkot.ru/lolmixer/">сделайте прикол</a> сами!!');
				}
			}
		});
	}
	
	function action(){
		var act = $(this).attr('id').replace('vote','');
		if(_inProgress){
			return;	
		}
		if(act=='report'){
			if(!confirm('Уведомить администрацию сайта о нецензурном или грубом материале?')){
				return;
			}
		}else{
			loader.show();
		}
		_inProgress = true;
	
		$.ajax({
			type: 'POST',
			url: 'http://lolkot.ru/voting/act.php',
			data: 'act='+act+'&id='+_activeID,
			success: function(msg){
				if(act!='report'){
					_prev.votes += (act=='yes') ? 1 : (act=='no') ? -1 : 0;				
					if(_next.ok){
						updateImgInfo(_next);
					}else{
						loader.hide();
						$('#content').attr('innerHTML','Лолкоты закончились... Заходите позже!');
					}
				}
			}
		});					
	}	
	
	$('#voteskip').click(action);
	$('#voteyes').click(action);
	$('#voteno').click(action);
	$('#votereport').click(action);
	preloadNext(true);
});
