
//
// Validador de Rut
//
function revisarDigito( dvr )
{	
	dv = dvr + ""	
	if ( dv != '0' && dv != '1' && dv != '2' && dv != '3' && dv != '4' && dv != '5' && dv != '6' && dv != '7' && dv != '8' && dv != '9' && dv != 'k'  && dv != 'K')	
	{		
		alert("Debe ingresar un digito verificador valido");		
		window.document.form1.rut.focus();		
		window.document.form1.rut.select();		
		return false;	
	}	
	return true;
}

function revisarDigito2( crut )
{	
	largo = crut.length;	
	if ( largo < 2 )	
	{		
		alert("Debe ingresar el rut completo")		
		window.document.form1.rut.focus();		
		window.document.form1.rut.select();		
		return false;	
	}	
	if ( largo > 2 )		
		rut = crut.substring(0, largo - 1);	
	else		
		rut = crut.charAt(0);	
	dv = crut.charAt(largo-1);	
	revisarDigito( dv );	

	if ( rut == null || dv == null )
		return 0	

	var dvr = '0'	
	suma = 0	
	mul  = 2	

	for (i= rut.length -1 ; i >= 0; i--)	
	{	
		suma = suma + rut.charAt(i) * mul		
		if (mul == 7)			
			mul = 2		
		else    			
			mul++	
	}	
	res = suma % 11	
	if (res==1)		
		dvr = 'k'	
	else if (res==0)		
		dvr = '0'	
	else	
	{		
		dvi = 11-res		
		dvr = dvi + ""	
	}
	if ( dvr != dv.toLowerCase() )	
	{		
		alert("EL rut es incorrecto")		
		window.document.form1.rut.focus();		
		window.document.form1.rut.select();		
		return false	
	}

	return true
}

function Rut(texto)
{	
	var tmpstr = "";	
	for ( i=0; i < texto.length ; i++ )		
		if ( texto.charAt(i) != ' ' && texto.charAt(i) != '.' && texto.charAt(i) != '-' )
			tmpstr = tmpstr + texto.charAt(i);	
	texto = tmpstr;	
	largo = texto.length;	

	if ( largo < 2 )	
	{		
		alert("Debe ingresar el rut completo")		
		window.document.form1.rut.focus();		
		window.document.form1.rut.select();		
		return false;	
	}	

	for (i=0; i < largo ; i++ )	
	{			
		if ( texto.charAt(i) !="0" && texto.charAt(i) != "1" && texto.charAt(i) !="2" && texto.charAt(i) != "3" && texto.charAt(i) != "4" && texto.charAt(i) !="5" && texto.charAt(i) != "6" && texto.charAt(i) != "7" && texto.charAt(i) !="8" && texto.charAt(i) != "9" && texto.charAt(i) !="k" && texto.charAt(i) != "K" )
 		{			
			alert("El valor ingresado no corresponde a un R.U.T valido");			
			window.document.form1.rut.focus();			
			window.document.form1.rut.select();			
			return false;		
		}	
	}	

	var invertido = "";	
	for ( i=(largo-1),j=0; i>=0; i--,j++ )		
		invertido = invertido + texto.charAt(i);	
	var dtexto = "";	
	dtexto = dtexto + invertido.charAt(0);	
	dtexto = dtexto + '-';	
	cnt = 0;	

	for ( i=1,j=2; i<largo; i++,j++ )	
	{		
		//alert("i=[" + i + "] j=[" + j +"]" );		
		if ( cnt == 3 )		
		{			
			dtexto = dtexto + '.';			
			j++;			
			dtexto = dtexto + invertido.charAt(i);			
			cnt = 1;		
		}		
		else		
		{				
			dtexto = dtexto + invertido.charAt(i);			
			cnt++;		
		}	
	}	

	invertido = "";	
	for ( i=(dtexto.length-1),j=0; i>=0; i--,j++ )		
		invertido = invertido + dtexto.charAt(i);	

	window.document.form1.rut.value = invertido.toUpperCase()		

	if ( revisarDigito2(texto) )		
		return true;	

	return false;
}


// Validador de Rut en tiempo real
function revisarDigito(dvr){     
  dv = dvr + ""     
  if( dv != '0' && dv != '1' && dv != '2' && dv != '3' && dv != '4' && dv != '5' && dv != '6' && dv != '7' && dv != '8' && dv != '9' && dv != 'k'  && dv != 'K'){         
    alert("Debe ingresar un digito verificador valido");         
    window.document.ingreso.rutContacto.focus();         
    window.document.ingreso.rutContacto.select();         
    return false;     
  }     
  return true; 
} 

function revisarDigito2(crut){     
  largo = crut.length;     
  if(largo<2){         
    alert("Debe ingresar el rut completo")         
    window.document.ingreso.rutContacto.focus();         
    window.document.ingreso.rutContacto.select();         
    return false;     
  }     
  if(largo>2)         
    rut = crut.substring(0, largo - 1);     
  else         
    rut = crut.charAt(0);     
    dv = crut.charAt(largo-1);     
    revisarDigito( dv );     

  if ( rut == null || dv == null ) 
    return 0     
    var dvr = '0'     
    suma = 0     
    mul  = 2     

    for (i= rut.length -1 ; i >= 0; i--){     
        suma = suma + rut.charAt(i) * mul         
        if (mul == 7)             
            mul = 2         
        else                 
            mul++     
    }     
    res = suma % 11     
    if (res==1)         
        dvr = 'k'     
    else if (res==0)         
        dvr = '0'     
    else     
    {         
        dvi = 11-res         
        dvr = dvi + ""     
    } 
    if ( dvr != dv.toLowerCase() )     
    {         
        alert("EL rut es incorrecto")         
        window.document.ingreso.rutContacto.focus();         
        window.document.ingreso.rutContacto.select();         
        return false     
    } 

    return true 
} 

