﻿// BUSCADOR PAQUETES

function ValidarSeleccion(sender,args)
{
    var cmbFechas = buscarCombo('cmbFechas');
    if (cmbFechas.value != 0)
    {
        args.IsValid = true;
        return;
    }
    else
    {
        args.IsValid = false;
        return;
    }
}

// BUSCADOR SERVICIOS TURÍSTICOS

function ValidarTipoServicioTuristico(sender,args)
{
    var cmbTipo = buscarCombo('cmbTipo');
    if (cmbTipo.value > 0)
    {
        args.IsValid = true;
        return;
    }
    else
    {
        args.IsValid = false;
        return;
    }
}

// BUSCADOR DESTINO

function ValidarCiudad(sender,args)
{
    var cmbPoblacion = buscarCombo('cmbPoblacion');
    if (cmbPoblacion.value > 0)
    {
        args.IsValid = true;
        return;
    }
    else
    {
        args.IsValid = false;
        return;
    }
}

function ValidarDestino(sender,args)
{
    if (hdnDestino.value > 0)
    {
        args.IsValid = true;
        return;
    }
    else
    {
        args.IsValid = false;
        return;
    }
}

function ValidarDestinoPeticion(sender,args)
{
    if ((hdnDestino.value > 0) || (txtDestino.value != ''))
    {
        args.IsValid = true;
        return;
    }
    else
    {
        args.IsValid = false;
        return;
    }
}

function ValidarSectorPoblacion(sender,args)
{
    if (hdnDestino.value != '0')
    {
        args.IsValid = true;
        return;
    }
    else
    {
        args.IsValid = false;
        return;
    }
}

function switchCapa(param)
{
    var contenedor;
	contenedor = document.getElementById(param);

    if (contenedor.style.visibility == 'hidden')
    {
       	contenedor.style.visibility = 'visible';
	    contenedor.style.display = 'block'; 
    }
    else
    {
	    contenedor.style.visibility = 'hidden';
	    contenedor.style.display = 'none';
    }
}

function switchCapaEditor(param)
{
    var contenedor;
	contenedor = document.getElementById(param);

    if (contenedor.style.visibility == 'hidden')
    {
       	contenedor.style.visibility = 'visible';
	    contenedor.style.display = 'block'; 
    }
    else
    {
	    contenedor.style.visibility = 'hidden';
	    contenedor.style.display = 'none';
    }
}

function CargandoDestino(sender, e)
{
    imgCargando.style.display = 'block';
}

function DestinoCargado(sender, e)
{
    imgCargando.style.display = 'none';
}

function SeleccionDestino(sender, e)
{
    var cmbPoblacion = buscarCombo('cmbPoblacion');
    setSelectedIndex(cmbPoblacion,0);
    hdnDestino.value = e.get_value();
    //Eliminamos el pais
    txtDestino.value = txtDestino.value.substring(0,txtDestino.value.lastIndexOf('(')-1);
    if(typeof(OnChangePoblacionAvanzado) == 'function') OnChangePoblacionAvanzado();
    //Eliminamos la zona
    //txtDestino.value = txtDestino.value.substring(0,txtDestino.value.lastIndexOf('::')-1);
    //if(typeof(OnChangePoblacionAvanzado) == 'function') OnChangePoblacionAvanzado();
}
function SeleccionDestinoAlojamiento(sender, e)
{
    var cmbPoblacion = buscarCombo('cmbPoblacion');
    setSelectedIndex(cmbPoblacion,0);
    hdnDestino.value = e.get_value();
    //Eliminamos el pais
    txtDestino.value = txtDestino.value.substring(0,txtDestino.value.lastIndexOf('(')-1);
    if(typeof(OnChangePoblacionAvanzado) == 'function') OnChangePoblacionAvanzado();
    //Eliminamos la zona
    //txtDestino.value = txtDestino.value.substring(0,txtDestino.value.lastIndexOf('::')-1);
    //if(typeof(OnChangePoblacionAvanzado) == 'function') OnChangePoblacionAvanzado();
}

