// Requête XMLHttpRequest

getXhr = function ()
         {
	         var xhr = null;
	         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;
         };

// Met à jour le contenu d'un div à partir de XMLHttpRequest

go = function(div, page, methode)
     {
	     var xhr = getXhr();
	     // On défini ce qu'on va faire quand on aura la réponse
	     xhr.onreadystatechange = function()
	                              {
		                              // On ne fait quelque chose que si on a tout reçu et que le serveur est ok
		                              if(xhr.readyState == 4 && xhr.status == 200)
		                              {
			                              var ret = xhr.responseText;
			                              setInnerHTML(document.getElementById(div), ret);
		                              }
		                              else
		                              {
			                              setInnerHTML(document.getElementById(div), "Chargement en cours ...");
		                              }
	                              };
	     xhr.open(methode, page ,true);
	     xhr.send(null);
     };

// Pr le chat (éviter le clignotement donc sans msg d'attente)

go2 = function(div, page, methode)
      {
	      var xhr = getXhr();
	      // On défini ce qu'on va faire quand on aura la réponse
	      xhr.onreadystatechange = function()
	                               {
		                               // On ne fait quelque chose que si on a tout reçu et que le serveur est ok
		                               if(xhr.readyState == 4 && xhr.status == 200)
		                               {
			                               var ret = xhr.responseText;
			                               setInnerHTML(document.getElementById(div), ret);
		                               }
	                               };
	      xhr.open(methode, page ,true);
	      xhr.send(null);
      };

// SetInnerHTML Sécurisé (pour permettre de lancer des scripts Javascript dans des pages chargées par Ajax)

setInnerHTML = function (divContent, HTML)
               {
	               divContent.innerHTML=HTML;
	               var All=divContent.getElementsByTagName("*");
	               var AllScripts=divContent.getElementsByTagName("script");
	               for (var i=0; i<AllScripts.length; i++)
	               {
		               var s=AllScripts[i];
		               if (s.src && s.src!="")
		               {
			               // Précédement asynchrone, mis en synchrone pour éviter des problèmes de dépendances de scripts
			               eval(getFileContent(s.src));
		               }
		               else
		               {
			               eval(s.innerHTML);
		               }
	               }
               };

// Renvoie le texte de l'objet ActiveXObject le plus récent depuis une liste
var pickRecentProgID = function (idList)
                       {
	                       // found progID flag
	                       var bFound = false;
	                       for(var i=0; i < idList.length && !bFound; i++)
	                       {
		                       try
		                       {
			                       var oDoc = new ActiveXObject(idList[i]);
			                       o2Store = idList[i];
			                       bFound = true;
		                       }
		                       catch (objException)
		                       {
			                       // trap; try next progID
		                       };
	                       };
	                       if (!bFound)
		                       throw ("Aucun ActiveXObject n'est valide sur votre ordinateur, pensez à mettre à jour votre navigateur");
	                       idList = null;
	                       return o2Store;
                       };

// Retourne un nouvel objet XmlHttpRequest
var GetXmlHttpRequest_AXO=null;
var GetXmlHttpRequest=function ()
                      {
	                      if (window.XMLHttpRequest)
	                      {
		                      return new XMLHttpRequest();
	                      }
	                      else
		                      if (window.ActiveXObject)
		                      {
			                      if (!GetXmlHttpRequest_AXO)
			                      {
				                      GetXmlHttpRequest_AXO=pickRecentProgID(["Msxml2.XMLHTTP.5.0", "Msxml2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"]);
			                      }
			                      return new ActiveXObject(GetXmlHttpRequest_AXO);
		                      }
	                      return false;
                      };

getFileContent = function (url)
                 {
	                 var Xhr=GetXmlHttpRequest();
	                 Xhr.open("GET",url,true);
	                 Xhr.send(null);
	                 return Xhr.responseText;
                 };

// ############################## Upload    ###############################
startUpload = function ()
              {
	              if (document.form_upload.p_text_upload.value != "")
	              {
		              document.getElementById('f1_upload_result').innerHTML='';
		              document.getElementById('f1_upload_process').innerHTML='Chargement en cours...<br/>';
		              document.form_upload.action = "core/photos_upload.php";
		              document.form_upload.submit();
	              }
	              else
	              {
		              alert("Tsisy soratra, sa hadino?");
		              return false;
	              }
              };

