var req = null;

function submit_query() {
	recherche = document.getElementById('recherche');
	recherche.value += " site:www.medecine-voyages.fr";
}

function bad_id() {
	alert("Erreur lors de l'identification: identifiant ou mot de passe incorrect.");
}

function popup_help(id) {
	// largeur et hauteur
	var w = 400;
	var h = 300;
	// centrage
	var p_left = (screen.width) ? (screen.width-w) / 2 : 0;
	var p_top = (screen.height) ? (screen.height-h) / 2 : 0;
	var help = window.open('help.php5?id=' + id, 'aide', 'toolbar=no,location=no,status=no,menubar=no,resizable=no,width=' + w + ',height=' + h + ',top=' + p_top + ',left=' + p_left);

	if (help.window.focus) help.window.focus();
}

function popup_print(id, type) {
	// largeur et hauteur
	var w = 600;
	var h = 500;
	// centrage
	var p_left = (screen.width) ? (screen.width-w) / 2 : 0;
	var p_top = (screen.height) ? (screen.height-h) / 2 : 0;
	var pprint = window.open('print.php5?id=' + id + '&type=' + type, 'Impression', 'toolbar=no,location=no,status=no,menubar=no,resizable=no,width=' + w + ',height=' + h + ',top=' + p_top + ',left=' + p_left);

	if (pprint.window.focus) pprint.window.focus();
}

function popup(type) {
	// largeur et hauteur
	var w = 600;
	var h = 500;
	// centrage
	var p_left = (screen.width) ? (screen.width-w) / 2 : 0;
	var p_top = (screen.height) ? (screen.height-h) / 2 : 0;
	var p = window.open('popup.php5?type=' + type, type, 'toolbar=no,location=no,status=no,menubar=no,resizable=no,width=' + w + ',height=' + h + ',top=' + p_top + ',left=' + p_left);

	if (p.window.focus) {
		p.window.focus();
	}
}

function verif_inscription_site() {
	var login = document.getElementById('login');
	var mdp = document.getElementById('mdp');
	var confirm = document.getElementById('confirm');
	var err_msg = "";

	if (login != null && login.value == "") {
		err_msg += "L'identifiant doit être renseigné.";
	}

	if (mdp != null && mdp.value.length < 3) {
		err_msg += "Le mot de passe doit faire un minimum de 3 caractères.\n";
	}

	if (confirm != null && confirm.value != mdp.value) {
		err_msg += "Les deux mots de passe ne sont pas identiques. Veuillez vérifier votre saisie.\n";
	}

	if (err_msg != "") {
		alert(err_msg);
		return false;
	}

	return true;
}

/*non utilisée : permettrait après correction de contrôler si infirmier ou retraité.*/
/*function verif_reduction(){
	
	var statut = document.getElementById('statut');
	var profession = document.getElementById('profession');
	//cotisation = document.form.cot.getElementById('cotisation');
	
	var err_msg = "";
	//alert (cotisation[1].checked);
	if (cotisation[1].checked == true && profession.value != "infirmier" && statut.value != "retraité") {
		err_msg += "Les cotisations réduites s'appliquent aux infirmièr(e)s et aux retraité(e)s sur présentation d'un justificatif.\n";
	}
	
	if (err_msg != "") {
		alert(err_msg);
		return false;
	}

	return true;
}*/

var bold = false;
var italic = false;
var center = false;
var encadrer = false;
var titre = false;

function mepcode_b() {
	var bouton = document.getElementById('gras');
	var champ = document.getElementById('contenu');
	var tag = "";

	if (bold) {
		tag = "[/b]";
		bouton.value = "Gras";
	}
	else {
		tag = "[b]";
		bouton.value = "Gras*";
	}

	bold = !bold;
	champ.value += tag;
	champ.focus();
}

