// JavaScript Document

/**Variables globales ***/


//ajoute un élément à la liste des reservation
function add_resa_express(id_hot){
	
	
	
	
	//on envoi une requete AJAX qui va se charger d'ajouter l'élément id_hot à la liste en session
	
	new Ajax.Request('http://www.annuaire-parisien.com/ajax/add_resa_express.ajax.php', {
			onComplete:function(request){
				//new Effect.Highlight('list',{startcolor:'#FFE5D1'});
				retour = request.responseText;
				
				if (retour == "1"){
					//on réactualise la liste  des hotels choisis
					refresh_liste_resa_express();
				}
			},
			parameters:{id_add:id_hot},
			method:'get',
			asynchronous:true,
			encoding:'iso-8859-1'
		});	
	
	//on pose un cookie indiquant que la resa expresse à commencée
	//on pose le cookie de consultationd de l'aide
	//cookie valable 1 journée
	var dateExpire = new Date();
	dateExpire.setTime(dateExpire.getTime()+(24*3600*1000));
	
	
	//SetCookie ("AHResaCookie","1",dateExpire,"","","");
	
	
	SetInfoResaExpress("752548","AHResaCookie","1");
	SetInfoResaExpress("752548","AHNonResaCookie","0");
	
	//DeleteCookie("AHNonResaCookie");
	
	
	
	
	//si le bloc n'est pas affiché on l'affiche
	if ($('bloc_resa_express').style.display == "none"){
		affiche_resa_express();
	}
	
	
	//on réucper l'étape à la quelle est le visiteur pour faire une transition vers l'étape 1
	new Ajax.Request('http://www.annuaire-parisien.com/ajax/get_etape_resa_express.ajax.php', {
			onComplete:function(request){
				//new Effect.Highlight('list',{startcolor:'#FFE5D1'});
				etape_actuelle = request.responseText;
				
				if (etape_actuelle != 1){//pour éviter transition inutile  1->1
					//on fait le transition
					retour_bloc_resa_express(etape_actuelle,1)
				}
			},
			asynchronous:true,
			encoding:'iso-8859-1'
		});	
	
	
}


//rafraichi la liste de hotel en resa express à partir de la liste présnete en session
function refresh_liste_resa_express(){
		
	//on récupere la liste des élément en session
	new Ajax.Updater('liste_hotel_choisis_re', 'http://www.annuaire-parisien.com/ajax/get_list_resa_express.ajax.php', {
			onComplete:function(request){
				//new Effect.Highlight('bloc_liste_resa_express',{startcolor:'#FFE5D1'});
			},
			asynchronous:true,
			encoding:'iso-8859-1'
		});
	
	
}

//supprime un element de la liste
function del_resa_express(id_hot){
	
	
	//on envoi une requete AJAX qui va se charger d'ajouter l'élément id_hot à la liste en session
	
	new Ajax.Request('http://www.annuaire-parisien.com/ajax/del_resa_express.ajax.php', {
			onComplete:function(request){
				//new Effect.Highlight('list',{startcolor:'#FFE5D1'});
				retour = request.responseText;
				
				if (retour == "1"){
					//on réactualise la liste  des hotels choisis
					refresh_liste_resa_express();
				}
			},
			parameters:{id_del:id_hot},
			method:'get',
			asynchronous:true,
			encoding:'iso-8859-1'
		});	
}


//fonction réucpérant un liste d'hotels à partir d'élément de recherches 
function get_rech_resa_express(){
	
	//on réucpere tous les éléments de recherche du formulaire
	//on les sérialize
	
	
	var form_serialize = $('FormResaExpress_1').serialize();
	
	
	
	//on les envoi à un script php qui nous retourne une liste d'établissmeent compatibles
	new Ajax.Updater('resultat_rech_resa_express', 'http://www.annuaire-parisien.com/ajax/get_rech_resa_express.ajax.php', {
			onComplete:function(request){
				//on cache le loading
				Element.hide('chargement_rech_resa_express');
				Element.show('resultat_rech_resa_express');
			},
			onCreate:function(){
				//on affiche le loading
				Element.show('chargement_rech_resa_express');
				Element.hide('resultat_rech_resa_express');
			},
			parameters:form_serialize,
			method:'get',
			asynchronous:true,
			encoding:'iso-8859-1'
		});
}



//vérifie la validité d'une liste en résa express
//alert d'erreur si incorrect
//passage à l'étape suivante si incorrect
function valide_liste_resa_express(){

	//appel ajax au script de vérification php
	new Ajax.Request('http://www.annuaire-parisien.com/ajax/verif_list_resa_express.ajax.php', {
			onComplete:function(request){
				//new Effect.Highlight('list',{startcolor:'#FFE5D1'});
				retour = request.responseText;
				
				if (retour == "1"){
					//OK on passe à l'étape suivante
					transition_bloc_resa_express(1,2);
				}else if (retour == "0"){
					//Erreur : séléction vide		
					alert('Votre séléction est vide');
				}else if (retour == "2"){
					//Erreur : trop d'établissement		
					alert('Vous pouvez séléctionner 3 établissements maximum');		
				}
			},
			asynchronous:true,
			encoding:'iso-8859-1'
		});	
}