function onClientPopulated(sender, e)
{
    var completionList = $find("bhvDestino").get_completionList();
    var algunDestacado = false;
    for(i=0;i<completionList.childNodes.length;i++)
    {
        var _value = completionList.childNodes[i]._value;
        var IDPoblacion = _value[0];
        var Poblacion = _value[1];
        var Pais = _value[2].toUpperCase();
        var Destacado = _value[3];

        // Para marcar en negrita lo que llevamos escrito
        var prefix = $find("bhvDestino")._currentPrefix.toLowerCase();
        var sValue = Poblacion.toLowerCase();
        if (sValue.indexOf(prefix) != -1)
        {
            var fstr = Poblacion.substring(0, sValue.indexOf(prefix));
            var pstr = Poblacion.substring(fstr.length, fstr.length + prefix.length);
            var estr = Poblacion.substring(fstr.length + prefix.length, Poblacion.length);
            Poblacion = fstr + '<span style="color:red;">' + pstr + '</span>' + estr;
        }

        // Cambiamos el contenido
        if (!Destacado)
        {
            var barra = '';
            if (algunDestacado)
            {
                // Insertamos la barra de separación
                barra = ' style="border-top:dotted 1px #000000;"';
                // No la volvemos a insertar
                algunDestacado = false;
            }
            completionList.childNodes[i].innerHTML = '<table cellpadding="0" cellspacing="3" border="0" width="100%"' + barra +'><tr><td>' + Poblacion + '</td></tr><tr><td>' + Pais + '</td></tr></table>';
        }
        else
        {
            algunDestacado = true;
            completionList.childNodes[i].innerHTML = '<table cellpadding="0" cellspacing="3" border="0" width="100%"><tr><td><b>' + Poblacion + '</b></td></tr><tr><td><b>' + Pais + '</b></td></tr></table>';
        }
    }
    // Ocultamos el cargando
    DestinoCargado(sender, e);
}

function SeleccionDestinoExt(sender, e)
{
    var index = $find("bhvDestino")._selectIndex;
    if(index != -1)
    {
        var _value = $find("bhvDestino").get_completionList().childNodes[index]._value;
        var IDPoblacion = _value[0];
        var Poblacion = _value[1];
        var Pais = _value[2].toUpperCase();
        var Destacado = _value[3];

        // Valor en el textbox
        $find("bhvDestino").get_element().value = Poblacion;

        // Limpiamos el combo
        var cmbPoblacion = buscarCombo('cmbPoblacion');
        setSelectedIndex(cmbPoblacion,0);

        // Valor en el hidden
        hdnDestino.value = IDPoblacion;
    }
    // Opciones avanzadas si procede
    if(typeof(OnChangePoblacionAvanzado) == 'function') OnChangePoblacionAvanzado();
}

function SeleccionPoblacionCombo(sender)
{
    hdnDestino.value = sender.value;
    if(typeof(txtDestino) != "undefined") txtDestino.value = '';
    if(typeof(OnChangePoblacionAvanzado) == 'function') OnChangePoblacionAvanzado();
}

function SeleccionPoblacionSectorCombo(sender)
{
    if (sender.value == '0') {
        hdnDestino.value = '0';
    }
    else{
        var strSeparado = sender.value.split(',');
        hdnDestino.value = strSeparado[1];
    }
    //if(typeof(txtDestino) != "undefined") txtDestino.value = '';
    if(typeof(OnChangePoblacionAvanzado) == 'function') OnChangePoblacionAvanzado();
}

function SeleccionAlojamientosCombo(sender) {
    hdnAlojamientos.value = sender.value;
}

function Limpiar(e)
{
    var keyCode = (document.all) ? e.keyCode : e.which;
    var antDestino = hdnDestino.value;
    if (keyCode != 13) hdnDestino.value = '0';

    if (antDestino != '0')
    {
        if(typeof(OnChangePoblacionAvanzado) == 'function') OnChangePoblacionAvanzado();
    }
}
// BUSCADOR ALOJAMIENTO
function CargandoAlojamiento(sender, e)
{
    imgCargandoAlojamiento.style.display = 'block';
}

function AlojamientoCargado(sender, e)
{
    imgCargandoAlojamiento.style.display = 'none';
}

function SeleccionAlojamiento(sender, e)
{
}
function LimpiarAlojamiento(e)
{
}
// BUSCADOR FECHAS

function fechasValidarIntervaloFechas(sender,args)
{
    var fentrada = $find("startDate").get_selectedDate();
    var fsalida = $find("endDate").get_selectedDate();
    var cmbNumNoches = buscarCombo('cmbNumNoches');

    if ((fentrada != null) && (fsalida != null))
    {
        var noches = diffFechas(fentrada,fsalida);
        if (noches>maxValueCombo(cmbNumNoches))
        {
            args.IsValid = false;
            return;
        }
    }
    args.IsValid = true;
    return;
}

