function confirmation() {
  var test = confirm('Etes-vous sûr de vouloir supprimer définitivement cet élément ?');
  if (test) {
    return true;
  } else {
    return false;
  }
}

function confirmationTache() {
  var test = confirm('Avez-vous compléter cette tâche ?'); 
  if (test) {
    return true;
  } else {
    return false;
  }
}

function confirmationserie() {
  var test = confirm('Etes-vous sûr de vouloir enregistrer cette série d\'éléments ?');
  if (test) {
    return true;
  } else {
    return false;
  }
}

function confirmationsendmail() {
  var test = confirm('Vous êtes sur le point d\'envoyer cette newsletter à tous les membres de ce groupe. Etes-vous sûr de bien vouloir effectuer cette action  ?');
  if (test) {
    return true;
  } else {
    return false;
  }
}


function showBigImage(idImage){
	document.getElementById(idImage).style.display = 'block';
}

function hideBigImage(idImage){
	document.getElementById(idImage).style.display = 'none';
}

function btnOver( id, size, state ){
	document.getElementById( id ).className = 'btn' + size + state + '_hover';
}

function btnOut( id, size, state ){
	document.getElementById( id ).className = 'btn' + size + state;
}

function adminMessage( idBox ){
	
	if( !idBox ) idBox = 'message';
	document.getElementById( idBox ).style.display='none';
		
}

function loadMessageContextuelleBox( idBox ){
	document.getElementById( idBox ).style.display='block';
}

function tablehighlight(id, tdclass, nbRows){
	if( !nbRows ) var  nbRows = 1;
	var tr;
	tr = document.getElementById(id);
	for( h = 1; h <= nbRows; h++ ){
		var td;
		td = tr.getElementsByTagName('td');
		for(var i = 0; i < td.length; i++){
			if (td[i].className != 'table_rows_click' && td[i].className != 'table_rows_click_hide') {
				if(td[i].className == 'table_rows1_hide' || td[i].className == 'table_rows2_hide' || td[i].className == 'table_rows_click_hide')
					td[i].className = 'table_rows3_hide';
				else
					td[i].className = 'table_rows3';
			}
		}
		if( h < nbRows ) {
			tr = tr.nextSibling;
			while( tr ){
				if ( tr.nodeType != 1 ){
			        tr = tr.nextSibling;
			    }else{
			    	break;
			    }
			}
		}
	}	
}

function tablenormal(id, tdclass, nbRows){
	if( !nbRows ) var  nbRows = 1;
	var tr;
	tr = document.getElementById(id);
	for( h = 1; h <= nbRows; h++ ){
		var td;
		td = tr.getElementsByTagName('td');
		for (var i = 0; i < td.length; i++) {
			if (td[i].className != 'table_rows_click' && td[i].className != 'table_rows_click_hide') {
				if( td[i].className == 'table_rows3_hide' || td[i].className == tdclass+'_hide' )
					td[i].className = tdclass+'_hide';
				else
					td[i].className = tdclass;	
			}	
		}
		if( h < nbRows ) {
			tr = tr.nextSibling;
			while( tr ){
				if ( tr.nodeType != 1 ){
			        tr = tr.nextSibling;
			    }else{
			    	break;
			    }
			}
		}
	}
}

function tablechoose(id, tdclass, nbRows){
	if( !nbRows ) var  nbRows = 1;
	var tr;
	tr = document.getElementById(id);
	for( h = 1; h <= nbRows; h++ ){
		var td;
		td = tr.getElementsByTagName('td');
		for(var i = 0; i < td.length; i++){
			if (td[i].className == 'table_rows_click' || td[i].className == 'table_rows_click_hide') {
				if (td[i].className == 'table_rows_click_hide')
					td[i].className = tdclass +'_hide';
				else
					td[i].className = tdclass;
			}else{
				if (td[i].className == tdclass + '_hide' || td[i].className == 'table_rows3_hide') 
					td[i].className = 'table_rows_click_hide';
				else
					td[i].className = 'table_rows_click';
			}
		}
		if( h < nbRows ) {
			tr = tr.nextSibling;
			while( tr ){
				if ( tr.nodeType != 1 ){
			        tr = tr.nextSibling;
			    }else{
			    	break;
			    }
			}
		}
	}
}


function headingactive(id){
	
	if(document.getElementById(id).className != 'table_heading_active' && document.getElementById(id).className != 'table_heading_active_asc')
	document.getElementById(id).className = 'table_heading_over';
	
}

