// Vérification des données liées à la configuration du blog et à l'inscription

// pour limiter le nombre de caractères de la description

function limiteur(textarea,maximum)

{

    if (textarea.value.length > maximum)

      textarea.value = textarea.value.substring(0, maximum);

    else

      document.getElementById("indicateur").innerHTML = (maximum - textarea.value.length).toString();

}

// pour vérifier la validité d'un pseudo

function verifPseudo(pseudo)

{

	var returnValue = false;

	

	if(pseudo=='') // vide ?

		writediv('pseudobox','<span style="color:#cc0000"><img src="Images/invalid.gif" alt="" /> Veuillez saisir un nom</span>');

	else if(pseudo.length < 2) // trop court ?

		writediv('pseudobox','<span style="color:#cc0000"><img src="Images/invalid.gif" alt="" /> Le pseudo doit contenir au moins 2 caractères</span>');

	else if(pseudo.length>30)  // trop long ?

		writediv('pseudobox','<span style="color:#cc0000"><img src="Images/invalid.gif" alt="" /> Le pseudo doit contenir au maximum 30 caractères</span>');

	else

	{

		var reponse = file('http://' + document.location.host + '/ajax_inscription.php', 'pseudo='+escape(pseudo)+'&fonction=verifpseudo');

		if (reponse == 'mauvais format')

			writediv('pseudobox','<span style="color:#cc0000"><img src="Images/invalid.gif" alt="" /> Seuls les lettres, les chiffres, "-" et" _" sont autorisés');

		else if(reponse == 'existe deja')

			writediv('pseudobox','<span style="color:#cc0000"><img src="Images/invalid.gif" alt="" /> Ce pseudo est déjà utilisé par un autre membre</span>');

		else if(reponse == 'ok')

		{

			writediv('pseudobox','<span style="color:#1A7917"><img src="Images/valid.gif" alt="" /></span>');

			returnValue = true;

		}

	}

	

	return returnValue;

}

function activeMotDePasse()

{

	// Si l'accès par mot de passe a été sélectionné :

	// On désactive les champ relatifs aux pings, aux moteurs de recherches, et à la visibilité sur Iblogyou

	if(document.getElementById('acces_mdp_oui').checked == true)

	{

//		document.getElementById('pingOui').checked  = false;

//		document.getElementById('pingOui').disable  = true;

//		document.getElementById('pingNon').checked  = true;

//		document.getElementById('pingNon').disabled = true;

		document.getElementById('moteurs_oui').checked  = false;

		document.getElementById('moteurs_oui').disabled = true;

		document.getElementById('moteurs_non').checked  = true;

		document.getElementById('moteurs_non').disabled = true;

		document.getElementById('public_annuaire_oui').checked  = false;

		document.getElementById('public_annuaire_oui').disabled = true;

		document.getElementById('public_annuaire_non').checked  = true;

		document.getElementById('public_annuaire_non').disabled = true;

		Effect.BlindDown('saisie_mdp_vip_div');

		Effect.BlindDown('mdp_vip_msg');

	}

}

function desactiveMotDePasse()

{

	// Si l'accès par mot de passe n'est pas utilisé :

	// On active les champ relatifs aux pings, aux moteurs de recherches, et à la visibilité sur Iblogyou

	if(document.getElementById('acces_mdp_oui').checked == false)

	{

//		document.getElementById('pingOui').checked  = true;

//		document.getElementById('pingOui').disabled = false;

//		document.getElementById('pingNon').checked  = false;

//		document.getElementById('pingNon').disabled = false;

		document.getElementById('moteurs_oui').checked  = true;

		document.getElementById('moteurs_oui').disabled = false;

		document.getElementById('moteurs_non').checked  = false;

		document.getElementById('moteurs_non').disabled = false;

		document.getElementById('public_annuaire_oui').checked  = true;

		document.getElementById('public_annuaire_oui').disabled = false;

		document.getElementById('public_annuaire_non').checked  = false;

		document.getElementById('public_annuaire_non').disabled = false;

		Effect.BlindUp('saisie_mdp_vip_div');

		Effect.BlindUp('mdp_vip_msg');

	}

}