function mepcode_i() {
	var bouton = document.getElementById('italique');
	var champ = document.getElementById('contenu');
	var tag = "";

	if (italic) {
		tag = "[/i]";
		bouton.value = "Italique";
	}
	else {
		tag = "[i]";
		bouton.value = "Italique*";
	}

	italic = !italic;
	champ.value += tag;
	champ.focus();
}

function mepcode_c() {
	var bouton = document.getElementById('centrer');
	var champ = document.getElementById('contenu');
	var tag = "";

	if (center) {
		tag = "[/c]";
		bouton.value = "Centrer";
	}
	else {
		tag = "[c]";
		bouton.value = "Centrer*";
	}

	center = !center;
	champ.value += tag;
	champ.focus();
}

function mepcode_e() {
	var bouton = document.getElementById('encadrer');
	var champ = document.getElementById('contenu');
	var tag = "";

	if (encadrer) {
		tag = "[/e]";
		bouton.value = "Encadrer";
	}
	else {
		tag = "[e]";
		bouton.value = "Encadrer*";
	}

	encadrer = !encadrer;
	champ.value += tag;
	champ.focus();
}

function mepcode_t() {
	var bouton = document.getElementById('titre');
	var champ = document.getElementById('contenu');
	var tag = "";

	if (titre) {
		tag = "[/t]";
		bouton.value = "Titre";
	}
	else {
		tag = "[t]";
		bouton.value = "Titre*";
	}

	titre = !titre;
	champ.value += tag;
	champ.focus();
}

function mepcode_col() {
	var champ = document.getElementById('contenu');
	var cols = prompt('Nombre de colonnes:', 2);

	if (cols == null || isNaN(cols)) return;

	var rows = prompt('Nombre de lignes:', 2);

	if (rows == null || isNaN(rows)) return;

	var i;
	var j;
	var tableau = "\n";

	for (i = 0; i < rows; ++i) {

		for (j = 0; j < cols; ++j) {
			tableau += '[col][/col]';
		}

		tableau += "\n";
	}

	tableau += "\n";
	champ.value += tableau;
}

function mepcode_url() {
	var champ = document.getElementById('contenu');
	var url = prompt('Adresse internet:', 'http://');

	if (url == null) return;

	var description = prompt('Description:');
	var suffixe = "";

	if (description != "" && description != null) {
		suffixe = "|" + description;
	}

	champ.value += '\n[url]' + url + suffixe + '[/url]\n'
	champ.focus();
}

function mepcode_email() {
	var champ = document.getElementById('contenu');
	var email = prompt('Adresse email:');

	if (email == null) return;

	var description = prompt('Description:');
	var suffixe = "";

	if (description != "" && description != null) {
		suffixe = "|" + description;
	}

	champ.value += '\n[email]' + email + suffixe + '[/email]\n'
	champ.focus();
}

function mepcode_image() {
	var champ = document.getElementById('contenu');
	var url = prompt('Adresse de l\'image:', 'http://');

	if (url == null) return;

	champ.value += '\n[img]' + url + '[/img]\n'
	champ.focus();
}

function mepcode_size(size) {
	var champ = document.getElementById('contenu');
	var texte = prompt('Texte à redimensionner:');

	if (texte == null) texte = "";

	champ.value += '\n[' + size + ']' + texte + '[/' + size + ']\n'
	champ.focus();
}


function mail_exist(docXml) {
	var email = document.getElementById('email');
	var initial = document.getElementById('initial_email_value');
	var email_existe = docXml.getElementsByTagName('email_existe')[0].firstChild.nodeValue;

	if (email_existe == 1 && email != initial) {
		alert('L\'email choisit existe déjà dans notre base de donnée. Veuillez en saisir un autre.');
		email.focus();
	}
	else {
		var form = document.getElementById('form');

		if (!form) {
			form = document.getElementById('formule');
		}

		form.submit();
	}
}

function verif_mail() {
	var email = document.getElementById('email');
	var initial_value = document.getElementById('initial_email_value');

	if (email.value == initial_value.value || email.value == "") {
		var form = document.getElementById('form');

		if (!form) {
			form = document.getElementById('formule');
		}

		form.submit();
		return false;
	}

	var url = 'verif_mail.php5?email=' + encodeURIComponent(email.value);

	sendRequest('GET', url, true, mail_exist);
	return false;
}

