var gh1 = '';
var gh2 = '';


function initConnexion(){
  viderNoeud(elem("login_alias"));
  
  // Est-il nouveau ?
  if(getURLParam("nouveau") == "1"){
    messageInfoBis("Inscription enregistrée !<br/>Connecte-toi à l'aide du formulaire ci-dessous:");
    elem("inscription").style.display = "none";
    return;
  } else if(getURLParam("nouveau") == "2"){
    messageInfoBis("Inscription confirmée !<br/>Connecte-toi à l'aide du formulaire ci-dessous:");
    elem("inscription").style.display = "none";
    return;
  } else if(getURLParam("erreur") == "1"){
    messageInfoBis("Erreur survenue<br/>Impossible de confirmer ton inscription");
    elem("inscription").style.display = "none";
    return;
  } else if(getURLParam("erreur") == "2"){
    messageInfoBis("Lien de validation incorrect<br/>Impossible de confirmer ton inscription");
    elem("inscription").style.display = "none";
    return;
  }
  
  //messageInfoBis("Fermeture définitive le 30 mai 2010.<br/><a href='newsletter.htm' target='_blank'>Découvrez pourquoi dans la dernière newsletter</a>");
  //elem("inscription").style.display = "none";
  return;
  
  // A-t-il demandé à ne pas être mémorisé ?
  if(getCookieInfo("noAutoLogin") == "1"){
    // Il ne veut pas être connecté automatiquement
    setCookieInfo("noAutoLogin", "1");
    elem("checkAutoLogin").checked = false;
  } else {
    // Il veut peut-être être connecté automatiquement (ou bien il est nouveau)
    var h1 = getCookieInfo("h1");
    var h2 = getCookieInfo("h2");
    
    if(h1.length > 2 && h2.length > 2){
      // On remémorise les h
      setCookieInfo("h1", h1);
      setCookieInfo("h2", h2);
      gh1 = h1;
      gh2 = h2;
      
      // On essaye de le connecter automatiquement
      messageInfo("Connexion en cours...");
      ajax(35, 'h1='+h1+'&h2='+h2);
    }
  }
}

function validerLogin(){
  messageInfo("Connexion impossible");
  return;
  var elemAlias = elem('login_alias');
  var alias = '';
  try { alias = crypte(elemAlias.options[elemAlias.selectedIndex].value); } catch(E){}
  var email = elem('login_email').value;
  var pass = crypte(elem('login_pass').value);

  // Si première étape
  if(! alias || alias == '' || alias.length < 3){
    ajax(4, 'email='+email+'&pass='+pass);
  } 
  
  // Si deuxieme étape
  else {
    if(getCookieInfo("noAutoLogin") != "1"){
      // On mémorise le dernier alias utilisé
      setCookieInfo("alias", elemAlias.options[elemAlias.selectedIndex].value);
    }

    ajax(5, 'email='+email+'&pass='+pass+'&alias='+alias);
  }
}

function autreCompte(){
  elem("btAutreCompte").style.visibility = "hidden";
  elem('login_email').disabled = false;
  elem('login_pass').disabled = false;
  elem('login_email').value = "";
  elem('login_pass').value = "";
  elem("alias_container").style.display = "none";
  elem("remember_container").style.display = "block";
  effacerMessages();
  viderNoeud(elem("login_alias"));
  try {
    elem('login_email').focus();
  } catch(e){}
  
}

function changeAutoLogin(actif){
  if(! actif){
    setCookieInfo("noAutoLogin", "1");
    setCookieInfo("h1", "");
    setCookieInfo("h2", "");
    setCookieInfo("alias", "");
  } else {
    setCookieInfo("noAutoLogin", "");
    setCookieInfo("h1", gh1);
    setCookieInfo("h2", gh2);
    setCookieInfo("alias", "");
  }
}



function elem(id){
  return document.getElementById(id);
}

function getCookieInfo(dataName)
{
   var cookieLen = dataName.length;
   var cookieData = document.cookie;
   var allcookieLen = cookieData.length;

   var i = 0;
   var cookieEnd;

   while(i < allcookieLen)
   {
        var j = i + cookieLen;
        if (cookieData.substring(i,j) == dataName)
        {
             cookieEnd = cookieData.indexOf(";", j);
             if (cookieEnd == -1)
             {
                  cookieEnd = cookieData.length;
             }
            return unescape(cookieData.substring(j+1, cookieEnd))
       }
       i++;
   }
   return "";
}

