/*
 * Created on 05/10/2006 by Alan Lois
 * Version 1.0 on 05/10/2006 by Alan Lois
 */

//------ FLIGHTS, HOTELS, DYNAMIC ---------------
	/**
	*Funcion que carga los campos del formulario de busqueda con
	*los datos que contiene la cookie.
	*/
	function setFlightsFormDataFromCookie(cookieObj, site, page){
		var formId = 'searchFlightForm';
		var f = document.getElementById(formId);
		
		var tempValues = null;
	
		//Si hay datos del formulario de busquedas anteriores en la cookie
			//alert("setFlightsFormDataFromCookie: cookieObj.getValues().length: "+ cookieObj.getValues().length);
		if(cookieObj.getValues().length>0){
			//pedimos datos
			var aData = cookieObj.getValuesArrayByName(FLIGHTS_DATA);
			if(aData !=null && aData.length>0){
					/*alert("setFlightsFormDataFromCookie: " + "\r\n" 
							+ "aData = cookieObj.getValuesArrayByName(FLIGHTS_DATA) = " + aData
						);
					*/

				//RADIO IDA Y VUELTA O SOLO IDA
				_loadRoundTrip(aData, f);
				
				//llamamos a la funcion que deshabilita combo de fechas de vuelta o no.
				deshab(formId,'destinationDate_day','destinationDate_month','destinationHour','roundTrip');
				
				//DEPARTURE-DESTINATION
				_loadDeparture(aData, f, site);
				_loadDestination(aData, f, site);
				
				//DATES
				_loadDepartureDate(aData, f, formId);
				_loadDestinationDate(aData, f, formId);
				
				//HOURS
				_loadDepartureHour(aData, f, page);
				_loadDestinationHour(aData, f, page);
				
				//PASSENGERS
				_loadPassengers(aData, f);
				
				//CABINCLASS
				_loadCabinClass(aData, f);
				
				//AIRLINE
				_loadAirline(aData, f, page);
			}
		}
	}//function