function verif_inscription_ident() {
	var nom = document.getElementById('nom');
	var hid = document.getElementById('hid');
	var prenom = document.getElementById('prenom');
	var email = document.getElementById('email');
	var membre = document.getElementById('membre');
	var reglement = document.getElementById('reglement');
	var statuts = document.getElementById('statuts');
	var err_msg = "";

	if (nom.value == "") {
		err_msg += "Le nom doit être renseigné.\n";
	}

	if (prenom.value == "") {
		err_msg += "Le prénom doit être renseigné.\n";
	}

	if (email.value == "") {
		err_msg += "Votre courriel doit être renseigné afin de pouvoir confirmer votre inscription.\n";
	}
		//ancien système de contrôle remplacé par Captcha
		/*if (hid.value == "ano"){
		var human_ano = document.getElementById('human_ano');
			if(human_ano.value != "anophele")
			{
				err_msg += "Veuillez répondre à la question.\n";
			}
		}
		else if (hid.value == "ae") 
		{var human_ae = document.getElementById('human_ae');
			if(human_ae.value != "aedes")
			{
				err_msg += "Veuillez répondre à la question.\n";
			}
		}*/	
		
	if (membre.checked) {

		if (!reglement.checked) {
			err_msg += "Pour devenir membre, vous devez d\'abord lire le règlement de l\'association.\n";
		}

		if (!statuts.checked) {
			err_msg += "Pour devenir membre, vous devez d\'abord lire les statuts de l\'association.\n";
		}
	}

	if (err_msg != "") {
		alert(err_msg);
	}
	else {
		verif_mail(true);
	}

	return false;
}

// Initialisation de l'objet request
function initRequest() {
	var request;

	if (window.XMLHttpRequest) {
		request = new XMLHttpRequest();
	}
	else {
		request = new ActiveXObject('Msxml2.XMLHTTP');

		if (!request) {
			request = new ActiveXObject('Microsoft.XMLHTTP');
		}
	}

	return request;
}

// Fonction de traitement des erreurs
function traiteErreur(message) {
	alert(message);
}

// Envoi d'une requête
function sendRequest(type, url, async, asyncCall) {
	try {
		var request = initRequest();

		if (!request) {
			throw new Error('Votre navigateur ne permet pas d\'utiliser toutes les fonctionnalités de ce site. Pensez à le mettre à jour.');
		}

		// Chaîne pour le passage en mode POST
		var queryString = null;

		request.onreadystatechange = function() { asyncCallBack(request, asyncCall); };
		request.open(type, url, async);

		if (type.toLowerCase() == 'post' && arguments[4] != null && arguments[4].length > 0) {
			queryString = arguments[4];
			request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
		}

		request.send(queryString);
	}
	catch (e) {
		traiteErreur(e.message);
	}
}

// Fonction de traitement des retours
function asyncCallBack(request, callBack) {
	try {
		switch (request.readyState) {
			case 0:
				// Traitement pour une requête non initalisée
				break;

			case 1:
				// Traitement pour une requête en cours de transfert
				break;

			case 2:
				// Traitement pour une requête transférée.
				break;

			case 3:
				// Traitement lorsqu'une partie de la réponse est accessible.
				break;

			case 4:
				if (request.status == 200) {
					var docXml = request.responseXML;

					if (docXml.documentElement.nodeName == 'error') {
						throw new Error('Le serveur à rencontré une erreur: ' + docXml.documentElement.firstChild.nodeValue);
					}

					callBack(docXml);
				}
				else {
					throw new Error('Le serveur n\'a pas pu traiter la requête. Réponse HTTP: ' + request.status + '.');
				}
			break;
		}
	}
	catch (e) {
		traiteErreur(e.message);
	}
}
