//Vars globales pour savoir si le pseudo et l'email sotn dispos.
var pseudoDispo = false;
var emailDispo  = false;


function div(divName){
	return document.getElementById(divName);
}



function showCompteForum(){
	div("questionForum").style.display = "none";
	div("compteForum").style.display = "block";
}

function hideCompteForum(){
	div("compteForum").style.display = "none";
	div("questionForum").style.display = "block";
	div("compteForumFalse").checked = "checked";
	return false; //pour empêcher la validation du formulaire d'inscription
}

function checkCompteForum(){
	var login = div("loginForum").value;
	var pass  = div("passForum").value;
	var params="login="+login+"&pass="+pass;
	var requete = creerRequete(); /* initalise la variable globale "requete" */
    var url = 'index.php?ajax=checkcompteforum'; /* On définit l'url à appeller en passant cette valeur */
    
    requete.open('POST', url, true); /* Pr&eacute;paration d'une requête asynchrone de type GET */
    //Send the proper header information along with the request
    requete.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    requete.setRequestHeader("Content-length", params.length);
    requete.setRequestHeader("Connection", "close");
    
    
    requete.onreadystatechange = function()
    {    
	    if(requete.readyState == 4) 
	    { /* 4 signifie que l'état est "complete" */
		    if(requete.status == 200) 
		    { /* code HTTP si tout est ok */
			    resultat = requete.responseText; /* Traitement de la réponse, on met à jour notre span 'zoneMessage'*/

			    if(resultat == "false")
			    {	
					alert("Erreur d'identification au compte forum");
			    }
			    else
			    {
			    	div("compteForum").innerHTML = "Compte forum lié !";
			    	div("idCompteForum").value = resultat;
			    }
		    
		    }
	    }
    };
    //
    requete.send(params); /* Effectue la requête */
	
	
	
	
	return false; //pour empêcher la validation du formulaire d'inscription
}


function creerRequete() 
{
    var requete = null;
    
    try 
    {
        requete = new XMLHttpRequest(); /* On essaye de créer un objet XmlHTTPRequest */
    } 
    catch (microsoft) 
    {
        /* Microsoft utilise une autre technique, on tente de créer un objet ActiveX */
        try 
	{
            requete = new ActiveXObject('Msxml2.XMLHTTP');
        }
	catch(autremicrosoft) 
	{
            /* On en teste une autre méthode si la première n'a pas marchée */
            try 
	    {
                requete = new ActiveXObject('Microsoft.XMLHTTP');
            } catch(echec) {
                /* Si aucune méthode ne fonctionne, il ne reste plus qu'à mettre à jour le navigateur ! */
                requete = null;
            }
        }
    }
    if(requete == null) 
    {
        alert('Votre navigateur ne semble pas supporter les objets XMLHttpRequest.');
    }
    
    return requete;
}


function pseudoDisponible(pseudo) 
{
    var requete = creerRequete(); /* initalise la variable globale "requete" */
    var url = 'index.php?ajax=ispseudofree';/* On définie l'url à appeller en passant cette valeur */
    
    var params = 'pseudo='+pseudo;

    requete.open('POST', url, true); /* Préparation d'une requête asynchrone de type GET */
    //Send the proper header information along with the request
    requete.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    requete.setRequestHeader("Content-length", params.length);
    requete.setRequestHeader("Connection", "close");
    requete.onreadystatechange = function()
    {    
	    if(requete.readyState == 4) 
	    { /* 4 signifie que l'état est "complete" */
		    if(requete.status == 200) 
		    { /* code HTTP si tout est ok */
			    resultat = requete.responseText; /* Traitement de la réponse, on met à jour notre span 'zoneMessage'*/
			    if(resultat == "false")
			    {	
				alert(" Pseudo déjà utilisé/ \n Pseudo already used");
				pseudoDispo = false;
			    }
			    else
			    {
				pseudoDispo = true;
			    }
		    
		    }
	    }
    };
    //
    requete.send(params); /* Effectue la requête */
}

function emailDisponible(email) 
{
    var requete = creerRequete(); /* initalise la variable globale "requete" */
    var url = 'index.php?ajax=isemailfree';/* On définie l'url à appeller en passant cette valeur */
    
    var params = 'email='+email;

    requete.open('POST', url, true); /* Préparation d'une requête asynchrone de type GET */
    //Send the proper header information along with the request
    requete.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    requete.setRequestHeader("Content-length", params.length);
    requete.setRequestHeader("Connection", "close");
    requete.onreadystatechange = function()
    {    
	    if(requete.readyState == 4) 
	    { /* 4 signifie que l'état est "complete" */
		    if(requete.status == 200) 
		    { /* code HTTP si tout est ok */
			    resultat = requete.responseText; /* Traitement de la réponse, on met à jour notre span 'zoneMessage'*/

			    if(resultat == "false")
			    {	
				alert(" Email déjà utilisée;/ \n Email address already used");
				emailDispo = false;
			    }
			    else
			    {
				emailDispo = true;
			    }
		    
		    }
	    }
    };
    //
    requete.send(params); /* Effectue la requête */
}

function verifierPseudo(pseudo)
{
    var requete = creerRequete();
    
    var reg= /^[a-zA-Z][a-zA-Z0-9-']{2,}$/;

    if(reg.test(pseudo) && pseudo.length >3)
    {
	
	pseudoDisponible(pseudo) ;
	return true;
    }
    else
    {
	alert('Pseudo invalide');
	return false;
    }

}


function verifierMotsdePasse()
{
    if(document.formulaire.pass.value != document.formulaire.pass2.value)
    {
	alert(" Les mots de passe ne correspondent pas \n Passwords aren't equals");
	return false;
    }
    else
    {
	if(document.formulaire.pass.value.length < 6)
	{
	    alert(" Votre mot de passe doit faire au minimum 6 caractères. \n Your password must be at least 6 characters long.");
	    return false;
	}
	else
	{
	    return true;
	}
    }
}


function verifierEmail(email)
{
    var reg= /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})+$/;
    
    if(reg.test(email))
    {
	return emailDisponible(email);	
    }
    else
    {
	alert(" Votre adresse email est invalide \n Your email address is invalid");
	return false ;
    }

}

function verifReglement(checkbox,checkbox2)
{
    if(!checkbox || !checkbox2){
	alert(" Vous devez accepter le règlement \n You have to accept rules");
	return false;
    }
    return true;
     

}


function verifierFormulaire(formulaire)
{    
	emailDisponible(formulaire.email.value);
    if((formulaire.email.value != "") && (formulaire.reponseQuestion.value != "") && verifReglement(formulaire.reglement.checked,formulaire.reglement2.checked)&& pseudoDispo && emailDispo )
    {
	return true;
    }
    else
    {
	alert("Certains champs sont erronés \nSome fields are wrong"); 
	
	if(!pseudoDispo){
		alert("Pseudo vide ou déjà utilisé");
	}
	if(!emailDispo){
		alert("Email vide ou déjà utilisé");
	}
	return false;
    }

}


