/* =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
 *
 * >>> obtenir un objet XMLHTTPRequest avec Internet Explorer ou Firefox
 *
 * EN SORTIE :
 * un objet Javascript de type XMLHTTPRequest
 * ATTENTION : une requete "xmlhttprequest.open" ne peut etre utilisee qu'a partir
 * 			   du meme domaine (on ne peut ouvrir un fichier d'un autre site).
 * =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~*/
 
function getHTTPObject()
{
  var xmlhttp = false;

  /* Compilation conditionnelle d'IE */
  /*@cc_on
  @if (@_jscript_version >= 5)
     try
     {
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
     }
     catch (e)
     {
        try
        {
           xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch (E)
        {
           xmlhttp = false;
        }
     }
  @else
     xmlhttp = false;
  @end @*/

  /* on essaie de crï¿½er l'objet si ce n'est pas dï¿½jï¿½ fait */
  if (!xmlhttp && typeof XMLHttpRequest != 'undefined')
  {
     try
     {
        xmlhttp = new XMLHttpRequest();
     }
     catch (e)
     {
        xmlhttp = false;
     }
  }

  if (xmlhttp)
  {
     /* on dï¿½finit ce qui doit se passer quand la page rï¿½pondra */
     xmlhttp.onreadystatechange=function()
     {
        if (xmlhttp.readyState == 4) /* 4 : ï¿½tat "complete" */
        {
           if (xmlhttp.status == 200) /* 200 : code HTTP pour OK */
           {
              /*
              Traitement de la rï¿½ponse.
              Ici on affiche la rï¿½ponse dans une boï¿½te de dialogue.
              */
              alert(xmlhttp.responseText);
           }
        }
     }
  }
  return xmlhttp;
}

/* =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
 *
 * >>> Validation du formulaire de saisie ï¿½ l'aide de la touche Entrï¿½e du
 * clavier
 *
 * =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~*/
function validateSearchFormWithKeyboard(e)
{
	var keynum;
	
	if(window.event) // IE
	{
		keynum = e.keyCode;
	}
	else if( e.which ) // Netscape/Firefox/Opera
	{
		keynum = e.which;
	}

	if ( keynum == 13 )
	{// Touche ENTREE
		// validateSearchForm('./include/searchEtude.php','resultsTable','no_etude');
		validateSearchForm2('./include/searchEtude.php','results','rechercherMessage','no_etude',false)
	}
}

/* =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
 *
 * >>> Validation du formulaire de saisie avant le lancement du script de 
 * recherche et de mise en forme des ï¿½tudes pï¿½dologiques
 *
 * EN ENTREE :
 * - phpScriptURL : le script PHP a appeler quand le formulaire a ï¿½tï¿½ validï¿½
 * - displayDivName : le nom de l'objet div dans lequel s'affichent les
 *   rï¿½sultats de la recherche
 * - sortKey : nom de la colonne de tri des rï¿½sultats de la recherche
 *
 * =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~*/
