
//-----------------------------------------------------------------------------
function vex_InitPanel()
{
	vex_InitForms();
	vex_InitClickables();
	vex_InitExternals();

	var slideTarget = $E(".slidetarget");
	if (slideTarget) {
		slideTarget.fxSlide = new Fx.Style(slideTarget.id, "height", {duration: 500, wait: false}).set(0);
		$ES("input", slideTarget).each(function(e){
			e.disabled = true;
		});

		$$(".slidehide").each(function (e){
			e.addEvent("click", function(){
				var slideTarget = $E(".slidetarget");
				if (slideTarget && slideTarget.fxSlide) {
					slideTarget.fxSlide.start(slideTarget.fxSlide.now, 0);
					// Hay que deshabilitar los campos...
					$ES("input", slideTarget).each(function(e){
						e.disabled = true;
					});
				}
			});
		});
		$$(".slideshow").each(function (e){
			e.addEvent("click", function(){
				var slideTarget = $E(".slidetarget");
				if (slideTarget && slideTarget.fxSlide) {
					slideTarget.fxSlide.start(slideTarget.fxSlide.now, 160);
					// Hay que habilitar los campos...
					$ES("input", slideTarget).each(function(e){
						e.disabled = false;
					});
				}
			});
		});
	}


/*
	if ($("slide_proy")) {
		$("slide_proy").addEvent("click", function(){
				var myFx = new Fx.Style('cont_proyecto_nuevo', 'left');
				var myFx2 = new Fx.Style('cont_proyecto_antiguo', 'left');
				myFx.start(0, -690);
				myFx2.start(690, 0);
			});
	}
	if ($("slide_proy2")) {
		$("slide_proy2").addEvent("click", function(){
				var myFx = new Fx.Style('cont_proyecto_nuevo', 'left');
				var myFx2 = new Fx.Style('cont_proyecto_antiguo', 'left');
				myFx.start(-690, 0);
				myFx2.start(0, 690);
			});
	}
*/



}

//-----------------------------------------------------------------------------
function vex_InitExternals()
{
	$$("a").each(function(e) {
			if ((e.href.test("^https?:\/\/") && !e.href.test(document.domain))
					|| (e.getAttribute("rel") == "external")) {
				e.setAttribute("target", "_blank");
			}
		});
}

//-----------------------------------------------------------------------------
function vex_InitClickables()
{
	$$("div.clickable").each(function(el, i){
			var firstA = $E("a", el);
			if (firstA) {
				el.href = firstA.href;
				el.addEvent("click", function(){ doClickable(this.href); });
				el.addEvent("mouseover", function(){ this.addClass("hover") } );
				el.addEvent("mouseout",  function(){ this.removeClass("hover") } );
			}
		});
}

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

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

		// Para los selects, auto-submitters...
		$ES("select.auto_submit", el.id).addEvent("change", function() { this.form.submit(); });

		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(".campo", 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 && !input.disabled && form_elems[i].hasClass("required")) {
			var elemOk = false;

			if (input.tagName == "SELECT") {
				elemOk = input.getValue().trim().length > 0;
			} else if (input.type == "checkbox") {
				elemOk = input.checked;
			} else {
				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).focus(); }
		alert("Por favor, rellena correctamente los datos obligatorios.");
		event.stop();
	}
}

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