// JavaScript Document
var oRecSite = new function(){
	var dirImg = 'img/';

	var iniciado = false;
	var contenedor = null;
	var nombre = null;
	var email = null;
	var amigo = null;
	var emailAmigo = null;
	var amigoComprador = null;
	var amigoAgente = null;
	var recomendarError = null;
	var mensaje = null;
	var blockeador = null; 
	var cerrar = null;
	var enviar = null;
	var enviando = null;
	var exitoRec = null;
	var falloRec = null;
	var totalErrores = 0;
	var sobreMensaje = false;


	
	var crearError = function(campo,mensaje,expresion){
		campo.expresion = expresion;
		campo.onblur = function(){
			if(!campo.expresion.test(campo.value.toLowerCase()))mostrarError(campo);
			else ocultarError(campo);
		}

	}
	var crearErrores = function(){
		crearError(nombre,'Ingrese su nombre',ER_STR);
		crearError(email,'Email incorrecto',ER_EMAIL);
		crearError(amigo,'Ingrese el nombre del amigo',ER_STR);
		crearError(emailAmigo,'Email incorrecto',ER_EMAIL);
	}
	var mostrarError = function(campo){
		totalErrores++;
		campo.style.borderColor = "#FF0000";
	}
	var ocultarError = function(campo){
		campo.style.borderColor = "";
	}
	this.analizarTecla = function(e){
		if(e.keyCode == 13 && !sobreMensaje)this.enviarRecomendacion();
	}


	this.mostrarCuadro = function(e){
		Blocker.show();
		if(!iniciado)iniciarClase();
		if(iniciado){
			centrarContenido(contenedor);
			contenedor.style.visibility = "visible";
			contenedor.style.zIndex = "2100";
			limpiarCampos();
			try{ nombre.focus(); }catch(e){};
		}
		if(e)StopEvent(e);
	}
	this.enviarRecomendacion = function(e){
		totalErrores = 0;
		FireEvent(nombre,'blur');
		FireEvent(email,'blur');
		FireEvent(amigo,'blur');
		FireEvent(emailAmigo,'blur');		
		
		if(totalErrores == 0){
			OcultarContenido(contenedor);
			recomendarError.style.display = "none";
			Loader.show();			
			blockearCampos(true);
			
			var v = 'nombre'+ SEP_IGUAL + nombre.value + SEP_AND + 'email'+ SEP_IGUAL + email.value + SEP_AND + 'amigo'+ SEP_IGUAL + amigo.value + SEP_AND + 'emailAmigo' + SEP_IGUAL + emailAmigo.value + SEP_AND;
			v += 'mensaje' + SEP_IGUAL + mensaje.value + SEP_AND;
			req.pedir(URL_ROOT + "requests/recSite.php",v);
		}
		else recomendarError.style.display = 'block';
		if(e)StopEvent(e);
	}.closure(this);
	var blockearCampos = function(blockeo){
		nombre.disabled = blockeo;
		email.disabled = blockeo;
		amigo.disabled = blockeo;
		emailAmigo.disabled = blockeo;
	}
	var iniciarClase = function(){
		contenedor = $('contenedorRecSite');
		if(contenedor){
			exitoRec = $('exitoRecSite');
			falloRec = $('falloRecSite');
			enviando = $('enviandoRecSite');
			iniciado = true;
			nombre = $('nombreRecSite');
			email = $('emailRecSite');
			amigo = $('amigoRecSite');
			emailAmigo = $('emailAmigoRecSite');
			mensaje = $('mensajeRecSite');
			recomendarError = $('errorRecSite');
			AddEvent($('cerrarRecSite'),'click',function(){OcultarContenido(contenedor);Blocker.hide();});

			AddEvent(contenedor,'keypress',function(e){
				if(e.keyCode == 27){
					OcultarContenido(contenedor);
					mostrarBlockeador();
				}
			});
			AddEvent(mensaje,'focus',function(){
				sobreMensaje = true;								   
			});
			AddEvent(mensaje,'blur',function(){
				sobreMensaje = false;								   
			});
			
			crearErrores();
		}
		
	}
	var limpiarCampos = function(){
		amigo.value = '';
		emailAmigo.value = '';
		mensaje.value = '';
		ocultarError(nombre);
		ocultarError(email);
		ocultarError(amigo);
		ocultarError(emailAmigo);
	}
	var onRequestLoad = function(){
		var nodo = req.respuestaXML;
		Loader.hide();		
		if(!nodo){
			alert(req.respuestaHTML);
			Error.message = falloRec.innerHTML;
			Error.onAcept = Error.onCancel = function(){
				Error.hide();
				blockearCampos(false);
				centrarContenido(contenedor);
				contenedor.style.visibility = "visible";

			}
			Error.show();
			return false;
		}
		if(nodo.getAttribute("exito") != 1){
			
			Error.message = falloRec.innerHTML;
			Error.onAcept = Error.onCancel = function(){
				Error.hide();
				blockearCampos(false);				
				centrarContenido(contenedor);
				contenedor.style.visibility = "visible";
				
			}
			Error.show();
		}
		else{
			Exito.message = exitoRec.innerHTML;
			Exito.onAcept = Exito.onCancel = function(){
				Exito.hide();
				blockearCampos(false);	
				Blocker.hide();;
			}
			Exito.show();
		}
	}.closure(this);
	var req = new Request(onRequestLoad);	

}
