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

	new SmoothScroll();
}

//-----------------------------------------------------------------------------
function vex_InitBody()
{
	googleMapLoaded = false;

	// ¿Existe un mapa de google?
	var gMap = $("googleMap");

	if (gMap && GBrowserIsCompatible()) {
		var map = new GMap2(gMap);
		if (gMap.hasClass("manoteras_map")) {
			var latLng = new GLatLng(40.487448,-3.66158);
			var addrStr = "<address><strong>Chap.&oacute;! Manoteras</strong><br />Avenida de Manoteras, 50-52<br />28050 Madrid</address><p>Cita previa: <strong style='color:#DE002C;font-size:1.2em;'>913 84 20 20</strong></p>";
		} else if (gMap.hasClass("bernabeu_map")) {
			var latLng = new GLatLng(40.452500,-3.695756);
			var addrStr = "<address><strong>Chap.&oacute;! Bernab&eacute;u</strong><br />Avenida del General Per&oacute;n S/N &mdash; (Enfrente del N&ordm;22)</address><p>Cita previa: <strong style='color:#DE002C;font-size:1.2em;'>917 70 44 14<strong></p>";
		} else {
			var latLng = new GLatLng(40.542309,-3.612324);
			var addrStr = "<address><strong>Chap.&oacute;! Plaza Norte 2</strong><br />Parque Comercial MegaPark &mdash; Nacional A-1 Salida 19<br />San Sebasti&aacute;n de los Reyes &mdash; Madrid</address><p>Cita previa: <strong style='color:#DE002C;font-size:1.2em;'>911 85 85 20</strong></p>";
		}

		var chapoIcon = new GIcon();
		chapoIcon.iconSize = new GSize(86, 42);
		chapoIcon.shadowSize = new GSize(86, 42);
		chapoIcon.iconAnchor = new GPoint(23, 39);
		chapoIcon.image  = "/img/icono-maps.png";
		chapoIcon.shadow = "/img/icono-maps-shadow.png";

		var marcador = new GMarker(latLng, { icon:chapoIcon} );
		map.setCenter(latLng, 15);
		map.addControl(new GSmallMapControl());
		map.addControl(new GMapTypeControl());

		map.addOverlay(marcador);
		GEvent.addListener(marcador, "click",function(){
				map.openInfoWindowHtml(map.getCenter(), addrStr);
			});
		googleMapLoaded = true;
	}
}

//-----------------------------------------------------------------------------
function vex_deInitBody()
{
	if (googleMapLoaded) GUnload();
}

//-----------------------------------------------------------------------------
function vex_InitExternals()
{
	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 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).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 doClickable(_href)
{
	document.location = _href;
}


//-----------------------------------------------------------------------------
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 == "SELECT") {
				elemOk = input.getValue() > 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, rellene correctamente los datos obligatorios.");
		event.stop();
	}
}


//=============================================================================
window.addEvent("domready",	vex_InitDocument );
window.addEvent("load",		vex_InitBody );
window.addEvent("unload",	vex_deInitBody );

