﻿function reemplaza_caracter(texto,caracter,newcaracter){
    var aux=0;
    do {texto=texto.replace(caracter,newcaracter);}
    while (texto.indexOf(caracter) != -1);
return texto; }	

/*
----------------------------------------------------------------------------------
FUNCTION FormateaRut que formatea entrada de rut */
function elimina_caracter(texto,caracter){
    var aux=0;
    do {texto=texto.replace(caracter,"");}
    while (texto.indexOf(caracter) != -1);
return texto; }	 
/*----------------------------------------------------------------------------------*/


/*
----------------------------------------------------------------------------------
FUNCTION Valida_rut que valida rut */
function Valida_rut(source, arguments){
    var rut=elimina_caracter(arguments.Value,".");suma=0;mul=2;i=0;
    if(rut.length>2){
        for (i=rut.length-3;i>=0;i--){
	        suma=suma+parseInt(rut.charAt(i)) * mul;
	        mul= mul==7 ? 2 : mul+1;}
	    var dvr = ''+(11 - suma % 11);
	    if (dvr=='10') dvr = 'K'; else if (dvr=='11') dvr = '0';
	    if (rut.charAt(rut.length-2)!="-"||rut.charAt(rut.length-1).toUpperCase()!=dvr) 		     
	        arguments.IsValid = false;
	    else
	        arguments.IsValid = true;}
	 else
	   arguments.IsValid = false;
}
/*
----------------------------------------------------------------------------------*/
            
/*
----------------------------------------------------------------------------------
FUNCTION FormateaRut que formatea entrada de rut
*/

function FormateaRut(fld, milSep, decSep, e) { 
    var sep = 0; 
    var i = j = 0; 
    var len = len2 = 0; 
    var strCheck = '0123456789-Kk'; 
    var aux = aux2 = ''; 
    var hasta=0;
    var textaux='';
    var textaux1='';
    var jj=0;
    hasta=0;
    textaux = fld.value;
    var whichCode = (window.Event) ? e.which : e.keyCode; 
    var key = String.fromCharCode(whichCode); // Recupera codigo de la tecla pulsada
    if (whichCode == 13) return true; // Presiono [ ENTER ]
    if (strCheck.indexOf(key) == -1){
    if (whichCode != 0) return false; // codigo de tecla no valida (no encontrada en la cadena)
        else
       key=fld.value.substr(fld.value.length-1,1);
    }
    if (textaux.length>11) return true;
        textaux = textaux + key;
        len = textaux.length ;
        textaux = elimina_caracter(textaux,'.');
        hasta = textaux.indexOf('-');    
        if (hasta != -1){
            for (jj=hasta;jj<textaux.length;jj++){
                  textaux1 = textaux1 + textaux.charAt(jj);
             }   
            if(textaux1.lenght>1)textaux1 = textaux1.substr(0,1);
            len = hasta;
        }
          
        for(i = 0; i < len; i++) 
              if ((textaux.charAt(i) != '0') && (textaux.charAt(i) != decSep)) break; 
              aux = ''; 
              for(; i < len; i++) 
              if (strCheck.indexOf(textaux.charAt(i))!=-1) aux += textaux.charAt(i); 
              var sRes = '';
              if(aux.length>3){  
	          for (var j, i = aux.length-1, j = 0; i >= 0; i--, j++) 
	              sRes = aux.charAt(i) + ((j > 0) && (j % 3 == 0)? ".": "") + sRes; 
	             
	  	  if (textaux.indexOf('-') !=-1)
	  	    {
	  	     fld.value = sRes.substr(0,sRes.length);
	 	     if (textaux1.length>1){
	 	         if (whichCode == 0) 
	 	            fld.value = sRes.substr(0,sRes.length) + '-' + key;
	 	           else
	 	            {
	 	            fld.value = sRes.substr(0,sRes.length) + '-' + key;
	 	            fld.value=fld.value.substr(0,fld.value.length-1);
	 	            }
	 	        }
	 	     }
		    else
		    if (whichCode == 0) fld.value = sRes.substr(0,sRes.length)+ textaux1;
		    else
	         fld.value = sRes.substr(0,sRes.length-1) + textaux1;
			}
} 
/*----------------------------------------------------------------------------------*/

/*
----------------------------------------------------------------------------------
PLUG-IN PARA FIRMAR LIBRO DTE, se podria ampliar para otros tipo de documentos
completa los cuadros con los datos de la llave publica-privada de la firma electronica
*/

function firmar_libro(){
		Firma.xml_firmado.value = SIIOISignedXML.signedXMLid(
				Firma.xml_firmado.value,
				Firma.NAMENODO.value,
				Firma.NAMEID.value,
				Firma.NAMESPACE.value);
		}		
/*----------------------------------------------------------------------------------*/

		
 function AbreNomina()
        {
            window.open('frmNominaAdjunta.aspx','','scrollbars=yes,location=no,menubar=no,width=450,height=600');
        }

function AbreLey18287()
        {
            window.open('frmLey18287.aspx','','scrollbars=no,location=no,menubar=no,width=800,height=280');
        }        
function AbreRMNP()
        {
            window.open('frmRMNP.aspx','','scrollbars=no,location=no,menubar=no,width=400,height=300');
        }                
function AbreGravisimas()
        {
            window.open('frmGravisimas.aspx','','scrollbars=no,location=no,menubar=no,width=500,height=50');
        }                