function validateSearchForm(phpScriptURL,displayDivName,sortKey)
{
	var httpRequest = phpScriptURL + '?';
	
	/* recuperation des variables du formulaire et construction de la requete */
	var infor = 'false';
	var dispo = 'false';
	var etude = (document.getElementById) ? document.getElementById('etude').value : eval("document.all['etude'].value");
	var titre = (document.getElementById) ? document.getElementById('titre').value : eval("document.all['titre'].value");
	var theme = (document.getElementById) ? document.getElementById('theme').value : eval("document.all['theme'].value");
	var region = (document.getElementById) ? document.getElementById('region').value : eval("document.all['region'].value");
	var depart = (document.getElementById) ? document.getElementById('depart').value : eval("document.all['depart'].value");
	var canton = (document.getElementById) ? document.getElementById('canton').value : eval("document.all['canton'].value");
	var commun = (document.getElementById) ? document.getElementById('commun').value : eval("document.all['commun'].value");
	var echelle = (document.getElementById) ? document.getElementById('echelle').value : eval("document.all['echelle'].value");
	var echelleEntre = (document.getElementById) ? document.getElementById('echelleEntre').value : eval("document.all['echelleEntre'].value");
	var echelleEt = (document.getElementById) ? document.getElementById('echelleEt').value : eval("document.all['echelleEt       '].value");
	var anneeEn = (document.getElementById) ? document.getElementById('anneeEn').value : eval("document.all['anneeEn'].value");
	var anneeEntre = (document.getElementById) ? document.getElementById('anneeEntre').value : eval("document.all['anneeEntre'].value");
	var anneeEt = (document.getElementById) ? document.getElementById('anneeEt').value : eval("document.all['anneeEt'].value");
	var auteur = (document.getElementById) ? document.getElementById('auteur').value : eval("document.all['auteur'].value");
	var organ = (document.getElementById) ? document.getElementById('organ').value : eval("document.all['organ'].value");
	
	var radioObj = document.forms[0].dispo;
	for ( var i = 0; i < radioObj.length; i++ )
	{
		if ( radioObj[i].checked )
		{
			dispo = radioObj[i].value;
		}
	}
	
	var radioObj = document.forms[0].infor;
	for ( var i = 0; i < radioObj.length; i++ )
	{
		if ( radioObj[i].checked )
		{
			infor = radioObj[i].value;
		}
	}
	
	/* l'objet div dans lequel on affiche des messages */
	var divObjMessage = (document.getElementById) ? document.getElementById('rechercherMessage') : eval("document.all['rechercherMessage']");
		
	/* Notification ï¿½ l'utilisateur que les informations sont en cours
	   de recherche */
	var noticeMessage = 'Recherche en cours ...';
		
	/* on intï¿½gre le message d'erreur ï¿½ l'element div */
	divObjMessage.innerHTML = noticeMessage;
		
	/* on rend visible l'element div qui va recueillir ces donnees */
	divObjMessage.style.visibility ="visible";
	divObjMessage.style.position ="relative";
	divObjMessage.style.color ="white";

	/* Message d'avertissement si rien n'a ï¿½tï¿½ saisi dans le formulaire */
	if ( etude == "" && titre == "" && theme == "" && infor == "" && dispo == "" 
		&& region == "" && depart == "" && canton == "" && commun == "" && echelle == ""
		&& echelleEntre == "" && echelleEt == "" && anneeEn == "" && anneeEntre == "" 
		&& anneeEt == "" && auteur == "" && organ == "" )
	{	
		/* le message d'erreur */
		var errorMessage = "Aucun critï¿½re de sï¿½lection n'a ï¿½tï¿½ saisi";
		
		/* on intï¿½gre le message d'erreur ï¿½ l'element div */
		divObjMessage.innerHTML = errorMessage;
		
		/* on rend visible l'element div qui va recueillir ces donnees */
		divObjMessage.style.visibility ="visible";
		divObjMessage.style.position ="relative";
		divObjMessage.style.color ="white";
		
		return;
	}
	
	/* verification des echelles entrï¿½e par l'utilisateur */
	
	/* l'objet div */
	var divObj = (document.getElementById) ? document.getElementById(displayDivName) : eval("document.all['" + displayDivName + "']");
	
	/* verification des ï¿½chelles entrï¿½es par l'utilisateur */
	if ( ( echelleEntre == "" && echelleEt != "" ) || ( echelleEntre != "" && echelleEt == "" ) )
	{
		/* le message d'erreur */
		var errorMessage = 'Dans l\'onglet "Autres Critï¿½res", pour le champs "Echelle", il manque une valeur';
		
		/* on intï¿½gre le message d'erreur ï¿½ l'element div */
		divObj.innerHTML = errorMessage;
		/* on rend visible l'element div qui va recueillir ces donnees */
		divObj.style.visibility ="visible";
		divObj.style.position ="relative";
		divObj.style.color ="white";
		return;
	}
	
	if ( echelleEntre != "" && echelleEt != "" && echelleEntre >= echelleEt )
	{
		/* le message d'erreur */
		var errorMessage = 'Dans l\'onglet "Autres Critï¿½res", pour le champs "Echelle", les valeurs sont peut ï¿½tre inversï¿½es';
		
		/* on intï¿½gre le message d'erreur ï¿½ l'element div */
		divObj.innerHTML = errorMessage;
		
		/* on rend visible l'element div qui va recueillir ces donnees */
		divObj.style.visibility ="visible";
		divObj.style.position ="relative";
		divObj.style.color ="white";
		return;
	}
	
	/* verification des dates entrï¿½es par l'utilisateur */
	if ( ( anneeEntre == "" && anneeEt != "" ) || ( anneeEntre != "" && anneeEt == "" ) )
	{
		/* le message d'erreur */
		var errorMessage = 'Dans l\'onglet "Autres Critï¿½res", pour le champs "Annï¿½e", il manque une valeur';
		
		/* on intï¿½gre le message d'erreur ï¿½ l'element div */
		divObj.innerHTML = errorMessage;
		/* on rend visible l'element div qui va recueillir ces donnees */
		divObj.style.visibility ="visible";
		divObj.style.position ="relative";
		divObj.style.color ="white";
		return;
	}
	
	if ( anneeEntre != "" && anneeEt != "" && anneeEntre >= anneeEt )
	{
		/* le message d'erreur */
		var errorMessage = 'Dans l\'onglet "Autres Critï¿½res", pour le champs "Annï¿½e", les dates sont peut ï¿½tre inversï¿½es';
		
		/* on intï¿½gre le message d'erreur ï¿½ l'element div */
		divObj.innerHTML = errorMessage;
		
		/* on rend visible l'element div qui va recueillir ces donnees */
		divObj.style.visibility ="visible";
		divObj.style.position ="relative";
		divObj.style.color ="white";
		return;
	}
	
	httpRequest += 'etude=' + etude;
	httpRequest += '&titre=' + replaceAccents(titre);
	httpRequest += '&theme=' + replaceAccents(theme);
	httpRequest += '&region=' + region;
	httpRequest += '&depart=' + depart;
	httpRequest += '&canton=' + canton;
	httpRequest += '&commun=' + commun;
	httpRequest += '&infor=' + infor;
	httpRequest += '&dispo=' + dispo;
	httpRequest += '&echelle=' + echelle;
	httpRequest += '&echelleEntre=' + echelleEntre;
	httpRequest += '&echelleEt=' + echelleEt;
	httpRequest += '&anneeEn=' + anneeEn;
	httpRequest += '&anneeEntre=' + anneeEntre;
	httpRequest += '&anneeEt=' + anneeEt;
	httpRequest += '&auteur=' + replaceAccents(auteur);
	httpRequest += '&organ=' + organ;
	httpRequest += '&sortKey=' + sortKey;
	
	/* creation d'un objet de type XMLHTTPRequest */
	var xhr_object = getHTTPObject();
		
	/* requete de type GET auprï¿½s du serveur; httpRequest est l'url
	   d'un script cote serveur qui se charge de recuperer les donnees
	   desiree en base de donnï¿½es; requete de type asynchrone */
	xhr_object.open('GET',httpRequest,true);
		
	/* quand la reponse a la requete est obtenue sans problemes */		
	xhr_object.onreadystatechange = function() {
			
		if(xhr_object.readyState == 4)
		{
			/* Notification ï¿½ l'utilisateur de la fin de la recherche */
			var noticeMessage = '';
		
			/* on intï¿½gre le message d'erreur ï¿½ l'element div */
			divObjMessage.innerHTML = noticeMessage;
		
			/* on rend visible l'element div qui va recueillir ces donnees */
			divObjMessage.style.visibility ="hidden";
			divObjMessage.style.position ="absolute";
			divObjMessage.style.color ="black";
	
			/* on recupere les resultats de la requete */
			var HTMLResults = xhr_object.responseText;
//			alert(HTMLResults);
			
			/* on integre les resultats ï¿½ l'element div */
			divObj.src = httpRequest;
				
			/* on rend visible l'element div qui va recueillir ces donnees */
			// divObj.style.visibility ="visible";
			divObj.style.display ="block";
			divObj.style.position ="relative";
			divObj.style.color ="black";
			
			/* on place la page ï¿½ la premiere ligne du tableau de resultats */
			window.location.href = '#mapanchor';
				
		}
	}
	
	
	
	/* on envoie rien apres la requete http, car nous sommes en methode GET */
	xhr_object.send(null);
	
}

