/**
 * Objet javascript permettant de gérer les liens mice des fiches hotel
 * 
 */
var EncartFh= {
		ficheHotelViewBean: null,
		bookingEngineViewBean: null,
   
    /**
     * Liste des noms d'objets à utiliser.
     */
		getBeans: function() {        
        return "BookingEngineViewBean;FicheHotelViewBean";
    },

        
    /**
     * Initialisation de la variable JSON
     */
    initJSON: function() {
      bookingEngineViewBean = viewBeans["BookingEngineViewBean"];
      ficheHotelViewBean = viewBeans["FicheHotelViewBean"]; 
    },
        
        
    /**
     * méthode appelée sur le onload de la page.      
     */
    rewrite: function() {         
    
    var codeEncart = ficheHotelViewBean.codeEncart;
    this.afficheEncart(codeEncart);
    
    	  
    },
    
    afficheEncart: function(codeEncart){
      var trigrammes = ["B2C", "BIZ", "MEE", "TRA", "LEI", "THA"];
      
      // si code empty tous les blocs présents sont retirés
      if(codeEncart == "EMP"){
        for(var i=0; i<trigrammes.length; i++){
          if($(trigrammes[i]))
            $(trigrammes[i]).remove();            
        }
        if($("EMP")){ 
          $("EMP").style.display = "block";
        }  
      // sinon on memorise la position du trigramme dans la liste 
      // et on retire les blocs présents qui ne correspondent pas à ce trigramme
      } else{
        var blocToDisplay; 
        for(var i=0; i<trigrammes.length; i++){
          if(codeEncart == trigrammes[i]){                 
            blocToDisplay = i;          
          }else{
            if($(trigrammes[i]))
              $(trigrammes[i]).remove();
          }
        }            
        // si le bloc correspondant au trigramme est présent
        // on l'affiche et on execute la fonction associée
        if($(trigrammes[blocToDisplay])){ 
          $(trigrammes[blocToDisplay]).style.display = "block";
          switch (blocToDisplay) {
            case 0 :
              this.rewriteB2C();
              break;
            case 1 :
              this.rewriteBIZ();
              break;
            case 2 :
              this.rewriteMEE();
              break;
            case 3 :
              this.rewriteTRA();
              break;
            case 4 :
              this.rewriteLEI();
              break;
            case 5 :
              this.rewriteTHA();
              break;
          }
        } 
      }
                        
    },
    
    rewriteB2C: function(){      
      Event.observe("checkboxPref", 'click' , function(event){EncartFh.setCheckboxAvantage();});
      Event.observe("checkboxFid", 'click' , function(event){EncartFh.setCheckboxAvantage();});
      this.rewriteMoteur('B2C_FH_BOOKING');
    },
    
    setCheckboxAvantage : function(){
      if($('checkboxPref').checked == true || $('checkboxFid').checked == true){
       $('checkboxAvantage').value = 1;
      }else{
        $('checkboxAvantage').value = '';
      } 
    
    },
    
    rewriteBIZ: function(){     
      if(!ficheHotelViewBean.rechercheGeo && !ficheHotelViewBean.estIdentifieCorpo){
        Event.observe("bt_submit_BIZ", 'click' , function(event){Event.stop(event);EncartFh.onBIZsubmit();});        
      } 

      Event.observe("checkboxPref", 'click' , function(event){EncartFh.setCheckboxAvantage();});
      Event.observe("checkboxFid", 'click' , function(event){EncartFh.setCheckboxAvantage();});
      this.rewriteMoteur('BIZ_FH_BOOKING');
    },
        
    onBIZsubmit: function(){
      var formular = document.forms['BIZ_FH_BOOKING'];
      var valCheckboxPref = (formular.checkboxPref.checked)?'ON':'';
      var valCheckboxFid = (formular.checkboxFid.checked)?'ON':'';
      top.location = '/'+getUrlParameter('lang')+'/reservation/bookings.shtml#hotel_ou_ville='+getUrlParameter('rid')+"&code_chaine="+getUrlParameter('brand').toUpperCase()+'&arrivee='+formular.arrivee.value+'&jour_arrivee='+formular.jour_arrivee.value+'&mois_arrivee='+formular.mois_arrivee.value+'&annee_arrivee='+formular.annee_arrivee.value+'&nb_nuit='+formular.nb_nuit.value+'&code_preferentiel='+valCheckboxPref+'&porteur_carte='+valCheckboxFid;                         
    },        

    rewriteMEE: function(){
      // on affiche le bouton mice (4 cas : resa online, devis online, devis offline, moteur mice)
      if(ficheHotelViewBean.btMice){
        document.getElementById('lien_mice').style.display="block";        
        // s'il faut l url du moteur mice les params rid et brand sont à récupérer à rajouter
		    var brandSelect = getUrlParameter("brand");
        if(ficheHotelViewBean.btMoteurMice && (brandSelect=="ase") ){// cas particulier All seasons 
          ficheHotelViewBean.urlMice = ficheHotelViewBean.urlMice+"#hotel_ou_ville="+getUrlParameter('rid');  
        }    
    		else {
          ficheHotelViewBean.urlMice = ficheHotelViewBean.urlMice+"#hotel_ou_ville="+getUrlParameter('rid')+"&code_chaine="+getUrlParameter('brand').toUpperCase(); //autres cas
    		}		
        document.getElementById('a_mice').href=ficheHotelViewBean.urlMice;            
      // si pas de bouton mice (pas de BOL ni de devis possible pour l'hotel)      
      }else{
        // on affiche le bouton de retour à la liste hôtel 
        if(ficheHotelViewBean.btLH && ! ficheHotelViewBean.btMice){
          document.getElementById('lien_lh').style.display="block"; 
          if(ficheHotelViewBean.urlLH && document.getElementById('a_lh'))
          	document.getElementById('a_lh').href=ficheHotelViewBean.urlLH;
        }      
      }    
    },
    
    rewriteTRA: function(){
      // il ya eu recherche Geo
      if(ficheHotelViewBean.rechercheGeo){
        // resa group
        if(bookingEngineViewBean.travelGroupBooking){
          if(bookingEngineViewBean.travelGroupBooking){          
          // identif sc /contrat
          if(bookingEngineViewBean.companyReserverId && bookingEngineViewBean.companyReserverContract){
            $("lien_mice").style.display= 'block';  
			$("lien_mice").down().href = '/selectPax.svlt?hotel_ville='+getUrlParameter('rid')

          }else{
            $('lien_bv_tra').style.display= 'block';
            $('lien_back_tra').style.display= 'block';
          }
          
        }          
        // resa indiv ou star  
        }else{    
          $('hidden_group').remove();
          $('moteur_tra').style.display= 'block';
        }
        this.rewriteMoteur('TRA_FH_BOOKING');
       // pas de recherche geo 
      }else{
        $('a_group').href='/'+getUrlParameter('lang')+'/reservation/group-booking/group-booking.shtml#hotel_ou_ville='+getUrlParameter('rid')+"&code_chaine="+getUrlParameter('brand').toUpperCase();        
        $('a_indiv').href='/'+getUrlParameter('lang')+'/reservation/individual-booking/individual-booking.shtml#hotel_ou_ville='+getUrlParameter('rid')+"&code_chaine="+getUrlParameter('brand').toUpperCase();        
        $('a_star').href='/'+getUrlParameter('lang')+'/reservation/star-booking/star-booking.shtml#hotel_ou_ville='+getUrlParameter('rid')+"&code_chaine="+getUrlParameter('brand').toUpperCase();
        $('lien_moteurs_tra').style.display = 'block';      
      }
            
    },
    
    rewriteLEI: function(){
      if(ficheHotelViewBean.groupeLoisirReservation){
        $('lien_back_lei').style.display = 'block';
      }else{
        $('moteur_lei').style.display = 'block';
        Event.observe("checkboxPref", 'click' , function(event){EncartFh.setCheckboxAvantage();});
        Event.observe("checkboxFid", 'click' , function(event){EncartFh.setCheckboxAvantage();});
        this.rewriteMoteur('LEI_FH_BOOKING');
      }
      
    },
    
    rewriteTHA: function(){
      
    },
    
    rewriteMoteur: function(formName){
      var formular = document.forms[formName];
      
      // destination
      formular.hotel_ou_ville.value = getUrlParameter('rid');
      
      // date
      if(bookingEngineViewBean.dayIn && bookingEngineViewBean.monthIn && bookingEngineViewBean.yearIn){
    		formular.jour_arrivee.value=bookingEngineViewBean.dayIn;
    		formular.mois_arrivee.value=bookingEngineViewBean.monthIn;
    		formular.annee_arrivee.value=bookingEngineViewBean.yearIn;    	
    		formular.nb_nuit.value = bookingEngineViewBean.nightsNumber;
    		this.rewriteDate(formular);	    
	    }
       
    	// code préférentiel 	    		    		
    	if(bookingEngineViewBean.preferentialCode && formular.checkboxAvantage){
	    	formular.checkboxPref.checked = true;
	    	formular.checkboxAvantage.value = 1;
    	}
    	// carte Accor
    	if(bookingEngineViewBean.fidelityCardType && formular.checkboxAvantage){
	    	formular.checkboxFid.checked = true;
	    	formular.checkboxAvantage.value = 1;
      }
      if(bookingEngineViewBean.fidelityCardNumber && formular.checkboxAvantage){
    		formular.checkboxFid.checked = true;
    		formular.checkboxAvantage.value = 1;
    	}
              
    },

	  rewriteDate: function(formular) {
			var arrival_date = new Date();
			arrival_date.setFullYear(formular.annee_arrivee.value);
			arrival_date.setMonth   (formular.mois_arrivee.value-1);
			arrival_date.setDate    (formular.jour_arrivee.value);	
			var arrival_date2 =arrival_date.print(Calendar._TT["DEF_DATE_FORMAT"]);
			if(formular.arrivee){
				formular.arrivee.value = arrival_date2;
				fireEvent(formular.arrivee, 'change');				
			}	
	  }
    
}
core.push(EncartFh);


//Recupere un parametre de l URL
function getUrlParameter( name ){  
		name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");  
		var regexS = "[\\?&#]"+name+"=([^&#]*)";  
		var regex = new RegExp( regexS );  
		var results = regex.exec( window.location.href );  
		if( results == null )    
			return "";  
		else
			return results[1];
	}
	
//Declanche un evenement
function fireEvent(element,event){
  if (document.createEventObject){
      // dispatch for IE
      var evt = document.createEventObject();
      element.fireEvent('on'+event,evt);
  }
  else{
      // dispatch for firefox + others
      var evt = document.createEvent("HTMLEvents");
      evt.initEvent(event, true, true ); // event type,bubbling,cancelable
       !element.dispatchEvent(evt);
  }
}	

	

