opcion_seleccionada= new Array();
var cod_ant=0;
var nivel_ant=0;

function createRequestObject() {
	var ro;
	var browser = navigator.appName;
	if(browser == "Microsoft Internet Explorer") {
		ro = new ActiveXObject("Microsoft.XMLHTTP");	
	} else {
		ro = new XMLHttpRequest();	
	}
	return ro;
}

var http = createRequestObject();

// funcion que muestra el menú
function menuProductos(n) {
	var n= n || 0;
	var concurrencia= true;//(n==0);
	document.getElementById('padre_0').innerHTML= '<center><img src="imagenes/ajax-loader.gif" width="66" height="66" vspace="150"></center>';
	http.open('get','menu_productos.php', concurrencia);
	http.onreadystatechange = handleMenuProductos;
	http.send(null);
}

function handleMenuProductos () {
	if(http.readyState == 4) {
		var txt = http.responseText;
		if (txt == 'ERROR'){
			alert('La tabla de familias produjo un error');
		} else {
			document.getElementById('padre_0').innerHTML= txt;
		}
	}
}

function mostrarSubmenu(capa){
	if (document.getElementById(capa)){
		if ($(capa).style.display == 'block'){
			//document.getElementById(capa).style.display = 'none';
			Effect.SlideUp(capa);
			setTimeout("$('"+capa+"').style.display = 'none'",1000);
		} else {
			//document.getElementById(capa).style.display = 'block';
			Effect.SlideDown(capa);
			setTimeout("$('"+capa+"').style.display = 'block'",1000);
		}
	}
}

function pertenece(elemento,vector){
	var salida= false;
	for (var i=0; i< vector.length; i++){
		if (vector[i] == elemento){
			salida= true;
		}
	}
	return salida;
}

