// cuando se cargue la página
Event.observe(window, "load", function() {
	// hack para los bg en IE6+
	if(document.uniqueID && !window.XMLHttpRequest ) document.execCommand("BackgroundImageCache",false,true);
});

// variable para controlar que no se abran todas las ventanas justo en el medio
var centeredWindows = 0;

/* ******************************************************************************/
/* Para abrir ventanas
/* ******************************************************************************/
function abre(a)
{
	if($(a.href)!=null) return false;
	
	var ventana = new UI.Window({
		id: a.href, 
		theme: "alphacube", 
		shadowTheme: "mac_shadow",
		shadow: true
	});
	ventana.setSize(700, 500);
	ventana.setAjaxContent(a.href+'?ajax=1', {
		encoding: 'ISO-8859-1'
	});
	ventana.setHeader(a.title);
	ventana.show(); 
	ventana.center();
	
	// si hay más de una ventana en el medio, desplazamos
	centeredWindows++;
	if(centeredWindows>1)
	{
		var pos = ventana.getPosition();
		ventana.setPosition(pos.top+(centeredWindows*15), pos.left+(centeredWindows*15));
	}
	ventana.focus();
	
	// cada vez q se cierre una ventana, actualizamos el contador
	ventana.observe('move:ended', function(e) {
		
		if(!e.memo.window.moved) centeredWindows--;
		e.memo.window.moved=true;
	});
	ventana.observe('destroyed', function(e) {
		if(!e.memo.window.moved) centeredWindows--;
	});

	pageTracker._trackPageview(a.href);
	
	return false;
}

/*
	Abre a en una ventana nueva
*/
function abreExterna(a)
{
	window.open(a.href);
	return false;
}


/* ******************************************************************************/
/* Validación form
/* ******************************************************************************/
/*
	Comprueba si el valor de el es un número de lon cifras
*/
function isANumber(el, lon)
{
	if((el.getValue().length==lon)&&(!isNaN(el.getValue())) ) return true;
	else return false;
}

/*
	Comprueba si el valor de el es un mail válido
*/
function isAMail(el)
{
	var mail = el.getValue();
	
	if(mail.indexOf('@')<0) { return false; }
	if(mail.substring(mail.indexOf('@')+1,mail.length).indexOf('.')<0) { return false; }
	if(mail.charAt(mail.length-1)=='.') { return false; }
	return true;
}

/*
	Comprueba si w es un carácter entre A-Z o a-z
*/
function isAWord(w)
{
	if((65<=w)&&(w<=90)) return true;
	if((97<=w)&&(w<=122)) return true;
	return false;
}