/* =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
 *
 * >>> Validation du formulaire de saisie avant le lancement du script de 
 * recherche et de mise en forme des ï¿½tudes pï¿½dologiques
 *
 * EN ENTREE :
 * - phpScriptURL : le script PHP a appeler quand le formulaire a ï¿½tï¿½ validï¿½
 * - displayIfName : le nom de l'objet iframe dans lequel s'affiche la page
 *   correspondant a l'url
 * - displayDivName : le nom de l'objet div dans lequel s'affichent les 
 *   messsages d'erreur
 * - le boolean "isIframe" va deterner si on doit charger dans uen div ou une iframe
 * =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~*/
function validateSearchForm2(phpScriptURL,displayFrame,displayMessage,sortKey,inIframe)
{
	var httpRequest = phpScriptURL + '?';
	
	/* recuperation des variables du formulaire et construction de la requete */
	var infor = 'false';
	var dispo = 'false';
	var etude = (document.getElementById) ? document.getElementById('etude').value : eval("document.all['etude'].value");
	var titre = (document.getElementById) ? document.getElementById('titre').value : eval("document.all['titre'].value");
	var theme = (document.getElementById) ? document.getElementById('theme').value : eval("document.all['theme'].value");
	var region = (document.getElementById) ? document.getElementById('region').value : eval("document.all['region'].value");
	var depart = (document.getElementById) ? document.getElementById('depart').value : eval("document.all['depart'].value");
	var canton = (document.getElementById) ? document.getElementById('canton').value : eval("document.all['canton'].value");
	var commun = (document.getElementById) ? document.getElementById('commun').value : eval("document.all['commun'].value");
	var echelle = (document.getElementById) ? document.getElementById('echelle').value : eval("document.all['echelle'].value");
	var echelleEntre = (document.getElementById) ? document.getElementById('echelleEntre').value : eval("document.all['echelleEntre'].value");
	var echelleEt = (document.getElementById) ? document.getElementById('echelleEt').value : eval("document.all['echelleEt'].value");
	var anneeEn = (document.getElementById) ? document.getElementById('anneeEn').value : eval("document.all['anneeEn'].value");
	var anneeEntre = (document.getElementById) ? document.getElementById('anneeEntre').value : eval("document.all['anneeEntre'].value");
	var anneeEt = (document.getElementById) ? document.getElementById('anneeEt').value : eval("document.all['anneeEt'].value");
	var auteur = (document.getElementById) ? document.getElementById('auteur').value : eval("document.all['auteur'].value");
	var organ = (document.getElementById) ? document.getElementById('organ').value : eval("document.all['organ'].value");
	var inputValidateObject = (document.getElementById) ? document.getElementById('cannotValidate') : eval("document.all['cannotValidate']");

	var radioObj = document.forms[0].dispo;
	for ( var i = 0; i < radioObj.length; i++ )
	{
		if ( radioObj[i].checked )
		{
			dispo = radioObj[i].value;
		}
	}
	
	var radioObj = document.forms[0].infor;
	for ( var i = 0; i < radioObj.length; i++ )
	{
		if ( radioObj[i].checked )
		{
			infor = radioObj[i].value;
		}
	}
	
	// La DIV principale qui va contenir le rï¿½sultat : [Recherche] ou [Carte]
	objDisplayIf = document.getElementById(displayFrame);
	objDisplayIf.innerHTML = "";
	
	/* l'objet div dans lequel on affiche des messages */
	var divObjMessage = (document.getElementById) ? document.getElementById(displayMessage) : eval("document.all['" + displayMessage + "']") ;
		
	/* Notification ï¿½ l'utilisateur que les informations sont en cours
	   de recherche */
	var noticeMessage = 'Recherche en cours ...';
		
	/* on intï¿½gre le message d'erreur ï¿½ l'element div */
	divObjMessage.innerHTML = noticeMessage;
		
	/* on rend visible l'element div qui va recueillir ces donnees */
	divObjMessage.style.visibility ="visible";
	divObjMessage.style.position ="relative";
	divObjMessage.style.color ="white";

	/* Message d'avertissement si rien n'a ï¿½tï¿½ saisi dans le formulaire */
	if ( etude == "" && titre == "" && theme == "" && infor == "" && dispo == "" 
		&& region == "" && depart == "" && canton == "" && commun == "" && echelle == ""
		&& echelleEntre == "" && echelleEt == "" && anneeEn == "" && anneeEntre == "" 
		&& anneeEt == "" && auteur == "" && organ == "" )
	{	
		/* le message d'erreur */
		var errorMessage = "Aucun critï¿½re de sï¿½lection n'a ï¿½tï¿½ saisi";
		
		/* on intï¿½gre le message d'erreur ï¿½ l'element div */
		divObjMessage.innerHTML = errorMessage;
		
		/* on rend visible l'element div qui va recueillir ces donnees */
		divObjMessage.style.visibility ="visible";
		divObjMessage.style.position ="relative";
		divObjMessage.style.color ="white";
		
		return;
	}
	
	/* Message d'avertissement si il y a un probleme avec les
	   echelles ou les annees */
	if ( inputValidateObject.value == "true" )
	{
		/* le message d'erreur */
		var errorMessage = "Le formulaire ne peut être validé. Vérifiez vos critères de recherches concernant les dates et les échelles";
		
		/* on intï¿½gre le message d'erreur ï¿½ l'element div */
		divObjMessage.innerHTML = errorMessage;
		
		/* on rend visible l'element div qui va recueillir ces donnees */
		divObjMessage.style.visibility ="visible";
		divObjMessage.style.position ="relative";
		divObjMessage.style.color ="white";
		
		return;
	}
	
	/* verification des echelles entrï¿½e par l'utilisateur */
	
	/* l'objet div */

	/* verification des ï¿½chelles entrï¿½es par l'utilisateur */
	if ( ( echelleEntre == "" && echelleEt != "" ) || ( echelleEntre != "" && echelleEt == "" ) )
	{
		/* le message d'erreur */
		var errorMessage = 'Dans l\'onglet "Autres Critères", pour le champs "Echelle", il manque une valeur';
		
		/* on intï¿½gre le message d'erreur ï¿½ l'element div */
		divObjMessage.innerHTML = errorMessage;
		/* on rend visible l'element div qui va recueillir ces donnees */
		divObjMessage.style.visibility ="visible";
		divObjMessage.style.position ="relative";
		divObjMessage.style.color ="white";
		return;
	}
	
	if ( echelleEntre != "" && echelleEt != "" && parseInt(echelleEntre) >= parseInt(echelleEt) )
	{
		/* le message d'erreur */
		var errorMessage = 'Dans l\'onglet "Autres Critères", pour le champs "Echelle", les valeurs sont peut être inversées';
		
		/* on intï¿½gre le message d'erreur ï¿½ l'element div */
		divObjMessage.innerHTML = errorMessage;
		
		/* on rend visible l'element div qui va recueillir ces donnees */
		divObjMessage.style.visibility ="visible";
		divObjMessage.style.position ="relative";
		divObjMessage.style.color ="white";
		return;
	}
	
	/* verification des dates entrï¿½es par l'utilisateur */
	if ( ( anneeEntre == "" && anneeEt != "" ) || ( anneeEntre != "" && anneeEt == "" ) )
	{
		/* le message d'erreur */
		var errorMessage = 'Dans l\'onglet "Autres Critères", pour le champs "Année", il manque une valeur';
		
		/* on intï¿½gre le message d'erreur ï¿½ l'element div */
		divObjMessage.innerHTML = errorMessage;
		/* on rend visible l'element div qui va recueillir ces donnees */
		divObjMessage.style.visibility ="visible";
		divObjMessage.style.position ="relative";
		divObjMessage.style.color ="white";
		return;
	}
	
	
	if ( anneeEntre != "" && anneeEt != "" && parseInt(anneeEntre) >= parseInt(anneeEt) )
	{
		/* le message d'erreur */
		var errorMessage = 'Dans l\'onglet "Autres Critères", pour le champs "Année", les dates sont peut être inversées';
		
		/* on intï¿½gre le message d'erreur ï¿½ l'element div */
		divObjMessage.innerHTML = errorMessage;
		
		/* on rend visible l'element div qui va recueillir ces donnees */
		divObjMessage.style.visibility ="visible";
		divObjMessage.style.position ="relative";
		divObjMessage.style.color ="white";
		return;
	}	
	
	/* Verification du champs titre */
	if ( titre != "" && !verifKeyWords('titre',3,'titreKeyWordsError') ) 
	{// Les mots cles du titre ne sont pas correctes
		
		/* le message d'erreur */
		var errorMessage = 'Dans l\'onglet "Numéro d\'étude, titre, thème", pour le champs "titre" il faut au moins un mot clef';
		
		/* on intï¿½gre le message d'erreur ï¿½ l'element div */
		divObjMessage.innerHTML = errorMessage;
		/* on rend visible l'element div qui va recueillir ces donnees */
		divObjMessage.style.visibility ="visible";
		divObjMessage.style.position ="relative";
		divObjMessage.style.color ="white";
		return;	
	}
	
	
	/* Verification du champs theme */
	if ( theme != "" && !verifKeyWords('theme',3,'themeKeyWordsError') ) 
	{// Les mots cle du titre ne sont pas correctes
		
		/* le message d'erreur */
		var errorMessage = 'Dans l\'onglet "Numéro d\'étude, titre, thème", pour le champs "thème" il faut au moins un mot clef';
		
		/* on intï¿½gre le message d'erreur ï¿½ l'element div */
		divObjMessage.innerHTML = errorMessage;
		/* on rend visible l'element div qui va recueillir ces donnees */
		divObjMessage.style.visibility ="visible";
		divObjMessage.style.position ="relative";
		divObjMessage.style.color ="white";
		return;	
	}
		
	/* Finalisation de la chaine de la requete HTTP */
	httpRequest += 'etude=' + etude;
	httpRequest += '&titre=' + replaceAccents(titre);
	httpRequest += '&theme=' + replaceAccents(theme);
	httpRequest += '&region=' + region;
	httpRequest += '&depart=' + depart;
	httpRequest += '&canton=' + canton;
	httpRequest += '&commun=' + commun;
	httpRequest += '&infor=' + infor;
	httpRequest += '&dispo=' + dispo;
	httpRequest += '&echelle=' + echelle;
	httpRequest += '&echelleEntre=' + echelleEntre;
	httpRequest += '&echelleEt=' + echelleEt;
	httpRequest += '&anneeEn=' + anneeEn;
	httpRequest += '&anneeEntre=' + anneeEntre;
	httpRequest += '&anneeEt=' + anneeEt;
	httpRequest += '&auteur=' + replaceAccents(auteur);
	httpRequest += '&organ=' + organ;
	httpRequest += '&sortKey=' + sortKey;
	
	/* ***************************************************************************
	 * 					Differenciation entre les differents cas 
	 * 
	 *	- cas inFrame = true :  "Carte" => chargement du resultat de la recherche
	 *	- cas inFrame = false : "Recherche" =>  chargement de la carte avec les 
	 * 							resultats
	 *	- Dans les deux cas, chargement dans une zone unique : displayFrame
	 * ***************************************************************************
	 */
	
		if ( inIframe == true ) {
		// Chargement dans une iframe 
	
			divObjMessage.innerHTML = 'Chargement de la carte en cours...' ;
			// objDisplayIf.style.display ="inline";
			// objDisplayIf.style.position ="relative";
			
			/* on rend invisible l'element div qui va recueillir ces donnees */
			divObjMessage.style.visibility ="hidden";
			divObjMessage.style.position ="absolute";
			divObjMessage.style.color ="black";
			
			objDisplayIf.innerHTML = "<iframe id='ifResults' src='" + httpRequest +"'  frameborder='no' style='display: block; width:100% ; height: 100%; align:center;'></iframe>" ;
			
			/* on rend visible l'element div qui va recueillir ces donnees */
			objDisplayIf.style.display ="block";
			objDisplayIf.style.position ="relative";
			objDisplayIf.style.color ="black";
			
			/* on place la page ï¿½ la carte */
			window.location.href = '#mapanchor';
		
		}
		else {// Chargement dans une div en ajax
			
			divObjMessage.innerHTML = 'Chargement des resultats en cours...' ;
			
			/* creation d'un objet de type XMLHTTPRequest */
			var xhr_object = getHTTPObject();
				
			/* requete de type GET auprï¿½s du serveur; httpRequest est l'url
			   d'un script cote serveur qui se charge de recuperer les donnees
			   desiree en base de donnï¿½es; requete de type asynchrone */
			xhr_object.open('GET',httpRequest,true);
				
			/* quand la reponse a la requete est obtenue sans problemes */		
			xhr_object.onreadystatechange = function() {
					
				if(xhr_object.readyState == 4)
				{
					/* Notification ï¿½ l'utilisateur de la fin de la recherche */
					var noticeMessage = '';
				
					/* on intï¿½gre le message d'erreur ï¿½ l'element div */
					divObjMessage.innerHTML = noticeMessage;
				
					/* on rend invisible l'element div qui va recueillir ces donnees */
					divObjMessage.style.visibility ="hidden";
					divObjMessage.style.position ="absolute";
					divObjMessage.style.color ="black";
			
					/* on recupere les resultats de la requete */
					var HTMLResults = xhr_object.responseText;
					
					/* on integre les resultats ï¿½ l'element div */
					objDisplayIf.innerHTML = HTMLResults;
						
					/* on rend visible l'element div qui va recueillir ces donnees */
					objDisplayIf.style.display ="block";
					objDisplayIf.style.position ="relative";
					objDisplayIf.style.color ="black";
					
					/* on place la page ï¿½ la premiere ligne du tableau de resultats */
					window.location.href = '#mapanchor';
						
				}
			}
		
			/* on envoie rien apres la requete http, car nous sommes en methode GET */
			xhr_object.send(null);
		}
		
}