function pintarLogo(codigo){
	var cod= codigo.substr(0,1);
	switch (cod){
		case 'A': //var img= 'imagenes/logo_sennheiser_g.jpg';
		          var img= 'imagenes/logo_sennheiser_g.jpg"><div style="text-align:right;margin:20px;"><a href="http://www.sennheiser.com/sennheiser/home_es.nsf/root/service_download" target="_blank" style="text-decoration:none;font:bold 14px arial;color:#2496cc;">ver manuales de productos <img src="imagenes/external.gif" border="0"></a></div';
							break;
		case 'B': var img= 'imagenes/logo_neumann_g.jpg';
							break;
		case 'C': var img= 'imagenes/logo_switchcraft_g.jpg';
							break;
		case 'E': var img= 'imagenes/logo_konigmeyer_g.jpg';
							break;
		case 'F': var img= 'imagenes/logo_vdb_g.jpg';
							break;
		case 'G': var img= 'imagenes/logo_sennheiser_com_g.jpg';
							break;
		case 'I': var img= 'imagenes/logo_televic_g.jpg';
							break;
		case 'J': var img= 'imagenes/logo_speck_g.jpg';
							break;
		default : var img= '';
							break;
	}
	var salida= '';
	if (img != ''){
		salida= '<img src="'+img+'">';
	}
	
	return salida;
}
// Función que define el comportamiento del menu al ser pulsado uno de los botones. Solo entra aquí cuando abrimos un menú. Se le pasa por parametro el código del menu pulsado.
function accionMenu (cod){
	//Comprobamos si el menu esta ya desplegado	
	if (! pertenece(cod,opcion_seleccionada)){
		$('noticias').style.display= 'block';
		// Sacamos el número de nivel accionado mediante el nombre del estilo de la capa
		var nivel_accionado= parseInt($('menu'+cod).className.substr(9,$('menu'+cod).className.length));
// Necesitamos sacar el nombre de la imagen que está junto a la familia para cambiarla al abrir el menu.
// Tanto flechas como cuadrados tienen nombres de 6 letras seguidos de un "_", el nivel con dos cifras y "_b" en caso de ser la imagen abierta. Extensión .jpg
		// Sacamos el nombre de la imagen. El resultado da la ruta completa
		var imagen=document.getElementById('img'+cod).src;
		// La cortamos para quedarnos sólo con el nombre del archivo "cuboss_0" o "flecha_0"
		var imagen_cortada= imagen.substr((imagen.length-17), 12);
		// definimos im_sust como la imagen por la que hay que sustituir sumandole el nivel y el _b
		im_sust=imagen_cortada+nivel_accionado+'_b.jpg';
		//Cambiamos la imagen de la capa.
		document.getElementById('img'+cod).src='imagenes/'+im_sust;
		// Recuadramos la capa para que se vea seleccionada
		document.getElementById('menu'+cod).style.border='2px solid #E67817';
		
		// La siguiente parte de código se usa para cerrar las imagenes de los menus y quitar los recuadros una vez se pulsa un nuevo boton
		// para ello se guarda el codigo del nivel que se habia pulsado anteriormente en la variable cod_ant.		
		
		// Si es la primera vez que pulsamos en el menú no hacemos nada, en otro caso entramos en el código
		if ((cod_ant!=0)){
			document.getElementById('menu'+cod_ant).style.border='none';
			// Caso 1: Si abrimos un menu del mismo nivel solo tenemos que modificar una capa
			if (nivel_accionado==nivel_ant){
				// Al igual que antes, sacamos la imagen, la cortamos y sustituimos el final de la misma.				
				var imagen2=document.getElementById('img'+cod_ant).src;
				var imagen_cortada2= imagen2.substr((imagen2.length-19), 12);
				var im_sust2=imagen_cortada2+nivel_ant+'.jpg';
				document.getElementById('img'+cod_ant).src='imagenes/'+im_sust2;
			// Caso 2: el nivel del boton pulsado es menor del anterior. En este caso hay que ir cambiando las imagenes recursivamente
			// hasta el nivel actual.
			} else if (nivel_ant>nivel_accionado){
				// Desde la longitud del codigo del menu (elegimos esto mejor que el nivel por problemas con categorías que tienen un 0) hasta 
				// la longitud del codigo del boton pulsado.				
				for (var j=cod_ant.length; (j>=cod.length); j--) {
					// Sacamos el código de la capa a cerrar
					var cod_cerrar= cod_ant.substr(0,j);
					// Este if es para saltarnos la repeticion en caso de que hayamos llegado a un nivel "fantasma" de ciertas categorias de magnetron
					if ((cod_cerrar.length==2) && (cod_cerrar.substr(1,1)==0)){
					} else {					
						// Realizamos la misma operacion que anteriormente
						if ($('menu'+cod_cerrar)){
  						var clase= $('menu'+cod_cerrar).className;
  						var long= clase.length;
  						var nivel_cerrar= parseInt(clase.substr(9,long));
  						var imagen3=document.getElementById('img'+cod_cerrar).src;
  						var imagen_cortada3= imagen3.substr((imagen3.length-19), 12);
  						var im_sust3=imagen_cortada3+nivel_cerrar+'.jpg';
  						document.getElementById('img'+cod_cerrar).src='imagenes/'+im_sust3;
  					}
					}
				}
			}
		}
		// Asignamos el codigo y el nivel a las variables que contienen los anteriores.	
		cod_ant=cod;
		nivel_ant=nivel_accionado;
		
		//alert('lvl:'+nivel_accionado);
		
		//Recorremos todas las opciones del menu para desplegar el submenu seleccionado y recoger el resto
		var lista= document.getElementById('ids_menu_prod').value || '';
		var todos= lista.split('|');
		for (var i=0; i < todos.length; i++){
			var capa= 'submenu_dist'+todos[i];
			if ($(capa)){
				
				if (todos[i] == cod){
					Effect.SlideDown(capa);
					//setTimeout("Effect.SlideDown('"+capa+"')",1000);
					setTimeout("$('"+capa+"').style.display = 'block'",1000);
				} else {
					var nivel_temp= parseInt($('menu'+todos[i]).className.substr(9,$('menu'+todos[i]).className.length));
					//alert('menu:'+todos[i]+'\nnivel:'+nivel_temp);
					if (nivel_temp >= nivel_accionado){
						if ($(capa).style.display == 'block'){
							//setTimeout("Effect.SlideUp('"+capa+"')",1000);
							Effect.SlideUp(capa);
							setTimeout("$('"+capa+"').style.display = 'none'",1000);
						}
					}
				}
			}
		}
		
		// añadimos el codigo seleccionado a la lista opcion_seleccionada
		var temporal= new Array();
		for (var i=0; i < opcion_seleccionada.length; i++){
			temporal[i]= opcion_seleccionada[i];
		}
		for (var i=0; i < opcion_seleccionada.length; i++){
			opcion_seleccionada[i]=0;
		}
		for (var i=0; i < nivel_accionado; i++){
			opcion_seleccionada[i]= temporal[i]
		}
		opcion_seleccionada[nivel_accionado]= cod;
		for (var i=0; i < opcion_seleccionada.length; i++){
		}

		//mostramos los productos de la opcion seleccionada
		verProductos(cod)
	//	document.getElementById('ruta_selected').innerHTML= document.getElementById('lnk_menu'+cod).innerHTML;
	}
}

