// JavaScript Document
var Contacto = function(){
	this.req = new Request(this);
	var nombre = $("nombre");
	var apellido = $("apellido");
	var pais = $("pais");
	var ciudad = $("ciudad");
	var codPais = $('codPais');
	var codArea = $('codArea');
	var provincia = $("provincia");
	var telefono = $("telefono");
	var email = $("email");
	var consulta = $("consulta");
	var error = $("divError");
	var enviando = $("enviandoConsulta");
	var exito = $("exitoConsulta");
	var fallo = $("falloConsulta");
	var enviar = $("enviarContacto");
	var sobreMensaje = false;
	var totalErrores = 0;
	var lMinima = 3;

	var crearError = function(campo,mensaje,expresion,longitud){
		campo.expresion = expresion;

		if(longitud){
			campo.onblur = function(){
				campo.value = trim(campo.value);				
				if(!campo.expresion.test(trim(campo.value).toLowerCase()) || campo.value.length < lMinima)mostrarError(campo);
				else ocultarError(campo);
			}				
		}
		else{
			campo.onblur = function(){
				campo.value = trim(campo.value);				
				if(!campo.expresion.test(trim(campo.value).toLowerCase()))mostrarError(campo);
				else ocultarError(campo);
			}				
		}
	}
	this.analizarTecla = function(e){
		if(e.keyCode == 13 && !sobreMensaje)this.enviarContacto();
	}
	
	var crearErrores = function(){
		crearError(nombre,'',ER_STR,true);
		crearError(pais,'',ER_STR,true);
		crearError(email,'',ER_EMAIL);
		crearError(telefono,'',ER_STR,true);		
	}
	var mostrarError = function(campo){
		totalErrores++;
		campo.className = "error";
	}
	var ocultarError = function(campo){
		campo.className = '';
	}
	this.enviarContacto = function(e){
		totalErrores = 0;
		
		FireEvent(nombre,'blur');
		FireEvent(pais,'blur');
		FireEvent(telefono,'blur');
		FireEvent(email,'blur');		
		
	
		if(totalErrores == 0){
//			MostrarContenido(enviando);
			blockearCampos(true);
			mostrarBlockeador(true);
			Loader.show();			
			var v = "nombre"+SEP_IGUAL+trim(nombre.value)+SEP_AND+"apellido"+SEP_IGUAL+trim(apellido.value)+SEP_AND+"pais"+SEP_IGUAL+trim(pais.value)+SEP_AND+"ciudad"+SEP_IGUAL+trim(ciudad.value)+SEP_AND+"provincia"+SEP_IGUAL+trim(provincia.value)+SEP_AND;
			v += "telefono"+SEP_IGUAL+trim(telefono.value)+SEP_AND+"email"+SEP_IGUAL+trim(email.value)+SEP_AND+"consulta"+SEP_IGUAL+trim(consulta.value)+SEP_AND+"codPais"+SEP_IGUAL+trim(codPais.value)+SEP_AND+"codArea"+SEP_IGUAL+trim(codArea.value)+SEP_AND;
			
			this.req.pedir(URL_ROOT+"requests/contacto.php",v);
		}
		else{
			error.style.display = "inline";
			
		}
		if(e)StopEvent(e);
	}.closure(this);
	var blockearCampos = function(blockeo){
		nombre.disabled = blockeo;
		apellido.disabled = blockeo;
		pais.disabled = blockeo;
		ciudad.disabled = blockeo;
		provincia.disabled = blockeo;
		telefono.disabled = blockeo;
		email.disabled = blockeo;
		consulta.disabled = blockeo;
	}

	var limpiarCampos = function(){
		consulta.value = "";
		error.style.display = "none";

		ocultarError(nombre);
		ocultarError(pais);		
		ocultarError(email);
		ocultarError(telefono);		
	}
	this.onRequestLoad = function(){
		var nodo = this.req.respuestaXML;
		if(!nodo){
			Loader.hide();
			Error.message = fallo.innerHTML;
			Error.onAcept = Error.onCancel = function(){
				Error.hide();
				blockearCampos(false);
				mostrarBlockeador();
			}
			Error.show();

			return false;
		}
		if(nodo.getAttribute("exito") != 1){
			Error.message = fallo.innerHTML;
			Error.onAcept = Error.onCancel = function(){
				Error.hide();
				blockearCampos(false);
				mostrarBlockeador();
			}
			Error.show();

		}
		else{
			Exito.message = exito.innerHTML;
			Exito.onAcept = Exito.onCancel = function(){
				Exito.hide();
				blockearCampos(false);	
				mostrarBlockeador();
				limpiarCampos();
			}
			Exito.show();

		}
		Loader.hide();
	}
	crearErrores();
	
	AddEvent(consulta,'focus',function(){
		sobreMensaje = true;								   
    });
	AddEvent(consulta,'blur',function(){
		sobreMensaje = false;								   
    });

}