function fechasValidarFechasSalidaMayor(sender,args)
{
    var fentrada = $find("startDate").get_selectedDate();
    var fsalida = $find("endDate").get_selectedDate();

    if ((fentrada != null) && (fsalida != null))
    {
        if (fentrada>=fsalida)
        {
            args.IsValid = false;
            return;
        }
    }
    args.IsValid = true;
    return;
}

function fechasValidarFechasDevolucionMayor(sender,args)
{
    var fentrada = $find("startDate").get_selectedDate();
    var fsalida = $find("endDate").get_selectedDate();

    if ((fentrada != null) && (fsalida != null))
    {
        if (fentrada>fsalida)
        {
            args.IsValid = false;
            return;
        }
    }
    args.IsValid = true;
    return;
}

function fechasValidarFechasEntradaAnt(sender,args)
{
    var fentrada = $find("startDate").get_selectedDate();

    if (fentrada != null)
    {
        if (fentrada < hoy())
        {
            args.IsValid = false;
            return;
        }
    }
    args.IsValid = true;
    return;
}

function fechasValidarFechasOblig(sender,args)
{
    var fentrada = $find("startDate").get_selectedDate();
    var fsalida = $find("endDate").get_selectedDate();

    if ((fentrada != null) && (fsalida != null))
    {
        args.IsValid = true;
        return;
    }
    else
    {
        args.IsValid = false;
        return;
    }
}

function fechasValidarFechasObligTextBox(sender,args)
{
    var fentrada = buscarObjeto("txtFechaEntrada",'text');
    
    if (fentrada.value != "")
    {
        args.IsValid = true;
        return;
    }
    else
    {
        args.IsValid = false;
        return;
    }
}

function fechasValidarFechasObligTextBox2(sender,args)
{
    var fentrada = buscarObjeto("txtFechaEntrada",'text');
    var fsalida = buscarObjeto("txtFechaSalida",'text');
    
    if ((fentrada.value != "") && (fsalida.value != ""))
    {
        args.IsValid = true;
        return;
    }
    else
    {
        args.IsValid = false;
        return;
    }
}

function fechasValidarFechasEntradaAntTextBox(sender,args)
{
    var fentrada = buscarObjeto("txtFechaEntrada",'text');

    if (fentrada != null)
    {
        if (stringToDate(fentrada.value) < hoy())
        {
            args.IsValid = false;
            return;
        }
    }
    args.IsValid = true;
    return;
}

function fechasValidarFechasSalidaMayorIgualTextBox(sender,args)
{
    var fentrada = buscarObjeto("txtFechaEntrada",'text');
    var fsalida = buscarObjeto("txtFechaSalida",'text');

    var FechaEntrada = new Date(fentrada.value.replace(/^(\d{2})\/(\d{2})\/(\d{4})$/, "$2/$1/$3"));
    var FechaSalida = new Date(fsalida.value.replace(/^(\d{2})\/(\d{2})\/(\d{4})$/, "$2/$1/$3"));

    if ((FechaEntrada != null) && (FechaSalida != null))
    {
        if (FechaEntrada > FechaSalida)
        {
            args.IsValid = false;
            return;
        }
    }
    args.IsValid = true;
    return;
}

function fechasValidarFechasSalidaMayorTextBox(sender,args)
{
    var fentrada = buscarObjeto("txtFechaEntrada",'text');
    var fsalida = buscarObjeto("txtFechaSalida",'text');

    var FechaEntrada = new Date(fentrada.value.replace(/^(\d{2})\/(\d{2})\/(\d{4})$/, "$2/$1/$3"));
    var FechaSalida = new Date(fsalida.value.replace(/^(\d{2})\/(\d{2})\/(\d{4})$/, "$2/$1/$3"));

    if ((FechaEntrada != null) && (FechaSalida != null))
    {
        if ((FechaEntrada) >= (FechaSalida))
        {
            args.IsValid = false;
            return;
        }
    }
    args.IsValid = true;
    return;
}

function fechasOnChangeNoches()
{
    var cmbNumNoches = buscarCombo('cmbNumNoches');
    var noches = cmbNumNoches.value;
    var fentrada = $find("startDate").get_selectedDate();

    if ((fentrada != null) && (noches>0))
    {
        $find("endDate").set_selectedDate(addFecha(fentrada,noches));
    }
}

