//-----------------------------------------------------------------------------
carrousel = [];
activo = true;

//-----------------------------------------------------------------------------
function vex_InitDocument()
{
	vex_InitCarrousel();
	vex_InitForms();

	if (typeof Shadowbox != "undefined")
		Shadowbox.init({
				assetURL: "",
				loadingImage: "img/loading.gif",
				overlayBgImage: "img/overlay-85.png",
				text: {
					cancel: "Cancelar",
					loading: "cargando",
					close: 'Cerrar ventana',
					next: 'Siguiente',
					prev: 'Anterior'
				},
				onOpen: function()  { activo = false; },
				onClose: function() { activo = true;  }
			});
}


//-----------------------------------------------------------------------------
function avanzaCarrousel()
{
	var theCarr = $("carrousel");
	if (!theCarr || !activo) return;

	var offsetX = Math.abs(theCarr.getPosition(theCarr.getParent()).x);
	for (var i = 0, l = carrousel.length; i < l; i++){
		var tempPos = carrousel[i].getPosition(carrousel[i].getParent()).x;

		if (tempPos > offsetX) {
			theCarr.tween("left", theCarr.getPosition(theCarr.getParent()).x, -tempPos);
			return;
		}
	}
	theCarr.tween("left", 0, -260);
}

//-----------------------------------------------------------------------------
function vex_InitCarrousel()
{
	idx = 0;
	$$("#carrousel .thumb").each(function(el, i){
			carrousel[idx] = el;
			idx++;
		});
	avanzaCarrousel.periodical(3000);
}

//-----------------------------------------------------------------------------
function vex_InitForms()
{
	$$("form").each(function(el) {
		// Añadir la clase "hover" en los botones para simular el pseudoselector :hover
		$ES("button", el).addEvent( "mouseover", function() { this.addClass("hover"); } );
		$ES("button", el).addEvent( "mouseout",  function() { this.removeClass("hover"); } );

		// También a los "input" con .class "boton".
		$ES("input.boton", el).addEvent( "mouseover", function() { this.addClass("hover"); } );
		$ES("input.boton", el).addEvent( "mouseout",  function() { this.removeClass("hover"); } );

		el.addEvent("submit", submitForm);
	});
}


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

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

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

		if (input && form_elems[i].hasClass("required")) {
			var elemOk = false;

			if (input.tagName.toLowerCase() == "select") {
				elemOk = input.value.trim().length > 0;
			} else if (input.type == "checkbox") {
				elemOk = input.checked;
			} else {
				elemOk = input.value.trim().length > 0;
			}

			// OK, el elemento tiene contenido... ¿Es un email?
			if (elemOk && form_elems[i].hasClass("checkemail")) {
				elemOk =  input.value.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).focus(); }
		alert("Por favor, rellena correctamente los datos obligatorios.");
		event.stop();
	} else {
		var btnEnviar = $E("input.envio");
		if (btnEnviar) {
			btnEnviar.addClass("disabled");
			btnEnviar.disabled = "true";
			var divLoader = $("loader");
			divLoader.setStyle("visibility", "visible");
		}
	}
}


//=============================================================================
window.addEvent("domready", vex_InitDocument );