/* =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
 *
 * >>> RESET du formulaire de saisie.
 *
 * EN ENTREE :
 * - displayDivName : le nom de l'objet div dont on veut effacer le contenu
 *
 * =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~*/
function resetSearchForm(displayDivName,displayMessage)
{
	cleanForm('depart','canton','commun','region','etude','auteur','organ');
	cleanInputText('titre');
	cleanInputText('theme');
	cleanInputText('echelle');
	cleanInputText('echelleEntre');
	cleanInputText('echelleEt');
	cleanInputText('anneeEn');
	cleanInputText('anneeEntre');
	cleanInputText('anneeEt');

	var radioObj = document.forms[0].dispo;
	for ( var i = 0; i < radioObj.length; i++ )
	{
		if ( radioObj[i].value == "" )
		{
			radioObj[i].checked = true;
		}
		else
		{
			radioObj[i].checked = false;
		}
	}
	
	var radioObj = document.forms[0].infor;
	for ( var i = 0; i < radioObj.length; i++ )
	{
		if ( radioObj[i].value == "" )
		{
			radioObj[i].checked = true;
		}
		else
		{
			radioObj[i].checked = false;
		}
	}
	
	/* on n'affiche plus de resultats en dessous du formulaire */

	/* l'objet div */
	var divObj = (document.getElementById) ? document.getElementById(displayDivName) : eval("document.all['" + displayDivName + "']");
	divObj.innerHTML = "";
	
	/* on efface les messages d'erreur */
	var divObjMessage = (document.getElementById) ? document.getElementById(displayMessage) : eval("document.all['" + displayMessage + "']") ;
	divObjMessage.innerHTML = "";
	var divAnneeErrorObj = (document.getElementById) ? document.getElementById('anneeError') : eval("document.all['anneeError']");
	divAnneeErrorObj.innerHTML = "";
	var divEchelleErrorObj = (document.getElementById) ? document.getElementById('echelleError') : eval("document.all['echelleError']");
	divEchelleErrorObj.innerHTML = "";
	
	/* on place la page au niveau du formulaire */
	window.location.href = '#haut';
	
}