function trim (string) {
	var whitespace = ' nrtvfu00a0u2000u2001u2002u2003u2004u2005u2006u2007u2008u2009u200au200bu2028u2029u3000';
	for (var i = 0; i < string.length; i++) {
		if (whitespace.indexOf(string.charAt(i)) === -1) {
			string = string.substring(i);
			break;
		}
	}
	for (i = string.length; i > 0; i--) {
		if (whitespace.indexOf(string.charAt(i)) === -1) {
			string = string.substring(0, i);
			break;
		}
	}
	return whitespace.indexOf(string.charAt(0)) === -1 ? string : '';
}

// Función que muestra los productos. Todas las operaciones se realizan en la función handlerVerProductos(). Desde aquí se llama
// a la página PHP de la que se extraen los resultados;
function verProductos (cat){
	http.open('get','datos_productos.php?cat='+cat);
	http.onreadystatechange = handleVerProductos;
	http.send(null);
}
// Función con todas las operaciones necesarias para mostrar los productos. Recibe con el http.responseText el resultado de la llamada
// a la página PHP, que contiene el código HTML maquetado con los datos de productos.
function handleVerProductos(){
	// Comprobamos que el estado de la llamada al PHP sea finalizada.
	if(http.readyState == 4) {
		// Creamos la variable txt, que tiene en su interior la respuesta del PHP. Cada uno d elos registros está maquetado
		// y separado por un delimitador, en este caso la cadena de texto |||###.
		var txt = http.responseText;
		// Si hemos encontrado un error a la hora de relizar la query en el PHP mostramos que ha habido error.
		if (txt.substr(0,5) == 'ERROR'){
			alert('Se produjo un error:\n'+txt);
		} else {
			var content2= trim(txt);
			if (content2 != ''){
				$('noticias').innerHTML= txt;
			} else {
				$('noticias').innerHTML= '<center style="padding-top:200px;">'+pintarLogo(cod_ant)+'</center>';
			}
		} //if2
	} // if1

//Pendiente de rellenar
}

function salir_detalle(){
	$('noticias').innerHTML= $('contenido_temporal').innerHTML;
	$('contenido_temporal').innerHTML= '';
}

function ver_detalle (id,familia){
 $('contenido_temporal').innerHTML= $('noticias').innerHTML;
 http.open('get','datos_detalle.php?id='+id+'&fam='+familia,true);
 http.onreadystatechange = handleVerDetalle;
 http.send(null);
}

function handleVerDetalle(){
 if(http.readyState == 4) {
  var txt = http.responseText;
  if (txt.substr(0,5) == 'ERROR'){
   alert('Se produjo un error:\n'+txt);
  } else {
	  $('noticias').innerHTML= txt;
	  scroll(0,0);
	}
 }
}