/******************************************
* Visualisation d'une fiche de restaurant *
******************************************/
	// Demande confirmation de suppression d'un 
	// restaurant avant de lancer effectivement 
	// l'action:
	function confirm_restaurant_deletion(restaurant_id) {
		if (confirm("Êtes-vous certain de bien vouloir supprimer cette fiche de la base?")) {
			window.location = "index.php?page=consulter&mode=restaurant&id=" + restaurant_id + "&delete=1";
		}
	}
	
	// Affiche l'image passée en argument dans 
	// une fenêtre à part centrée au milieu de 
	// l'écran:
	function show_picture(filename, width, height) {
		var screen_width = screen.width;
		var screen_height = screen.height;
		
		var path = new String(window.location);
		path = path.substr(0, path.indexOf("index.php", 0));
		
		var url = path + "includes/show_picture.php?filename=" + filename;
		var name = "photo";
		var top = (screen_height - height) / 2;
		var left = (screen_width - width) / 2;

		var features = "top=" + top +
					   ", left=" + left + 
					   ", width=" + (width + 20) + 
					   ", height=" + (height + 40) +
					   ", scrollbars, resizable=yes, titlebar=no, menubar=no, statusbar=yes";
		var popup = window.open(url, name, features);
		popup.focus();
	}
	
	// Ferme la fenêtre de prévisualisation d'une image 
	// et redonne le focus à la fenêtre appelante:
	function close_picture() {
		window.close();
		window.opener.focus();
	}
	
	// Supprime un commentaire:
	function delete_comment(id) {
		if (confirm("Êtes-vous certain de bien vouloir supprimer ce commentaire?")) {
			var form = document.form_comments;
			form.request.value = "delete_comment";
			form.comment_id.value = id;
			form.submit();
		}
	}
	
	// Edite un commentaire:
	function modify_comment(id) {
		var form = document.form_add_opinion;
		
		// Ajustement du formulaire d'édition:
		var texte = document.getElementById("comment_" + id).innerHTML;
		texte = texte.replace(/<br>/g, "");
		texte = texte.replace(/&lt;/g, "<");
		texte = texte.replace(/&gt;/g, ">");
		form.opinion_text.value = texte;
		
		if (document.getElementById("author_" + id)) {
			form.opinion_author_name.value = document.getElementById("author_" + id).innerHTML;
		}
		form.request.value = 'opinion_modify';
		form.btn_submit.value = 'Modifier ce commentaire';
		form.id_comment.value = id;
		
		var action = new String(form.action);
		action = action.split("#");
		form.action = action[0] + "#anchor_" + id;
		
		// On replace l'utilisateur en haut de la fenêtre:
		var url = new String(window.location);
		url = url.split("#");
		window.location = url[0] + "#";
	}
	
	// Affiche le plan du restaurant passée en argument:
	function open_plan(restaurant) {
		var screen_width = screen.width;
		var screen_height = screen.height;
		var height = 550;
		var width = 770
		
		var url = "show_plan.php?restaurant=" + restaurant;
		var top = (screen_height - height) / 2;
		var left = (screen_width - width) / 2;
		
		var features = "top=" + top +
					   ", left=" + left + 
					   ", width=" + width + 
					   ", height=" + height +
					   ", scrollbars, resizable=yes, titlebar=no, menubar=no, statusbar=yes";
		var popup = window.open(url, "", features);
		popup.focus();
	}
	
	// Affiche le plan du restaurant passée en argument:
	function check_plan() {
		var screen_width = screen.width;
		var screen_height = screen.height;
		var height = 550;
		var width = 770
		
		var url = "show_plan.php?address=" + encodeURI(document.form_new_critic.address.value);
		var top = (screen_height - height) / 2;
		var left = (screen_width - width) / 2;
		
		var features = "top=" + top +
					   ", left=" + left + 
					   ", width=" + width + 
					   ", height=" + height +
					   ", scrollbars, resizable=yes, titlebar=no, menubar=no, statusbar=yes";
		var popup = window.open(url, "", features);
		popup.focus();
	}
	
	// Affiche un plan avec une liste de restaurants situés 
	// dans une ville (et éventuellement ses environs):
	function show_plan_liste(city, environs) {
		var screen_width = screen.width;
		var screen_height = screen.height;
		var height = 550;
		var width = 770
		
		var url = "show_plan.php?city=" + encodeURI(city) + "&environs=" + environs;
		var top = (screen_height - height) / 2;
		var left = (screen_width - width) / 2;
		
		var features = "top=" + top +
					   ", left=" + left + 
					   ", width=" + width + 
					   ", height=" + height +
					   ", scrollbars, resizable=yes, titlebar=no, menubar=no, statusbar=yes";
		var popup = window.open(url, "", features);
		popup.focus();
	}
	
	// Envoie d'une évaluation du restaurant courant:
	function send_evaluation() {
		var form_opinion = document.form_add_opinion;
		var form_rating = document.form_evaluation;
		var ok = true;
		
		if (form_opinion.opinion_text.value != "") {
			ok = confirm("Vous avez renseigné un commentaire ci-dessus. Cliquez sur Ok pour l'enregistrer en même " +
						 "temps que votre évaluation. Cliquez sur Cancel pour annuler cette opération.");
		}
		
		if (form_rating.opinion_author.value == 0) { form_rating.opinion_author_name.value = form_opinion.opinion_author_name.value; } 
		form_rating.opinion_text.value = form_opinion.opinion_text.value;
		form_rating.submit();
	}
	
