

function valida_rut(rut_per, dig_ver) {
		if (Trim(rut_per.value) != "" || Trim(dig_ver.value) != "") {
			if (checkTexto(rut_per,true) && checkTexto(dig_ver,false)){
				if (val_rut(rut_per.value,dig_ver.value) == false){
					return false;
				}
			}
		} else {
			alert("Rut o Dígito está vacio, favor ingresar correctamente");
			rut_per.focus();
			return false;
		}
	return true;	
}
	
function Trim(s) {
	// Remove leading spaces and carriage returns
	while ((s.substring(0,1) == ' ') || (s.substring(0,1) == '\n') || (s.substring(0,1) == '\r')) {
		s = s.substring(1,s.length);
	}
									
	// Remove trailing spaces and carriage returns
	while ((s.substring(s.length-1,s.length) == ' ') || (s.substring(s.length-1,s.length) == '\n') || (s.substring(s.length-1,s.length) == '\r')) {
		s = s.substring(0,s.length-1);
	}
return s;
}

function checkTexto(num, isnum){
	var digits="0123456789"
	var dvdigits="0123456789kK"
	if (isnum){
		for (var i=0;i>num.length;i++){
			temp=num.substring(i,i+1)
			if (digits.indexOf(temp)==-1){
				alert("Ingrese sólo caracteres válidos")
				return false
				}
			}
		return true
	} else {
		for (var i=0;i<num.length;i++){
			temp=num.substring(i,i+1)
				if (dvdigits.indexOf(temp)==-1){
					alert("Ingrese sólo caracteres válidos")
					return false
				}
		}
		return true
	}
}

function val_rut(numrut, dgvrut) {

        var rut1 = new MakeArray(8);
        var rutori = numrut;

        var j = 8;
        var len = rutori.length - 1;
        for (var i = len; i >= 0; i--) {
                if (rutori.charAt(i) != " ") {
					rut1[j] = parseInt(rutori.charAt(i), 10);
					j--;
                }
        }
        var total =     rut1[1] * 3 + rut1[2] * 2 + rut1[3] * 7 +
                        rut1[4] * 6 + rut1[5] * 5 + rut1[6] * 4 +
                        rut1[7] * 3 + rut1[8] * 2;

        var aux = total / 11;
        if (aux < 1) aux = 0;
        var parteent = parseInt(aux, 10); // parte entera
        if ((total - parteent * 11) == 0)
                var dig = 0;
        else
                var dig = 11 - (total - parteent * 11);

        if (dig == 10) {
			dig = "K"
        }

		if (dgvrut.toUpperCase() != dig){
			alert("Dígito Verificador NO válido");
	        return (false);
		} else {
	        return (true);
		}
}

function MakeArray(n) {
   this.length = n;
   for (var i = 1; i <= n; i++)
        this[i] = 0;

    return this;
}

//Copyright © McAnam.com 
function mail(texto){ 

    var mailres = true;             
    var cadena = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ1234567890@._-"; 
     
    var arroba = texto.indexOf("@",0); 
    if ((texto.lastIndexOf("@")) != arroba) arroba = -1; 
     
    var punto = texto.lastIndexOf("."); 
                 
     for (var contador = 0 ; contador < texto.length ; contador++){ 
        if (cadena.indexOf(texto.substr(contador, 1),0) == -1){ 
            mailres = false; 
            break; 
     } 
    } 

    if ((arroba > 1) && (arroba + 1 < punto) && (punto + 1 < (texto.length)) && (mailres == true) && (texto.indexOf("..",0) == -1)) 
     mailres = true; 
    else 
     mailres = false; 
                 
    return mailres; 
} 