function fechasOnBlurFechaEntrada(param)
{
    var fecha = param.value.replace(/_/g,"");
    var array = fecha.split("/")
    if (array[2].length == 2)
    {
        array[2] = "20" + array[2];
    }
    if (array[2].length == 0)
    {
        array[2] = hoy().getYear();
    }
    fecha = array[0]+"/"+array[1]+"/"+array[2];
    if (isDate(fecha))
    {
        var fentrada = new Date(array[2],array[1]-1,array[0]);
        var fsalida = $find("endDate").get_selectedDate();
        var cmbNumNoches = buscarCombo('cmbNumNoches');

        if ((fentrada != null) && (fsalida != null))
        {
            var noches = diffFechas(fentrada,fsalida);
            if ((noches<=0) || (noches>maxValueCombo(cmbNumNoches)))
            {
                $find("endDate").set_selectedDate(addFecha(fentrada,1));
                setSelectedValue(cmbNumNoches,parseInt(1));
            }
            else
            {
                setSelectedValue(cmbNumNoches,noches);
            }
        }

        if ((fentrada != null) && (fsalida == null))
        {
            $find("endDate").set_selectedDate(addFecha(fentrada,1));
            setSelectedValue(cmbNumNoches,parseInt(1));
        }
    }
}

function fechasOnBlurFechaSalida(param)
{
    var fecha = param.value.replace(/_/g,"");
    var array = fecha.split("/")
    if (array[2].length == 2)
    {
        array[2] = "20" + array[2];
    }
    if (array[2].length == 0)
    {
        array[2] = hoy().getYear();
    }
    fecha = array[0]+"/"+array[1]+"/"+array[2];
    if (isDate(fecha))
    {
        var fentrada = $find("startDate").get_selectedDate();
        var fsalida = new Date(array[2],array[1]-1,array[0]);
        var cmbNumNoches = buscarCombo('cmbNumNoches');

        if ((fentrada != null) && (fsalida != null))
        {
            var noches = diffFechas(fentrada,fsalida);
            if ((noches<=0) || (noches>maxValueCombo(cmbNumNoches)))
            {
                $find("endDate").set_selectedDate(addFecha(fentrada,1));
                setSelectedValue(cmbNumNoches,parseInt(1));
            }
            else
            {
                setSelectedValue(cmbNumNoches,noches);
            }
        }
    }
}

function fechasActualizarNoches(sender, args)
{
    var fentrada = $find("startDate").get_selectedDate();
    var fsalida = $find("endDate").get_selectedDate();
    var cmbNumNoches = buscarCombo('cmbNumNoches');

    if ((fentrada != null) && (fsalida != null))
    {
        var noches = diffFechas(fentrada,fsalida);
        if ((noches<=0) || (noches>maxValueCombo(cmbNumNoches)))
        {
            //setSelectedIndex(cmbNumNoches,0);
            $find("endDate").set_selectedDate(addFecha(fentrada,1));
            setSelectedValue(cmbNumNoches,parseInt(1));
        }
        else
        {
            setSelectedValue(cmbNumNoches,noches);
        }
    }

    if ((fentrada != null) && (fsalida == null))
    {
        $find("endDate").set_selectedDate(addFecha(fentrada,1));
        setSelectedValue(cmbNumNoches,parseInt(1));
    }
}

function fechasActualizarNochesIgual(sender, args)
{
    var fentrada = $find("startDate").get_selectedDate();
    var fsalida = $find("endDate").get_selectedDate();
    var cmbNumNoches = buscarCombo('cmbNumNoches');

    if ((fentrada != null) && (fsalida != null))
    {
        var noches = diffFechas(fentrada,fsalida);
        if ((noches<=0) || (noches>maxValueCombo(cmbNumNoches)))
        {
            //setSelectedIndex(cmbNumNoches,0);
            $find("endDate").set_selectedDate(addFecha(fentrada,0));
            setSelectedValue(cmbNumNoches,parseInt(0));
        }
        else
        {
            setSelectedValue(cmbNumNoches,noches);
        }
    }

    if ((fentrada != null) && (fsalida == null))
    {
        $find("endDate").set_selectedDate(addFecha(fentrada,0));
        setSelectedValue(cmbNumNoches,parseInt(0));
    }
}

