//-----------------------------------------------------------
// Validación de un formulario.
// Creado el 16 de Abril de 2008.
// Javier Hernández.
// B2B Portales.
//-----------------------------------------------------------
//se definen la variables que contienen el nombre del formulario y los nombres de los campos con su respectivo numero.
	var Forma='frm65';
	var Campos1 = 'Nombre,Apellido,Nombre de la compañía,Correo electrónico,País,Ciudad,Pregunta 1,Pregunta 1,Pregunta 1,Pregunta 2,Pregunta 2,Pregunta 3,Pregunta 3,Pregunta 4,Pregunta 5,Pregunta 6,Pregunta 2,Pregunta 2';
	var Campos2 = '2272,2273,2274,2275,2276,2277,2278,2279,2280,2281,2323,2324,2325,2326,2327,2328,2331,2332';
	//Valida si un dato es requerido, si es de texto, numerico, si el numero esta en un rango, 
	//si un grupo de Radiobox son requeridos y si el dato es un mail. 
	//Si el dato esta en un rango se debe ingresar el rango inferior en Par1 y el mayor en Par2
		function DatoRequerido(Indice,Tipo,Par1,Par2){
		var ObjReferencia ='document.' + Forma + '.' + Indice; 
		var Valor;
		var Validar;
		var Mensaje;
		var Foco = true;
	
		eval('Valor=' + ObjReferencia + '.value');
		switch (Tipo){
		case 'Texto':
			Validar = (Valor == '');
			Mensaje = NombreCampo(ObjReferencia) + '\n\nEs un dato requerido y no ingresó ninguna información.';
		break;
		case 'TextoCondicionado':
			Validar = true;
			Arreglo = Par1.split(",");
			for( i = 0 ; i < Arreglo.length ; i++ )
				if (Valor == Arreglo[i]) Validar = false;
			Mensaje = NombreCampo(ObjReferencia) + '\n\nEs un dato requerido y no ingresó ninguna información.';
		break;
		case 'Mail':
			Filtro=/^[-_.A-Za-z0-9_]*@[-A-Za-z0-9_]+\.[-A-Za-z0-9_.]+[A-za-z]$/;
			Validar = (! Filtro.test(Valor));
			Mensaje = NombreCampo(ObjReferencia) + '\n\nEl correo electrónico ingresado no es valido.';
		break
		case 'Numero':
			Filtro=/^\d+[0-9]*$/;
			Validar = (! Filtro.test(Valor));
			Mensaje = NombreCampo(ObjReferencia) + '\n\nEl dato ingresado debe ser un número.';
			if (!(Par1 == 0  && Par2 == 0)){
					if ((parseInt(Par1) > parseInt(Valor)) || (parseInt(Valor) > parseInt(Par2))){
						Validar = true;
						Mensaje = NombreCampo(ObjReferencia) + '\n\nEl dato ingresado se encuentra fuera del rango.';
					}
				}
		break
		case 'RadioBox':
			eval ('Largo = ' + ObjReferencia + '.length;');
			Validar = true;
			for (i = 0 ; i < Largo ; i++){
				eval('Valor = ' + ObjReferencia + '[' + i + '].checked;');
				if (Valor) Validar = false;
			}
			Foco = false;
			Mensaje = NombreCampo(ObjReferencia) + '\n\nDebe seleccionar como mínimo una opción.';
		break;
		}
		if (Validar){
			if (!Foco) eval(ObjReferencia + '[0].focus()');
			if (Foco) eval(ObjReferencia + '.focus()'); 
			if (Foco) eval(ObjReferencia + '.select()');
			alert (Mensaje); 
			return false;
		}else{
			return true;
		}
	}
	//Asigana una variable pasada por oparametro
	function AsignarVariableParametro(Variable,Indice){
		cadVariables = location.search.substring(1,location.search.length);
		arrVariables = cadVariables.split("&");
		for (i=0; i<arrVariables.length; i++) {
  			arrVariableActual = arrVariables[i].split("=");
  			if (isNaN(parseFloat(arrVariableActual[1])))
    			eval(arrVariableActual[0]+"='"+unescape(arrVariableActual[1])+"';");
  			else
    			eval(arrVariableActual[0]+"="+arrVariableActual[1]+";");
			if (arrVariableActual[0] == Variable)
				Temp = arrVariableActual[1];
		}
		var ObjReferencia ='document.' + Forma + '.' + Indice;
		eval(ObjReferencia + ".value = '" + Temp + "';"); 
	}
	//Asigana la fecha del sistema a un campo oculto
	function AsignarFecha(Indice){
		var Fecha;
		var ObjReferencia ='document.' + Forma + '.' + Indice;
		Fecha = Date();
		eval(ObjReferencia + ".value = '" + Fecha + "';"); 
	}
	//Covierte en mayuscula un textbox
	function Mayuscula(Indice){
		var ObjReferencia ='document.' + Forma + '.' + Indice + '.value';
		eval(ObjReferencia + " = " + ObjReferencia + ".toUpperCase();"); 
	}
	//Oculta un DIV
	function Ocultar(Indice){
		Arreglo = Indice.split(",");
		for( i=0 ; i < Arreglo.length ; i++ )
		eval(Arreglo[i] + ".style.display='none'");
	}
	//Muestra un DIV
	function Mostrar(Indice){
		Arreglo = Indice.split(",");
		for( i=0 ; i < Arreglo.length ; i++ )
			eval(Arreglo[i] + ".style.display='inline'");
	}
	//Quita un ckeck
	function QuitarCheck(Indice){
	var ObjReferencia ='document.' + Forma + '.' + Indice + ".length";
	eval("Largo = " + ObjReferencia + ';'); 
		for (n = 0 ; n < Largo ; n++){
			var ObjReferencia ='document.' + Forma + '.' + Indice + "[" + n + "]";
			eval(ObjReferencia + '.checked =  false;'); 
		}
	}
	//limpia un solo check
	function QuitarUnCheck(Indice){
	Arreglo = Indice.split(",");
	for( i=0 ; i < Arreglo.length ; i++ ){
		var ObjReferencia ='document.' + Forma + '.' + Arreglo[i] + ".checked =  false;" ;
		eval(ObjReferencia); 
		}
	}
	//limpia un campo
	function LimpiaCampo(Indice){
		Arreglo = Indice.split(",");
		for( i=0 ; i < Arreglo.length ; i++ ){
			var ObjReferencia ='document.' + Forma + '.' + Arreglo[i] + ".value = ''";
			eval(ObjReferencia); 
		}
	}
	// valida un radio box con un campo de texto condicionado
	function ValidaRadioyTexto(RadioBox,CampoTexto){
		var ObjReferencia ='document.' + Forma + '.' + RadioBox + '.checked';
		eval("Radio = " + ObjReferencia + ";"); 
		var ObjReferencia ='document.' + Forma + '.' + CampoTexto + '.value';
		eval("Texto = " + ObjReferencia + ";");
		if (Radio)			
			if(!DatoRequerido(CampoTexto,'Texto',0,0))return false;
		return true;
	}
	// valida un radio box con una lista de radioboxs condicionados
	function ValidaRadioyRadios(RadioBox,RadiosBox){
		var Valida = false;
		var ObjReferencia ='document.' + Forma + '.' + RadioBox + '.checked';
		eval("Radio = " + ObjReferencia + ";");
		if (Radio){
			ObjReferencia ='document.' + Forma + '.' + RadiosBox + '.length';
			eval("Largo = " + ObjReferencia + ";"); 
			for( i = 0 ; i < Largo ; i++ ){
				ObjReferencia ='document.' + Forma + '.' + RadiosBox + '[' + i + '].checked';
				eval("Valor = " + ObjReferencia + ";"); 
				if (Valor) return true;
			}
		}else return true;
		alert (NombreCampo(RadiosBox) + '\n\nDebe seleccionar como mínimo una opción.');
		ObjReferencia ='document.' + Forma + '.' + RadiosBox + '[0].focus()';
		eval(ObjReferencia + ';'); 
		return false;
	}
	//valida grupo de checkbox
	function ValidaGrupoCheckBox(Grupo){
		var Valida = false;
		Arreglo = Grupo.split(",");
		for( i=0 ; i < Arreglo.length ; i++ ){
			ObjReferencia ='document.' + Forma + '.' + Arreglo[i] + '.checked';
			eval("Valor = " + ObjReferencia + ';'); 
			if (Valor) Valida = true;
		}
		if (Valida) return true;
		alert (NombreCampo(Arreglo[0]) + '\n\nDebe seleccionar como mínimo una opción.');
		ObjReferencia ='document.' + Forma + '.' + Arreglo[0] + '.focus()';
		eval(ObjReferencia + ';'); 
		return false;	
	}
	//devuelve el nombre del campo a aprtir de un texto
	function NombreCampo(Nomb){
		ArrCampos = Campos1.split(",");
		ArrTextos = Campos2.split(",");
		for( h = 0 ; h < ArrTextos.length ; h++ ){
			if(Nomb.search(ArrTextos[h]) > 0)return ArrCampos[h];
		}
	return '-----------';
	}
	//activa  un campo
	function ActivaCampo(CampoCambio){
		ObjReferencia ='document.' + Forma + '.' + CampoCambio + '.disabled';
		eval(ObjReferencia + ' = false;');
	}
	//activa  un campo
	function DesactivaCampo(CampoCambio){
		Arreglo = CampoCambio.split(",");
		for( i=0 ; i < Arreglo.length ; i++ ){
			ObjReferencia ='document.' + Forma + '.' + Arreglo[i] + '.disabled';
			eval(ObjReferencia + ' = true;');
			ObjReferencia ='document.' + Forma + '.' + Arreglo[i] + '.value';
			eval(ObjReferencia + " = '';");
		}
	}
	//activa - desactiva campo
	function ActivaDesactivaCampo(CampoValida,CampoCambio){
		ObjReferencia ='document.' + Forma + '.' + CampoValida + '.checked';
		eval('Valor = ' + ObjReferencia + ';');
		ObjReferencia ='document.' + Forma + '.' + CampoCambio + '.disabled';
		if (Valor)
			eval(ObjReferencia + ' = false;');
		else{
			eval(ObjReferencia + ' = true;');
			ObjReferencia ='document.' + Forma + '.' + CampoCambio + ".value = ''";
			eval(ObjReferencia + ';');
		}
	}
	//si un check box o un radio estan con ckeck devuelve true
	function Condicion(indice){
		ObjReferencia ='document.' + Forma + '.' + indice + '.checked';
		eval('Valor = ' + ObjReferencia + ';');
		return Valor;
	}
	//valida un dato si se encuantra en un Mascara de expresion regular, valida cuando se ingresa un dato
	function Mascara(Ev,Tipo) {
		Aux = 1;
		switch (Tipo){
			case 1:
				Patron = /[AEDaed]/;
				break;
			case 2:
				Patron = /^\d+[0-9]*$/;
				break;
			}
		Tecla = (document.all) ? Ev.keyCode : Ev.which;
    	if (Tecla == 8) return true;
    	Te = String.fromCharCode(Tecla);
    	return Patron.test(Te);
	}
	//Inicio del formulario
	function Inicio(){
		//alert('inicio');
		AsignarFecha("p2329");
		ObjReferencia ='document.' + Forma + '.p2272.focus()';
		eval(ObjReferencia + ';');
		DesactivaCampo('p2279,p2280,p2331,p2332,p2325');
		//AsignarVariableParametro("codigo","p2330");
		
	}
	//restringe la entrada de un campo numerico a un rango
	function ValorRestingido(Indice,Minimo,Maximo){
	var ObjReferencia ='document.' + Forma + '.' + Indice;
	eval("Valor = " + ObjReferencia + ".value;"); 
	if (Valor < Minimo || Valor > Maximo){
		Cad = Valor.toString();
		Cad = Cad.substr(0,Cad.length-1);
		eval(ObjReferencia + ".value = '" + Cad + "';"); 
		}
	}
	//valida si el valor de una serie de campos cumplen la condicion que suma sea 100
	function ValidaPorcentajeTotal(Grupo){
		var Valida = false;
		var Total = 0;
		Arreglo = Grupo.split(",");
		for( i=0 ; i < Arreglo.length ; i++ ){
			ObjReferencia ='document.' + Forma + '.' + Arreglo[i] + '.value';
			eval("Valor = " + ObjReferencia + ';'); 
			if (Valor == '') Valor = 0;
			Total += parseInt (Valor);
		}
		
		if (Total == 100) return true;
		alert (NombreCampo(Arreglo[0]) + '\n\nLos valores de los porcentajes deben sumar 100.');
		ObjReferencia ='document.' + Forma + '.' + Arreglo[0] + '.focus();';
		eval(ObjReferencia + ';'); 
		ObjReferencia ='document.' + Forma + '.' + Arreglo[0] + '.select();';
		eval(ObjReferencia); 
		return false;	
	}
	function Contar(Indice,Salida){
		limite = 200;
		var ObjReferencia ='document.' + Forma + '.' + Indice;
		var ObjReferencia2 ='document.' + Forma + '.' + Salida;
		eval("Valor = " + ObjReferencia + ".value.length;"); 
		if(Valor > limite){
			eval(ObjReferencia + ".value = " + ObjReferencia + ".value.substring(0, "+ limite +");");
			}
		else{
			eval(ObjReferencia2 + ".value = " + (limite - Valor));
			}
		}
