function recalcularPreciosVentaCruzada(form,precioBase,precioBaseEuro,opcionTransfer,calcularPrecios){
	if(calcularPrecios==1){
		valor = new Array();
		valor1 = new Array();
		form.precioTotal.value = parseFloat(precioBase) + parseFloat(form["precioTransfer"+opcionTransfer].value);
		valor = form.precioTotal.value.split(".");
		valor[1] = valor[1].substring(0,2);
		form.precioTotal.value = valor[0]+"."+valor[1];

		form.precioTotalEuro.value = parseFloat(precioBaseEuro) + parseFloat(form["precioTransferEuro"+opcionTransfer].value);
		valor1 = form.precioTotalEuro.value.split(".");
		valor1[1] = valor1[1].substring(0,2);
		form.precioTotalEuro.value = valor1[0]+"."+valor1[1];
	}else{
		form.precioTotal.value = parseFloat(precioBase);
		form.precioTotalEuro.value = parseFloat(precioBaseEuro);
	}
}

//Cambia la visibilidad de un objeto. Si está visible lo pone como oculto y viceversa
function mostrarOcultarCapa(capa){
	objeto = document.getElementById(capa);
	if(objeto.style.visibility=="hidden"){
		mostrarOcultar(objeto,"visible");
	}else if(objeto.style.visibility=="visible"){
		mostrarOcultar(objeto,"hidden");
	}
	else if(objeto.style.display=="none"){
		mostrarOcultar(objeto,"block");
	}else if(objeto.style.display=="block"){
		mostrarOcultar(objeto,"none");
	}
}

//Esta función se encarga de ocultar o visualizar el obtejo pasado como parámetro
function mostrarOcultar(objeto,estado){
	if(estado=="hidden" || estado=="visible"){
	    objeto.style.visibility=estado;
	}else if(estado=="block" || estado=="none"){
	    objeto.style.display=estado;
    }
}

// funcion para mostrar el numero de hoteles necesario
// divId, es el numero de habitaciones que elije el usuario al mover el select
// numero, es el numero de habitaciones seleccionadas de la pagina anterior
function showDiv(divId,numero)
{
	if (divId == 0) {
		for(x=0; x<numero; x++){
			document.getElementById('itemAlojamiento'+x).style.visibility = 'visible';
		}
	}
	else{
		for(x=0; x<4; x++){
			document.getElementById('itemAlojamiento'+x).style.visibility = 'hidden';
		}
		for(x=0; x<divId; x++){
			document.getElementById('itemAlojamiento'+x).style.visibility = 'visible';
		}
	}
}

// funcion para pedir las edades de los niños
// divId, es el numero de niños seleccionados
// numero, es el numero de niños seleccionadas de la pagina anterior

function showChild(divId,numero)
{

}

//Esta función se encarga de ocultar o visualizar los alojamientos
function mostrarOcultarAlojamiento(form,totalItemsAlojamiento,cambioFormulario){
    numItemAlojamiento = form.numItemsAlojamiento.options[form.numItemsAlojamiento.selectedIndex].value;
    for(x=1; x < numItemAlojamiento; x++){
    	mostrarOcultar(document.getElementById("itemAlojamiento"+x),'visible');
    }
    for(;x<totalItemsAlojamiento;x++){
    	mostrarOcultar(document.getElementById("itemAlojamiento"+x),'hidden');
    }

	//Indico q se ha producido un cambio en los datos del formulario
	if(cambioFormulario==1){
		comprobarCambioDatosForm(form);
	}
}

//Esta funcion pasa al paso 3 en los alojamientos
function siguientePaso3Alojamiento(form,itemAlojamiento,url,tAlojamiento){
	document.forms.formulario.tipoAlojamiento.value=tAlojamiento;
	document.forms.formulario.indiceItemAlojamiento.value=itemAlojamiento;
	siguientePaso(document.forms.formulario,url);
}

//Esta función se encarga de ir a la url pasada como parámetro
function siguientePaso(form,url,romperFrame){
	form.action = url;
	if(romperFrame){
		form.target='_top';
	}
	form.submit();
}

//Esta funcion solo muestra la descripcion de una abreviatura
function mostrarMensaje(mensaje){
	alert(mensaje);
}

//Esta funcion se encarga de hacer la paginación
function cambiarPagina(form,numPagina,paso){
	document.forms.formulario.pagina.value=numPagina;
	document.forms.formulario.action=paso;
	document.forms.formulario.submit();
}

//Esta funcion simplemente comprueba q se realiza un cambio en los datos del
//formulario
function comprobarCambioDatosForm(form){
	form.datosFormCambio.value=1;
}

function pasoAnterior(form,url){
	form.action=url;
 	form.submit();
}