/*********************
* Profil utilisateur *
*********************/
	function confirm_user_deletion(user_id) {
		if (confirm("Êtes-vous certains de vouloir supprimer ce compte utilisateur?")) {
			window.location = "index.php?page=profile&mode=all&id=" + user_id + "&delete=1";
		}
	}
	
/***************************************************************
* Ajout ou modification d'une fiche de critique des restaurant *
***************************************************************/
	function update_help(id) {
		var help = "";
		
		switch (id) {
			case "name": 					help = "Nom de l'établissement"; break;
			case "type": 					help = "Type: Français, Italien, Grillades, Sud-Ouest..."; break;
			case "phone": 					help = "Numéro de téléphone, utile pour faire une réservation"; break;
			case "address": 				help = "Adresse: vous pouvez cliquer sur le lien \"Vérifier\" pour voir si votre adresse est reconnue par le système de mise à jour dynamique du plan"; break;
			case "city": 					help = "Ville et Pays sont utilisés par Zakouski pour classer géographiquement les restaurants"; break;
			case "country": 				help = "Ville et Pays sont utilisés par Zakouski pour classer géographiquement les restaurants"; break;
			case "booking": 				help = "Quelle est la capacité d'accueil du restaurant? Les réservations sont elles nécessaires pour être certains d'avoir de la place? Si oui, combien de temps à l'avance faut-il s'y prendre?"; break;
			case "pricing": 				help = "Listez les menus existants, s'ils sont disponibles le midi et/ou le soir, ce qu'ils comprennent et à quel coût, donnez une évaluation du prix des apéros, des vins, etc."; break;
			case "first_price": 			help = "Borne inférieure de la fourchette moyenne de prix"; break;
			case "last_price": 				help = "Borne supérieure de la fourchette moyenne de prix"; break;
			case "paiement_cb": 			help = "Les paiements par carte bleue sont-ils acceptés?"; break;
			case "paiement_tr": 			help = "Les paiements par titres restaurants sont-ils acceptés?"; break;
			case "paiement_check": 			help = "Les paiements par chèques sont-ils acceptés?"; break;
			case "paiement_money": 			help = "Les paiements en liquide sont-ils acceptés?"; break;
			case "paiement_comments": 		help = "Le restaurant rend-il la monnaie sur les titres restaurants? Fait-il un avoir? Y'a-t-il un montant minimum pour pouvoir payer par carte bleue?"; break;
			case "comments_service": 		help = "Le service est-il aimable? Rapide? Trop lent? Le sommelier est-il de bon conseil? Comment sont le choix et le volume de la musique? Le décor est-il soigné? De bon goût? Les tables sont-elles trop serrées?"; break;
			case "comments_cooking": 		help = "Quantité et qualité de la nourriture, présentation des plats, originalité de la cuisine..."; break;
			case "comments_conclusions": 	help = "Votre mot de la fin, pourquoi vous conseillez (ou pas) ce restaurant, les petits détails qui vont ont plut..."; break;
			case "date_tried": 				help = "Date de la visite pour laquelle vous rédigez cette fiche"; break;
			case "proximity": 				help = "Ville plus importante située à proximité. Ce champs est optionnel mais est utile pour regrouper les restaurants par zone, en particulier lorsqu'ils se situent en banlieue d'une grande ville."; break;
			case "ouverture_midi_1": 		help = "Ce restaurant est-il ouvert lundi midi?"; break;
			case "ouverture_midi_2": 		help = "Ce restaurant est-il ouvert mardi midi?"; break;
			case "ouverture_midi_3": 		help = "Ce restaurant est-il ouvert mercredi midi?"; break;
			case "ouverture_midi_4": 		help = "Ce restaurant est-il ouvert jeudi midi?"; break;
			case "ouverture_midi_5": 		help = "Ce restaurant est-il ouvert vendredi midi?"; break;
			case "ouverture_midi_6": 		help = "Ce restaurant est-il ouvert samedi midi?"; break;
			case "ouverture_midi_7": 		help = "Ce restaurant est-il ouvert dimanche midi?"; break;
			case "ouverture_soir_1": 		help = "Ce restaurant est-il ouvert lundi soir?"; break;
			case "ouverture_soir_2": 		help = "Ce restaurant est-il ouvert mardi soir?"; break;
			case "ouverture_soir_3": 		help = "Ce restaurant est-il ouvert mercredi soir?"; break;
			case "ouverture_soir_4": 		help = "Ce restaurant est-il ouvert jeudi soir?"; break;
			case "ouverture_soir_5": 		help = "Ce restaurant est-il ouvert vendredi soir?"; break;
			case "ouverture_soir_6": 		help = "Ce restaurant est-il ouvert samedi soir?"; break;
			case "ouverture_soir_7": 		help = "Ce restaurant est-il ouvert dimanche soir?"; break;
		}
		
		document.getElementById('contextual_help').innerHTML = help;
	}
	