// verification de la validité du mot de passe et de sa confirmation

// email : la premiere saisie de l'email

// emailconf : la deuxieme saisie de l'email (la confirmation)

// contexte  : d'où on appelle la fonction ("saisie1", "saisieconf", "submit"")

function verifmdp(mdp, mdpconf, contexte)

{

	var msgErreur1 = '';

	var msgErreur2 = '';

	

	if(contexte=='saisie1' || contexte=='submit') // onblur premier champ de saisie

	{

		if(mdp=='')// vide ?

			msgErreur1=' Veuillez saisir un mot de passe';

		else if(mdp.length<6)

			msgErreur1=' Le mot de passe doit contenir au moins 6 caractères';

		else

		{

			var modele = /^[a-zA-Z0-9]+$/i;

			if(!modele.test(mdp))

				msgErreur1=' Le mot de passe ne peut être constitué que de chiffres et de lettres';

		}

		if(msgErreur1!='')

			writediv('mdpbox','<span style="color:#cc0000"><img src="Images/invalid.gif" alt="" />'+msgErreur1+'</span>');

		else

			writediv('mdpbox','<span style="color:#1A7917"><img src="Images/valid.gif" alt="" /></span>');

	}

	else if(contexte=='saisieconf' || contexte=='submit') // onblur champ de confirmation, ou submit

	{

		if(mdpconf=='')// vide ?

			msgErreur2=' Veuillez confirmer le mot de passe';

		else if(mdpconf!=mdp)// saisie1 et confirmation identiques ?

			msgErreur2=' La confirmation ne correspond pas au mot de passe saisi ci-dessus';

		if(msgErreur2!='')

			writediv('confbox','<span style="color:#cc0000"><img src="Images/invalid.gif" alt="" />'+msgErreur2+'</span>');

		else

			writediv('confbox','<span style="color:#1A7917"><img src="Images/valid.gif" alt="" /></span>');

	}	

	

	return (msgErreur1 == '' && msgErreur2 == '');

}

// verification de la validité de l'email et de la confirmation de l'email

// email : la premiere saisie de l'email

// emailconf : la deuxieme saisie de l'email (la confirmation)

// contexte  : d'où on appelle la fonction ("saisie1", "saisieconf", "submit"")

function verifemail(email, emailconf, contexte)

{

	var msgErreur1 = '';

	var msgErreur2 = '';

	

	if(contexte=='saisie1' || contexte=='submit') // onblur premier champ de saisie

	{

		if(email=='')// vide ?

			msgErreur1=' Veuillez saisir une adresse e-mail';

		else// format de l'e-mail erroné ?

		{

			var modele = /^[a-z0-9\-_\.]+@[-a-z0-9]+\.[a-z]{2,5}$/i;

			if(!modele.test(email))

				msgErreur1=' Cette adresse e-mail n\'est pas valide';

		}

		if(msgErreur1!='')

			writediv('emailbox','<span style="color:#cc0000"><img src="Images/invalid.gif" alt="" />'+msgErreur1+'</span>');

		else

			writediv('emailbox','<span style="color:#1A7917"><img src="Images/valid.gif" alt="" /></span>');

	}

	if(contexte=='saisieconf' || contexte=='submit') // onblur champ de confirmation, ou submit

	{

		if(emailconf=='')// vide ?

			msgErreur2=' Veuillez confirmer l\'adresse e-mail';

		if(emailconf!=email)// saisie1 et confirmation identiques ?

			msgErreur2=' La confirmation ne correspond pas à l\'adresse e-mail saisie ci-dessus. Notez que si vous ne donnez pas une adresse valide, vous ne pourrez pas activer votre compte.';

		if(msgErreur2!='')

			writediv('emailconfbox','<span style="color:#cc0000"><img src="Images/invalid.gif" alt="" />'+msgErreur2+'</span>');

		else

			writediv('emailconfbox','<span style="color:#1A7917"><img src="Images/valid.gif" alt="" /></span>');

	}	

	

	return (msgErreur1 == '' && msgErreur2 == '');s

}

