// Funcion para verificar que los datos obligatorios del formulario se han rellenado.
function comprobar_criterios()
{
	var id_destino;

	// CASO ESPECIAL: CENA+ESPECTACULO, redirigir a Espectaculos...
    if ($('especial_para').value == 666)
    {
        window.location = "http://www.atrapalo.com/entradas/artes-escenicas/espectaculo-cena/"
    }
    // COMPROBACIONES NORMALES:
    else
    {
		// El unico criterio a comprobar es que se haya seleccionado una provincia o plobacion.
	    if ($('id_provincia').selectedIndex == -1 && $('id_poblacion').selectedIndex == -1)
	    {
	        errores.push(new Error('14', '042', '001'));
	    }
	    else
	    {
			if ($('id_poblacion').value  > 0)
			{
				id_destino = $('id_poblacion').value;
			}
			else if ($('id_provincia').value  > 0)
			{
				id_destino = $('id_provincia').value;
			}
	    }
	    
	    // Si despues de las comprobaciones hay errores detectados, mostrar mensaje de error.
	    if (errores.cuantos() > 0)
	    {
	        errores.show();
	        return false;
	    }
	    else
	    {
	        // Sino mostrar los resultados.
	        document.buscador_restaurantes_form.id_destino.value = id_destino;
	        document.buscador_restaurantes_form.submit();
	    }
    }
}

// Funcion para verificar que los datos obligatorios del formulario se han rellenado.
function comprobar_palabras_clave()
{
	// El unico criterio a comprobar es palabras clave.
    if ($('palabras_clave').value == '' || $('palabras_clave').value == 'Escribe aquí el nombre del restaurante' || $('palabras_clave').value == 'Escribe aquí la dirección: calle numero, población')
    {
        errores.push(new Error('14', '136', '001'));
    }
    // Si despues de las comprobaciones hay errores detectados, mostrar mensaje de error.
    if (errores.cuantos() > 0)
    {
        errores.show();
        $('palabras_clave').focus();
        return false;
    }
    else
    {
        // Sino mostrar los resultados.
        document.buscador_claves_form.submit();
    }
}

// Funcion para mostrar/ocultar las "paginas" de criterios del buscador.
function mostrar_criterio(num)
{
    if (num == 1)
    {
        $('id_zona').style.display='block';
        $('especial_para').style.display='none';
        $('tipo_cocina').style.display='none';
        $('precio_desde').style.display='none';
        $('guia_recomendacion').style.display='none';
        $('servicio_extra').style.display='none';
    }
    else if (num == 2)
    {
        $('id_zona').style.display='none';
        $('especial_para').style.display='block';
        $('tipo_cocina').style.display='none';
        $('precio_desde').style.display='none';
        $('guia_recomendacion').style.display='none';
        $('servicio_extra').style.display='none';
    }
    else if (num == 3)
    {
        $('id_zona').style.display='none';
        $('especial_para').style.display='none';
        $('tipo_cocina').style.display='block';
        $('precio_desde').style.display='none';
        $('guia_recomendacion').style.display='none';
        $('servicio_extra').style.display='none';
    }
    else if (num == 4)
    {
        $('id_zona').style.display='none';
        $('especial_para').style.display='none';
        $('tipo_cocina').style.display='none';
        $('precio_desde').style.display='block';
        $('guia_recomendacion').style.display='none';
        $('servicio_extra').style.display='none';
    }
    else if (num == 5)
    {
        $('id_zona').style.display='none';
        $('especial_para').style.display='none';
        $('tipo_cocina').style.display='none';
        $('precio_desde').style.display='none';
        $('guia_recomendacion').style.display='block';
        $('servicio_extra').style.display='none';
    }
    else if (num == 6)
    {
        $('id_zona').style.display='none';
        $('especial_para').style.display='none';
        $('tipo_cocina').style.display='none';
        $('precio_desde').style.display='none';
        $('guia_recomendacion').style.display='none';
        $('servicio_extra').style.display='block';
    }
}