/*
	Valida y envía datos
*/
function envia()
{
	var form = $('formInscripcion');
	var inputs = form.getInputs();
	
	var error = '';
	var error_obligatoris = false;
	inputs.each(function(el) {
		if(!el.disabled)
		{
			if(!el.hasClassName("required")&&(el.getValue()=='')) { el.removeClassName("error");  }
			else if(el.hasClassName("required")&&(el.getValue()=='')) { error_obligatoris = true; el.addClassName("error"); }
			else
			{
				if(el.name=='cp') {
					if(!isANumber(el, 5)) {
						error += error_cp;
						el.addClassName("error");
					}
					else el.removeClassName("error"); 
				}
				else if(el.name=='telefonPersonal') {
					if(!isANumber(el, 9)) {
						error += error_tel;
						el.addClassName("error");
					}
					else el.removeClassName("error"); 
				}
				else if(el.name=='faxPersonal') {
					if(!isANumber(el, 9)) {
						error += error_fax;
						el.addClassName("error");
					}
					else el.removeClassName("error"); 
				}
				else if(el.name=='emailPersonal') {
					if(!isAMail(el)) {
						error += error_amil;
						el.addClassName("error");
					}
					else el.removeClassName("error"); 
				}
				else if(el.name=='nifCif') {
					if(!isANumber(el,8)) {
					error += error_nif;
						el.addClassName("error");
					}
					else el.removeClassName("error"); 
				}
				else if(el.name=='nifCifLletra') {
					if(!isAWord(el.getValue().charCodeAt(0))) {
						error += error_nif_lletra;
						el.addClassName("error");
					}
					else el.removeClassName("error"); 
				}
				else if(el.name=='cpFacturacio') {
					if(!isANumber(el, 5)) {
						error += error_cp_facturacio;
						el.addClassName("error");
					}
					else el.removeClassName("error"); 
				}
				else if(el.name=='emailFacturacio') {
					if(!isAMail(el)) {
						error += error_cp_mail_facturacio;
						el.addClassName("error");
					}
					else el.removeClassName("error"); 
				}
			}
		}
	});
	
	// si hay errores
	if((error!='')||(error_obligatoris))
	{
		error = '<ul>'+(error_obligatoris?error_camps_obligatoris:"")+error+'</ul>';
		error = error_intro+error;
		new Growl(error);
		return false;
	}
	else
	{
		// no hay errores: ha marcado la política de privacidad?
		if($('privacy').getValue()==null) 
		{
			new Growl(error_privacitat);
			return false;
		}

		// copiamos los datos de facturación si ha marcado la casilla
		if($('mateixaAdrecaFiscal').getValue()=='on') 
		{
			form.nomFacturacio.value = form.cognoms.value + ', '+ form.nom.value;
			form.adrecaFacturacio.value = form.adreca.value;
			form.cpFacturacio.value = form.cp.value;
			form.ciutatFacturacio.value = form.ciutat.value;
			form.paisFacturacio.value = form.pais.value;
			form.emailFacturacio.value = form.emailPersonal.value;
		}
		
		// envío
		$('botonInscripcion').update(literal_enviant);
		new Ajax.Request('inscripcio_ok.php', {
			method: 'post',
			encoding: 'ISO-8859-1',
			postBody: form.serialize(),
			onSuccess: function(transport) {
				var divInscripcion = $('divInscripcion');
				divInscripcion.update(transport.responseText);
			}
		});

		return false;
	}
}

function checkAdreca(el)
{
	var form = $('formInscripcion');
	var inputs = form.getInputs();
	var check = $(el);

	if(check.getValue()=='on') 
	{
		inputs.each(function(el) {
			if((el.name.indexOf("Facturacio")>-1)&&(!el.hasClassName("alwaysEnable"))) { 
				el.disable();
				el.removeClassName("error");
			}
		});
	}
	else form.enable();
}

/* ******************************************************************************/
/* Para ocultar y enseñar el menú de ponents */
/* ******************************************************************************/
var Ponents = Class.create({
	initialize: function() {
		this.interval = null;
		$('ponents').observe("mousemove", function() {
			window.ponents.somethingOver();
		});
	},
	appear: function() {
		$('ponents').show();
	},
	fade: function() {
		clearInterval(this.interval);
		new Effect.Fade('ponents', {duration: 0.5});
	},
	somethingOver: function() {
		if(this.interval!=null) { clearInterval(this.interval); }
		this.interval = setInterval(this.fade.bind(this), 1500);
	}    
});

var ponents = null;
function hidePonents()
{
	// ocultamos la capa
	var ponents = $('ponents');
	ponents.hide();

	// la creamos al final del documento
	Event.observe(window, "load", function() {
		$(document.body).insert($('ponents').remove());
		window.ponents = new Ponents;
	});
}

function showPonents(a)
{
	a.blur();
	ponents.appear();
	
	return false;
}

/* ******************************************************************************/
/* Para el carrusel de frases */
/* ******************************************************************************/
var Clouds = Class.create({
	initialize: function(c) {
		this.actual = 0;
		this.clouds = c;
		setInterval(this.change.bind(this), 12000);
	},
	change: function() {	
		var siguiente = (this.actual+1)%this.clouds.length;
		new Effect.Fade(this.clouds[this.actual], {
			duration: 0.5,
			afterFinish: function() {
				new Effect.Appear(window.clouds.clouds[siguiente], {duration: 0.5});
			}
		});
		this.actual = siguiente;
	}
});

var clouds = null;
function hideClouds()
{
	var cloudsDiv = $('tagCloud');
	
	// ocultamos todos menos el primero
	for(i=1; i<cloudsDiv.childElements().length; i++)
	{
		cloudsDiv.childElements()[i].hide();
	}
	
	clouds = new Clouds(cloudsDiv.childElements());
}