/* =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
 *
 * >>> RESET du formulaire de saisie ï¿½ l'exception du champ Nï¿½ d'ï¿½tude
 *
 * EN ENTREE :
 * - displayDivName : le nom de l'objet div dont on veut effacer le contenu
 *
 * =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~*/
function resetSearchFormExceptEtude(displayDivName,displayMessage)
{
	cleanForm('depart','canton','commun','region','auteur','organ');
	cleanInputText('titre');
	cleanInputText('theme');
	cleanInputText('echelle');
	cleanInputText('echelleEntre');
	cleanInputText('echelleEt');
	cleanInputText('anneeEn');
	cleanInputText('anneeEntre');
	cleanInputText('anneeEt');

	var radioObj = document.forms[0].dispo;
	for ( var i = 0; i < radioObj.length; i++ )
	{
		if ( radioObj[i].value == "" )
		{
			radioObj[i].checked = true;
		}
		else
		{
			radioObj[i].checked = false;
		}
	}
	
	var radioObj = document.forms[0].infor;
	for ( var i = 0; i < radioObj.length; i++ )
	{
		if ( radioObj[i].value == "" )
		{
			radioObj[i].checked = true;
		}
		else
		{
			radioObj[i].checked = false;
		}
	}
	
	/* on n'affiche plus de resultats en dessous du formulaire */
	
	/* on efface les messages d'erreur */
	var divObjMessage = (document.getElementById) ? document.getElementById(displayMessage) : eval("document.all['" + displayMessage + "']") ;
	divObjMessage.innerHTML = "";
	var divAnneeErrorObj = (document.getElementById) ? document.getElementById('anneeError') : eval("document.all['anneeError']");
	divAnneeErrorObj.innerHTML = "";
	var divEchelleErrorObj = (document.getElementById) ? document.getElementById('echelleError') : eval("document.all['echelleError']");
	divEchelleErrorObj.innerHTML = "";
	

	/* l'objet div */
	var divObj = (document.getElementById) ? document.getElementById(displayDivName) : eval("document.all['" + displayDivName + "']");
	divObj.innerHTML = "";
	
}