function fechasOnBlurFechaEntrega(param)
{
    var fecha = param.value.replace(/_/g,"");
    var array = fecha.split("/")
    if (array[2].length == 2)
    {
        array[2] = "20" + array[2];
    }
    if (array[2].length == 0)
    {
        array[2] = hoy().getYear();
    }
    fecha = array[0]+"/"+array[1]+"/"+array[2];
    if (isDate(fecha))
    {
        var fentrada = new Date(array[2],array[1]-1,array[0]);
        var fsalida = $find("endDate").get_selectedDate();

        if ((fentrada != null) && (fsalida != null))
        {
            var noches = diffFechas(fentrada,fsalida);
            if ((noches<=0))
            {
                $find("endDate").set_selectedDate(addFecha(fentrada,1));
            }
        }
    }
}

function fechasOnBlurFechaDevolucion(param)
{
    var fecha = param.value.replace(/_/g,"");
    var array = fecha.split("/")
    if (array[2].length == 2)
    {
        array[2] = "20" + array[2];
    }
    if (array[2].length == 0)
    {
        array[2] = hoy().getYear();
    }
    fecha = array[0]+"/"+array[1]+"/"+array[2];
    if (isDate(fecha))
    {
        var fentrada = $find("startDate").get_selectedDate();
        var fsalida = new Date(array[2],array[1]-1,array[0]);

        if ((fentrada != null) && (fsalida != null))
        {
            var noches = diffFechas(fentrada,fsalida);
            if ((noches<=0))
            {
                $find("endDate").set_selectedDate(addFecha(fentrada,0));
            }
        }
    }
}

// BUSCADOR SRD 1001

function compruebaFechas(objeto) {
	s_FormateaFecha(objeto);
	//sumarDiasAFecha(document.buscar_hoteles.dt_entrada.value,document.buscar_hoteles.txt_num_noches.value,document.buscar_hoteles.dt_salida);
}

function s_FormateaFecha(campo_) {
	var valor_anterior;
	valor_anterior = campo_.value;
	if (valor_anterior!=''){
		if (campo_.value.length == 6 && campo_.value.indexOf('/')==-1) {
			campo_.value = campo_.value.substr(0,2) + '/' + campo_.value.substr(2,2) + '/20' + campo_.value.substr(4,2);
		}
		if (campo_.value.length == 8 && campo_.value.indexOf('/')==-1) {
			campo_.value = campo_.value.substr(0,2) + '/' + campo_.value.substr(2,2) + '/' + campo_.value.substr(4,4);
		}
		
		if (f_ValFechas(campo_.value)){
			
		} else {
			alert('La fecha introducida no es correcta.');
			campo_.value = valor_anterior;
			campo_.focus();
		}
	}
}

function f_ValFechas(caja){ 
   if (caja){  
      borrar = caja;
      if ((caja.substr(2,1) == "/") && (caja.substr(5,1) == "/")){      
         for (i=0; i<10; i++){	
            if (((caja.substr(i,1)<"0") || (caja.substr(i,1)>"9")) && (i != 2) && (i != 5)){
               borrar = '';
               break;  
			}  
         }
	     if (borrar){ 
	        a = caja.substr(6,4);
		    m = caja.substr(3,2);
		    d = caja.substr(0,2);
		    if((a < 1900) || (a > 2050) || (m < 1) || (m > 12) || (d < 1) || (d > 31))
		       borrar = '';
		    else{
		       if((a%4 != 0) && (m == 2) && (d > 28))	   
		          borrar = ''; // Año no viciesto y es febrero y el dia es mayor a 28
			   else{
		          if ((((m == 4) || (m == 6) || (m == 9) || (m==11)) && (d>30)) || ((m==2) && (d>29)))
			         borrar = '';	      				  	 
			   }
		    }
         }
      }    			
	  else
	     borrar = '';
	  if (borrar == '') {
	     return false;
	  } else {
	  	 return true;
	  }
   }
}

// BUSCADOR OCUPACION

function ocupacionValidarOcupacion(sender,args)
{
    for (var i=1;i<=4;i++)
    {
        if (i==1)
        {
            if (!ocupacionValidarOcupacionFila(i))
            {
                args.IsValid = false;
                return;
            }
        }
        else
        {
            var fila = ocupacionGetLinea(i);
            if (fila.style.visibility == 'visible')
            {
                if (!ocupacionValidarOcupacionFila(i))
                {
                    args.IsValid = false;
                    return;
                }
            }
        }
    }
    args.IsValid = true;
}

function ocupacionValidarOcupacionFila(param)
{
    var cmbAdultos = buscarCombo('cmbNumAdu'+param);
    var cmbNinos = buscarCombo('cmbNumNin'+param);
    if ((cmbAdultos.value<=0) && (cmbNinos.value<=0))
    {
        return false;
    }
    else
    {
        return true;
    }
}

