/**
*	file	funciones_enciclopedia.js
*	Esste código es propio y exclusivo para piratas OP 	(http://www.piratasop.com)
*	Implementado usando libreria mootools				(http://www.mootools.net)
*
*	Funciones para el control general de la pagina.
*/


var _cambio = 0;								// indica 0 cuando el menu principal esta cerrado y 2 cuando esta abierto
var _colorLetra = "#403d1a";					//color de las letras
var _enlaceAzul = "#20539b";					//color de las letras de los enlaces
var _borderForm = "dashed";						//color del borde del formulario
var _color_borderForm = "#a59c44";				//color2 del borde del formulario
var _nombreFoco = "";							// nombre de la id que tiene el foco en un formulario
var _RUTA										// ruta a seguir para llegar directorio raiz
var _cambio_ajax = 0;							// 0 si no hay ninguna peticion; 1 si hay alguna.


/**
* Ejecuta las primera funciones necesarias
* Argumentos:
* ruta:	 	ruta a seguir para llegar directorio raiz
*/
function comienzo(ruta)
{
	_RUTA = ruta;
	listaZebra($$(".lista div"));
	etLabel();
	formulario($$(".texto"));
}

/**
* Se encarga de los eventos de las listas de la pagina.<b>
* vector		: parametro con todos los divs que pertenecen a una lista.
*/
function listaZebra(vector)
{
	var claseEncima = "celda_encima";
	vector.each(function(ele)
	{
		var claseFuera = ele.className;

		ele.addEvents
		({
			"mouseenter"	: function(){ele.className = claseEncima},
			"mouseleave"	: function(){ele.className = claseFuera},
			"click"			: function()
			{
				var ref = ele.getElements("a")

	   		    if( ref != "")
		       		document.location.href = ref;
			}
		});
	});

}

/*
*	ejecuta los eventos de la etiqueta label en los formularios.
*/
function etLabel()
{
	var vector = $$(".formularios tr");
	vector.each(function(ele)
	{
		var tds = $$(ele.getElementsByTagName("td"));

		if(tds.length == 2)
		{
			var label = $$(tds[0].getElementsByTagName("label"));
			var border = $$(tds[1].getElementsByTagName("div"));
			var input = null
			input = tds[1].getFirst().getFirst();

			label.addEvents
			({
				"mouseover"			: function()
				{
				this.setStyle("color", _enlaceAzul);
				border.setStyle("border-left", "solid 1px "+_enlaceAzul);
				if(_nombreFoco != input.id) colorInput(input, 1);
				},

				"mouseout"			: function()
				{
					this.setStyle("color", _colorLetra);
					border.setStyle("border-left", _borderForm+" 1px "+_color_borderForm);
					if(_nombreFoco != input.id) colorInput(input, 0);
				}
			});
		}

	})
}

/*
*	Se encarga de los eventos de los inputs de los formularios
*	vector		array con todos los inputs de que hay en la pagina.
*/
function formulario(vector)
{
	vector.each(function(ele)
	{
		ele.addEvents
		({
			"focus"			: function(){colorInput(ele, 2); _nombreFoco = ele.id},
			"blur"			: function(){colorInput(ele,0); _nombreFoco = ""},
			"mouseenter"	: function(){if(_nombreFoco != ele.id)colorInput(ele, 1);},
			"mouseleave"	: function(){if(_nombreFoco != ele.id)colorInput(ele, 0);}
		});
	});
}


/*
*	Cambia de clase a los inputs dependiendo del tipo
*	input		: objeto del tipo input.text, input.password, textarea al cual se le va a cambiar la clase
*	tipo		: numero que indica que clase se le va a colocar.
*/
function colorInput(input, tipo)
{
	if((input.getTag() == "textarea") ? false : (input.type == "text" || input.type == "password" ?
	false : true))
		return;


	switch(tipo)
	{
		case 1:
			input.className = "texto_mouseOver";
		break;

		case 2:
			input.className = "texto_focus";
		break;

		case 0:default:
			input.className = "texto";
		break;
	}

}

/*
*	abre el perfil del usuario
*	id		indica el tipo de perfil que se va a mostrar
*/
function abrirPerfil(id)
{
//	if($$("#contenedor") == "") return;

	var deslizar = new Fx.Style("contenedor", "height",
	{
		onComplete: function()
		{
			if(_cambio==2) devLista(id);
		},
		wait: true,
		duration: 500
	});

	if(_cambio == 0)
	{
		_cambio = 2;
		$("contenedor_ajax").style.display = "none";
		$("cerrar").style.display = "block"
		deslizar.start("220px");
	}
	else if(_cambio == 2 && id == "cerrar")
	{
		_cambio = 0;
		$("cerrar").style.display = "none";
		deslizar.start("1px");
	}
	else if(_cambio == 2)
	{
		$("iconoError").style.display = "none"
		$("contenedor_ajax").style.display = "none";
		devLista(id);
	}


}

/*
*	realiza una conexion ajax al servidor y nos trae informacion que dependera
	de i
	i		parametro que nos dice que informacion vamos a recuperar.
*/
function devLista(i)
{
	if(_cambio_ajax== 1) return;

	var url = _RUTA + "recurso_ajax.php?ruta="+_RUTA+"&tipo=";

	switch(i)
	{
		case 1: case "mp":
			nombre = "mp";
			break;

		case 2: case "post":
			nombre = "post";
			break;

		case 3: case "enc":
			nombre = "enc";
			break;

		case 4: case "moderar":
			nombre = "modd";
			break;

		default:
			return;

	}

	_cambio_ajax = 1;
	url += nombre;

	$("iconoInfo").style.display = "block"

	new Ajax(url,
	{
		method: "post",
		onComplete: function(e)
		{
			$("iconoInfo").style.display = "none";
			$("iconoError").style.display = "none"
			var estilo = new Fx.Style("contenedor_ajax", "opacity", {duration: 500})
			estilo.set(0);
			$("contenedor_ajax").style.display = "block";
			$("contenedor_ajax").setHTML(e);
			estilo.start(1);
			listaZebra($$("#contenedor_ajax .lista div"));
			_cambio_ajax = 0;
		},
		onFailure: function()
		{
			$("iconoInfo").style.display = "none";
			$("contenedor_ajax").style.display = "none";
			$("iconoError").style.display = "block";
			_cambio_ajax = 0;
		}
	}).request();


}


