
var selElem = false;

//-----------------------------------------------------------------------------
function inicializa()
{
	makeForms();

	var divs = $$('.promo');

	var theForm = $("formpromo");
	theForm.fxFade = new Fx.Style(theForm, "opacity", {duration:800, wait:false});
	theForm.fxFade.hide();

	divs.each(function(e) {
		e.fxIn = new Fx.Styles(e, {duration:1000, wait:false, onComplete: muestraForm, transition: Fx.Transitions.bounceOut});
		e.fxOut = new Fx.Styles(e, {duration:1000, wait:false, onComplete: muestraPromos, transition: Fx.Transitions.quadOut});
		e.fxFade = new Fx.Style(e, "opacity", {duration:600, wait:false, onComplete: terminaFade});

		var imgMasInfo = $E("img.masinfo", e);
		imgMasInfo.fx = new Fx.Style(imgMasInfo, "opacity", {duration:500, wait:false});
		imgMasInfo.fx.hide();

		e.imagenInfo = imgMasInfo;
		e.origLeft = e.offsetLeft;  // Guardamos la distancia desde la Izquierda.
		e.moved = false;
		e.addEvent('click', function(){
			if (!this.moved) {
				var elems = $$('.promo');
				elems.each(function(el){
						if (el.id != this.id) {
							el.fxFade.start(1, 0);
						}
					}, this);

				selElem = this;
				selElem.moved = true;
				selElem.setStyle("cursor", "default");
			}
		});
	});
}

//-----------------------------------------------------------------------------
function terminaFade()
{
	if (selElem) {
		if (selElem.id != "acensuno") {
			selElem.fxIn.start({'left': [selElem.origLeft, 20]});
		} else {
			muestraForm();
		}
	}
}

//-----------------------------------------------------------------------------
function hazBack()
{
	$("formpromo").fxFade.start(1, 0);

	if (selElem) {
		if (selElem.id != "acensuno") {
			selElem.fxOut.start({'left': [20, selElem.origLeft]});
		} else {
			muestraPromos();
		}
	}
}

//-----------------------------------------------------------------------------
function muestraForm()
{
	var theForm = $("formpromo");
	theForm.fxFade.start(0, 1);

	if (selElem) {
		selElem.imagenInfo.fx.start(0, 1);

		$("id_form_prod").value = selElem.id;

		var titulo = $E("#formpromo h1");
		var nombreProd = "";
		switch (selElem.id) {
			case "acensuno": nombreProd = "acensUNO"; break;
			case "acenspro": nombreProd = "acensPRO"; break;
			case "acenstop": nombreProd = "acensTOP"; break;
		}
		titulo.setHTML("Petición de información sobre ", nombreProd);
	}
}

//-----------------------------------------------------------------------------
function muestraPromos()
{
	var elems = $$('.promo');
	elems.each(function(el){
			if (el.id != selElem.id) {
				el.fxFade.start(0, 1);
			}
		});

	selElem.imagenInfo.fx.start(1, 0);
	selElem.moved = false;
	selElem.setStyle("cursor", "pointer");
	selElem = false;
}


//-----------------------------------------------------------------------------
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;
	return false;
}


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

		el.addEvent("submit", submitForm);

		// Manejamos los botones. A todos los botones les metemos los
		// eventos mouseover/out para simular el :hover
		var bot = $ES("button", el);
		bot.addEvent("mouseover", function() { this.addClass("hover"); });
		bot.addEvent("mouseout",  function() { this.removeClass("hover"); });

		$ES("button.atras", el).addEvent("click", hazBack);
	});
}


//-----------------------------------------------------------------------------
Window.onDomReady(inicializa);

