// Requête Javascript Asynchrone (AJAX)
// ///////////////////////////////////////////////////
function RequeteServeur(href, param, fonctionRetour, method, asynchro, format)
{
   var xhr_object = null;  
   method=(method)?method.toLowerCase():"get";
   if(!format) format="text";
   
   if(window.XMLHttpRequest) xhr_object=new XMLHttpRequest();
   else if(window.ActiveXObject)
   {
	  xhr_object=new ActiveXObject("Msxml2.XMLHTTP");	
	  if(!xhr_object) xhr_object= new ActiveXObject("Microsoft.XMLHTTP");
   }   
   if(!xhr_object) { alert("e-site est incompatible avec votre navigateur !");  return; }
   
   if(method=="get") { href+="?"+param; param=null; }

   try
   {	   
	  xhr_object.onreadystatechange=function()
	  {
		  if(xhr_object.readyState==4 && fonctionRetour && xhr_object.status==200)
		      fonctionRetour( (format=="xml")?xhr_object.responseXML:xhr_object.responseText );
	  }
	  xhr_object.open(method.toUpperCase(), href, asynchro);	  
	  if(method=="post") xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

	  xhr_object.send(param);
	   
   } catch(errv) { alert("Erreur de connection au serveur : "+errv.message); }
}

// Retourne un formulaire complet
// ///////////////////////////////////////////////////
function getDataFromForm(Form)
{  
   Form=document.getElementById(Form);
   var data= new Array(); 
   var key=0;
   
   for (key=0; key<Form.elements.length; key++)
   {   
       switch(Form.elements[key].type)
	   {   
           case 'checkbox':
		      var currentValue = getValueFromChk(Form.elements[key]);   
              break;   
           case 'radio':
		      var currentValue = getValueFromChk(Form.elements[key]);   
              break;   
           default:
		      var currentValue = (Form.elements[key].tagName.toLowerCase()=="select")?getSelectValue(Form.elements[key]):Form.elements[key].value;   
              break;   
       }   
  
       if(currentValue!=undefined && currentValue!='')
		   data[key]=Form.elements[key].name+'='+escape(currentValue.replace(/\+/, "%u002b")); // Ajout du caractére "+" à la fonction escape
   }

   return data.join('&');
}

function getValueFromChk(obj)
{    
   return (obj.checked)?obj.value:''; 
}

function getSelectValue(select)
{     
   var value="";  
   
   for (var i=0; true; i++)
   {   
      if (select[i])
	  {
         if (select[i].selected) value += select[i].value + ",";   
		   
      } else return value.substr(0, value.length-1);    
   }    
} 

/**
  * Galerie d'images catalogue
  * @access public
  * id numeric  : idetifiant de la fiche
  * num numeric : identifiant de l'image
  * nom string  : nom générique de la collection
 **/
function SlideShow(id, num, nom)
{
	var cadre = document.getElementById("galerie"+id);
	var elements = cadre.getElementsByTagName('img');
	
	for(var i=1; i<5; i++)
	{
		if(i==num) document.getElementById(nom+i).className='visible';
		else       document.getElementById(nom+i).className='invisible';
	}
}

/**
  * Envoie du formulaire
  * @access public
  * Form string  : nom du formulaire
 **/
function CheckForm(Form)
{
	var verif=true;
	var msg="Veuillez remplir les champs obligatoires.";
	
	var nbElm=document.forms[Form].elements.length;
	
	for(var i=0; i<nbElm; i++)
	{
		if(document.forms[Form].elements[i].value=='') verif=false;
	}
	
	if(verif==true) {
		var string = getDataFromForm(Form);
		
		RequeteServeur("fonctions2.php", string+"&type=1&aakdlfjrtrt2325464sSZFDFdf=1", 
					   function(retour)
					   {
						   if(retour=='ok') alert('Votre message a bien été envoyé.');
						   else             alert(retour);
						   
					   }, 'get', true);
	} else alert(msg);
}

/**
  * Affichage des kits
  * @access public
  * num numeric   : numéro d'identifiant sur ...
  * nbElm numeric : ... nombre de kits
 **/
function showKit(num, nbElm)
{
	for(var i=1; i<=nbElm; i++)
	{
		if(i==num) {
				document.getElementById("cadreDevis"+i).className='cadrekit';
				
		} else {
			document.getElementById("cadreDevis"+i).className='cadrekitInvisible';
		}
	}
}
