<!--
/* CONSIDERACIONES GENERALES
	Las funciones principales son verificarRutGeneral y verificarRutGeneralEnter.
*/

/*var accionInterna: 
Se utiliza en la funcion verificarRutGeneralEnter, para discernir si se realiza la verificacion o no. Si esta variable no está se verificaria dos veces en el caso de pulsar enter en el primer cuadro de texto (por OnChange y por ENTER en si).
*/  
var accionInterna=0;
var submitcount=0;


//--------------------------------------
//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++;
  }
  if ((iaux != strIn.length) || (strIn.length==0)){
   	return 0
	}
  else
    return 1;
}

//--------------------------------------
//function enviarRut
//Objetivo: Envio de formulario
//Parametro(s):(input)String con Rut y entero tipo
//(output) submit
//Uso: desde fnc. verificarRutGeneral
//Requiere:  
//--------------------------------------
function enviarRut(strRut, tipo){
var navegador = navigator.appName;
var version = navigator.appVersion;
var punto = navigator.appVersion;
var total;

version = parseInt(version);
punto = "" + parseInt(punto.substring(punto.indexOf(".")+1,punto.length - 1)) + "00";
punto = punto.substring(0,2);
total = (version * 100) + parseInt(punto);
if ((navegador == "Netscape") && (total < 499)){
		//document.layers['enviar'].innerHTML=''; 
		document.layers['cubrex'].visibility='hidden';
	}
	else {
		//document.getElementById("enviar").innerHTML=''; 
		document.getElementById("cubrex").style.visibility='hidden';
	}

	straux = strRut.substring(0,strRut.length-1);	
    document.autent.d_rut.value = "";
    document.autent.d_pin.value = "";
    document.autent.rut.value="" + straux + digVerifIn;
    document.autent.tipo.value=tipo;
  	var OnlyRut = new Number(straux);
  	if (OnlyRut > 50000000){
		document.passemp.rut.value = document.autent.rut.value;	
		document.passemp.pin.value = document.autent.pin.value;	
		document.passemp.submit();	
		return true;			  	  
  	}

  	document.autent.submit();
  	return true;
}

//--------------------------------------
//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){	
	document.autent.rut.value = document.autent.d_rut.value;
	var digVerif ="";
	var digVerifIn ="";
	var straux ="";
	var rutsgnp = "";
	while((new Number(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
//(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);
	   if (straux == "k") 
		 digVerifIn = straux.toUpperCase()
	   else
		 digVerifIn = straux;
	   straux = strRut.substring(0,strRut.length-1);
	   if (soloNumeros(straux) == 0)
		 digVerif = "KX"
	   else
		 digVerif = digitoVerificador(straux);

	   if(digVerif == digVerifIn){
			accionInterna=1;
			return true;
			}
	   else 
	   {
		   alert("RUT incorrecto.");
		   submitcount=0;
		   document.autent.d_rut.value="";
		   document.autent.d_pin.value="";
		   document.autent.d_rut.focus();
		   document.autent.d_rut.select();
		   accionInterna=0;		   
		   return false;
		}
	} 
	else
	{	alert("Debe ingresar el RUT.");
		submitcount=0;
		document.autent.d_rut.value="";
		document.autent.d_rut.focus();
		document.autent.d_rut.select();		
		return false;
	}
}

//--------------------------------------
//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;
		}
	}
	document.autent.d_rut.value=rutsgnp;
	document.autent.d_rut.blur();
	
	document.autent.d_pin.select();
}

//--------------------------------------
//function verificarRutGeneralEnter
//Objetivo: Verificacion del rut ingresado cuando se teclea ENTER.
//va a verificarRutGeneral solo si el cuadro de clave no es vacio.
//Parametro(s):(input)String con Rut, int tipo, int action
//Uso: desde pagina
//Requiere:  verificarRutGeneral
//--------------------------------------


//--------------------------------------
//--------- Verificacion (Enter) -------
//--------------------------------------
function verificarRutGeneralEnter(strRut, tipo, action) {
if (document.autent.d_pin.value!=""){
			if (conta()==true){		
				verificarRutGeneral(strRut, tipo, action);
			}else{
				alert("Complete todos los datos, por favor.");
			}				
		}else{
			if (document.autent.d_rut.value!=""){
				if (accionInterna==1){
					document.autent.d_pin.select();
					alert("Debe ingresar la clave");
				}else{
					document.autent.d_pin.blur();
					document.autent.d_rut.focus();
					document.autent.d_rut.select();
					alert("Debe ingresar el RUT.");				
				}

			}

		}
	 return false;
}

