// JavaScript Document
var oSuscribete = new function Suscribete(){
	//ELEs
	var eBEmail = null;
	var eContinuar = null;
	var eBEmailMsj = '';
	//
	var nom = $('suscribeteNombre');
	var ape = $('suscribeteApellido');
	var dir = $('suscribeteDireccion');
	var tel = $('suscribeteTelefono');
	var mov = $('suscribeteMovil');
	var pob = $('suscribetePoblacion');
	var cp = $('sucribeteCP');
	var ema = $('suscribeteEmail');
	var usu = $('suscribeteUsuario');
	var con = $('suscribeteConstrasenia');
	var conCon = $('suscribeteConfConstrasenia');
	var sexM = $('suscribeteSexoM');
	var sexF = $('suscribeteSexoF');
	//
	var sus = $('suscribeteSuscribirme');
	var cer = $('suscribeteCerrar');
	var lay = $('suscribeteLay');
	var exi = $('suscribeteExito');
	var err = $('suscribeteError');
	var env = $('suscribeteEnvio');
	var bg = $('suscribeteBg');
	//
	var erNom = $('suscribeteErrNombre');
	var erApe = $('suscribeteErrApellido');
	var erEma1 = $('suscribeteErrEmail1');
	var erEma2 = $('suscribeteErrEmail2');
	var erEma3 = $('suscribeteErrEmail3');
	var erCon1 = $('suscribeteErrContrasenia1');
	var erCon2 = $('suscribeteErrContrasenia2');
	var erConC = $('suscribeteErrConfContrasenia');
	//
	var iEr = 0;
	var ER_EMAIL = new RegExp('[a-z0-9]{1}[a-z0-9_\.\-]{0,23}[a-z0-9]{1}@[a-z0-9]{1}[a-z0-9\.\-]*[a-z0-9]{1}\.[a-z]{2,4}(\.[a-z]{2})?');
	var ER_PASS = new RegExp('[a-zA-Z0-9]');
	var esperar = false;
	
	
	//OBJs
	var req = new Request();
	
	
	//METs
	var textoInicial = function(){
		if(trim(eBEmail.value) == eBEmailMsj) eBEmail.value = '';
	}.closure(this);
	var textoVacio = function(){
		if(trim(eBEmail.value) == '') eBEmail.value = eBEmailMsj;
	}.closure(this);
	var textoIngresado = function(e, c){
		if((e.keyCode == 13 || !!c) && trim(eBEmail.value) != '' && trim(eBEmail.value) != eBEmailMsj){
			usu.innerText = ema.value = eBEmail.value;
			ema.onblur();
			abrir(false);
		}
	}.closure(this);
	//
	var abrir = function(e){
		if(!!e) StopEvent(e);
		//
		bg.style.height = HBody() + 'px';
		lay.style.top = (Math.floor((HScreen() - 500) / 2) + YPos()) + 'px';
		lay.style.left = (Math.floor((WScreen() - 590) / 2) + XPos()) + 'px';
		lay.style.display = bg.style.display = 'block';
	}.closure(this);
	var cerrar = function(e){
		if(!!e) StopEvent(e);
		lay.style.display = bg.style.display = exi.style.display = 'none';
	}.closure(this);
	var enviar = function(e){
		var v = '';
		if(esperar || conError()) return false;
		esperar = true;
		env.style.display = 'block';
		nom.disabled = ape.disabled = dir.disabled = tel.disabled = mov.disabled = pob.disabled = cp.disabled = ema.disabled = con.disabled = conCon.disabled = true;
		
		v += 'nombre' + SEP_IGUAL + trim(nom.value) + SEP_AND;
		v += 'apellido' + SEP_IGUAL + trim(ape.value) + SEP_AND;
		v += 'direccion' + SEP_IGUAL + trim(dir.value) + SEP_AND;
		v += 'telefono' + SEP_IGUAL + trim(tel.value) + SEP_AND;
		v += 'movil' + SEP_IGUAL + trim(mov.value) + SEP_AND;
		v += 'poblacion' + SEP_IGUAL + trim(pob.value) + SEP_AND;
		v += 'cp' + SEP_IGUAL + trim(cp.value) + SEP_AND;
		v += 'email' + SEP_IGUAL + trim(ema.value).toLowerCase() + SEP_AND;
		v += 'contrasenia' + SEP_IGUAL + trim(con.value) + SEP_AND;
		v += 'sexo' + SEP_IGUAL + ((sexM.checked)? 'm' : 'f') + SEP_AND;
		
		req.pedir('requests/suscribete.php', v);
	}.closure(this);
	//
	var conError = function(){
		iEr = 0;
		nom.onblur();
		ape.onblur();
		ema.onblur();
		con.onblur();
		conCon.onblur();
		
		if(iEr == 0) return false;
		else return true;
	}.closure(this);
	var exito = function(){
		cerrar(false);
		erNom.style.display = erApe.style.display = erEma1.style.display = erEma2.style.display = erEma3.style.display = erCon1.style.display = erCon2.style.display = 
		erConC.style.display = exi.style.display = 'none';
		nom.value = ape.value = dir.value = tel.value = mov.value = pob.value = ema.value = usu.innerText = con.value = conCon.value = eBEmail.value = '';
		sexM.checked = true;
	}.closure(this);
	//
	this.init = function(){
		eBEmail = $('suscribeteBanEmail');
		eContinuar = $('suscribeteContinuar');
		eBEmailMsj = eBEmail.value;
		
		AddEvent(eBEmail, 'focus', textoInicial);
		AddEvent(eBEmail, 'blur', textoVacio);
		AddEvent(eBEmail, 'keyup', function(e){ textoIngresado(e, false); }.closure(this));
		AddEvent(eContinuar, 'click', function(e){ textoIngresado(e, true); }.closure(this));
	}
	
	
	//EVEMTs
	req.listener = function(){
		var d = req.respuestaXML, t = '', e = null, i = 0;
		esperar = false;
		env.style.display = 'none';
		nom.disabled = ape.disabled = dir.disabled = tel.disabled = mov.disabled = pob.disabled = cp.disabled = ema.disabled = con.disabled = conCon.disabled = false;
		
		if(!d) alert(req.respuestaHTML);
		//
		else if(d.getAttribute('tipo') == 'error'){
			t = (Nav.esIE)? d.text : d.textContent;
			e = t.split('|');
			
			for(i; i < e.length; i++){
				if(e[i] == 'ema3') erEma3.style.display = 'block';
			}
		}
		//exito
		else{
			env.style.display = 'none';
			exi.style.display = 'block';
		}
	}.closure(this);
	//
	AddEvent(cer, 'click', cerrar);
	AddEvent(exi, 'click', exito);
	AddEvent(sus, 'focus', enviar);
	//
	nom.onblur = function(){
		if(trim(nom.value) == ''){
			nom.style.borderColor = '#FF0000';
			erNom.style.display = 'block';
			iEr++;
		}
		else{
			nom.style.borderColor = '';
			erNom.style.display = 'none';
		}
	}.closure(this);
	ape.onblur = function(){
		if(trim(ape.value) == ''){
			ape.style.borderColor = '#FF0000';
			iEr++;
			erApe.style.display = 'block';
		}
		else{
			ape.style.borderColor = '';
			erApe.style.display = 'none';
		}
	}.closure(this);
	ema.onblur = function(){
		var t = false;
		if((t = trim(ema.value)) == '' || ema.value.toLowerCase().search(ER_EMAIL) == -1){
			ema.style.borderColor = '#FF0000';
			iEr++;
			if(t == ''){
				erEma3.style.display = erEma2.style.display = 'none';
				erEma1.style.display = 'block';
			}
			else{
				erEma3.style.display = erEma1.style.display = 'none';
				erEma2.style.display = 'block';
			}
		}
		else{
			ema.style.borderColor = '';
			erEma1.style.display = erEma2.style.display = erEma3.style.display = 'none';
		}
		//
		usu.innerText = ema.value;
	}.closure(this);
	con.onblur = function(){
		if((t = trim(con.value)) == '' || con.value.search(ER_PASS) == -1){
			con.style.borderColor = '#FF0000';
			iEr++;
			if(t == ''){
				erCon2.style.display = 'none';
				erCon1.style.display = 'block';
			}
			else{
				erCon1.style.display = 'none';
				erCon2.style.display = 'block';
			}
		}
		else{
			con.style.borderColor = '';
			erCon2.style.display = erCon1.style.display = 'none';
		}
	}.closure(this);
	conCon.onblur = function(){
		if(trim(conCon.value) != trim(con.value)){
			conCon.style.borderColor = '#FF0000';
			iEr++;
			erConC.style.display = 'block';
		}
		else{
			conCon.style.borderColor = '';
			erConC.style.display = 'none';
		}
	}.closure(this);
}