function fvfValidarRutLongitud(ctrlRut, nLongitudMinima, nLongitudMaxima)
{
	var sRutCompleto = ctrlRut.value;
	sRutCompleto = sRutCompleto.replace(/\./g, "");
	ctrlRut.value = sRutCompleto;
	var expresion = new RegExp("^ *([0-9]+)\-([0-9Kk]) *$");
	var aResultado = expresion.exec(sRutCompleto);
	if(aResultado == null)
	{
		if(sRutCompleto.indexOf("-") == -1) // si no tiene guion
			alert("Ingrese nuevamente el RUT con el guión ej. 11563863-4");
		else
			alert("El formato del RUT que ingresó\nno es válido ej. 11563863-4, por favor\ningréselo nuevamente");
		ctrlRut.focus();

		return false;
	}

	var ElRut = aResultado[1];

	if(ElRut.length < nLongitudMinima || ElRut.length > nLongitudMaxima)
	{
		alert("El RUT que ingresó\nno es válido ej. 11563863-4, por favor\ningréselo nuevamente");
		ctrlRut.focus();
		return false;
	}

	return fvfValidarRut(ctrlRut);
}

function fvfValidarRut(ctrlRut)
{
	var sRutCompleto = ctrlRut.value;
	sRutCompleto = sRutCompleto.replace(/\./g, "");
	ctrlRut.value = sRutCompleto;
	var expresion = new RegExp("^ *([0-9]+)\-([0-9Kk]) *$");
	var aResultado = expresion.exec(sRutCompleto);
	var ElRut;
	var ElDv;
	if(aResultado == null)
	{
		if(sRutCompleto.indexOf("-") == -1) // si no tiene guion
			alert("Ingrese nuevamente el RUT con el guión ej. 11563863-4");
		else
			alert("El formato del RUT que ingresó\nno es válido ej. 11563863-4, por favor\ningréselo nuevamente");
		ctrlRut.focus();
		return false;
	}

	var ElRut = aResultado[1];
	var ElDv = aResultado[2];
	ElDv = ElDv.toUpperCase();
	var largo_rut = ElRut.length;
	var largo_dv = ElDv.length;
	var RutC = ElRut+ElDv;

	var rut00 = "000000000";


/*    if (largo_rut <= 6) {
  			alert("El RUT que ingresó no\nes válido, por favor\ningréselo nuevamente");
			ctrlRut.focus();
			return (false);
    }
*/
	if (rut00.substring(0, largo_rut) == ElRut)
	{
			alert("El RUT que ingresó no\nes válido, por favor\ningréselo nuevamente");
			ctrlRut.focus();
			return (false);
	}
	if (largo_rut==0) 
	{
		   alert("El RUT está vacío");
		   ctrlRut.focus();
		   return (false);
	}
	if (largo_dv==0) 
	{
		   alert("El Dígito Verificador está vacío");
		   ctrlRut.focus();
		   return (false);
		} 
	else if ( largo_dv == 2 )
	{
		   alert("El Dígito Verificador sólo debe tener un caracter");
		   ctrlRut.focus();
		   return (false);
		}
	for(i=0;i<largo_rut;i++)
	{
		c=ElRut.charAt(i);
		if (c<"0" || c>"9"){
				   alert("El RUT que ingresó no\nes válido, por favor\ningréselo nuevamente");
				   ctrlRut.focus();
				   return (false);
		}
	}
		c=ElDv.charAt(0);
	if ( (c<"0" || c>"9") && c!="K" )
	{
		   alert("El Dígito Verificador\n que ingresó no es válido,\n por favor ingréselo nuevamente");
		   ctrlRut.focus();
		   return (false);
	}
	var suma=0;
	var mult=2;
	if (ElDv=="K") ElDv="10";
	for (i=largo_rut-1;i>=0;i--)
	{
		c=ElRut.charAt(i);
		suma+=parseInt(c,10)*mult;
		mult++;
		if (mult>7) mult=2;
	}
	var calculado=11-suma%11;
	if (calculado==11) calculado=0;
	if(parseInt(ElDv)!=calculado)
	{
		   alert("El RUT que ingresó no\nes válido, por favor.\ningréselo nuevamente");
		   ctrlRut.focus();
		   return (false);
	}

	return (true);
}

