// Fonctions Javascript utilisées sur la page d'index de bookme

// Retourne un tableau contenant les dimensions de la page courante
// Code tiré de - quirksmode.org
function getPageSize(){
	
	var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	
	var windowWidth, windowHeight;
	if (self.innerHeight) {	// all except Explorer
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	
	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){	
		pageWidth = windowWidth;
	} else {
		pageWidth = xScroll;
	}


	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
	return arrayPageSize;
}

// Fonction de fermeture des formulaires
function fermerForm() {
	gestionFormulaire('form_inscription', 0, '');
	gestionFormulaire('form_contact', 0, '');
	gestionFormulaire('mdp_perdu', 0, '');
	gestionOverlay(0);
}

// Fonction de gestion de l'overlay
// Paramètre action : 0- masquer l'overlay; 1- afficher l'overlay
function gestionOverlay(action) {
	var tableauTailleFenetre = getPageSize();
	var objOverlay = document.getElementById('overlay');
	objOverlay.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="/charte/overlay.png", sizingMethod="scale");';
	if(action == 0)
		objOverlay.style.display = 'none';		
	else {
		if (!self.innerHeight && document.documentElement && document.documentElement.clientHeight) { // Gestion largeur IE
			objOverlay.style.width = (tableauTailleFenetre[0] + 'px');
		}
		objOverlay.style.height = (tableauTailleFenetre[1] + 'px');
		objOverlay.style.display = 'block';		
	}
}

// Fonction de gestion des formulaires
// Paramètres : identifiant du formulaire
//				0- masquer le formulaire; 1- Afficher le formulaire
//				champs qui reçoit le focus
function gestionFormulaire(idForm, action, nomFocus) {
	var objFormulaire = document.getElementById(idForm);
	if(action == 0) {
		objFormulaire.style.display = 'none';
		gestionOverlay(0);
	}
	else {		
		var objChampsFocus = document.getElementById(nomFocus);
		gestionOverlay(1);
		objFormulaire.style.display = 'block';
		objChampsFocus.focus();
	}
	return false;
}

// Affichage d'un cadre de chargement
function messageChargement(etat) {
	objChargement = document.getElementById('message_chargement');
	if(etat == 1) {
		objChargement.style.display = 'block';
		objChargement.innerHTML = 'Chargement...';
	}
	else {
		objChargement.style.display = 'none';
	}
}

function testCondition() {
	var sChecked = document.getElementById('condition');
	var message = document.getElementById('conditions_generales');
	if(sChecked.checked) {
		message.style.color = '#000';		
		return true;
	}
	else {
		message.style.color = '#BF4949';
		return false;
	}
}

function testChaine(element) {
	
	var lElement;
	if(this.id) {
		lElement = this;
	}
	else {
		lElement = element;
	}
	
	var filter = /^([a-zA-Z\-éèùëêïîôöç])+\s?$/;
	var sTexte = document.getElementById(lElement.id).value;
	var message = document.getElementById('resultat'+lElement.id);
	if( sTexte =='' ) {
		message.innerHTML = '<img src="charte/erreur.gif" alt="champs non validé" />&nbsp;Champs obligatoire';
		return false;
	}
	else if (!filter.test(sTexte)) {
		message.innerHTML = '<img src="charte/erreur.gif" alt="champs non validé" />&nbsp;Caractères invalides';
		return false;
	}
	else if(sTexte.length > 30 ) {
		message.innerHTML = '<img src="charte/erreur.gif" alt="champs non validé" />';
		return false;
	}
	else {
		message.innerHTML = '<img src="charte/ok.gif" alt="champs validé" />';
		return true;
	} 
}

function testEmail() {
	var filter = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	var semail = document.getElementById('email').value;
	var message = document.getElementById('resultatemail');
	if( semail =='' ) {
		message.innerHTML = '<img src="charte/erreur.gif" alt="champs non validé" />&nbsp;Champs obligatoire';
		return false;
	}
	else if (!filter.test(semail)) {
		message.innerHTML = '<img src="charte/erreur.gif" alt="champs non validé" />&nbsp;Format incorrect';
		return false;
	}
	else {
		verifEmail();
		return true;
	}
}

function testcEmail() {
	var filter = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	var semail = document.getElementById('cemail').value;
	var message = document.getElementById('resultatcemail');
	if( semail =='' ) {
		message.innerHTML = '<img src="charte/erreur.gif" alt="champs non validé" />&nbsp;Champs obligatoire';
		return false;
	}
	else if (!filter.test(semail)) {
		message.innerHTML = '<img src="charte/erreur.gif" alt="champs non validé" />&nbsp;Format incorrect';
		return false;
	}
	else {
		message.innerHTML = '<img src="charte/ok.gif" alt="champs validé" />';
		return true;
	}
}

function testMdpEmail() {
	var filter = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	var semail = document.getElementById('mdp_email').value;
	var message = document.getElementById('resultatMemail');
	if( semail =='' ) {
		message.innerHTML = '<img src="charte/erreur.gif" alt="champs non validé" />&nbsp;Champs obligatoire';
		return false;
	}
	else if (!filter.test(semail)) {
		message.innerHTML = '<img src="charte/erreur.gif" alt="champs non validé" />&nbsp;Format incorrect';
		return false;
	}
	else {
		verifMdpEmail();
		return true;
	}
}

