/*
 * Created on 05/10/2006 by Alan Lois
 * Version 1.0 on 05/10/2006 by Alan Lois
 */

	/***************************************************************************
	*	FUNCIONES
	*	(UTILS)
	****************************************************************************/
	
	/**
	*Si encontramos el prefijo en un elemento del array de datos
	*le hacemos un split para separar los values contenidos en el elemento
	*y devolvemos un array con esos values(donde el primer elemento es
	*el prefijo buscado) o null si no se ha encontrado
	*
	*@param dataArray array con los datos donde se buscara
	*@prefix prefijo del conjunto de values buscados
	*
	*return array de values (el primer elemento del array es el prefijo)
	*		o null si no se ha encontrado
	*/
	function _getValuesArrayByPrefix(dataArray, prefix){
	
		for(var i=0;i<dataArray.length;i++){
			//si encontramos el prefijo en este elemento del array de datos
			//le hacemos un split para separar los values contenidos en el elemento
			//y devolvemos un array con esos values(donde el primer elemento es
			//el prefijo buscado)			
			var subDataArray = dataArray[i].split(VALUES_SEPARATOR);
		
			if(subDataArray[0] == prefix){
				/*alert("_getValuesArrayByPrefix:" + "\r\n"
						+ "prefix = " + prefix + "\r\n"
						+ "subDataArray = " + subDataArray
					);
				*/
				return subDataArray;
			}
		}
		
		return null;
	}
	
	/**
	*Comprueba si existe el value buscado en el combo dado
	*
	*@param combo Combo en el que se buscara el value dado
	*@param value Value que se buscara en el combo dado
	*/
	function _verifyValueInCombo(combo,value){
		if(value != ""){
			for(var i=0;i<combo.options.length;i++){
				// si en esta opcion encuentra el value buscado devolvemos true
				if(combo.options[i].value == value){
					return true;
				}
			}
		}			
		return false;
	}
	
	
	/**
	*Comprueba si el "site" guardado y el "site" que se esta
	*cargando tienen el mismo idioma (Solo para "sites" dentro
	*de un unico dominio, ya que las cookies van por dominio,
	*por eso no vale para sites reales con dominios diferentes)
	*
	*@param savedSite "site" del que estan guardados los datos
	*@param loadingSite "site" para el que se estan cargando los datos
	*
	*@return true si tienen el mismo idioma, false en caso contrario
	*/
	function _isSameLanguage(savedSite, loadingSite){
		if(_getSiteLanguage(savedSite) == _getSiteLanguage(loadingSite)){
			return true;
		}
		
		return false;
	}
	
	/**
	*Devuelve el idioma del site
	*/
	function _getSiteLanguage(site){
		for(var i=0;i<sites_espanol.length;i++){
			if(sites_espanol[i] == site) return ESPANOL;
		}
		for(var i=0;i<sites_portugues.length;i++){
			if(sites_portugues[i] == site) return PORTUGUES;
		}		
	}
	
	/***************************************************************************
	*	FUNCIONES PARA CARGAR
	*	BLOQUES DE DATOS
	****************************************************************************/
	
	//--------------------- SOLO PARA HOTELES ------------
	function _loadOptHoteles(dataArray, form){
		//RADIO IDA Y VUELTA O SOLO IDA
		if(form.optHoteles){
			//solo si existe optHoteles (ya que en marsans.pt y crisol no existe)
			var valuesArray = _getValuesArrayByPrefix(dataArray, OPT_HOTELS_PREFIX);
			if(valuesArray != null){
				if(valuesArray[1]=="true"){
					form.optHoteles[1].checked=true;
					cambiaDestino(form.optHoteles[1]);
				} else {
					form.optHoteles[0].checked=true;
					cambiaDestino(form.optHoteles[0]);
				}
			}
		}
	}
	
	function _loadDestinationHotel(dataArray, form, site){
		var aSavedSite = _getValuesArrayByPrefix(dataArray, SITE_PREFIX);
			//alert("_loadDestinationHotel: site = " + site + "; aSavedSite = "+ aSavedSite);
		
		if(site==null || (aSavedSite != null && aSavedSite[1] != null && site == aSavedSite[1])){
			//Si no se especifica site o si los datos guardados son del site en que se van
			//a cargar, porque puede haber lio (por el cambio de idioma y por posibles
			//destinos que no esten en todos los sites)
				
			//DESTINATION		
			var optHotelsArray = _getValuesArrayByPrefix(dataArray, OPT_HOTELS_PREFIX);		
			var valuesArray = _getValuesArrayByPrefix(dataArray, DESTINATION_PREFIX);
				//alert("_loadDestinationHotel: valuesArray = " + valuesArray);
					
			if(form.city0 && form.city1 && form.cityId
				 && optHotelsArray != null && valuesArray != null && valuesArray.length > 0){				
				//Solo si optHotelsArray se ha guardado, porque los datos guardados que se cargaran solo valen si
				//optHoteles se carga tambien. Si optHoteles no esta guardado no debemos cargar ningun dato de destino
				//solo si existe city0
				if(valuesArray[1]!=null && valuesArray[1]!="undefined") form.city0.value = valuesArray[1];	
				
				//solo si existe city1
					//alert("_verifyValueInCombo(form.city1,valuesArray[2]) = " + _verifyValueInCombo(form.city1,valuesArray[2]));
				if(valuesArray[2]!=null && valuesArray[2]!="undefined" && _verifyValueInCombo(form.city1,valuesArray[2])) form.city1.value = valuesArray[2];
				
				//IMPORTANTE: cityId debe cargarse DESPUES de city0 (porque city0 
				//tiene un onChange que hace cityId='', asi que si queremos que 
				//cityId tenga un valor hay que cargarlo despues)
				if(valuesArray[3]!=null && valuesArray[3]!="undefined") form.cityId.value = valuesArray[3];
			}
		}
	}
	
	function _loadDestinationHotelWithoutOptHoteles(dataArray, form, site){
		var aSavedSite = _getValuesArrayByPrefix(dataArray, SITE_PREFIX);
			//alert("_loadDestinationHotel: site = " + site + "; aSavedSite = "+ aSavedSite);
		
		if(site==null || (aSavedSite != null && aSavedSite[1] != null && site == aSavedSite[1])){
			//Si no se especifica site o si los datos guardados son del site en que se van
			//a cargar, porque puede haber lio (por el cambio de idioma y por posibles
			//destinos que no esten en todos los sites)
			
			//DESTINATION		
			var valuesArray = _getValuesArrayByPrefix(dataArray, DESTINATION_PREFIX);
					
			if(form.city && form.cityId && valuesArray != null && valuesArray.length > 0){
				//solo si existe city
				if(valuesArray[4]!=null && valuesArray[4]!="undefined") form.city.value = valuesArray[4];	
				
				//IMPORTANTE: cityId debe cargarse DESPUES de city (porque city
				//tiene un onChange que hace cityId='', asi que si queremos que
				//cityId tenga un valor hay que cargarlo despues)
				if(valuesArray[3]!=null && valuesArray[3]!="undefined") form.cityId.value = valuesArray[3];
			}
		}
	}
	//------------------FIN SOLO PARA HOTELES ------------
	
	//------------------ SOLO PARA VUELOS ------------
	function _loadRoundTrip(dataArray, form){
		//RADIO IDA Y VUELTA O SOLO IDA
		if(form.roundTrip){
			var valuesArray = _getValuesArrayByPrefix(dataArray, ROUND_TRIP_PREFIX);
				//alert("_loadRoundTrip: roundTrip[1] = " +  valuesArray[1]);
			if(valuesArray!=null && valuesArray[1]!=null && valuesArray[1]=="true"){
				form.roundTrip[1].checked=true;
			} else {
				form.roundTrip[0].checked=true;
			}
		}
	}

	//--------------- FIN SOLO PARA VUELOS ------------	
	
	//------------------ SOLO PARA PACKAGES ------------
	
	function _loadRoomsPackages(dataArray, form){
		//ROOMS
		var valuesArray = _getValuesArrayByPrefix(dataArray, ROOMS_PREFIX);
			//alert("form.elements['distribution.roomSingle'] = " + form.elements['distribution.roomSingle']);
			//alert("form.elements['distribution.roomDouble'] = " + form.elements['distribution.roomDouble']);
			//alert("form.elements['distribution.roomDoubleChild'] = " + form.elements['distribution.roomDoubleChild']);
			//alert("form.elements['distribution.roomThird'] = " + form.elements['distribution.roomThird']);
		if(form.elements['distribution.roomSingle'] && form.elements['distribution.roomDouble']
			&& form.elements['distribution.roomDoubleChild'] && form.elements['distribution.roomThird']
			&& valuesArray != null && valuesArray.length > 0){
		
				//alert("_loadRoomsPackages: dentro dl IF de distribution.rooms...");
			//NOTA: lo de que sea distinto de "undefined" es por si hay algun styleId
			//repetido en el formulario, lo cual guardaria "undefined" (o por lo que sea)	
			if(valuesArray[1]!="undefined") form.elements['distribution.roomSingle'].value=valuesArray[1];
			if(valuesArray[2]!="undefined") form.elements['distribution.roomDouble'].value=valuesArray[2];
			if(valuesArray[3]!="undefined") form.elements['distribution.roomDoubleChild'].value=valuesArray[3];
			if(valuesArray[4]!="undefined") form.elements['distribution.roomThird'].value=valuesArray[4];
			
			//mostramos el numero de niņos y sus edades segun se necesiten
			if(valuesArray[3]!="" && valuesArray[3]!="undefined"){
				var numNiņos=valuesArray[3];
				muestraChild(numNiņos);
				if(numNiņos>0){
					if(form.elements['distribution.roomChildAge[0]'] && valuesArray[5]!="undefined") form.elements['distribution.roomChildAge[0]'].value=valuesArray[5];
				}
				if(numNiņos>1){
					if(form.elements['distribution.roomChildAge[1]'] && valuesArray[6]!="undefined") form.elements['distribution.roomChildAge[1]'].value=valuesArray[6];
				}
			}
				
		}
	}
	//--------------- FIN SOLO PARA PACKAGES ------------
	
	
	function _loadDeparture(dataArray, form, site){
		//cogemos el site guardado
		var aSavedSite = _getValuesArrayByPrefix(dataArray, SITE_PREFIX);
	
		//DEPARTURE
		//Los cargamos si no se ha especificado site o si el idioma
		//de los datos guardados es el mismo que el del site para 
		//el que se estan cargando datos
		if(site==null || SITES_LANGUAGE_CONTROL_ENABLED == 0 || (SITES_LANGUAGE_CONTROL_ENABLED == 1 && aSavedSite != null && aSavedSite[1] != null && _isSameLanguage(aSavedSite[1], site))){
			var valuesArray = _getValuesArrayByPrefix(dataArray, DEPARTURE_PREFIX);
				//alert("_loadDeparture: " + "\r\n" + "valuesArray = " + valuesArray);
			
			if(form.departure && form.departureValue && form.iataCityDeparture
				&& valuesArray != null && valuesArray.length > 0){
				//IMPORTANTE: departure debe cargarse ANTES que departureValue y iataCityDeparture
				//(porque departure tiene un onChange que hace departureValue='' y iataCityDeparture=false)
				//asi que si queremos que tengan otros valores debemos cargarlos despues de departure.
				if(valuesArray[1]!=null && valuesArray[1]!="undefined") form.departure.value = valuesArray[1];
				if(valuesArray[2]!=null && valuesArray[2]!="undefined") form.departureValue.value = valuesArray[2];
				if(valuesArray[3]!=null && valuesArray[3]!="undefined") form.iataCityDeparture.value = valuesArray[3];			
			}
		}
	}
	
	function _loadDestination(dataArray, form, site){
		//cogemos el site guardado
		var aSavedSite = _getValuesArrayByPrefix(dataArray, SITE_PREFIX);								
	
		//DESTINATION
		if(site==null ||SITES_LANGUAGE_CONTROL_ENABLED == 0 || (SITES_LANGUAGE_CONTROL_ENABLED == 1 && aSavedSite != null && aSavedSite[1] != null && _isSameLanguage(aSavedSite[1], site))){
			var valuesArray = _getValuesArrayByPrefix(dataArray, DESTINATION_PREFIX);
			
			if(form.destination && form.destinationValue && form.iataCityDestination
				&& valuesArray != null && valuesArray.length > 0){
				
				//IMPORTANTE destination debe cargarse ANTES que destinationValue y iataCityDestination
				//(por las mismas razones que departure)
				if(valuesArray[1]!=null && valuesArray[1]!="undefined") form.destination.value = valuesArray[1];
				if(valuesArray[2]!=null && valuesArray[2]!="undefined") form.destinationValue.value = valuesArray[2];
				if(valuesArray[3]!=null && valuesArray[3]!="undefined") form.iataCityDestination.value = valuesArray[3];				
			}
		}
	}
	
	function _loadDepartureDate(dataArray, form, formId){
		//DEPARTURE DATE
		var bDepartureDayFound = false;
		var bDestinationDayFound = false;
		
		var valuesArray = _getValuesArrayByPrefix(dataArray, DEPARTURE_DATE_PREFIX);
			//alert("_loadDepartureDate: valuesArray = " + valuesArray);
		if(valuesArray != null && valuesArray.length > 0){
			if(form.anioS && valuesArray[3]!=null && valuesArray[3]!="undefined") form.anioS.value = valuesArray[3];
			if(form.departureDate_month && valuesArray[2]!=null && valuesArray[2]!="undefined") form.departureDate_month.value = valuesArray[2];
			cargaFechas('s',formId,form.departureDate_month.selectedIndex);
			
			if(form.departureDate_day){
				//IMPORTANTE: esto debe ir DESPUES de cargarse el mes, ya que el dia de la semana en que cae un dia del mes cambia segun el mes y no encontraria bien el dia
				//Cargamos el campo departureDate_day y usamos un for que recorra los text 
				//de los options del select y cuando se encuentre el que coincide se deja seleccionado
				var cmbDepartureDate_day = form.departureDate_day;
				for(var i=0;i<cmbDepartureDate_day.options.length && bDepartureDayFound==false;i++){
					// si en esta opcion encuentra el departureDate_day buscado, dejamos
					// seleccionada esta opcion en el cmbDepartureDate_day
					if(cmbDepartureDate_day.options[i].text == valuesArray[1]){
						cmbDepartureDate_day.selectedIndex = i;
						bDepartureDayFound=true;
					}
				}
			}
		}
	}
	
		function _loadDepartureDateV2(dataArray, form, formId){
		//DEPARTURE DATE
		var bDepartureDayFound = false;
		var bDestinationDayFound = false;
		var valuesArray = _getValuesArrayByPrefix(dataArray, DEPARTURE_DATE_PREFIX);
		
		if(valuesArray != null && valuesArray.length > 0){
			if(form.departureDate_year && valuesArray[3]!=null && valuesArray[3]!="undefined") form.departureDate_year.value = valuesArray[3];
			if(form.departureDate_month && valuesArray[2]!=null && valuesArray[2]!="undefined") form.departureDate_month.value = valuesArray[2]-1;
			if(form.departureDate_day && valuesArray[1]!=null && valuesArray[1]!="undefined") form.departureDate_day.value = valuesArray[1];
			
			if(form.departureDate_day)
			{
			var day = form.departureDate_day.value;
			
				if(day.length>'2')
				{
					day = form.departureDate_day.value.substring(4);
				}	
			}	
			
			cargaFechasV2('s',formId,eval(form.departureDate_month.value-1+2),form.departureDate_year.value,null,day);

		}
		else
		{
			
			cargaFechasV2('s',formId,form.departureDate_month.value,form.departureDate_year.value);
		}
	}
	
		function _loadDestinationDateV2(dataArray, form, formId){
		//DESTINATION DATE
		var bDepartureDayFound = false;
		var bDestinationDayFound = false;
		
		var valuesArray = _getValuesArrayByPrefix(dataArray, DESTINATION_DATE_PREFIX);
		
		if(valuesArray != null && valuesArray.length > 0){
			if(form.destinationDate_year && valuesArray[3]!=null && valuesArray[3]!="undefined") form.destinationDate_year.value = valuesArray[3];
			if(form.destinationDate_month && valuesArray[2]!=null && valuesArray[2]!="undefined") form.destinationDate_month.value = valuesArray[2]-1;
			if(form.destinationDate_day && valuesArray[1]!=null && valuesArray[1]!="undefined") form.destinationDate_day.value = valuesArray[1];
			if(form.destinationDate_day)
			{
			var day = form.destinationDate_day.value;
			
				if(day.length>'2')
				{
					var day = form.destinationDate_day.value.substring(4);
				}
			}			
			cargaFechasV2('r',formId,eval(form.destinationDate_month.value-1+2),form.destinationDate_year.value,null,day);
		}
		else
		{
			cargaFechasV2('r',formId,form.destinationDate_month.value,form.destinationDate_year.value);
		}
	}
	
	function _loadDestinationDate(dataArray, form, formId){
		//DESTINATION DATE
		var bDepartureDayFound = false;
		var bDestinationDayFound = false;
		
		var valuesArray = _getValuesArrayByPrefix(dataArray, DESTINATION_DATE_PREFIX);
		
		if(valuesArray != null && valuesArray.length > 0){
			if(form.anioR && valuesArray[3]!=null && valuesArray[3]!="undefined") form.anioR.value = valuesArray[3];
			if(form.destinationDate_month && valuesArray[2]!=null && valuesArray[2]!="undefined") form.destinationDate_month.value = valuesArray[2];
			cargaFechas('r',formId,form.destinationDate_month.selectedIndex);
			
			if(form.destinationDate_day){
				//IMPORTANTE: esto debe ir DESPUES de cargarse el mes, ya que el dia de la semana en que cae un dia del mes cambia segun el mes y no encontraria bien el dia
				//Cargamos el campo departureDate_day y usamos un for que recorra los text 
				//de los options del select y cuando se encuentre el que coincide se deja seleccionado
				var cmbDestinationDate_day = form.destinationDate_day;
				for(var i=0;i<cmbDestinationDate_day.options.length && bDestinationDayFound==false;i++){
					// si en esta opcion encuentra el destinationDate_day buscado, dejamos
					// seleccionada esta opcion en el cmbDestinationDate_day
					if(cmbDestinationDate_day.options[i].text == valuesArray[1]){
						cmbDestinationDate_day.selectedIndex = i;
						bDestinationDayFound=true;
					}
				}
			}
		}
	}
	
	function _loadDepartureHour(dataArray, form, page){
		var aSavedPage = _getValuesArrayByPrefix(dataArray, PAGE_PREFIX);
	
		//DEPARTURE HOUR
		if(page == null || (aSavedPage != null && aSavedPage[1] == page)){
			//si le especificamos una page, solo cargara departureHour si
			//la page coincide con la guardada aSavedPage
			if(form.departureHour){
				//si existe departureHour lo cargamos
				var valuesArray = _getValuesArrayByPrefix(dataArray, DEPARTURE_HOUR_PREFIX);
					//alert("_loadDepartureHour: valuesArray = " + valuesArray);
				if(valuesArray != null && valuesArray.length > 0){
					//NOTA: lo de que sea distinto de "undefined" es por si hay algun styleId
					//repetido en el formulario, lo cual guardaria "undefined" (o por lo que sea)
					if(valuesArray[1]!=null && valuesArray[1]!="undefined") form.departureHour.value = valuesArray[1];
				}
			}
		}
	}
	
	function _loadDestinationHour(dataArray, form, page){
		var aSavedPage = _getValuesArrayByPrefix(dataArray, PAGE_PREFIX);
		
		//DESTINATION HOUR
		if(page == null || (aSavedPage != null && aSavedPage[1] == page)){
			//si le especificamos una page, solo cargara destinationHour si
			//la page coincide con la guardada aSavedPage
			if(form.destinationHour){
				//si existe destinationHour lo cargamos
				var valuesArray = _getValuesArrayByPrefix(dataArray, DESTINATION_HOUR_PREFIX);
				if(valuesArray != null && valuesArray.length > 0){
					//NOTA: lo de que sea distinto de "undefined" es por si hay algun styleId
					//repetido en el formulario, lo cual guardaria "undefined" (o por lo que sea)	
					if(valuesArray[1]!=null && valuesArray[1]!="undefined") form.destinationHour.value = valuesArray[1];
				}
			}
		}
	}
	
	function _loadPassengers(dataArray, form){
		//PASSENGERS
		var valuesArray = _getValuesArrayByPrefix(dataArray, PASSENGERS_PREFIX);
		if(form.adults && form.children && form.infants
			&& valuesArray != null && valuesArray.length > 0){
			
			//NOTA: lo de que sea distinto de "undefined" es por si hay algun styleId
			//repetido en el formulario, lo cual guardaria "undefined" (o por lo que sea)	
			if(valuesArray[1]!=null && valuesArray[1]!="undefined") form.adults.value = valuesArray[1];
			if(valuesArray[2]!=null && valuesArray[2]!="undefined") form.children.value = valuesArray[2];
			if(valuesArray[3]!=null && valuesArray[3]!="undefined") form.infants.value = valuesArray[3];
		}
	}
	
	function _loadCabinClass(dataArray, form){
		//CABINCLASS
		if(form.cabinClass){
			var valuesArray = _getValuesArrayByPrefix(dataArray, CABIN_CLASS_PREFIX);
			if(valuesArray != null && valuesArray.length > 0){
				//NOTA: lo de que sea distinto de "undefined" es por si hay algun styleId
				//repetido en el formulario, lo cual guardaria "undefined" (o por lo que sea)	
				if(valuesArray[1]!=null && valuesArray[1]!="undefined") form.cabinClass.value = valuesArray[1];
					/*alert("setFlightsFormDataFromCookie: CABINCLASS: tempValues = " + tempValues + "\r\n"
							+ "tempValues[1] = " + tempValues[1]
						);
					*/
			}
		}
	}

	function _loadRooms(dataArray, form){
		//ROOMS
			var valuesArray = _getValuesArrayByPrefix(dataArray, ROOMS_PREFIX);
			if(form.numSingle && form.numDBL && form.numDBL1CHLD && form.numTriple && form.numCuadruple
				&& valuesArray != null && valuesArray.length > 0){
				
				//NOTA: lo de que sea distinto de "undefined" es por si hay algun styleId
				//repetido en el formulario, lo cual guardaria "undefined" (o por lo que sea)	
				if(valuesArray[1]!=null && valuesArray[1]!="undefined") form.numSingle.value = valuesArray[1];
				if(valuesArray[2]!=null && valuesArray[2]!="undefined") form.numDBL.value = valuesArray[2];
				if(valuesArray[3]!=null && valuesArray[3]!="undefined") form.numDBL1CHLD.value = valuesArray[3];
				if(valuesArray[4]!=null && valuesArray[4]!="undefined") form.numTriple.value = valuesArray[4];
				if(valuesArray[5]!=null && valuesArray[5]!="undefined") form.numCuadruple.value = valuesArray[5];
			}
	}
	
	function _loadRoomsWithChildren(dataArray, form){
		//ROOMS
			var valuesArray = _getValuesArrayByPrefix(dataArray, ROOMS_PREFIX);
			if(form.numSingle && form.numDBL && form.numDBL1CHLD && form.numTriple && form.numCuadruple
				&& valuesArray != null && valuesArray.length > 0){
				
				//NOTA: lo de que sea distinto de "undefined" es por si hay algun styleId
				//repetido en el formulario, lo cual guardaria "undefined" (o por lo que sea)	
				if(valuesArray[1]!=null && valuesArray[1]!="undefined") form.numSingle.value = valuesArray[1];
				if(valuesArray[2]!=null && valuesArray[2]!="undefined") form.numDBL.value = valuesArray[2];
				if(valuesArray[3]!=null && valuesArray[3]!="undefined") form.numDBL1CHLD.value = valuesArray[3];
				if(valuesArray[4]!=null && valuesArray[4]!="undefined") form.numTriple.value = valuesArray[4];
				if(valuesArray[5]!=null && valuesArray[5]!="undefined") form.numCuadruple.value = valuesArray[5];
				
					//alert("document.getElementById('formularioCamposChild') = " + document.getElementById('formularioCamposChild'));
				//mostramos el numero de niņos y sus edades segun se necesiten
				if(document.getElementById('formularioCamposChild')
					&& valuesArray[3]!="" && valuesArray[3]!="undefined"){
					
					var numNiņos=valuesArray[3];
					muestraChild(numNiņos);
					if(numNiņos>0){
						if(form.elements['roomChildAge[0]'] && valuesArray[6]!="undefined") form.elements['roomChildAge[0]'].value=valuesArray[6];
					}
					if(numNiņos>1){
						if(form.elements['roomChildAge[1]'] && valuesArray[7]!="undefined") form.elements['roomChildAge[1]'].value=valuesArray[7];
					}
					if(numNiņos>2){
						if(form.elements['roomChildAge[2]'] && valuesArray[8]!="undefined") form.elements['roomChildAge[2]'].value=valuesArray[8];
					}
				}
			}
	}

	function _loadBoardType(dataArray, form, page){
		var aSavedPage = _getValuesArrayByPrefix(dataArray, PAGE_PREFIX);
				
		//BOARDTYPE
		if(page == null || (aSavedPage != null && aSavedPage[1] == page)){
			if(form.boardType){
				var valuesArray = _getValuesArrayByPrefix(dataArray, BOARD_TYPE_PREFIX);
				if(valuesArray != null && valuesArray.length > 0){
					//NOTA: lo de que sea distinto de "undefined" es por si hay algun styleId
					//repetido en el formulario, lo cual guardaria "undefined" (o por lo que sea)	
					if(valuesArray[1]!=null && valuesArray[1]!="undefined") form.boardType.value = valuesArray[1];
				}
			}
		}
	}
	
	function _loadCategory(dataArray, form, page){
		var aSavedPage = _getValuesArrayByPrefix(dataArray, PAGE_PREFIX);
				
		//CATEGORY
		if(page == null || (aSavedPage != null && aSavedPage[1] == page)){
			if(form.category){
				var valuesArray = _getValuesArrayByPrefix(dataArray, CATEGORY_PREFIX);
				if(valuesArray != null && valuesArray.length > 0){
					//NOTA: lo de que sea distinto de "undefined" es por si hay algun styleId
					//repetido en el formulario, lo cual guardaria "undefined" (o por lo que sea)	
					if(valuesArray[1]!=null && valuesArray[1]!="undefined") form.category.value = valuesArray[1];
				}
			}
		}
	}
	
	function _loadAirline(dataArray, form, page){
		var aSavedPage = _getValuesArrayByPrefix(dataArray, PAGE_PREFIX);
		
		//AIRLINE
		if(page == null || (aSavedPage != null && aSavedPage[1] == page)){
			if(form.airline){
				//si existe airline lo cargamos
				var valuesArray = _getValuesArrayByPrefix(dataArray, AIRLINE_PREFIX);
				if(valuesArray != null && valuesArray.length > 0){
					//NOTA: lo de que sea distinto de "undefined" es por si hay algun styleId
					//repetido en el formulario, lo cual guardaria "undefined" (o por lo que sea)	
					if(valuesArray[1]!=null && valuesArray[1]!="undefined") form.airline.value = valuesArray[1];
				}
			}
		}
	}
	
	function _loadCityCentre(dataArray, form, page){
		var aSavedPage = _getValuesArrayByPrefix(dataArray, PAGE_PREFIX);
		
		//CITY CENTRE
		if(page == null || (aSavedPage != null && aSavedPage[1] == page)){
			if(form.cityCentre){
				//si existe cityCentre lo cargamos
				var valuesArray = _getValuesArrayByPrefix(dataArray, CITY_CENTRE_PREFIX);
				if(valuesArray != null && valuesArray.length > 0){
						//alert("loadCityCentre: valuesArray[1] = " + valuesArray[1]);
					//NOTA: lo de que sea distinto de "undefined" es por si hay algun styleId
					//repetido en el formulario, lo cual guardaria "undefined" (o por lo que sea)	
					if(valuesArray!=null && valuesArray[1]!=null && valuesArray[1]=="true") form.cityCentre.checked = valuesArray[1];
				}
			}
		}
	}
	
	/***************************************************************************
	*	FUNCIONES PARA GUARDAR
	*	BLOQUES DE DATOS
	****************************************************************************/
	
	//--------------------- SOLO PARA HOTELES ----------------
	function _addDestinationHotel(dataArray, form){
		//DESTINATION-HOTEL
		//le aņadimos los values a guardar:
		var city0 = '';
		var city1 = '';
		if(form.optHoteles && form.city0 && form.city1){
			//si existe optHoteles -> existen city0 y city1 y hay que controlarlos, si no no hay que controlarlos
			city0 = form.city0.value;
			if(form.city1.value && form.city1.value != null && form.city1.value != "undefined"){
				city1 = form.city1.value;
			}
		}
		
		//En caso de que existan city0 y city1:
		//SOLO guardamos city0 si NO se ha buscado por el combo
		//de hoteles (optHoteles[1] NO esta seleccionado), ya que
		//puede haber lios con cityId (que se comparte entre city0 y city1)
		var city0_string = "";
		if(form.optHoteles && form.optHoteles[1]!=null && form.optHoteles[1].checked == false)	city0_string = city0;
		
		if(form.cityId && form.city){
		dataArray.push(DESTINATION_PREFIX +  VALUES_SEPARATOR + city0_string
						+ VALUES_SEPARATOR + city1
						+ VALUES_SEPARATOR + form.cityId.value
						+ VALUES_SEPARATOR + form.city.value
				);
		}
	}
	
	//------------------FIN SOLO PARA HOTELES ------------------

	//--------------------- SOLO PARA PACKAGES ----------------	
	function _addDestinationPackages(dataArray, form){
		//DESTINATION & ZONE
		if(form.cmbDestination && form.cmbZone){
			dataArray.push(DESTINATION_PREFIX + VALUES_SEPARATOR + form.cmbDestination.value
							+ VALUES_SEPARATOR + form.cmbZone.value
			);
		}
	}
	
	function _addRoomsPackages(dataArray, form){
		if(form.elements['distribution.roomSingle'] && form.elements['distribution.roomDouble']
			&& form.elements['distribution.roomDoubleChild'] && form.elements['distribution.roomThird']){
			
			//comprobamos los niņos
			var distRoomChildAge0=0;
			var distRoomChildAge1=0;
			if(form.elements['distribution.roomDoubleChild'].value>0) distRoomChildAge0=form.elements['distribution.roomChildAge[0]'].value;
			if(form.elements['distribution.roomDoubleChild'].value>1) distRoomChildAge1=form.elements['distribution.roomChildAge[1]'].value;
	
			dataArray.push(ROOMS_PREFIX + VALUES_SEPARATOR + form.elements['distribution.roomSingle'].value
							+ VALUES_SEPARATOR + form.elements['distribution.roomDouble'].value
							+ VALUES_SEPARATOR + form.elements['distribution.roomDoubleChild'].value
							+ VALUES_SEPARATOR + form.elements['distribution.roomThird'].value
							+ VALUES_SEPARATOR + distRoomChildAge0
							+ VALUES_SEPARATOR + distRoomChildAge1
			);
		}
	}
	//------------------ FIN SOLO PARA PACKAGES ----------------	
	
	function _addDeparture(dataArray, form){
		//DEPARTURE
		if(form.departure && form.departureValue && form.iataCityDeparture){
			//le aņadimos los values a guardar solo si existen esos campos en el form:
			dataArray.push(DEPARTURE_PREFIX + VALUES_SEPARATOR + form.departure.value
							+ VALUES_SEPARATOR + form.departureValue.value
							+ VALUES_SEPARATOR + form.iataCityDeparture.value
			);
		}
	}
	
	function _addDestination(dataArray, form){
		//DESTINATION
		if(form.destination && form.destinationValue && form.iataCityDestination){
			//le aņadimos los values a guardar:
			dataArray.push(DESTINATION_PREFIX + VALUES_SEPARATOR +  form.destination.value
							+ VALUES_SEPARATOR + form.destinationValue.value
							+ VALUES_SEPARATOR + form.iataCityDestination.value
			);
		}
	}
	
	function _addDepartureDate(dataArray, form){
		//DEPARTURE DATE
		if(form.departureDate_day && form.departureDate_month && form.anioS){
			dataArray.push(DEPARTURE_DATE_PREFIX + VALUES_SEPARATOR + form.departureDate_day.options[form.departureDate_day.selectedIndex].text
							+ VALUES_SEPARATOR + form.departureDate_month.value
							+ VALUES_SEPARATOR + form.anioS.value
			);
		}
	}
	
	function _addDestinationDate(dataArray, form){
		//DESTINATION DATE
		if(form.destinationDate_day && form.destinationDate_month && form.anioR){
			dataArray.push(DESTINATION_DATE_PREFIX + VALUES_SEPARATOR +  form.destinationDate_day.options[form.destinationDate_day.selectedIndex].text
							+ VALUES_SEPARATOR +  form.destinationDate_month.value
							+ VALUES_SEPARATOR +  form.anioR.value
			);
		}
	}
	
	function _addDepartureDateV2(dataArray, form){
		//DEPARTURE DATE
		if(form.departureDate_day && form.departureDate_month && form.departureDate_year){
			var numMonth = form.departureDate_month.value-1+2;
			dataArray.push(DEPARTURE_DATE_PREFIX + VALUES_SEPARATOR + form.departureDate_day.value
							+ VALUES_SEPARATOR +  numMonth
							+ VALUES_SEPARATOR + form.departureDate_year.value
			);
		}
	}
	
	function _addDestinationDateV2(dataArray, form){
		//DESTINATION DATE
		if(form.destinationDate_day && form.destinationDate_month && form.destinationDate_year){
		var numMonth = form.destinationDate_month.value-1+2;
			dataArray.push(DESTINATION_DATE_PREFIX + VALUES_SEPARATOR +  form.destinationDate_day.value
							+ VALUES_SEPARATOR +  numMonth
							+ VALUES_SEPARATOR +  form.destinationDate_year.value
			);
		}
	}
	
	function _addPassengers(dataArray, form){
		//PASSENGERS
		if(form.adults && form.children && form.infants){
			dataArray.push(PASSENGERS_PREFIX + VALUES_SEPARATOR +  form.adults.value
							+ VALUES_SEPARATOR +  form.children.value
							+ VALUES_SEPARATOR +  form.infants.value
			);
		}
	}
	
	function _addRooms(dataArray, form){
		//ROOMS
		if(form.numSingle && form.numDBL && form.numDBL1CHLD && form.numTriple && form.numCuadruple){
			dataArray.push(ROOMS_PREFIX + VALUES_SEPARATOR +  form.numSingle.value
							+ VALUES_SEPARATOR +  form.numDBL.value
							+ VALUES_SEPARATOR +  form.numDBL1CHLD.value
							+ VALUES_SEPARATOR +  form.numTriple.value
							+ VALUES_SEPARATOR +  form.numCuadruple.value
			);
		}
	}
	
	function _addRoomsWithChildren(dataArray, form){
		//ROOMS WITH CHILDREN
		if(form.numSingle && form.numDBL && form.numDBL1CHLD && form.numTriple && form.numCuadruple){
		
			//comprobamos los niņos
			var distRoomChildAge0=0;
			var distRoomChildAge1=0;
			var distRoomChildAge2=0;
			if(form.elements['roomChildAge[0]'] && form.elements['numDBL1CHLD'].value>0) distRoomChildAge0=form.elements['roomChildAge[0]'].value;
			if(form.elements['roomChildAge[1]'] && form.elements['numDBL1CHLD'].value>1) distRoomChildAge1=form.elements['roomChildAge[1]'].value;
			if(form.elements['roomChildAge[2]'] && form.elements['numDBL1CHLD'].value>2) distRoomChildAge2=form.elements['roomChildAge[2]'].value;
	
			dataArray.push(ROOMS_PREFIX + VALUES_SEPARATOR +  form.numSingle.value
							+ VALUES_SEPARATOR +  form.numDBL.value
							+ VALUES_SEPARATOR +  form.numDBL1CHLD.value
							+ VALUES_SEPARATOR +  form.numTriple.value
							+ VALUES_SEPARATOR +  form.numCuadruple.value
							+ VALUES_SEPARATOR + distRoomChildAge0
							+ VALUES_SEPARATOR + distRoomChildAge1
							+ VALUES_SEPARATOR + distRoomChildAge2
			);
		}
	}
		function checkDate(form){
			
			var today = new Date();
			var day=today.getDate();
			var month=today.getMonth();
			var year=today.getYear()
			
			if (year >= form.departureDate_year.value){
				form.departureDate_year.value = year;
				if (month >= form.departureDate_month.value){
					form.departureDate_month.value = month;
					form.departureDate_day.value = day;
					if (day >= form.departureDate_day.value){
						form.departureDate_day.value = day;
					}
				}
			}else{
				
			}
			
		}
			
		
