
/************************************************ PRINT_SELECTOR_CATEGORIAS_GENEROS ***************/

//function que muestra los combos para realizar una selección vinculada de categorias y generos del catálogo pasado como parámetro
//es necesaio que el catálogo pasado como parámetro tenga dos propiedades llamadas categoria y genero
function print_selector_categorias_generos (catalogo, html_catalogo) {
	if (catalogo == null)
		return false;
	if (html_catalogo == null)
		return false;

	catalogo_categorias_generos = catalogo;
	document.write ("<div class='separador3'><span></span></div>")
	document.write ("<div id='listado_productos'>");
	document.write ("	<form id='form_selector_categorias_generos' name='form_selector_categorias_generos' onsubmit='return submit_selector_categorias_generos(this)' action='"+html_catalogo+"'>");
	document.write ("		<span class='texto2_2'>" + txt_titulo_selector_categorias_generos + "</span><br />");
	document.write ("		<select name='categoria' onchange='change_categoria(catalogo_categorias_generos)'>");
	document.write ("		</select>");
	document.write ("		<select name='genero'>");
	document.write ("		</select>");
	document.write ("		<input class='boton_formulario' type='image' src='/on/images/btnSubmit.gif' alt='ir' />");
	document.write ("	</form>");
	document.write ("</div>");
	document.write ("<hr />");

	//escribimos las categorías
	var selector = document.forms['form_selector_categorias_generos'];
	var categorias = getCategorias(catalogo_categorias_generos);
	if (categorias.length == 1) {
		selector.categoria.options[selector.categoria.options.length] = new Option (categorias[0], categorias[0], true, true);
		selector.categoria.style.display = 'none';
	}
	else {
		selector.categoria.options[selector.categoria.options.length] = new Option (txt_tipo_categoria, "", true, true);
		selector.categoria.options[selector.categoria.options.length] = new Option (txt_todas_categorias, "todas");

		var nomtarifa;
		var oTarifas;
		for (var categoriai in categorias)
		{
			//Si es una serie los titulos del combo son distintos que su value y se sacan del objeto
			//tarifas que esta dento de precio.js
			if (html_catalogo == 'series_catalogo.html')
				oTarifas = tarifas_series;
			else
				oTarifas = null;

			nomtarifa = categorias[categoriai]; 
			if (oTarifas != null) nomtarifa = oTarifas[nomtarifa].nomtarifa; 

			selector.categoria.options[selector.categoria.options.length] = new Option (nomtarifa, categorias[categoriai]);	
		}
	}

	//inicializamos el selector
	change_categoria (catalogo_categorias_generos);
}

function change_categoria (catalogo) {
	var formulario				= document.forms['form_selector_categorias_generos'];
	var categoria_seleccionada	= formulario.categoria.value;

	//vaciamos el select de generos y ponemos los generos correspondientes, o las rayitas
	formulario.genero.options.length = 0;

	if (categoria_seleccionada == "") {
		formulario.genero.options[formulario.genero.options.length] = new Option ("----", "");
	}
	else {
		//Esta opción sólo la añadimos cuando hay una sola categoría 
		if (getCategorias(catalogo).length == 1)
			formulario.genero.options[formulario.genero.options.length] = new Option (txt_tipo_genero, "");

		//ponemos una opción que sea seleccionar todos los géneros
		formulario.genero.options[formulario.genero.options.length] = new Option (txt_todos_generos, "todos");

		//dependiendo de la categoría elegida, seleccionamos unos géneros u otros
		var generos_a_mostrar;
		if (categoria_seleccionada == "todas") 
			generos_a_mostrar = getGeneros (catalogo);
		else
			generos_a_mostrar = getGeneros (catalogo, categoria_seleccionada);

		//rellenamos el combo con los generos filtrados
		for (var generoi in generos_a_mostrar) {
			var valor = generos_a_mostrar[generoi];
			var texto = generos_a_mostrar[generoi];
		
			formulario.genero.options[formulario.genero.options.length] = new Option (texto, valor);
		}
	}
}

