jQuery('document').ready(function(){
	getToken();
});

function getToken(nuevo){
	if(nuevo==true){ 
		nuevo='&n=true';
	}
	else{
		nuevo='';
	}
	jQuery.get('http://olimpia.com.py/utils/fbfans/token.php'+nuevo, function(data){
		cargaFans(data);
	});
}

function cargaFans(token){
	
	jQuery.getJSON('https://graph.facebook.com/olimpiaparaguay/posts?&callback=?&client_id=146230172056253&'+token,function(data){ 
	//jQuery.getJSON('https://graph.facebook.com/olimpiacompy/posts?client_id=146230172056253&callback=&'+token,function(data){ 
		if(data.data.length<1){ getToken(true); return false; }
		jQuery.each(data.data, function(i,post){
			jQuery.each(post.likes.data, function(l,fblike){
				jQuery('#fbfans').append('<span><img border="0" src="http://graph.facebook.com/'+fblike.id+'/picture" rel="'+fblike.id+'" title="'+fblike.name+'"></span>');
			});
		});
		var fans=(jQuery('#fbfans').find('span').length);
		fans=2500*fans;
		var area=(parseInt(jQuery('#fbfans').css('width'))*parseInt(jQuery('#fbfans').css('height')));
		var faltan=Math.ceil((area-fans)/2500);
		var spans=jQuery('#fbfans').find('span');
		if(area>fans){
			while(faltan>0){
				faltan--;
				var imgs=jQuery('#fbfans').find('span');
				var azar=Math.floor(Math.random()*imgs.length);
				jQuery('#fbfans').append('<span>'+jQuery(imgs[azar]).html()+'</span>');
			}
		}
		else{
			var sobran=Math.ceil((fans-area)/2500);
			for(var i=0; i<sobran; i++){
				jQuery(spans[i]).remove()
			}
		}
		apagar();
		gogogo();
	});
}

function apagar(){
	var imgs=jQuery('#fbfans').find('img:not(:hidden)');
	var azar=Math.floor(Math.random()*imgs.length);
	jQuery(imgs).each(function(index) {
		if(azar==index){
			jQuery(this).fadeOut('slow');
		}
	});
}

function prender(){
	var imgs=jQuery('#fbfans').find('img:hidden');
	var azar=Math.floor(Math.random()*imgs.length);
	jQuery(imgs).each(function(index) {
		if(azar==index){
			jQuery(this).fadeIn('slow');
		}
	});
}

function gogogo(){ // LOOP QUE ARREGLA SOBRECARGA AL }USAR setTimeout/setInterval
		apagar();
		prender();
		setTimeout(gogogo, 300);
}