function pasoAnteriorHistoryBack(num){
	history.back(num);
}

function openWindow(ancho,alto,ruta){
	ventana = window.open(ruta,"Ficha","scrollbars=yes,toolbar=no,location=no,directories=no,status=no,resizable=no,copyhistory=no,width="+ancho+",height="+alto+",top=100,left=100,");
    ventana.focus();
    document.returnValue = false;
}

function confirmarModificacion(idioma){
	if(idioma=="En"){
		if(window.confirm("Dou you really want to make the change?")){
			document.forms.formulario.accion.value="modificar";
			document.forms.formulario.submit();
		}
	 }else if(idioma=="Es"){
		if(window.confirm("Está seguro de realizar el cambio?")){
			document.forms.formulario.accion.value="modificar";
			document.forms.formulario.submit();
		}
	 }
}

function cancelarReserva(idioma){
	if(idioma=="En"){
		if(window.confirm("Do you really want to cancel your booking?")){
			document.forms.formulario.accion.value="cancelar";
			document.forms.formulario.submit();
		}
	 }else if(idioma=="Es"){
		if(window.confirm("Realmente quiere cancelar su reserva?")){
			document.forms.formulario.accion.value="cancelar";
			document.forms.formulario.submit();
		}
	 }
}

function cambiarIdioma(){
	document.forms["formIdioma"].action=document.forms.formIdioma.idioma.options[document.forms.formIdioma.idioma.selectedIndex].value;
	document.forms["formIdioma"].submit();
}
function siguientePasoHotel(i,numeroHab,numeroReg,url){
	document.forms.formulario.indice.value=i;
	document.forms.formulario.numHab.value=numeroHab;
	document.forms.formulario.numReg.value=numeroReg;
	document.forms.formulario.action=url;
	document.forms.formulario.submit();
}

function mostrarMapaInicialTraslado(nombreFormulario,imagen){
	objForm = document.forms[nombreFormulario];
	document.getElementById('mapaMichelin').src = imagen;
	objForm.accionesSobreMapa.value="";
	objForm.valoresAccionesSobreMapa.value="";
	document.getElementById('mostrarMapaInicial').innerHTML = "";
}

// function externalLinks, sirve para hacer target top
// solo hay que poner en los href un rel="external"
// es necesario ya que el xhtml 1.0 no admite el target=""
function externalLinks() {
	if (!document.getElementsByTagName){
		return;
	}
	var anchors = document.getElementsByTagName("a");
	for (var i=0; i<anchors.length; i++) {
		var anchor = anchors[i];
		if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external"){
			anchor.target = "_blank";
		}
	}
}

//Esta función se encarga de ir a la url pasada como parámetro
function enviarPregunta(form,url){
  form.resolucion.value = screen.width + " x " + screen.height;
	form.resolucion2.value = document.body.clientWidth + " x " + document.body.clientHeight;
	form.color.value=screen.colorDepth;
	form.boton.value = "Enviar";
	siguientePaso(form,url);
}

//Cierra la sesión del mybooking
function finalizarSesion(){
	document.forms.formulario.sesionShuttle.value="end";
	document.forms.formulario.action="login.php";
	document.forms.formulario.submit();
}


/**
 * Formatea la hora a dos dígitos
 */
function formatearHora(hora){
	if(hora<10 && hora.length==1){
		return "0"+hora
	}
	return hora;
}

/**
 * Formatea los minutos a dos dígitos
 */
function formatearMinutos(minutos){
	if(minutos<10 && minutos.length==1){
		return "0"+minutos
	}
	return minutos;
}

function getAmPm(hora){
	if(hora<12){
		return "am";
	}else{
		return "pm";
	}
}

function explicacionHora(hora){

	vHora = hora.split(":");
	valorHora = vHora[0];

	temp = getAmPm(hora).toUpperCase();
	if(valorHora==0){
		temp=temp+" ("+tradMedianoche+")";
	}else if(valorHora>=0 && valorHora <=7){
		temp=temp+" ("+tradTempranasHoras+")";
	}else if(valorHora>=8 && valorHora <12){
		temp=temp+" ("+tradManana+")";
	}else if(valorHora==12){
		temp=temp+" ("+tradMediodia+")";
	}else if(valorHora>=12 && valorHora <17){
		temp=temp+" ("+tradTarde+")";
	}else if(valorHora>=17 && valorHora <20){
		temp=temp+" ("+tradMediaTarde+")";
	}else if(valorHora>=20 && valorHora <=23){
		temp=temp+" ("+tradNoche+")";
	}
	return temp;
}