stopUpload = function (success)
             {
	             document.getElementById('f1_upload_process').innerHTML='';
	             if (success == 1)
	             {
		             //go(div, page, 'get');
					 alert("Upload effectué avec succès");
					 window.location="../index.php?page=core/photos.php";
	             }
	             else
	             {
		             document.getElementById('f1_upload_result').innerHTML='<font color = "#df0000">Erreur survenue lors de l\'envoi!</font>';
	             }
	             return true;
             };
			 
photosModifier = function ()
              {
	              if (document.form_upload.p_text_upload.value != "")
	              {
		              document.form_upload.submit();
	              }
	              else
	              {
		              alert("Tsisy soratra, sa hadino?");
		              return false;
	              }
              };
// ############################## Fin Upload   ###############################

//################## Limiter Textarea #######################
LimiterTextArea = function (nom_controletexte, nbcar, nom_controledecompte)
                  {
	                  var moncontroletexte = document.getElementById(nom_controletexte);
	                  var moncontroledecompte = document.getElementById(nom_controledecompte);
	                  if (moncontroletexte && moncontroledecompte)
	                  {
		                  moncontroletexte.onclick = function()
		                                             {
			                                             TextAreaEstRempli(moncontroletexte, nbcar, moncontroledecompte)
		                                             };
		                  moncontroletexte.onblur = function()
		                                            {
			                                            TextAreaEstRempli(moncontroletexte, nbcar, moncontroledecompte)
		                                            };
		                  moncontroletexte.onkeyup = function()
		                                             {
			                                             TextAreaEstRempli(moncontroletexte, nbcar, moncontroledecompte)
		                                             };
		                  moncontroletexte.onkeypress = function()
		                                                {
			                                                TextAreaEstRempli(moncontroletexte, nbcar, moncontroledecompte)
		                                                };
		                  // *** Affichage du nombre de caractres restant
		                  if(moncontroledecompte.type)
			                  moncontroledecompte.value = NbCarRestant(moncontroletexte, nbcar);			// Pour un input de formulaire
		                  else
			                  moncontroledecompte.innerHTML = NbCarRestant(moncontroletexte, nbcar);	// Pour un lment HTML
	                  }
                  }
                  // TextAreaEstRempli
                  // args : textarea moncontroletexte, int nbcar, element_HTML moncontroledecompte
                  // return : bool
                  // Renvoie vrai si le nombre de caractres maximum du textarea n'est pas atteint
                  TextAreaEstRempli = function (moncontroletexte, nbcar, moncontroledecompte)
                                      {
	                                      if (moncontroletexte)
	                                      {
		                                      if (moncontroletexte.value.length <= nbcar)
		                                      {
			                                      //alert("pas rempli");
			                                      // mes actions ...
			                                      // *** Affichage du nombre de caractres restant
			                                      if(moncontroledecompte.type)
				                                      moncontroledecompte.value = NbCarRestant(moncontroletexte, nbcar);
			                                      else
				                                      moncontroledecompte.innerHTML = NbCarRestant(moncontroletexte, nbcar);
			                                      return true;
		                                      }
		                                      else
		                                      {
			                                      //alert("rempli");
			                                      // mes actions ...
			                                      // Affichage du nombre de caractres restant
			                                      moncontroletexte.value = moncontroletexte.value.substr(0, nbcar);
			                                      // *** Affichage du nombre de caractres restant
			                                      if(moncontroledecompte.type)
				                                      moncontroledecompte.value = NbCarRestant(moncontroletexte, nbcar);
			                                      else
				                                      moncontroledecompte.innerHTML = NbCarRestant(moncontroletexte, nbcar);

			                                      return false;
		                                      }
	                                      }
                                      } ;
// NbCarRestant
// args : textarea moncontroletexte, int nbcar
// return : int
// Renvoie le nombre de caractre  saisir
NbCarRestant = function (moncontroletexte, nbcar)
               {
	               if (moncontroletexte.value.length)
		               return new Number(nbcar - moncontroletexte.value.length);
	               else
		               return new Number(nbcar);
               };
//################## Fin Limiter Textarea #######################