function headingnormal(id){
	
	if(document.getElementById(id).className != 'table_heading_active' && document.getElementById(id).className != 'table_heading_active_asc')
	document.getElementById(id).className = 'table_heading';
	
}

function descr_active(id){
	document.getElementById(id).className = 'descr_active';
}

function descr_stop(id){
	document.getElementById(id).className = 'hide_screen';
}

function active( id ){
	if(document.getElementById('hide_' + id).value == 'notselect') {
		document.getElementById('a_' + id).disabled = false;
		document.getElementById('a_' + id).checked = true;
		document.getElementById('m_' + id).disabled = false;
		document.getElementById('m_' + id).checked = true;
		document.getElementById('d_' + id).disabled = false;
		document.getElementById('d_' + id).checked = true;
		document.getElementById('hide_' + id).value = 'select';
	}else if(document.getElementById('hide_' + id).value == 'select'){
		document.getElementById( 'a_' + id ).disabled = true;
		document.getElementById( 'a_' + id ).checked = false;
		document.getElementById( 'm_' + id ).disabled = true;
		document.getElementById( 'm_' + id ).checked = false;
		document.getElementById( 'd_' + id ).disabled = true;
		document.getElementById( 'd_' + id ).checked = false;
		document.getElementById('hide_' + id).value = 'notselect';		
	}
}

function advancesearch(id){
	if( document.getElementById(id).className != 'hide_screen' ){
	document.getElementById(id).className = 'hide_screen';
	document.getElementById('reduce_search').className = 'hide_screen';
	document.getElementById('expand_search').className = '';
	}else{
	document.getElementById(id).className = 'advrecherche';
	document.getElementById('reduce_search').className = '';
	document.getElementById('expand_search').className = 'hide_screen';
	}
}



/***************************************************************************
 * 
 * Cette fonction crée une fenêtre qui superpose la fenêtre courante.
 * Peut contenir n'importe quel contenu.
 * 
 * :: Mise en fonction ::
 *    Il faut dans le HTML:
 *    - Une balise <div id="superpose"></div> (vide) au tout début de la page
 *    - Une balise <div id="contenu_superpose" class="hide_screen"> qui contient ce qui s'affichera dans la fenêtre lorsqu'elle sera activer
 *    
 *    Il faut dans le CSS:
 *    - .hide_screen{display:none;}
 *    
 * :: Utilisation ::
 *    - Un lien qui appelle la fonction superpose();
 * 
 * 
 ***************************************************************************/
function superpose( XGfree_operation, XGfree_formname, XGfree_id ){
	
	var XGfree_largeur = 70; 			// En lien avec la variable unit pour définir l'unité de mesure.
	var XGfree_unit = '%'				// Pourcent (%) ou Pixels (px). Affecte la largeur uniquement.
	var XGfree_fromtop = 200;			// Distance depuis le haut du navigateur (en pixels).
	var XGfree_opacity = 60;			// Opacité du fond de la couleur de fond (de 0 à 100).
	var XGfree_borderwidth = 1;
	var XGfree_bordercolor = '#000'
	
	
	// Stop configurations

	if (XGfree_operation == 'modify') {
	
		var action = document.forms[XGfree_formname].action;
		
		document.forms[XGfree_formname].action = action + '#' + XGfree_id;
		
		document.getElementById('operation').value = XGfree_operation;
		document.getElementById('id').value = XGfree_id;
		
		ajax('../../xml/' + XGfree_formname + '.xml', XGfree_id);
		
			
	}
	else if (XGfree_operation == 'add') {
		
		document.getElementById('operation').value = XGfree_operation;
		
	}
		
	
	var XGfree_left = 0 - (XGfree_largeur / 2);
	var XGfree_opacitydecimal = XGfree_opacity / 100;
		
	if (!window.XMLHttpRequest) {
		var XGfree_windowheight = window.innerHeight + 'px';
	}else{
		var XGfree_windowheight = '100%';
	}
	
	var XGfree_content = document.getElementById('contenu_superpose').innerHTML;
	
	var XGfree_div = '<div style="width:100%; height:' + XGfree_windowheight +'; background:rgb(0, 0, 0); position:absolute; left:0; top:0; padding:0; filter:alpha(opacity=' + XGfree_opacity + '); opacity:' + XGfree_opacitydecimal + '; -moz-opacity:' + XGfree_opacitydecimal + '; z-index:100;">';
	XGfree_div += '</div>';
	XGfree_div += '<div style="position:absolute; width:' + XGfree_largeur + XGfree_unit + '; top:' + XGfree_fromtop + 'px; left:' + XGfree_left + XGfree_unit + '; margin-left:50%; background-color:#fff; filter:alpha(opacity=100); opacity:1; -moz-opacity:1; z-index:120; border:' + XGfree_borderwidth + 'px solid ' + XGfree_bordercolor + ';">';
	XGfree_div += '<div style="margin:0px 0px 30px 0px; background-color:#fff;">';
	XGfree_div += XGfree_content;
	XGfree_div += '</div></div>';
	
	document.getElementById('superpose').className = 'show';
	document.getElementById('superpose').innerHTML = XGfree_div;


		
}

