
function JValidaRUT(valorut) {  //al ingresar el valor chequea digVer con el                                
  var digi ="";                 //ultimo valor del string que es el DV
  var i;
  valorut.select();
  var valor = JTrim(valorut.value);
  if (valor.length-1 != 0) {
	var DigVer = valor.substring(valor.length-1,valor.length);
	var guion = valor.substring(valor.length-2,valor.length-1);
	var digitos = valor.substring(0, valor.length-2);
	if (guion != "-") {
		alert("RUT mal ingresado. Debe ingresar RUT con dígito verificador y sin puntos");
	    valorut.focus();
	    valorut.select();
	    return false;
	}
    for (i=0; i < digitos.length-1 ; i++ ){ 
	  if ( valor.charAt(i) !="0" && valor.charAt(i) != "1" && valor.charAt(i) !="2" && valor.charAt(i) != "3" && valor.charAt(i) != "4" && valor.charAt(i) !="5" && valor.charAt(i) != "6" && valor.charAt(i) != "7" && valor.charAt(i) !="8" && valor.charAt(i) != "9" ) 
	  {
	    alert("El valor ingresado debe ser Numérico.");
	    valorut.focus();
	    valorut.select();
	    return false;
	  }
	}   
     digi = JDigitoRut(digitos);
     if (digi != DigVer.toUpperCase()) {
	    alert("El RUT no es válido o está mal ingresado");
	    valorut.focus();
	    valorut.select();
	    return false;
     }
     return true;
  }
}

function JTrim(str){
  var ini=0;
  var fin=str.length-1;
  while(ini<=fin && str.charAt(ini)==" ") ini++;
  if (ini<=fin){
    while(str.charAt(fin)==" ") fin--;
    if (fin<str.length-1) {
	fin++;
	return Jsubstring(str,ini,fin);
    } else return Jsubstr(str,ini);
  } else return '';
}

function Jsubstr(str,ini){
  var v='';
  for(i=ini;i<str.length;i++) v+=str.charAt(i);
  return v;
}

function Jsubstring(str,ini,fin){
  var v='';
  var bound=(fin>str.length) ? str.length : fin;
  for(i=ini;i<bound;i++) v+=str.charAt(i);
  return v;
}

function JDigitoRut(numero){
  var suma=0;
  var mul=2;
  var i=0;
  for (i=numero.length-1;i>=0;i--){
    suma=suma+numero.charAt(i) * mul;
    mul= mul==7 ? 2 : mul+1;
  }
  var dvr = ''+(11 - suma % 11);
  if (dvr=='10') dvr = 'K';
  else if (dvr=='11') dvr = '0';
  return(dvr);
}
