/*******************************************************
 *  
 *						Javascript
 *
 *******************************************************/


/************************************************************
*********        Ouvre les images dans un pop-up
*************************************************************/
function openImage(url) {

    var parametres = "location=no,toolbar=no,resizable=yes,menubar=yes,scrollbars=yes,status=yes";

    var w = window.open(url,"Montreal Cafe",parametres);
    w.focus();
}

/************************************************************
*********        Verifie le formulaire ajouterCafe
*************************************************************/
function verifieCafe(maj,origine,langue) {

	if (langue == 'english' ) {
		var titre = "The following fields are compulsary";
		var nom = "name";
		var types = "category";
		var ville = "town";
		var pseudo = "pseudo or login";
		var voulez = "Do you really want ";
		var ajouter = "to add this place";
		var mettreajour = "update this place";
		var toilette = "The field BATHROOM will have the value   CLEAN";
	} else {
		var titre = "Les champs suivants sont obligatoire";
		var nom = "nom";
		var types = "catégorie";
		var ville = "ville";
		var pseudo = "pseudo ou login";
		var voulez = "Voulez vous rellement ";
		var ajouter = "ajouter ce lieu";
		var mettreajour = "mettre ce lieu à jour";
		var toilette = "Le champ TOILETTE aura comme valeur par defaut   PROPRE";
	}



	//alert("entree dans verifieCafe");
	var error = false;
	var msg = titre;
	
	// On verifie le nom
	var myReg = /^\s*$/ ;
	if (myReg.test(document.formAjouter.cafeNom.value)) {
		msg += "\n " + nom;
		error = true;
	}
	// On verifie le type
	var typeExist = false;
	for (var i = 0; i < document.formAjouter.elements.length; i++) {
		if (document.formAjouter.elements[i].name == 'typeId[]') {
			if (document.formAjouter.elements[i].checked ) {
				typeExist = true;
				break;
			}
		}
	}
	if (!typeExist) {
		msg += "\n " + types;
		error = true;
	}
	
	// On verifie qu'une selection est faite sur le ville
	if (document.formAjouter.ville.value == 0) {
	// On verifie la ville
		msg += "\n " + ville;
		error = true;
	}
	
	// On verifie que le pseudo est renseigne si propale externe
	if (origine == 'E' && myReg.test(document.formAjouter.pseudo.value)  && myReg.test(document.formAjouter.login.value) ) {
	// On verifie la ville
		msg += "\n " + pseudo ;
		error = true;
	}
	
	// Si il y a au moins une erreur, on l'affiche
	if (error) {
		alert (msg);
		return false;
	}

	// Il n'y a pas d'erreur, on verifie si les champs fumeur, reservation, soiree, valet et toilette n'ont pas de valeur
	// si il n'en ont pas, on previent des valeurs qu'ils auront par default
	// et on demande un confirmation pour la mise a jour ou l'ajout d'un cafe
	var conf = voulez;
	if (maj == 'non') {
		conf += ajouter;
	} else {
		conf += mettreajour;
	}
	conf += "\n----------------------------------------------------------------------------"
	if (!document.formAjouter.cafeToilId[0].checked && !document.formAjouter.cafeToilId[1].checked && !document.formAjouter.cafeToilId[2].checked) {
		conf += "\n" + toilette;
	}

	return confirm(conf);
}

/************************************************************
*********        Verifie le formulaire d'inscription
*************************************************************/

