
//--------------------------------------
//function blurTxt
//Objetivo: Saca el focus de los cuadros de texto.
//Parametro(s):
//Uso: Cuando se termina de cargar la pagina.
//Requiere: --- 
//--------------------------------------
function blurTxt(){	
	document.autent.d_pin.blur();
	document.autent.d_rut.blur();
}

//--------------------------------------
//function digitoVerificador
//Objetivo: Retornar el Digito verificador de un RUT.
//Parametro(s):(input)String de ingreso de rut (incluyendo el DV).
//(output) DV obtenido
//Uso: desde fnc. verificarRut
//Requiere:  
//--------------------------------------
function digitoVerificador(strRut) {
    var Largo, LargoN, i, Total;
    var Numero="", Verif, Carac, CaracVal;
    var tmpRut,intTmp;
    
    tmpRut = strRut;
    Largo = tmpRut.length;
    LargoN = 0;
    for(i=0;i<Largo;i++) {
        Carac = parseInt(tmpRut.charAt(i),10);
        if(Carac >=0 && Carac <=9) {
			Numero+=tmpRut.charAt(i);
            LargoN++;
	 	}
    }
	Total=0;
    for(i=LargoN-1;i>=0;i--) {
		if((LargoN - i) < 7) {
		   intTmp=LargoN - i + 1;
		} else {
		   intTmp=LargoN - i - 5;
		}
        Total+= parseInt(Numero.charAt(i),10) * intTmp 
    }
    
    CaracVal = 11 - (Total % 11)

    if(CaracVal==10) return('K');
	if(CaracVal >=0 && CaracVal <=9) return(CaracVal);
	if(CaracVal==11) return(0);
}

//--------------------------------------
//function soloNumeros
//Objetivo: Verifica que existan solo numeros.
//Parametro(s):(input)String 
//(output) 1 sin son solo numeros, 0 en caso contrario
//Uso: desde fnc. verificarRut y verificarRutGeneral
//Requiere:  
//--------------------------------------
function soloNumeros(strIn) {
  var Nros="1234567890";
  var CrtrAux;
  var iaux=0;
  for (var i=0; i < strIn.length; i++){
    CrtrAux = strIn.charAt(i);
    if (Nros.indexOf(CrtrAux) != -1)
      iaux++;
  }
  return (((iaux != strIn.length) || (strIn.length==0)) ? 0: 1);
}


//--------------------------------------
//function limpiarRut
//Objetivo: Solo Limpieza de RUT de ceros a la izquierda, guiones y puntos(deja digitos y k)
//Parametro(s):(input)String con Rut
//(output) String con rut limpio
//Uso: desde fnc. verificarRutGeneral
//Requiere:  
//--------------------------------------
function limpiarRut(strRut){	
	var digVerif ="";
	var digVerifIn ="";
	var straux ="";
	var rutsgnp = "";
	if((strRut.charAt(0)=="0")&&(strRut!=""))
		strRut=strRut.substring(1,strRut.length);		
	for (i=0; i < strRut.length; i++)
		if ((strRut.charAt(i) != ".") && (strRut.charAt(i) != "-") && (strRut.charAt(i)!=" "))
			rutsgnp= rutsgnp + strRut.charAt(i);
	return rutsgnp;
}

//--------------------------------------
//function verificarRut
//Objetivo: Solo Verificacion del string RUT
//Parametro(s):(input)String con Rut limpio, sin puntos ni guiones.
//(output) true si el rut es correcto, false si no
//Uso: desde fnc. verificarRutGeneral
//Requiere:  fnc. solonumeros, digitoVerificador
//--------------------------------------
function verificarRut(strRut) 
{	
	if (strRut != ""){ 
		straux = strRut.substring(strRut.length-1,strRut.length);
		digVerifIn = ((straux == "k") ? straux.toUpperCase() : straux);
		straux = strRut.substring(0,strRut.length-1);
		digVerif = ((soloNumeros(straux) == 0) ? "KX" : digitoVerificador(straux));
		if(digVerif == digVerifIn) return true;
		else return false;
	} else return false;
}
//--------------------------------------
//function verificarRut
//Objetivo: Solo Verificacion del string RUT
//Parametro(s):(input)String con Rut limpio, sin puntos ni guiones.
//(output) true si el rut es correcto, false si no
//Uso: desde fnc. verificarRutGeneral
//Requiere:  fnc. solonumeros, digitoVerificador
//--------------------------------------
function verificarPin(strPin) {
	if ((strPin=="")||((strPin.length!=4) && (strPin.length!=6))||(soloNumeros(strPin)==0)) return false
	else return true;
}

