Event.observe(window,'load',cargaEventosMenuInferior);

var zona_contenido;
var zona_contenido_oculta = false;
var zona_contenido_aparece_tiempo = 1.0;
var zona_contenido_desaparece_tiempo = 0.1;

var mi_direccion_peticiones = "/datos.php";
var mi_ancho_contenedor = 920;
var mi_ancho_producto = 75;

var mi_fuerza = 0;
var mi_fueza_tope = 30;
var mi_direccion = 0;
var mi_frecuencia = 100;
var mi_efecto_aparece_tiempo = 1.0;
var mi_efecto_desaparece_tiempo = 0.1;
var mi_timeout = 0;
var mi_interval = 0;
var mi_pos_timeout = 0;
var mi_posicion_actual = 0;

var mi_contenedor;
var mi_boton_izquierda;
var mi_boton_derecha;
var mi_contenido_inicial;
var mi_submenu;
var mi_id_submenu = 0;
var mi_categoria_submenu = 0;
var mi_submenu_abierto = false;
var mi_opcion_menu_actual;
var mi_datos_submenu;

/* Lista (UL) con los productos */
var mi_lista_contenido;
var mi_lista_contenido_copias;

/* La lista repetida tantas veces como sea necesario para llenar el ancho */
var mi_bloque_contenido;
var mi_bloque_ancho;

/* El bloque repetido 3 veces para poder moverlo a izquierda y derecha */
var mi_franja;
var mi_franja_izquierda;
var mi_franja_derecha;

function cargaEventosMenuInferior() {
	zona_contenido = $('zona_central');
	mi_contenedor = $('menu_inferior_contenedor');
	mi_boton_izquierda = $('menu_inferior_izquierda');
	mi_boton_derecha = $('menu_inferior_derecha');
	mi_contenido_inicial = $('contenido_menu_inferior');
	mi_submenu = $('menu_inferior_submenu');
	mi_submenu.setStyle({left: '0px', top: '0px', zoom: '1'});

	mi_lista_contenido = $('contenido_menu_inferior_lista');
	
	if ( mi_lista_contenido != undefined ) {
		//reemplazaListadoMI();
		contenidoCorrecto = reemplazaListadoMI();
		if ( contenidoCorrecto ) {
			mi_timeout = setTimeout("posicionaMI()",mi_frecuencia);
			
			Event.observe(mi_boton_izquierda,'mouseover',sobreFlechaIzquierdaMI);
			Event.observe(mi_boton_izquierda,'mouseout',fueraFlechaIzquierdaMI);
			Event.observe(mi_boton_derecha,'mouseover',sobreFlechaDerechaMI);
			Event.observe(mi_boton_derecha,'mouseout',fueraFlechaDerechaMI);
			
			muestraMenuMI();
		}
	}
}

function reemplazaListadoMI() {
	var tmp_div = Builder.node('div');
	tmp_div.addClassName('contenido_menu_inferior_lista_div');
	
	mi_lista_contenido.childElements().each(function(s,index) {
		var tmp_a = s.childElements()[0];
		var tmp_div2 = Builder.node('div',{p_id: tmp_a.getAttribute('p_id'), p_categoria: tmp_a.getAttribute('p_categoria')});
		var tmp_img = Builder.node('img',{width: '75px', height: '75px', border: '0', src: tmp_a.getAttribute('p_imagen'), alt: tmp_a.innerHTML});
		tmp_div2.appendChild(tmp_img);
		tmp_div.appendChild(tmp_div2);
	});
	
	mi_contenido_inicial.innerHTML = '';
	mi_contenido_inicial.appendChild(tmp_div);

	mi_lista_contenido = tmp_div;

	return preparaBloqueContenido();
}

function preparaBloqueContenido() {
	mi_contenido_inicial.setStyle({overflow: 'hidden'});
	mi_contenido_inicial_ancho = anchoContenidoInicialMI();

	if ( mi_contenido_inicial_ancho != -1 ) {
		if (  mi_contenido_inicial_ancho >= mi_ancho_contenedor ) {
			mi_lista_contenido_copias = 1;
		}
		else {
			mi_lista_contenido_copias = Math.ceil(mi_ancho_contenedor / mi_contenido_inicial_ancho);
		}
		
		mi_bloque_contenido = duplicaContenido(mi_lista_contenido,mi_lista_contenido_copias);
		mi_lista_contenido.parentNode.removeChild(mi_lista_contenido);
		mi_bloque_ancho = mi_contenido_inicial_ancho*mi_lista_contenido_copias;
		
		mi_franja = creaFranja(mi_bloque_contenido);
		
		mi_contenedor.setStyle({width: mi_ancho_contenedor+'px', overflow: 'hidden'});
		mi_contenedor.makeClipping().setStyle({width:  mi_ancho_contenedor+'px', height: '75px'});
		mi_contenedor.appendChild(mi_franja);
			
		$$('.contenido_menu_inferior_lista_div div').each(function(s,index) {
			s.setStyle({cursor: 'pointer'});
			Event.observe(s,'click',function(e) {
				mi_opcion_menu_actual=s; 
				mi_id_submenu=s.getAttribute('p_id'); 
				mi_categoria_submenu=s.getAttribute('p_categoria'); 
				clickSubMenuMI();
			});
		});
		return true;
	}
	else {
		return false;
	}
}

