/**
 * Image-Slider
 * dépendance: JQUERY & JQUERY-UI
 */
var TIMEOUT_SLIDE_IMG			= 6; // timeout en seconde

/** @var structure DOM xml*/
var xml = null;
/** @var int index du dernier slide */
var indexSlide = -1;
/** @var boolean true si un effet est en cours */
var run = false;
/** @var array */
var tabImage = new Array();
/* @var indice poru le init */
var indice = 1;
/** @var boolean true si l'autorun des slide est en cours */
var autorun_continue = true;
/** @var boolean true si un effet est en cours */
var run = false;

/** @var int indice du slide */
var indexSlide = -1;

/** @var string url vers les images */
var imageUrl = '';

/**
 * Initialise ImageSlider
 * @todo si vous générer le fichier xml dynamiquement avec php, n'oubliez pas de préciser 'application/xml' comme content-type de réponse
 */
function imageSlider(xmlpath, imageUserUrl)
{
	imageUrl = imageUserUrl;
	if(imageUrl.charAt(imageUrl.length-1) != '/')
	{
		imageUrl += '/';
	}
	//init xml
	initXml(xmlpath);
}

/**
 * Initialise le composant par rapport au xml
 */
function initXml(xmlpath)
{
	$.ajax({
    	type: "GET",
    	url: xmlpath,
    	dataType: "xml",
    	success: function(xml) {
			$(xml).find('image').each(function(){
				var title = $(this).find('titre').text();
				var url = $(this).find('url').text();
				var temp = new Array(title, url);
				tabImage[indice] = temp;
				addItemBox();
				indice++;
			});
			initImg();
    	}
	});
}

function initImg()
{
	//init autorun
	autoRun();
	//go slide
	indexSlide = 1;
	setPagination(1);
	$("#background_slider").css("background-image", "url("+imageUrl+tabImage[indexSlide][1]+")");	
}

function addItemBox()
{
	$('#liste-pagination').append("<li id=\"pagination_"+indice+"\" onclick=\"javascript:slide("+indice+");\">"+indice+"</li>");
}

/**
 * Va au prochain slide
 */
function next()
{
	if(!run && autorun_continue)
	{
		run = true;
		var next = indexSlide+1;
		if(indexSlide >= tabImage.length-1){
			next = 1;
		}
		
		
		
		$('#background_slider').animate({
    		opacity: 0
  		}, 500, function() {
  			
  			
  			$("#background_slider").css("background-image", "url("+imageUrl+tabImage[next][1]+")");
  			setPagination(next);
  			$('#background_slider').animate({
    			opacity: 1
  			}, 500, function() {
  			
				run = false;
				indexSlide = next;
			});
		
		});
		//$("#background_slider").css("background-image", "url("+BASE_URL+"/library/image-slider/image/"+tabImage[next][1]+")");
		
	}
	
	
}

function slide(index)
{
	autorun_continue = false;
	if(!run && index != indexSlide)
	{
		run = true;
		setPagination(index);
		
		
		$('#background_slider').animate({
    		opacity: 0
  		}, 500, function() {
  			
  			$("#background_slider").css("background-image", "url("+imageUrl+tabImage[index][1]+")");
  			
  			$('#background_slider').animate({
    			opacity: 1
  			}, 500, function() {
  			
				indexSlide = index;
				run = false;
			});
		
		
  });
	
		
		

	}
}

function setPagination(index)
{
	//set class pagination
	$('#pagination_'  + indexSlide).removeClass('selected');
	$('#pagination_'  + index).addClass('selected');
}

/**
 * AutoRun
 */
function autoRun()
{
	if(autorun_continue)
	{
		setTimeout(
		function(){
			next();
			autoRun();
		}, 
		TIMEOUT_SLIDE_IMG * 1000);
	}
}