function Rut(texto){     
  var tmpstr = "";     
  for ( i=0; i < texto.length ; i++ )         
    if ( texto.charAt(i) != ' ' && texto.charAt(i) != '.' && texto.charAt(i) != '-' ) 
        tmpstr = tmpstr + texto.charAt(i);     
    texto = tmpstr;     
    largo = texto.length;     

    if ( largo < 2 ){         
        alert("Debe ingresar el rut completo")         
        window.document.ingreso.rutContacto.focus();         
        window.document.ingreso.rutContacto.select();         
        return false;     
    }     

    for (i=0; i < largo ; i++ ){             
        if ( texto.charAt(i) !="0" && texto.charAt(i) != "1" && texto.charAt(i) !="2" && texto.charAt(i) != "3" && texto.charAt(i) != "4" && texto.charAt(i) !="5" && texto.charAt(i) != "6" && texto.charAt(i) != "7" && texto.charAt(i) !="8" && texto.charAt(i) != "9" && texto.charAt(i) !="k" && texto.charAt(i) != "K" ){             
            alert("El valor ingresado no corresponde a un R.U.T valido");             
            window.document.ingreso.rutContacto.focus();             
            window.document.ingreso.rutContacto.select();             
            return false;         
        }     
    }     

    var invertido = "";     
    for ( i=(largo-1),j=0; i>=0; i--,j++ )         
        invertido = invertido + texto.charAt(i);     
    var dtexto = "";     
    dtexto = dtexto + invertido.charAt(0);     
    dtexto = dtexto + '-';     
    cnt = 0;     

    for ( i=1,j=2; i<largo; i++,j++ ){         
        //alert("i=[" + i + "] j=[" + j +"]" );         
        if ( cnt == 3 ){             
            dtexto = dtexto + '.';             
            j++;             
            dtexto = dtexto + invertido.charAt(i);             
            cnt = 1;         
        }else{                 
           dtexto = dtexto + invertido.charAt(i);             
           cnt++;         
        }     
    }     

    invertido = "";     
    for ( i=(dtexto.length-1),j=0; i>=0; i--,j++ )         
        invertido = invertido + dtexto.charAt(i);     

    window.document.ingreso.rutContacto.value = invertido.toUpperCase()         

    if(revisarDigito2(texto))         
        return true;     
    return false; 
}  

//Validar campos de ingreso
function validar()
{ 
 
if(document.ingreso.elements[0].value=="")
{alert("No puede dejar este campo vacio"); document.form1.elements[0].focus(); return false;}  

}



//AJAX
function nuevoAjax()
{ 
	/* Crea el objeto AJAX. Esta funcion es generica para cualquier utilidad de este tipo, por
	lo que se puede copiar tal como esta aqui */
	var xmlhttp=false; 
	try 
	{ 
		// Creacion del objeto AJAX para navegadores no IE
		xmlhttp=new ActiveXObject("Msxml2.XMLHTTP"); 
	}
	catch(e)
	{ 
		try
		{ 
			// Creacion del objet AJAX para IE 
			xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
		} 
		catch(E) { xmlhttp=false; }
	}
	if (!xmlhttp && typeof XMLHttpRequest!="undefined") { xmlhttp=new XMLHttpRequest(); } 

	return xmlhttp; 
}

function eliminaEspacios(cadena)
{
	// Funcion equivalente a trim en PHP
	var x=0, y=cadena.length-1;
	while(cadena.charAt(x)==" ") x++;	
	while(cadena.charAt(y)==" ") y--;	
	return cadena.substr(x, y-x+1);
}

function validaIngreso(valor)
{
	/* Funcion encargada de validar lo ingresado por el usuario. Se devuelve TRUE en caso de ser 
	valido, FALSE en caso contrario */
	var reg=/(^[0-9kK]{9,12}$)/;
	if(reg.test(valor)) return true;
	else return false;
}

function nuevoEvento(evento)
{
	// Obtengo el div donde se mostraran las advertencias y errores
	var divMensaje=document.getElementById("error");

	/* Dependiendo de cual sea el evento que ejecuto esta funcion (ingreso o verificacion) se setean
	distintas variables */	
	//if(evento=="rutContacto")
	
		var input=document.getElementById("rutContacto");
		// Boton presionado
		var boton=document.getElementById("botonVerificacion");
		// Valor ingresado por el usuario
		var valor=input.value;
		// Texto a colocar en el input mientras se esta cargando la respuesta del servidor
		var textoAccion="Comprobando...";
	//}
	// Elimino espacios por delante y detras de lo ingresado por el usuario
	//valor=eliminaEspacios(valor);
	// Si el ingreso es invalido coloco un mensaje de error en la capa correspondiente
	//if(!validaIngreso(valor)) 
	//{
		//divMensaje.innerHTML="El texto ingresado contiene caracteres o longitud inv&aacute;lida";
	//}
	//else
	//{
		// Deshabilito inputs y botones para evitar dobles ingresos
		boton.disabled=true; input.disabled=true;
		input.value=textoAccion;
		
		// Creo la conexion con el servidor y le envio la variable evento (que le indica si debe ingresar o verificar) y el dato a utilizar
		var ajax=nuevoAjax();
		ajax.open("POST", "../comprobar_disponibilidad_de_rut_proceso.php", true);
		ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		ajax.send(evento+"="+valor);
		
		ajax.onreadystatechange=function()
		{
			if (ajax.readyState==4)
			{
				// Habilito nuevamente botones e inputs
				input.value="";
				boton.disabled=false; input.disabled=false;
				// Muestro el mensaje enviado desde el servidor
				divMensaje.innerHTML=ajax.responseText;
			}
		}
	//}
}