function setCookieInfo(dataName, val){
  var expire = new Date();
  var unAn = expire.getTime() + (365*24*60*60*1000);
  expire.setTime(unAn);
  document.cookie = dataName+"="+val+"; expires=" + expire.toGMTString()+"; domain=.omail.fr; path=/";
}

/**************************************/
/* Traitement résultats requetes  */
/**************************************/

function requeteTerminee(action, reponse){
  //alert(action + ": " + reponse);
  switch(action){

        
        // Réponse login première étape
        case 4: {
                //alert(reponse);
                if(reponse == '0') messageErreur("Adresse email ou mot de passe incorrect", "L'adresse email et le mot de passe indiqués ne correspondent à aucun compte.<br/>Si tu n'es pas encore membre, <a href=\"http://www.omail.fr/inscription.htm\">inscris-toi gratuitement au tchat</a>.");
                else if(reponse == '1') messageErreur("Tu n'as pas encore validé ton inscription", "Une confirmation d'inscription a été envoyée par email.<br>Suis les instructions pour valider ton inscription.<br>Si tu n'as pas reçu cet email plus de 24h après ton inscription, <a href=\"mailto:info@omail.fr\">contacte-nous à info@omail.fr</a> en précisant ton pseudo.");
                else if(reponse == '2') messageErreur("Tu es exclu du tchat.", "La durée de l'exclusion a été indiquée lorsque tu as été déconnecté. Si tu penses qu'il s'agit d'une erreur, contacte-nous en précisant ton pseudo.");
                else {

                  var tabRes = new Array();
                  tabRes = reponse.split('¤');
                  var erreur = false;
                  if(tabRes.length >= 5){
                    if(tabRes[0] != 'OK') erreur = true;
                    else if(isNaN(parseInt(tabRes[1], 10))) erreur = true;
                    else {
                      var nbAlias = parseInt(tabRes[1], 10);

                      var liste = elem('login_alias');
                      viderNoeud(liste);
                      elem('login_email').disabled = true;
                      elem('login_pass').disabled = true;
                      elem("remember_container").style.display = "none";
                      elem("alias_container").style.display = "block";
                      
                      for(var i=0; i<nbAlias; i++){
                        var opt = document.createElement('option');
                        opt.setAttribute('value', tabRes[i+2]);
                        opt.appendChild(document.createTextNode(tabRes[i+2]));
                        liste.appendChild(opt);
                      }
                      
                      var h1 = tabRes[tabRes.length - 2];
                      var h2 = tabRes[tabRes.length - 1];
                      gh1 = h1;
                      gh2 = h2;
                      
                      // Si il a demandé à mémoriser son compte
                      if(getCookieInfo("noAutoLogin") != "1"){
                        setCookieInfo("h1", h1);
                        setCookieInfo("h2", h2);
                      }

                      effacerMessages();

                    }
                  } else erreur = true;
                  if(erreur) messageErreur("Une erreur s'est produite", "Merci de renouveller l'opération. Si le problème persiste, contacte-nous.");
                }
                break;
        }
        
        // Réponse login première étape autologin
        case 35: {

          if(reponse == '-1' || reponse == '0'){
            // Identification échouée
            //alert("Repponse = "+reponse);
            
            // On efface les paramètres mémorisés
            setCookieInfo("h1", "");
            setCookieInfo("h2", "");
            setCookieInfo("alias", "");

            effacerMessages();
          } else if(reponse == '1'){
            messageErreur("Tu n'as pas encore validé ton inscription", "Une confirmation d'inscription a été envoyée par email.<br>Suis les instructions pour valider ton inscription.<br>Si tu n'as pas reçu cet email plus de 24h après ton inscription, <a href=\"mailto:info@omail.fr\">contacte-nous à info@omail.fr</a> en précisant ton pseudo.");
          } else if(reponse == '2'){
            messageErreur("Tu es exclu du tchat.", "La durée de l'exclusion a été indiquée lorsque tu as été déconnecté. Si tu penses qu'il s'agit d'une erreur, contacte-nous en précisant ton pseudo.");
          } else {
            // Identification réussie
            var tabRes = new Array();
            tabRes = reponse.split('¤');
            var erreur = false;
            if(tabRes.length >= 5){
              if(tabRes[0] != 'OK') erreur = true;
              else if(isNaN(parseInt(tabRes[1], 10))) erreur = true;
              else {
                var nbAlias = parseInt(tabRes[1], 10);

                var liste = elem('login_alias');
                viderNoeud(liste);
                elem('login_email').disabled = true;
                elem('login_pass').disabled = true;
                elem("remember_container").style.display = "none";
                elem("alias_container").style.display = "block";
                elem("btAutreCompte").style.visibility = "visible";

                var lastAliasUsed = getCookieInfo("alias");
                
                for(var i=0; i<nbAlias; i++){
                  var opt = document.createElement('option');
                  opt.setAttribute('value', tabRes[i+2]);
                  
                  if(lastAliasUsed == tabRes[i+2]){
                    opt.setAttribute("selected", "true");
                  }

                  opt.appendChild(document.createTextNode(tabRes[i+2]));
                  liste.appendChild(opt);
                }
                
                // Préremplissage des champs
                var em = tabRes[tabRes.length - 2];
                var pa = tabRes[tabRes.length - 1];
                elem('login_email').value = em;
                elem('login_pass').value = pa;
                //alert("Mot de passe: "+pa);
                effacerMessages();
              }
            } else erreur = true;
            if(erreur) messageErreur("Une erreur s'est produite", "Merci de renouveller l'opération. Si le problème persiste, contacte-nous.");
          }
          break;
        }
        
        /* Réponse login seconde étape */
        case 5: {
             if(reponse == 'OK') window.location.href='tchat.htm';
             else messageErreur("Une erreur s'est produite", "Merci de renouveller l'opération. Si le problème persiste, contacte-nous.");
             break;
        }
  }
}



