// Esto requiere el fichero onload.js
// Quita las localidades y tipos de instalación que no corresponden
// con la comarca y modalidad respectivas seleccionadas

addonload("filtra_localidades_x_comarca('comarca', 'localidad', true)");
addonload("filtra_tipoinstalacion_x_modalidad('tipo', 'subtipo', true)");

function carga_selects()
{
return false;
	var slocalidades = document.getElementById('localidad');
	if ( slocalidades != false )
	{
		cambia_localidad_listado(slocalidades, true);
	}
	/*
	var scomarcas = document.getElementById('comarca');
	if ( scomarcas != false )
	{
		cambia_comarca_listado(scomarcas, true);
	}
	*/

	var ssubtipos = document.getElementById('subtipo');
	if ( ssubtipos != false )
	{
		cambia_subtipo_listado(ssubtipos, true);
	}
	/*
	var stipos = document.getElementById('tipo');
	if ( stipos != false )
	{
		cambia_tipo_listado(stipos, true);
	}
	*/
}

//addonload("carga_selects()");

function cambia_filtro()
{
return false;
	var parComarca = '';
	var parLocalidad = '';
	var parTipo = '';
	var parSubtipo = '';

	objSelectComarcas = document.getElementById('comarca');
	objSelectLocalidades = document.getElementById('localidad');
	objSelectTipos = document.getElementById('tipo');
	objSelectSubtipos = document.getElementById('subtipo');

	var algunFiltro = false;
	var inicioParConsulta = '';
	if ( objSelectLocalidades && objSelectLocalidades.value != 0 )
	{
		parLocalidad = inicioParConsulta + 'localidad=' + objSelectLocalidades.value;
		inicioParConsulta = '&';
		algunFiltro = true;
	}
	if ( objSelectComarcas && objSelectComarcas.value != 0 )
	{
		parComarca = inicioParConsulta + 'comarca=' + objSelectComarcas.value;
		inicioParConsulta = '&';
		algunFiltro = true;
	}
	if ( objSelectSubtipos && objSelectSubtipos.value != 0 )
	{
		parSubtipo = inicioParConsulta + 'subtipo=' + objSelectSubtipos.value;
		inicioParConsulta = '&';
		algunFiltro = true;
	}
	if ( objSelectTipos && objSelectTipos.value != 0 )
	{
		parTipo = inicioParConsulta + 'tipo=' + objSelectTipos.value;
		inicioParConsulta = '&';
		algunFiltro = true;
	}

		url ='/di/listado.shtml?mostrarlistado=1&' + parLocalidad + parComarca + parSubtipo + parTipo;
		document.location.replace(url);
/*
	if ( algunFiltro == true )
	{
		url ='/di/listado.shtml' + parLocalidad + parComarca + parSubtipo + parTipo;
		document.location.replace(url);
	}
	else
	{
		alert('Debe seleccionar algún criterio de búsqueda');
	}
*/
}
function cambia_comarca_listado(objSelectComarcas, onload)
{
return false;
	var idComarca = objSelectComarcas.value;
	var slocalidades = document.getElementById('localidad');
	if ( slocalidades != false )
	{
		slocalidades.options.length = 1;
		slocalidades.defaultIndex = 0;
		var optionsCounter=1;
		for ( i = 0; i < localidades.length; i++ )
		{
			if ( idComarca == 0 || localidades[i]['comarca'] == idComarca )
			{
				//slocalidades.selectedIndex = optionsCounter;
				slocalidades.options[optionsCounter++] = new Option(localidades[i]['nombre'],
								localidades[i]['idlocalidad'],
								(onload && (localidades[i]['activa'] == 1)));
			}
		}
	}
}