/* =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
 *
 * >>> Coloriage d'un champ select en vert pour montrer qu'une valeur a ï¿½tï¿½
 * correctement ï¿½tï¿½ sï¿½lectionnï¿½e
 *
 * EN ENTREE :
 * - selectObjectName : le nom de l'objet select dont on veut modifier l'
 *   affichage.
 *
 * =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~*/
function selectValue(selectObjectName)
{	
	/* l'objet Select */
	var selectObject = (document.getElementById) ? document.getElementById(selectObjectName) : eval("document.all['" + selectObjectName + "']");
	
	/* on diminue le nombre d'options affichees dans l'objet select */
	selectObject.size = 1;
	
	/* on colorie le fond de l'objet input */
	selectObject.style.color = "green";
}

/* =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
 *
 * >>> Nettoyage des champs qui composent le formulaire
 *
 * =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~*/
function cleanForm()
{
	for ( var i = 0; i < arguments.length; i++ )
	{		
		var inputObject = (document.getElementById) ? document.getElementById('autocomplete_' + arguments[i]) : eval("document.all['autocomplete_" + arguments[i] + "']");
		inputObject.value = '';
		
		var inputObject = (document.getElementById) ? document.getElementById(arguments[i]) : eval("document.all['" + arguments[i] + "']");
		inputObject.value = '';
	}
}

/* =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
 *
 * >>> Nettoyage d'un champ de type <input type="text" />
 *
 *
 * EN ENTREE :
 * - inputName : le nom du champs que l'on veut nettoyer
 *
 * =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~*/
function cleanInputText(inputName)
{
	var inputObject = (document.getElementById) ? document.getElementById(inputName) : eval("document.all['" + inputName + "']");
	inputObject.value = '';
}

/* =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
 *
 * >>> Vï¿½rification d'un champ contenant une annï¿½e. Seules les annï¿½es des 
 * 20ï¿½me et 21ï¿½me siï¿½cle sont acceptï¿½es
 *
 *
 * EN ENTREE :
 * - inputName : le nom du champ que l'on veut vï¿½rifier
 *
 * =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~*/
function verifAnnee(inputName)
{
	var inputValidateObject = (document.getElementById) ? document.getElementById("cannotValidate") : eval("document.all['cannotValidate']");
	
	var inputObject = (document.getElementById) ? document.getElementById(inputName) : eval("document.all['" + inputName + "']");
	var myValue = trim(inputObject.value);
	
	var b1 = false;
	var b2 = false;
	var regularExpression1 = new RegExp("^19[0-9]{2}$", "");
	var regularExpression2 = new RegExp("^20[0-9]{2}$", "");
	var regularExpression3 = new RegExp("^[0-9]*$", "");
	b1 = myValue.match(regularExpression1);
	b2 = myValue.match(regularExpression2);
	b3 = myValue.match(regularExpression3);
	
	var divObj = (document.getElementById) ? document.getElementById('anneeError') : eval("document.all['anneeError']");
	
	if ( b1 == null && b2 == null && myValue.length >= 4 
	     || b3 == null && myValue.length > 0 && myValue.length < 4 )
	{
		/* le message d'erreur */
		var errorMessage = 'Choisissez une date entre 1900 et 2099';
		
		/* on intï¿½gre le message d'erreur ï¿½ l'element span */
		divObj.innerHTML = errorMessage;
		
		/* on rend visible l'element span qui va recueillir ces donnees */
		divObj.style.color ="red";
		
		/* empecher le formulaire de pouvoir etre valide */
		inputValidateObject.value = "true";
		
	}
	else
	{
		/* on rend invisible l'element span qui va recueillir ce message */
		divObj.innerHTML = "";
		divObj.style.color ="black";
		
		/* autoriser le formulaire a etre valide */
		inputValidateObject.value = "false";
	}
}

/* =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
 *
 * >>> Vï¿½rification d'un champ contenant une ï¿½chelle. Seules les chiffres d'une
 * longueur de 1 ï¿½ 8 caractï¿½res sont acceptï¿½s
 *
 *
 * EN ENTREE :
 * - inputName : le nom du champ que l'on veut vï¿½rifier
 *
 * =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~*/
function verifEchelle(inputName)
{
	var inputValidateObject = (document.getElementById) ? document.getElementById("cannotValidate") : eval("document.all['cannotValidate']");
	
	var myValue = trim(document.forms[0].elements[inputName].value);
	var inputObject = (document.getElementById) ? document.getElementById(inputName) : eval("document.all['" + inputName + "']");
	
	var b1 = false;
	var regularExpression1 = new RegExp("^[0-9]{1,8}$", "");
	b1 = myValue.match(regularExpression1);

	var divObj = (document.getElementById) ? document.getElementById('echelleError') : eval("document.all['echelleError']");
	
	if ( b1 == null && myValue.length >= 1 )
	{
		/* le message d'erreur */
		var errorMessage = 'Echelle incorrecte';
		
		/* on intï¿½gre le message d'erreur ï¿½ l'element span */
		divObj.innerHTML = errorMessage;
		
		/* on rend visible l'element span qui va recueillir ces donnees */
		divObj.style.color ="red";
		
		/* empecher le formulaire de pouvoir etre valide */
		inputValidateObject.value = "true";
	}
	else
	{
		/* on rend invisible l'element span qui va recueillir ce message */
		divObj.innerHTML = "";
		divObj.style.color ="black";
		
		/* autoriser le formulaire a etre valide */
		inputValidateObject.value = "false";		
	}
}