function duplicaContenido(contenido,veces) {
	var lista_temporal = Builder.node('div',{id:'mi_bloque_contenido'});
	
	for(var i=1 ; i<=veces ; i++) {
		div_tmp = Builder.node('div');
		div_tmp.addClassName('contenido_menu_inferior_lista_div');
		div_tmp.innerHTML = contenido.innerHTML;
		lista_temporal.appendChild(div_tmp);
	}
	
	return lista_temporal;
}

function creaFranja(bloque) {
	var mi_franja_tmp = Builder.node('div',{id:'mi_franja'});
	
	mi_franja_izquierda = Builder.node('div',{id:'mi_franja_izquierda'});
	mi_franja_derecha = Builder.node('div',{id:'mi_franja_derecha'});
	
	mi_franja_izquierda.innerHTML = bloque.innerHTML;
	mi_franja_derecha.innerHTML = bloque.innerHTML;
	
	mi_franja_tmp.appendChild(mi_franja_izquierda);
	mi_franja_tmp.appendChild(mi_franja_derecha);
	
	mi_franja_tmp.setStyle({width: (mi_bloque_ancho*2)+'px'});
	
	return mi_franja_tmp;
}

function posicionaMI() {
	clearTimeout(mi_timeout);
	if ( mi_fuerza != 0 || mi_direccion != 0 ) {
		if ( mi_posicion_actual >= 0 && mi_fuerza > 0 ) {
			mi_posicion_actual = ( mi_posicion_actual - mi_bloque_ancho );
		}
		
		if ( mi_posicion_actual <= (mi_bloque_ancho*-1) && mi_fuerza < 0 ) {
			mi_posicion_actual = 0;
		}
		
		//mi_posicion_actual = mi_posicion_actual+(mi_fuerza*mi_direccion);
		mi_posicion_actual = mi_posicion_actual+mi_fuerza;
		mi_franja.setStyle({left: mi_posicion_actual+'px'});
		
		if ( mi_submenu.getStyle('display') != 'none' ) {
			if ( parseInt(mi_submenu.getStyle('left').replace('px','')) < mi_contenedor.cumulativeOffset().left ||  (parseInt(mi_submenu.getStyle('left').replace('px',''))+mi_submenu.getWidth()) > (mi_contenedor.cumulativeOffset().left+mi_contenedor.getWidth()) ) {
				ocultaSubMenuMI();
				mi_muestra_contenido_pagina();
			}
			else {
				mi_submenu.setStyle({left: (parseInt(mi_submenu.getStyle('left').replace('px',''))+mi_fuerza)+"px"});
			}
		}
		
		desaceleraMI();
		mi_timeout = setTimeout("posicionaMI()",mi_frecuencia);
	}
}

function desaceleraMI() {
	if ( mi_fuerza < 0 ) {
		mi_fuerza+=1;
	}
	else {
		mi_fuerza-=1;
	}
}

function sumaFuerzaMI() {
	if ( mi_fuerza < mi_fueza_tope ) {
		mi_fuerza += 2;
	}
}

function restaFuerzaMI() {
	if ( mi_fuerza > (mi_fueza_tope*-1) ) {
		mi_fuerza -= 2;
	}
}

function sobreFlechaIzquierdaMI() {
	this.addClassName('sobre');
	mi_direccion = 1;
	mi_interval = setInterval("sumaFuerzaMI()",mi_frecuencia);
	mi_timeout = setTimeout("posicionaMI()",mi_frecuencia);
}

function sobreFlechaDerechaMI() {
	this.addClassName('sobre');
	mi_direccion = -1;
	mi_interval = setInterval("restaFuerzaMI()",mi_frecuencia);
	mi_timeout = setTimeout("posicionaMI()",mi_frecuencia);
}

function fueraFlechaIzquierdaMI() {
	this.removeClassName('sobre');
	mi_direccion = 0;
	clearInterval(mi_interval);
}

function fueraFlechaDerechaMI() {
	this.removeClassName('sobre');
	mi_direccion = 0;
	clearInterval(mi_interval);
}