function submit_selector_categorias_generos (selector) {
	var categoria	= selector.categoria.value;
	var genero		= selector.genero.value;

	if (categoria == "") {
		alert (txt_alert_categoria);
		return false;
	}

	if (genero == "") {
		//esta opción sólo podrá entrar cuando sólo haya una categoría y no tengamos marcado ningún género
		alert (txt_alert_genero);
		return false;
	}

	document.location.href = selector.action + "?categoria=" + categoria + "&genero=" + genero;

	return false;
}

/************************************************ PRINT_SELECTOR_CONSULTA_CONTENIDOS **************/

//function que muestra los combos para realizar una selección vinculada de contenidos
//el parámetro contenido_completo indica si se muestran todos los contenidos o únicamente los de videoclub
function print_selector_consulta_contenidos (contenido_completo) {
	if (contenido_completo == null)
		contenido_completo = true;

	document.write ("<div class='separador3'><span></span></div>");
	document.write ("<div id='listado_productos' class='altura_buscador'>");
	document.write ("	<form id='form_selector_consulta_contenidos' name='form_selector_consulta_contenidos' onSubmit='return submit_selector_consulta_contenidos(this)'>");
	if (contenido_completo)
		document.write ("		<div class='ajuste_buscador1'><span class='texto2_2' >" + txt_titulo_selector_consulta_contenidos_completo + "</span></div>");
	else
		document.write ("		<div class='ajuste_buscador1'><span class='texto2_2'>" + txt_titulo_selector_consulta_contenidos_NO_completo + "</span></div>");
	document.write ("		<select id='contenido' name='contenido' onchange='change_contenido()'>");
	document.write ("			<option value=''>" + txt_tipo_contenido + "</option>");
	if (contenido_completo)	{
		document.write ("			<optgroup label='" + txt_oferta_basica + "'>");
		document.write ("				<option value='canales_tv'>" + txt_canales_tv + "</option>");
		document.write ("				<option value='canales_audio'>" + txt_canales_audio + "</option>");
		document.write ("			</optgroup>");
		document.write ("			<optgroup label='" + txt_tribuna_imagenio + "'>");
		document.write ("				<option value='futbol'>" + txt_futbol + "</option>");
		document.write ("			</optgroup>");
	}
	document.write ("			<optgroup label='" + txt_videoclub_bajo_demanda + "'>");
	document.write ("				<option value='cine'>" + txt_cine + "</option>");
	document.write ("				<option value='series'>" + txt_series + "</option>");
	document.write ("				<option value='documentales'>" + txt_documentales + "</option>");
	document.write ("				<option value='musica'>" + txt_musica + "</option>");
	//document.write ("				<option value='noticias'>" + txt_noticias + "</option>");
	document.write ("			</optgroup>");
	document.write ("		</select>");
	document.write ("		<select id='sub_contenido' name='sub_contenido'>");
	document.write ("		</select>");
	document.write ("		<input class='boton_formulario'  type='image' src='/on/images/btnSubmit.gif' alt='ir' />");
	document.write ("	</form>");
	document.write ("	<script language='JavaScript'>change_contenido();</script>");
	
	var protocolo	= location.protocol;
	var modo		= (esAbierto())?'abierto':'cerrado';
	document.write ("<p><a href='"+protocolo+"//imagenio.telefonicaonline.com/EST/HTML/marcos.html?modo="+modo+"&uri=/DIN/mapa.jsp' target='_top' class='texto2_3'>" + txt_consulte_toda_programación + " <img src='/on/images/icoLink.gif' width='9' height='5' alt='ampliar informaci&oacute;n' /></a></p>");

	document.write ("	<div class='auxiliar'><span></span></div>");
	document.write ("</div>");
	document.write ("<hr />");

}