function ocupacionValidarOcupacionMin(sender,args)
{
    var param = 1;
    var cmbAdultos = buscarCombo('cmbNumAdu'+param);
    var cmbNinos = buscarCombo('cmbNumNin'+param);
    if ((cmbAdultos.value<=0) && (cmbNinos.value<=0))
    {
        args.IsValid = false;
        return;
    }
    else
    {
        args.IsValid = true;
        return;
    }
}

function ocupacionValidarEdades(sender,args)
{
    for (var i=1;i<=4;i++)
    {
        if (i==1)
        {
            if (!ocupacionValidarEdadesFila(i))
            {
                args.IsValid = false;
                return;
            }
        }
        else
        {
            var fila = ocupacionGetLinea(i);
            if (fila.style.visibility == 'visible')
            {
                if (!ocupacionValidarEdadesFila(i))
                {
                    args.IsValid = false;
                    return;
                }
            }
        }
    }
    args.IsValid = true;
}

function ocupacionValidarEdadesFila(param)
{
    var combo = buscarCombo('cmbNumNin'+param);
    for (var i=1;i<=combo.value;i++)
    {
        var edad = buscarCombo('cmbEdad'+param+'_'+i);
        if (edad.value<0) return false;
    }
    return true;
}

function ocupacionValidarEdadesMin(sender,args)
{
    var param = 1;
    var combo = buscarCombo('cmbNumNin'+param);
    for (var i=1;i<=combo.value;i++)
    {
        var edad = buscarCombo('cmbEdad'+param+'_'+i);
        if (edad.value<0)
        {
            args.IsValid = false;
            return;
        }
    }
    args.IsValid = true;
    return;
}

function ocupacionSetLinea(param)
{
    if (param != null)
    {
        var fila = param.value;
        for (var i=1;i<=4;i++)
        {
            if (i<=fila)
            {
                ocupacionMostrarLineaEdades(i);
            }
            else
            {
                ocupacionOcultarLinea(i);
            }
        }
    }
}

function ocupacionProcesarLinea(param)
{
    var fila = param.value;
    for (var i=1;i<=4;i++)
    {
        if (i<=fila)
        {
            if (i!=1) ocupacionMostrarLinea(i);
        }
        else
        {
            ocupacionOcultarLinea(i);
        }
    }
}

function ocupacionProcesarLinea3(param)
{
    var fila = param.value;
    for (var i=1;i<=3;i++)
    {
        if (i<=fila)
        {
            if (i!=1) ocupacionMostrarLinea(i);
        }
        else
        {
            ocupacionOcultarLinea(i);
        }
    }
}

function ocupacionProcesarLinea5(param)
{
    var fila = param.value;
    for (var i=1;i<=5;i++)
    {
        if (i<=fila)
        {
            if (i!=1) ocupacionMostrarLinea(i);
        }
        else
        {
            ocupacionOcultarLinea5(i);
        }
    }
}

function ocupacionMostrarLinea(param)
{
    var fila;
    fila = ocupacionGetLinea(param);
    fila.style.visibility = 'visible';
    fila.style.display = 'block';
}

function ocupacionMostrarLineaEdades(param)
{
    var cmbNinos = buscarCombo('cmbNumNin'+param);
    ocupacionMostrarEdades(cmbNinos);

    if (param!=1)
    {
        var fila;
        fila = ocupacionGetLinea(param);
        fila.style.visibility = 'visible';
        fila.style.display = 'block';
    }
}

function ocupacionOcultarLinea(param)
{
    var cmbAdultos = buscarCombo('cmbNumAdu'+param);
    setSelectedIndex(cmbAdultos,0);
    var cmbNinos = buscarCombo('cmbNumNin'+param);
    setSelectedIndex(cmbNinos,0);
    ocupacionMostrarEdades(cmbNinos);

    var fila;
    fila = ocupacionGetLinea(param);
    fila.style.visibility = 'hidden';
    fila.style.display = 'none';
}

function ocupacionOcultarLinea5(param)
{
    var cmbAdultos = buscarCombo('cmbNumAdu'+param);
    setSelectedIndex(cmbAdultos,0);
    var cmbNinos = buscarCombo('cmbNumNin'+param);
    setSelectedIndex(cmbNinos,0);
    ocupacionMostrarEdades5(cmbNinos);

    var fila;
    fila = ocupacionGetLinea(param);
    fila.style.visibility = 'hidden';
    fila.style.display = 'none';
}

