// Infos sur la news
var image_url_news_1;
var thumbnail_url_news_1;
var title_url_news_1;
var titre_news_1;
var texte_news_1;
var date_news_1;
var e_image_news_1;

var running = true;
var cliquable = true;

var debug = false;
var docXML;									// document XML chargé
var lignesXML;								// document XML chargé
var nb_news = 0;							// Nombre de news à faire défiler
var news_current_num = 0;					// numéro de la news courant
var inter   = 10000;							// Intervalle entre changement 5s
var un_seul = false; 						// affiche une seule news, sinon deux

// configuration des effets
var durationIn  = 1500; 					// durée du fadeIn
var durationOut = 1000; 					// durée du fadeOut
var fxFunction  = Fx.Transitions.linear;	// transition

var oFadeIn = {
			duration   : durationIn,
			wait       : false,
			transition : fxFunction
			};
var oFadeOut = {
			duration   : durationOut,
			wait       : false,
			transition : fxFunction
			};
window.addEvent('domready', function(){
	if ($("btn_last"))
	{
		$("btn_last").addEvent("click", function(){
			pass_slide_show(-1);
		});								
	}
	if ($("btn_next"))
	{
		$("btn_next").addEvent("click", function(){
			pass_slide_show(1);
		});								
	}
	getXMLNews();
});
// Charge le document XML
function getXMLNews()
{
	var sPath     = "http://" + http_host + racine_site;
	var sFile     = sPath + "includes/ajax/news_xml.php";
	var sMeth     = "get";
	var sEncoding = "utf-8";
	var sQuery    = 'lang='+lang+"&type=news";

	var request = new Request({
							method    : sMeth,
							url       : sFile,
							encoding  : sEncoding,
							onSuccess : function(responseText, responseXML){
									docXML  = responseXML;
									lignesXML = docXML.getElementsByTagName("actu");
									nb_news = lignesXML.length;
									docText = responseText;
									do_slide_show.delay(inter);
								},
							onFailure : function(){
									if (debug){
										alert("HTTP REQUEST FAILED...");
									}
								}
							});
	request.send(sQuery);
}
// gère le changement d'image du diaporama
function do_slide_show()
{
	// si c'est le diaporama
	if (running){
		news_current_num++;
		if (news_current_num >= nb_news){
			// correspond au dernier
			// retour au début
			news_current_num = 0;
		}
		get_news_informations();
	}
}
// gère le changement d'image avec les flèches
function pass_slide_show(direction)
{
	// changement autorisé
	if (cliquable){
		//alert(direction);
	
		running = false;
		news_current_num = news_current_num + direction;
		if (news_current_num  >= nb_news){
			news_current_num = 0;
		}
		if (news_current_num < 0){
			news_current_num = nb_news - 1;
		}
		get_news_informations();
	}
}
// Lis les informations contenues dans le XML
function get_news_informations()
{
	var image_path = "http://" + http_host;
	if (nb_news == 0){
		// XML Vide
		if (debug){
			alert("XML vide");
		}
		return;
	}
	// Informations concernant la 1ère news
	for (i = 0; i < lignesXML[news_current_num].childNodes.length; i++)
	{
		if (lignesXML[news_current_num].childNodes[i].nodeType == 1)
		{
			var nodeName = lignesXML[news_current_num].childNodes[i].nodeName;
			if (nodeName == "id"){
				id_news_1 = lignesXML[news_current_num].childNodes[i].firstChild.nodeValue;
			}
			else if (nodeName == "imageurl"){
				image_url_news_1 = image_path + lignesXML[news_current_num].childNodes[i].firstChild.nodeValue;
			}
			else if (nodeName == "thumbnailurl"){
				thumbnail_url_news_1 = image_path + lignesXML[news_current_num].childNodes[i].firstChild.nodeValue;
			}
			else if (nodeName == "titleurl"){
				title_url_news_1 = lignesXML[news_current_num].childNodes[i].firstChild.nodeValue;
			}
			else if (nodeName == "date"){
				date_news_1 = lignesXML[news_current_num].childNodes[i].firstChild.nodeValue;
			}
			else if (nodeName == "titre"){
				titre_news_1 = lignesXML[news_current_num].childNodes[i].firstChild.nodeValue;
			}
			else if (nodeName == "texte"){
				texte_news_1 = lignesXML[news_current_num].childNodes[i].firstChild.nodeValue;
			}
		}
	}
	// Chargement de l'image
	e_image_news_1 = new Asset.image(image_url_news_1, {id      : 'visuel_news_1',
														title   : titre_news_1,
														onload  : function(){
																		fade_out();
																	},
														onerror : function(){
																		fade_out();
																		if (debug){
																			alert("impossible de charger l'image 1 => "+thumbnail_url_news_1);
																		}
																		return;
																	}
	});	
}
// supprime tous les enfants d'un élément
function remove_child_nodes(element){
	while (element.childNodes.length > 0){
		element.removeChild(element.firstChild);
	}
}
// lorsque l'image est chargée
// Gestion de l'effet Fade OUT
function fade_out(){
	var slide_show = $("slide_show_news");
	var fx = new Fx.Morph(slide_show, oFadeOut);
	fx.addEvent ("complete", function(){
		cliquable = true;
		change_news();
	});
	fx.addEvent ("start", function(){
		cliquable = false;
	});
	fx.start({'opacity': 0});
}
// Gestion de l'effet Fade IN
function fade_in(){
	var slide_show = $("slide_show_news");
	var fx = new Fx.Morph(slide_show, oFadeIn);
	fx.addEvent ("complete", function(){
		cliquable = true;
		// j'assigne un délai avant le prochain changement
		// si je suis en mode diaporama
		if (running){
			do_slide_show.delay (inter);
		}
	});
	fx.addEvent ("start", function(){
		cliquable = false;
	});
	fx.start({'opacity': 1});
}
// gestion du changement de news
function change_news(element){
	var link_news = "http://" + http_host +  racine_site + lang+"/news.html";
	
	// on supprime tous lse enfants
	remove_child_nodes($("slide_show_news"));
	
	// ---------------------------------------------- NEWS 1
	// div de la vignette
	var div_thumbnail_news_1 = new Element ("div", {'class' : 'vignette-news-grand'});
	div_thumbnail_news_1.inject($("slide_show_news"));
	e_image_news_1.inject(div_thumbnail_news_1);
	// div de la partie texte
	var div_texte_news_1 = new Element ("div", {'class' : 'vignette-texte-grand'});
	// date de la news
	var div_date_news_1 = new Element ("div", {'class' : 'uppercase'}).appendText(titre_news_1);
	div_date_news_1.inject(div_texte_news_1);
	div_texte_news_1.appendText(date_news_1);
	var br_news_1 = new Element ("br");
	var br_news_2 = new Element ("br");
	br_news_1.inject(div_texte_news_1);
	br_news_2.inject(div_texte_news_1);
	div_texte_news_1.appendText(texte_news_1);
	div_texte_news_1.inject($("slide_show_news"));
	fade_in.delay(500);
}