// Funcion para poner el criterio de busqueda seleccionado en la lista de criterios del buscador,
// con un botoncillo para eliminar el criterio.
function poner_criterio(id)
{
    var num_seleccion = 0;
    var seleccion_str = '';
    var nombre = '';

    for (var i = 0; i < $(id).options.length; i++)
    {
        $('c_' + id).innerHTML = '';
        if ($(id).options[i].selected)
        {
            if (num_seleccion > 0) seleccion_str = seleccion_str;
            /*
            if (id == 'id_destino')
            {
                nombre = $(id).options[i].label;
            }
            else
            {
                nombre = $(id).options[i].text;
            }
            */
            nombre = $(id).options[i].text;
            nombre = nombre.replace(/ \([0-9]+\)/i, '');

            if ($(id).options[i].value)
            {
                seleccion_str = seleccion_str +  ' ' + nombre + '<a href="#" onclick="javascript:quitar_criterio(\'' + id + '\','+ $(id).options[i].value +');return false;">[x]</a>';
                num_seleccion++;
            }
        }
    }
    // Poner en la seccion los criterios encontrados como seleccionados.
    if (num_seleccion == 0)
    {
        $('c_' + id).innerHTML = '';
    }
    else
    {
        $('c_' + id).innerHTML = seleccion_str;
    }

    // En caso de que sea un valor relacionado de destino, limpiarlos.
    if (id == 'id_provincia')
    {
        quitar_criterio('id_zona', '');
        quitar_criterio('id_poblacion', '');
    }
    else if (id == 'id_poblacion')
    {
    	quitar_criterio('id_zona', '');
    }

    limpiar_criterios();
}

// Funcion para quitar el criterio de la lista de criterios del buscador, y para que
// se deseleccione el criterio del select pertinente.
function quitar_criterio(id, value)
{
    // Deseleccionar el criterio indicado del select.
    for (var i = 0; i < $(id).options.length; i++)
    {
        if (value == '')
    	{
            if (id == 'id_provincia' || id == 'id_poblacion')
            {
                $(id).selectedIndex = -1;
            }
            else
            {
                $(id).options[i].selected = false;
            }
	    }
	    else if ($(id).options[i].value == value)
        {
            if (id == 'id_provincia' || id == 'id_poblacion')
            {
                $(id).selectedIndex = -1;
            }
            else
            {
                $(id).options[i].selected = false;
            }
        }
    }
    // Volver a poner los criterios restantes.
    poner_criterio(id);
}

function reservas_online()
{
	if(document.getElementById('con_reserva_online').checked)
	{
		document.getElementById('divReservasOnline').style.display = 'block';
	}
	else
	{
		document.getElementById('divReservasOnline').style.display = 'none';
	}
}

// Funcion que hace una llamada ajax para la carga de zonas de una poblacion.
function cargar_zonas()
{
	var id_destino = $('id_poblacion').value;
    if (id_destino != '')
    {
    	// Ocultar primero la seleccion para no mostrar 2 selects a la vez
    	mostrar_criterio(1);
        // Hay un destino: buscar sus zonas.
        // Llamada ajax de destinos.
        load_url = '/restaurantes/do_ajax?pg_action=destinos_zonas&id_destino=' + id_destino;
        $('div_id_zona').innerHTML = '<select class="pad5" id="id_zona" name="id_zona[]" size="6" style="width:350px;" multiple="multiple"><option value="">Cargando...</option></select>';
        YAHOO.util.Connect.asyncRequest("get", load_url, {
              timeout: 10000,
              success: function(o) {
                  
                  $('div_id_zona').innerHTML = o.responseText;
                  return true;
              },
              failure: function() {
                  return false;
              }
            });
    }
    else
    {
        // No hay nada poblacion/zona seleccionada.
		$('id_zona').innerHTML = '<option value="">Selecciona una población</option>';
    }
}

// Funcion que hace una llamada ajax para la carga de poblaciones de una provincia.
function cargar_poblaciones()
{
    var id_destino = $('id_provincia').value;
    if (id_destino != '')
    {
        // Hay un destino: buscar sus zonas.
        // Llamada ajax de destinos.
        load_url = '/restaurantes/do_ajax?pg_action=destinos_poblaciones&id_destino=' + id_destino;
        $('td_id_poblacion').innerHTML = '<select class="pad5" id="id_poblacion" name="id_poblacion" size="6" style="width:160px;"><option value="">Cargando...</option></select>';
        YAHOO.util.Connect.asyncRequest("get", load_url, {
              timeout: 10000,
              success: function(o) {
				  $('td_id_poblacion').innerHTML = o.responseText;
				  cargar_zonas();
                  return true;
              },
              failure: function() {
                  return false;
              }
            });
    }
    else
    {
        // No hay nada poblacion/zona seleccionada.
		$('id_poblacion').innerHTML = '<option value="">Selecciona una provincia</option>';
    }
}