//**********************************************************************************************
//**********************************************************************************************
//**********************************************************************************************
//**********************************************************************************************
	//valida el formulario
	function ValidarForma(){
		//------------------------------------------------------------------------------------------------------
		//datos requeridos de texto
		Campos = "p2272,p2273,p2274,p2275,p2276,p2277";
		Arreglo = Campos.split(",");
		for( i = 0 ; i < Arreglo.length ; i++ )
			if(!DatoRequerido(Arreglo[i],'Texto',0,0))return false;
		if(!DatoRequerido('p2275','Mail',0,0))return false;
		//------------------------------------------------------------------------------------------------------
		//radio box requeridos
		CamposRB = "p2278,p2281,p2324";
		ArrRB = CamposRB.split(",");
		for( k = 0 ; k < ArrRB.length ; k++ )
			if(!DatoRequerido(ArrRB[k],'RadioBox',0,0))return false;
		//------------------------------------------------------------------------------------------------------
		//Validar datos de textos condicionados por un radiobox
		if(!ValidaRadioyTexto('p2278[8]','p2279'))return false;
		if(!ValidaRadioyTexto('p2278[11]','p2280'))return false;
		if(!ValidaRadioyTexto('p2323[1]','p2331'))return false;
		if(!ValidaRadioyTexto('p2323[2]','p2332'))return false;
		if(!ValidaRadioyTexto('p2324[4]','p2325'))return false;
		
		//validar radioboxes condicionados por un radiobox
		if(!ValidaRadioyRadios('p2281[2]','p2323'))return false;
		//alert('Se envio con éxito la información del formulario.');
		return true;
	}
	