function CalcularDigito( Digitos ) { //Sin puntos ni guiones

multiplo = 2;
suma=0;

for (i=0; i<= (Digitos.length -1); i++) {

	if (multiplo>7)
		multiplo=2;
	car = Digitos.substring(Digitos.length-i-1, Digitos.length-i);	
	suma += ( parseInt(car) * multiplo );
	multiplo += 1;
}

//Calcular digito
DigVer = 11 - (suma % 11);

//Revisar casos especiales
//	si digito = 10 => k
//	si digito = 11 => 0

	switch (DigVer) {
		case 10 :
			return 'K';
			break;
		case 11:
			return '0';
			break;
		default :
			return DigVer.toString();
	}

}


function SacaCerosRut( origen ) {
 var destino = '';
 var nocero = false;
 
 	for (i=0; i<= (origen.length)-1; i++) {
 		car = origen.substring( i, i+1); 		
 		if (car!='0') {
 			destino += car;
 			nocero = true;
 		}
 		else {
 			if (nocero)
 				destino += car;
 		}
 	}
 	
 	return destino;
}

function ValidarRut( rutCliente, DigitoVer ) { //sin puntos ni guiones
var textoDig = 'kK1234567890';
var Corregido = '';

if (DigitoVer=='k')
	DigitoVer='K';

if (rutCliente.substring(0,1)=='0') {
	mensaje = 'El R.U.T. no puede comenzar con 0';
	return mensaje;
}

rutCli = SacaCerosRut( rutCliente );
rutDisplay = rutCliente + '-' + DigitoVer;

mensaje='';

	//verifica largo del rut
	if (rutDisplay.length <=3)
		mensaje = 'El R.U.T. ' + rutDisplay + ' no es válido';
	else {

		//buscar caracteres no validos
		for (i=0; i<=rutCli.length-1; i++) {
			car = rutCli.substring(i,i);
			
			if (textoDig.search(car)==-1) {
				mensaje = 'El R.U.T. contiene caracteres no válidos';
				break;
			}			
		}

		if (mensaje=='') {
			//digitoverificador
			Corregido = CalcularDigito(rutCli);
			if (DigitoVer!=Corregido)
				mensaje = 'El R.U.T. ' + rutDisplay + ' no es válido';
		}
	}


	if (mensaje=='')
		return 'ok';
	else
		return mensaje;

}