function anchoContenidoInicialMI() {
	var  ancho_total = 0;
	
	mi_lista_contenido.childElements().each(function(s,index) {
		ancho_total += s.getWidth();
	});
	
	if ( ( ancho_total < mi_ancho_producto ) ) {
		ancho_total = -1;
	}
	
	return ancho_total;
}

function muestraMenuMI() {
	mi_contenedor.setStyle({display: ''});
	mi_boton_izquierda.setStyle({display: ''});
	mi_boton_derecha.setStyle({display: ''});
}

function clickSubMenuMI() {
	var url = mi_direccion_peticiones+"?id="+mi_id_submenu+"&categoria="+mi_categoria_submenu;

	new Ajax.Request(url, {
		method: 'post',
		onSuccess: function(transport) {
			if (transport.responseText!='') {
				var json = eval(transport.responseText);
				mi_datos_submenu = json;
				ocultaSubMenuMI();
				setTimeout("cargaDatosSubMenuMI()",(mi_efecto_desaparece_tiempo*1000)+100);
			}
		}
	});
}

function cargaDatosSubMenuMI() {
	mi_div_tmp = Builder.node('div');
	mi_div_tmp.addClassName('menu_inferior_submenu_bloque');
	
	mi_cerrar_div = Builder.node('div');
	mi_cerrar_div.addClassName('menu_inferior_submenu_cerrar');
	Event.observe(mi_cerrar_div,'click', function(e) {
		ocultaSubMenuMI();
		mi_muestra_contenido_pagina();
	});
	mi_div_tmp.appendChild(mi_cerrar_div);
	
	for ( var i=0 ; i<mi_datos_submenu.length ; i++ ) {
		mi_div2_tmp = Builder.node('div');
		mi_a_tmp = Builder.node('a',{href:'producto.php?id='+mi_datos_submenu[i].IdProducto,target:'_self'});
		mi_img_tmp = Builder.node('img',{width:'75',height:'75',alt:mi_datos_submenu[i].Nombre,src:mi_datos_submenu[i].Imagen,border:'0'});
		mi_div2_tmp.appendChild(mi_a_tmp);
		mi_a_tmp.appendChild(mi_img_tmp);
		mi_div_tmp.appendChild(mi_div2_tmp);
	}
	mi_submenu.innerHTML = '';
	mi_submenu.appendChild(mi_div_tmp);
	cambiaSubMenuMI(mi_submenu);
}

function cambiaSubMenuMI(submenu) {
	if ( mi_submenu_abierto ) {
		ocultaSubMenuMI();
		setTimeout("muestraSubMenuMI()",(mi_efecto_desaparece_tiempo*1000)+100);
	}
	else {
		muestraSubMenuMI();
	}
	mi_oculta_contenido_pagina();
}

function muestraSubMenuMI() {
	mi_submenu_abierto = true;
	posicionaSubMenuMI();
	mi_submenu.setStyle({display: 'none', opacity: '1'});
	Effect.Appear(mi_submenu, { duration: mi_efecto_aparece_tiempo, queue:'last' });
}

function ocultaSubMenuMI() {
	if ( mi_submenu_abierto ) {
		mi_submenu_abierto = false;
		Effect.Fade(mi_submenu, { duration: mi_efecto_desaparece_tiempo , queue:'first' });
	}
}

function posicionaSubMenuMI() {
	var alto_opcion = mi_opcion_menu_actual.getHeight();
	var alto_lista = mi_submenu.getHeight();

	mi_submenu.clonePosition(mi_opcion_menu_actual,{setLeft:true,setTop:true,setWidth:false,setHeight:false,offsetTop:(alto_lista*-1)+alto_opcion});
}

function mi_oculta_contenido_pagina() {
	/* Ocultar menu izquierda */
	if ( mli_abierto ) {
		cierraMLI();
	}
	/* Ocultar menu derecha */
	if ( mld_abierto ) {
		cierraMLD();
	}
	/* Ocultar zona contenido */
	mi_oculta_zona_contenido();
}

function mi_muestra_contenido_pagina() {
	/* Mostrar zona contenido */
	mi_muestra_zona_contenido();
}

function mi_oculta_zona_contenido() {
	if ( ! zona_contenido_oculta ) {
		zona_contenido_oculta = true;
		Effect.Fade(zona_contenido, { duration: zona_contenido_desaparece_tiempo , queue:'first' });
	}
}

function mi_muestra_zona_contenido() {
	if ( zona_contenido_oculta ) {
		zona_contenido_oculta = false;
		Effect.Appear(zona_contenido, { duration: zona_contenido_aparece_tiempo, queue:'last' });
	}
}