//permet de facteurisé les transactions entre bloc (qu'elles soient toutes réunies ici)
function transition_bloc_resa_express(id_old,id_new){
		/*$('bloc_resa_express_'+id_old).style.display="none";
		$('bloc_resa_express_'+id_new).style.display="block";*/
		$('bloc_resa_express_'+id_old).fade();
		$('bloc_resa_express_'+id_new).appear();
}

//fonction de retour en arriere (permet de faire des traitement avant transition)
function retour_bloc_resa_express(origine,destination){
	
	//appel ajax afin de mettre à jour l'étape en session
	new Ajax.Request('http://www.annuaire-parisien.com/ajax/set_etape_resa_express.ajax.php', {
			parameters:{id_etape:destination},
			method:'get',
			asynchronous:true
		});	
	
	
	//traitement spécifique en fonction des cas de figure
	
	
	transition_bloc_resa_express(origine,destination);
}



//valide le formulaire des options visiteur et marque l'étape 3
function valide_options_resa_express(){
	
	
	//on appel le script ajax qui a enregistré les infos du formulaire, marqué l'étape suivante
	var form_serialize = $('FormResaExpress_2').serialize();
	
	new Ajax.Request('http://www.annuaire-parisien.com/ajax/verif_options_resa_express.ajax.php', {
			onComplete:function(request){
				retour = request.responseText;
				
				if (retour == "1"){
					//Ok on passe à l'étape suivante
					transition_bloc_resa_express(2,3); 
                    charge_info_etape3_resa_express();
					charge_bloc_absolu();
				}else{
					var tab = retour.split(':');
					//Erreur
					alert(tab[1]);
				}
			},
			parameters:form_serialize,
			method:'get',
			asynchronous:true,
			encoding:'iso-8859-1'
		});	
	
	
}

//lors de l'affichage de l'étape 3, charge les infos à partir de la session
function charge_info_etape3_resa_express(){
	new Ajax.Updater('recap_demande_resa_express', 'http://www.annuaire-parisien.com/ajax/get_info_perso_resa_express.ajax.php', {
			onComplete:function(request){
				//on cache le loading
				
			},
			method:'get',
			asynchronous:true,
			encoding:'iso-8859-1'
		});
}

//affiche le bloc absolu télécom dans la div prévue à cet effet (permet de ne pas préload le bloc inutilement)
function charge_bloc_absolu(){
		
	if (document.getElementById('requestBlocAbsolu')) {
		// Suppression de la balise si elle existait déjà
		// (pour faire un brin de ménage dans le DOM)
		$('bloc_absolu_resa_express').removeChild(document.getElementById('requestBlocAbsolu'));
	}
	var ifr = document.createElement('iframe');
	ifr.src= "http://www.annuaire-parisien.com/ajax/aff_absolu_resa_express.ajax.php";
	ifr.id = 'requestBlocAbsolu';
	ifr.frameBorder = '0';
	ifr.width = '510px';
    ifr.style.width = '510px';
    
	$('bloc_absolu_resa_express').scroll = 'no';
	$('bloc_absolu_resa_express').appendChild(ifr);
	
}

/***  FONCTIONS GESTION COOKIES  *****/
function SetCookie ( name, value, expires, path, domain, secure) {
		//domain forcer au palcement du script
		domain = '.annuaire-parisien.com';
	
         szCookie = name + "=" + escape (value) +
                  ((expires) ? "; expires=" + expires.toGMTString() :                   "") +
                  ((path) ? "; path=" + path : "") +
                  ((domain) ? "; domain=" + domain : "") +
                  ((secure) ? "; secure" : "");			
                  document.cookie = szCookie;
	
}

function GetCookie (name) {
         if ( document.cookie) { // Le cookie est-il valide ?
                  index = document.cookie.indexOf( name);
                  if ( index != -1) {
                           nDeb = (document.cookie.indexOf( "=", index) + 1);
                           nFin = document.cookie.indexOf( ";", index);
                           if (nFin == -1) {nFin = document.cookie.length;}
                           return unescape(document.cookie.substring(nDeb, nFin));
                  }
         }
         return null;
}
function DeleteCookie (name) {
	var exp=new Date();
	exp.setTime (exp.getTime() - 100000);
	var cval=GetCookie (name);
	document.cookie=name+"="+cval+"; expires="+exp.toGMTString();
} 

/** FONCIONS AJAX de remplacemetn des cookies  ***/


function SetInfoResaExpress(id_nav, name, value){
	
	new Ajax.Request('http://www.annuaire-parisien.com/ajax/set_info_nav_resa_express.ajax.php', {
			onComplete:function(request){
				retour = request.responseText;
				
				
			},
			parameters:{id_nav_resa_express:id_nav,name_param:name,value_param:value},
			method:'get',
			asynchronous:true,
			encoding:'iso-8859-1'
		});	
	
}

