/**
 * Objet javascript permettant de gérer les données d'affichage
 * du "bloc" d'un profil utilisateur.
 */
var TravelIndividualBooking= {
		bookingEngineViewBean: null,
		fidelityCardsViewBean: null,
    
    /**
     * Liste des noms d'objets à utiliser.
     */
		getBeans: function() {
        return "BookingEngineViewBean;FildelityCardsViewBean";
    },
    
    /**
     * Initialisation de la variable JSON
     */
    initJSON: function() {
        var num;
    	try {
        	for( num in beans){
              if("BookingEngineViewBean" == beans[num].nom) {
                    bookingEngineViewBean = beans[num].bean;
            	} else if("FildelityCardsViewBean" == beans[num].nom) {
                    fidelityCardsViewBean = beans[num].bean;            	
            	}
            }
        } catch(e) {
    		alert(e);
    	}
    },
        
    /**
     * Ecrivez votre code sur l'initialisation des affichage de la page
     * ici.
     * Cette méthode est appelée sur le onload de la page.
     */
    rewrite: function() {
    	  this.rewriteForm();
    	  if($("allBrands_YES"))
    	  	Event.observe($("allBrands_YES"), "click", function(event){TravelIndividualBooking.rewriteBrandSelection();});
    	  if($("allBrands_NO"))
    	  	Event.observe($("allBrands_NO"), "click", function(event){TravelIndividualBooking.rewriteBrandSelection();});
    	  	
    	  Event.observe($("submit_star"),'click',	function(event) {this.cleanInputFields();}.bind(this));	
    },
    
    rewriteForm: function(){
    	
    	if (document.forms["TRAVEL_STAR_BOOKING"] && fidelityCardsViewBean && fidelityCardsViewBean.fidelityCards){
        fillSelect("type_carte_fidelite", fidelityCardsViewBean.fidelityCards, "-", "-");
  		}
    	
    	if(document.forms["TRAVEL_STAR_BOOKING"] && bookingEngineViewBean){
    		var formular = document.forms["TRAVEL_STAR_BOOKING"];    		
    		if(formular.code_preferentiel)
          Event.observe(formular.code_preferentiel, "click", function(event){affiche_ou_masque('div_code_pref_a');});
        if(formular.porteur_carte)          
    		  Event.observe(formular.porteur_carte, "click", function(event){affiche_ou_masque('div_carte_accor_a');});
            		
    		if(bookingEngineViewBean.destination)
    			formular.hotel_ou_ville.value=bookingEngineViewBean.destination;
    		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;
  	    		//selectOption(formular.nb_nuit.id, bookingEngineViewBean.nightsNumber)
  	    		formular.nb_nuit.value = bookingEngineViewBean.nightsNumber;
  	    		this.rewriteDate(formular);
  	    }
        	
	    	// AgVoy (IATA/RT + num)	
	    	if (bookingEngineViewBean.agencyReserverType=="RT")
          formular.agencyType[1].checked=true;
        else
        	formular.agencyType[0].checked=true;
        if(bookingEngineViewBean.agencyReserverId){        	
	    	  formular.agencyId.value=bookingEngineViewBean.agencyReserverId;
        }
        
        //arrivée sur star booking depuis page star bouton "demandez vos identifiant"
        var search = getUrlParameter('search'); //getUrlParameter ds serialize.js
        if(search == null || search == "" || search != 'new'){
  				// société sc/contrat
  				if(bookingEngineViewBean.companyReserverId && formular.agencyAccountId){
  	    	  formular.agencyAccountId.value=bookingEngineViewBean.companyReserverId;
  	    	}
  	    	if(bookingEngineViewBean.companyReserverContract){
      		  formular.agencyAccountContract.value=bookingEngineViewBean.companyReserverContract;
      		}
        }
        
	    	// code préférentiel 	    		    			    		
	    	if(bookingEngineViewBean.preferentialCode && formular.code_preferentiel){
		    	formular.code_preferentiel.checked=true;
		    	formular.code_avantage.value=bookingEngineViewBean.preferentialCode;
	    	}
	    	// carte Accor
	    	if(bookingEngineViewBean.fidelityCardType && formular.porteur_carte){	
		    	formular.porteur_carte.checked=true;
		    	formular.type_carte_fidelite.value=bookingEngineViewBean.fidelityCardType;
	    		formular.num_carte_fidelite.value=bookingEngineViewBean.fidelityCardNumber;
	    	}		    	
	 	    		
	    	
  	
				this.setBrandSelection();
	    	
    	}
	  },
	  
	  rewriteDate: function(formular) {
			var arrival_date = new Date(formular.annee_arrivee.value, formular.mois_arrivee.value-1, 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');
			}	
	  },

	  setBrandSelection: function(formular) {
	    	var chainSelection = getUrlParameter("code_chaine");
	    	if(chainSelection){
	    		$("allBrands_NO").checked=true;
	    		chainSelection.split("|").each(
						function(element){
			    		if($("code_chaine_"+element))
								$("code_chaine_"+element).checked=true;
		        }	    			
	    		)
	    		
					this.rewriteBrandSelection();
				}
	  },
	  
	  rewriteBrandSelection: function() {
	  		var checkboxes = $$("#brandSelection input");
  	  	if($("allBrands_YES").checked && $("brandSelection").style.display=="block"){
  	  		$("brandSelection").style.display="none";
					checkboxes.each(
						function(element){
							element.disabled=true;
		        }
					)  	  		
  	  	} else if($("allBrands_NO").checked && $("brandSelection").style.display=="none") {
  	  		$("brandSelection").style.display="block";
					checkboxes.each(
						function(element){
							element.disabled=false;
		        }
					)  	  		
				}								
	  },	  
	  	  	     
    cleanInputFields: function(){
      var formular = document.forms["TRAVEL_STAR_BOOKING"];      
      Cleaner.cleanDefaultValue(formular.agencyId);
      Cleaner.cleanDefaultValue(formular.hotel_ou_ville);
      Cleaner.cleanDefaultValue(formular.agencyAccountId);
      Cleaner.cleanDefaultValue(formular.agencyAccountContract);      
    }	  	  	  
}

core.push(TravelIndividualBooking);

/**
 * Mettez ci-dessous les méthodes utilisées par la page, utilisant le JSON.
 * Toute méthode n'ayant pas de rapport avec le JSON ne sera pas acceptée.
 */
 
 function affiche_ou_masque(div){
  if(document.getElementById(div).style.display=="none"){
    document.getElementById(div).style.display="block";
  }else{
    document.getElementById(div).style.display="none";
  }
 }
 
function setDefaultValuesTravelStarBooking(){
  var formular = document.forms["TRAVEL_STAR_BOOKING"];      
  Cleaner.setDefaultValue(formular.agencyId);
  Cleaner.setDefaultValue(formular.hotel_ou_ville);
  Cleaner.setDefaultValue(formular.agencyAccountId);
  Cleaner.setDefaultValue(formular.agencyAccountContract);      
}	   