function ocupacionGetLinea(param)
{
    var fila;
    switch(param)
    {
        case 2:
            fila = pnlLinea2;
            break;
        case 3:
            fila = pnlLinea3;
            break;
        case 4:
            fila = pnlLinea4;
            break;
        case 5:
            fila = pnlLinea5;
            break;
    }
    return fila;
}

function ocupacionMostrarEdades(param)
{
    var fila = param.id.charAt(param.id.length-1);
    var valor = param.value;

    for (var i=1;i<=3;i++)
    {
        var combo = buscarCombo('cmbEdad'+fila+'_'+i);
        if (i<=valor)
        {
            combo.style.visibility = 'visible';
        }
        else
        {
            combo.style.visibility = 'hidden';
	        setSelectedIndex(combo,0);
        }
    }
    ocupacionMostrarOcultarLabelEdades();
}

function ocupacionMostrarEdades5(param)
{
    var fila = param.id.charAt(param.id.length-1);
    var valor = param.value;

    for (var i=1;i<=3;i++)
    {
        var combo = buscarCombo('cmbEdad'+fila+'_'+i);
        if (i<=valor)
        {
            combo.style.visibility = 'visible';
        }
        else
        {
            combo.style.visibility = 'hidden';
	        setSelectedIndex(combo,0);
        }
    }
    ocupacionMostrarOcultarLabelEdades5();
}

function ocupacionMostrarOcultarLabelEdades()
{
    var total = parseInt(0);
    total += parseInt(cmbNumNin1.value);
    total += parseInt(cmbNumNin2.value);
    total += parseInt(cmbNumNin3.value);
    total += parseInt(cmbNumNin4.value);

    if (total == -4)
    {
        lblEdades.style.visibility = 'hidden';
    }
    else
    {
        lblEdades.style.visibility = 'visible';
    }
}
function ocupacionMostrarOcultarLabelEdades5()
{
    var total = parseInt(0);
    total += parseInt(cmbNumNin1.value);
    total += parseInt(cmbNumNin2.value);
    total += parseInt(cmbNumNin3.value);
    total += parseInt(cmbNumNin4.value);
    total += parseInt(cmbNumNin5.value);

    if (total == -5)
    {
        lblEdades.style.visibility = 'hidden';
    }
    else
    {
        lblEdades.style.visibility = 'visible';
    }
}
function ocupacionMostrarEdadesMin(param)
{
    var fila = param.id.charAt(param.id.length-1);
    var valor = param.value;

    for (var i=1;i<=3;i++)
    {
        var combo = buscarCombo('cmbEdad'+fila+'_'+i);
        if (i<=valor)
        {
            combo.style.display = 'block';
        }
        else
        {
            combo.style.display = 'none';
	        setSelectedIndex(combo,0);
        }
    }
    if (valor > 0)
    {
        lblEdades.style.display = 'block';
    }
    else
    {
        lblEdades.style.display = 'none';
    }
}

function ocupacionMostrarEdadesEntradas(param)
{
    var fila = param.id.charAt(param.id.length-1);
    var valor = param.value;

    for (var i=1;i<=3;i++)
    {
        var combo = buscarCombo('cmbEdad'+fila+'_'+i);
        if (i<=valor)
        {
            combo.style.visibility = 'visible';
        }
        else
        {
            combo.style.visibility = 'hidden';
	        setSelectedIndex(combo,0);
        }
    }
    ocupacionMostrarOcultarLabelEdadesEntradas();
}

function ocupacionMostrarOcultarLabelEdadesEntradas()
{
    var total = parseInt(0);
    total += parseInt(cmbNumNin1.value);

    if (total == -1)
    {
        lblEdades.style.visibility = 'hidden';
    }
    else
    {
        lblEdades.style.visibility = 'visible';
    }
}

function ocupacionValidarOcupacionEntradas(sender,args)
{
    args.IsValid = ocupacionValidarOcupacionFila(1);
    return;
}

function ocupacionValidarEdadesEntradas(sender,args)
{
    args.IsValid = ocupacionValidarEdadesFila(1);
    return;
}

// GENERAL

