// Validador campos



// Por: Rodrigo Alfaro, Mayo 2009



//-> Funciones de validación de RUT



function valida() {



	rut_val = document.ingresa_usu.rec_rut.value;



	clave = document.ingresa_usu.clave_aux.value;



	if ( rut_val.length == 0 ) 



	{



		alert( "Ingrese su R.U.T.");



		document.ingresa_usu.rec_rut.focus();



		return;



	}



	if ( clave.length == 0 ) 



	{



		alert( "Ingrese su Clave.");



		document.ingresa_usu.clave_aux.focus();



		return;



	}



	if ( !checkRutField(document.ingresa_usu.rec_rut.value) )



	{	



		return;



	}



	if ( clave.length < 4 && clave.length > 8 )



	{



		alert("La clave debe poseer un largo mínimo de 4 dígitos y máximo de 8 dígitos.");



		document.ingresa_usu.clave_aux.focus();



		document.ingresa_usu.clave_aux.select();



		return;



	}



	document.ingresa_usu.clave.value = document.ingresa_usu.clave_aux.value;



	var tmpstr = "";	



	for ( i=0; i < rut_val.length ; i++ )



		if ( rut_val.charAt(i) != ' ' && rut_val.charAt(i) != '.' && rut_val.charAt(i) != '-' )



			tmpstr = tmpstr + rut_val.charAt(i);



	rut_val = tmpstr;



	rut_valor = rut_val.substring(0,rut.length);



	if ( rut_valor > 50000000)



	{



		alert( "El R.U.T. corresponde a una empresa, ingrese a través del portal empresas.");	



		document.ingresa_usu.rec_rut.value = "";



		document.ingresa_usu.clave_aux.value = "";



		document.ingresa_usu.rec_rut.focus();



		return;



	}



	document.ingresa_usu.rut.value = rut_val.substring(0,rut.length);	



	document.ingresa_usu.dig.value = rut_val.substring(rut.length,rut.length+1);



	document.ingresa_usu.rec_rut.value = "";



	document.ingresa_usu.clave_aux.value = "";



	document.ingresa_usu.submit();



}



function checkRutField(rut)



{



	var tmpstr = "";



	for ( i=0; i < rut.length ; i++ )



		if ( rut.charAt(i) != ' ' && rut.charAt(i) != '.' && rut.charAt(i) != '-' )



			tmpstr = tmpstr + rut.charAt(i);



	rut = tmpstr;



	largo = rut.length;



// [VARM+]



	tmpstr = "";



	for ( i=0; rut.charAt(i) == '0' ; i++ );



		for (; i < rut.length ; i++ )



			tmpstr = tmpstr + rut.charAt(i);



	rut = tmpstr;



	largo = rut.length;



// [VARM-]



	if ( largo < 2 )



	{



		alert("Debe ingresar el rut completo.");



		document.ingresa_usu.rec_rut.focus();



		document.ingresa_usu.rec_rut.select();



		return false;



	}



	for (i=0; i < largo ; i++ )



	{



		if ( rut.charAt(i) != "0" && rut.charAt(i) != "1" && rut.charAt(i) !="2" && rut.charAt(i) != "3" && rut.charAt(i) != "4" && rut.charAt(i) !="5" && rut.charAt(i) != "6" && rut.charAt(i) != "7" && rut.charAt(i) !="8" && rut.charAt(i) != "9" && rut.charAt(i) !="k" && rut.charAt(i) != "K" )



		{



			alert("El valor ingresado no corresponde a un R.U.T valido.");



			document.ingresa_usu.rec_rut.focus();



			document.ingresa_usu.rec_rut.select();



			return false;



		}



	}







	if ( checkDV(rut) )



		return true;



	return false;



}



function checkDV( crut )



{



	largo = crut.length;



	if ( largo < 2 )



	{



		alert("Debe ingresar el rut completo.");



		document.ingresa_usu.rec_rut.focus();



		document.ingresa_usu.rec_rut.select();



		return false;



	}



	if ( largo > 2 )



		rut = crut.substring(0, largo - 1);



	else



		rut = crut.charAt(0);



	dv = crut.charAt(largo-1);



	checkCDV( dv );



	if ( rut == null || dv == null )



		return 0;



	var dvr = '0';



	suma = 0;



	mul = 2;



	for (i= rut.length -1 ; i >= 0; i--)



	{



		suma = suma + rut.charAt(i) * mul;



		if (mul == 7)



			mul = 2;



		else



			mul++;



	}



	res = suma % 11;



	if (res==1)



		dvr = 'k';



	else if (res==0)



		dvr = '0';



	else



	{



		dvi = 11-res;



		dvr = dvi + "";



	}



	if ( dvr != dv.toLowerCase() )



	{



		alert("EL rut es incorrecto.");



		document.ingresa_usu.rec_rut.focus();



		document.ingresa_usu.rec_rut.value = "";



		return false;



	}



	return true;



}



function checkCDV( dvr )



{



	dv = dvr + "";



	if ( dv != '0' && dv != '1' && dv != '2' && dv != '3' && dv != '4' && dv != '5' && dv != '6' && dv != '7' && dv != '8' && dv != '9' && dv != 'k'  && dv != 'K')



	{



		alert("Debe ingresar un digito verificador valido.");



		document.ingresa_usu.rec_rut.focus();



		document.ingresa_usu.rec_rut.select();



		return false;



	}



	return true;



}