/* =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
 *
 * >>> Vï¿½rification d'un champ des mots cles (titre et theme dans notre formulaire)
 * il faut une chaine qui contient des mots cles separes par un espace.
 * Un des mots doit avoir au moins un nombre de caractere precis
 *
 * EN ENTREE :
 * - inputName : le nom du champ que l'on veut vï¿½rifier
 * - size : taille minimale pour un mot cle
 * - divMessageError : div ou on ecrit le message d'erreur
 * => renvoie vrai si la condition de taille sur les mots cles est remplie
 * =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~*/
function verifKeyWords(inputName, size, divMessageError)
{
	var inputObject = (document.getElementById) ? document.getElementById(inputName) : eval("document.all['" + inputName + "']");
	var divObj = (document.getElementById) ? document.getElementById(divMessageError) : eval("document.all['"+divMessageError+"']");
	
	// Decoupage de la ligne de mot cle par le sï¿½parateur espace
	var keyWords = (inputObject.value).split(' ') ;
	
	// verification qu'au moins une des mots fait la bonne taille
	var keysOK = 0 ;
	for ( i=0 ; i < keyWords.length ; i++ )
		if ( keyWords[i].length >= size ) 
			keysOK++ ;

	if ( keysOK > 0 ) 
	{// Il existe au moins 1 mot cle de plus de 3 caracteres
		divObj.innerHTML = "" ;
		divObj.style.color ="black";
		return true ;
	}
	else
	{// Aucun mot cle correcte
		
		divObj.innerHTML = "Il faut au moins un mot clï¿½ avec " + size + " caractï¿½re(s)" ;
		divObj.style.color ="red" ; 
		if ( inputObject.value == "" ) 
			divObj.innerHTML = "" ;
		return false ;
	}
	
		
}


/* =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
 *
 * >>> trim d'une chaine de caracteres (enlever les espaces superflus en
 * debut et fin de chaine de caractere
 *
 * EN ENTREE :
 * - string : la chaine de caractere a trimer
 *
 * EN SORTIE :
 * - une chaine de caracteres trimees
 *
 * =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~*/

function trim(string) 
{ 
	return string.replace(/(^\s*)|(\s*$)/g,"");
}

function dropCRLF(string)
{
	to_return = string.replace(/(\r*)/g,'');
	to_return = to_return.replace(/(\n*)/g,'');
	return to_return;
}

/* =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
 *
 * >>> Cette fonction recherche dans une chaï¿½ne expr toutes les occurrences 
 * d'une sous-chaï¿½ne a et les remplace par une sous-chaï¿½ne b. Ce script 
 * fonctionne pour toutes les versions de navigateurs au-delï¿½ de 3
 *
 * EN ENTREE :
 * - expr : la chaine de caractere a traiter
 * - a : la chaine a remplacer
 * - b : la chaine qui remplace
 *
 * EN SORTIE :
 * - une chaine de caracteres sans accents et avec caracteres codï¿½s en hexa
 *
 * =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~*/
function replace(expr,a,b) {
	var i=0
	while (i!=-1) {
		i=expr.indexOf(a,i);
		if (i>=0) {
			expr=expr.substring(0,i)+b+expr.substring(i+a.length);
			i+=b.length;
		}
	}
	return expr
}

/* =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
 *
 * >>> remplacer les accents dans une chaine de caractï¿½res par leur equivalent 
 * hexadï¿½cimal pour utiliser cette chaine dans une requete HTTP de type GET
 *
 * EN ENTREE :
 * - string : la chaine de caractere a traiter
 *
 * EN SORTIE :
 * - une chaine de caracteres sans accents et avec caracteres codï¿½s en hexa
 *
 * =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~*/
function replaceAccents(string)
{
	string = replace(string,'ï¿½','%C0');
	string = replace(string,'ï¿½','%C1');
	string = replace(string,'ï¿½','%C2');
	string = replace(string,'ï¿½','%C3');
	string = replace(string,'ï¿½','%C4');
	string = replace(string,'ï¿½','%C5');
	string = replace(string,'ï¿½','%C6');
	string = replace(string,'ï¿½','%C7');
	string = replace(string,'ï¿½','%C8');
	string = replace(string,'ï¿½','%C9');
	string = replace(string,'ï¿½','%CA');
	string = replace(string,'ï¿½','%CB');
	string = replace(string,'ï¿½','%CC');
	string = replace(string,'ï¿½','%CD');
	string = replace(string,'ï¿½','%CE');
	string = replace(string,'ï¿½','%CF');
	string = replace(string,'ï¿½','%D0');
	string = replace(string,'ï¿½','%D1');
	string = replace(string,'ï¿½','%D2');
	string = replace(string,'ï¿½','%D3');
	string = replace(string,'ï¿½','%D4');
	string = replace(string,'ï¿½','%D5');
	string = replace(string,'ï¿½','%D6');
	string = replace(string,'ï¿½','%D7');
	string = replace(string,'ï¿½','%D8');
	string = replace(string,'ï¿½','%D9');
	string = replace(string,'ï¿½','%DA');
	string = replace(string,'ï¿½','%DB');
	string = replace(string,'ï¿½','%DC');
	string = replace(string,'ï¿½','%DD');
	string = replace(string,'ï¿½','%DE');
	string = replace(string,'ï¿½','%DF');
	string = replace(string,'ï¿½','%E0');
	string = replace(string,'ï¿½','%E1');
	string = replace(string,'ï¿½','%E2');
	string = replace(string,'ï¿½','%E3');
	string = replace(string,'ï¿½','%E4');
	string = replace(string,'ï¿½','%E5');
	string = replace(string,'ï¿½','%E6');
	string = replace(string,'ï¿½','%E7');
	string = replace(string,'ï¿½','%E8');
	string = replace(string,'ï¿½','%E9');
	string = replace(string,'ï¿½','%EA');
	string = replace(string,'ï¿½','%EB');
	string = replace(string,'ï¿½','%EC');
	string = replace(string,'ï¿½','%ED');
	string = replace(string,'ï¿½','%EE');
	string = replace(string,'ï¿½','%EF');
	string = replace(string,'ï¿½','%F0');
	string = replace(string,'ï¿½','%F1');
	string = replace(string,'ï¿½','%F2');
	string = replace(string,'ï¿½','%F3');
	string = replace(string,'ï¿½','%F4');
	string = replace(string,'ï¿½','%F5');
	string = replace(string,'ï¿½','%F6');
	string = replace(string,'ï¿½','%F7');
	string = replace(string,'ï¿½','%F8');
	string = replace(string,'ï¿½','%F9');
	string = replace(string,'ï¿½','%FA');
	string = replace(string,'ï¿½','%FB');
	string = replace(string,'ï¿½','%FC');
	string = replace(string,'ï¿½','%FD');
	string = replace(string,'ï¿½','%FE');
	string = replace(string,'ï¿½','%FF');
	return string;
}