function filtra_localidades_x_comarca(idSelectComarcas, idSelectLocalidades, onload)
{
	var idComarcaSeleccionada = 0;
	var objSelectComarcas = document.getElementById(idSelectComarcas);
	if ( objSelectComarcas )
	{
		idComarcaSeleccionada = objSelectComarcas.value;
	}

	var idLocalidadSeleccionada = 0;
	if ( onload == true )
	{
		var localidadSeleccionada = localidad_seleccionada(idSelectLocalidades);
		if ( localidadSeleccionada )
		{
			idLocalidadSeleccionada = localidadSeleccionada['idlocalidad'];
		}
	}

	var objSelectLocalidades = document.getElementById(idSelectLocalidades);
	if ( objSelectLocalidades )
	{
//alert('Entra');
		// Dejamos siempre el primer option del select: todos
		objSelectLocalidades.options.length = 1;
		objSelectLocalidades.defaultIndex = 0;
		var j = 1;
//alert(objSelectLocalidades);
//alert(objSelectLocalidades.options);
for ( i = 0; i < objSelectLocalidades.options.length; i++)
{
	//alert(objSelectLocalidades.options[i].text);
}

		for ( var i = 0; i < localidades.length; i++ )
		{
			if ( idComarcaSeleccionada == 0 || localidades[i]['comarca'] == idComarcaSeleccionada )
			{
				objSelectLocalidades.options[j] = new Option(localidades[i]['nombre'], localidades[i]['idlocalidad'], localidades[i]['idlocalidad'] == idLocalidadSeleccionada);
				if ( localidades[i]['idlocalidad'] == idLocalidadSeleccionada )
				{
					objSelectLocalidades.options[j].selected = true;
				}
				j++;
			}
		}
//alert('Cuantas locs: ' + objSelectLocalidades.options.length);
//alert('Cuantas locs: ' + objSelectLocalidades.options.length + ' Última: ' + localidades[i-1]['nombre']);
	}
}

function localidad_seleccionada(idSelectLocalidades)
{
	var objSelectLocalidades = document.getElementById(idSelectLocalidades);
	if ( objSelectLocalidades )
	{
		var idLocalidadSeleccionada = objSelectLocalidades.value;
		if ( idLocalidadSeleccionada > 0 )
		{
			for ( var i = 0; i < localidades.length; i++ )
			{
				if ( localidades[i]['idlocalidad'] == idLocalidadSeleccionada )
				{
					return localidades[i];
				}
			}
		}
	}
	return null;
}

function filtra_tipoinstalacion_x_modalidad(idSelectModalidades, idSelectTipos, onload)
{
	var idModalidadSeleccionada = 0;
	var objSelectModalidades = document.getElementById(idSelectModalidades);
	if ( objSelectModalidades )
	{
		idModalidadSeleccionada = objSelectModalidades.value;
	}

	var idTipoSeleccionado = 0;
	if ( onload == true )
	{
		var tipoSeleccionado = tipoinstalacion_seleccionado(idSelectTipos);
		if ( tipoSeleccionado )
		{
			idTipoSeleccionado = tipoSeleccionado['idsubtipo'];
		}
	}

	var objSelectTipos = document.getElementById(idSelectTipos);
	if ( objSelectTipos )
	{
		// Dejamos siempre el primer option del select: todos
		objSelectTipos.innerHTML = '';
	
		objOption = document.createElement('option');
		if ( idModalidadSeleccionada > 0 )
		{
			objOption.innerHTML = 'Todas: modalidad '+tipos[idModalidadSeleccionada - 1]['ntipo'];
		}
		else
		{
			objOption.innerHTML = 'Todas';
		}
		objOption.value = 0;
		objOption.selected = true;

		objSelectTipos.appendChild(objOption);
		//objSelectTipos.options.length = 1;
		//objSelectTipos.defaultIndex = 0;
		var j = 1;

		var modalidadanterior = -1;

		for ( var i = 0; i < subtipos.length; i++ )
		{
			if ( idModalidadSeleccionada == 0 || subtipos[i]['tipo'] == idModalidadSeleccionada )
			{
				if ( modalidadanterior == -1 )
				{
					modalidadanterior = subtipos[i]['tipo'];

					objOptgroup = document.createElement('optgroup');
					objOptgroup.label = tipos[modalidadanterior - 1]['ntipo'];
				}
				else if ( modalidadanterior != subtipos[i]['tipo'] )
				{
					objSelectTipos.appendChild(objOptgroup);

					modalidadanterior = subtipos[i]['tipo'];
					objOptgroup = document.createElement('optgroup');
					objOptgroup.label = tipos[modalidadanterior - 1]['ntipo'];
				}

				objOption = document.createElement('option');
				objOption.innerHTML = subtipos[i]['nombre'];
				objOption.value = subtipos[i]['idsubtipo'];
				objOption.selected = subtipos[i]['idsubtipo'] == idTipoSeleccionado;

				objOptgroup.appendChild(objOption);

				/*
				objSelectTipos.options[j] = new Option(subtipos[i]['nombre'], subtipos[i]['idsubtipo'], subtipos[i]['idsubtipo'] == idTipoSeleccionado);
				if ( subtipos[i]['idsubtipo'] == idTipoSeleccionado )
				{
					objSelectTipos.options[j].selected = true;
				}
				*/
				j++;
			}
		}

		if ( objOptgroup )
		{
			 objSelectTipos.appendChild(objOptgroup);
		}
	}
}