function insertarImagenEnCapaProcesando(frase){
	var capaProc = document.getElementById("procesando");

	//Controlo q no me aparezcan más de un relojito o frase
	if(!capaProc.hasChildNodes()){
		//Creo la imagen q contendrá el gif animado
		var img = document.createElement("img");
		img.src = "/img/elementos/reloj.gif";
		img.border=0;
		img.className = "procesando2";
		capaProc.appendChild(img);
	}
}

/**
 * Este método se encarga de borrar la imagen del reloj una vez se ha acabado
 * de procesar la petición
 */
function eliminarImagenEnCapaProcesando(){

	var capaProc = document.getElementById("procesando");
	eliminarObjetosAnteriores(capaProc);
}

function eliminarObjetosAnteriores(objetoPadre){
	//Borro la última etiqueta
	while(objetoPadre.hasChildNodes()){
		objetoPadre.removeChild(objetoPadre.lastChild);
	}
}

/**
 * Método q se encarga de activar/desactivar todos los checkbox de una tabla
 * @param idTablaContenido. Tabla donde están los check box
 * @param idCheckPrincipal. Check box principal, con el q se elegirá el estado
 *							de todos los checks de la tabla
 * @param etiqueta		  . Etiqueta con el identificador de los check a modificar
 */
function activarRegistros(idTablaContenido, idCheckPrincipal, etiqueta){

	//Obtengo todas las filas de la tabla
	var arrayFilas = $(idTablaContenido).getElementsByTagName("tr");

	//Ahora voy a recorrer todas las filas de la tabla y borrar las seleccionadas
	for(x=1; x<arrayFilas.length;x++){

		$(etiqueta+arrayFilas[x].id).checked = $(idCheckPrincipal).checked;
	}
}

/**
 * Muestra popup para conocer la direccion concreta y pone una fina capa sobre el paso 3
 * Sirve tanto para mostrar como para ocultar
 */
function showHidePaso3(modo, numServicio) {

switch(modo)
{
	case 1:	/* envio desde el paso 3 al popup */
		var capaTipoTela = document.getElementById('capaTipoTela'+numServicio);
		var alerta = document.getElementById('alerta'+numServicio);
		var restaAncho = "350";
		var restaAlto = "250";
		break;
	case 2:	/* pulsando al botón cancelar */
		limpiarDatosBusquedaDireccionesPrivadas();
		var capaTipoTela = window.top.document.getElementById('capaTipoTela'+numServicio);
		var alerta = window.top.document.getElementById('alerta'+numServicio);
		var restaAncho = "350";
		var restaAlto = "250";
		break;
	case 3:	/* pulsando el boton continuar */
		var capaTipoTela = window.top.document.getElementById('capaTipoTela'+numServicio);
		var alerta = window.top.document.getElementById('alerta'+numServicio);
		var restaAncho = "350";
		var restaAlto = "250";
		break;
	case 4: /* pulsando el enlace de login en la home*/
		var capaTipoTela = window.top.document.getElementById('capaTipoTela1');
		var alerta = window.top.document.getElementById('alertaLogin');
		var restaAncho = "150";
		var restaAlto = "200";
		break;
	default:
}

	capaTipoTela.style.width = document.body.clientWidth+ "px";
	if (navigator.appName == "Netscape") {
		capaTipoTela.style.height = document.body.parentNode.offsetHeight+"px";
	}else{
		capaTipoTela.style.height = document.body.offsetHeight+"px";
	}



	var mitadAncho = (document.body.clientWidth/2)-restaAncho;
	var mitadAlto = (screen.height/2)-restaAlto;


	alerta.style.top = mitadAlto + "px";
	alerta.style.left = mitadAncho + "px";


	if (capaTipoTela.style.display == "block") {
		capaTipoTela.style.display = "none";
		alerta.style.display = "none";
	}
	else {
		capaTipoTela.style.display = "block";
		alerta.style.display = "block";
	}
}

String.prototype.removeAccents = function ()
{
	var __r = {
			'Á':'A','À':'A','Â':'A','Ã':'A','Ä':'A','Å':'A','Æ':'E',
			'È':'E','É':'E','Ê':'E','Ë':'E',
			'Í':'I','Ì':'I','Î':'I','Ï':'I',
			'Ò':'O','Ó':'O','Ô':'O','Ö':'O','Ø':'O',
			'Ù':'U','Ú':'U','Û':'U','Ü':'U',
			'Ç':'C',
			'Ð':'D',
			'Ñ':'N',
			'Ý':'Y'};

	return this.replace(/[ÁÀÂÃÄÅÆÈÉÊËÍÌÎÏÒÓÔÖØÙÚÛÜÑÇÐÝ]/gi, function(m){
		var ret = __r[m.toUpperCase()];

		if (m === m.toLowerCase())
			ret = ret.toLowerCase();

		return ret;
	});
};