// pour remplacer le contenu d'un div

function writediv(nomDiv, texte)

{

	document.getElementById(nomDiv).innerHTML = texte;

}



// Pour faire de l'ajax

function file(fichier, parametres)

{

	if(window.XMLHttpRequest) // FIREFOX

		xhr_object = new XMLHttpRequest();

	else if(window.ActiveXObject) // IE

		xhr_object = new ActiveXObject("Microsoft.XMLHTTP");

	else

		return(false);

	xhr_object.open("POST", fichier, false); // false == mode synchrone

	xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 

	xhr_object.send(parametres);

	

   if(xhr_object.readyState == 4)

	 return  xhr_object.responseText;

}

// POUR LES PREFERENCES.PHP

// Verfie si un champ de saisie (champ normal ou textarea) est vide et ecrit un message d'erreur le cas échéant

// param : valeurChampDeSaisie -> la 'value' du champ 

// param : divMessage -> le div qui contiendra les éventuels messages d'erreur

function verifChampSaisieVide(champDeSaisie, idDivMessage)

{ 

	if(champDeSaisie.value == "" )

	{

		if(idDivMessage == "titre_msg")

			writediv(idDivMessage, 'Veuillez saisir un titre');

		if(idDivMessage == "soustitre_msg")

			writediv(idDivMessage, 'Veuillez saisir un sous-titre');

		if(idDivMessage == "description_msg")

			writediv(idDivMessage, 'Veuillez saisir une description');

		if(idDivMessage == "mdp_vip_msg")

			writediv(idDivMessage, 'Veuillez saisir un mot de passe');

		champDeSaisie.className = 'border_rouge';

	}

	else

	{

		writediv(idDivMessage, '');

		champDeSaisie.className = 'border_gris';

	}

}

// submit dans les préférences

function monSubmit()

{

	verifChampSaisieVide(document.config.titre, "titre_msg");

	verifChampSaisieVide(document.config.soustitre, "soustitre_msg");

	verifChampSaisieVide(document.config.description, "description_msg");

	verifMdpVip(document.config.acces_mdp_oui.checked, document.config.saisie_mdp_vip, 'mdp_vip_msg');

	if( document.getElementById('titre_msg').innerHTML != "" ||

		document.getElementById('soustitre_msg').innerHTML != "" ||

		document.getElementById('description_msg').innerHTML != "" ||

		document.getElementById('tags_msg').innerHTML != "" ||

		document.getElementById('mdp_vip_msg').innerHTML != ""

	  )

	{

		writediv("submit_msg", "Il y a des erreurs, veuillez vous référer aux indications correspondantes afin de les corriger.<br />Vos modifications n'ont <b>pas</b> été enregistrées.");

		return false;

	}

	else

	{

		writediv("submit_msg", "<span class=\"enregistrement\">Enregistrement en cours...</span>");

		return true;

	}

}

// pour vérifier si le mot de passe visiteurs est coorectement saisi (uniquement si cette fonctionnalité a été activée !)

// param : activationAccesMdp -> false si inactif, true si actif

// param : champSaisieMdp -> l'objet champ de saisie

// param : idDivMessage -> l'id du div contenant le mesage d'erreur

function verifMdpVip(activationAccesMdp, champSaisieMdp, idDivMessage)

{

	if(activationAccesMdp== true )

	{

		document.getElementById('mdp_vip_msg').className='form_erreur';

		if(champSaisieMdp.value == "")

		{

			writediv(idDivMessage, 'Veuillez saisir un mot de passe');

			champSaisieMdp.className = 'border_rouge';

		}

		else

		{

			champSaisieMdp.className = 'border_gris';

			writediv(idDivMessage, '');

		}

	}

	else

	{

		document.getElementById('saisie_mdp_vip').value='';

		writediv(idDivMessage, '');

	}

}

