var _speed = 500;
var HTML_save = Array();
var currentTour = 0;
var currentTourAnim = null;
var timerAnim = null;
var animCounter = 0;
var animCounter_max = 0;
var i_attaquant = 0;
var i_attaque = 0;
var _autoplay = true;
var isPlaying = false;
var minTourTime = 500;
var minTourStart = 0;
var force_autoplay = false;
var tmpEnleve = Array();

var phrasesType = Array();
phrasesType['attaque_dist_0'] = "$1 massacrent à distance $2 !";
phrasesType['attaque_dist_1'] = " $1 tuent à distance $2 !";
phrasesType['attaque_cac_0'] = "$1 brisent de leur lame $2 !";
phrasesType['attaque_cac_1'] = "$1 tuent au corps à corps $2 !";


$(function() {
	if(typeof(JS_ANIM)=='undefined')
	{
		$('#bloc_vitesse_slider').hide();
		return;
	}
	$( "#slider" ).slider({
		value:3000-_speed,
		min: 100,
		max: 3000,
		step: 20,
		slide: function( event, ui ) {
			_speed = 3000 - ui.value;
		}
	});
});


function clickGotoTour(tour)
{
	force_autoplay=true; 
	gotoTour(tour);
}

function gotoTour(tour)
{
	if(typeof(JS_ANIM)=='undefined')
	{
				
		for(i=0;i<11;i++)
		{
			if(i!=tour && document.getElementById("tour_"+i))
				document.getElementById("tour_"+i).style.display = "none";
			else if(document.getElementById("tour_"+i))
			{
				document.getElementById("tour_"+i).style.display = "block";
			}
		}
		return;
	}
	
	
	if(isPlaying) 
		return;
	
	timerAnim = clearInterval(timerAnim);
		
	$('.controls .bouton').hide();
	
	isPlaying = true;
	currentTour = tour;
	
	$('#tour_'+currentTour+' .bataille').html(HTML_save[currentTour]);
	
	d = new Date();
	minTourStart = d.getTime();
	
	if(tour>0 && (_autoplay || force_autoplay))
	{
		currentTourAnim = JS_ANIM[tour];
		
		if(!currentTourAnim)
		{
			endAnimTour();
			return;
		}
		
		if(!currentTourAnim["attaque"])
			currentTourAnim["attaque"] = Array();
		
		if(!currentTourAnim["attaquant"])
			currentTourAnim["attaquant"] = Array();
		
		animCounter_max = currentTourAnim["attaque"].length + currentTourAnim["attaquant"].length;
		animCounter = 0;
		i_attaquant = 0;
		i_attaque = 0;
		
		/*timerAnim = setInterval(animTour, _speed);*/
		timerAnim = setTimeout(animTour, _speed);
	}	
	else
	{
		endAnimTour();
	}
}


function animTour()
{
	i_current = 0;
	
	if((currentTourAnim['attaque'].length - i_attaque) > (currentTourAnim['attaquant'].length - i_attaquant) && currentTourAnim['attaque'].length>i_attaque)
	{
		joueur = 'attaque';
		i_current = i_attaque;
		i_attaque++;
	}
	else
	{
			joueur = 'attaquant';
			i_current = i_attaquant;
			i_attaquant++;
	}
	
	if(currentTourAnim[joueur][i_current])
	{
		infos = currentTourAnim[joueur][i_current].split(';');
		
		if(infos[0]>0)
		{
			if(infos[1]!='batiment')
			{
				
				com = phrasesType[infos[4]];
				com = com.split('$1').join(infos[5]);
				com = com.split('$2').join(infos[3]);
				
				$('#commentaireBataille_'+(currentTour-1)).html(com);
				
				bloc = $('#tour_'+(currentTour-1)+' #'+joueur+'_'+infos[1]+'_'+infos[2]);
				
				if(!bloc.find('span b').html())
				{
					bloc = $('#tour_'+(currentTour-1)+' #'+joueur+'_'+(parseInt(infos[1])+1)+'_'+infos[2]);
				}
				if(!bloc.find('span b').html())
				{
					bloc = $('#tour_'+(currentTour-1)+' #'+joueur+'_'+(parseInt(infos[1])+2)+'_'+infos[2]);
				}
				
				bloc.animate({ opacity: 1}, 50);
				
				num_actuel = 0;
				if(bloc.find('span b').html())
				{
					num_actuel = bloc.find('span b').html().split(' ').join('');
				
					if((num_actuel - infos[0])<=0)
					{
						bloc.fadeOut();
					}
					else
					{
						bloc.find('span b').html(num_actuel - infos[0]);
						bloc.animate({ opacity: 0.8}, 50);
					}
				}
			}
			else
			{
				bloc = $('#tour_'+(currentTour-1)+' #'+joueur+'_'+infos[1]+'_'+infos[2]);
				bloc.animate({ opacity: 1}, 50);
				
				if(bloc.find('.barre_vie div').css('width'))
				{
					if(infos[0]<=0)
					{
						bloc.fadeOut();
					}
					else
					{
						bloc.animate({ opacity: 0.8}, 50);
						bloc.find('.barre_vie div').animate({width:infos[0]+'%'}, 50);
					}
				}
			}
		}
	}
	
	animCounter++;
	
	if(animCounter == animCounter_max)
	{
		timerAnim = clearInterval(timerAnim);
		setTimeout(endAnimTour, _speed);
		return;
	}
	
	timerAnim = setTimeout(animTour, _speed);
}


function endAnimTour()
{
	d = new Date();
	if(d.getTime()-minTourStart < minTourTime && _autoplay)
	{
		setTimeout(endAnimTour, (minTourTime - (d.getTime()-minTourStart)));
		return;
	}
		
	$('.controls .bouton').fadeIn();
	
	
	isPlaying = false;
	
	for(i=0;i<11;i++)
	{
		if(i!=currentTour && document.getElementById("tour_"+i))
			document.getElementById("tour_"+i).style.display = "none";
		else if(document.getElementById("tour_"+i))
		{
			document.getElementById("tour_"+i).style.display = "block";
		}
	}
	
	next = (currentTour+1);
	if(_autoplay && document.getElementById("tour_"+next))
	{
		gotoTour(next);
	}
	else
		_autoplay = false;
}