function verifieInscription(inscription,langue) {

	var error = false;
	var msg = "";
	var myReg = /^\s*$/ ;
	var mySpecialCarReg = /[^A-Za-z0-9_]/;
	var myMailReg = /^[-\w]*\.?[-\w]+@[-\w]+\.\w+$/;

	//alert ("entree dans verifieInscription("+document.formInscription.login.value+")");
	// Amorce du message suivant la langue

	// On est dans un cas d'une inscription
	// On verifie que les champs obligatoires contiennent quelque chose
	// On verifie le contenu des champs
	if (langue == 'francais' ) {
		msg += "\nModifiez les champs suivant et re-envoyez : \n";
	} else if (langue == 'english') {
		//alert ('on passe par la');
		msg += "\nChange the following fields and send again : \n";
	}
	msg += "\n_____________________________________________________________\n";
	if (inscription == 'oui') {
		// On verifie le login
		if (myReg.test(document.formInscription.login.value)) {
			if (langue == 'francais' ) { msg += "\n Le champ LOGIN est obligatoire."; }
			else if ( langue == 'english') { msg += "\n LOGIN is required."; }
			error = true;
		}
			// il doit avoir au moins 5 carateres
		else if (document.formInscription.login.value.length < 4) {
			if (langue == 'francais' ) { msg += "\n Le champ LOGIN doit avoir 4 carateres au moins."; }
			else if ( langue == 'english') { msg += "\n LOGIN should have 4 characters."; }
			error = true;
		}
			// il ne doit contenir que les valeur a-z, A-Z ou 0-9
		else if (mySpecialCarReg.test(document.formInscription.login.value)) {
			if (langue == 'francais' ) { msg += "\n le champ LOGIN ne doit pas contenir de caractères speciaux ni de blanc."; }
			else if ( langue == 'english') { msg += "\n LOGIN should not contain special characters nor blanc."; }
			error = true;
		}
		// On verifie le mot de passe
		if (myReg.test(document.formInscription.mdp.value)) {
			if (langue == 'francais' ) { msg += "\n MOT DE PASSE est obligatoire."; }
			else if ( langue == 'english') { msg += "\n PASSWORD is required. "; }
			error = true;
		}
		// On verifie le mot de passe 2
		if (myReg.test(document.formInscription.mdp2.value)) {
			if (langue == 'francais' ) { msg += "\n Vous devez répéter le MOT DE PASSE."; }
			else if ( langue == 'english') { msg += "\n You must repeat PASSWORD. "; }
			error = true;
		}
	}
		// On verifie le mot de passe
		// il n'est pas obligatoire dans le cas d'une mise a jour mais si il est la il doit correspondre aux criteres
		// il doit avoir au moins 5 carateres
	if (!myReg.test(document.formInscription.mdp.value) &&  document.formInscription.mdp.value.length < 4) {
		if (langue == 'francais' ) { msg += "\n Le champ MOT DE PASSE doit avoir 4 caratères au moins."; }
		else if ( langue == 'english') { msg += "\n PASSWORD should have 4 characters."; }
		error = true;
	} else if (!myReg.test(document.formInscription.mdp.value) && 				 mySpecialCarReg.test(document.formInscription.mdp.value)) {
		if (langue == 'francais' ) { msg += "\n Le champ MOT DE PASSE ne doit pas contenir de caractères spéciaux ni de blanc."; }
		else if ( langue == 'english') { msg += "\n PASSWORD should not contain special characters nor blanc."; }
		error = true;
	}
	else if (document.formInscription.mdp.value != document.formInscription.mdp2.value) {
		if (langue == 'francais' ) { msg += "\n Les champs MOT DE PASSE et REPETEZ MOT DE PASSE doivent être les même. "; }
		else if ( langue == 'english') { msg += "\n PASSWORD and REPEAT PASSWORD should be the same. "; }
		error = true;
	}
	
	// On verifie le mail
	if (myReg.test(document.formInscription.mail.value)) {
		if (langue == 'francais' ) { msg += "\n Le champ COURRIEL est obligatoire. "; }
		else if ( langue == 'english') { msg += "\n EMAIL is required. "; }
		error = true;
	}
	// Il doit avoir un format mail
	else if (!myMailReg.test(document.formInscription.mail.value)) {
		if (langue == 'francais' ) { msg += "\n Le champ COURRIEL doit avoir un format nom@domain.ext . "; }
		else if ( langue == 'english') { msg += "\n EMAIL should be like name@domain.ext . "; }
		error = true;
	}
	
	if (inscription == 'non') {
		// On verifie la description
		if (document.formInscription.description.value.length > 1000 ) {
			if (langue == 'francais' ) { msg += "\n Le champ DESCRIPTION ne doit pas dépasser 1000 caractères. "; }
			else if ( langue == 'english') { msg += "\n DESCRIPTION should not be over 1000 characters. "; }
			error = true;
		}
		// On verifie la signature
		// on coupe la chaine en fonction de la fin de ligne
		var tab = new Array();
		tab = document.formInscription.signature.value.split('\n');
		if (document.formInscription.signature.value.length > 75 || tab.length > 3) {
			if (langue == 'francais' ) { msg += "\n Le champ SIGNATURE ne doit pas dépasser 75 caractères sur 3 lignes. "; }
			else if ( langue == 'english') { msg += "\n SIGNATURE should not be over 75 characters on 3 lignes. "; }
			error = true;
		}
	}


	// Si il y a au moins une erreur, on l'affiche
	if (error) {
		alert (msg);
		return false;
	}

	return true;
}

