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 testUniciteChamp(champ) {
  var url = 'fonctions/php/testUnicite.php?' + champ + '=' + document.getElementById(champ).value;

  http_objet = getHTTPObject();
  http_objet.open("GET", url, true);
  if(champ == 'pseudo') http_objet.onreadystatechange = demandeUnicitePseudo;
  else if(champ == 'email') http_objet.onreadystatechange = demandeUniciteEmail;
  http_objet.send(null);
}

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

function demandeUniciteEmail() {
  if (http_objet.readyState == 4) {
    if(http_objet.status == 200) {
         var reponse = http_objet.responseText;
         if(reponse.length == 0) { afficherBoiteErreur('connexion'); return; }
         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).style.backgroundColor = '';
}

function montrerLigneErronee(champ) {
  document.getElementById('ligne-' + champ).style.backgroundColor = "#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.chatgratuit.info/images/avatars/Homme.gif'; break;
        case 'h' : document.getElementById('avatar').src = 'http://chat.chatgratuit.info/images/avatars/Homme.gif'; break;
        case 'f' : document.getElementById('avatar').src = 'http://chat.chatgratuit.info/images/avatars/Blonde.gif'; break;
        case 'i' : document.getElementById('avatar').src = 'http://chat.chatgratuit.info/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 validerPaysVille() {
  if(document.getElementById('pays').value == "France") document.getElementById('ville').style.display = 'inline';
  else  document.getElementById('ville').style.display = 'none';
  
  if(document.getElementById('pays').value != "France" && document.getElementById('pays').value != "0") modifierEtat('ville','oui');
  else if(document.getElementById('pays').value == "France" && document.getElementById('ville').value != "0") modifierEtat('ville','oui');
  else modifierEtat('ville','non');
}

function validerNaissance() { 
// Cette fonction vérifie le format JJ/MM/AAAA saisi et la validité de la date. 

var amin=1850; // année mini 
var amax=2500; // année maxi 
 
var j=document.getElementById('jour').value; 
var m=document.getElementById('mois').value;
var a=document.getElementById('annee').value;
 
var d2=new Date(a,m-1,j); 
j2=d2.getDate(); 
m2=d2.getMonth()+1; 
a2=d2.getYear(); 
if (a2<=100) {a2=1900+a2} 
if ( (j!=j2)||(m!=m2)||(a!=a2) ) modifierEtat('naissance','non');
else modifierEtat('naissance','oui');
}

function validerSite(){
 var regSite = new RegExp ( "^http://([_a-zA-Z0-9])+(\.[_a-zA-Z0-9])+\..+$", "gi" ) ;
  
  if(document.getElementById('site').value.search ( regSite ) == -1 ) modifierEtat('site','non');
  else  modifierEtat('site','oui');
  if (document.getElementById('site').value == '') modifierEtat('site','oui');

}

// Cette fonction concatène l'ensemble des noms de photos avec un point virgule (;)
function collecterNomsPhotos () {
var images = document.getElementById('photos');
var photos = images.getElementsByTagName('img');
var noms_photos = '';
for(i=0;i<photos.length;i++) {
    nom_photo = photos[i].src;
    nom_photo = nom_photo.split('/')[nom_photo.split('/').length-1];
    if(nom_photo.indexOf('compte-supprimer.gif') == -1) noms_photos += nom_photo + ';';
}   
return noms_photos;
}

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

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;

// On attribue les noms des photos au champ cachés src_photos;
document.getElementById('noms_photos').value = collecterNomsPhotos();

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