function testMdp() {
	var mdp = document.getElementById('mdp').value;
	var message = document.getElementById('resultatmdp');
	if(mdp.length < 5)
	{
		if(mdp.length == 0)
			message.innerHTML = '<img src="charte/erreur.gif" alt="champs non validé" />&nbsp;Champs obligatoire';
		else
			message.innerHTML = '<img src="charte/erreur.gif" alt="champs non validé" />&nbsp;5 caratères minimum';
		return false;
	}
	else {
		if(mdp.length > 10) {
			message.innerHTML = '<img src="charte/erreur.gif" alt="champs non validé" />&nbsp;10 caratères maximum';
			return false;    
		}
		else {
			message.innerHTML = '<img src="charte/ok.gif" alt="champs validé" />';
			return true;
		}
	}
}

function testConfirmation() {
	
	var mdp = document.getElementById('mdp').value;
	var confirmation = document.getElementById('confirmation').value;
	var message = document.getElementById('resultatconfirm');
	
	if (mdp == confirmation && confirmation != "" && confirmation.length > 4 && confirmation.length < 11 ) {
		message.innerHTML = '<img src="charte/ok.gif" alt="champs validé" />';
		return true;
	}
	else {
		if(confirmation.length == 0)
			message.innerHTML = '<img src="charte/erreur.gif" alt="champs non validé" />&nbsp;Champs obligatoire';
		else
			message.innerHTML = '<img src="charte/erreur.gif" alt="champs non validé" />&nbsp;Erreur de confirmation';
		return false;
	}
}

function testcMsg() {
	var msg = document.getElementById('cmsg').value;
	var message = document.getElementById('resultatcmsg');
	
	if(msg.length == 0){
		message.innerHTML = '<img src="charte/erreur.gif" alt="champs non validé" />';
		return false;
	}
	else {
			message.innerHTML = '<img src="charte/ok.gif" alt="champs validé" />';
			return true;
	}
}

function verifInscription() {
	// Lancement des tests de vérifications de saisies
	testChaine(document.getElementById('nom'));
	testChaine(document.getElementById('prenom'));
	testEmail();
	testMdp();
	testConfirmation();
	testCondition();
	
	// Si tous les tests sont OK :
	if ((testChaine(document.getElementById('nom'))) && (testChaine(document.getElementById('prenom'))) && (testEmail()) && (testMdp()) && (testConfirmation()) && (testCondition())) {
		// On envoi les données au serveur pour enregistrer l'utilisateur
		enregistrementUtilisateur(document.getElementById('nom').value, document.getElementById('prenom').value, document.getElementById('email').value, document.getElementById('mdp').value);
		// Fermeture du formulaire
		fermerForm();
		return false;
	} 
	return false;
}

function verifContact() {
	// Lancement des tests de vérifications de saisies
	testChaine(document.getElementById('cnom'));
	testcEmail();
	testcMsg();

	// Si tous les tests sont OK :
	if ((testChaine(document.getElementById('cnom'))) && (testcEmail()) && (testcMsg())) {
		// On envoi les données au serveur pour enregistrer l'utilisateur
		sendContact(document.getElementById('cnom').value, document.getElementById('cprenom').value, document.getElementById('cemail').value, document.getElementById('cmsg').value);
		remplirConfirm();
		return false;
	} 
	return false;
}

function verifMdpPerdu() {
	testMdpEmail();
	if (testMdpEmail()) {
		sendData(
		'POST',
		'action_serveur/action_index_motdepasse.php',
		'xmlhttp=1&'+
		'generer_email=true&'+
		'email='+document.getElementById('mdp_email').value,
		4); 
		return false;
	}
	return false;
}



function remplirConfirm(){
	var message = document.getElementById('confirmTexte');
	var nom = document.getElementById('cnom').value;
	var prenom = document.getElementById('cprenom').value;
	var email = document.getElementById('cemail').value;
	var msg = document.getElementById('cmsg').value;
	message.innerHTML = "";
	message.innerHTML += "<legend><img src='charte/etoile.gif' alt='' />Confirmation</legend>";
	message.innerHTML += "<p>&nbsp;</p>";
	message.innerHTML += "<span id='fermer_confirm2'>retour accueil</span><br /><br />";
	message.innerHTML += "Votre message nous a bien été transmis, nous tâcherons d'y répondre dans les plus brefs délais.<br /><br />Les informations suivantes ont été envoyées : <br />";
	message.innerHTML += "<br />Nom :" + nom;
	if(prenom != "")
		message.innerHTML += "<br />Prénom :" + prenom;
	message.innerHTML += "<br />E-mail :" + email;
	message.innerHTML += "<br />Message :<br />" + msg;
	message.innerHTML += "<p>&nbsp;</p>";
	message.innerHTML += "Vous pouvez également nous écrire à l'adresse suivante : contact@ideance.net.";
	document.getElementById('fermer_confirm2').onclick = fermerForm;
}

function remplirMdpPerdu(){
	var message = document.getElementById('confirmMdpPerdu');
	message.innerHTML = "";
	message.innerHTML += "<legend><img src='charte/etoile.gif' alt='' />Mot de passe perdu</legend>";
	message.innerHTML += "<span id='fermer_confirm3'>retour accueil</span><br /><br />";
	message.innerHTML += "Vous allez recevoir votre mot de passe par mail, nous vous recommandons de le modifier lors de votre prochaine connexion sur Bookme.<br />";
	document.getElementById('fermer_confirm3').onclick = fermerForm;
}