// JavaScript Document
var oSoporte = new function(){

	var nombre = null;
	var apellido = null;
	var email = null;
	var telefono = null;
	var consulta = null;
	var guardar = null;
	var cuadroError = null;
	var mensajeError = null;
	var mensajeExito = null;
	var enviando = false;
	var iniciado = false;
	var contPregFrec = null;$('contPreguntasFrecuentes');
	var contFormSop = null;

	var divError = $("divError");
	var totalErrores = 0;

	var iniciarDatos = function(){
		iniciado = true;
		nombre = $('nombreSoporte');
		apellido = $('apellidoSoporte');
		email = $('emailSoporte');
		telefono = $('telefonoSoporte');
		consulta = $('consultaSoporte');
		cuadroError = $("cuadroErrorSoporte");
		mensajeError = $('mensajeErrorSoporte');
		mensajeExito = $('mensajeExitoSoporte');
		volver = $('volverSoporte');
		contPregFrec = $('contPreguntasFrecuentes');
		contFormSop = $('contFormSop');
		

		AddEvent($('enviarSoporte'),"click",enviarSoporte);
		AddEvent($('volverSoporte'),"click",volverAPreguntas);
		AddEvent($('btnCerrarSoporte'),"click",cerrarSoporte);		
		
		
		crearErrores();		
	}
	var volverAPreguntas = function(){
		this.mostrarPreguntas();

	}.closure(this);

	var mostrarError = function(campo){
		totalErrores++;
		campo.style.borderColor = "#FF0000";
		if(!campo.linea){
			crearLineaError(campo.mensaje,campo);
			cuadroError.style.display = "inline";
		}
	}
	var ocultarError = function(campo){
		campo.style.borderColor = '';
		if(campo.linea){
			cuadroError.removeChild(campo.linea);
			campo.linea = null;
		}
		if(cuadroError.innerHTML.replace('\n','') == ""){

			cuadroError.style.display = "none";		
		}
	}
	var crearError = function(campo,mensaje,validacion,funcion){
		campo.mensaje = mensaje;
		if(funcion){
			campo.onblur = validacion; 
		}
		else{
			campo.expresion = validacion;
			campo.onblur = function(){
				if(!campo.expresion.test(campo.value.toLowerCase()))mostrarError(campo);
				else ocultarError(campo);
			}
		}

	}	
	var crearErrores = function(){
		crearError(nombre,"Ingrese el nombre.",ER_STR);
		crearError(apellido,"Ingrese el apellido",ER_STR);
		crearError(email,"Email incorrecto.",ER_EMAIL);
		crearError(consulta,"La consulta debe tener mas de diez caracteres.",evaluarConsulta,true);
	}

	var enviarSoporte = function(e){
		if(!enviando){
			enviando = true;
			totalErrores = 0;

			nombre.onblur();
			apellido.onblur();
			email.onblur();
			consulta.onblur();			
		
			if(totalErrores == 0){
				$('menuDatosSoporte').style.display = 'none';
				$('enviandoSoporte').style.display = 'block';
				var navegador = 'Internet Explorer 7';
				if(Nav.esIE6)navegador = 'Internet Explorer 6';
				if(Nav.esFf)navegador = 'Mozilla Firefox';
				if(Nav.esOp)navegador = 'Opera'; 
				if(Nav.esNs)navegador = 'Netscape';
				
				try{ var versionFlash = $('iframeCastillo').contentWindow.castilloSwf.installedVer.major; }catch(e){}
				var plataforma = navigator.platform;
				
				blockearCampos(true);
				
				
				
				var v = "nombre"+SEP_IGUAL+nombre.value+SEP_AND+"apellido"+SEP_IGUAL+apellido.value+SEP_AND+"email"+SEP_IGUAL+email.value+SEP_AND+"telefono"+SEP_IGUAL+telefono.value+SEP_AND+"consulta"+SEP_IGUAL+consulta.value+SEP_AND;
				v += 'navegador'+SEP_IGUAL+navegador+SEP_AND+'plataforma'+SEP_IGUAL+plataforma+SEP_AND+'versionFlash'+SEP_IGUAL+versionFlash+SEP_AND+'resolucion'+SEP_IGUAL+'('+window.screen.width+'x'+window.screen.height+')'+SEP_AND;
				req.pedir(DIR_ROOT+"requests/soporte.php",v);
			}
			else{
				enviando = false;
			}
		}

		if(e)StopEvent(e);

	}
	var evaluarConsulta = function(){
		if(consulta.value == '' || consulta.value.length < 10)mostrarError(consulta);
		else ocultarError(consulta);
	}	

	this.abrir = function(){
		if(!iniciado)iniciarDatos();
		mostrarBlockGeneral();
		if(!Nav.esIE)$('titSoporte').style.marginLeft = '-20px';
		if(contPregFrec){
			this.mostrarPreguntas();
			this.controlarAlto();
		}
		
		centrarContenido($('contDatosSoporte'),true);
		$('contDatosSoporte').style.visibility = 'visible';
	}
	this.controlarAlto = function(){
		$('listaPreguntas').style.height = 'auto'	
		if($('listaPreguntas').offsetHeight > 280)$('listaPreguntas').style.height = 280+'px';
	}	
	this.mostrarFormulario = function(e){
		contPregFrec.style.display = 'none';
		contFormSop.style.display = 'block';	
		if(e)StopEvent(e);
	}
	this.mostrarPregunta = function(idPregunta){
		if($('respuestaTecnico'+idPregunta).style.display == 'block')$('respuestaTecnico'+idPregunta).style.display = 'none';
		else $('respuestaTecnico'+idPregunta).style.display = 'block';
		this.controlarAlto();		
	}
	this.mostrarPreguntas = function(){
		contPregFrec.style.display = 'block';
		contFormSop.style.display = 'none';	
	}
	var blockearCampos = function(blockeo){
		nombre.disabled = blockeo;
		apellido.disabled = blockeo;
		email.disabled = blockeo;
		telefono.disabled = blockeo;
		consulta.disabled = blockeo;
	}
	var cerrarSoporte = function(){		
		ocultarContenido($('contDatosSoporte'));		
		$('blockGeneral').style.visibility = 'hidden';
	}
	var crearLineaError = function(error,input){
		var linea = document.createElement("div");
		var flecha = document.createElement("img");
		var label = document.createElement("label");
		label.innerHTML = "&nbsp;"+error;
		flecha.src = "img/flechaError.gif";
		linea.className = "lineaErrorSoporte";
		linea.appendChild(flecha);
		linea.appendChild(label);


		cuadroError.appendChild(linea);
		AddEvent(flecha,"click",function(){input.focus()});
		input.linea = linea;
		input.label = label;
	}
	var onRequestLoad = function(){
		if(!req.respuestaXML){
			alert(req.respuestaHTML);
			return false;
		}
		switch(req.respuestaXML.getAttribute("tipo")){
			case "exito":
				$('menuDatosSoporte').style.display = 'block';
				$('enviandoSoporte').style.display = 'none';
				centrarContenido(mensajeExitoSoporte,true);
				mensajeExitoSoporte.style.visibility = 'visible';
				consulta.value = '';
			break;
			case "fallo":
			break;
			
		}
		blockearCampos(false);
		enviando = false;
	}.closure(this);
	var req = new Request(onRequestLoad);

	
}
