// JavaScript Document
var ErrorBook = function(){
	//A	
	this.agregarError = function(conf){
		ERRORES[conf.campo] = new Object();
		ERRORES[conf.campo].campo = $(conf.campo);
		ERRORES[conf.campo].expresion = conf.expresion;
		ERRORES[conf.campo].imgError = $(conf.campo + 'Alerta');
		AddEvent(ERRORES[conf.campo].campo,'blur',function(){

			if(!ERRORES[conf.campo].expresion.test(ERRORES[conf.campo].campo.value)){
				ERRORES[conf.campo].imgError.style.display = 'inline';
				ERRORES[conf.campo].campo.className = 'inputError';
				totalErrores++;
			}
			else{
				ERRORES[conf.campo].imgError.style.display = 'none';
				ERRORES[conf.campo].campo.className = '';
			}
		})


	}

	//C
	this.cantidadErrores = function(){
		return totalErrores;
	}
	
	//U
	this.unsetErrores = function(){
		totalErrores = 0;			
	}
	
	var ERRORES = new Object();
	var totalErrores = 0;
}


var oBooking = new function(){
	
	//A
	this.addBusPass = function(check,idHorario,duracion,hora){
		PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['busPasses'] = {'idHorario':idHorario,'duracion' : duracion,'hora':hora};
		reactualizarDiasSectores();
	}
	this.agregarContenido = function(conf){
		contenidoActual = null;
		if(ER_FECHA.test($('fechaInicioBook').value))setearLimitesCalendario(productoActual,sectorActual,conf.tipoContenido);		
		if(conf.tipoContenido == 'alojamiento'){
			if($('btnAgregarHabitacion' + conf.idHabitacion).className == 'btnAddInactivo fltL'){
				Error.onAccept = Error.onCancel = function(){
					Error.hide();
					Blocker.hide();
				}
				Error.show(LANG['msjPasajerosConfiguradosAlojamiento']);
			}
			else{
				if(!puedoAbrirHabitacion())return false;
				cleanPopHabitacion();
				idHabitacionActual = conf.idHabitacion;
				idAlojamientoActual = conf.idAlojamiento;
		
				if(oCalHabitacion.limiteInferior == oCalHabitacion.limiteSuperior){
					oCalHabitacion.multipleDate[oCalHabitacion.limiteSuperior] = true;
				}
				
				//VALIDO QUE EL PASAJERO NO SE ENCUENTRE EN NINGUNA DE LAS HABITACIONES.
				var i,s,e,pasTemp,pasajerosSeteados = new Array();
				var sectTemp = PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual];
				for(i in PASAJEROS){
					$('checkHabitacionPasajero' + i).disabled = false;	
				}
				for(i in sectTemp['alojamientos']){
					
					for(s in sectTemp['alojamientos'][i]){
						pasTemp = sectTemp['alojamientos'][i][s].pasajeros.split(',');	
						for(e in pasTemp){
							$('checkHabitacionPasajero' + pasTemp[e]).disabled = true;
							pasajerosSeteados[pasTemp[e]] = 1;
						}
					}
				}
				
				if(PASAJEROS.length == 1 && !pasajerosSeteados[0])$('checkHabitacionPasajero0').checked = true;
				$('fechaHabitacion').value = oCalHabitacion.limiteInferior;
				$('nombreAlogamientoPopUp').innerHTML = $('nombreAlojamiento' + conf.idAlojamiento).innerHTML;
				$('descripcionHabitacionPopUp').innerHTML = $('descripcionHabitacion' + conf.idHabitacion).innerHTML;
				MostrarContenido($('popUpHotelHabitacion'));
				oCalHabitacion.f_show();
			}
				$('contInfoAlojamiento').style.height = 'auto';
		}
		else if(conf.tipoContenido == 'addon'){
			if(!$('cantidadAddOn' + conf.idHorario).blurSeteado){
				$('cantidadAddOn' + conf.idHorario).blurSeteado = true;
				AddEvent($('cantidadAddOn' + conf.idHorario),'blur',function(){
					if(!ER_NATURAL_NOCERO.test($('cantidadAddOn' + conf.idHorario).value)){
						$('alertaCantidadAddOn' + conf.idHorario).style.display = '';
						$('cantidadAddOn' + conf.idHorario).className = 'inputError';
					}
					else{
						$('alertaCantidadAddOn' + conf.idHorario).style.display = 'none';
						$('cantidadAddOn' + conf.idHorario).className = '';
						
					}
																		  
				})
			}
			FireEvent($('cantidadAddOn' + conf.idHorario),'blur');
			if(!ER_NATURAL_NOCERO.test($('cantidadAddOn' + conf.idHorario).value)){
				return false;
			}
			if(!puedoAbrirAddOn())return false;
			
			idHorarioAddOnActual = conf.idHorario;
			idAddOnActual = conf.idActividad;
			
			
			
			$('nombrePopAddOn').innerHTML = $('nombreAddon' + idAddOnActual).innerHTML + ' '+ $('descHorarioAddOn' + conf.idHorario).innerHTML;
			crearTickets($('cantidadAddOn' + conf.idHorario).value,conf.idHorario,'addon');
			if(oCalAddOn.limiteInferior == oCalAddOn.limiteSuperior){
				for(i=0;i<parseInt($('cantidadAddOn' + conf.idHorario).value);i++){
					$('fechaAddOn' + i).value = oCalAddOn.limiteSuperior;
				}
			}
			for(i=0;i<parseInt($('cantidadAddOn' + conf.idHorario).value);i++){
				if($('selectPasajeroAddOn' + i).options[i+1])$('selectPasajeroAddOn' + i).options[i+1].selected = true;
			}
			MostrarContenido($('popUpAddOns'));	
			oCalAddOn.f_show();		
			$('contInfoAddon').style.height = 'auto';
			
		}
		else if(conf.tipoContenido == 'actividad'){
			if(!puedoAbrirAddOn())return false;

			idHorarioActividadActual = conf.idHorario;
			idActividadActual = conf.idActividad;
			var pasPerm = crearTickets(null,idHorarioActividadActual,'actividad');
			
			if($('btnConfActividad' + idHorarioActividadActual).className != 'btnConfInactivo fltL'){
			
				$('nombrePopActividad').innerHTML = $('nombreActividad' + idActividadActual).innerHTML + ' '+ $('descHorarioActividad' + idHorarioActividadActual).innerHTML;
			
				if(oCalActividad.limiteInferior == oCalActividad.limiteSuperior){
					for(i=0;i<pasPerm.length;i++){
						$('fechaActividad' + i).value = oCalActividad.limiteSuperior;
					}
				}
				//pasPerm SE SETEA EN CREAR TICKETS
				for(i=0;i<pasPerm.length;i++){
					if($('selectPasajeroActividad' + i).options[pasPerm[i]+1])$('selectPasajeroActividad' + i).options[pasPerm[i]+1].selected = true;
				}
				
				
				MostrarContenido($('popUpActividad'));	
				oCalActividad.f_show();			
			}
			else{
				Error.onAccept = Error.onCancel = function(){
					Error.hide();
					Blocker.hide();
				}
				Error.show(LANG['msjPasajerosConfiguradosActividad']);
					
			}

		}
		Blocker.show();		
	}
	this.agregarPasajero = function(objPas){
		var oPas = new Object();
		oPas.contenedor = cTag('div','infoPopPasajero');
		oPas.contenedor.noEnviar = true;
		oPas.h5 = cTag('h5');
		oPas.h5.noEnviar = true;		
		oPas.h5.innerHTML = LANG['pasajero'] + ' ' + (PASAJEROS.length + 1);
		var imgQuitar = cTag('a','imgQuitarPasajero');
		
		oPas.contenedor.appendChild(oPas.h5);
		oPas.contenedor.appendChild(imgQuitar);		
		var fieldTemp = cTag('fieldset');
		var legTemp = cTag('legend');
		legTemp.innerHTML = LANG['nombre'];
		fieldTemp.appendChild(legTemp);
		oPas.campoNombre = cTag('input');
		oPas.campoNombre.noEnviar = true;
		oPas.campoNombre.type = 'text';
		fieldTemp.appendChild(oPas.campoNombre);
		oPas.contenedor.appendChild(fieldTemp);

		fieldTemp = cTag('fieldset');
		legTemp = cTag('legend');
		legTemp.innerHTML = LANG['apellido'];
		fieldTemp.appendChild(legTemp);
		oPas.campoApellido = cTag('input');
		oPas.campoApellido.noEnviar = true;		
		oPas.campoApellido.type = 'text';
		fieldTemp.appendChild(oPas.campoApellido);
		oPas.contenedor.appendChild(fieldTemp);
		$('contInfoPasajeros').appendChild(oPas.contenedor);
		
		if(!objPas){
			oPas.indice = PASAJEROS.length;
			AddEvent(imgQuitar,'click',function(){confirmarQuitarPasajero(oPas)});
			PASAJEROS.push(oPas);
		}
		else{
			objPas.contenedor = oPas.contenedor;
			objPas.h5 = oPas.h5;
			objPas.campoNombre = oPas.campoNombre;
			objPas.campoNombre.value = objPas.datos.nombre;
			objPas.campoApellido = oPas.campoApellido;
			objPas.campoApellido.value = objPas.datos.apellido;
		}
		$('msjSinPasajerosPop').style.display = 'none';
		$('btnGuardarPasajeroPop').style.display = '';
	}
	this.agregarProducto = function(idProducto){
		this.setProducto(idProducto);
		productoActual = idProducto;
		sectorActual = null;
		this.cambiarPaso(1);		
	}
	this.agregarComentarioBus = function(idBus){
		agregarComentario(PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['configBusPass'][idBus]);
	}	
	var abrirCalendarioInicio = function(){
		//oCalInicioBook.limiteInferior = LIMITE_INICIO_BOOKING;
		limitarCalendarioInicio();		
		oCalInicioBook.f_show();
		$('popStartDate').style.display = 'block';

	}	
	var actualizarFiguraPasajeros = function(){
		//CON ESTA FUNCION ACTUALIZAMOS EL HTML EN TODOS LOS LUGARES A DONDE FIGUREN LOS PASAJEROS
		
		//HTML DE CONFIGURACION DE HOTEL
		var i,html = '',pasajero = '';
		SELECT_ADD_ON = '<select name="selectPasajero[TIPO_ACTIVIDAD][INDICE]" id="selectPasajero[TIPO_ACTIVIDAD][INDICE]">';		
		SELECT_ADD_ON += '<option value="-1" selected="selected">' + LANG['seleccionar'] + '</option>';		
		for(i=0;i<PASAJEROS.length;i++){
			if(PASAJEROS[i].datos['nombre'] == '' && PASAJEROS[i].datos['apellido'] == '')pasajero = LANG['pasajero'] + ' ' + (i+1);
			else{
				pasajero = '';
				if(PASAJEROS[i].datos['nombre'] != '')pasajero = PASAJEROS[i].datos['nombre'] + ' ';
				if(PASAJEROS[i].datos['apellido'] != '')pasajero += PASAJEROS[i].datos['apellido'] + ' ';
				pasajero = pasajero.substr(0,pasajero.length-1);
			}
			SELECT_ADD_ON += '<option id="optionPasajero[TIPO_ACTIVIDAD][INDICE]-' + i + '" value="' + i + '">' + pasajero +'</option>';
			html += '<label><input name="checkHabitacionPasajero' + i + '" id="checkHabitacionPasajero' + i + '" type="checkbox" value="" />' + pasajero + '</label>';
		}
		$('contPasajeroHabitacionPop').innerHTML = html;
		SELECT_ADD_ON += '</select>';
		if(pasoActual == 1){
			if($('idsHorariosAddOns')){
				var partIds = $('idsHorariosAddOns').value.split(',');
				for(i in partIds){
					$('cantidadAddOn' + partIds[i]).value = PASAJEROS.length;
				}
			}
		}

		
	}	
	var agregarComentario = function(obj){

		var nom = '';
		if(obj.tipoContenido == 'busPass'){
			nom = $('nombreBus' + obj.idBussPass).innerHTML;
		}
		else if(obj.tipoContenido == 'alojamiento'){
			nom = $('nombreAlojamiento' + obj.idAlojamiento).innerHTML + ' ' + $('descripcionHabitacion' + obj.idHabitacion).innerHTML;
		}
		else if(obj.tipoContenido == 'actividad'){
			nom = $('nombreActividad' + obj.idActividad).innerHTML + ' '+ $('descHorarioActividad' + obj.idHorario).innerHTML;
		}
		else if(obj.tipoContenido == 'addon'){
			nom = $('nombreAddon' + obj.idAddOn).innerHTML + ' '+ $('descHorarioAddOn' + obj.idHorario).innerHTML;			
		}
		$('nombreItemComentario').innerHTML = nom;
		
		$('errorComentarioPop').style.display = 'none';
		
		
		MostrarContenido($('popUpComentario'));
		Blocker.show();
		contenidoActual = obj;
		$('comentarioItem').value = '';
		
		if(!$('btnGuardarComentarioPop').seteado){
			AddEvent($('btnGuardarComentarioPop'),'click',guardarComentarioItem);
			AddEvent($('cerrarPopComentario'),'click',confirmarCerrarCuadroComentario);
			$('btnGuardarComentarioPop').seteado = true;
		}
		
	}
		
	//C
	this.confirmarCarga = function(e,btn){
		if(e.keyCode == 13){
			FireEvent($(btn),'click');	
		}
		
	}
	this.cambiarSolapa = function(a,solapa,e){
		if(e)StopEvent(e);	
		if(a.id == 'solapaComoFunciona' && !listo){
			return false;	
		}
		iniciar();
		if(solapaActual){
			solapaActual.className = '';
			solapaContenidoActual.style.display = 'none';
		}
		solapaActual = a;
		solapaContenidoActual = solapa;
		solapaActual.className = 'on';
		solapaContenidoActual.style.display = 'block';
		
		if($('contenidoTemporal') && solapaContenidoActual.id == 'solapaBooking'){
			cargarMapa();
			this.cambiarPaso(1);
		}
		else if(solapaContenidoActual.id == 'solapaComoFunciona'){
			$('contComoFunciona').style.display = 'none';
			$('loaderComoFunciona').style.display = 'block';			
  		    var i;
			var v = 'idsProductos' + SEP_IGUAL;
			for(i=0;i<PRODUCTOS.length;i++){
				v += PRODUCTOS[i].idProducto + ',';
			}
			v += SEP_AND;
			metodo = 'mostrarComoFunciona';

			enviar(DIR_ROOT + 'requests/BookingMetodos.php?metodo=' + metodo, v);			
		}
	}
	this.cambiarPaso = function(paso,e,forzar){

		var i,listoPasajeros = true;
		if(e){ StopEvent(e); }		
		
		for(i in PASAJEROS){
			if(PASAJEROS[i].enviando){
				listoPasajeros = false;
				return false;
			}
		}
		
		
		if((!listo || !listoPasajero || (paso == pasoActual && !forzar) || !puedoCambiarPaso(paso))){ return false; }
		
		
		metodo = 'cambiarPaso';
		if(pasoActual == 1)guardarSector();		
		else if(pasoActual == 3)this.guardarRegTemp();
		pasoActual = paso;
		mostrarBlockeador(true);

	
		var v = enviarDatos();		
		enviar(DIR_ROOT + 'requests/BookingMetodos.php?metodo=' + metodo, v);
			
	}
	this.cambiarSector = function(idSector,idProducto,e,forzar){
		if(sectorActual != idSector || forzar){
			if(pasoActual == 1)guardarSector();
			sectorActual = idSector;
			productoActual = idProducto;
			
			
			metodo = 'cambiarSector';
			pasoActual = 1;
			mostrarBlockeador(true);			
			var v = enviarDatos();		
			enviar(DIR_ROOT + 'requests/BookingMetodos.php?metodo=' + metodo, v);
		}
		if(e)StopEvent(e);
	}
	this.confirmarReserva = function(){
		
		var v = '';
		if(idBookingActual == 0)metodo = 'guardarReserva';
		else{
			metodo = 'modificacion';
			v += 'idBooking' + SEP_IGUAL + idBookingActual + SEP_AND;
			v += 'fechaModificacion' + SEP_IGUAL + fechaModificacion + SEP_AND;
			v += 'desdePublica' + SEP_IGUAL + 1 + SEP_AND;			
		}
		v += enviarDatos();		
		Blocker.show();
		Loader.show();
		enviar(DIR_ROOT + 'requests/BookingMetodos.php?metodo=' + metodo, v);
	}
	this.cambiarSectorDesdeMapa = function (sec, prod, evt) {
		desdeMapa = true;
		this.cambiarSector(sec, prod, evt, true);
	}	

	this.clickTipoPase = function(){
		if(pasoActual == 1)this.cambiarSector(sectorActual,productoActual,false,true);
		else if(pasoActual != 2){
			this.cambiarPaso(pasoActual,false,true);
		}
	}

	
	var cerrarCalendarioStartDate = function(n_date,forzar){
		if (n_date){
			oCalInicioBook.e_input.value = oCalInicioBook.f_generDate(new Date(n_date));
			if(oCalInicioBook.e_input)FireEvent(oCalInicioBook.e_input,'blur');
			if(pasoActual == 1){
				var i;
				for(i=0;i<PASAJEROS.length;i++){
					setValoresDefecto(i);
				}
				
				this.cambiarSector(sectorActual,productoActual,false,true);
			}
			else{
				if(pasoActual != 2)this.cambiarPaso(pasoActual,false,true);		
			}
		}
		if(n_date || forzar){
			$('popStartDate').style.display = 'none';
		}

	}.closure(this);	
	var cerrarCalendarioHabitacion = function(n_date,forzar){
		/*if (n_date){
			oCalInicioBook.e_input.value = oCalInicioBook.f_generDate(new Date(n_date));
			if(oCalInicioBook.e_input)FireEvent(oCalInicioBook.e_input,'blur');
		}
		if(n_date || forzar){
			$('popStartDate').style.display = 'none';
		}*/

	}		
	var cerrarCalendarioAddOn = function(n_date,forzar){
		if (n_date){
			$('fechaAddOn' + indCalActual).value = oCalInicioBook.f_generDate(new Date(n_date));
			$('fechaAddOn' + indCalActual).className = '';
			$('alertaFechaAddOn' + indCalActual).style.display = 'none';
			
		}
		if(n_date || forzar){
			$('contCalAddOn').style.display = 'none';
		}

	}		
	var cerrarCalendarioActividad = function(n_date,forzar){
		if (n_date){
			$('fechaActividad' + indCalActual).value = oCalInicioBook.f_generDate(new Date(n_date));
			$('fechaActividad' + indCalActual).className = '';
			$('alertaFechaActividad' + indCalActual).style.display = 'none';
			
		}
		if(n_date || forzar){
			$('contCalActividad').style.display = 'none';
		}

	}			
	var configurarPasajeros = function(){
		var i;
		for(i=0;i<PASAJEROS.length;i++){
			PASAJEROS[i].h5.innerHTML = LANG['pasajero'] + ' ' + (i + 1);			
		}
		mostrarPopPasajeros(true);
		Blocker.show();
		/*MostrarContenido($('popUpPasajeros'));	
		*/
	}	
	var cerrarCuadroContenido = function(tipo){
		if(tipo == 'alojamiento')OcultarContenido($('popUpHotelHabitacion'));
		else if(tipo == 'addon'){
			OcultarContenido($('popUpAddOns'));
			$('contCalAddOn').style.display = 'none';
		}
		else if(tipo == 'actividad'){
			OcultarContenido($('popUpActividad'));
			$('contCalActividad').style.display = 'none';
		}
		Blocker.hide();		
	}
	var cerrarCuadroPasajeros = function(){
		mostrarPopPasajeros();
		Blocker.hide();
		/*OcultarContenido($('popUpPasajeros'));
		*/
		
	}
	var confirmarCerrarCuadroPasajeros = function(){
		Confirm.message = LANG['msjConfirmarCerrarPasajeros'];
		Confirm.onAccept = function(){
			var i;
			for(i=0;i<PASAJEROS.length;i++){
				PASAJEROS[i].eliminado = false;
				PASAJEROS[i].contenedor.style.display = '';
			}
			
			limpiarPasajerosSinConfirmar();
			cerrarCuadroPasajeros();
			Blocker.hide();
			Confirm.hide();
		};
		Confirm.onCancel = function(){
			mostrarPopPasajeros(true);
			//MostrarContenido($('popUpPasajeros'));
		}
		mostrarPopPasajeros();		
		//OcultarContenido($('popUpPasajeros'));		
		Confirm.show();
	}
	var confirmarCerrarCuadroContenido = function(tipo){
		if(tipo == 'addon')Confirm.message = LANG['msjConfirmarCerrarAddOn'];	
		else if(tipo == 'actividad')Confirm.message = LANG['msjConfirmarCerrarActividad'];
		else if(tipo == 'alojamiento')Confirm.message = LANG['msjConfirmarCerrarAlojamiento']
		tipoConfirm = tipo;
		Confirm.onAccept = function(){
			cerrarCuadroContenido(tipoConfirm);
			Blocker.hide();
			Confirm.hide();
		};
		Confirm.onCancel = function(){
			if(tipoConfirm == 'addon')MostrarContenido($('popUpAddOns'));
			else if(tipoConfirm == 'actividad')MostrarContenido($('popUpActividad'));
			else if(tipoConfirm == 'alojamiento')MostrarContenido($('popUpHotelHabitacion'));
		}
		if(tipoConfirm == 'addon')OcultarContenido($('popUpAddOns'));
		else if(tipoConfirm == 'actividad')OcultarContenido($('popUpActividad'));
		else if(tipoConfirm == 'alojamiento')OcultarContenido($('popUpHotelHabitacion'));
		Confirm.show();		
	}
	var confirmarQuitarContenido = function(obj){
		contenidoActual = obj;
		if(contenidoActual.tipoContenido == 'addon')Confirm.message = LANG['msjConfirmarQuitarAddOn'];
		else if(contenidoActual.tipoContenido == 'actividad')Confirm.message = LANG['msjConfirmarQuitarActividad'];
		else if(contenidoActual.tipoContenido == 'alojamiento')Confirm.message = LANG['msjConfirmarQuitarAlojamiento'];		
		Confirm.onAccept = function(){
			quitarContenido(contenidoActual);
			Blocker.hide();
			Confirm.hide();
		};
		Confirm.onCancel = function(){
			Blocker.hide();
			Confirm.hide();
		}
		Confirm.show();
		Blocker.show();
	}
	var confirmarCerrarCuadroComentario = function(){
		Confirm.message = LANG['msjConfirmarCerrarComentario'];
		Confirm.onAccept = function(){
			Blocker.hide();
			Confirm.hide();
			contenidoActual = null;
		};
		Confirm.onCancel = function(){
			MostrarContenido($('popUpComentario'));
		}
		OcultarContenido($('popUpComentario'));		
		Confirm.show();
	}			
	
	var crearLineaLista = function(obj){
		if(obj){
			if(!obj.comentarios)obj.comentarios = new Array();		
			if(obj.tipoContenido == 'addon' || obj.tipoContenido == 'actividad'){
				var anexo = 'AddOn';
				if(obj.tipoContenido == 'actividad')anexo = 'Actividad';
				obj.linea = cTag('tr');
				obj.linea.noEnviar = true;
				
				obj.linea.nombrePasajero = cTag('td');
				
				var pasajero = '';					
				if(PASAJEROS[obj.pasajero].datos['nombre'] == '' && PASAJEROS[obj.pasajero].datos['apellido'] == '')pasajero = LANG['pasajero'] + ' ' + (parseInt(obj.pasajero)+1);
				else{
					pasajero = '';
					if(PASAJEROS[obj.pasajero].datos['nombre'] != '')pasajero = PASAJEROS[obj.pasajero].datos['nombre'] + ' ';
					if(PASAJEROS[obj.pasajero].datos['apellido'] != '')pasajero += PASAJEROS[obj.pasajero].datos['apellido'] + ' ';
					pasajero = pasajero.substr(0,pasajero.length-1);
				}
				var diaComienzo = PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].posicionSectores[PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual].indice].diaComienzo;		
				var piso = sumarDias($('fechaInicioBook').value,diaComienzo);
	
				obj.linea.nombrePasajero.innerHTML = pasajero;
		
				obj.linea.horario = cTag('td');	
				obj.linea.horario.align = "center";
				
				if(obj.tipoHora != 'manual')obj.linea.horario.innerHTML = $('descHorario'+ anexo + obj.idHorario).innerHTML;
				else obj.linea.horario.innerHTML = obj.tituloManual;
				
//				obj.linea.horario.innerHTML = $('descHorario'+ anexo + obj.idHorario).innerHTML;
		
				obj.linea.fecha = cTag('td');	
				obj.linea.fecha.align = "center";
				obj.linea.fecha.innerHTML = sumarDias(piso,obj.dia);
	
				obj.linea.contHerr = cTag('td');
				if(obj.estado != 'confirmadoBlockeado'){			
					if(obj.tipoHora != 'manual'){
						obj.linea.contHerr.edit = cTag('a','btnEdit fltL');
						obj.linea.contHerr.edit.innerHTML = '<span>Edit</span>';
					}
					obj.linea.contHerr.btnDelete = cTag('a','btnDelete fltL');
					obj.linea.contHerr.btnDelete.innerHTML = '<span>Delete</span>';
					if(obj.tipoHora != 'manual')obj.linea.contHerr.appendChild(obj.linea.contHerr.edit);
					obj.linea.contHerr.appendChild(obj.linea.contHerr.btnDelete);
				}
				
				if(idBookingActual > 0){//SI ESTOY EDITANDO UNA RESERVA
					obj.linea.contHerr.coment = cTag('a','btnComent fltL');
					obj.linea.contHerr.coment.innerHTML = '<span>Coment</span>';
					obj.linea.contHerr.comentView = cTag('a','btnComentView fltL');
					obj.linea.contHerr.comentView.innerHTML = '<span>View Coments</span>';
					obj.linea.contHerr.appendChild(obj.linea.contHerr.coment);
					obj.linea.contHerr.appendChild(obj.linea.contHerr.comentView);
				}
				
				 
				obj.linea.appendChild(obj.linea.nombrePasajero);
				obj.linea.appendChild(obj.linea.horario);		
				obj.linea.appendChild(obj.linea.fecha);
				obj.linea.appendChild(obj.linea.contHerr);					
				
				if(obj.tipoContenido != 'actividad'){
					$('tBody' + anexo + obj.idAddOn).appendChild(obj.linea);
					$('contTBody' + anexo + obj.idAddOn).style.display = 'block';
				}
				else{
					$('tBody' + anexo + obj.idActividad).appendChild(obj.linea);
					$('contTBody' + anexo + obj.idActividad).style.display = 'block';
				}
				if(obj.estado != 'confirmadoBlockeado'){				
					if(obj.tipoHora != 'manual')AddEvent(obj.linea.contHerr.edit,'click',function(){editarContenido(this)}.closure(obj));					
					AddEvent(obj.linea.contHerr.btnDelete,'click',function(){confirmarQuitarContenido(this)}.closure(obj));
				}
				if(idBookingActual > 0){//SI ESTOY EDITANDO UNA RESERVA
				}
				
				
				
			}
			else if(obj.tipoContenido == 'alojamiento'){
				obj.linea = cTag('tr');
				obj.linea.noEnviar = true;
				obj.linea.habitacion = cTag('td');
				obj.linea.habitacion.innerHTML = $('descripcionHabitacion' + obj.idHabitacion).innerHTML;
				
				var dat = setLineaAlojamiento(obj);
				
				obj.linea.pasajeros = cTag('td');		
				obj.linea.pasajeros.innerHTML = dat.pasajeros;
		
				obj.linea.noches = cTag('td');	
				obj.linea.noches.innerHTML = dat.noches;
				obj.linea.contHerr = cTag('td');
				if(obj.estado != 'confirmadoBlockeado'){
					obj.linea.contHerr.edit = cTag('a','btnEdit fltL');
					obj.linea.contHerr.edit.innerHTML = '<span>Edit</span>';
					obj.linea.contHerr.btnDelete = cTag('a','btnDelete fltL');
					obj.linea.contHerr.btnDelete.innerHTML = '<span>Delete</span>';
					obj.linea.contHerr.appendChild(obj.linea.contHerr.edit);
					obj.linea.contHerr.appendChild(obj.linea.contHerr.btnDelete);
				}
				
				if(idBookingActual > 0){//SI ESTOY EDITANDO UNA RESERVA
					obj.linea.contHerr.coment = cTag('a','btnComent fltL');
					obj.linea.contHerr.coment.innerHTML = '<span>Coment</span>';
					obj.linea.contHerr.comentView = cTag('a','btnComentView fltL');
					obj.linea.contHerr.comentView.innerHTML = '<span>View Coments</span>';
					obj.linea.contHerr.appendChild(obj.linea.contHerr.coment);
					obj.linea.contHerr.appendChild(obj.linea.contHerr.comentView);
				}
				
				
				obj.linea.appendChild(obj.linea.habitacion);
				obj.linea.appendChild(obj.linea.pasajeros);		
				obj.linea.appendChild(obj.linea.noches);
				obj.linea.appendChild(obj.linea.contHerr);					
				$('tBodyAlojamiento' + obj.idAlojamiento).appendChild(obj.linea);
				$('contTBodyAlojamiento' + obj.idAlojamiento).style.display = 'block';
				
				if(obj.estado != 'confirmadoBlockeado'){
					AddEvent(obj.linea.contHerr.edit,'click',function(){editarContenido(this)}.closure(obj));					
					AddEvent(obj.linea.contHerr.btnDelete,'click',function(){confirmarQuitarContenido(this)}.closure(obj));
				}
				
			}
			if(idBookingActual > 0){//SI ESTOY EDITANDO UNA RESERVA		
				if(obj.comentarios.length == 0)obj.linea.contHerr.comentView.style.display = 'none';
				AddEvent(obj.linea.contHerr.coment,'click',function(){agregarComentario(this)}.closure(obj));
				AddEvent(obj.linea.contHerr.comentView,'click',function(){verComentarios(this)}.closure(obj));
	
				if(obj.comentarios.length == 0)obj.linea.contHerr.comentView.style.display = 'none';		
			}
		}
	}
	var crearLineaComentario = function(datCom){
		var tr = cTag('tr');
		tr.fecha = cTag('td');
		tr.fecha.style.textAlign = 'center';
		tr.fecha.innerHTML = datCom.fecha;
		tr.comentario = cTag('td');
		tr.comentario.innerHTML = datCom.comentario;
		tr.usuario = cTag('td');
		tr.usuario.innerHTML = datCom.usuario;
		tr.appendChild(tr.fecha);
		tr.appendChild(tr.comentario);
		tr.appendChild(tr.usuario);		
		return(tr);		
	}	
	var crearTickets = function(cantidad,idHorario,tipo){
		var i,s,selTemp = '',htmlTotal = '',pasajero = '';
		var arrPas = new Array();		
		var pasPerm = new Array();
		if(tipo == 'addon'){
			for(i=0;i<cantidad;i++){
				selTemp = SELECT_ADD_ON.replace(/\[TIPO_ACTIVIDAD\]/gi,'AddOn');			
				selTemp = selTemp.replace(/\[INDICE\]/gi,i);
				selHorario = $('selectGenerado' + idHorario).innerHTML;
				selHorario = selHorario.replace(/\[INDICE\]/gi,i);
				
				htmlTotal += '<strong>Ticket ' + (i+1) + '</strong>';
				htmlTotal += '<fieldset>';
				htmlTotal += '<legend>Traveler:</legend>';
				htmlTotal += selTemp;
				htmlTotal += '<img src="' + URL_ROOT + 'img/alerta.gif" id="selectPasajeroAddOn' + i + 'Alerta" onmouseover="oToolTip.mostrar(event,\'' + LANG['seleccionarPasajero'] + '\');" onmouseout="oToolTip.ocultar();" style="display:none;"/>';			
				htmlTotal += '</fieldset>';
				htmlTotal += '<fieldset>';
				htmlTotal += '<legend>' + LANG['fecha'] + ':</legend>';
				htmlTotal += '<input name="fechaAddOn' + i + '" id="fechaAddOn' + i + '" type="text" size="10" maxlength="10" readonly="true" onfocus="oBooking.mostrarCalendarioContenido(' + i +',\'addon\')" style="width:76px;" />';
				htmlTotal += '<img src="' + URL_ROOT + 'img/alerta.gif" id="alertaFechaAddOn' + i + '" onmouseover="oToolTip.mostrar(event,\'' + LANG['seleccionarFecha'] + '\');" onmouseout="oToolTip.ocultar();" style="display:none;" />';
				htmlTotal += '<div id="contCalAddOn' + i + '" class="contCalAddOn"></div>';						
				htmlTotal += '</fieldset>';			
				htmlTotal += '<fieldset>';
				htmlTotal += '<legend>' + LANG['hora'] + ':</legend>';
				htmlTotal += selHorario;
				htmlTotal += '<img src="' + URL_ROOT + 'img/alerta.gif" id="selectHorarioAddOn' + i + '-' + idHorario +'Alerta" onmouseover="oToolTip.mostrar(event,\'' + LANG['seleccionarHorario'] + '\');" onmouseout="oToolTip.ocultar();" style="display:none;"/>';			
				htmlTotal += '</fieldset>';
				
				htmlTotal += '<div class="floatFix"></div>';
				
			}
			document.body.appendChild($('contCalAddOn'));		
			$('htmlPopAddOn').innerHTML = htmlTotal;
		}
		else if(tipo == 'actividad'){
			var cant;
			if(cantidad)cant = cantidad;
			else{
				var idsHorariosTemp = obtenerHorariosActividad(productoActual,sectorActual,idActividadActual);
				if(idsHorariosTemp.length > 0){
					for(i=0;i<idsHorariosTemp.length;i++){
						var actividad = PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['actividades'][idsHorariosTemp[i]];
						if(actividad){
							for(s=0;s<actividad.length;s++){
								arrPas[actividad[s].pasajero] = 1;	
							}
							for(s=0;s<PASAJEROS.length;s++){
								if(!arrPas[s])pasPerm.push(s);
							}
						}
					}
					cant = pasPerm.length;					
				}
				else{
					cant = PASAJEROS.length;
					for(i=0;i<PASAJEROS.length;i++)pasPerm.push(i);
				}
			}
			
			
			
			for(i=0;i<cant;i++){
				
				selTemp = SELECT_ADD_ON.replace(/\[TIPO_ACTIVIDAD\]/gi,'Actividad');
				selTemp = selTemp.replace(/\[INDICE\]/gi,i);
				selHorario = $('selectGenerado' + idHorario).innerHTML;
				selHorario = selHorario.replace(/\[INDICE\]/gi,i);
				
				htmlTotal += '<strong>Ticket ' + (i+1) + '</strong>';
				htmlTotal += '<fieldset>';
				htmlTotal += '<legend>Traveler:</legend>';
				htmlTotal += selTemp;
				htmlTotal += '<img src="' + URL_ROOT + 'img/alerta.gif" id="selectPasajeroActividad' + i + 'Alerta" onmouseover="oToolTip.mostrar(event,\'' + LANG['seleccionarPasajero'] + '\');" onmouseout="oToolTip.ocultar();" style="display:none;"/>';						
				htmlTotal += '</fieldset>';
				htmlTotal += '<fieldset>';
				htmlTotal += '<legend>' + LANG['fecha'] + ':</legend>';
				htmlTotal += '<input name="fechaActividad' + i + '" id="fechaActividad' + i + '" type="text" size="10" maxlength="10" readonly="true" onfocus="oBooking.mostrarCalendarioContenido(' + i +',\'actividad\')" style="width:76px;" />';
				htmlTotal += '<img src="' + URL_ROOT + 'img/alerta.gif" id="alertaFechaActividad' + i + '" onmouseover="oToolTip.mostrar(event,\'' + LANG['seleccionarFecha'] + '\');" onmouseout="oToolTip.ocultar();" style="display:none;" />';
				htmlTotal += '<div id="contCalActividad' + i + '" class="contCalAddOn"></div>';
				htmlTotal += '</fieldset>';		
				htmlTotal += '<fieldset>';
				htmlTotal += '<legend>' + LANG['hora'] + ':</legend>';
				htmlTotal += selHorario;
				htmlTotal += '<img src="' + URL_ROOT + 'img/alerta.gif" id="selectHorarioActividad' + i + '-' + idHorario +'Alerta" onmouseover="oToolTip.mostrar(event,\'' + LANG['seleccionarHorario'] + '\');" onmouseout="oToolTip.ocultar();" style="display:none;"/>';			
				htmlTotal += '</fieldset>';
				htmlTotal += '<div class="floatFix"></div>';
				htmlTotal += '<div class="msjErrorBooking" style="display:none;" id="errorPasajeroActividad' + i + '">' + LANG['errorPasajeroActividad'] + '</div>';
				htmlTotal += '<div class="floatFix"></div>';				
				
			}
			document.body.appendChild($('contCalActividad'));		
			$('htmlPopActividad').innerHTML = htmlTotal;
			return pasPerm;
		}
	}.closure(this)	
	var confirmarQuitarPasajero = function(pasajero){
		pasajeroActual = pasajero;
		Confirm.message = LANG['msjConfirmarQuitarPasajero'];
		Confirm.onAccept = function(){
			
			pasajeroActual.eliminado = true;
			var indice = 0;
			for(var i=0;i<PASAJEROS.length;i++){
				if(!PASAJEROS[i].eliminado){
					indice++;
					PASAJEROS[i].h5.innerHTML = LANG['pasajero'] + ' ' + (indice);
				}
			}
			
			pasajeroActual.contenedor.style.display = 'none';
			mostrarPopPasajeros(true);
			//MostrarContenido($('popUpPasajeros'));
			Confirm.hide();
			pasajeroActual = null;
		};
		Confirm.onCancel = function(){
			mostrarPopPasajeros(true);
			//MostrarContenido($('popUpPasajeros'));
			pasajeroActual = null;
		}
		mostrarPopPasajeros();
		//OcultarContenido($('popUpPasajeros'));		
		Confirm.show();
	
	
	}
	var cleanPopHabitacion = function(){
		var i;
		$('errorPasajeroHabitacionPop').style.display = 'none';
		$('errorCalendarioHabitacion').style.display = 'none';
		oCalHabitacion.cleanMultiDate();
		for(i=0;i<PASAJEROS.length;i++){
			$('checkHabitacionPasajero' + i).checked = false;
		}
		
	}	
	
	var desdeMapa = false, mapa = false, mapaColor = 0;
	var mapaColores = [{col:'#c00'}, {col:'#0c0'}, {col:'#00c'}];
	var cargarMapa = function(){
		try{
			if (GBrowserIsCompatible()) {
				mapa = new GMap2($('productoMapa'));
				mapa.setUIToDefault();
				mapa.disableScrollWheelZoom();
				
				cargarRecorrido(iIdProd, sNomProd, aProdReco, aProdSect);
			}
		} catch(e) {
			$('productoMapa').style.display = 'none';
		}
	}
	var aRecorridos = {}, aSectores = {};
	var cargarRecorrido = function (id, nom, recs, secs) {
		
		if (!aRecorridos[id]) {
			
			obj = {};
			obj.nom = nom;
			
			if (recs.length > 0) {
				obj.line = new GPolyline(recs, mapaColores[(mapaColor % 3)].col, 4, 0.7, {clickable: true});
				mapa.addOverlay(obj.line);
				mapa.setCenter(obj.line.getBounds().getCenter(), mapa.getBoundsZoomLevel(obj.line.getBounds()));
			}
			
			obj.secs = {};
			for (var i = 0; i < secs.length; i++) {
				if (secs[i].latlng) {
					var inf = {id: id, nom: nom};
					
					if (!aSectores[secs[i].cid]) { aSectores[secs[i].cid] = crearMarcador(secs[i], [inf]); }
					else { aSectores[secs[i].cid].conf.push(inf); }
				}
			}
			
			aRecorridos[id] = obj;
			mapaColor++;// para cambiar el color
		}
	}
	var crearMarcador = function (info, conf) {
		var ICON = {};
		ICON.image = DIR_ROOT + 'img/parada' + ((mapaColor % 3) + 1) + '.png';
		ICON.size = new GSize(20, 28);
		ICON.iconAnchor = new GPoint(10, 28);
		ICON.infoWindowAnchor = new GPoint(9, 2);
		
		var GMO = {}
		GMO.icon = ICON;//G_DEFAULT_ICON;
		GMO.dragCrossMove = false;
		GMO.title = info.nom;
		GMO.clickable = true;
		GMO.draggable = false;
		GMO.bouncy = false;
		GMO.autoPan = false;
		
		var marker = new GMarker(info.latlng, GMO);
		mapa.addOverlay(marker);
		marker.conf = conf;
		GEvent.addListener(marker, 'click', function() {
			var v = '';
			for (var i = 0; i < this.conf.length; i++) {
				v += '<div class="infowindow">' +
					'<strong>' + this.conf[i].nom + '</strong><br />'+
					'<em>' + info.nom + '</em><br />'+
					'<a href="javascript:;" onclick="oBooking.cambiarSectorDesdeMapa('+info.id+', '+this.conf[i].id+', event);">'+
					LANG['clickConfigurar'] + '</a>'+
				'</div>';
			}
			this.openInfoWindowHtml(v);
		});
		return marker;
	}

	//D
	var diferenciaDias = function(fecha1,fecha2){
		var unDia = 1000*60*60*24;
		var fechDif1 = parsearFecha(fecha1);
		var fechDif2 = parsearFecha(fecha2);		
		return (Math.ceil(fechDif2.getTime()-fechDif1.getTime())/(unDia))
	}

	//E
	this.expandirContraer = function(tipo,e){
		var cont = $('contInfo' + tipo);
		var desde,hasta;
		if(!cont.enMovimiento){
			if($('btnExpandir' + tipo).className == 'btnExpandir fltL'){
				$('btnExpandir' + tipo).className = 'btnContraer fltL';
				desde = 0;
				hasta = cont.firstChild.offsetHeight;
				
			}
			else{
				desde = cont.firstChild.offsetHeight;
				hasta = 0;
				$('btnExpandir' + tipo).className = 'btnExpandir fltL';
			}

			var tm = new Tween(cont.style, 'height', Tween.strongEaseOut, desde, hasta, 1, 'px');
			tm.start();


			/*cont.animate(
				{height: {from: desde, to: hasta}},
				0.5, 
				function () {
					cont.enMovimiento = false;
				},
				'easeIn'
			);*/
		}
		
		if(e)StopEvent(e);
	}
	this.evaluarNochesEnSector = function(){
		$('nochesEnSector').value = trim($('nochesEnSector').value);
		if($('nochesEnSector').value != '' && !ER_ENTERO.test($('nochesEnSector').value)){
			if(ER_NATURAL.test($('nochesEnSector').valorAnterior)){
				$('nochesEnSector').value = $('nochesEnSector').valorAnterior;
				$('alertaNochesEnSector').style.display = 'none';
				$('nochesEnSector').className = '';			
				reactualizarDiasSectores();
			}
			else{
				$('alertaNochesEnSector').style.display = 'inline';
				$('nochesEnSector').className = 'inputError';
			}
		}
		else{
			if(!evaluarRangoDiasSector()){
				if($('nochesEnSector').valorAnterior)$('nochesEnSector').value = $('nochesEnSector').valorAnterior;
				else $('nochesEnSector').value = 0;
				Error.onAccept = Error.onCancel = function(){
					Error.hide();
					Blocker.hide();
				}
				Error.show(LANG['msjProblemaDiasEnDestino']);
				Blocker.show();
				
			}
			else{

				if(trim($('nochesEnSector').value) != $('nochesEnSector').valorAnterior){
					$('nochesEnSector').valorAnterior = $('nochesEnSector').value;
					PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['nochesEnSector'] = $('nochesEnSector').value;
					reactualizarDiasSectores();
				}
			}
			$('alertaNochesEnSector').style.display = 'none';
			$('nochesEnSector').className = '';
			
		}
	}
	this.evaluarErrorRegistro = function(er,campo){
		campo.value = trim(campo.value);
		if(!er.test(campo.value)){
			campo.className = 'inputError';
			erroresRegistro++;
		}
		else campo.className = '';
	}
	this.evaluarContrasenaRegistro = function(index){

		if(($('contrasenaPasajeroRegistro' + index).value != $('confirmarContrasenaPasajeroRegistro' + index).value)){
			$('contrasenaPasajeroRegistro' + index).className = 'inputError';
			$('confirmarContrasenaPasajeroRegistro' + index).className = 'inputError';
			erroresRegistro++;
		}
		else{
			if($('contrasenaPasajeroRegistro' + index).value == '' && $('confirmarContrasenaPasajeroRegistro' + index).value == ''){
				$('contrasenaPasajeroRegistro' + index).className = 'inputError';
				$('confirmarContrasenaPasajeroRegistro' + index).className = 'inputError';
				erroresRegistro++;
				
			}
			else{
				$('contrasenaPasajeroRegistro' + index).className = '';
				$('confirmarContrasenaPasajeroRegistro' + index).className = '';			
			}
		}
	}
	this.evaluarEmailPasajero = function(indice){
		
		if(ER_EMAIL.test(trim($('emailPasajeroRegistro' + indice).value))){
			
			if((PASAJEROS[indice]['datos']['email'] && PASAJEROS[indice]['datos']['email'] != trim($('emailPasajeroRegistro' + indice).value)) || !PASAJEROS[indice]['datos']['email']){
			
				
				$('emailPasajeroRegistro' + indice).disabled = true;
				$('imgComprobandoEmailRegistro' + indice).style.display = '';
							
				if(!PASAJEROS[indice].req){
					PASAJEROS[indice].req = new Request();
					PASAJEROS[indice].req.noEnviar = true;
					PASAJEROS[indice].req.listener = listenerPasajero.closure(PASAJEROS[indice]);
					
				}
				PASAJEROS[indice].req.pedir(DIR_ROOT + 'requests/BookingMetodos.php?metodo=validarEmailRegistro', 'email' + SEP_IGUAL + trim($('emailPasajeroRegistro' + indice).value) + SEP_AND);
				PASAJEROS[indice].enviando = true;
			}
		}
	}
	var editarContenido = function(obj){
		var i;		
		contenidoActual = obj;		
		setearLimitesCalendario(productoActual,sectorActual,contenidoActual.tipoContenido);

		if(contenidoActual.tipoContenido == 'addon'){
			idAddOnActual = obj.idAddOn;
			idHorarioAddOnActual = obj.idHorario;
			$('nombrePopAddOn').innerHTML = $('nombreAddon' + idAddOnActual).innerHTML + ' '+ $('descHorarioAddOn' + idHorarioAddOnActual).innerHTML;	
			crearTickets(1,obj.idHorario,'addon');			
			$('fechaAddOn0').value = sumarDias(oCalAddOn.limiteInferior,obj.dia);
			for(i=0;i<$('selectPasajeroAddOn0').options.length;i++){
				if($('selectPasajeroAddOn0').options[i].value == obj.pasajero){
					$('selectPasajeroAddOn0').options[i].selected = true;
					break;
				}
			}
			for(i=0;i<$('selectHorarioAddOn0-' + idHorarioAddOnActual).options.length;i++){
				if($('selectHorarioAddOn0-' + idHorarioAddOnActual).options[i].value == obj.hora){
					$('selectHorarioAddOn0-' + idHorarioAddOnActual).options[i].selected = true;
					break;
				}
			}
			MostrarContenido($('popUpAddOns'));	
			oCalAddOn.f_show();				
		}
		else if(contenidoActual.tipoContenido == 'actividad'){
			if(!Nav.esIE){
				console.log(contenidoActual);
			}
			idActividadActual = obj.idActividad;
			idHorarioActividadActual = obj.idHorario;
			$('nombrePopActividad').innerHTML = $('nombreActividad' + idActividadActual).innerHTML + ' '+ $('descHorarioActividad' + idHorarioActividadActual).innerHTML;
			crearTickets(1,obj.idHorario,'actividad');
			$('fechaActividad0').value = sumarDias(oCalActividad.limiteInferior,obj.dia);
			for(i=0;i<$('selectPasajeroActividad0').options.length;i++){
				if($('selectPasajeroActividad0').options[i].value == obj.pasajero){
					$('selectPasajeroActividad0').options[i].selected = true;
					break;
				}
			}
			for(i=0;i<$('selectHorarioActividad0-' + idHorarioActividadActual).options.length;i++){
				if($('selectHorarioActividad0-' + idHorarioActividadActual).options[i].value == obj.hora){
					$('selectHorarioActividad0-' + idHorarioActividadActual).options[i].selected = true;
					break;
				}
			}
			MostrarContenido($('popUpActividad'));	
			oCalActividad.f_show();
		}
		else if(contenidoActual.tipoContenido == 'alojamiento'){
			var i,s,e,pasTemp,pasajerosSeteados = new Array();
			var sectTemp = PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual];
			for(i in PASAJEROS){
				$('checkHabitacionPasajero' + i).disabled = false;	
			}
			for(i in sectTemp['alojamientos']){
				
				for(s in sectTemp['alojamientos'][i]){
					pasTemp = sectTemp['alojamientos'][i][s].pasajeros.split(',');	
					for(e in pasTemp){
						$('checkHabitacionPasajero' + pasTemp[e]).disabled = true;
						pasajerosSeteados[pasTemp[e]] = 1;
					}
				}
			}


			cleanPopHabitacion();
			idAlojamientoActual = obj.idAlojamiento;
			idHabitacionActual = obj.idHabitacion;
			$('nombreAlogamientoPopUp').innerHTML = $('nombreAlojamiento' + idAlojamientoActual).innerHTML;
			$('descripcionHabitacionPopUp').innerHTML = $('descripcionHabitacion' + idHabitacionActual).innerHTML;
			
			var partPasajeros = obj.pasajeros.split(',');
			for(i=0;i<partPasajeros.length;i++){
				if($('checkHabitacionPasajero' + partPasajeros[i])){
					$('checkHabitacionPasajero' + partPasajeros[i]).checked = true;
					$('checkHabitacionPasajero' + partPasajeros[i]).disabled = false;
				}
			}
			var partNoches = obj.noches.split(',');
			$('fechaHabitacion').value = oCalHabitacion.limiteInferior;
			for(i=0;i<partNoches.length;i++){
				
				oCalHabitacion.multipleDate[sumarDias(oCalHabitacion.limiteInferior,parseInt(partNoches[i]))] = true;
			}
			MostrarContenido($('popUpHotelHabitacion'));	
			oCalHabitacion.f_show();				
		}
		Blocker.show();		
	}
	var enviar = function(file,v){

		if(listo){		

			listo = false;
			req.pedir(file,v);
		}
	}
	var enviarDatos = function(){
		var i,v = '';
		var arrTemp = new Array();
		var idsMapas = '';
		
		v += 'idsProductos' + SEP_IGUAL;
		for(i=0;i<PRODUCTOS.length;i++){
			v += PRODUCTOS[i].idProducto + ',';
			arrTemp[PRODUCTOS[i].idProducto] = PRODUCTOS[i];
			
			if (!aRecorridos[PRODUCTOS[i].idProducto]) {
				idsMapas += PRODUCTOS[i].idProducto+',';
			}
		}
		v += SEP_AND;
		
		if (idsMapas != '') { v += 'idsProductosMapa' + SEP_IGUAL + idsMapas + SEP_AND; }
		
		v += 'paso' + SEP_IGUAL + pasoActual + SEP_AND;
		v += 'tipoDePase' + SEP_IGUAL;		
		if(!passTypePlanner){
			if(passType)v += passType.value;
			else v += 'planner';
		}
		else{
			if(passTypePlanner.checked)v += 'planificado';
			else v += 'flexible';
		}
		v += SEP_AND;
		if(!passTypePlanner){
			v += 'sinOpcPaseFlex' + SEP_IGUAL + 1 + SEP_AND;
		}
		v += 'cantidadPasajeros' + SEP_IGUAL + $('cantidadViajeros').value + SEP_AND;
		v += 'pasajeros' + SEP_IGUAL + serialize(PASAJEROS) + SEP_AND;
		v += 'fechaInicio' + SEP_IGUAL + $('fechaInicioBook').value + SEP_AND;
		if(!oCookie.get('idMoneda')){
			this.setMoneda(true);
			v += 'idMoneda' + SEP_IGUAL + $('monedaBooking').value + SEP_AND;			
		}
		else{
			v += 'idMoneda' + SEP_IGUAL + oCookie.get('idMoneda') + SEP_AND;
		}
		
		v += 'datosCompletos' + SEP_IGUAL + serialize(arrTemp) + SEP_AND;
		v += 'idBooking' + SEP_IGUAL + idBookingActual + SEP_AND;		
		
		
		
		if(sectorActual)v += 'idSectorActual' + SEP_IGUAL + sectorActual + SEP_AND;		
		if(productoActual)v += 'idProductoActual' + SEP_IGUAL + productoActual + SEP_AND;
		if(VALORES_DEFECTO)v += 'actividadesYaSeteadas' + SEP_IGUAL + 1 + SEP_AND;

		return v;
		
		
	}.closure(this)
	var evaluarRangoDiasSector = function(){

		var i,s,msj,techo,partNoch = '';

		var noches = 0;
		if(ER_NATURAL_NOCERO.test($('nochesEnSector').value))noches = parseInt($('nochesEnSector').value);
		if(ER_FECHA.test($('fechaInicioBook').value)){
			var diaComienzo = PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].posicionSectores[PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual].indice].diaComienzo;
			var piso = sumarDias($('fechaInicioBook').value,diaComienzo);
			if(parseInt($('nochesEnSector').value) > 1)techo = sumarDias(piso,noches-1);
			else techo = piso;
		}
		



		var alojamientos = PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['alojamientos'];
		for(i in alojamientos){
			for(s in alojamientos[i]){
				if(alojamientos[i][s].noches){
					partNoch = alojamientos[i][s].noches.split(',');
					if((parseInt(partNoch[partNoch.length-1])+1) > noches){
						return false;
					}
				}
			}
		}

		var actividades = PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['actividades'];
		for(i in actividades){
			for(s in actividades[i]){
				if((parseInt(actividades[i][s].dia)) > noches){
					return false;										
				}
			}
		}


		var addons = PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['addOns'];
		for(i in addons){
			for(s in addons[i]){

				if((parseInt(addons[i][s].dia)) > noches){
					return false;										
				}
			}
		}
		return true;
	}
	var evaluarSelect = function(sel){
		if(sel.value != '-1'){
			$(sel.id+'Alerta').style.display = 'none';
			sel.className = '';
		}
	}
	var errorRequest = function(){
		Confirm.message = LANG['msjSinConexion'];
		Confirm.onAccept = function(){
			Confirm.hide();
			req.pedir();
		}
		Confirm.onCancel = function(){
			Loader.hide();
			Blocker.hide();
			mostrarBlockeador();
			listo = true;

		}
		Confirm.show();
	}	
	
	
	//G
	var get_html_translation_table = function  (table, quote_style) {
	
		var entities = {},
			hash_map = {},        decimal = 0,
			symbol = '';
		var constMappingTable = {},
			constMappingQuoteStyle = {};
		var useTable = {},        useQuoteStyle = {};
	 
		// Translate arguments
		constMappingTable[0] = 'HTML_SPECIALCHARS';
		constMappingTable[1] = 'HTML_ENTITIES';    constMappingQuoteStyle[0] = 'ENT_NOQUOTES';
		constMappingQuoteStyle[2] = 'ENT_COMPAT';
		constMappingQuoteStyle[3] = 'ENT_QUOTES';
	 
		useTable = !isNaN(table) ? constMappingTable[table] : table ? table.toUpperCase() : 'HTML_SPECIALCHARS';    useQuoteStyle = !isNaN(quote_style) ? constMappingQuoteStyle[quote_style] : quote_style ? quote_style.toUpperCase() : 'ENT_COMPAT';
	 
		if (useTable !== 'HTML_SPECIALCHARS' && useTable !== 'HTML_ENTITIES') {
			throw new Error("Table: " + useTable + ' not supported');
			 return false;    }
	 
		entities['38'] = '&amp;';
		if (useTable === 'HTML_ENTITIES') {
			entities['160'] = '&nbsp;';        entities['161'] = '&iexcl;';
			entities['162'] = '&cent;';
			entities['163'] = '&pound;';
			entities['164'] = '&curren;';
			entities['165'] = '&yen;';        entities['166'] = '&brvbar;';
			entities['167'] = '&sect;';
			entities['168'] = '&uml;';
			entities['169'] = '&copy;';
			entities['170'] = '&ordf;';        entities['171'] = '&laquo;';
			entities['172'] = '&not;';
			entities['173'] = '&shy;';
			entities['174'] = '&reg;';
			entities['175'] = '&macr;';        entities['176'] = '&deg;';
			entities['177'] = '&plusmn;';
			entities['178'] = '&sup2;';
			entities['179'] = '&sup3;';
			entities['180'] = '&acute;';        entities['181'] = '&micro;';
			entities['182'] = '&para;';
			entities['183'] = '&middot;';
			entities['184'] = '&cedil;';
			entities['185'] = '&sup1;';        entities['186'] = '&ordm;';
			entities['187'] = '&raquo;';
			entities['188'] = '&frac14;';
			entities['189'] = '&frac12;';
			entities['190'] = '&frac34;';        entities['191'] = '&iquest;';
			entities['192'] = '&Agrave;';
			entities['193'] = '&Aacute;';
			entities['194'] = '&Acirc;';
			entities['195'] = '&Atilde;';        entities['196'] = '&Auml;';
			entities['197'] = '&Aring;';
			entities['198'] = '&AElig;';
			entities['199'] = '&Ccedil;';
			entities['200'] = '&Egrave;';        entities['201'] = '&Eacute;';
			entities['202'] = '&Ecirc;';
			entities['203'] = '&Euml;';
			entities['204'] = '&Igrave;';
			entities['205'] = '&Iacute;';        entities['206'] = '&Icirc;';
			entities['207'] = '&Iuml;';
			entities['208'] = '&ETH;';
			entities['209'] = '&Ntilde;';
			entities['210'] = '&Ograve;';        entities['211'] = '&Oacute;';
			entities['212'] = '&Ocirc;';
			entities['213'] = '&Otilde;';
			entities['214'] = '&Ouml;';
			entities['215'] = '&times;';        entities['216'] = '&Oslash;';
			entities['217'] = '&Ugrave;';
			entities['218'] = '&Uacute;';
			entities['219'] = '&Ucirc;';
			entities['220'] = '&Uuml;';        entities['221'] = '&Yacute;';
			entities['222'] = '&THORN;';
			entities['223'] = '&szlig;';
			entities['224'] = '&agrave;';
			entities['225'] = '&aacute;';        entities['226'] = '&acirc;';
			entities['227'] = '&atilde;';
			entities['228'] = '&auml;';
			entities['229'] = '&aring;';
			entities['230'] = '&aelig;';        entities['231'] = '&ccedil;';
			entities['232'] = '&egrave;';
			entities['233'] = '&eacute;';
			entities['234'] = '&ecirc;';
			entities['235'] = '&euml;';        entities['236'] = '&igrave;';
			entities['237'] = '&iacute;';
			entities['238'] = '&icirc;';
			entities['239'] = '&iuml;';
			entities['240'] = '&eth;';        entities['241'] = '&ntilde;';
			entities['242'] = '&ograve;';
			entities['243'] = '&oacute;';
			entities['244'] = '&ocirc;';
			entities['245'] = '&otilde;';        entities['246'] = '&ouml;';
			entities['247'] = '&divide;';
			entities['248'] = '&oslash;';
			entities['249'] = '&ugrave;';
			entities['250'] = '&uacute;';        entities['251'] = '&ucirc;';
			entities['252'] = '&uuml;';
			entities['253'] = '&yacute;';
			entities['254'] = '&thorn;';
			entities['255'] = '&yuml;';    }
	 
		if (useQuoteStyle !== 'ENT_NOQUOTES') {
			entities['34'] = '&quot;';
		}    if (useQuoteStyle === 'ENT_QUOTES') {
			entities['39'] = '&#39;';
		}
		entities['60'] = '&lt;';
		entities['62'] = '&gt;'; 
	 
		// ascii decimals to real symbols
		for (decimal in entities) {
			symbol = String.fromCharCode(decimal);        hash_map[symbol] = entities[decimal];
		}
	 
		return hash_map;
	}		
	this.guardarContenido = function(tipo){
		var i,j,s,errores = false;
		if(tipo == 'addon'){
			if(!contenidoActual){
				for(i=0;i<$('cantidadAddOn' + idHorarioAddOnActual).value;i++){
					if($('fechaAddOn' + i).value != '' || ($('selectPasajeroAddOn' + i).value >= 0) || ($('selectHorarioAddOn' + i + '-' + idHorarioAddOnActual).value != '-1')){
					
						if(!ER_FECHA.test($('fechaAddOn' + i).value)){
							$('fechaAddOn' + i).className = 'inputError';
							$('alertaFechaAddOn' + i).style.display = '';
							errores = true;
						}
						if(!ER_NATURAL.test($('selectPasajeroAddOn' + i).value)){
							$('selectPasajeroAddOn' + i).className = 'inputError';
							$('selectPasajeroAddOn' + i + 'Alerta').style.display = '';
							if(!$('selectPasajeroAddOn' + i).seteado){
								AddEvent($('selectPasajeroAddOn' + i),'change',function(){evaluarSelect(this)}.closure($('selectPasajeroAddOn' + i)));	
							}
							errores = true;
						}
						if($('selectHorarioAddOn' + i + '-' + idHorarioAddOnActual).value == '-1'){
							$('selectHorarioAddOn' + i + '-' + idHorarioAddOnActual).className = 'inputError';
							$('selectHorarioAddOn' + i + '-' + idHorarioAddOnActual + 'Alerta').style.display = '';
							if(!$('selectHorarioAddOn' + i + '-' + idHorarioAddOnActual).seteado){
								AddEvent($('selectHorarioAddOn' + i + '-' + idHorarioAddOnActual),'change',function(){evaluarSelect(this)}.closure($('selectHorarioAddOn' + i + '-' + idHorarioAddOnActual)));	
							}
							errores = true;
						}
						
					}
					
				}
				if(!errores){
	
					
					if(!PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['addOns'][idHorarioAddOnActual])PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['addOns'][idHorarioAddOnActual] = new Array();
	
					for(i=0;i<$('cantidadAddOn' + idHorarioAddOnActual).value;i++){
	
						if($('fechaAddOn' + i).value != ''){
							var obj = new Object();
							obj.tipoContenido = tipo;
							obj.pasajero = $('selectPasajeroAddOn' + i).value;
							obj.dia = diferenciaDias(oCalAddOn.limiteInferior,$('fechaAddOn' + i).value);
							obj.idAddOn = idAddOnActual;
							obj.idHorario = idHorarioAddOnActual;
							obj.hora = $('selectHorarioAddOn' + i + '-' + idHorarioAddOnActual).value;
							obj.indice = PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['addOns'][idHorarioAddOnActual].length;
							crearLineaLista(obj);
							PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['addOns'][idHorarioAddOnActual].push(obj);
						}
	
					}
					cerrarCuadroContenido('addon');
		
				}
			}
			else{
				if(!ER_FECHA.test($('fechaAddOn0').value)){
					$('fechaAddOn0').className = 'inputError';
					$('alertaFechaAddOn0').style.display = '';
					errores = true;
				}
				if(!ER_NATURAL.test($('selectPasajeroAddOn0').value)){
					$('selectPasajeroAddOn0').className = 'inputError';
					$('selectPasajeroAddOn0' + 'Alerta').style.display = '';
					if(!$('selectPasajeroAddOn0').seteado){
						AddEvent($('selectPasajeroAddOn0'),'change',function(){evaluarSelect(this)}.closure($('selectPasajeroAddOn0')));	
					}
					errores = true;
				}
				
				if($('selectHorarioAddOn0' + '-' + idHorarioAddOnActual).value == '-1'){
					$('selectHorarioAddOn0' + '-' + idHorarioAddOnActual).className = 'inputError';
					$('selectHorarioAddOn0' + '-' + idHorarioAddOnActual + 'Alerta').style.display = '';
					if(!$('selectHorarioAddOn0' + '-' + idHorarioAddOnActual).seteado){
						AddEvent($('selectHorarioAddOn0' + '-' + idHorarioAddOnActual),'change',function(){evaluarSelect(this)}.closure($('selectHorarioAddOn0' + '-' + idHorarioAddOnActual)));	
					}
					errores = true;
				}
				
				if(!errores){
					contenidoActual.pasajero = $('selectPasajeroAddOn0').value;
					contenidoActual.dia = diferenciaDias(oCalAddOn.limiteInferior,$('fechaAddOn0').value);
					contenidoActual.hora = $('selectHorarioAddOn0' + '-' + idHorarioAddOnActual).value;
					var pasajero = '';					
					if(PASAJEROS[contenidoActual.pasajero].datos['nombre'] == '' && PASAJEROS[contenidoActual.pasajero].datos['apellido'] == '')pasajero = LANG['pasajero'] + ' ' + (parseInt(contenidoActual.pasajero)+1);
					else{
						pasajero = '';
						if(PASAJEROS[contenidoActual.pasajero].datos['nombre'] != '')pasajero = PASAJEROS[contenidoActual.pasajero].datos['nombre'] + ' ';
						if(PASAJEROS[contenidoActual.pasajero].datos['apellido'] != '')pasajero += PASAJEROS[contenidoActual.pasajero].datos['apellido'] + ' ';
						pasajero = pasajero.substr(0,pasajero.length-1);
					}
					contenidoActual.linea.nombrePasajero.innerHTML = pasajero;
					contenidoActual.linea.fecha.innerHTML = $('fechaAddOn0').value;
					cerrarCuadroContenido('addon');				
				}
			}
		}
		else if(tipo == 'actividad'){
			if(!contenidoActual){
				var cant = 0;
				for(i=0;i<PASAJEROS.length;i++){
					if($('fechaActividad' + i))cant++;
				}
				for(i=0;i<cant;i++){
					$('errorPasajeroActividad' + i).style.display = 'none';
					if($('fechaActividad' + i).value != '' || $('selectPasajeroActividad' + i).value >= 0){
					
						if(!ER_FECHA.test($('fechaActividad' + i).value)){
							$('fechaActividad' + i).className = 'inputError';
							$('alertaFechaActividad' + i).style.display = '';
							errores = true;
						}
						if(!ER_NATURAL.test($('selectPasajeroActividad' + i).value)){
							$('selectPasajeroActividad' + i).className = 'inputError';
							$('selectPasajeroActividad' + i + 'Alerta').style.display = '';
							if(!$('selectPasajeroActividad' + i).seteado){
								AddEvent($('selectPasajeroActividad' + i),'change',function(){evaluarSelect(this)}.closure($('selectPasajeroActividad' + i)));	
							}
							errores = true;
						}
						else{
							//SI ESTA SELECCIONADO EL PASAJERO ENTONCES ME FIJO QUE NO ESTE SELECCIONADO EN OTRA ACTIVIDAD
							var idsHorariosTemp = obtenerHorariosActividad(productoActual,sectorActual,idActividadActual);
							var pararBucle = false;
							for(s=0;s<idsHorariosTemp.length;s++){
								var actividad = PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['actividades'][idsHorariosTemp[s]];
								if(actividad){
									for(j=0;j<actividad.length;j++){
										if(actividad[j].pasajero == $('selectPasajeroActividad' + i).value){
											$('errorPasajeroActividad' + i).style.display = 'block';										
											errores = true;
											pararBucle = true;
											break;	
										}
									}
								}
								if(pararBucle)break;
							}
						}
						if($('selectHorarioActividad' + i + '-' + idHorarioActividadActual).value == '-1'){
							$('selectHorarioActividad' + i + '-' + idHorarioActividadActual).className = 'inputError';
							$('selectHorarioActividad' + i + '-' + idHorarioActividadActual + 'Alerta').style.display = '';
							if(!$('selectHorarioActividad' + i + '-' + idHorarioActividadActual).seteado){
								AddEvent($('selectHorarioActividad' + i + '-' + idHorarioActividadActual),'change',function(){evaluarSelect(this)}.closure($('selectHorarioActividad' + i + '-' + idHorarioActividadActual)));	
							}
							errores = true;
						}
						
					}
					
				}
				if(!errores){
					if(!PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['actividades'][idHorarioActividadActual])PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['actividades'][idHorarioActividadActual] = new Array();
					for(i=0;i<cant;i++){
	
						if(ER_FECHA.test($('fechaActividad' + i).value)){
							var obj = new Object();
							obj.tipoContenido = tipo;							
							obj.pasajero = $('selectPasajeroActividad' + i).value;
							obj.dia = diferenciaDias(oCalActividad.limiteInferior,$('fechaActividad' + i).value);
							obj.idActividad = idActividadActual;
							obj.idHorario = idHorarioActividadActual;
							obj.hora = $('selectHorarioActividad' + i + '-' + idHorarioActividadActual).value;
							obj.indice = PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['actividades'][idHorarioActividadActual].length;
							crearLineaLista(obj,true);
							
							PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['actividades'][idHorarioActividadActual].push(obj);
						}
	
					}
					cerrarCuadroContenido('actividad');
					
		
				}
			}
			else{
				if(!ER_FECHA.test($('fechaActividad0').value)){
					$('fechaActividad0').className = 'inputError';
					$('alertaFechaActividad0').style.display = '';
					errores = true;
				}
				if(!ER_NATURAL.test($('selectPasajeroActividad0').value)){
					$('selectPasajeroActividad0').className = 'inputError';
					$('selectPasajeroActividad0' + 'Alerta').style.display = '';
					if(!$('selectPasajeroActividad0').seteado){
						AddEvent($('selectPasajeroActividad0'),'change',function(){evaluarSelect(this)}.closure($('selectPasajeroActividad0')));	
					}
					errores = true;
				}
				else{
					//SI ESTA SELECCIONADO EL PASAJERO ENTONCES ME FIJO QUE NO ESTE SELECCIONADO EN OTRA ACTIVIDAD					
					var idsHorariosTemp = obtenerHorariosActividad(productoActual,sectorActual,idActividadActual);
					var pararBucle = false;
					for(s=0;s<idsHorariosTemp.length;s++){
						var actividad = PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['actividades'][idsHorariosTemp[s]];
						if(actividad){
							for(j=0;j<actividad.length;j++){
								if(!Nav.esIE){
									console.log(j + '-' + contenidoActual.indice);	
								}
								if(actividad[j].pasajero == $('selectPasajeroActividad0').value && j != contenidoActual.indice){
									$('errorPasajeroActividad0').style.display = 'block';										
									errores = true;
									pararBucle = true;
									break;	
								}
							}
						}
						if(pararBucle)break;
					}
					

				}
				if($('selectHorarioActividad0' + '-' + idHorarioActividadActual).value == '-1'){
					$('selectHorarioActividad0' + '-' + idHorarioActividadActual).className = 'inputError';
					$('selectHorarioActividad0' + '-' + idHorarioActividadActual + 'Alerta').style.display = '';
					if(!$('selectHorarioActividad0' + '-' + idHorarioActividadActual).seteado){
						AddEvent($('selectHorarioActividad0' + '-' + idHorarioActividadActual),'change',function(){evaluarSelect(this)}.closure($('selectHorarioActividad0' + '-' + idHorarioActividadActual)));	
					}
					errores = true;
				}
				
				if(!errores){
					contenidoActual.pasajero = $('selectPasajeroActividad0').value;
					contenidoActual.dia = diferenciaDias(oCalActividad.limiteInferior,$('fechaActividad0').value);
					contenidoActual.hora = $('selectHorarioActividad0' + '-' + idHorarioActividadActual).value;				
					var pasajero = '';					
					if(PASAJEROS[contenidoActual.pasajero].datos['nombre'] == '' && PASAJEROS[contenidoActual.pasajero].datos['apellido'] == '')pasajero = LANG['pasajero'] + ' ' + (parseInt(contenidoActual.pasajero)+1);
					else{
						pasajero = '';
						if(PASAJEROS[contenidoActual.pasajero].datos['nombre'] != '')pasajero = PASAJEROS[contenidoActual.pasajero].datos['nombre'] + ' ';
						if(PASAJEROS[contenidoActual.pasajero].datos['apellido'] != '')pasajero += PASAJEROS[contenidoActual.pasajero].datos['apellido'] + ' ';
						pasajero = pasajero.substr(0,pasajero.length-1);
					}
					contenidoActual.linea.nombrePasajero.innerHTML = pasajero;
					contenidoActual.linea.fecha.innerHTML = $('fechaActividad0').value;
					cerrarCuadroContenido('actividad');				
				}
			}
			if(!errores){
				
				if($('idsHorariosActividades') && $('idsHorariosActividades').value != ''){
					
					//ACA VEO LOS PASAJEROS ASOCIADOS A ESTA ACTIVIDAD SI YA ESTAN TODOS CONFIGURADOS BLOCKEO LA ACTIVIDAD PARA TODOS LOS HORARIOS
					var arrPas = new Array();
					var idsHorariosTemp = new Array();
					var pasPerm = new Array();
					for(i in PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['actividades']){
						if(PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['actividades'][i][0] && PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['actividades'][i][0].idActividad == idActividadActual)idsHorariosTemp.push(i);
					}
					for(i=0;i<idsHorariosTemp.length;i++){
						var actividad = PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['actividades'][idsHorariosTemp[i]];
						for(s=0;s<actividad.length;s++){
							arrPas[actividad[s].pasajero] = 1;	
						}
						for(s=0;s<PASAJEROS.length;s++){
							if(!arrPas[s])pasPerm.push(s);
						}
						
					}
					var clase = 'btnConf fltL';
					if(pasPerm.length == 0){
						clase = 'btnConfInactivo fltL';	
					}
					for(i=0;i<idsHorariosTemp.length;i++){					
						if($('btnConfActividad' + idsHorariosTemp[i]))$('btnConfActividad' + idsHorariosTemp[i]).className = clase;
					}
				}
				
			}
		}
		else if(tipo == 'alojamiento'){
			var pasajeros = '',cantidadPasajeros = 0;
			for(i=0;i<PASAJEROS.length;i++){
				if($('checkHabitacionPasajero' + i).checked){
					pasajeros += i + ',';
					cantidadPasajeros++;
				}
			}
			$('errorPasajeroHabitacionPop').style.display = 'none';
			$('errorCalendarioHabitacion').style.display = 'none';
			if(pasajeros != ''){
				pasajeros = pasajeros.substr(0,pasajeros.length-1);
				if($('tipoCostoHabitacion' + idHabitacionActual).value == 'porHabitacion'){
					if(cantidadPasajeros != parseInt($('cantidadPersonasHabitacion' + idHabitacionActual).value)){
						$('errorPasajeroHabitacionPop').innerHTML = LANG['errorHabitacionPasajeros'].replace('[CANTIDAD]',$('cantidadPersonasHabitacion' + idHabitacionActual).value);
						$('errorPasajeroHabitacionPop').style.display = '';
						errores = true;
					}
				}
				
			}
			else{
				errores = true;
				$('errorPasajeroHabitacionPop').innerHTML = LANG['debeSeleccionarPasajero'];
				$('errorPasajeroHabitacionPop').style.display = '';			
			}
			
			var noches = '';
			
			for(i in oCalHabitacion.multipleDate){
				noches += diferenciaDias(oCalHabitacion.limiteInferior,i) + ',';
			}
			if(noches != ''){
				noches = noches.substr(0,noches.length-1);
				$('errorCalendarioHabitacion').style.display = 'none';
			}
			else{
				errores = true;			
				$('errorCalendarioHabitacion').style.display = '';
			}
			if(!errores){
	
				if(!contenidoActual){
					var obj = new Object();
					obj.tipoContenido = tipo;					
					obj.idHabitacion = idHabitacionActual;
					obj.idAlojamiento = idAlojamientoActual;
	
					obj.pasajeros = pasajeros;
					obj.noches = noches;
					if(!PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['alojamientos'][idAlojamientoActual])PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['alojamientos'][idAlojamientoActual] = new Array();
					obj.indice = PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['alojamientos'][idAlojamientoActual].length;
					PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['alojamientos'][idAlojamientoActual].push(obj);		
					crearLineaLista(obj);
				}
				else{
					contenidoActual.pasajeros = pasajeros;
					contenidoActual.noches = noches;
					var dat = setLineaAlojamiento(contenidoActual);				
					contenidoActual.linea.pasajeros.innerHTML = dat.pasajeros;
					contenidoActual.linea.noches.innerHTML = dat.noches;				
					
				}
				cerrarCuadroContenido('alojamiento');	
				setearBotonesAlojamiento();
			}
		}
	}
	this.guardarRegTemp = function(){
		var i;
		for(i = 0;i<PASAJEROS.length;i++){
			if(trim($('nombrePasajeroRegistro' + i).value) != '')PASAJEROS[i]['datos']['nombre'] = $('nombrePasajeroRegistro' + i).value;
			if(trim($('apellidoPasajeroRegistro' + i).value) != '')PASAJEROS[i]['datos']['apellido'] = $('apellidoPasajeroRegistro' + i).value;
			if(trim($('nacionalidadPasajeroRegistro' + i).value) != '')PASAJEROS[i]['datos']['nacionalidad'] = $('nacionalidadPasajeroRegistro' + i).value;
			if(trim($('emailPasajeroRegistro' + i).value) != '')PASAJEROS[i]['datos']['email'] = $('emailPasajeroRegistro' + i).value;
			if(trim($('telefonoPasajeroRegistro' + i).value) != '')PASAJEROS[i]['datos']['telefono'] = $('telefonoPasajeroRegistro' + i).value;
			if(trim($('fechaNacimientoPasajeroRegistro' + i).value) != '')PASAJEROS[i]['datos']['fechaNacimiento'] = $('fechaNacimientoPasajeroRegistro' + i).value;			
			PASAJEROS[i]['datos']['pasaporte'] = $('pasaportePasajeroRegistro' + i).value;			
			if(trim($('contrasenaPasajeroRegistro' + i).value) != '')PASAJEROS[i]['datos']['contrasena'] = $('contrasenaPasajeroRegistro' + i).value;
			if(trim($('confirmarContrasenaPasajeroRegistro' + i).value) != '')PASAJEROS[i]['datos']['confirmarContrasena'] = $('confirmarContrasenaPasajeroRegistro' + i).value;
			if($('sexoPasajeroRegistroMasculino' + i).checked)PASAJEROS[i]['datos']['sexo'] = 'm';
			else PASAJEROS[i]['datos']['sexo'] = 'f';
			
		}
		
	}
	this.guardarRegistro = function(){
		var i = 0;
		var existenErrores = false;

		var listoPasajeros = true;

		for(i in PASAJEROS){
			if(PASAJEROS[i].enviando){
				listoPasajeros = false;
				return false;
			}
		}
		
		for(i = 0;i<PASAJEROS.length;i++){
			erroresRegistro = 0;			
			if(!PASAJEROS[i]['datos']['registrado']){
				FireEvent($('nombrePasajeroRegistro' + i),'blur');
				FireEvent($('apellidoPasajeroRegistro' + i),'blur');
				FireEvent($('nacionalidadPasajeroRegistro' + i),'blur');
				FireEvent($('emailPasajeroRegistro' + i),'blur');
				FireEvent($('fechaNacimientoPasajeroRegistro' + i),'blur');
				FireEvent($('telefonoPasajeroRegistro' + i),'blur');
				FireEvent($('contrasenaPasajeroRegistro' + i),'blur');			
			
				if(!ER_EMAIL.test($('emailPasajeroRegistro' + i).value))erroresRegistro++;
				
				
				if(erroresRegistro > 0){
					$('contErroresRegistro' + i).style.display = '';
					existenErrores = true;
				}
				else{
					$('contErroresRegistro' + i).style.display = 'none';
				}
			}
			if($('errorUsuarioBloqueadoRegistro' + i).style.display == 'block')existenErrores++;		
		}
		
		
		if(!existenErrores){

			for(i = 0;i<PASAJEROS.length;i++){
				PASAJEROS[i]['datos']['nombre'] = $('nombrePasajeroRegistro' + i).value;
				PASAJEROS[i]['datos']['apellido'] = $('apellidoPasajeroRegistro' + i).value;
				PASAJEROS[i]['datos']['nacionalidad'] = $('nacionalidadPasajeroRegistro' + i).value;
				PASAJEROS[i]['datos']['email'] = $('emailPasajeroRegistro' + i).value;
				PASAJEROS[i]['datos']['telefono'] = $('telefonoPasajeroRegistro' + i).value;
				PASAJEROS[i]['datos']['pasaporte'] = $('pasaportePasajeroRegistro' + i).value;
				PASAJEROS[i]['datos']['fechaNacimiento'] = $('fechaNacimientoPasajeroRegistro' + i).value;				
				PASAJEROS[i]['datos']['contrasena'] = $('contrasenaPasajeroRegistro' + i).value;
				PASAJEROS[i]['datos']['confirmarContrasena'] = $('confirmarContrasenaPasajeroRegistro' + i).value;
				if($('sexoPasajeroRegistroMasculino' + i).checked)PASAJEROS[i]['datos']['sexo'] = 'm';
				else PASAJEROS[i]['datos']['sexo'] = 'f';
			}
			
			if(!listo){ return false; }
			metodo = 'registrarPasajeros';
			var v = 'pasajeros' + SEP_IGUAL + serialize(PASAJEROS) + SEP_AND;
			enviar(DIR_ROOT + 'requests/BookingMetodos.php?metodo=' + metodo, v);
			Blocker.show();
			Loader.show();

		}
		
	}
	var getDateStr = function(){
		var today = new Date()
		var year = today.getYear()
		if(year<1000) year+=1900
		var todayStr = year
	    return todayStr
	}	
	var guardarSector = function(){
		if(sectorActual){
			var sectorTemp = PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual];
			sectorTemp['nochesEnSector'] = $('nochesEnSector').value;
			PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual] = sectorTemp;
			reactualizarDiasSectores();
		}
		
	}
	var guardarPasajerosPop = function(){
		var i = 0,continuar = true;
		
		while(continuar){
			
			if(!PASAJEROS[i])continuar = false;
			else{
				if(PASAJEROS[i].eliminado == true){
					quitarPasajero(PASAJEROS[i]);
					i = 0;
				}
				else i++;
			}
		}
		
		
		for(i=0;i<PASAJEROS.length;i++){
			if(!PASAJEROS[i].datos){
				PASAJEROS[i].datos = new Array();
				setValoresDefecto(i);
			}
			PASAJEROS[i].datos['nombre'] = trim(PASAJEROS[i].campoNombre.value);
			PASAJEROS[i].datos['apellido'] = trim(PASAJEROS[i].campoApellido.value);
			PASAJEROS[i].confirmado = true;
		}
		if(PASAJEROS.length > 0){
			$('cantidadViajeros').value = PASAJEROS.length;
		}
		else{
			$('cantidadViajeros').value = '';
		}
		FireEvent($('cantidadViajeros'),'blur');
		cerrarCuadroPasajeros();
		actualizarFiguraPasajeros();
		usuarioAgregado = true;
		if(pasoActual == 1)this.cambiarSector(sectorActual,productoActual,false,true);
		else if(pasoActual != 2){
			this.cambiarPaso(pasoActual,false,true);
		}
		
	}.closure(this);
	var guardarComentarioItem = function(){

		if(trim($('comentarioItem').value) != ''){
			var date = new Date();			
			if(!contenidoActual.comentarios)contenidoActual.comentarios = new Array();
			var objCom = {'comentario' : trim($('comentarioItem').value),'indice' : contenidoActual.comentarios.length,'usuario' : $('usuarioActual').value,'fecha' : obtenerFechaYHora(date)}
			contenidoActual.comentarios.push(objCom);
			if(contenidoActual.linea)contenidoActual.linea.contHerr.comentView.style.display = '';
			else{
				$('btnVerComentariosBus' + contenidoActual.idBussPass).style.display = '';
			}
			OcultarContenido($('popUpComentario'));
			Blocker.hide();
		}
		else{
			$('errorComentarioPop').style.display = 'block';
		}
	}	
	
	//H
	var html_entity_decode = function(string, quote_style) {
		// Convert all HTML entities to their applicable characters  
		// 
		// version: 1103.1210
		// discuss at: http://phpjs.org/functions/html_entity_decode    // +   original by: john (http://www.jd-tech.net)
		// +      input by: ger
		// +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
		// +    revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
		// +   bugfixed by: Onno Marsman    // +   improved by: marc andreu
		// +    revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
		// +      input by: Ratheous
		// +   bugfixed by: Brett Zamir (http://brett-zamir.me)
		// +      input by: Nick Kolosov (http://sammy.ru)    // +   bugfixed by: Fox
		// -    depends on: get_html_translation_table
		// *     example 1: html_entity_decode('Kevin &amp; van Zonneveld');
		// *     returns 1: 'Kevin & van Zonneveld'
		// *     example 2: html_entity_decode('&amp;lt;');    // *     returns 2: '&lt;'
		var hash_map = {},
			symbol = '',
			tmp_str = '',
			entity = '';    tmp_str = string.toString();
	 
		if (false === (hash_map = get_html_translation_table('HTML_ENTITIES', quote_style))) {
			return false;
		} 
		// fix &amp; problem
		// http://phpjs.org/functions/get_html_translation_table:416#comment_97660
		delete(hash_map['&']);
		hash_map['&'] = '&amp;'; 
		for (symbol in hash_map) {
			entity = hash_map[symbol];
			tmp_str = tmp_str.split(entity).join(symbol);
		}    tmp_str = tmp_str.split('&#039;').join("'");
	 
		return tmp_str;
	}	
	
	
	
	//I
	this.imprimirCalendario = function(idBooking,e){
		$('formPdf').action = URL_ROOT + 'requests/BookingMetodos.php?metodo=imprimirCalendario';
		if(pasoActual == 1)guardarSector();
		var v = enviarDatos();
		$('datosPdf').value = v;
		
		$('formPdf').submit();
		if(e)StopEvent(e);
	}
	this.imprimirPDfSector = function(idSector,e){
		$('formPdf').action = URL_ROOT + 'requests/BookingMetodos.php?metodo=imprimirSector';
		if(pasoActual == 1)guardarSector();
		var v = enviarDatos();
		v += 'idSectorImprimir' + SEP_IGUAL + idSector + SEP_AND;
		$('datosPdf').value = v;
		$('formPdf').submit();
		if(e)StopEvent(e);
	}

	this.imprimirInstrucciones = function(e){
		$('formPdf').action = URL_ROOT + 'requests/BookingMetodos.php?metodo=imprimirInstrucciones';
		if(pasoActual == 1)guardarSector();
		var v = enviarDatos();
		$('datosPdf').value = v;
		$('formPdf').submit();
		if(e)StopEvent(e);
	}
	this.imprimirComoFunciona = function(idProducto,e){
		$('formPdf').action = URL_ROOT + 'requests/BookingMetodos.php?metodo=mostrarComoFuncionaPDF';
		var v = 'idsProductos' + SEP_IGUAL + idProducto + ',' + SEP_AND;
		$('datosPdf').value = v;
		$('formPdf').submit();
		if(e)StopEvent(e);
	}

	
	
	var iniciar = function(){
		if(!iniciado){
			
			passTypePlanner = $('passTypePlanner');
			passTypeFlexi = $('passTypeFlexi');	
			passType = $('passType');
			
			if(passTypePlanner)passTypePlanner.checked = true;
			
			loaderPasos	= $('loaderPasos');
			blockerPasos = $('blockerPasos');		
			contHTMLPasos = $('contHTMLPasos');
			req = new Request(listener);
			req.retrys = CANT_RETRYS;
			req.reportar = false;
			req.onRetry = errorRequest;
			
			iniciado = true;	
			solapaActual = $('solInfoDinamica');
			solapaContenidoActual = $('solapaDinamico');
			
			oCalInicioBook = new tcal ({
				// if referenced by ID then form name is not required
				'controlname': 'fechaInicioBook',
				'id': 'fechaInicioBook',
				'imgOpen' : URL_ROOT + 'img/sistema/iconDate.gif',
				'contCal' : $('contCalendario')
				
				
			}, A_CALTPL);
			oCalInicioBook.f_hide = cerrarCalendarioStartDate;
			oCalInicioBook.f_show();
			

			oCalHabitacion = new tcal ({
				// if referenced by ID then form name is not required
				'controlname': 'fechaHabitacion',
				'id': 'fechaHabitacion',
				'imgOpen' : URL_ROOT + 'img/sistema/iconDate.gif',
				'contCal' : $('contCalendarioHabitacion')
			}, A_CALTPL);			
			oCalHabitacion.f_hide = cerrarCalendarioHabitacion;
			oCalHabitacion.multipleCheckeo = true;
			

			oCalAddOn = new tcal ({
				// if referenced by ID then form name is not required
				'controlname': 'fechaAddOn',
				'id': 'fechaAddOn',
				'imgOpen' : URL_ROOT + 'img/sistema/iconDate.gif',
				'contCal' : $('contCalendarioAddOn')				
				
			}, A_CALTPL);			
			oCalAddOn.f_hide = cerrarCalendarioAddOn;
			oCalAddOn.sinToday = true;
	
			oCalActividad = new tcal ({
				// if referenced by ID then form name is not required
				'controlname': 'fechaActividad',
				'id': 'fechaActividad',
				'imgOpen' : URL_ROOT + 'img/sistema/iconDate.gif',
				'contCal' : $('contCalendarioActividad')				
				
			}, A_CALTPL);			
			oCalActividad.f_hide = cerrarCalendarioActividad;
			oCalActividad.sinToday = true;
			
			oErrorBook.agregarError({'expresion' : ER_NATURAL_NOCERO,'campo' : 'cantidadViajeros'});
			oErrorBook.agregarError({'expresion' : ER_FECHA,'campo' : 'fechaInicioBook'});			
			
			
			$('cantidadViajeros').value = '';
			$('fechaInicioBook').value = '';
			
			
			AddEvent($('fechaInicioBook'),'change',function(){
				FireEvent($('fechaInicioBook'),'blur');
			})
			AddEvent($('cerrarPopStartDate'),'click',function(){cerrarCalendarioStartDate(false,true)});
			AddEvent($('btnMostrarFechaInicioBook'),'click',function(){
				abrirCalendarioInicio();
			});
			AddEvent($('fechaInicioBook'),'click',function(){
				abrirCalendarioInicio();
			});
			AddEvent($('cerrarPopHotelHabitacion'),'click',function(){confirmarCerrarCuadroContenido('alojamiento')})
			AddEvent($('cerrarPopPasajeros'),'click',function(){confirmarCerrarCuadroPasajeros()})
			AddEvent($('cantidadViajeros'),'focus',configurarPasajeros);
			AddEvent($('btnGuardarPasajeroPop'),'click',guardarPasajerosPop);
			AddEvent($('cerrarPopAddOns'),'click',function(){confirmarCerrarCuadroContenido('addon')})
			AddEvent($('cerrarPopCalAddOn'),'click',function(){cerrarCalendarioAddOn(false,true)})			
			
			AddEvent($('cerrarPopActividad'),'click',function(){confirmarCerrarCuadroContenido('actividad')})
			AddEvent($('cerrarPopCalActividad'),'click',function(){cerrarCalendarioActividad(false,true)})			
			
			blockeador = $('blockeadorReserva');
			setOpacity(70,blockeador);
			
		}
	}
	var iniciarSector = function(idSector,sinRecargar){
		var indProd = PRODUCTOS_SETEADOS[productoActual];
		var i;
		if(!PRODUCTOS[indProd].sectores[idSector]){
			PRODUCTOS[indProd].sectores[idSector] = new Object();
			PRODUCTOS[indProd].sectores[idSector]['busPasses'] = new Array();
			PRODUCTOS[indProd].sectores[idSector]['alojamientos'] = new Array();
			PRODUCTOS[indProd].sectores[idSector]['actividades'] = new Array();
			PRODUCTOS[indProd].sectores[idSector]['addOns'] = new Array();
			for(i=0;i<PRODUCTOS[indProd].posicionSectores.length;i++){
				if(PRODUCTOS[indProd].posicionSectores[i]['idSector'] == idSector){
					PRODUCTOS[indProd].sectores[idSector].indice = i;
					break;
				}
			}
			
		}
		if(!PRODUCTOS[indProd].sectores[idSector]['busPasses'].idHorario && $('busPassDefecto')){
			FireEvent($('horarioBuss' + $('busPassDefecto').value),'click');
			
		}

		if(!sinRecargar)recargarSector(productoActual,idSector);
		
	}
	
	//L
	var leerValoresDefecto = function(xml){
		if(xml){
			VALORES_DEFECTO = new Array();
			VALORES_DEFECTO = unserialize(xml.firstChild.data);

		}
	}
	var limitarCalendarioInicio = function(){
		var fechTemp = new Date ();
		fechTemp = f_tcalGenerDate(fechTemp);
		if(!idBookingActual){
			oCalInicioBook.limiteInferior = sumarDias(fechTemp,1);
			if($('fechaInicioBook').value == '')$('fechaInicioBook').value = oCalInicioBook.limiteInferior;
		}

	}
	var listener = function(){
		var i;
		var d = req.respuestaXML;
		
		mostrarBlockeador(false);		
		listo = true;		
		if(!d){
			metodo = 'notificarError';
			Error.onAccept = Error.onCancel = function(){
				Error.hide();
				Blocker.hide();
			}
			Error.show(LANG['errorNotificarAdmin']);
			alert(req.respuestaHTML);
			req.pedir(DIR_ROOT + 'requests/BookingMetodos.php?metodo=notificarErrorPublico', 'error' + SEP_IGUAL + req.respuestaHTML + SEP_AND);
			
				


			Loader.hide();
			
			return false;
			
		}

		if(metodo == 'cambiarPaso'){

			var k,t;
			for(k=0;k<d.childNodes.length;k++){
				t = d.childNodes[k].tagName;
				if(t == 'html'){
					
					contHTMLPasos.innerHTML = d.childNodes[k].firstChild.data;
				}
				else if(t == 'recorridos'){
					if(idBookingActual == 0){
						for (var i = 0; i < d.childNodes[k].childNodes.length; i++) {
							eval(d.childNodes[k].childNodes[i].firstChild.data);
							cargarRecorrido(iIdProd, sNomProd, aProdReco, aProdSect);
						}
					}
				}
				else if(t == 'defectoContenidos'){
					leerValoresDefecto(d.childNodes[k]);					
				}


			}
			

			pasoActual = d.getAttribute('pasoActual');
			sectorActual = d.getAttribute('idSectorActual');			
			if(d.getAttribute('idProductoActual') != '')productoActual = d.getAttribute('idProductoActual');
			
			if(pasoActual == 1){
				this.setProducto(productoActual,d.getAttribute('ordenSectores'),d.getAttribute('nochesSectores'));
				iniciarSector(sectorActual,d.getAttribute('posicionSectorActual'));
			}
			
		}
		else if(metodo == 'notificarError'){
			Blocker.show();
		}	
		else if(metodo == 'mostrarResumen' || metodo == 'mostrarInstrucciones' || metodo == 'mostrarCalendario'){
			var k,t;
			for(k=0;k<d.childNodes.length;k++){
				t = d.childNodes[k].tagName;
				if(t == 'html'){
					contHTMLPasos.innerHTML = d.childNodes[k].firstChild.data;
				}
			}
			

			pasoActual = d.getAttribute('pasoActual');
			sectorActual = d.getAttribute('idSectorActual');			
			if(d.getAttribute('idProductoActual') != '')productoActual = d.getAttribute('idProductoActual');
			
			if(pasoActual == 1){
				this.setProducto(productoActual,d.getAttribute('ordenSectores'),d.getAttribute('nochesSectores'));
				iniciarSector(sectorActual,d.getAttribute('posicionSectorActual'));
			}
			
		}		
		
		else if(metodo == 'cambiarSector'){
			contHTMLPasos.innerHTML = d.childNodes[1].firstChild.data;
			productoActual = d.getAttribute('idProductoActual');
			sectorActual = d.getAttribute('idSectorActual');
			this.setProducto(productoActual);
			iniciarSector(sectorActual);
			
			
			if(idBookingActual == 0){
				if (desdeMapa) {
					desdeMapa = false;
					var el = $('productoInfoPasoPos');
					if (!!el) {
						var ini = document.documentElement.scrollTop;
						var end = el.offsetTop;
						var t1 = new Tween(document.documentElement, 'scrollTop', Tween.strongEaseInOut, ini, end, 1, '');
						t1.start();
					}
				}
			}
			
			if(!usuarioAgregado)if($('nombreSectorActual'))$('nombreSectorActual').scrollIntoView(true);
			else{
				if($('configuracionInicial'))$('configuracionInicial').scrollIntoView(true);
				usuarioAgregado = false	
			}

		}
		else if(metodo == 'obtenerMasInfo'){
			if(d.firstChild.getAttribute('tipoElemento') != 'producto'){

				$('htmlPopMasInfo').innerHTML = d.firstChild.firstChild.data;
				
				MostrarContenido($('popUpMasInfo'));
				
			}
			else{
				$('htmlPopMasInfoProducto').style.height = 'auto';
				$('htmlPopMasInfoProducto').innerHTML = d.firstChild.firstChild.data;
				if((HScreen() - 30) < $('htmlPopMasInfoProducto').offsetHeight){
					$('htmlPopMasInfoProducto').style.height = (HScreen() - 30) + 'px';
				}
				MostrarContenido($('popUpMasInfoProducto'));

			}
		}
		else if(metodo == 'registrarPasajeros'){
			
			var t = d.tagName;
			for(i=0;i<PASAJEROS.length;i++)$('contErroresRegistroUsuarioRepetido' + i).style.display = 'none';
			if(t == 'errores'){

				for(i=0;i<d.childNodes.length;i++){
					if(d.childNodes[i].getAttribute('campo') == 'usuarioRepetido'){
						$('contErroresRegistroUsuarioRepetido' + d.childNodes[i].getAttribute('indice')).innerHTML = d.childNodes[i].firstChild.data;
						$('contErroresRegistroUsuarioRepetido' + d.childNodes[i].getAttribute('indice')).style.display = '';
					}
					if(d.childNodes[i].getAttribute('campo') == 'email'){
					}
				}
				Loader.hide();				
				Blocker.hide();
			}
			else{
				var i;
				for(i=1;i<d.childNodes.length;i++){
					if(PASAJEROS[d.childNodes[i].getAttribute('indice')]){
						
						if(!d.childNodes[i].getAttribute('registrado')){
							PASAJEROS[d.childNodes[i].getAttribute('indice')]['datos']['idUsuario'] = d.childNodes[i].getAttribute('idUsuario');
							PASAJEROS[d.childNodes[i].getAttribute('indice')].campoNombre.value = trim(PASAJEROS[d.childNodes[i].getAttribute('indice')].datos['nombre']);
							PASAJEROS[d.childNodes[i].getAttribute('indice')].campoApellido.value = trim(PASAJEROS[d.childNodes[i].getAttribute('indice')].datos['apellido']);
							PASAJEROS[d.childNodes[i].getAttribute('indice')]['datos']['registradoAhora'] = 1;
						}
					}
				}
				/*Exito.onAccept = function(){
					Blocker.hide();				
				};
				Exito.show(d.firstChild.firstChild.data);*/
				Blocker.hide();								
				this.cambiarPaso(4);
				
			}
			Loader.hide();
		}
		else if(metodo == 'guardarReserva'){
			document.location = this.urlFinal;
		}		
		else if(metodo == 'modificacion'){
			Exito.onAccept = function(){
				document.location = this.urlFinal;				
				Blocker.hide();				
			}.closure(this);
			Exito.show(LANG['modificacionReservaExitosa']);
			Loader.hide();

		}				
		else if(metodo == 'info'){
			var k,t;
	
			for(k=0;k<d.childNodes.length;k++){
				t = d.childNodes[k].tagName;
				if(t == 'html'){
					contHTMLPasos.innerHTML = d.childNodes[k].firstChild.data;
				}
				else if(t == 'datos'){
					productoActual = d.childNodes[k].getAttribute('idProductoActual');
					sectorActual = d.childNodes[k].getAttribute('idSectorActual');					
					fechaModificacion = d.childNodes[k].getAttribute('fechaModificacion');
					
					
					passType.value = d.childNodes[k].getAttribute('tipoDePase');
				}
				else if(t == 'fechainicio'){
					if(Nav.esIE)$('fechaInicioBook').value = d.childNodes[k].text;
					else $('fechaInicioBook').value = d.childNodes[k].textContent;
				}
				else if(t == 'productos'){
					PRODUCTOS = unserialize(d.childNodes[k].firstChild.data);
				}
				else if(t == 'productoseteados'){
					PRODUCTOS_SETEADOS = unserialize(d.childNodes[k].firstChild.data);
				}
				else if(t == 'pasajeros'){
					PASAJEROS = unserialize(d.childNodes[k].firstChild.data);
					//PASAJEROS = pasarObjetoArreglo(pasTemp);						
					for(i=0;i<PASAJEROS.length;i++){
						PASAJEROS_POSICION[PASAJEROS[i]['datos'].idUsuario] = i;
						//PASAJEROS[i]['datos']['nombre'] = html_entity_decode(PASAJEROS[i]['datos']['nombre']);						
						this.agregarPasajero(PASAJEROS[i]);
						PASAJEROS[i].confirmado = true;
					}
					$('cantidadViajeros').value = PASAJEROS.length;
					actualizarFiguraPasajeros();
					
				}
				else if(t == 'defectoContenidos'){
					leerValoresDefecto(d.childNodes[k]);					
				}
				
				
			}
			pasoActual = 1;

			reactualizarDiasSectores();
			iniciarSector(sectorActual);
			if(this.instrucciones == 1){
				listo = true;
				this.mostrarInstrucciones();	
			}
		}
		else if(metodo == 'mostrarComoFunciona'){
			$('contComoFunciona').innerHTML = d.firstChild.data;
			$('contComoFunciona').style.display = 'block';
			$('loaderComoFunciona').style.display = 'none';	
		}

		listo = true;
		//setSectorTemporal();

		
	}.closure(this);
	var listenerPasajero = function(){
		var d = this.req.respuestaXML;
		if(!d){
			alert();	
		}
		else{
			this.enviando = false;
			$('errorUsuarioBloqueadoRegistro' + this.indice).style.display = 'none';				
			if(d.getAttribute('tipo') == 'datosUsuarioLogueado'){
				//$('contRespuestaEvaluarPasajero' + this.indice).innerHTML = d.firstChild.data;
				//$('contRespuestaEvaluarPasajero' + this.indice).style.display = '';
				$('contDatosPasajero' + this.indice).style.display = 'none';
				this['datos']['registrado'] = 1;
				this['datos']['registradoAhora'] = 0;
				this['datos']['email'] = $('emailPasajeroRegistro' + this.indice).value;				
				this['datos']['pendienteConfirmacion'] = 0;
				
			}
			else if(d.getAttribute('tipo') == 'usuarioYaRegistrado'){
				$('contRespuestaEvaluarPasajero' + this.indice).innerHTML = d.firstChild.data;
				$('contRespuestaEvaluarPasajero' + this.indice).style.display = '';
				$('contDatosPasajero' + this.indice).style.display = 'none';
				if($('errorUsuarioRegistro' + this.indice))$('errorUsuarioRegistro' + this.indice).style.display = 'none';
				
				this['datos']['registrado'] = 1;
				this['datos']['registradoAhora'] = 0;
				this['datos']['email'] = $('emailPasajeroRegistro' + this.indice).value;
				this['datos']['pendienteConfirmacion'] = 1;
				
			}
			else if(d.getAttribute('tipo') == 'usuarioBloqueado'){
				$('errorUsuarioBloqueadoRegistro' + this.indice).style.display = 'block';
				this['datos']['idUsuario'] = 0;				
				this['datos']['registrado'] = 0;
				this['datos']['pendienteConfirmacion'] = 0;		
				this['datos']['registradoAhora'] = 0;				
				this['datos']['email'] = $('emailPasajeroRegistro' + this.indice).value;
			}
			else{
				$('contRespuestaEvaluarPasajero' + this.indice).style.display = 'none';
				$('contDatosPasajero' + this.indice).style.display = '';
				this['datos']['idUsuario'] = 0;				
				this['datos']['registrado'] = 0;
				this['datos']['pendienteConfirmacion'] = 0;		
				this['datos']['registradoAhora'] = 0;				
				this['datos']['email'] = $('emailPasajeroRegistro' + this.indice).value;
			}
			this['datos']['idUsuario'] = d.getAttribute('idUsuario');			
			$('emailPasajeroRegistro' + this.indice).disabled = false;
			$('imgComprobandoEmailRegistro' + this.indice).style.display = 'none';
			
		}
	}	
	var limpiarPasajerosSinConfirmar = function(){
		var i = PASAJEROS.length-1;
		while(PASAJEROS.length > 0 && !PASAJEROS[PASAJEROS.length-1].confirmado){
			PASAJEROS[PASAJEROS.length-1].contenedor.parentNode.removeChild(PASAJEROS[PASAJEROS.length-1].contenedor);
			PASAJEROS.pop();			
		}
		
		if(PASAJEROS.length == 0){
			$('btnGuardarPasajeroPop').style.display = 'none';			
			$('msjSinPasajerosPop').style.display = '';
		}
	}
	var limpiarDatosProducto = function(){
		PRODUCTOS = new Array();
		PRODUCTOS_SETEADOS = new Array();
		this.setProducto(idProductoDefecto);
		sectorActual = 0;
		this.cambiarPaso(1);
	}.closure(this)
	
	//M
	this.mostrarInfo = function(tipo,mostrar,e){
		var popD = $('pop' + tipo);
		if(popD){
			if(mostrar){
				popD.style.display = 'block';
			}
			else{
				popD.style.display = 'none';				
			}
		}
		if(e){StopEvent(e);}
	}
	this.mostrarResumen = function(){
		var i,listoPasajeros = true;
		
		for(i in PASAJEROS){
			if(PASAJEROS[i].enviando){
				listoPasajeros = false;
				return false;
			}
		}
		
		
		if((!listo || !listoPasajero || !puedoCambiarPaso('resumen'))){ return false; }
		metodo = 'mostrarResumen';
		if(pasoActual == 1)guardarSector();		
		pasoActual = 'resumen';
		mostrarBlockeador(true);
		
	
		var v = enviarDatos();		
		enviar(DIR_ROOT + 'requests/BookingMetodos.php?metodo=' + metodo, v);
		
			
	}
	this.mostrarInstrucciones = function(){
		var i,listoPasajeros = true;
		
		for(i in PASAJEROS){
			if(PASAJEROS[i].enviando){
				listoPasajeros = false;
				return false;
			}
		}
		
		
		if((!listo || !listoPasajero || !puedoCambiarPaso('resumen'))){ return false; }
		metodo = 'mostrarInstrucciones';
		if(pasoActual == 1)guardarSector();		
		pasoActual = 'instrucciones';
		mostrarBlockeador(true);
		
	
		var v = enviarDatos();		
		enviar(DIR_ROOT + 'requests/BookingMetodos.php?metodo=' + metodo, v);
		
			
	}
	this.mostrarCalendarioViaje = function(){
		var i,listoPasajeros = true;
		
		for(i in PASAJEROS){
			if(PASAJEROS[i].enviando){
				listoPasajeros = false;
				return false;
			}
		}
		
		
		if((!listo || !listoPasajero || !puedoCambiarPaso('resumen'))){ return false; }
		metodo = 'mostrarCalendario';
		if(pasoActual == 1)guardarSector();		
		pasoActual = 'calendario';
		mostrarBlockeador(true);
		
	
		var v = enviarDatos();		
		enviar(DIR_ROOT + 'requests/BookingMetodos.php?metodo=' + metodo, v);
		
			
	}


	this.mostrarCalendarioContenido = function(indice,tipo){
		indCalActual = indice;		
		if(tipo == 'addon'){
			$('contCalAddOn' + indice).appendChild($('contCalAddOn'));
			$('fechaAddOn').value = $('fechaAddOn' + indCalActual).value;
			if($('fechaAddOn').value == '')$('fechaAddOn').value = oCalAddOn.limiteInferior;
			
			
			if(ER_FECHA.test($('fechaAddOn' + indCalActual).value))oCalAddOn.f_show($('fechaAddOn' + indCalActual).value);
			else oCalAddOn.f_show();
			$('contCalAddOn').style.display = 'block';
		}
		else if(tipo == 'actividad'){
			$('contCalActividad' + indice).appendChild($('contCalActividad'));
			$('fechaActividad').value = $('fechaActividad' + indCalActual).value;
			if($('fechaActividad').value == '')$('fechaActividad').value = oCalActividad.limiteInferior;			
			if(ER_FECHA.test($('fechaActividad').value))oCalActividad.f_show($('fechaActividad').value);
			else oCalActividad.f_show();
			$('contCalActividad').style.display = 'block';
		}
		
	}
	var mostrarPopPasajeros = function(mostrar){
		if(Nav.esIE7 || Nav.esIE6){
			$('popUpPasajeros').style.marginLeft = '0px';	
			$('popUpPasajeros').style.marginTop = '2px';
		}
		
		
		if(mostrar)$('popUpPasajeros').style.display = 'block';
		else $('popUpPasajeros').style.display = 'none';
	}
	
	var mostrarBlockeador = function(mostrar){
		if(mostrar){
			blockeador.style.width = $('solapaBooking').offsetWidth + 'px';
			blockeador.style.height = $('solapaBooking').offsetHeight + 'px';
			blockeador.style.display = 'block';
			$('loaderReserva').style.display = 'block';
			$('loaderReserva').style.marginTop = Math.round(($('solapaBooking').offsetHeight-$('loaderReserva').offsetHeight)/2)+'px';
			$('loaderReserva').style.marginLeft = Math.round(($('solapaBooking').offsetWidth-$('loaderReserva').offsetWidth)/2)+'px';			
		}
		else{
			blockeador.style.display = 'none';
			$('loaderReserva').style.display = 'none';			
		}
	}
	
	//O
	this.ordenar = function(){
		if(pasoActual == 3)this.guardarRegistro();
		else this.cambiarPaso(4);
	}
	this.obtenerMasInfo = function(idElemento,tipoElemento,e){
		metodo = 'obtenerMasInfo';
		
		
		if(!$('cerrarPopMasInfo').seteado){
			AddEvent($('cerrarPopMasInfo'),'click',function(){
				OcultarContenido($('popUpMasInfo'));
				Blocker.hide();
			})	
			$('cerrarPopMasInfo').seteado = true;
		}
		if(!$('cerrarPopMasInfoProducto').seteado){
			AddEvent($('cerrarPopMasInfoProducto'),'click',function(){
				OcultarContenido($('popUpMasInfoProducto'));
				Blocker.hide();
			})	
			$('cerrarPopMasInfoProducto').seteado = true;
		}
		
//		mostrarLoader(true);

		Blocker.show();
		var v = 'idElemento' + SEP_IGUAL + idElemento + SEP_AND;		
		v += 'tipoElemento' + SEP_IGUAL + tipoElemento + SEP_AND;
		enviar(DIR_ROOT + 'requests/BookingMetodos.php?metodo=' + metodo, v);
		if(e)StopEvent(e);
	}
	var obtenerSector = function(idProducto,indice){
		return PRODUCTOS[PRODUCTOS_SETEADOS[idProducto]].sectores[PRODUCTOS[PRODUCTOS_SETEADOS[idProducto]].posicionSectores[indice].idSector];
	}
	var obtenerDias = function(horas){
		var hor = parseInt(horas);
		var dias = 0;

		while(hor >= 24){
			dias++;
			hor -= 24;
		}
		return dias;
	}
	var obtenerHorariosActividad = function(idProducto,idSector,idActividad){
		var i,idsHorariosTemp = new Array();
		for(i in PRODUCTOS[PRODUCTOS_SETEADOS[idProducto]].sectores[idSector]['actividades']){
			if(PRODUCTOS[PRODUCTOS_SETEADOS[idProducto]].sectores[idSector]['actividades'][i][0] && PRODUCTOS[PRODUCTOS_SETEADOS[idProducto]].sectores[idSector]['actividades'][i][0].idActividad == idActividad)idsHorariosTemp.push(i);
		}
		return 	idsHorariosTemp;
	}	
	var obtenerFechaYHora = function(fecha){
		return fecha.getDate() + '/' +  fecha.getMonth() + '/' + getDateStr() + ' ' + fecha.getHours() + ':' + fecha.getMinutes();
	}
	
	//P
	var puedoCambiarPaso = function(paso){

		if(paso > 1 || paso == 'resumen' || paso == 'instrucciones'){
			oErrorBook.unsetErrores();
					
			FireEvent($('cantidadViajeros'),'blur');
			FireEvent($('fechaInicioBook'),'blur');
			
			if(oErrorBook.cantidadErrores() > 0) {
				
				var el = $('productoInfoPasoPos');
				document.documentElement.scrollTop = el.offsetTop;
				
				el = $('productoCambiarPasoError');
				el.style.height = 0;
				el.style.display = 'block';
				var ini = 0;
				var end = el.scrollHeight;
				var t1 = new Tween(el.style, 'height', Tween.strongEaseInOut, ini, end, 1, 'px');
				t1.onMotionFinished = function(){
					window.setTimeout(function(){
						t1 = new Tween(el.style, 'height', Tween.strongEaseInOut, end, ini, 1, 'px');
						t1.onMotionFinished = function(){
							el.style.display = 'none';
						}
						t1.start();
					}, 3000);
				}
				t1.start();
				
				return false;
			}
		}
		return true;		
		/*if(paso > 2 && !logueado){ 

			return false; 
		}
		else if(paso > 3 && (tipoDireccion == 'nueva' && errorDireccion)){ 
			return false; 
		}		
		else{ return true; }*/
	}	
	var puedoAbrirHabitacion = function(nochesRequeridas){
		
		var msj = '';
		if(!ER_NATURAL_NOCERO.test($('cantidadViajeros').value)){
			FireEvent($('cantidadViajeros'),'blur');
			msj += LANG['msjCantidadViajeros'] + '<br/>';
		}
		if(!ER_FECHA.test($('fechaInicioBook').value)){
			FireEvent($('fechaInicioBook'),'blur');
			msj += LANG['msjComienzoViaje'] + '<br/>';
		}
		if(!ER_NATURAL_NOCERO.test($('nochesEnSector').value)){
			FireEvent($('nochesEnSector'),'blur');
			msj += LANG['nochesEnElDestino'] + '<br/>';
		}
		
		
		if(msj != ''){
			msj = msj.substr(0,msj.length-5);
			msj = LANG['msjErrorComenzarCargarHotel'] + '<br/>' + msj;
			Error.onAccept = Error.onCancel = function(){
				Error.hide();
				Blocker.hide();
			}
			Error.show(msj);
			Blocker.show();
			return false;
		}
		else return true;
		
	}
	var puedoAbrirAddOn = function(){
		
		var msj = '';
		if(!ER_NATURAL_NOCERO.test($('cantidadViajeros').value)){
			FireEvent($('cantidadViajeros'),'blur');
			msj += LANG['msjCantidadViajeros'] + '<br/>';
		}
		if(!ER_FECHA.test($('fechaInicioBook').value)){
			FireEvent($('fechaInicioBook'),'blur');
			msj += LANG['msjComienzoViaje'] + '<br/>';
		}
		if($('nochesEnSector').value != '' && !ER_ENTERO.test($('nochesEnSector').value)){
			FireEvent($('nochesEnSector'),'blur');
			msj += LANG['nochesEnSector'] + '<br/>';
		}
		
		
		if(msj != ''){
			msj = msj.substr(0,msj.length-5);			
			msj = LANG['paraContinuar'] + '<br/>' + msj;	
			Error.onAccept = Error.onCancel = function(){
				Error.hide();
				Blocker.hide();
			}
			Error.show(msj);
			Blocker.show();
			return false;
		}
		else return true;
		
	}
	var parsearFecha = function(fecha){
		var re_date = /^\s*(\d{1,2})\/(\d{1,2})\/(\d{2,4})\s*$/;
		if (!re_date.exec(fecha))
			return alert ("Invalid date: '" + s_date + "'.\nAccepted format is dd-mm-yyyy.")
		var n_day = Number(RegExp.$1),
			n_month = Number(RegExp.$2),
			n_year = Number(RegExp.$3);
	
		if (n_year < 100)
			n_year += (n_year < this.a_tpl.centyear ? 2000 : 1900);
		if (n_month < 1 || n_month > 12)
			return alert ("Invalid month value: '" + n_month + "'.\nAllowed range is 01-12.");
		var d_numdays = new Date(n_year, n_month, 0);
		if (n_day > d_numdays.getDate())
			return alert("Invalid day of month value: '" + n_day + "'.\nAllowed range for selected month is 01 - " + d_numdays.getDate() + ".");
		return(new Date (n_year, n_month - 1, (n_day)));
	}	
	var pasarObjetoArreglo = function(obj){
		var i,arr = new Array();
		for(i in obj)arr[i] = obj[i];
		return arr;
	}
	
	//Q
	var quitarContenido = function(objQuitar,sinHTML){
		var i,s,arrTemp = new Array();
		if(!sinHTML){
			var pad = objQuitar.linea.parentNode;
			objQuitar.linea.parentNode.removeChild(objQuitar.linea);
		}
		if(objQuitar.tipoContenido == 'addon'){
			for(i=0;i<objQuitar.indice;i++){
				arrTemp[i] = PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['addOns'][objQuitar.idHorario][i];
			}
			for(i=objQuitar.indice;i<PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['addOns'][objQuitar.idHorario].length-1;i++){
				arrTemp[i] = PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['addOns'][objQuitar.idHorario][i+1];
				arrTemp[i].indice = i;
			}
			if(!sinHTML){
				if(arrTemp.length == 0)pad.parentNode.parentNode.style.display = 'none';
			}
			PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['addOns'][objQuitar.idHorario] = arrTemp;
			contenidoActual = null;
		}
		else if(objQuitar.tipoContenido == 'actividad'){
			var idHorTemp = objQuitar.idHorario;
			var indTemp = objQuitar.indice;
			
			var idsHorariosTemp = obtenerHorariosActividad(productoActual,sectorActual,objQuitar.idActividad);
			for(i=0;i<idsHorariosTemp.length;i++){					
				if($('btnConfActividad' + idsHorariosTemp[i]))$('btnConfActividad' + idsHorariosTemp[i]).className = 'btnConf fltL';
			}
			
			
			
			for(i=0;i<objQuitar.indice;i++){
				arrTemp[i] = PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['actividades'][idHorTemp][i];
			}
			for(i=indTemp;i<PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['actividades'][idHorTemp].length-1;i++){
				arrTemp[i] = PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['actividades'][idHorTemp][i+1];
				arrTemp[i].indice = i;
			}
			if(!sinHTML){
				if(arrTemp.length == 0)pad.parentNode.parentNode.style.display = 'none';
			}
			PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['actividades'][idHorTemp] = arrTemp;
			contenidoActual = null;
		}
		else if(objQuitar.tipoContenido == 'alojamiento'){
			var partHab = $('idsHabitacionesAlojamiento').value.split(',');
			for(i in partHab){
				$('btnAgregarHabitacion' + partHab[i]).className = 'btnAdd fltL';
			}
			
			for(i=0;i<objQuitar.indice;i++){
				arrTemp[i] = PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['alojamientos'][objQuitar.idAlojamiento][i];
			}
			var idAlTemp = objQuitar.idAlojamiento;
			var indTemp = objQuitar.indice;
			for(i=indTemp;i<PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['alojamientos'][idAlTemp].length-1;i++){
				arrTemp[i] = PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['alojamientos'][idAlTemp][i+1];
				arrTemp[i].indice = i;
			}
			if(!sinHTML){
				if(arrTemp.length == 0)pad.parentNode.parentNode.style.display = 'none';		
			}
			PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['alojamientos'][idAlTemp] = arrTemp;		
			contenidoActual = null;
		}
	}
	var quitarPasajero = function(pasajero){
		var i,j,s,noEsActual,m;
		var indiceEliminar = pasajero.indice;
		var confirmado = pasajero.confirmado;
		PASAJEROS[indiceEliminar].contenedor.parentNode.removeChild(PASAJEROS[indiceEliminar].contenedor);		
		var arrTemp = new Array();
		
		for(i=0;i<pasajero.indice;i++){
			arrTemp[i] = PASAJEROS[i];
		}
		for(i=indiceEliminar;i<PASAJEROS.length-1;i++){
			arrTemp[i] = PASAJEROS[i+1];
			arrTemp[i].indice = i;
		}
		PASAJEROS = arrTemp;
		if(PASAJEROS.length == 0){
			$('btnGuardarPasajeroPop').style.display = 'none';			
			$('msjSinPasajerosPop').style.display = '';
		}
		if(confirmado){

			for(i=0;i<PRODUCTOS.length;i++){
				var sect = PRODUCTOS[i].sectores;
				for(var m in PRODUCTOS[i].sectores){
					if(m == sectorActual && pasoActual == 1)noEsActual = false;
					else noEsActual = true;
					for(var s in PRODUCTOS[i].sectores[m]['actividades']){
						var l = 0,continuar = true;
						while(continuar){
							if(!PRODUCTOS[i].sectores[m]['actividades'][s][l])continuar = false;
							if(continuar){
								if(PRODUCTOS[i].sectores[m]['actividades'][s][l].pasajero == indiceEliminar){
									quitarContenido(PRODUCTOS[i].sectores[m]['actividades'][s][l],noEsActual);
									l=0;
								}
								else{
									if(PRODUCTOS[i].sectores[m]['actividades'][s][l].pasajero > indiceEliminar){
										PRODUCTOS[i].sectores[m]['actividades'][s][l].pasajero = (PRODUCTOS[i].sectores[m]['actividades'][s][l].pasajero-1);
										l++;
									}
								}
							}
						}
					}
					for(var s in PRODUCTOS[i].sectores[m]['addOns']){				
						l=0;
						continuar = true;
					
						while(continuar){
							if(!PRODUCTOS[i].sectores[m]['addOns'][s][l])continuar = false;
							if(continuar){
								if(PRODUCTOS[i].sectores[m]['addOns'][s][l].pasajero == indiceEliminar){
									quitarContenido(PRODUCTOS[i].sectores[m]['addOns'][s][l],noEsActual);
									l=0;
								}
								else{
									if(PRODUCTOS[i].sectores[m]['addOns'][s][l].pasajero > indiceEliminar){
										PRODUCTOS[i].sectores[m]['addOns'][s][l].pasajero = (PRODUCTOS[i].sectores[m]['addOns'][s][l].pasajero-1);
										l++;
									}
								}
							}
						}					
					}

					for(var s in PRODUCTOS[i].sectores[m]['alojamientos']){				
						l=0;
						continuar = true;
					
						while(continuar){
							if(!PRODUCTOS[i].sectores[m]['alojamientos'][s][l])continuar = false;
							if(continuar){
								var pasHab = PRODUCTOS[i].sectores[m]['alojamientos'][s][l].pasajeros.split(',');
								var newPas = '';
								for(var e=0;e<pasHab.length;e++){
									if(pasHab[e] != indiceEliminar){
										if(parseInt(pasHab[e]) > indiceEliminar)pasHab[e] = (parseInt(pasHab[e])-1);
										newPas += pasHab[e] + ',';
									}
								}
								if(newPas == ''){
									PRODUCTOS[i].sectores[m]['alojamientos'][s][l].eliminar = true;
								}
								else{
									PRODUCTOS[i].sectores[m]['alojamientos'][s][l].pasajeros = newPas.substr(0,newPas.length-1);	
								}
								l++;
							}
						}
						l=0;
						continuar = true;
						while(continuar){
							if(!PRODUCTOS[i].sectores[m]['alojamientos'][s][l])continuar = false;
							else{
								if(PRODUCTOS[i].sectores[m]['alojamientos'][s][l].eliminar){
									quitarContenido(PRODUCTOS[i].sectores[m]['alojamientos'][s][l],noEsActual);
									l=0;
								}
								else l++;
							}
							
						}
						
					}
					
				}
			}
		}
	}
	
	
	//R
	var reactualizarDiasSectores = function(){
		//FUNCION QUE SE UTILIZA PARA ACTUALIZAR LOS DIAS DE INICIO DE CADA SECTOR
		var i,s,dias = 0,producto;
		for(i=0;i<PRODUCTOS.length;i++){
			producto = PRODUCTOS[i];
			if(producto.posicionSectores){
				for(s=0;s<producto.posicionSectores.length;s++){
					if(s > 0 && producto.sectores[producto.posicionSectores[s-1].idSector]){
						var esExtra = true;
						if(!producto.sectores[producto.posicionSectores[s-1].idSector]['busExtra'])esExtra = false;
						else if(!producto.sectores[producto.posicionSectores[s-1].idSector]['busPassesExtra'])esExtra = false;
						
						if(!esExtra){
							if(producto.sectores[producto.posicionSectores[s-1].idSector]['busPasses'] && producto.sectores[producto.posicionSectores[s-1].idSector]['busPasses']['idHorario']){
								var hor = sumarHoras(producto.sectores[producto.posicionSectores[s-1].idSector]['busPasses']['hora'],producto.sectores[producto.posicionSectores[s-1].idSector]['busPasses']['duracion']);
								var diaSumar = obtenerDias(hor['horas']);
								dias += diaSumar;
							}
						}
						else{
							if(producto.sectores[producto.posicionSectores[s-1].idSector]['busPassesExtra'] && producto.sectores[producto.posicionSectores[s-1].idSector]['busPassesExtra']['idHorario']){
								var hor = sumarHoras(producto.sectores[producto.posicionSectores[s-1].idSector]['busPassesExtra']['hora'],producto.sectores[producto.posicionSectores[s-1].idSector]['busPassesExtra']['duracion']);
								var diaSumar = obtenerDias(hor['horas']);
								dias += diaSumar;
							}
						}
						
					}

					producto.posicionSectores[s].diaComienzo = dias;
										
					if(producto.sectores[producto.posicionSectores[s].idSector] && ER_NATURAL_NOCERO.test(producto.sectores[producto.posicionSectores[s].idSector]['nochesEnSector'])){
						producto.sectores[producto.posicionSectores[s].idSector]['nochesEnSector'] = parseInt(producto.sectores[producto.posicionSectores[s].idSector]['nochesEnSector']);
						if(producto.sectores[producto.posicionSectores[s].idSector]['nochesEnSector'] > 0)dias += (parseInt(producto.sectores[producto.posicionSectores[s].idSector]['nochesEnSector']));
					}
				}
			}
		}
		setIntervalosSector();		
	}	
	var recargarSector = function(idProducto,idSector){
		var i,s;		
		//RECARGAMOS LAS LINEAS DE LOS ADDONS

		if(PRODUCTOS[PRODUCTOS_SETEADOS[idProducto]].sectores[idSector]['busPassesExtra'] && PRODUCTOS[PRODUCTOS_SETEADOS[idProducto]].sectores[idSector]['busPassesExtra']['idHorario']){
			var idBus = PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['busPassesExtra']['idBussPass'];
			
			if(idBookingActual > 0 && PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['configBusPass'][idBus]['comentarios'].length > 0){
				$('btnVerComentariosBus' + idBus).style.display = '';	
			}
		}


		if($('horarioBuss' + PRODUCTOS[PRODUCTOS_SETEADOS[idProducto]].sectores[idSector]['busPasses']['idHorario'])){
			var idBus = PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['busPasses']['idBussPass'];
			
			if(idBookingActual > 0 && PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['configBusPass'][idBus]['comentarios'].length > 0){
				$('btnVerComentariosBus' + idBus).style.display = '';	
			}
		}
		
		
		
		$('nochesEnSector').value = PRODUCTOS[PRODUCTOS_SETEADOS[idProducto]].sectores[idSector]['nochesEnSector'];
	//	if($('nochesEnSector').value == 0)$('nochesEnSector').value = 0;
		$('nochesEnSector').valorAnterior = $('nochesEnSector').value;		
		
		
		for(i in PRODUCTOS[PRODUCTOS_SETEADOS[idProducto]].sectores[idSector]['addOns']){
			var addOn = PRODUCTOS[PRODUCTOS_SETEADOS[idProducto]].sectores[idSector]['addOns'][i];
			for(s=0;s<addOn.length;s++){
				crearLineaLista(addOn[s]);	
			}
		}
		if(PRODUCTOS[PRODUCTOS_SETEADOS[idProducto]]['blockeado'] != 1){
			for(i in PRODUCTOS[PRODUCTOS_SETEADOS[idProducto]].sectores[idSector]['actividades']){
	
				var actividad = PRODUCTOS[PRODUCTOS_SETEADOS[idProducto]].sectores[idSector]['actividades'][i];
				for(s=0;s<actividad.length;s++){
					crearLineaLista(actividad[s]);	
				}
			}
		}
		for(i in PRODUCTOS[PRODUCTOS_SETEADOS[idProducto]].sectores[idSector]['alojamientos']){
			var alojamiento = PRODUCTOS[PRODUCTOS_SETEADOS[idProducto]].sectores[idSector]['alojamientos'][i];

			for(s=0;s<alojamiento.length;s++){
				crearLineaLista(alojamiento[s]);	
			}
		}
		setIntervalosSector();
		setearBotonesAlojamiento();
		setearBotonesActividades();
	}	

	//S
	this.setProducto = function(idProducto,sectores,nochesSectores){
		if(PRODUCTOS.length == 0)idProductoDefecto = idProducto;
		if(!ER_NATURAL.test(PRODUCTOS_SETEADOS[idProducto])){
			var objProd = new Object();
			objProd.idProducto = idProducto;
			objProd.sectores = new Array();
			PRODUCTOS.push(objProd);
			PRODUCTOS_SETEADOS[idProducto] = (PRODUCTOS.length-1);
		}

		if(sectores){
			var partSectores = sectores.split(',');	
			var partNochesSectores = nochesSectores.split(',');

			PRODUCTOS[PRODUCTOS_SETEADOS[idProducto]].posicionSectores = new Array();

			var i;

			for(i=0;i<partSectores.length;i++){
				//LO USO COMO INDICE PARA LUEGO RECORRER LINEALMENTE A LOS SECTORES
				PRODUCTOS[PRODUCTOS_SETEADOS[idProducto]].posicionSectores[i] = {'idSector' : partSectores[i],'diaComienzo':0};
				iniciarSector(partSectores[i],true);
				if(PRODUCTOS[PRODUCTOS_SETEADOS[idProducto]].sectores[partSectores[i]]){
					PRODUCTOS[PRODUCTOS_SETEADOS[idProducto]].sectores[partSectores[i]].indice = i;
					if(!PRODUCTOS[PRODUCTOS_SETEADOS[idProducto]].sectores[partSectores[i]].nochesEnSector)PRODUCTOS[PRODUCTOS_SETEADOS[idProducto]].sectores[partSectores[i]].nochesEnSector = partNochesSectores[i];
					
					
				}
			}
			reactualizarDiasSectores();
		}
		
	}
	this.setMoneda = function(sinEnviar){
		oCookie.set('idMoneda', $('monedaBooking').value);
		if(!sinEnviar)this.cambiarPaso(pasoActual,false,true);
	}
	this.setReserva = function(idBooking){
		iniciar();
		idBookingActual = idBooking;
		metodo = 'info';
		mostrarBlockeador(true);
		var v = 'idBooking' + SEP_IGUAL + idBooking + SEP_AND;
		v += 'desdeCuenta' + SEP_IGUAL + 1 + SEP_AND;
		enviar(DIR_ROOT + 'requests/BookingMetodos.php?metodo=' + metodo, v);
	}
	var setIntervalosSector = function(){
		if(!ER_FECHA.test($('fechaInicioBook').value)){

			$('contSectorDesde').parentNode.style.display = 'none';	
		}
		else{
			$('contSectorDesde').parentNode.style.display = 'block';	
			if(PRODUCTOS_SETEADOS[productoActual] == 0 && PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual].indice == 0){
				$('fechaSectorDesde').innerHTML = $('fechaInicioBook').value;	
				var diaInicio = $('fechaInicioBook').value;
			}
			else{
				var diaTemp = PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].posicionSectores[PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual].indice].diaComienzo;
				
				$('fechaSectorDesde').innerHTML = sumarDias($('fechaInicioBook').value,diaTemp);

				var diaInicio = sumarDias($('fechaInicioBook').value,diaTemp);
				
				//ACA CONTROLO QUE EL SECTOR ANTERIOR SEA DEL MISMO PRODUCTO O DEL PRODUCTO ANTERIOR
				if(PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual].indice > 0)var sectorAnterior = obtenerSector(productoActual,(PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual].indice-1));
				else{
					//SI ES DEL PRODUCTO ANTERIOR ENTONCES BUSCO EL ULTIMO SECTOR DEL PRODUCTO ANTERIOR
					var prodAnt = PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]-1];
					var sectorAnterior = obtenerSector(prodAnt.idProducto,(prodAnt.posicionSectores.length-1));	

				}
				
				var claveBus = 'busPassesExtra';
				if(!sectorAnterior['busExtra'])claveBus = 'busPasses';
				else if(!sectorAnterior['busPassesExtra'])claveBus = 'busPasses';
				
				if(sectorAnterior[claveBus] && sectorAnterior[claveBus]['idHorario']){
					var hor = sumarHoras(sectorAnterior[claveBus]['hora'],sectorAnterior[claveBus]['duracion'],true);	
					$('fechaSectorDesde').innerHTML += ' ' + hor['horas'] + ':' + hor['minutos'] + 'hs';
				}
				
			}
			
			var dias = 0;
			if(ER_NATURAL_NOCERO.test(PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual].nochesEnSector)){
				dias = parseInt(PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual].nochesEnSector);
			}
			$('fechaSectorHasta').innerHTML = sumarDias(diaInicio,dias);
			
			
			var claveBus = 'busPassesExtra';
			if(!PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['busExtra'])claveBus = 'busPasses';
			else if(!PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['busPassesExtra'])claveBus = 'busPasses';

			
			if(PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual][claveBus] && PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual][claveBus]['idHorario']){
				$('fechaSectorHasta').innerHTML += ' ' + PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual][claveBus]['hora'] + 'hs';
			}
		}
		
	}
	var setSectorTemporal = function(){
		if(productoActual && sectorActual){
			SECTOR_TEMPORAL = PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual];
		}
	}
	var sumarDias = function(s_date,sumar){
		sumar = parseInt(sumar);		
		if(sumar > 0){
			var re_date = /^\s*(\d{1,2})\/(\d{1,2})\/(\d{2,4})\s*$/;
			if (!re_date.exec(s_date))
				return alert ("Invalid date: '" + s_date + "'.\nAccepted format is dd-mm-yyyy.")
			var n_day = Number(RegExp.$1),
				n_month = Number(RegExp.$2),
				n_year = Number(RegExp.$3);
		
			if (n_year < 100)
				n_year += (n_year < this.a_tpl.centyear ? 2000 : 1900);
			if (n_month < 1 || n_month > 12)
				return alert ("Invalid month value: '" + n_month + "'.\nAllowed range is 01-12.");
			var d_numdays = new Date(n_year, n_month, 0);
			if (n_day > d_numdays.getDate())
				return alert("Invalid day of month value: '" + n_day + "'.\nAllowed range for selected month is 01 - " + d_numdays.getDate() + ".");
			var fechTemp = new Date (n_year, n_month - 1, (n_day + sumar));
	
			return f_tcalGenerDate(fechTemp);
		}
		else return s_date;
	}	
	var sumarHoras = function(hora1,hora2,formatoHora){
		//ESTA FUNCION SUMA DOS HORAS Y DEVUELVE EL TOTAL EN UN OBJETO CON HORAS Y MINUTOS LO USO PARA CALCULAR LOS DIAS DE LOS SECTORES
		var part1 = hora1.split(':');
		var part2 = hora2.split(':');
		if(part1[0].substr(0,1) == 0)part1[0] = part1[0].substr(1,part1[0].length);
		if(part1[1].substr(0,1) == 0)part1[1] = part1[1].substr(1,part1[1].length);		
		if(part2[0] != 0 && part2[0].substr(0,1) == 0)part2[0] = part2[0].substr(1,part2[0].length);
		if(part2[1] != 0 && part2[1].substr(0,1) == 0)part2[1] = part2[1].substr(1,part2[1].length);		

		part1[0] = parseInt(part1[0]);
		part1[1] = parseInt(part1[1]);		
		part2[0] = parseInt(part2[0]);
		part2[1] = parseInt(part2[1]);		

		var horas = part1[0] + part2[0];
		if(!ER_NATURAL_NOCERO.test(part2[1]))part2[1] = 0;
		var minutos = part1[1] + part2[1];
		if(minutos >= 60){
			var sumHor = Math.round(minutos/60);
			minutos = (minutos%60);			
			horas += sumHor;
		}
		if(formatoHora){
			while(horas >= 24){
				horas -= 24;
			}
			if(horas < 10)horas = '0' + horas;
			if(minutos < 10)minutos = '0' + minutos;			
		}
		return {'horas' : horas,'minutos' : minutos};		
	}		
	var comprobarIndices = function(indice){
		return ER_NATURAL.test(indice);
	}
	var setearBotonesAlojamiento = function(){

		var i,s;
		//ME FIJO SI EXISTEN ALOJAMIENTOS ENTONCES LOS CONTROLO Y BLOCKEO SI TODOS LOS PASAJEROS YA ESTAN ASIGNADOS
		if($('idsHabitacionesAlojamiento') && $('idsHabitacionesAlojamiento').value != ''){
			var cantidadSeteados = 0;
			var pasajerosSeteados = new Array();
			var sectTemp = PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual];
			for(i in sectTemp['alojamientos']){
				if(comprobarIndices(i)){
					for(s in sectTemp['alojamientos'][i]){
						if(comprobarIndices(s)){
							pasTemp = sectTemp['alojamientos'][i][s].pasajeros.split(',');	
							for(e in pasTemp){
								if(comprobarIndices(e)){
									if(!pasajerosSeteados[pasTemp[e]]){
										pasajerosSeteados[pasTemp[e]] = 1;
										cantidadSeteados ++;
									}
								}
							}
						}
					}
				}
			}
			var partHab = $('idsHabitacionesAlojamiento').value.split(',');
			var clase = 'btnAdd fltL';
			if(cantidadSeteados == PASAJEROS.length)clase = 'btnAddInactivo fltL';
			for(i in partHab){
				if(comprobarIndices(i))$('btnAgregarHabitacion' + partHab[i]).className = clase;
			}
		}
		
	}
	var setearBotonesActividades = function(){
		if($('idsHorariosActividades') && $('idsHorariosActividades').value != ''){
			var i,j,s,actividadesSeteadas = new Array();
			//ACA VEO LOS PASAJEROS ASOCIADOS A ESTA ACTIVIDAD SI YA ESTAN TODOS CONFIGURADOS BLOCKEO LA ACTIVIDAD PARA TODOS LOS HORARIOS
			for(i in PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['actividades']){
				if(comprobarIndices(i)){
					if(PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['actividades'][i][0] && !actividadesSeteadas[PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['actividades'][i][0].idActividad]){
						actividadesSeteadas[PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['actividades'][i][0].idActividad] = 1;
						var arrPas = new Array();
						var pasPerm = new Array();
						var idsHorariosTemp = obtenerHorariosActividad(productoActual,sectorActual,PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['actividades'][i][0].idActividad);
						for(j=0;j<idsHorariosTemp.length;j++){
							var actividad = PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['actividades'][idsHorariosTemp[j]];
							for(s=0;s<actividad.length;s++){
								arrPas[actividad[s].pasajero] = 1;	
							}
							for(s=0;s<PASAJEROS.length;s++){
								if(!arrPas[s])pasPerm.push(s);
							}
						}
						if(pasPerm.length == 0){
							for(s=0;s<idsHorariosTemp.length;s++){					
								if($('btnConfActividad' + idsHorariosTemp[s]))$('btnConfActividad' + idsHorariosTemp[s]).className = 'btnConfInactivo fltL';
							}
						}
										
					}
					if(PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['actividades'][i][0] && PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['actividades'][i][0].idActividad == idActividadActual)idsHorariosTemp.push(i);
				}
			}
		}
	}
	var setValoresDefecto = function(indiceUsuario){
		
		if(!PASAJEROS[indiceUsuario].datos['valoresDefecto']){
			if(VALORES_DEFECTO && $('fechaInicioBook').value != ''){
				var i,j,k,s,m,agregarActividad = false;
				for(i in PRODUCTOS){
					if(comprobarIndices(i)){	
						for(j in PRODUCTOS[i].sectores){
							agregarActividad = false;
							if(VALORES_DEFECTO[j] && VALORES_DEFECTO[j]['actividades']){
								var arrTempUser = new Array();
								for(s in PRODUCTOS[i].sectores[j]['actividades']){
									for(m=0;m<PRODUCTOS[i].sectores[j]['actividades'][s].length;m++){
										if(!arrTempUser[PRODUCTOS[i].sectores[j]['actividades'][s][m]['pasajero']])arrTempUser[PRODUCTOS[i].sectores[j]['actividades'][s][m]['pasajero']] = new Array();
										//arrTempUser[indicePasajero][idActividad]
										arrTempUser[PRODUCTOS[i].sectores[j]['actividades'][s][m]['pasajero']][arrTempUser[PRODUCTOS[i].sectores[j]['actividades'][s][m]['idActividad']]] = 1;
									}
								}
								for(k in VALORES_DEFECTO[j]['actividades']){
									var activ = VALORES_DEFECTO[j]['actividades'][k];
									if(!PRODUCTOS[i].sectores[j]['actividades']){//SI AUN NO HAY ACTIVIDADES CONFIGURADAS ENTONCES LA SI LA PUEDO CONFIGURAR
										PRODUCTOS[i].sectores[j]['actividades'] = new Array();
										agregarActividad = true;
									}
									else{
										if(!PRODUCTOS[i].sectores[j]['actividades'][activ['idHorario']])agregarActividad = true;//SI NO HAY NINGUNA ACTIVIDAD EN ESE HORARIO ENTONCES LA CONFIGURO.
										else{
											if(!arrTempUser[indiceUsuario])agregarActividad = true;
											else if(!arrTempUser[indiceUsuario][activ['idHorario']])agregarActividad = true;
										}
									}
									if(agregarActividad){
										if(!PRODUCTOS[i].sectores[j]['actividades'][activ['idHorario']])PRODUCTOS[i].sectores[j]['actividades'][activ['idHorario']] = new Array();
										var obj = new Object();
										obj.tipoContenido = 'actividad';							
										obj.pasajero = indiceUsuario;
										if(activ['numeroDia'] > 0)obj.dia = parseInt(activ['numeroDia'])-1;
										else obj.dia = 0;
										obj.idActividad = activ['idActividad'];
										obj.idHorario = activ['idHorario'];
										obj.hora = activ['horario'];
										obj.indice = PRODUCTOS[i].sectores[j]['actividades'][activ['idHorario']].length;
																			
										if(j == sectorActual)crearLineaLista(obj,true);
										PRODUCTOS[i].sectores[j]['actividades'][activ['idHorario']].push(obj);							
									}
								}
							}
						}
					}
				}
				PASAJEROS[i].datos['valoresDefecto'] = true;
			}
		}
	}	
	var setLineaAlojamiento = function(obj){

		var i,ret = new Object();
		var pasajeros = '';					
		var partPasajeros = obj.pasajeros.split(',');
		for(i=0;i<partPasajeros.length;i++){
			if(PASAJEROS[partPasajeros[i]].datos['nombre'] == '' && PASAJEROS[partPasajeros[i]].datos['apellido'] == '')pasajeros += LANG['pasajero'] + ' ' + (parseInt(partPasajeros[i])+1);
			else{
				if(PASAJEROS[partPasajeros[i]].datos['nombre'] != '')pasajeros += PASAJEROS[partPasajeros[i]].datos['nombre'] + ' ';
				if(PASAJEROS[partPasajeros[i]].datos['apellido'] != '')pasajeros += PASAJEROS[partPasajeros[i]].datos['apellido'] + ' ';
				pasajeros = pasajeros.substr(0,pasajeros.length-1);
			}
			pasajeros += '<br/>';
		}
				
		
		var diaComienzo = PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].posicionSectores[PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual].indice].diaComienzo;		
		var piso = sumarDias($('fechaInicioBook').value,diaComienzo);
		
		ret.pasajeros = pasajeros.substr(0,pasajeros.length-5);

		var partNoches = obj.noches.split(',');
		var strNoches = '';
		for(i=0;i<partNoches.length;i++){
			strNoches += sumarDias(piso,parseInt(partNoches[i])) + '<br/>';
		}
		
		ret.noches = strNoches.substr(0,strNoches.length-5);

		return ret;
		
			
	}	
	var setearLimitesCalendario = function(idProducto,idSector,tipo){
		var diaComienzo = PRODUCTOS[PRODUCTOS_SETEADOS[idProducto]].posicionSectores[PRODUCTOS[PRODUCTOS_SETEADOS[idProducto]].sectores[idSector].indice].diaComienzo;
		var piso = sumarDias($('fechaInicioBook').value,diaComienzo);
		
		if(tipo == 'addon'){
			oCalAddOn.limiteInferior = piso;
			//SI VA A ESTAR MAS DE UNA NOCHE ENTONCES TIENE MAS POSIBILIDADES DE HACER ESA ACTIVIDAD ESE DIA.
			if(parseInt($('nochesEnSector').value) > 0)oCalAddOn.limiteSuperior = sumarDias(piso,parseInt($('nochesEnSector').value));
			else oCalAddOn.limiteSuperior = piso;
		}
		else if(tipo == 'actividad'){
			oCalActividad.limiteInferior = piso;
			if(parseInt($('nochesEnSector').value) > 0)oCalActividad.limiteSuperior = sumarDias(piso,parseInt($('nochesEnSector').value));
			else oCalActividad.limiteSuperior = piso;
		}
		else if(tipo == 'alojamiento'){
			oCalHabitacion.limiteInferior = piso;
			if(parseInt($('nochesEnSector').value) > 1)oCalHabitacion.limiteSuperior = sumarDias(piso,parseInt($('nochesEnSector').value)-1);
			else oCalHabitacion.limiteSuperior = piso;
		}
		
	}	
	
	//V
	var verComentarios = function(obj){
		var i,trTemp;
		for(i=1;i<$('tBodyListaComentario').childNodes.length;i++){
			$('tBodyListaComentario').removeChild($('tBodyListaComentario').childNodes[i]);
		}
		for(i=0;i<obj.comentarios.length;i++){
			trTemp = crearLineaComentario(obj.comentarios[i]);
			$('tBodyListaComentario').appendChild(trTemp);
		}
	
		MostrarContenido($('popUpListaComentario'));
		Blocker.show();
		if(!$('cerrarPopListaComentario').seteado){
			AddEvent($('cerrarPopListaComentario'),'click',function(){
				OcultarContenido($('popUpListaComentario'));
				Blocker.hide();
			});	
			
			$('cerrarPopListaComentario').seteado = true;
		}
		
	}	
	this.verComentarioBus = function(idBus){
		verComentarios(PRODUCTOS[PRODUCTOS_SETEADOS[productoActual]].sectores[sectorActual]['configBusPass'][idBus]);		
	}
	
	var idBookingActual = 0;
	var solapaActual = null;
	var solapaContenidoActual = null;
	var loaderPasos;
	var blockerPasos;
	var contHTMLPasos;
	var metodo = '';
	var iniciado = false;
	var listo = true;
	var pasoActual;
	var SECTOR_TEMPORAL = new Object();
	var PRODUCTOS = new Array();
	var PRODUCTOS_SETEADOS = new Array();
	var oCalInicioBook = null;
	var oCalHabitacion = null;
	var PASAJEROS = new Array();
	var PASAJEROS_POSICION = new Array();
	var SELECT_ADD_ON = '';
	var indCalActual = null;
	var indiceAddOn = null;
	var idAddonActual = null;
	var idActividadActual = null;	
	var HORARIOS_ADD_ON = new Array();
	var productoActual = null;
	var sectorActual = null;
	var idHabitacionActual = 0;
	var idAlojamientoActual = 0;
	var erroresRegistro = 0;
	var blockeador = false;
	var idProductoDefecto = 0;
	var pasajeroActual = null;
	var tipoConfirm = '';
	var contenidoActual = null;
	var listoPasajero = true;
	var VALORES_DEFECTO = null;
	var OBJ_TEMP;
	var fechaModificacion = 0;
	var idBusActual = 0;
	var contenidoActual = null;
	var usuarioAgregado = false;
	var passTypePlanner = null;
	var passTypeFlexi = null;
	var passType = null;
	
	var oErrorBook = new ErrorBook();
	
	var req;
}