function buscarObjeto(nombre,tipo)
{
    var re = new RegExp(nombre);
    for (var i=0;i<document.forms[0].elements.length;i++)
    {
        elm = document.forms[0].elements[i];
        if (elm.type == tipo)
        {
            if (re.test(elm.name))
            {
                return elm;
            }
        }
    }
}

function buscarCombo(nombre)
{
    return buscarObjeto(nombre,'select-one');
}

function maxValueCombo(s)
{
    var max = parseInt(0);
    if ((typeof(s) != "undefined") && (s != null))
    {
        for (var i=0;i<s.options.length;i++)
        {
            if (parseInt(s.options[i].value) > parseInt(max))
            {
                max = parseInt(s.options[i].value);
            }
        }
    }
    else
    {
        max = 999; //Sin límite
    }
    return max;
}

// FECHAS

function isDate(param)
{
    if (!isNaN(Date.parse(param)))
    {
       return true;
    }
    else
    {
        return false;
    }
}

function diffFechas(paramFechaEntrada,paramFechaSalida)
{
    if ((paramFechaEntrada != null) && (paramFechaSalida != null))
    {
        var diff = Math.abs(paramFechaEntrada - paramFechaSalida);
        //Sumamos un dia por el cambio horario
        diff = diff + 3600000;
        var daysDiff = Math.floor(diff / (1000 * 60 * 60 * 24));
        if ((paramFechaEntrada - paramFechaSalida) < 0)
        {
            return parseInt(daysDiff);
        }
        else
        {
            return parseInt(0);
        }
    }
}

function addFecha(paramFecha,paramDias)
{
    if (paramDias == null) paramDias = 1;
    if (paramFecha != null)
    {
        var tempFecha = new Date(paramFecha.getTime());
        tempFecha.setDate(paramFecha.getDate()+parseInt(paramDias));
        return tempFecha;
    }
}

function hoy()
{
    var today_date=new Date();
    var month=today_date.getMonth();
    var today=today_date.getDate();
    var year=today_date.getYear();

    return new Date(year,month,today);
}

function validarEmail(valor)
{
    if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(valor))
    {
        return (true);
    }
    else
    {
        return (false);
    }
}

function validarFecha(fecha) {
    try{
        var fecha = fecha.split("/");
        var dia = fecha[0];
        var mes = fecha[1];
        var ano = fecha[2];
        var estado = true;
        if ((dia.length == 2) && (mes.length == 2) && (ano.length == 4)) {
            switch (parseInt(mes)) {
                case 1:dmax = 31;break;
                case 2: if (ano % 4 == 0) dmax = 29;
                     else dmax = 28;
                     break;
                case 3:dmax = 31;break;
                case 4:dmax = 30;break;
                case 5:dmax = 31;break;
                case 6:dmax = 30;break;
                case 7:dmax = 31;break;
                case 8:dmax = 31;break;
                case 9:dmax = 30;break;
                case 10:dmax = 31;break;
                case 11:dmax = 30;break;
                case 12:dmax = 31;break;
            }
            dmax!=""?dmax:dmax=-1;

            if ((dia >= 1) && (dia <= dmax) && (mes >= 1) && (mes <= 12)) {
                for (var i = 0; i < fecha[0].length; i++) {
                    diaC = fecha[0].charAt(i).charCodeAt(0);
                    (!((diaC > 47) && (diaC < 58)))?estado = false:'';
                    mesC = fecha[1].charAt(i).charCodeAt(0);
                    (!((mesC > 47) && (mesC < 58)))?estado = false:'';
                }
            }
            else estado = false;

            for (var i = 0; i < fecha[2].length; i++) {
                anoC = fecha[2].charAt(i).charCodeAt(0);
                (!((anoC > 47) && (anoC < 58)))?estado = false:'';
            }

        }
        else estado = false;
        
        return estado;
    }
    catch(err){
	    return false;
	}
}

function dateFormat(date)
{
    var dayString = date.getDate().toString();
    var monthString = (date.getMonth()+1).toString()
    var yearString = date.getFullYear().toString()

    if (dayString.length == 1) dayString = '0' + dayString;
    if (monthString.length == 1) monthString = '0' + monthString;

    var dateAsString = dayString + "/" + monthString + "/" + yearString

    return dateAsString
}

function stringToDate(string) //formato dd/mm/aaaa
{
    var date = new Date();
    mes = parseInt(string.substring(3, 5));
    date.setMonth(mes - 1); //en javascript los meses van de 0 a 11
    date.setDate(string.substring(0, 2));
    date.setYear(string.substring(6, 10));
    return date;
}

