﻿function CheckRUT(sender,args)
{var rut=args.Value;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;tmpstr="";for(i=0;rut.charAt(i)=='0';i++);for(;i<rut.length;i++)
tmpstr=tmpstr+rut.charAt(i);rut=tmpstr;largo=rut.length;if(largo<2)
{alert("Debe ingresar el rut completo.");args.IsValid=false;return;}
var invertido="";for(i=(largo-1),j=0;i>=0;i--,j++)
invertido=invertido+rut.charAt(i);var drut="";drut=drut+invertido.charAt(0);drut=drut+'-';cnt=0;for(i=1,j=2;i<largo;i++,j++)
{if(cnt==3)
{drut=drut+'.';j++;drut=drut+invertido.charAt(i);cnt=1;}
else
{drut=drut+invertido.charAt(i);cnt++;}}
invertido="";for(i=(drut.length-1),j=0;i>=0;i--,j++)
invertido=invertido+drut.charAt(i);sender.value=invertido;args.IsValid=(Right(rut,1).toUpperCase()==checkDV(rut));}
function checkDV(crut)
{var Rut=Left(crut,crut.length-1);var dv=Right(crut,1)
var m="432765432";var n=0;var i=1;m=Right(m,Rut.length);for(i=1;i<=Rut.length;i++)
n=n+(Right(Left(Rut,i),1)*1)*(Right(Left(m,i),1)*1);n=11*(1+Math.floor(n/11))-n;if(n==10){n="K"};if(n==11){n=0};return n;}
function Left(str,n)
{return String(str).substring(0,n);}
function Right(str,n)
{var iLen=String(str).length;return String(str).substring(iLen,iLen-n);}