/**********
* Accueil *
**********/
	function inscription() {
		var form = document.form_inscription;
		
		if (form.courriel.value == "Votre email..." || form.courriel.value == "" ||
			form.login.value == "Login..." || form.login.value == "" || 
			form.password.value == "abcdefghij" || form.password.value == "") {
			alert("Vos informations d'inscription sont invalides");
		}
		else {
			if (confirm("Cliquez sur Ok si les informations renseignées sont valides, ou sur Cancel pour les corriger")) {
				form.submit();
			}
		}
	}
	
/*********************
* Profil utilisateur *
*********************/
	var shown = "";
	
	function show_rating_ctrl(cell, restaurant, current_note) {
		if (shown == "") {
			var liste = "";
			cell.onclick = "";
			var selected = new Array();
			selected[current_note] = 'selected="selected"';
			
			var cell_name = cell.id;
			cell_name = cell_name.split("_");
			cell_name = cell_name[0];
			
			liste = '<select name="' + cell_name + '_' + restaurant + '" onchange="javascript:save_rating_ctrl(\'' + cell.id + '\', ' + restaurant + ', this)">' + 
					'<option value="1" ' + selected[1] + '>1</option>' +
					'<option value="2" ' + selected[2] + '>2</option>' +
					'<option value="3" ' + selected[3] + '>3</option>' +
					'<option value="4" ' + selected[4] + '>4</option>' +
					'<option value="5" ' + selected[5] + '>5</option>' +
					'<option value="6" ' + selected[6] + '>6</option>' +
					'<option value="7" ' + selected[7] + '>7</option>' +
					'<option value="8" ' + selected[8] + '>8</option>' +
					'<option value="9" ' + selected[9] + '>9</option>' +
					'<option value="10" ' + selected[10] + '>10</option>' +
					'</select>';
					
			cell.innerHTML = liste;
			shown = cell_name + "_" + restaurant;
		}
	}
	
	function save_rating_ctrl(cell_id, restaurant, liste) {
		var cell = document.getElementById(cell_id);
		var value = liste.options[liste.selectedIndex].value;
		cell.innerHTML = value;
		shown = "";
		
		cell.onclick = function () { show_rating_ctrl(cell, restaurant, value); };
		window.frames["frame_update_note"].location = "includes/update_note.php?note=" + value + "&type=" + cell_id;
	}
	
	// Affiche le plan de l'adresse utilisateur passée en argument:
	function check_address() {
		var screen_width = screen.width;
		var screen_height = screen.height;
		var height = 550;
		var width = 770
		
		var url = "show_plan.php?address=" + encodeURI(document.form_user_profile.user_address.value);
		var top = (screen_height - height) / 2;
		var left = (screen_width - width) / 2;
		
		var features = "top=" + top +
					   ", left=" + left + 
					   ", width=" + width + 
					   ", height=" + height +
					   ", scrollbars, resizable=yes, titlebar=no, menubar=no, statusbar=yes";
		var popup = window.open(url, "", features);
		popup.focus();
	}