var reAmigo = new RegExp(/^amigo([0-9]{1})$/);
var friendFields = Array();
var regEmail1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // no válidos
var regEmail2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/; // válidos


var ipodEvents = function () {
	var form = document.getElementById("fIpod");
	if (form != null) {
		form.onsubmit = doSubmit;
	}

	// email y su confirmacion
	var email = document.getElementById("email");
	if (email != null) {
		email.onblur = checkEmail;
	}
	var conf_email = document.getElementById("conf_email");
	if (conf_email != null) {
		conf_email.onblur = checkEmail;
	}
	
	// emails amigos
	var inputs = document.getElementsByTagName("input");
	for (var i=0; i<inputs.length; i++) {
		if (reAmigo.test(inputs[i].id)) {
			inputs[i].onblur = checkEmailFriends;
		}
	}
}

/**
 * Eventos en la segunda pantalla (invitacion)
 *
 */
var ipod2Events = function () {
	var form = document.getElementById("fIpod");
	if (form != null) {
		form.onsubmit = doSubmitInvitation;
	}
	
	// emails amigos
	var inputs = document.getElementsByTagName("input");
	for (var i=0; i<inputs.length; i++) {
		if (reAmigo.test(inputs[i].id)) {
			inputs[i].onblur = checkEmailFriends;
		}
	}
}

var doSubmitInvitation = function () {
	// verifica que se ha invitado a algún amigo
	if (validaFriends()) {
		// verifica que se han aceptado las condiciones de uso
		if(document.fIpod.acepto.checked) {
			document.fIpod.enviado.value = true;
			document.fIpod.submit();
		} else {
			alert("Para poder continuar, debes aceptar las condiciones de uso.");
			return false;
		}
	} else {
		alert("Debes invitar al menos a un amigo/a");
		return false;
	}
}

var doSubmit = function () {
	friendFields = Array();
	var listaCampos = Array('nombre','apellido1','email','conf_email');
	var listaEtiquetas = Array('Nombre', 'Primer apellido', 'E-mail','Confirmar e-mail');
	
	var logonado = document.getElementById("logonado");
	
	if (logonado.value == 0) {
		if (validaForm("fIpod", listaCampos, listaEtiquetas, 'Por favor, rellena:\n', ',\n')) {
			// valida emails
			if (validaEmail("fIpod", "email", "Tu dirección de email parece que no es correcta.")) {
				// emails
				email1 = document.fIpod.email.value;
				email2 = document.fIpod.conf_email.value;
				if (email1 != email2){
					alert('Las direcciones de email no coinciden.');
					return false;
				} else {
					// verifica que se han aceptado las condiciones de uso
					if(document.fIpod.acepto.checked) {
						document.fIpod.enviado.value = true;
						document.fIpod.submit();
					} else {
						alert("Para poder continuar, debes aceptar las condiciones de uso.");
						return false;
					}
				}
				return false;
			}
		}
	} else {
		// verifica que se han aceptado las condiciones de uso
		if(document.fIpod.acepto.checked) {
			document.fIpod.enviado.value = true;
			document.fIpod.submit();
		} else {
			alert("Para poder continuar, debes aceptar las condiciones de uso.");
			return false;
		}
	}
	return false;
}

var validaFriends = function() {
	var inputs = document.getElementsByTagName("INPUT");
	var valid = false;
	for (var i=0; i<inputs.length;i++) {
		if (reAmigo.test(inputs[i].id) && inputs[i].value != '') {
			valid = true;
			friendFields.push(inputs[i]);
		}
	}
	return valid;
}

var checkEmail = function () {
	if (this.value != '') {
		// cambia el status por AJAX
		url = 'checkemail.php';
		var pars = 'email=' + this.value+'&field='+this.id;
		new Ajax.Request(url, {method: 'get', parameters: pars, onComplete:emailCheckHandler});
	} else {
		this.className = "";
	}
	return false;
}

var checkEmailFriends = function () {
	if (this.value != '') {
		// cambia el status por AJAX
		url = 'checkemail.php';
		var referal = document.getElementById("referal");
		if (referal != null) {
			var ref = referal.value;
		} else {
			var ref = -1;
		}
		var pars = 'email=' + this.value+'&field='+this.id+"&referal="+ref;
		new Ajax.Request(url, {method: 'get', parameters: pars, onComplete:emailCheckHandler});
	} else {
		this.className = "";
	}
	return false;
}

var emailCheckHandler = function (response) {
	var json = eval(response.responseText);
	var field = document.getElementById(json.field);
	if (json.success == 0) {
		alert("El email no es válido");
		field.className = "alert";
	} else if (json.success == 2){
		if (json.referal > 0) {
			alert("A este amigo ya lo habías invitado.\nInvita a uno nuevo y tendrás más oportunidades de ganar.");
			field.value = "";
			field.focus();
		} else {
			alert("Esa dirección de email ya se ha inscrito previamente");
		}
		field.className = "alert";
	} else {
		field.className = "";
	}	
	return false;
}