function GetInfoResaExpress(id_nav, name){
	
	new Ajax.Request('http://www.annuaire-parisien.com/ajax/set_info_nav_resa_express.ajax.php', {
			
			parameters:{id_nav_resa_express:id_nav,name_param:name},
			method:'get',
			asynchronous:true,
			encoding:'iso-8859-1'
		});	
	
}

function close_resa_express(){
	
	//cache le bloc d'aide
	Effect.BlindUp('bloc_resa_express');
	
	//DeleteCookie("AHResaCookie");
	
	//pose un cookie pour marquer que le visiteur ne veux plus voir l'aide
	
	//cookie valable 1 journée
	var dateExpire = new Date();
	dateExpire.setTime(dateExpire.getTime()+(24*3600*1000));
	
	//SetCookie ("AHNonResaCookie","1",dateExpire,"","","");
	
	SetInfoResaExpress ("752548","AHResaCookie","0");
	SetInfoResaExpress ("752548","AHNonResaCookie","1");
	
    
    setTimeout("$('bloc_afficher_resa_express').style.display='block'",1000);
	//$('bloc_afficher_resa_express').style.display="block";
	
}

function affiche_resa_express(){
	//rend juste le bloc aide de la page visible via effect script aculo
	Effect.BlindDown('bloc_resa_express');
	
	//on supprime le cookie MATNonAideCookie si il existe 
	
	
	//DeleteCookie("AHNonResaCookie");
	
	//on pose le cookie de consultationd de l'aide
	//cookie valable 1 journée
	var dateExpire = new Date();
	dateExpire.setTime(dateExpire.getTime()+(24*3600*1000));
	
	
	//SetCookie ("AHResaCookie","1",dateExpire,"","","");
	
	
	
	SetInfoResaExpress ("752548","AHNonResaCookie","0");
	SetInfoResaExpress ("752548","AHResaCookie","1");
	
	$('bloc_afficher_resa_express').style.display="none";
    $('bloc_explication_top_resa_express').style.display="none";
}


/***  FONCTIONS AFFICHAGE INFO BULLE  ***/




var infobulle_resa_express=false; // La variable i nous dit si la bulle est visible ou non


function move(e) {
  if(infobulle_resa_express) {  // Si la bulle est visible, on calcul en temps reel sa position ideale
  	var pos_top="0px";
	var pos_left="0px";
	
    var largeur_box =200;//permet de centrer la boite (eviter la sortie d'ecran)
    
    if (navigator.appName!="Microsoft Internet Explorer") { // Si on est pas sous IE
		 pos_left=((e.pageX-130)-largeur_box) +"px";
		 pos_top=e.pageY + 10+"px";
    }else { // Modif proposé par TeDeum, merci à  lui
		if(document.documentElement.clientWidth>0) {
			 pos_left=(20+event.x+document.documentElement.scrollLeft-largeur_box)+"px";
			 pos_top=10+event.y+document.documentElement.scrollTop+"px";
		} else {
			 pos_left=(20+event.x+document.body.scrollLeft-largeur_box)+"px";
			 pos_top=10+event.y+document.body.scrollTop+"px";
		}
	}
	
    
  
	$('curseur_resa_express').style.left=pos_left;
	$('curseur_resa_express').style.top=pos_top;
 
  
  }
}

//affiche une info bulle au sruvol de la souris
function affiche_info_bulle_resa_express(id_etablissement){
	

	if(infobulle_resa_express==false) {
	
	  $('curseur_resa_express').style.visibility="visible"; // Si il est cacher (la verif n'est qu'une securité) on le rend visible.
	
	
	//on charge le contenu du cruseur par les infos de la bulle
	new Ajax.Request('http://www.annuaire-parisien.com/ajax/get_fiche_resa_express.ajax.php', {
			onComplete:function(request){
				retour = request.responseText;
				$('curseur_resa_express').innerHTML = retour;
				
			},
			OnCreate:function(){
				
				$('curseur_resa_express').innerHTML = '';
                
				
                
                
			},
			parameters:{id_etab:id_etablissement},
			method:'get',
			asynchronous:true,
			encoding:'iso-8859-1'
		});	
		
	  // $('curseur_resa_express').innerHTML = 'texte :: '+id_etablissement; // on copie notre texte dans l'élément html
      
	
	  infobulle_resa_express=true;
	}
}

//cache l'infobulle
function cache_info_bulle_resa_express(){
	
	if(infobulle_resa_express==true) {
		$('curseur_resa_express').style.visibility="hidden"; // Si la bulle est visible on la cache
		infobulle_resa_express=false;
	}
}

if(navigator.appName.substring(0,3) == "Net")
	document.captureEvents(Event.MOUSEMOVE);

document.onmousemove=move; // dès que la souris bouge, on appelle la fonction move pour mettre à jour la position de la bulle.
