function getHTTPObject() {
  var xmlhttp;

  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 
           afficherBoiteErreur('xmlhttp'); 
           xhr = false; 
        } 
        return xhr;
}

var http_objet;

function testUnicite(){
  http_objet = getHTTPObject();
  testUniciteChamp('pseudo');
}

function testUniciteChamp(champ) {
  var url = 'fonctions/php/testUnicite.php?' + champ + '=' + document.getElementById(champ).value;
  
  http_objet.abort();
  http_objet.open("GET", url, true);
  if(champ == 'pseudo') http_objet.onreadystatechange = demandeUnicitePseudo;
  else http_objet.onreadystatechange = demandeUniciteEmail;
  http_objet.send(null);
}

function demandeUnicitePseudo() {
  if (http_objet.readyState == 4) {
    if(http_objet.status == 200) {
         reponse = http_objet.responseText;
         if(reponse.length == 0) afficherBoiteErreur('connexion');
         else if(reponse == '0') testUniciteChamp('email');
         else {afficherBoiteErreur('pseudo');montrerLigneErronee('pseudo');}
    }
  }
}

function demandeUniciteEmail() {
  if (http_objet.readyState == 4) {
    if(http_objet.status == 200) {
         reponse = http_objet.responseText;
         if(reponse.length == 0) afficherBoiteErreur('connexion');
         else if(reponse == '0') document.getElementById('frmprofil').submit();
         else {afficherBoiteErreur('email');montrerLigneErronee('email');}
    }
  }
}

function modifierEtat(champ,etat) {
  var image = document.getElementById('pouce-' + champ);
  image.src = 'images/pouce-' + etat + '.gif';
  document.getElementById('ligne-' + champ).bgColor = '';
}

function montrerLigneErronee(champ) {
  document.getElementById('ligne-' + champ).bgColor = "#FF0000";
  if(champ != 'naissance') document.getElementById(champ).focus();
}

function colorerChamps() {
  var classe = document.getElementById('sexe').value;

  // On fait ici le distinguo entre une inscription et une modification de profil
  if(document.getElementById('choix-avatar').value == '0') {
    // On selectionne l'avatar en fonction du sexe
    switch(classe) {
        case '0' : document.getElementById('avatar').src = 'http://chat.shootbox.fr/images/avatars/Homme.gif'; break;
        case 'h' : document.getElementById('avatar').src = 'http://chat.shootbox.fr/images/avatars/Homme.gif'; break;
        case 'f' : document.getElementById('avatar').src = 'http://chat.shootbox.fr/images/avatars/Blonde.gif'; break;
        case 'i' : document.getElementById('avatar').src = 'http://chat.shootbox.fr/images/avatars/Alien2.gif'; break;
    }
  }
  var tags = document.getElementsByTagName('input');
  for (var ind = 0; ind < tags.length; ++ind)
    tags[ind].className = classe;
  if(classe == '0') modifierEtat('sexe','non');
  else modifierEtat('sexe','oui');
}

function validerPseudo(){
  var regPseudo = new RegExp ( "^[a-z0-9]{4,}$", "g" ) ;
  
  if(document.getElementById('pseudo').value.search ( regPseudo ) == -1 ) modifierEtat('pseudo','non');
  else modifierEtat('pseudo','oui');
}

function validerEmail(){
  var regEmail = new RegExp ( "^\\w[\\w+\.\-]*@[\\w\-]+\.\\w[\\w+\.\-]+\\w$", "gi" ) ;
 
  if ( document.getElementById('email').value.search( regEmail ) == -1 ) modifierEtat('email','non');
  else modifierEtat('email','oui');
}

function validerMdp1() {
  var reg1Mdp1 = new RegExp ( "^[a-z0-9]{6,}$", "gi" ) ;
  var reg2Mdp1 = new RegExp ( "[a-z]{1}.*[a-z]{1}", "gi" ) ;
  var reg3Mdp1 = new RegExp ( "[0-9]{1}.*[0-9]{1}", "gi" ) ;
 
  if ( document.getElementById('mdp1').value.search( reg1Mdp1 ) != -1 && document.getElementById('mdp1').value.search( reg2Mdp1 ) != -1 && document.getElementById('mdp1').value.search( reg3Mdp1 ) != -1 ) modifierEtat('mdp1','oui');
  else modifierEtat('mdp1','non');
  validerMdp2();
}

function validerMdp2() {
  if(document.getElementById('mdp1').value == document.getElementById('mdp2').value) modifierEtat('mdp2','oui');
  else modifierEtat('mdp2','non');
}

function validerConditions() {
  if(document.getElementById('conditions').checked == true) modifierEtat('conditions','oui');
  else modifierEtat('conditions','non');
}

function validerFormulaire(inscription){
var champs;
if(inscription) champs= new Array('sexe','pseudo','email','mdp1','mdp2','conditions');
else champs= new Array('sexe','email','mdp1','mdp2');

var i = 0;
var erreur = false;

document.getElementById('soumission').style.cursor='wait';
for(i;i<champs.length;i++) {
    /*alert(champs[i]);*/
  if(document.getElementById('pouce-' + champs[i]).src.substring(document.getElementById('pouce-' + champs[i]).src.length - 7) == 'non.gif') {
      document.getElementById('soumission').style.cursor='pointer';
  afficherBoiteErreur('erreur-champ');
  montrerLigneErronee(champs[i]);
  erreur = true;
  break;
  }
}
// On attribue la valeur de la source de l'avatar au champ caché choix-avatar
document.getElementById('choix-avatar').value = document.getElementById('avatar').src;

document.getElementById('soumission').style.cursor='pointer';
if(!erreur) {
  if(inscription) testUnicite();
  else document.getElementById('frmprofil').submit();
}
}