/**
  * Fonctionnalités dynamiques AJAX
  * @category scripts
  *
  * @author Sébastien BEIRNAERT
  */

////////////////////////////////
// Fonctions AJAX principales //
////////////////////////////////
var xhr_global = null; // objet XMLHttpRequest globale à utiliser pour limiter le nombre de requêtes à 1

function getXhr(){
    var xhr = null; // objet XMLHttpRequest local à utiliser pour faire du multi-requête
	if(window.XMLHttpRequest) // Firefox et autres
	   xhr = new XMLHttpRequest();
	else if(window.ActiveXObject){ // Internet Explorer
	   try {
                xhr = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                xhr = new ActiveXObject("Microsoft.XMLHTTP");
            }
	}
	else { // XMLHttpRequest non supporté par le navigateur
	   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
	   xhr = false;
	}
	return xhr
}

// Node cleaner
function go(c){ if(!c.data.replace(/\s/g,'')) c.parentNode.removeChild(c);}

function clean(d){
	var bal=d.getElementsByTagName('*');

	for(i=0;i<bal.length;i++){
		a=bal[i].previousSibling;
		if(a && a.nodeType==3)
			go(a);
		b=bal[i].nextSibling;
		if(b && b.nodeType==3)
			go(b);
	}
	return d;
}

// Recupérer une valeur précise dans le fichier XML généré
function getValue(tag, position)
{
    var value = reponse.getElementsByTagName(tag)[position].childNodes[0].nodeValue;
    while(value.indexOf('|') > -1) {value = value.replace('|','&');}

	return value;
}
//////////////////////////////
/////////////////////////////:



// AFFICHAGE CORPS ARTICLE COMPLET

/**
 *
 * @access public
 * @return void
 **/
function onClickLirePlusFullReport(id_article, element_lien)
{
	xhr_global = getXhr();
	// On défini ce qu'on va faire quand on aura la réponse
	xhr_global.onreadystatechange = function()
	{
		// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
		if(xhr_global.readyState == 4 && xhr_global.status == 200)
		{
			var docXML = clean(xhr_global.responseXML.documentElement);
   			var items = docXML.getElementsByTagName('donnee');
			var serializedtextfull = '';

			var corps = items.item(0).firstChild.data;
			for(i = 0; i < items.length; i++)
				serializedtextfull += docXML.getElementsByTagName("serializedtextfull")[i].firstChild.nodeValue;

			byId('fullCorpsArticle').innerHTML = serializedtextfull;
			element_lien.style.display = 'none';

			return false;
		}
	}

	xhr_global.open("POST","ajax2.php",true);
	// Pour le post
	xhr_global.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	xhr_global.send('page=report_article&action=onClickLirePlusFullReport&id_article=' + id_article);
}

/**
 *
 * @access public
 * @return void
 **/
function displayLegendePhoto(url_photo)
{
	url_photo = url_photo.split('_');
	var dernier = url_photo.length-1;
	url_photo = url_photo[dernier].split('.');
	url_photo = url_photo[0].replace('xxl','');

	xhr_global = getXhr();
	// On défini ce qu'on va faire quand on aura la réponse
	xhr_global.onreadystatechange = function()
	{
		// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
		if(xhr_global.readyState == 4 && xhr_global.status == 200)
		{
			var docXML = clean(xhr_global.responseXML.documentElement);
   			var items = docXML.getElementsByTagName('donnee');

			if(items.length > 0)
			{
				var legende = items.item(0).firstChild.data;
				byId('legende_galerie').innerHTML = legende;
				byId('titre_galerie').style.display = 'none';
				byId('legende_galerie').style.display = 'block';
			}
			else
			{
				byId('legende_galerie').style.display = 'none';
				byId('titre_galerie').style.display = 'block';
			}
		}
	}

	xhr_global.open("POST","ajax2.php",true);
	// Pour le post
	xhr_global.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	xhr_global.send('page=report_galerie&action=onChangePhotoGalerie&id_photo=' + url_photo);
}

/**
 *
 * @access public
 * @return void
 **/
function onClickSlider()
{
	var url_photo = byId('photo_cover_apercu_top').src;
	url_photo = url_photo.split('_');
	var avant_dernier = url_photo.length-2;
	var id_article = url_photo[avant_dernier];

	xhr_global = getXhr();
	// On défini ce qu'on va faire quand on aura la réponse
	xhr_global.onreadystatechange = function()
	{
		// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
		if(xhr_global.readyState == 4 && xhr_global.status == 200)
		{
			var docXML = clean(xhr_global.responseXML.documentElement);
   			var items = docXML.getElementsByTagName('donnee');

			/*if(items.length > 0)
			{
				var legende = items.item(0).firstChild.data;
				byId('legende_galerie').innerHTML = legende;
				byId('titre_galerie').style.display = 'none';
				byId('legende_galerie').style.display = 'block';
			}
			else
			{
				byId('legende_galerie').style.display = 'none';
				byId('titre_galerie').style.display = 'block';
			}*/
		}
	}

	xhr_global.open("POST","ajax2.php",true);
	// Pour le post
	xhr_global.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	xhr_global.send('page=report&action=onClickSlider&id_article=' + id_article);
}

/**
 *
 * @access public
 * @return void
 **/
function onClickUniversMusical(element, id_user, id_style)
{
	xhr_global = getXhr();
	// On défini ce qu'on va faire quand on aura la réponse
	xhr_global.onreadystatechange = function()
	{
		// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
		if(xhr_global.readyState == 4 && xhr_global.status == 200)
		{
			var docXML = clean(xhr_global.responseXML.documentElement);
   			var items = docXML.getElementsByTagName('donnee');

			//alert(items.item(0).firstChild.data);

			// Selection/Déselection d'un seul style
			if(id_style > 0)
			{
				// Si l'état d'avant était 'tous style', on deselctionne les style deja choisis
				if(byId('univ0').style.background = '#1f90ac')
				{
					// Deselection de 'tous style'
					universMusical0 = 1;
					byId('univ0').style.background = '#fff';

					// Déselection des autres styles
					for(i = 1; i <= 9; i++)
					{
						eval('universMusical' + id_style + '= 0');
						eval("byId('univ" + id_style + "').style.background = '#fff'");
					}
				}

				if(items.item(0).firstChild.data == '1')
				{
					eval('universMusical' + id_style + '= 1');
					eval("byId('univ" + id_style + "').style.background = '#1f90ac'");
				}

				if(items.item(0).firstChild.data == '0')
				{
					eval('universMusical' + id_style + '= 0');
					eval("byId('univ" + id_style + "').style.background = '#fff'");
				}
			}
			// Selection de tous les styles
			else
			{
				// Déselection visuelle des autres styles
				for(i = 1; i <= 9; i++)
				{
					eval('universMusical' + i + '= 0');
					eval("byId('univ" + i + "').style.background = '#fff'");
				}
				universMusical0 = 1;
				byId('univ0').style.background = '#1f90ac';
			}

			// Pour recharger la page une fois les filtres mis en place
			changeFiltre = 1;
		}
	}

	xhr_global.open("POST","ajax2.php",true);
	// Pour le post
	xhr_global.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	xhr_global.send('page=connexionUser&action=onClickUniversMusical&id_user=' + id_user + '&id_style=' + id_style);
}