function change_contenido () {
	var formulario	= document.forms['form_selector_consulta_contenidos'];
	var contenido	= formulario.contenido.value;

	//vaciamos el select de opciones del contenido y ponemos lo que toque
	while (formulario.sub_contenido.hasChildNodes())
		formulario.sub_contenido.removeChild(formulario.sub_contenido.firstChild);

	var url_navegacion_base = "/on/io/navegacion/on.html?servicio=entrada&entrada=rd_imagenio&menu_cab_sup=television&menu_izq=3"
	var nodo_izq, uri, url_enlace;
	switch (contenido) {
		case 'canales_tv':
			nodo_izq = 1;
			uri = "/on/io/"+idioma+"/imagenio/programacion/canales_tv/canales_tv.html";
			url_enlace = url_navegacion_base+"&nodo_izq="+nodo_izq+"&uri="+uri

			formulario.sub_contenido.options[formulario.sub_contenido.options.length] = new Option (txt_todos_canales, url_enlace);

			var grupo_tipos = document.createElement('optgroup');
			grupo_tipos.label = txt_tipos_canales;
			formulario.sub_contenido.appendChild (grupo_tipos);
			for (var i in tipos_de_canales) {
				var opcion = document.createElement('option');
				opcion.value = url_enlace + escape("#ancla_"+i);
				opcion.text = tipos_de_canales[i];
				opcion.innerText = tipos_de_canales[i];
				grupo_tipos.appendChild(opcion);
			}

			var grupo_canales = document.createElement('optgroup');
			grupo_canales.label = txt_canales;
			formulario.sub_contenido.appendChild (grupo_canales);
			for (var i in canales_tv_ordenados) {
				var opcion = document.createElement('option');
				opcion.value = url_enlace + escape("#ancla_"+canales_tv_ordenados[i]);
				opcion.text = canales_tv[canales_tv_ordenados[i]].nombre;
				opcion.innerText = canales_tv[canales_tv_ordenados[i]].nombre;
				grupo_canales.appendChild(opcion);
			}
			break;
		case 'canales_audio':
			nodo_izq = 2;
			uri = "/on/io/"+idioma+"/imagenio/programacion/canales_audio/canales_audio.html";
			url_enlace = url_navegacion_base+"&nodo_izq="+nodo_izq+"&uri="+uri;

			formulario.sub_contenido.options[formulario.sub_contenido.options.length] = new Option ("----", url_enlace);
			break;
		case 'futbol':
			nodo_izq = 3;
			uri = "/on/io/"+idioma+"/imagenio/programacion/futbol/futbol.html";
			url_enlace = url_navegacion_base+"&nodo_izq="+nodo_izq+"&uri="+uri;

			formulario.sub_contenido.options[formulario.sub_contenido.options.length] = new Option ("----", url_enlace);
			break;
		case 'cine':
			nodo_izq = 4;

			uri = "/on/io/"+idioma+"/imagenio/programacion/cine/cine_home.html";
			url_enlace = url_navegacion_base+"&nodo_izq="+nodo_izq+"&uri="+uri;
			formulario.sub_contenido.options[formulario.sub_contenido.options.length] = new Option (txt_imagenio_recomienda, url_enlace);

			uri = "/on/io/"+idioma+"/imagenio/programacion/cine/cine_catalogo.html";
			url_enlace = url_navegacion_base+"&nodo_izq="+nodo_izq+"&uri="+uri;
			formulario.sub_contenido.options[formulario.sub_contenido.options.length] = new Option (txt_catalogo, url_enlace);
			break;
		case 'series':
			nodo_izq = 4;
			
			uri = "/on/io/"+idioma+"/imagenio/programacion/series/series_home.html";
			url_enlace = url_navegacion_base+"&nodo_izq="+nodo_izq+"&uri="+uri;
			formulario.sub_contenido.options[formulario.sub_contenido.options.length] = new Option (txt_imagenio_recomienda, url_enlace);
			
			uri = "/on/io/"+idioma+"/imagenio/programacion/series/series_catalogo.html";
			url_enlace = url_navegacion_base+"&nodo_izq="+nodo_izq+"&uri="+uri;
			formulario.sub_contenido.options[formulario.sub_contenido.options.length] = new Option (txt_catalogo, url_enlace);
			break;
		case 'documentales':
			nodo_izq = 4;
			for (var i in catalogos) {
				if (i == 'preestrenos')
					uri = escape("/on/io/"+idioma+"/imagenio/programacion/documentales/documentales_home.html");
				else
					uri = escape("/on/io/"+idioma+"/imagenio/programacion/documentales/documentales_catalogo.html?catalogo="+i);				

				url_enlace = url_navegacion_base+"&nodo_izq="+nodo_izq+"&uri="+uri;
				formulario.sub_contenido.options[formulario.sub_contenido.options.length] = new Option (catalogos[i].titulo, url_enlace);
			}
			break;
		case 'musica':
			nodo_izq = 4;
			
			uri = "/on/io/"+idioma+"/imagenio/programacion/musica/musica_miradio.html";
			url_enlace = url_navegacion_base+"&nodo_izq="+nodo_izq+"&uri="+uri;
			formulario.sub_contenido.options[formulario.sub_contenido.options.length] = new Option (txt_mi_radio, url_enlace);

			uri = "/on/io/"+idioma+"/imagenio/programacion/musica/musica_videoclips.html";
			url_enlace = url_navegacion_base+"&nodo_izq="+nodo_izq+"&uri="+uri;			
			formulario.sub_contenido.options[formulario.sub_contenido.options.length] = new Option (txt_videoclips, url_enlace);

			uri = "/on/io/"+idioma+"/imagenio/programacion/musica/musica_conciertos_catalogo.html";			
			url_enlace = url_navegacion_base+"&nodo_izq="+nodo_izq+"&uri="+uri;			
			formulario.sub_contenido.options[formulario.sub_contenido.options.length] = new Option (txt_conciertos, url_enlace);
			break;
		case 'noticias':
			nodo_izq = 4;
			uri = "/on/io/"+idioma+"/imagenio/programacion/noticias/noticias.html";
			url_enlace = url_navegacion_base+"&nodo_izq="+nodo_izq+"&uri="+uri;

			formulario.sub_contenido.options[formulario.sub_contenido.options.length] = new Option ("----", url_enlace);
			break;
		default:
			formulario.sub_contenido.options[formulario.sub_contenido.options.length] = new Option ("----", "");
	}
}