function tipoinstalacion_seleccionado(idSelectTipos)
{
	var objSelectTipos = document.getElementById(idSelectTipos);
	if ( objSelectTipos )
	{
		var idTipoSeleccionado = objSelectTipos.value;
		if ( idTipoSeleccionado > 0 )
		{
			for ( var i = 0; i < subtipos.length; i++ )
			{
				if ( subtipos[i]['idsubtipo'] == idTipoSeleccionado )
				{
					return subtipos[i];
				}
			}
		}
	}
	return null;
}

function cambia_localidad_listado(objSelectLocalidades, onload)
{
return false;
	// Localidad seleccionada
	var idLocalidad = objSelectLocalidades.value;
	if ( idLocalidad > 0 )
	{
		var scomarcas = document.getElementById('comarca');
		if ( scomarcas != false )
		{
			// Comarca a la que pertenece la localidad
			var comarca = 0;
			for ( i = 0; i < localidades.length; i++ )
			{
				if ( localidades[i]['idlocalidad'] == idLocalidad )
				{
					comarca = localidades[i]['comarca'];
					break;
				}
			}
	
			// Seleccionamos esa comarca
			for ( i = 0; i < scomarcas.options.length; i++ )
			{
				if ( scomarcas.options[i].value == comarca )
				{
					scomarcas.options[i].selected = true;
				}
				else
				{
					scomarcas.options[i].selected = false;
				}
			}

			// Quitamos todas las localidades que no son de esta comarca
			cambia_comarca_listado(scomarcas, onload);

			// Volvemos a seleccionar la localidad
			for ( i = 0; i < objSelectLocalidades.options.length; i++ )
			{
				if ( objSelectLocalidades.options[i].value == idLocalidad )
				{
					objSelectLocalidades.options[i].selected = true;
				}
			}
		}
	}
}
function cambia_tipo_listado(objSelectTipos, onload)
{
return false;
	var idTipo = objSelectTipos.value;
	var ssubtipos = document.getElementById('subtipo');
	if ( ssubtipos != false )
	{
		ssubtipos.options.length = 1;
		ssubtipos.defaultIndex = 0;
		var optionsCounter=1;
		for ( i = 0; i < subtipos.length; i++ )
		{
			if ( idTipo == 0 || subtipos[i]['tipo'] == idTipo )
			{
				ssubtipos.options[optionsCounter++] = new Option(subtipos[i]['nombre'],
								subtipos[i]['idsubtipo'],
								(onload && (subtipos[i]['activa'] == 1)));
			}
		}
	}
}
function cambia_subtipo_listado(objSelectSubtipos, onload)
{
return false;
	// Subtipo escogido (Museo, Velódromo, etc
	var idSubtipo = objSelectSubtipos.value;
	if ( idSubtipo > 0 )
	{
		// Select de "tipos" (AKA modalidades: Cultural y Deportiva)
		var stipos = document.getElementById('tipo');
		if ( stipos != false )
		{
			// Tipo (modalidad) correspondiente al subtipo seleccionado
			var tipo = 0;
			for ( i = 0; i < subtipos.length; i++ )
			{
				if ( subtipos[i]['idsubtipo'] == idSubtipo )
				{
					tipo = subtipos[i]['tipo'];
					break;
				}
			}
	
			// Seleccionamos el tipo obtenido antes
			for ( i = 0; i < stipos.options.length; i++ )
			{
				if ( stipos.options[i].value == tipo )
				{
					stipos.options[i].selected = true;
				}
				else
				{
					stipos.options[i].selected = false;
				}
			}

			// Quitamos todas las instalaciones que no son de este tipo
			cambia_tipo_listado(stipos, onload);

			// Volvemos a seleccionar el tipo de instalacion
			for ( i = 0; i < objSelectSubtipos.options.length; i++ )
			{
				if ( objSelectSubtipos.options[i].value == idSubtipo )
				{
					objSelectSubtipos.options[i].selected = true;
				}
			}
		}
	}
}

