// Infos de la 1ère news
var id_news_1;
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;

// Infos de la 2ème news
var id_news_2;
var image_url_news_2;
var thumbnail_url_news_2;
var title_url_news_2;
var titre_news_2;
var texte_news_2;
var date_news_2;
var e_image_news_2;

var debug = false;
var docXML;									// document XML chargé
var num_show = 1;							// numéro du slideshow 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', getXMLNews);

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=home";

	var request = new Request({
							method    : sMeth,
							url       : sFile,
							encoding  : sEncoding,
							onSuccess : function(responseText, responseXML){
									docXML  = responseXML;
									docText = responseText;
									do_slide_show.delay(1000);
								},
							onFailure : function(){
									if (debug){
										alert("HTTP REQUEST FAILED...");
									}
								}
							});
	request.send(sQuery);
}
function do_slide_show()
{
	var image_path = "http://" + http_host;
	var num_news_1 = 0;
	var num_news_2 = 0;
	un_seul = false;
	
	var lignesXML = docXML.getElementsByTagName("actu");
	var nb_news = lignesXML.length;

	if (nb_news == 0){
		// XML Vide
		return;
	}
	else{
		num_news_1 = num_show * 2;
		num_news_2 = num_news_1 + 1;
	}
	
	if (num_news_1 > nb_news - 1){
		// on repars du début
		num_news_1 = 0;
		num_news_2 = num_news_1 + 1;
		num_show = 0;
	}
	
	if (num_news_1 == nb_news - 1){
		// correspond au dernier
		// pas de 2ème news
		un_seul = true;
	}
	
	// informations concernant la 1ère news
	for (i = 0; i < lignesXML[num_news_1].childNodes.length; i++)
	{
		if (lignesXML[num_news_1].childNodes[i].nodeType == 1)
		{
			var nodeName = lignesXML[num_news_1].childNodes[i].nodeName;
			if (nodeName == "id"){
				id_news_1 = lignesXML[num_news_1].childNodes[i].firstChild.nodeValue;
			}
			else if (nodeName == "imageurl"){
				image_url_news_1 = image_path + lignesXML[num_news_1].childNodes[i].firstChild.nodeValue;
			}
			else if (nodeName == "thumbnailurl"){
				thumbnail_url_news_1 = image_path + lignesXML[num_news_1].childNodes[i].firstChild.nodeValue;
			}
			else if (nodeName == "titleurl"){
				title_url_news_1 = lignesXML[num_news_1].childNodes[i].firstChild.nodeValue;
			}
			else if (nodeName == "date"){
				date_news_1 = lignesXML[num_news_1].childNodes[i].firstChild.nodeValue;
			}
			else if (nodeName == "titre"){
				titre_news_1 = lignesXML[num_news_1].childNodes[i].firstChild.nodeValue;
			}
			else if (nodeName == "texte"){
				texte_news_1 = lignesXML[num_news_1].childNodes[i].firstChild.nodeValue;
			}
		}
	}
	
	
	
	// Chargement de la 1ère image
	e_image_news_1 = new Asset.image(thumbnail_url_news_1, {
															id      : 'visuel_news_1',
															title   : titre_news_1,
															onload  : function(){
																	if (un_seul){
																		fade_out();
																	}
																},
															onerror : function(){
																	fade_out();
																	if (debug){
																		alert("impossible de charger l'image 1 => "+thumbnail_url_news_1);
																	}
																	return;
																}
															});
	// si il y a plusieurs news
	if (!un_seul)
	{
		// informations concernant la 2ème news
		for (i = 0; i < lignesXML[num_news_2].childNodes.length; i++)
		{
			if (lignesXML[num_news_2].childNodes[i].nodeType == 1)
			{
				var nodeName = lignesXML[num_news_2].childNodes[i].nodeName;
				if (nodeName == "id"){
					id_news_2 = lignesXML[num_news_2].childNodes[i].firstChild.nodeValue;
				}
				else if (nodeName == "imageurl"){
					image_url_news_2 = image_path + lignesXML[num_news_2].childNodes[i].firstChild.nodeValue;
				}
				else if (nodeName == "thumbnailurl"){
					thumbnail_url_news_2 = image_path + lignesXML[num_news_2].childNodes[i].firstChild.nodeValue;
				}
				else if (nodeName == "titleurl"){
					title_url_news_2 = lignesXML[num_news_2].childNodes[i].firstChild.nodeValue;
				}
				else if (nodeName == "date"){
					date_news_2 = lignesXML[num_news_2].childNodes[i].firstChild.nodeValue;
				}
				else if (nodeName == "titre"){
					titre_news_2 = lignesXML[num_news_2].childNodes[i].firstChild.nodeValue;
				}
				else if (nodeName == "texte"){
					texte_news_2 = lignesXML[num_news_2].childNodes[i].firstChild.nodeValue;
				}
			}
		}
		// Chargement de la 2ème image
		e_image_news_2 = new Asset.image(thumbnail_url_news_2, {id      : 'visuel_news_1',
																title   : titre_news_2,
																onload  : function(){
																		fade_out();
																	},
																onerror : function(){
																		fade_out();
																		if (debug){
																			alert("impossible de charger l'image 2 => "+thumbnail_url_news_2);
																		}
																		return;
																	}
																});
	}
	num_show++;
}
function remove_child_nodes(element){
	while (element.childNodes.length > 0){
		element.removeChild(element.firstChild);
	}
}
// losque l'image est chargée
function fade_out(){
	var slide_show = $("slide_show");
	var fx         = new Fx.Morph(slide_show, oFadeOut);
	fx.addEvent ("complete", change_news);
	
	// j'assigne un délai avant le prochain changement
	do_slide_show.delay (inter);
	fx.start({'opacity': 0});
}
function fade_in(){
	var slide_show = $("slide_show");
	var fx         = new Fx.Morph(slide_show, oFadeIn);
	fx.start({'opacity': 1});
}
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 1
	// div de la vignette
	var div_thumbnail_news_1 = new Element ("div", {'class' : 'vignette-news'});
	div_thumbnail_news_1.inject($("slide_show"));
	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'});
	// date de la news
	var div_date_news_1 = new Element ("div", {'class' : 'uppercase'}).appendText(date_news_1);
	div_date_news_1.inject(div_texte_news_1);	
	div_texte_news_1.appendText(texte_news_1);
	var br_news_1 = new Element ("br");
	br_news_1.inject(div_texte_news_1);
	// lien vers les news
	if (lang == "fr"){
		var a_more_news_1 = new Element ("a", {'href' : link_news}).appendText('lire la suite');
	}
	else{
		var a_more_news_1 = new Element ("a", {'href' : link_news}).appendText('more');
	}
	a_more_news_1.inject(div_texte_news_1);	
	div_texte_news_1.inject($("slide_show"));

	// ---------------------------------------------- NEWS 2
	if (!un_seul){
		// séparateur
		var div_spacer = new Element ("div", {'class' : 'spacer'});
		div_spacer.inject($("slide_show")).set("text", "&nbsp;");
		// div de la vignette
		var div_thumbnail_news_2 = new Element ("div", {'class' : 'vignette-news'});
		div_thumbnail_news_2.inject($("slide_show"));
		e_image_news_2.inject(div_thumbnail_news_2);
		// div de la partie texte
		var div_texte_news_2 = new Element ("div", {'class' : 'vignette-texte'});
		// date de la news
		var div_date_news_2 = new Element ("div", {'class' : 'uppercase'}).appendText(date_news_2);
		div_date_news_2.inject(div_texte_news_2);	
		div_texte_news_2.appendText(texte_news_2);
		var br_news_2 = new Element ("br");
		br_news_2.inject(div_texte_news_2);
		// lien vers les news
		if (lang == "fr"){
			var a_more_news_2 = new Element ("a", {'href' : link_news}).appendText('lire la suite');
		}
		else{
			var a_more_news_2 = new Element ("a", {'href' : link_news}).appendText('more');
		}
		a_more_news_2.inject(div_texte_news_2);	
		div_texte_news_2.inject($("slide_show"));
	}
	
	fade_in.delay(500);
}