function validaRut(rut) {
    rut = trim(rut);
    if (rut == null || rut.length == 0) {
        return false;
    }

    var rut_temp = extraeValoresRut(rut);
    var soloRut = rut_temp[0];
    var dv = rut_temp[1];

    if (!validaDV(soloRut, dv)) {
        return false;
    }
    return true;
}

function validaDV(rut, dv) {
    var M=0,S=1;
    if (dv == 'K') {
        dv = 'k';
    }
    for (;rut;rut=Math.floor(rut/10)) {
        S=(S+rut%10*(9-M++%6))%11;
    }
    S = S?S-1:'k';

    if (dv == S) {
        return true;
    }
    return false;
}

function agregaGuionRut(rut) {
    var rut_temp = extraeValoresRut(rut);
    return rut_temp[0] + "-" + rut_temp[1];
}

function remueveGuionRut(rut) {
    var rut_temp = extraeValoresRut(rut);
    return rut_temp[0] + rut_temp[1];
}

function extraeValoresRut(rut) {
    var soloRut = "";
    var dv = "";
    if (rut.indexOf('-',0) >= 0) {
        var indice_guion = rut.indexOf("-", 0);
        soloRut = rut.substr(0,indice_guion);
        dv = rut.substr(indice_guion + 1, rut.length);
    }
    else {
        soloRut = rut.substr(0,rut.length - 1);
        dv = rut.substr(rut.length - 1, rut.length);
    }
    return [soloRut, dv];
}

function formatearRutOnBlur(rut_id) {
    rut = document.getElementById(rut_id);
    document.getElementById('rut_temp').value = rut.value;

    if (validaRut(rut.value)) {
            valor = extraeValoresRut(rut.value);

            if (valor[0].length > 0) {
                    rut.value=insertapuntos(valor[0]) + '-' + valor[1];
            }
    }
    else {
        alert("Rut no es valido");
    }
}


function insertapuntos(strval)
{
	var A = new Array();
	var strtemp = strval;

	strtemp = new Number(strtemp);
	strtemp = new String(strtemp);
	if (strtemp.length > 3)
	{
		for(var i = 0; strtemp.length > 3; i++)
		{
			A[i] = Right(strtemp,3);
			strtemp /= 1000;
			strtemp=new String(strtemp);
			if (strtemp.indexOf('.') != -1)
			{
      				strtemp = strtemp.substr(0,strtemp.indexOf('.'));
      			}
		}
		for(i-- ;i >= 0 ;i--)
		{
			strtemp = strtemp + "." + A[i];
		}
	}
	return(strtemp);
}

function Right(strvar,intcant)
{
	strtemp = "";
	intlargo = strvar.length -1;
	for(i = 1;i <= intcant; i++)
	{
		strtemp = strtemp + strvar.charAt(intlargo);
		intlargo--;
	}

	strtmp2=""
	for(intlargo = strtemp.length -1; intlargo >=0; intlargo--)
	{
		strtmp2 = strtmp2 + strtemp.charAt(intlargo);
	}
	return(strtmp2);
}

function formatearRutOnFocus(forma) {
    document.getElementById(forma).value = document.getElementById('rut_temp').value;
}

function trim(string) {
    return string.replace(/^[\s]+/,'').replace(/[\s]+$/,'').replace(/[\s]{2,}/,' ');
}