
/*
 *
 */
function Enviar(id)
{
	var form = $(id);

	if (typeof form == "undefined") {
		return false;
	}
	form.submit();
	return true;
}

/*
 *
 */
function SubmitEnter(myfield,e)
{
	var keycode;
	var elem = $(myfield);

	if (typeof elem == "undefined") return false;

	if (window.event) keycode = window.event.keyCode;
	else if (e) keycode = e.which;
	else return true;

	if (keycode != 13) return true;

	if (elem.type == "password") {
		Enviar('form_panel');
		return false;
	} else {
		$("panel_password").focus();
	}

}


//-----------------------------------------------------------------------------
function inicializaPagina()
{
	// Hacer clickables los elementos de caja...
	makeClick();
	makePresslog();
	makeExternals();
	makeForms();

	// Si existe el "rotador" de banners, los vamos rotando.
	var elemRotacion = $("rotacion");
	if (elemRotacion) {
		setInterval(cambiarBanner, 8000);
		rotacionActiva = true;

		elemRotacion.addEvent('mouseover', function () { rotacionActiva = false; } );
		elemRotacion.addEvent('mouseout',  function () { rotacionActiva = true;  } );
		fadeRotaOut = new Fx.Opacity("rotacion", {duration: 300, onComplete: cambiaNuevoBanner });
		fadeRotaIn  = new Fx.Opacity("rotacion", {duration: 300 });
		fadeAjax = new Ajax('/ajax/', {
								method: 'get',
								onComplete: rotarBanner
							});
	}
}

//
function __init_delay() { inicializaPagina.delay(500); }
Window.onDomReady( __init_delay );


//-----------------------------------------------------------------------------
function rotarBanner(ajaxRequest)
{
	lastRequest = ajaxRequest;

	fadeRotaOut.custom(1, 0);
}

//-----------------------------------------------------------------------------
function cambiaNuevoBanner()
{
	// Acaba de terminar el efecto de fade-out, reemplazamos...
	$("rotacion").setHTML( lastRequest );
	fadeRotaIn.custom(0, 1);
}


//-----------------------------------------------------------------------------
function cambiarBanner()
{
	if (rotacionActiva) fadeAjax.request();
}


//-----------------------------------------------------------------------------
function doBannerClick(_href)
{
	document.location = _href;
}


//-----------------------------------------------------------------------------
function makeClick()
{
	var elems = document.getElementsByClassName("clickable");
	for (var i=0; i<elems.length; i++) {
		var hrefs = elems[i].getElementsByTagName("a");
		if (hrefs.length) {
			elems[i].href = hrefs[0].href;
			elems[i].onclick = function() { doBannerClick(this.href); };
		}
	}
}


//-----------------------------------------------------------------------------
function makePresslog()
{
	var elems = $S(".anno a", "archivo");

	for (var i=0; i<elems.length; i++) {
		var target = elems[i].getProperty("rel");
		if (target) {
			elems[i].effect = new Fx.Slide(target, { wait: false });
			if ($(target).hasClass("hidden")) {
				elems[i].effect.hide();
				$(target).removeClass("hidden");
			}
			elems[i].href = "javascript:void(0);";
			elems[i].addEvent("click", function() {
							this.toggleClass("selected");
							this.effect.toggle();
						});
		}
	}
}

//-----------------------------------------------------------------------------
function makeExternals()
{
/*
	var elems = $S("a").filterByAttribute("rel", "external", "=");
	elems.each(function(e) {
			e.setAttribute("target", "_blank");
		});
*/

	var elems = $S("#contenido a");
	elems.each(function(e) {
			if (e.href.test("^http:\/\/") && !e.href.test(document.domain)) {
				e.setAttribute("target", "_blank");
			}
		});

}

//-----------------------------------------------------------------------------
function submitForm(e)
{
	var todoOk = true;
	if (e.type != "submit") return false;

	// Comprobamos los datos.
	var form_elems = $ES(".fila_form", this);
	var form_focus = null;

	for (var i=0; i<form_elems.length; i++) {
		var input = $E("input, textarea", form_elems[i]);

		if (input && form_elems[i].hasClass("required")) {
			var elemOk = false;
			elemOk = input.getValue().trim().length > 0;

			// OK, el elemento tiene contenido... żEs un email?
			if (elemOk && form_elems[i].hasClass("checkemail")) {
				elemOk =  input.getValue().test("@");
			}
			if (elemOk) {
				form_elems[i].removeClass("error");
			} else {
				form_elems[i].addClass("error");
				todoOk = false;
				if (!form_focus) form_focus = input;
			}
		}
	}
	if (!todoOk) {
		if (form_focus) { $(form_focus.id).focus(); }
		alert("Por favor, rellene correctamente los datos obligatorios.");
		if (e.preventDefault) e.preventDefault();
		return false;
	}
	return true;
}


//-----------------------------------------------------------------------------
function makeForms()
{
	$S("form").each(function(el) {

			// Manejamos los botones. A todos los botones les metemos los
			// eventos mouseover/out para simular el :hover
			$ES("button", el).action({
					mouseoverevent:	function() { this.addClass("hover"); },
					mouseoutevent:	function() { this.removeClass("hover"); }
				});

			el.addEvent("submit", submitForm);

/*
			e.foldError = fold;
			if (fold && e.id) {
				fold.id = "fold_" + e.id;
				fold.effect = new Fx.Slide(fold.id, { wait: false });
				fold.effect.hide();
				fold.setStyle("display", "block");
			}
*/

		});
}