/* =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
 *
 * >>> inserer en dessous d'une ligne du tableau de rï¿½sultats de la recherche
 * un cadre avec les dï¿½tails d'une ï¿½tude
 *
 * EN ENTREE :
 * - gTrObjName : l'identifiant de l'objet <tr> sur lequel on clique pour 
 *   afficher l'information
 * - dTrObjName : l'identifiant de l'objet <tr> qui contiendra les dï¿½tails de
 *   l'organisme
 * - ifObjName : l'identifiant de l'objet <iframe> dans lequel on affiche les
 *   dï¿½tails de l'organisme
 * - httpUrlToDisplay : l'url de la page PHP qui affiche les dï¿½tails de 
 *   l'organisme
 * - hrefName : le nom du repere href utilisï¿½ pour le positionnement du curseur
     sur la page web
 *
 * =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~*/
function displayDetails(gTrObjName,dTrObjName,ifObjName,httpUrlToDisplay,hrefName)
{
	var gTrObj = (document.getElementById) ? document.getElementById(gTrObjName) : eval("document.all['" + gTrObjName + "']");
	var dTrObj = (document.getElementById) ? document.getElementById(dTrObjName) : eval("document.all['" + dTrObjName + "']");
	var ifObj = (document.getElementById) ? document.getElementById(ifObjName) : eval("document.all['" + ifObjName + "']");
	
	if ( dTrObj != null ) {
		if ( dTrObj.style.display == "none" ) {
			ifObj.style.height = "450px";
			dTrObj.style.display = "";
			gTrObj.style.fontWeight = "bold";
			window.location.href = "#" + hrefName;
			if ( !ifObj.src ) 
			{	
				ifObj.src = httpUrlToDisplay;
				gTrObj.setAttribute("title","Cliquer pour ne plus afficher les dï¿½tails de cette ï¿½tude");
			}
	    }
		else {
			dTrObj.style.display = "none";
			gTrObj.style.fontWeight = "normal";
			gTrObj.setAttribute("title","Cliquer pour afficher les dï¿½tails de l'ï¿½tude");
		}
	}
}

/* =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
 *
 * >>> afficher les dï¿½tails d'un organisme
 *
 * EN ENTREE :
 * - gTrObjName : l'identifiant de l'objet <tr> sur lequel on clique pour 
 *   afficher l'information
 * - dTrObjName : l'identifiant de l'objet <tr> qui contiendra les dï¿½tails de
 *   l'organisme
 * - ifObjName : l'identifiant de l'objet <iframe> dans lequel on affiche les
 *   dï¿½tails de l'organisme
 * - httpUrlToDisplay : l'url de la page PHP qui affiche les dï¿½tails de 
 *   l'organisme
 * - exist : une chaine de caractere qui permet de savoir si l'organisme existe
 *   encore ou non.
 *
 * =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~*/
function displayOrganismDetails(gTrObjName,dTrObjName,ifObjName,httpUrlToDisplay,exist)
{
	if ( exist != '' )
	{
		return;
	}

	var gTrObj = (document.getElementById) ? document.getElementById(gTrObjName) : eval("document.all['" + gTrObjName + "']");
	var dTrObj = (document.getElementById) ? document.getElementById(dTrObjName) : eval("document.all['" + dTrObjName + "']");
	var ifObj = (document.getElementById) ? document.getElementById(ifObjName) : eval("document.all['" + ifObjName + "']");
	
	if ( dTrObj != null ) {
		if ( dTrObj.style.display == "none" ) {
			ifObj.style.height = "200px";
			dTrObj.style.display = "";
			if ( !ifObj.src ) 
			{	
				ifObj.src = httpUrlToDisplay;
				gTrObj.setAttribute("title","Cliquer pour ne plus afficher les dï¿½tails de cet organisme");
			}
	    }
		else {
			dTrObj.style.display = "none";
			gTrObj.setAttribute("title","Cliquer pour afficher les dï¿½tails de l'organisme");
		}
	}
}

/* =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
 *
 * >>> ouverture d'une nouvelle fenetre
 *
 * EN ENTREE :
 * - url : l'url de la page a afficher dans la nouvelle fenetre
 * - windowName : le nom de la nouvelle fenetre
 * - features : les options de configuration de la nouvelle fenetre (voir aide
 *   javascript)
 *
 * =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~*/

function openNewWindow(url,windowName,features)
{
	 Fenetre=window.open(url,windowName,features);
	 Fenetre.creator=self;
	 Fenetre.focus();
}