// pour vérifier la validité de la question secrète

function verifQuestion(question)

{

	var returnValue = false;

	

	if(question=='') // vide ?

		writediv('questionbox','<span style="color:#cc0000"><img src="Images/invalid.gif" alt="" /> Veuillez sélectionner une question</span>');

	else if(question!='0' && question!='1' && question!='2' && question!='3') // n'existe pas ?

		writediv('questionbox','<span style="color:#cc0000"><img src="Images/invalid.gif" alt="" /> Veuillez sélectionner une question</span>');

	else

	{

		writediv('questionbox','<span style="color:#1A7917"><img src="Images/valid.gif" alt="" /></span>');

		returnValue = true;

	}

	

	return returnValue;

}

// pour vérifier la validité de la réponse secrète

function verifReponse(reponse)

{

	var returnValue = false;

	

	if(reponse=='') // vide ?

		writediv('reponsebox','<span style="color:#cc0000"><img src="Images/invalid.gif" alt="" /> Veuillez saisir une réponse</span>');

	else

	{

		writediv('reponsebox','<span style="color:#1A7917"><img src="Images/valid.gif" alt="" /></span>');

		returnValue = true;

	}

	

	return returnValue;

}

// pour vérifier la validité de la description

function verifDescription(description)

{

	var returnValue = false;

	

	if(description=='') // vide ?

		writediv('descriptionbox','<span style="color:#cc0000"><img src="Images/invalid.gif" alt="" /> Veuillez saisir une description</span>');

	else

	{

		writediv('descriptionbox','<span style="color:#1A7917"><img src="Images/valid.gif" alt="" /></span>');

		returnValue = true;

	}

	

	return returnValue;

}

// Submit de la première étape de l'inscription

function submitInscriptionEtape1()

{

	var test = true;

	
	if(!verifPseudo(document.getElementById('pseudo2').value))

		test = false;

		

	if(!verifmdp(document.getElementById('mdp').value, document.getElementById('confirmation').value, 'submit'))

		test = false;

	

	if(!verifemail(document.getElementById('email').value, document.getElementById('emailConf').value, 'submit'))

		test = false;

		

	if(!verifQuestion(document.inscription.question.value))

		test = false;

		

	if(!verifReponse(document.inscription.reponse.value))

		test = false;

	

	if(test)

		document.inscription.submit();

}

// Submit de la deuxième étape de l'inscription

function submitInscriptionEtape2(pageDeDestination)

{

	document.getElementById('pageDeDestination').value = pageDeDestination;

	

	var test = true;

	

	if(!verifTitre(document.getElementById('titre').value))

		test = false;

		

	if(!verifSoustitre(document.getElementById('soustitre').value))

		test = false;

	

	if(!verifDescription(document.getElementById('description').value))

		test = false;

		

	if(test)

		document.inscription.submit();

}

// pour vérifier la validité du titre

function verifTitre(titre)

{

	var returnValue = false;

	

	if(titre=='') // vide ?

		writediv('titrebox','<span style="color:#cc0000"><img src="Images/invalid.gif" alt="" /> Veuillez saisir un titre</span>');

	else

	{

		writediv('titrebox','<span style="color:#1A7917"><img src="Images/valid.gif" alt="" /></span>');

		returnValue = true;

	}

	

	return returnValue;

}

// pour vérifier la validité du sous-titre

function verifSoustitre(soustitre)

{

	var returnValue = false;

	

	if(soustitre=='') // vide ?

		writediv('soustitrebox','<span style="color:#cc0000"><img src="Images/invalid.gif" alt="" /> Veuillez saisir un titre</span>');

	else

	{

		writediv('soustitrebox','<span style="color:#1A7917"><img src="Images/valid.gif" alt="" /></span>');

		returnValue = true;

	}

	

	return returnValue;

}