// Si hay 1 o mas criterios seleccionados, ocultar la frase inicial
function limpiar_criterios()
{
	if ($('c_id_provincia').innerHTML == '' &&
        $('c_id_poblacion').innerHTML == '' &&
	    $('c_id_zona').innerHTML == '' &&
	    $('c_especial_para').innerHTML == '' &&
	    $('c_tipo_cocina').innerHTML == '' &&
	    $('c_precio_desde').innerHTML == '' &&
	    $('c_guia_recomendacion').innerHTML == '' &&
	    $('c_servicio_extra').innerHTML == '')
	{
		$('c_fraseinicial').style.display = 'block';
		$('criterios').style.display = 'none';
	}
	else
	{
		$('c_fraseinicial').style.display = 'none';
		$('criterios').style.display = 'block';
	}

}

function changeEnablePax()
	{
	    if ($('grupos').checked)
    {
        $('pax').options[11].selected = true;
        $('pax').disabled = true;
    }
    else
    {
        $('pax').options[0].selected = true;
        $('pax').disabled = false;
    }
}

// ---------------------------------------
// funciones para el calendario
// ---------------------------------------

// Generar calendario YUI
function setUpCalendar()
{
    cal1 = new YAHOO.widget.CalendarGroup("cal1", "cal1Container",
           {
               close:true,
               iframe:true,
               PAGES:2,
               pagedate:(d.getMonth() + 1) + "/" + d.getFullYear(),
               mindate:(d.getMonth() + 1) + "/" + d.getDate() + "/" + d.getFullYear(),
               maxdate:(d.getMonth() + 1) + "/" + d.getDate() + "/" + (d.getFullYear() + 1)
           }
    );
    var arrDates = cal1.getSelectedDates();
    YAHOO.util.Event.removeListener("fecha_evento_view", "click", showCal);
    YAHOO.util.Event.addListener("fecha_evento_view", "click", showCal, cal1, true);
    YAHOO.util.Event.removeListener("fecha_evento-trigger", "click", showCal);
    YAHOO.util.Event.addListener("fecha_evento-trigger", "click", showCal, cal1, true);
    cal1.cfg.setProperty("MONTHS_LONG", months_long);
    cal1.cfg.setProperty("WEEKDAYS_SHORT", day_short);
    cal1.cfg.setProperty("START_WEEKDAY", 1);
    cal1.cfg.setProperty("NAV_ARROW_LEFT", "/images_new/flecha_iz.gif");
    cal1.cfg.setProperty("NAV_ARROW_RIGHT", "/images_new/flecha_de.gif");
    cal1.selectEvent.subscribe(calSelectDate, cal1, true);
    if ($('fecha_evento_view').value != '')
    {
        tmp = $('fecha_evento_view').value.split("/");
        cal1.cfg.setProperty("selected", tmp[1] + '/' + tmp[0] + '/' + tmp[2], false);
        cal1.cfg.setProperty("pagedate", tmp[1] + '/' + tmp[2], false);
    }
}

// Insertar en el campo de fecha, el dia seleccionado en el calendario
function calSelectDate(type, args, obj)
{
    var dates = args[0][0];
    var year = dates[0], month = dates[1], day = dates[2];
    if (parseInt(day) < 10) day = "0" + day;
    if (parseInt(month) < 10) month = "0" + month;
    document.getElementById('fecha_evento_view').value = day + "/" + month + "/" + year;
    document.getElementById('fecha_evento').value = day + "/" + month + "/" + year;
    eval(obj.id + ".hide()");
}

// Mostrar/ocultar el calendario
function showCal(even, obj)
{
    if(obj.oDomContainer.style.display == 'none' || obj.oDomContainer.style.display == '')
    {
        eval(obj.id + ".render()");
        eval(obj.id + ".show()");
    }
}

YAHOO.util.Event.onAvailable('calendari_trigger', function() {setTimeout(" setUpCalendar()", 2000)});
var months_long = ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"];
var day_short = ["Do", "Lu", "Ma", "Mi", "Ju", "Vi", "Sa"];
var d = new Date();
var hoy = new Date(d.getFullYear(), d.getMonth(), d.getDate());

// ---------------------------------------
// end funciones para el calendario
// ---------------------------------------