/************************************************************
*********        Verifie le formulaire formCommentaire
*************************************************************/
function verifieCommentaire(langue) {

	//alert("entree dans verifieCafe");
	var error = false;
	if (langue == 'francais') {
		var msg = "Les champs suivants sont obligatoire : ";
	} else {
		var msg = "The following entries are compulsary : ";
	}
	
	// On verifie qu'une selection est faite sur le ville
	if (document.formCommentaire.pseudo.value == 0) {
	// On verifie la ville
		msg += "\n nom ou pseudo ";
		error = true;
	}
	
	// Si il y a au moins une erreur, on l'affiche
	if (error) {
		alert (msg);
		return false;
	}

	// Il n'y a pas d'erreur, on verifie si les champs fumeur, reservation, soiree, valet et toilette n'ont pas de valeur
	// si il n'en ont pas, on previent des valeurs qu'ils auront par default
	// et on demande un confirmation pour la mise a jour ou l'ajout d'un cafe
	if (langue == 'francais') {
		var conf = "Voulez vous rellement ajouter ce commentaire ?";
	} else {
		var conf = "Do you really want to add this comment ?";
	}

	return confirm(conf);
}

/************************************************************
*********        Reset le formulaire d'entree de commentaire
*************************************************************/
function nettoyerCommentaire(msg) {
	
	if (confirm (msg)) {
		document.formCommentaire.comment.defaultValue = '';
		for (i = 0; i < document.formCommentaire.vote.length; i++) {
			document.formCommentaire.vote[i].defaultChecked = false;
		}
	}
	return true;

}

/************************************************************
*********   Reset le formulaire de criteres de recherche
*************************************************************/
function nettoyerCritere(msg) {
	
	if (confirm (msg)) {
		for (i = 0; i < document.formRecherche.elements.length; i++) {
			document.formRecherche.elements[i].defaultChecked = false;
		}
	}
	return true;

}

/************************************************************
*********   Selectionne tous les membres par defaut
*************************************************************/
function toutSelectionner() {

	for (i = 0; i < document.formAuteur.elements.length; i++) {
		document.formAuteur.elements[i].checked = true;
	}
	return true;

}

/************************************************************
*********   Selectionne tous les site - actus.php
*************************************************************/
function toutSelectionnerSite() {

	for (i = 0; i < document.formActus.elements.length; i++) {
		document.formActus.elements[i].checked = true;
	}
	return true;

}

/************************************************************
*********   chercher les geocodes a partir de l'adresse
*************************************************************/
function chercheAdresse() {
	//alert('toto');
	var idVille = document.formAjouter.ville.selectedIndex;
	var adresse = document.formAjouter.cafeAdr.value + ', ' + document.formAjouter.ville.options[idVille].text + ', '  + document.formAjouter.provinceInitiale.value;
	var geocoder = new GClientGeocoder();
	//alert(adresse);
	geocoder.getLatLng(
	adresse,
	function(point) {
		if (!point) {
			alert(adresse + " not found");
			document.formAjouter.cafeLattitude.value = 0.0;
			document.formAjouter.cafeLongitude.value = 0.0;
		} else {
			//alert(adresse + ' : ' + point.lat() + ' ; ' + point.lng());
			document.formAjouter.cafeLattitude.value = point.lat();
			document.formAjouter.cafeLongitude.value = point.lng();
		}
	}
	);
}

/************************************************************
*********   verification du navigateur
*************************************************************/
function checkcontained(e){
	var iscontained=0
	cur=ns6? e.target : event.srcElement
	i=0
	if (cur.id=="foldheader")
		iscontained=1
	else
		while (ns6&&cur.parentNode||(ie4&&cur.parentElement)){
			if (cur.id=="foldheader"||cur.id=="foldinglist"){
				iscontained=(cur.id=="foldheader")? 1 : 0
				break
			}
			cur=ns6? cur.parentNode : cur.parentElement
		}

	if (iscontained){
		var foldercontent=ns6? cur.nextSibling.nextSibling : cur.all.tags("UL")[0]
		if (foldercontent.style.display=="none"){
			foldercontent.style.display=""
		}
		else {
			foldercontent.style.display="none"
		}
	}
}

if (ie4||ns6)
		document.onclick=checkcontained

/************************************************************
*********   show plus ou moins
*************************************************************/
function showpm (divId,pmId) {
	//alert('toto');
	if (divId.style.display == "") {
		divId.style.display = "none";
		pmId.innerHTML = "[+]";
	}
	else {
		divId.style.display = "";
		pmId.innerHTML = "[--]";
	}
}