
/*
 *
 */
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();

	// Smooth scroll para los elementos de FAQ.
//	new SmoothScroll();

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

		elemRotacion.addEvent('mouseover', function () { rotacionActiva = false && !rotacionVideo; } );
		elemRotacion.addEvent('mouseout',  function () { rotacionActiva = true  && !rotacionVideo; } );
		fadeRotaOut = new Fx.Style("rotacion", "opacity", {duration: 300, onComplete: cambiaNuevoBanner });
		fadeRotaIn  = new Fx.Style("rotacion", "opacity", {duration: 300, onComplete: nuevoBannerEndFade });
		fadeAjax = new Ajax('/ajax/dame-banner.html', {
								method: 'get',
								onComplete: rotarBanner
							});
		fadeAjaxVideo = new Ajax('/ajax/banner-video.html', {
								method: 'get',
								onComplete: rotarBanner
							});

//		fadeAjax.headers["Connection"] = "Close";
//		fadeAjaxVideo.headers["Connection"] = "Close";
	}
}

//
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 nuevoBannerEndFade()
{
	var vfile = (typeof nombre_video == "undefined") ? "acens_web_300_700.flv" : nombre_video;

	if (rotacionVideo) {
		amplia = new Fx.Style("rotacion", "height", {duration: 300, onComplete: function(){
					var FU = {
						id:"flvvideo",
						name:"flvvideo_name",
						movie:"/mkt/flash/flvplayer.swf",
						width: "710",  // 350
						height: "360",
						majorversion: "7",
						build: "0",
						bgcolor: "#FFFFFF",
						allowfullscreen: "false",
						flashvars: "file=/mkt/video/" + vfile + "&displayheight=360&autostart=true&enablejs=true&logo=/mkt/video/mosca.png&link=javascript:acensFlashStopVideo()" };
					UFO.create(	FU, "banner_video");
				}});
		amplia.custom(180,360);
		$("rotacion").setStyle("background", "#333");

		rotacionActiva = false;
		rotacionFinVideo = false;
	}

	if (rotacionFinVideo) {
		amplia = new Fx.Style("rotacion", "height", {duration: 300, onComplete: function(){
					rotacionActiva = true;
					$("rotacion").setStyle("background", "#F0F0F0");
				}});
		amplia.custom(360,179);

		rotacionFinVideo = false;
	}
}

//-----------------------------------------------------------------------------
function getUpdate(typ,pr1,pr2)
{
	/*  typ = item | volume | state | time | load  */

	if (typ == "state") {
		// Estado:0, el video entra en pausa.
		if (pr1 == 0) {
			var vthumb = $("fvideo_thumb");
			if (vthumb) {
				vthumb.GotoFrame(0);
				vthumb.Play();
			}
		}

		// Estado:2, el video entra en reproduccion.
		if (pr1 == 2) {
			var vthumb = $("fvideo_thumb");
			if (vthumb) {
				vthumb.GotoFrame(17);
				vthumb.Play();
			}
		}

		// Estado:3, finaliza el video, tenemos que sacarlo del documento.
		if (pr1 == 3) {
			rotacionActiva = true;
			rotacionVideo = false;
			rotacionFinVideo = true;
			cambiarBanner();
		}
	}
}


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

//-----------------------------------------------------------------------------
function cambiarBannerVideo()
{
	rotacionActiva = false;
	rotacionVideo  = true;
	fadeAjaxVideo.request();
}

//-----------------------------------------------------------------------------
function acensFlashPlayVideo()
{
	var vPlayer = $("flvvideo");

	// ¿Video activo?
	if (rotacionVideo && vPlayer) {
		// El video está activo, play del video.
		vPlayer.sendEvent("playpause");
	} else {
		// El video no está activo, iniciarlo...
		cambiarBannerVideo();
	}
}

//-----------------------------------------------------------------------------
function acensFlashPauseVideo()
{
	acensFlashPlayVideo();
}

//-----------------------------------------------------------------------------
function acensFlashStopVideo()
{
	var vPlayer = $("flvvideo");

	if (vPlayer) {
		vPlayer.sendEvent("stop");
		getUpdate("state", 3);
	}
}


//-----------------------------------------------------------------------------
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 = $$(".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 = $$("a").filterByAttribute("rel", "external", "=");
	elems.each(function(e) {
			e.setAttribute("target", "_blank");
		});
*/

	var elems = $$("a");
	elems.each(function(e) {
			if ((e.href.test("^https?:\/\/") && !e.href.test(document.domain))
					|| (e.getAttribute("rel") == "external")) {
				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, select", 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()
{
	$$("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");
			}
*/

		});
}