function fvfValidarRbd(ctrlRut)
{
	var sRutCompleto = ctrlRut.value;
	sRutCompleto = sRutCompleto.replace(/\./g, "");
	ctrlRut.value = sRutCompleto;
	var expresion = new RegExp("^ *([0-9]+)\-([0-9Kk]) *$");
	var aResultado = expresion.exec(sRutCompleto);
	var ElRut;
	var ElDv;
	if(aResultado == null)
	{
		if(sRutCompleto.indexOf("-") == -1) // si no tiene guion
			alert("Ingrese nuevamente el RBD con el guión ej. 509-6");
		else
			alert("El formato del RBD que ingresó\nno es válido ej. 509-6, por favor\ningréselo nuevamente");
		ctrlRut.focus();
		return false;
	}

	var ElRut = aResultado[1];

	if(ElRut.length < 1 || ElRut.length > 5)
	{
		alert("El RBD que ingresó\nno es válido ej. 509-6, por favor\ningréselo nuevamente");
		ctrlRut.focus();
		return false;
	}

	var ElDv = aResultado[2];
	ElDv = ElDv.toUpperCase();
	var largo_rut = ElRut.length;
	var largo_dv = ElDv.length;
	var RutC = ElRut+ElDv;

	var rut00 = "000000000";


/*    if (largo_rut <= 6) {
  			alert("El RBD que ingresó no\nes válido, por favor\ningréselo nuevamente");
			ctrlRut.focus();
			return (false);
    }
*/
	if (rut00.substring(0, largo_rut) == ElRut)
	{
			alert("El RBD que ingresó no\nes válido, por favor\ningréselo nuevamente");
			ctrlRut.focus();
			return (false);
	}
	if (largo_rut==0) 
	{
		   alert("El RBD está vacío");
		   ctrlRut.focus();
		   return (false);
	}
	if (largo_dv==0) 
	{
		   alert("El Dígito Verificador está vacío");
		   ctrlRut.focus();
		   return (false);
		} 
	else if ( largo_dv == 2 )
	{
		   alert("El Dígito Verificador sólo debe tener un caracter");
		   ctrlRut.focus();
		   return (false);
		}
	for(i=0;i<largo_rut;i++)
	{
		c=ElRut.charAt(i);
		if (c<"0" || c>"9"){
				   alert("El RBD que ingresó no\nes válido, por favor\ningréselo nuevamente");
				   ctrlRut.focus();
				   return (false);
		}
	}
		c=ElDv.charAt(0);
	if ( (c<"0" || c>"9") && c!="K" )
	{
		   alert("El Dígito Verificador\n que ingresó no es válido,\n por favor ingréselo nuevamente");
		   ctrlRut.focus();
		   return (false);
	}
	var suma=0;
	var mult=2;
	if (ElDv=="K") ElDv="10";
	for (i=largo_rut-1;i>=0;i--)
	{
		c=ElRut.charAt(i);
		suma+=parseInt(c,10)*mult;
		mult++;
		if (mult>7) mult=2;
	}
	var calculado=11-suma%11;
	if (calculado==11) calculado=0;
	if(parseInt(ElDv)!=calculado)
	{
		   alert("El RBD que ingresó no\nes válido, por favor.\ningréselo nuevamente");
		   ctrlRut.focus();
		   return (false);
	}

	return (true);
}

function fvfValidarEmail(ctrlEmail)
{
	var sEmail = ctrlEmail.value;
	var expresion = new RegExp("^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+");
	if(expresion.exec(sEmail) == null)
	{
		alert("El E-mail ingresado no\nes válido, por favor\ningréselo nuevamente");
		ctrlEmail.focus();
		return false;
	}
	else
		return true;
}

function EjecutarSalto(sAncla, sMensaje, objDestino)
{
	if(objDestino.name == undefined) // Si el objeto destino es un arreglo (ej.: radio buttons)
		objDestino = objDestino[0]; // Se asigna primer elemento del arreglo como objeto destino
	if(objDestino.name == undefined)
		return false;

	sNombreCampoDestino = objDestino.name;
	sPrefijoCampoDestino = sNombreCampoDestino.substring(0, 2);
	alert(sMensaje);
	window.location = "#" + sAncla;
	window.document.getElementById('tabla_' + sAncla).style.backgroundColor = '#cccccc';
	objDestino.focus();
}

function gValidarCampoTextoRequerido(ctrlCampo)
{
	if(ctrlCampo.value == "")
	{
		ctrlCampo.focus();
		alert("Debe ingresar un valor para la pregunta requerida.");
		return false;
	}
	else
	{
		return true;
	}
}

function gValidarCampoRadioRequerido(ctrlCampo)
{
	var nCont = 1;
	var bHayValorSeleccionado = false;
	while (!bHayValorSeleccionado && nCont <= ctrlCampo.length)
	{
		if (ctrlCampo[nCont-1].checked == "1") 
		{
			bHayValorSeleccionado = true;
		}

		nCont++;
	}

	if(bHayValorSeleccionado)
	{
		return true;
	}
	else
	{
		ctrlCampo[0].focus();
		alert("Debe seleccionar un valor para la pregunta requerida.");
		return false;
	}
}

function gValidarCampoCheckboxRequerido(sBaseItem, sCantidadItems)
{
	nCont=1;
	bHaySeleccion = false;
	while(!bHaySeleccion && nCont <= sCantidadItems)
	{
		bHaySeleccion = eval(sBaseItem+ "op" + nCont + ".checked");
		nCont++;
	}
	bHaySeleccion = bHaySeleccion || eval(sBaseItem + "op_otro.checked");
	if(!bHaySeleccion)
	{
		eval(sBaseItem + "op1.focus()");
		alert("Debe seleccionar una o más opciones para esta pregunta.");
		return false;
	}
	else
		return true;
}

function gValidarCampoRankingRequerido(sBaseItemRanking, sCantidadItems)
{
	nCont=1;
	bHaySeleccion = true;
	while(bHaySeleccion && nCont <= sCantidadItems)
	{
		bHaySeleccion = eval(sBaseItemRanking + "op" + nCont + ".value") != "";
		nCont++;
	}
	if(!bHaySeleccion)
	{
		ctrlVacio = eval(sBaseItemRanking + "op" + (nCont-1));
		ctrlVacio.focus();
		alert("Debe seleccionar una opción para todos los ítems de la pregunta.");
		return false;
	}
	else
	{
		return true;
	}
}