//--------------------------------------
//function formatearRut
//Objetivo: Formateo del RUT
//Parametro(s):(input)String con Rut
//(output) imprime rut formateado en cuadro de texto
//Uso: desde fnc. verificarRutGeneral
//Requiere:  
//--------------------------------------
function formatearRut(strRut){ 
	straux = strRut.substring(strRut.length-1,strRut.length);
	rutsgnp= strRut.substring(0,strRut.length-1);

	strAuxArray = new Array(0,0,0);
	strAuxArray[0]=rutsgnp.substring(rutsgnp.length-3,rutsgnp.length);
	strAuxArray[1]=rutsgnp.substring(rutsgnp.length-6,rutsgnp.length-3);
	strAuxArray[2]=rutsgnp.substring(0,rutsgnp.length-6);
	i=0;
	rutsgnp="-"+straux;
	for (i=0; i < 3; i++)
		if (strAuxArray[i]==""){
			i=3;
		} else{
			if (i>0)
				rutsgnp="."+rutsgnp;
			rutsgnp=strAuxArray[i]+rutsgnp;
		}
	return (rutsgnp);
}


//--------------------------------------
//----  cambio de focus
//--------------------------------------
function cambio(){
	document.autent.d_pin.focus();
	document.autent.d_pin.select();	
}

//--------------------------------------
//----  Verifica si los campos fueron ingresados, y si fueron ingresados correctamente.
//--------------------------------------
function submit_envio(strRut,strPin,tipo){
	
	var rut = (strRut!="");
	var pin = (strPin!="");	
	if (rut&&pin){	
		strRut = limpiarRut(strRut);
		var v_rut = verificarRut(strRut);
		var v_pin = verificarPin(strPin);
		if (v_rut&&v_pin){		
		 	al_cargar();
			document.autent.pin.value = strPin;
			return ( enviarRut(strRut, tipo));
			
		} else if (!v_rut){
			alert( "El RUT ingresado es incorrecto.");
			document.autent.botonenvio.disabled=false;
			document.autent.d_rut.value="";
			document.autent.d_rut.focus();
			document.autent.d_rut.select();
			return false;
		} else if (!v_pin){
			alert( "La Clave ingresada es incorrecta.");
			document.autent.botonenvio.disabled=false;
			document.autent.d_pin.value="";
			document.autent.d_pin.focus();
			document.autent.d_pin.select();
			return false;
		}
	}else {
		if (!rut&&!pin){
			alert( "Por favor, completa todos los datos.");
			document.autent.botonenvio.disabled=false;
			document.autent.d_rut.focus();
			document.autent.d_rut.select();
		} else if (!rut){
			alert( "Por favor, ingresa tu RUT.");
			document.autent.botonenvio.disabled=false;
			document.autent.d_rut.focus();
			document.autent.d_rut.select();
		} else if (!pin){
			alert( "Por favor, ingresa tu clave.");
			document.autent.botonenvio.disabled=false;
		}
		return false;
	}
}

function al_cargar(){
	blurTxt();
	fncResolucion();
}
populate = false;
var oload = window.onload;
window.onload = function()
{
	if(oload != undefined)
		oload();
	//createBanner(swf);
	var isLinux = (navigator.platform.indexOf("Linux") < 0)?false:true;
	if(populate && populate != undefined && !isLinux)
		populate();
	if(isLinux){
		var n = getElement("news");
		if(n)
			n.parentNode.removeChild(n);
	}
	// selecciona campo rut
	getElement("d_rut").focus();
}
//-->