/**
	*Funcion que carga los campos del formulario de busqueda con
	*los datos que contiene la cookie. FUNCION PARA VERSION V2
	*/
	function setFlightsFormDataFromCookieV2(cookieObj, site, page){
		var formId = 'searchFlightForm';
		var f = document.getElementById(formId);
		var tempValues = null;
		//Si hay datos del formulario de busquedas anteriores en la cookie
			//alert("setFlightsFormDataFromCookie: cookieObj.getValues().length: "+ cookieObj.getValues().length);
		if(cookieObj.getValues().length>0){
			//pedimos datos
			var aData = cookieObj.getValuesArrayByName(FLIGHTS_DATA);			
			if(aData !=null && aData.length>0){
					/*alert("setFlightsFormDataFromCookie: " + "\r\n" 
							+ "aData = cookieObj.getValuesArrayByName(FLIGHTS_DATA) = " + aData
						);
					*/

				//RADIO IDA Y VUELTA O SOLO IDA
				_loadRoundTrip(aData, f);
				
				//llamamos a la funcion que deshabilita combo de fechas de vuelta o no.
				deshabV2(formId,'destinationDate','destinationHour','roundTrip');
				
				//DEPARTURE-DESTINATION
				_loadDeparture(aData, f, site);
				_loadDestination(aData, f, site);
				
				//DATES
				_loadDepartureDateV2(aData, f, formId);
				_loadDestinationDateV2(aData, f, formId);
				
				//HOURS
				_loadDepartureHour(aData, f, page);
				_loadDestinationHour(aData, f, page);
				
				//PASSENGERS
				_loadPassengers(aData, f);
				
				//CABINCLASS
				_loadCabinClass(aData, f);
				
				//AIRLINE
				_loadAirline(aData, f, page);
			}
		}
	}//function
	/**
	* Establece los datos a guardar en el objeto cookie y luego
	* escribe lo guarda todo en el cliente
	*/
	function setFlightsCookie(cookieObj, id, site, page){
		var formId = 'searchFlightForm';
		var f = document.getElementById(formId);
		
		cookieObj.clear();	//Borra los datos (names y values) del objeto cookie
		
		var data = new Array();	//array en el que meteremos los datos que se concatenaran para meterlos en la cookie
		
		//empezamos a meter datos
		if(f.roundTrip) data.push(ROUND_TRIP_PREFIX + VALUES_SEPARATOR + f.roundTrip[1].checked);
		
		//DEPARTURE-DESTINATION
		_addDeparture(data, f);
		_addDestination(data, f);
		
		//DATES	
		_addDepartureDate(data, f);
		_addDestinationDate(data, f);
		
		//HOURS
			//alert("setFlightsCookie: departureHour = " + f.departureHour.value + "; destinationHour = " + f.destinationHour.value);
		if(f.departureHour && f.departureHour.value != "-1" && f.departureHour.value != "") data.push(DEPARTURE_HOUR_PREFIX + VALUES_SEPARATOR + f.departureHour.value);
		if(f.destinationHour && f.destinationHour.value != "-1" && f.destinationHour.value != "") data.push(DESTINATION_HOUR_PREFIX + VALUES_SEPARATOR + f.destinationHour.value);
		
		//PASSENGERS
		_addPassengers(data, f);

		//CABINCLASS
		if(f.cabinClass) data.push(CABIN_CLASS_PREFIX + VALUES_SEPARATOR + f.cabinClass.value);
		
		//AIRLINE
		if(f.airline && f.airline.value != "-1" && f.airline.value != "") data.push(AIRLINE_PREFIX + VALUES_SEPARATOR + f.airline.value);
		
		//SITE & PAGE
		//se usa para ver si los datos guardaron la ultima vez son validos para el
		//site y/o pagina en que se van cargar esta vez
		if(site != null) data.push(SITE_PREFIX + VALUES_SEPARATOR + site);
		if(page != null) data.push(PAGE_PREFIX + VALUES_SEPARATOR + page);

		//metemos los datos al objeto cookie
		cookieObj.addNameAndValuesArray(FLIGHTS_DATA, data);
		
		//escribimos (guardamos) la cookie en el cliente
		cookieObj.write(id);
	}

	/**
	* Establece los datos a guardar en el objeto cookie y luego
	* escribe lo guarda todo en el cliente
	*/
	function setFlightsCookieV2(cookieObj, id, site, page){
		var formId = 'searchFlightForm';
		var f = document.getElementById(formId);
		
		cookieObj.clear();	//Borra los datos (names y values) del objeto cookie
		
		var data = new Array();	//array en el que meteremos los datos que se concatenaran para meterlos en la cookie
		
		//empezamos a meter datos
		if(f.roundTrip) data.push(ROUND_TRIP_PREFIX + VALUES_SEPARATOR + f.roundTrip[1].checked);
		
		//DEPARTURE-DESTINATION
		_addDeparture(data, f);
		_addDestination(data, f);
		
		//DATES	
		_addDepartureDateV2(data, f);
		_addDestinationDateV2(data, f);
		
		//HOURS
			//alert("setFlightsCookie: departureHour = " + f.departureHour.value + "; destinationHour = " + f.destinationHour.value);
		if(f.departureHour && f.departureHour.value != "-1" && f.departureHour.value != "") data.push(DEPARTURE_HOUR_PREFIX + VALUES_SEPARATOR + f.departureHour.value);
		if(f.destinationHour && f.destinationHour.value != "-1" && f.destinationHour.value != "") data.push(DESTINATION_HOUR_PREFIX + VALUES_SEPARATOR + f.destinationHour.value);
		
		//PASSENGERS
		_addPassengers(data, f);

		//CABINCLASS
		if(f.cabinClass) data.push(CABIN_CLASS_PREFIX + VALUES_SEPARATOR + f.cabinClass.value);
		
		//AIRLINE
		if(f.airline && f.airline.value != "-1" && f.airline.value != "") data.push(AIRLINE_PREFIX + VALUES_SEPARATOR + f.airline.value);
		
		//SITE & PAGE
		//se usa para ver si los datos guardaron la ultima vez son validos para el
		//site y/o pagina en que se van cargar esta vez
		if(site != null) data.push(SITE_PREFIX + VALUES_SEPARATOR + site);
		if(page != null) data.push(PAGE_PREFIX + VALUES_SEPARATOR + page);

		//metemos los datos al objeto cookie
		cookieObj.addNameAndValuesArray(FLIGHTS_DATA, data);
		
		//escribimos (guardamos) la cookie en el cliente
		cookieObj.write(id);
	}




	/**
	*Funcion que carga los campos del formulario de busqueda con
	*los datos que contiene la cookie.
	*/
	function setHotelsFormDataFromCookie(cookieObj, site, page){
			//alert("setHotelsFormDataFromCookie: cookieObj.getNames()[0] = " + cookieObj.getNames()[0]);
		var formId = '';
		if(document.getElementById('buscadorHoteles') != null){
			formId = 'buscadorHoteles';
		} else {
			formId = 'searchHotelForm';
		}
		
		var f = document.getElementById(formId);
	
		var tempValues = null;
	
		//Si hay datos del formulario de busquedas anteriores en la cookie
		//alert("cookieObj.getValues().length: "+ cookieObj.getValues().length);
		if(cookieObj.getValues().length>0){
			//pedimos datos
			var aData = cookieObj.getValuesArrayByName(HOTELS_DATA);
			if(aData !=null && aData.length>0){
				//RADIO IDA Y VUELTA O SOLO IDA
				//solo si existe optHoteles (ya que en marsans.pt y crisol no existe)
				_loadOptHoteles(aData, f);
				
				//DESTINATION
				if(f.optHoteles){
					//solo si existe optHoteles (ya que en marsans.pt y crisol no existe)
					_loadDestinationHotel(aData, f, site);
				} else {
					_loadDestinationHotelWithoutOptHoteles(aData, f, site);
				}
				
				//DATES
				_loadDepartureDate(aData, f, formId);
				_loadDestinationDate(aData, f, formId);
				
				//ROOMS
				//_loadRooms(aData, f);
				//ROOMS
				_loadRoomsWithChildren(aData, f);
				
				//BOARDTYPE
				_loadBoardType(aData, f);
				
				//CATEGORY (hotel)
				_loadCategory(aData, f, page);
				
				//CITY CENTRE
				_loadCityCentre(aData, f, page);
			}
		}
	}//function
	
	/**
	*Funcion que carga los campos del formulario de busqueda con
	*los datos que contiene la cookie.
	*/
	function setHotelsFormDataFromCookieV2(cookieObj, site, page){
			//alert("setHotelsFormDataFromCookie: cookieObj.getNames()[0] = " + cookieObj.getNames()[0]);
		var formId = '';
		if(document.getElementById('buscadorHoteles') != null){
			formId = 'buscadorHoteles';
		} else {
			formId = 'searchHotelForm';
		}
		
		var f = document.getElementById(formId);
	
		var tempValues = null;
	
		//Si hay datos del formulario de busquedas anteriores en la cookie
		//alert("cookieObj.getValues().length: "+ cookieObj.getValues().length);
		if(cookieObj.getValues().length>0){
			//pedimos datos
			var aData = cookieObj.getValuesArrayByName(HOTELS_DATA);
			if(aData !=null && aData.length>0){
				//RADIO IDA Y VUELTA O SOLO IDA
				//solo si existe optHoteles (ya que en marsans.pt y crisol no existe)
				_loadOptHoteles(aData, f);
				
				//DESTINATION
				if(f.optHoteles){
					//solo si existe optHoteles (ya que en marsans.pt y crisol no existe)
					_loadDestinationHotel(aData, f, site);
				} else {
					_loadDestinationHotelWithoutOptHoteles(aData, f, site);
				}
				
				//DATES
				_loadDepartureDateV2(aData, f, formId);
				_loadDestinationDateV2(aData, f, formId);
				
				//ROOMS
				//_loadRooms(aData, f);
				//ROOMS
				_loadRoomsWithChildren(aData, f);
				
				//BOARDTYPE
				_loadBoardType(aData, f);
				
				//CATEGORY (hotel)
				_loadCategory(aData, f, page);
				
				//CITY CENTRE
				_loadCityCentre(aData, f, page);
			}
		}
	}//function
	

	/**
	* Establece los datos a guardar en el objeto cookie y luego
	* escribe lo guarda todo en el cliente
	*/
	function setHotelsCookie(cookieObj, id, site, page){
		var formId = '';
		if(document.getElementById('searchHotelForm') != null){
			formId = 'searchHotelForm';
		} else {
			formId = 'buscadorHoteles';
		}
		var f = document.getElementById(formId);
		
		cookieObj.clear();	//Borra los datos (names y values) del objeto cookie		
		
		var data = new Array();	//array en el que meteremos los datos que se concatenaran para meterlos en la cookie
		
		//empezamos a meter datos
		if(f.optHoteles){
			//solo si existe optHoteles (ya que en marsans.pt y crisol no existe)
			data.push(OPT_HOTELS_PREFIX + VALUES_SEPARATOR + f.optHoteles[1].checked);
		}
		
		//DESTINATION
		_addDestinationHotel(data, f);
		
		//DATES	
		_addDepartureDate(data, f);
		_addDestinationDate(data, f);	
		
		//ROOMS.
		//_addRooms(data, f);
		
		//ROOMS WITH CHILDREN
		_addRoomsWithChildren(data, f);	

		//BOARDTYPE
		if(f.boardType) data.push(BOARD_TYPE_PREFIX + VALUES_SEPARATOR + f.boardType.value);
		
		//CATEGORY (hotel)
		if(f.category) data.push(CATEGORY_PREFIX + VALUES_SEPARATOR + f.category.value);
		
		//CITY CENTRE
			//if(f.cityCentre) alert("setHotelsCookie: f.cityCentre.checked = " + f.cityCentre.checked + "; f.cityCentre.value = " + f.cityCentre.value);
		if(f.cityCentre && f.cityCentre.checked==true) data.push(CITY_CENTRE_PREFIX + VALUES_SEPARATOR + f.cityCentre.checked);
		
		//SITE & PAGE
		//se usa para ver si los datos guardaron la ultima vez son validos para el
		//site y/o pagina en que se van cargar esta vez
		if(site != null) data.push(SITE_PREFIX + VALUES_SEPARATOR + site);
		if(page != null) data.push(PAGE_PREFIX + VALUES_SEPARATOR + page);

		//metemos los datos al objeto cookie
		cookieObj.addNameAndValuesArray(HOTELS_DATA, data);
		
		//escribimos (guardamos) la cookie en el cliente
		cookieObj.write(id);
	}
	
	/**
	* Establece los datos a guardar en el objeto cookie y luego
	* escribe lo guarda todo en el cliente
	*/
	function setHotelsCookieV2(cookieObj, id, site, page){
		var formId = '';
		if(document.getElementById('searchHotelForm') != null){
			formId = 'searchHotelForm';
		} else {
			formId = 'buscadorHoteles';
		}
		var f = document.getElementById(formId);
		
		cookieObj.clear();	//Borra los datos (names y values) del objeto cookie		
		
		var data = new Array();	//array en el que meteremos los datos que se concatenaran para meterlos en la cookie
		
		//empezamos a meter datos
		if(f.optHoteles){
			//solo si existe optHoteles (ya que en marsans.pt y crisol no existe)
			data.push(OPT_HOTELS_PREFIX + VALUES_SEPARATOR + f.optHoteles[1].checked);
		}
		
		//DESTINATION
		_addDestinationHotel(data, f);
		
		//DATES	
		_addDepartureDateV2(data, f);
		_addDestinationDateV2(data, f);	
		
		//ROOMS.
		//_addRooms(data, f);
		
		//ROOMS WITH CHILDREN
		_addRoomsWithChildren(data, f);	

		//BOARDTYPE
		if(f.boardType) data.push(BOARD_TYPE_PREFIX + VALUES_SEPARATOR + f.boardType.value);
		
		//CATEGORY (hotel)
		if(f.category) data.push(CATEGORY_PREFIX + VALUES_SEPARATOR + f.category.value);
		
		//CITY CENTRE
			//if(f.cityCentre) alert("setHotelsCookie: f.cityCentre.checked = " + f.cityCentre.checked + "; f.cityCentre.value = " + f.cityCentre.value);
		if(f.cityCentre && f.cityCentre.checked==true) data.push(CITY_CENTRE_PREFIX + VALUES_SEPARATOR + f.cityCentre.checked);
		
		//SITE & PAGE
		//se usa para ver si los datos guardaron la ultima vez son validos para el
		//site y/o pagina en que se van cargar esta vez
		if(site != null) data.push(SITE_PREFIX + VALUES_SEPARATOR + site);
		if(page != null) data.push(PAGE_PREFIX + VALUES_SEPARATOR + page);

		//metemos los datos al objeto cookie
		cookieObj.addNameAndValuesArray(HOTELS_DATA, data);
		
		//escribimos (guardamos) la cookie en el cliente
		cookieObj.write(id);
	}


	/**
	*Funcion que carga los campos del formulario de busqueda con
	*los datos que contiene la cookie.
	*/
	function setDynamicFormDataFromCookie(cookieObj, site, page){
		var formId = 'dynamicSearchForm';
		var f = document.getElementById(formId);

		//Si hay datos del formulario de busquedas anteriores en la cookie
		//alert("setDynamicFormDataFromCookie: cookieObj.getValues().length: "+ cookieObj.getValues().length);
		if(cookieObj.getValues().length>0){
			//pedimos datos
			var aData = cookieObj.getValuesArrayByName(DYNAMIC_DATA);
			if(aData !=null && aData.length>0){
					/*alert("setDynamicFormDataFromCookie: " + "\r\n" 
							+ "aData = cookieObj.getValuesArrayByName(DYNAMIC_DATA) = " + aData
						);
					*/
				
				//DEPARTURE-DESTINATION
				_loadDeparture(aData, f, site);
				_loadDestination(aData, f, site);
				
				//DATES
				_loadDepartureDate(aData, f, formId);
				_loadDestinationDate(aData, f, formId);
				
				//HOURS
				_loadDepartureHour(aData, f, page);
				_loadDestinationHour(aData, f, page);
				
				//PASSENGERS
				_loadPassengers(aData, f);
				
				//CABINCLASS
				_loadCabinClass(aData, f);
				
				//AIRLINE
				_loadAirline(aData, f, page);
				
				//ROOMS
				_loadRoomsWithChildren(aData, f);
				
				//BOARDTYPE
				_loadBoardType(aData, f, page);
			}
		}
	}//function

	/**
	* Establece los datos a guardar en el objeto cookie y luego
	* escribe lo guarda todo en el cliente
	*/
	function setDynamicCookie(cookieObj, id, site, page){
		var formId = 'dynamicSearchForm';
		var f = document.getElementById(formId);
		
		cookieObj.clear();	//Borra los datos (names y values) del objeto cookie
		
		var data = new Array();	//array en el que meteremos los datos que se concatenaran para meterlos en la cookie
		
		//empezamos a meter datos
		
		//DEPARTURE-DESTINATION
		_addDeparture(data, f);
		_addDestination(data, f);
		
		//DATES	
		_addDepartureDate(data, f);
		_addDestinationDate(data, f);
		
		//HOURS
			//alert("setDynamicCookie: departureHour = " + f.departureHour.value + "; destinationHour = " + f.destinationHour.value);
		if(f.departureHour && f.departureHour.value != "-1" && f.departureHour.value != "") data.push(DEPARTURE_HOUR_PREFIX + VALUES_SEPARATOR + f.departureHour.value);
		if(f.destinationHour && f.destinationHour.value != "-1" && f.destinationHour.value != "") data.push(DESTINATION_HOUR_PREFIX + VALUES_SEPARATOR + f.destinationHour.value);
		
		//PASSENGERS
		_addPassengers(data, f);
		
		//CABINCLASS
		if(f.cabinClass) data.push(CABIN_CLASS_PREFIX + VALUES_SEPARATOR + f.cabinClass.value);
		
		//AIRLINE
		if(f.airline && f.airline.value != "-1" && f.airline.value != "") data.push(AIRLINE_PREFIX + VALUES_SEPARATOR + f.airline.value);

		//ROOMS WITH CHILDREN
		_addRoomsWithChildren(data, f);	
		
		//BOARDTYPE
		if(f.boardType && f.boardType.value != "-1" && f.boardType.value != "") data.push(BOARD_TYPE_PREFIX + VALUES_SEPARATOR + f.boardType.value);	
		
		//SITE & PAGE
		//se usa para ver si los datos guardaron la ultima vez son validos para el
		//site y/o pagina en que se van cargar esta vez
		if(site != null) data.push(SITE_PREFIX + VALUES_SEPARATOR + site);
		if(page != null) data.push(PAGE_PREFIX + VALUES_SEPARATOR + page);

		//metemos los datos al objeto cookie
		cookieObj.addNameAndValuesArray(DYNAMIC_DATA, data);

		//escribimos (guardamos) la cookie en el cliente
		cookieObj.write(id);
	}
	
	
	/* Establece los datos a guardar en el objeto cookie y luego
	* escribe lo guarda todo en el cliente, version V2
	*/
	function setDynamicCookieV2(cookieObj, id, site, page){
		var formId = 'dynamicSearchForm';
		var f = document.getElementById(formId);
		
		cookieObj.clear();	//Borra los datos (names y values) del objeto cookie
		
		var data = new Array();	//array en el que meteremos los datos que se concatenaran para meterlos en la cookie
		
		//empezamos a meter datos
		
		//DEPARTURE-DESTINATION
		_addDeparture(data, f);
		_addDestination(data, f);
		
		//DATES	
		_addDepartureDateV2(data, f);
		_addDestinationDateV2(data, f);
		
		//HOURS
			//alert("setDynamicCookie: departureHour = " + f.departureHour.value + "; destinationHour = " + f.destinationHour.value);
		if(f.departureHour && f.departureHour.value != "-1" && f.departureHour.value != "") data.push(DEPARTURE_HOUR_PREFIX + VALUES_SEPARATOR + f.departureHour.value);
		if(f.destinationHour && f.destinationHour.value != "-1" && f.destinationHour.value != "") data.push(DESTINATION_HOUR_PREFIX + VALUES_SEPARATOR + f.destinationHour.value);
		
		//PASSENGERS
		_addPassengers(data, f);
		
		//CABINCLASS
		if(f.cabinClass) data.push(CABIN_CLASS_PREFIX + VALUES_SEPARATOR + f.cabinClass.value);
		
		//AIRLINE
		if(f.airline && f.airline.value != "-1" && f.airline.value != "") data.push(AIRLINE_PREFIX + VALUES_SEPARATOR + f.airline.value);

		//ROOMS WITH CHILDREN
		_addRoomsWithChildren(data, f);	
		
		//BOARDTYPE
		if(f.boardType && f.boardType.value != "-1" && f.boardType.value != "") data.push(BOARD_TYPE_PREFIX + VALUES_SEPARATOR + f.boardType.value);	
		
		//SITE & PAGE
		//se usa para ver si los datos guardaron la ultima vez son validos para el
		//site y/o pagina en que se van cargar esta vez
		if(site != null) data.push(SITE_PREFIX + VALUES_SEPARATOR + site);
		if(page != null) data.push(PAGE_PREFIX + VALUES_SEPARATOR + page);

		//metemos los datos al objeto cookie
		cookieObj.addNameAndValuesArray(DYNAMIC_DATA, data);

		//escribimos (guardamos) la cookie en el cliente
		cookieObj.write(id);
	}
	
		/**
	*Funcion que carga los campos del formulario de busqueda con
	*los datos que contiene la cookie.
	*/
	function setDynamicFormDataFromCookieV2(cookieObj, site, page){
		var formId = 'dynamicSearchForm';
		var f = document.getElementById(formId);

		//Si hay datos del formulario de busquedas anteriores en la cookie
		//alert("setDynamicFormDataFromCookie: cookieObj.getValues().length: "+ cookieObj.getValues().length);
		if(cookieObj.getValues().length>0){
			//pedimos datos
			var aData = cookieObj.getValuesArrayByName(DYNAMIC_DATA);
			if(aData !=null && aData.length>0){
					/*alert("setDynamicFormDataFromCookie: " + "\r\n" 
							+ "aData = cookieObj.getValuesArrayByName(DYNAMIC_DATA) = " + aData
						);
					*/
				
				//DEPARTURE-DESTINATION
				_loadDeparture(aData, f, site);
				_loadDestination(aData, f, site);
				
				//DATES
				_loadDepartureDateV2(aData, f, formId);
				_loadDestinationDateV2(aData, f, formId);
				
				//HOURS
				_loadDepartureHour(aData, f, page);
				_loadDestinationHour(aData, f, page);
				
				//PASSENGERS
				_loadPassengers(aData, f);
				
				//CABINCLASS
				_loadCabinClass(aData, f);
				
				//AIRLINE
				_loadAirline(aData, f, page);
				
				//ROOMS
				//_loadRoomsWithChildren(aData, f);
				
				//BOARDTYPE
				_loadBoardType(aData, f, page);
			}
		}
	}//function
	
//-- VACACIONES (MARES, MUNES)----------------

