/****Fonction permettant la connection AJAX****/
function getXhr(){
    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;
}

/****Fontion permettant la transition***/
function changePage(pagePHP, color) {
	urlPage = 'pages/';
	
	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){
			document.getElementById('balRemplace').innerHTML = xhr.responseText;
		}
	}
	
				
	
	var BrowserName="Unknown Browser Type";
	if ((navigator.appVersion).indexOf("MSIE 4.")!=-1) BrowserName = "IE";
	if ((navigator.appVersion).indexOf("MSIE 5.")!=-1) BrowserName = "IE";
	if ((navigator.appVersion).indexOf("MSIE 6.")!=-1) BrowserName = "IE";
	
	if (BrowserName == "IE")
	{
		//=>pas d'effet
		xhr.open("GET",urlPage+pagePHP,true);
		xhr.send(null);
	}
	else {
		$ajaxreplace('balRemplace', urlPage+pagePHP);
	}
	
	//On change la couleur de la banniere
	document.getElementById("header").style.background = "url(images/back-header-"+ color +".png)";
	//On change celle du bouton envoyer
	document.getElementById("send_button").style.background = "url(images/envoyer-"+ color +".png) no-repeat";
	
}



/**** Dbut de fonction : verifEmail ****/
// Entre : mail - (String) - Email  analys.
// Renvoy : true ou false - (Boolean) - Vrai si l'email est correct sinon Faux
 