function submit_selector_consulta_contenidos (selector) {
	var url_enlace = selector.sub_contenido.value;

	if (url_enlace != "")
		top.location.href = url_enlace;
	else
		alert (txt_alert_tipo_contenido);

	return false;
}

/************************************************ FUNCIONES AUXILIARES ***************************/

//devuelve un array que contiene las diferentes categorías dadas de alta en el catálogo pasado como parámetro
function getCategorias (catalogo) {
	if (catalogo == null)
		return null;

	var categorias = new Array();
	for (var elementoi in catalogo) {
		var valorAsoc	= elementoi;
		var categoria	= catalogo[valorAsoc].categoria;
		if (inArray(categorias, categoria) == false) 
			categorias.push (categoria);
	}
	categorias.sort();

	return categorias;
}

//devuelve un array que contiene los diferentes géneros de una categoria pasada como parámetro
//si no se le pasa parámetro devuelve todos los géneros del catálogo pasado como parámetro
function getGeneros (catalogo, param_categoria){
	if (catalogo == null)
		return null;

	var generos = new Array();
	for (var elementoi in catalogo) {
		var valorAsoc	= elementoi;
		var categoria	= catalogo[valorAsoc].categoria;
		var genero		= catalogo[valorAsoc].genero;
		if ((categoria == param_categoria) || (param_categoria == null))	{
			if (inArray(generos, genero) == false) 
				generos.push (genero);
		}		
	}
	generos.sort();

	return generos;
}