/****************************/
/* Utilitaires divers       */
/****************************/

function messageErreur(titre, texte){
  elem("info").style.display = "none";
  elem("infoBis").style.display = "none";
  elem("erreur").style.display = "block";
  elem("erreur_titre").innerHTML = titre;
  elem("erreur_message").innerHTML = texte;
}

function messageInfo(texte){
  elem("erreur").style.display = "none";
  elem("infoBis").style.display = "none";
  elem("info").style.display = "block";
  elem("info_message").innerHTML = texte;
}

function messageInfoBis(texte){
  elem("erreur").style.display = "none";
  elem("info").style.display = "none";
  elem("infoBis").style.display = "block";
  elem("info_message_bis").innerHTML = texte;
}


function effacerMessages(){
  elem("erreur").style.display = "none";
  elem("info").style.display = "none";
}

function nettoyerVariable(texte){
  var reg=new RegExp("\"", "g");
  return texte.replace(reg,"''");

}

var urlBase = "omail.php";

function ajax(action, params){
  makeRequest(action, urlBase + '?action='+action+'&' + params);
}

function makeRequest(action, url) {
	var httpRequest = false;
	
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		httpRequest = new XMLHttpRequest();
		if (httpRequest.overrideMimeType) {
			httpRequest.overrideMimeType('text/plain');
			// Voir la note ci-dessous à propos de cette ligne
		}
	}
	else if (window.ActiveXObject) { // IE
		try {
			httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e) {
			try {
				httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) {}
		}
	}
	
	if (!httpRequest) {
		messageErreur("Ton navigateur n'est pas compatible", "Tu utilises un navigateur internet trop ancien... Nous te conseillons d'installer gratuitement Firefox.");
		return false;
	}
	httpRequest.onreadystatechange = function() { alertContents(action, httpRequest); };
	httpRequest.open('GET', url, true);
	httpRequest.send(null);
}

function alertContents(action, httpRequest) {
	if (httpRequest.readyState == 4) {
		if (httpRequest.status == 200) {
			requeteTerminee(action, httpRequest.responseText);
		} else {
		}
	}
}

function crypte(texte){
  return encodeURIComponent(texte);
}


function viderNoeud(n){
	while(n.hasChildNodes()){
		n.removeChild(n.firstChild);
	}
}

/* Retourne la valeur d'un paramètre passé en GET dans l'url de la page */
/* Le nom du paramètre est sensible à la casse */
/* Retourne une chaîne vide si le paramètre n'est pas défini */
function getURLParam(paramName){	
	var t = location.search.substring(1).split('&');
	var f = [];
	for (var i=0; i<t.length; i++){
		var x = t[ i ].split('=');
		if(x[0] == paramName) return x[1];
	}

	return "";
}