function verifEmail(mail) {
 
  /*** Dbut de dclaration de variable ***/
  //var de retour boolean true ou false
  var ret = true;
  //var o l'on stock le caractre courant au fur et a mesure de l'analyse
  var car = "";
  //var o l'on stock le caractre place avant le @
  var carAfter = "";
  //var o l'on stock le caractre place aprs le @
  var carBefore = "";
  //var o l'on stock le nombre de caractres total
  var nbrcar = mail.length;
  //var o l'on stock le nombre de @ trouv
  var nbrarobase = 0;
  //var o l'on stock le nombre de . trouv
  var nbrpoint = 0;
  //var dfinissant les caractres authoriss
  var goodcar = "@0123456789.-_abcdefghijklmnopqrstuvwxyz";
  /*** Fin de dclaration de variable ***/
 
  /*** Dbut de boucle de l'analyse ***/
  for(cnt=0;cnt<nbrcar;cnt++) {
 
    //Rcupration du caractre courant
    var car = mail.substr(cnt,1);
 
    /** Dbut de l'analyse du caractre courant **/
    //Si le caractre est authoris
    if(goodcar.indexOf(car) >= 0) {
 
      //On initialise les variables carAfter et carBefore  vide
      carAfter = "";
      carBefore = "";
 
      /* Dbut de l'analyse du @ */
      //Si le caractre est @
      if(car == "@") {
 
 
        //Si le @ n'est pas le premier
        if((cnt-1) >= 0) {
 
          //Rcupration du caractre plac avant le @
          carBefore = mail.substr((cnt-1),1);
        }
 
        //Si le @ n'est pas le dernier
        if((cnt+1)<nbrcar) {
 
          //Rcupration du caractre plac aprs le @
         carAfter = mail.substr((cnt+1),1);
        }
 
        //Si toutes les condition de @ sont respectes
        //conditions:
        // - cnt>0 : n'est pas plac en premire position
        // - nbrarobase==0 : est unique
        // - cnt<(nbrcar-4) : se trouve  une position max de 5 avant la fin
        // (sachant que les domaines les plus petit sont : a.fr par ex.)
        // - !(carBefore==".") : qu'il n'y est pas de . avant le @
        // - !(carAfter==".") : qu'il n'y est pas de . aprs le @
        // - !(carBefore=="-") : qu'il n'y est pas de - avant le @
        // - !(carAfter=="-") : qu'il n'y est pas de - aprs le @
        // - !(carBefore=="_") : qu'il n'y est pas de _ avant le @
        // - !(carAfter=="_") : qu'il n'y est pas de _ aprs le @
        if(cnt>0 && nbrarobase==0 && cnt<(nbrcar-4) && !(carBefore==".") && !(carAfter==".") && !(carBefore=="-") && !(carAfter=="-") && !(carBefore=="_") && !(carAfter=="_")) {
 
          //On incrmente le @
          nbrarobase++;
        } else {
 
         //Affectation Faux  la var de retour
         ret = false;
         //On sort de la boucle
         break;
        }
      }
      /* Fin de l'analyse du @ */
 
      /* Dbut de l'analyse du . */
      //Si le caractre est .
      if(car == ".") {
 
        //Si le . n'est pas le premier
        if((cnt-1) >= 0) {
 
          //Rcupration du caractre plac avant le .
          carBefore = mail.substr((cnt-1),1);
        }
 
        //Si le . n'est pas le dernier
        if((cnt+1)<nbrcar) {
 
          //Rcupration du caractre plac aprs le .
         carAfter = mail.substr((cnt+1),1);
        }
 
        //Si toutes les condition de @ sont respectes
        //conditions:
        // - cnt>0 : n'est pas plac en premire position
        // - cnt<(nbrcar-2) : se trouve  une position max de 3 avant la fin
        // (sachant que les domaines les plus petit sont : a.fr par ex.)
        // - !(carBefore==".") : qu'il n'y est pas de . avant le .
        // - !(carAfter==".") : qu'il n'y est pas de . aprs le .
        // - !(carBefore=="-") : qu'il n'y est pas de - avant le .
        // - !(carAfter=="-") : qu'il n'y est pas de - aprs le .
        // - !(carBefore=="_") : qu'il n'y est pas de _ avant le .
        // - !(carAfter=="_") : qu'il n'y est pas de _ aprs le .
        if(cnt>0 && cnt<(nbrcar-2) && !(carBefore==".") && !(carAfter==".") && !(carBefore=="-") && !(carAfter=="-") && !(carBefore=="_") && !(carAfter=="_")) {
 
          //On incrmente le .
          nbrpoint++;
        } else {
 
          //Affectation Faux  la var de retour
          ret = false;
          //On sort de la boucle
          break;
        }
      }
      /* Fin de l'analyse du . */
 
    } else {
 
      //Affectation Faux  la var de retour
      ret = false;
      //On sort de la boucle
      break;
    }
    /*** Fin de l'analyse du caractre courant ***/
  }
  /*** Fin de boucle de l'analyse ***/
 
  /*** Dbut de l'analyse du nombre de @ et de . ***/
  //Si il n'y a aucun @ et aucun .
  //Si le 1er et le dernier caractre est .
  //Si le 1er et le dernier caractre est -
  //Si le 1er et le dernier caractre est _
  if(nbrarobase == 0 || nbrpoint == 0 || mail.substr(0,1) == "." || mail.substr(0,1) == "-" || mail.substr(0,1) == "_" || mail.substr((nbrcar-1),1) == "." || mail.substr((nbrcar-1),1) == "-" || mail.substr((nbrcar-1),1) == "_") {
 
    //Affectation Faux  la var de retour
    ret = false;
  }
  /*** Fin de l'analyse du nombre de . et de @ ***/
 
  //Renvoi de la valeur de la var de retour
  return ret;
}
/**** Fin de fonction : verifEmail ****/


function verifForm()
{
	if (document.getElementById('nom').value.length < 2 || document.getElementById('email').value.length < 2 || document.getElementById('message').value.length < 2)
	{
		document.getElementById('form_message').innerHTML = "Merci de remplir tous les champs";
		return false;
	}
	else if (!verifEmail(document.getElementById('email').value))
	{
		document.getElementById('form_message').innerHTML = "Merci d'entrer une adresse email valide";
		return false;
	}
	else {
		//document.getElementById('form_message').innerHTML = "Votre message a bien &eacute;t&eacute; envoy&eacute;";
		return true;	
	}
}