//--------------------------------------
//function verificarRutGeneral
//Objetivo: Verificacion del rut ingresado. 
// si la accion no es envio solo formatea 
//Parametro(s):(input)String con Rut, int tipo, int action
//Uso: desde pagina
//Requiere:  limpiarRut, verificarRut, soloNumeros, enviarRut, formatearRut
//--------------------------------------

function verificarRutGeneral(strRut, tipo, action){
	if (strRut==""){
		alert("Debe ingresar el RUT.");
		submitcount=0;
		document.autent.d_pin.blur();
		document.autent.d_rut.focus();
		document.autent.d_rut.select();
		}
	else{	
		strRut=limpiarRut(strRut);
		if (verificarRut(strRut)){			
			if (action==1){ //envia
				if (document.autent.d_pin.value!=""){
					if (document.autent.d_pin.value.length==4){						
						document.autent.pin.value = document.autent.d_pin.value;
						if(soloNumeros(document.autent.d_pin.value)==0){
							alert("Clave incorrecta.");
							submitcount=0;
							document.autent.d_pin.value="";
							
							document.autent.d_pin.select();
							return;
						}else{
							if (tipo != 0){
								document.img_log.src="/log/proceso.asp?id=001&descripcion=seleccion_"+tipo+"&sal=banners";
							 }
							enviarRut(strRut, tipo);
						}
					}else{
						alert("La clave debe poseer un largo de cuatro dígitos");
						submitcount=0;
						document.autent.d_pin.value="";
						
						document.autent.d_pin.select();
						return;
					}
				}else{
					alert("Debe ingresar la clave.");
					submitcount=0;
					document.autent.d_rut.blur();
					
					document.autent.d_pin.select();
				}
			}else{ //formatea
				formatearRut(strRut);
				document.autent.d_pin.select();				
			}
		}
	}
}

function verificarRutGeneralxxx(strRut){
	if (strRut==""){
		alert("Debe ingresar el RUT.");
		document.autent.d_rut.focus();
		document.autent.d_rut.select();
		return false;
		}
	else{	
		strRut=limpiarRut(strRut);
		if (verificarRut(strRut)){			
			formatearRut(strRut);
			return true;
		}
		else{
			return false;			
		}
	}
}


//--------------------------------------
//----  envio del formulario con ENTER
//--------------------------------------
function clickHandlerx(evnt) {
   var codigo
   if (navigator.appName == "Netscape"){
     codigo = evnt.which
   } else {
     codigo = window.event.keyCode
   }
   
   if (codigo == 13){
   	  //verificarRutGeneralEnter(document.autent.d_rut.value,0,1);
	  //esRutValido(document.autent.d_rut.value,0);
      return false;
   } else
       return true;
}

//--------------------------------------
//----  cambio de focus
//--------------------------------------
function cambio(){
	
	document.autent.d_pin.select();	
}

//--------------------------------------
//----  cambio de focus
//--------------------------------------
function submit_envio(paramRut,param1,param2){
	if (conta())	
		verificarRutGeneral(paramRut,param1,param2);
	else
		alert( "Complete todos los datos, por favor.");
}

function conta() {
   if (submitcount == 0)
      {	submitcount++;
      	return true;}
   else 
      return false;      
   }

//-------------------------------------
//----- rollover
//-------------------------------------

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

// ---- Abre Pop up

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

//----  NETSCAPE

if (navigator.appName == "Netscape"){
  document.captureEvents(Event.KEYPRESS);
  document.onkeypress = clickHandlerx;
}
function controlShockwaveCOTOI(objStr,x,cmdName,frameNum) { //v2.0
//return;
  var obj=MM_findObj(objStr);
  var InternetExplorer = navigator.appName.indexOf("Microsoft") != -1;
  // obj=document.bann_coo;
  //alert(obj + ":" + objStr + " " + cmdName + " " + frameNum)
  objeto = InternetExplorer ? bann_coo :document.bann_coo;
  // alert(objeto);
	objeto.GotoFrame("268");
	objeto.Play();
  //if (objeto){
  	//alert(objeto.name);
  	//alert('obj.'+cmdName+'('+((cmdName=='GotoFrame')?frameNum:'')+')');
	//alert('obj.Play('+((cmdName=='GotoFrame')?frameNum:'')+')');
  	//eval('objeto.'+cmdName+'('+((cmdName=='GotoFrame')?frameNum:'')+')');
	//eval('objeto.Play('+((cmdName=='GotoFrame')?'':'')+')');
  //} 
  //alert("coto2")
}

//-->