function unsuperpose(){
	
	document.getElementById('superpose').className = 'hide_screen';
	
}


function ajax(XGfree_xml, XGfree_id)
{
	
	//var url = 'rss.xml';
	//var url = 'http://www.lemonde.fr/rss/une.xml';
	//var url = 'http://127.0.0.1/Formation/javascript/exercices/ajax/rss.xml';
	var xhr = null;
		
	
	//La classe XMLHttpRequest
	//
	//Elle permet d'interagir avec le serveur, grâce à ses méthodes et ses attributs.
	//
	//Attributs
	//  readyState			le code d'état passe successivement de 0 à 4 qui signifie "prêt".
	//  status 				200 est ok
	//  					404 si la page n'est pas trouvée.
	//  responseText		contient les données chargées dans une chaîne de caractères.
	//  responseXml 		contient les données chargées sous forme xml, les méthodes de DOM servent à les extraire.
	//  onreadystatechange	propriété activée par un évènement de changement d'état. On lui assigne une fonction.
	//
	//
	//Méthodes
	//  open(mode, url, boolean) 	mode: type de requête, GET ou POST
	//  							url: l'endroit ou trouver les données, un fichier avec son chemin sur le disque.
	//  							boolean: true (asynchrone) / false (synchrone).
	//  							en option on peut ajouter un login et un mot de passe.
	//  send("chaine") 				null pour une commande GET.
	
	
	if (window.XMLHttpRequest) { // Pour les autres navigateurs que IE
		
	    xhr = new XMLHttpRequest();
		
		try{
			netscape.security.PrivilegeManager.EnablePrivilege('UniversalBrowserRead');
		}
		catch(e){
			
		}
	
	} else if (window.ActiveXObject) { // Pour IE
		
	    xhr = new ActiveXObject("Microsoft.XMLHTTP");
		
	}	

    //on appelle le fichier XML
    xhr.open("GET", XGfree_xml, true);
	
    //on définit l'appel de la fonction au retour serveur
    xhr.onreadystatechange = function() { 
	
		// Etapes de lecture des étapes de rapatriement des informations
		// 		0 non initialisée 			La méthode open n'a pas encore été appelée)
	    // 		1 en chargement				Le premier appel HTTP est en cours
	    // 		2 chargée					Les entêtes HTTP ont été reçues
	    // 		3 en cours de traitement	Le fichier est en cours de chargement
	    // 		4 terminée					Le chargement de la ressource est complétée

		
		if (xhr.readyState < 4) 
		{
			// Attente....';
			document.getElementById('wait').className = 'display';
		}
		
		if (xhr.readyState == 4) 
		{
			
			document.getElementById('wait').className = 'hide_screen';
			
			// LIRE LE FICHIER XML
			
			var docXML = xhr.responseXML;
			
			//var items = docXML.getElementsByTagName( 'datas' ).item(0).getElementsByTagName('ttyp_descr').item(0).firstChild.data;
			
			var items = docXML.getElementsByTagName( 'datas' );
			
			var balisesXML = balisesToGet();
			
			for ( i = 0; i < items.length; i++ )
			{		

				var baliseXMLValue = new Array;

				for (j = 0; j < balisesXML.length; j++) 
				{
					
					baliseXMLValue[j] = items.item(i).getElementsByTagName( balisesXML[j] ).item(0).firstChild.data;
					
				}
					
				if ( baliseXMLValue[0] == XGfree_id ) {
				
					//document.getElementById('ttyp_descr').value = ttyp_descr;
					
					for (k = 0; k < balisesXML.length; k++) 
					{
						
						document.getElementById(balisesXML[k]).value = baliseXMLValue[k];
					
					}
					
				}
				
			}	
	
		}
	};
    
	//Eventuellement pour un envoi d'info vers l'extérieur
    xhr.send(null);
	
}

