  //Funcion trim: Obj.value.trim()  
  String.prototype.trim = function() {
  return this.replace(/^\s+|\s+$/g,"");
  }
  
  //Funcion ltrim: Obj.value.ltrim()
  String.prototype.ltrim = function() {
  return this.replace(/^\s+/g,"");
  }
  
  //Funcion rtrim: Obj.value.rtrim()
  String.prototype.rtrim = function() {
  return this.replace(/\s+$/g,"");
  }
    
  // funcion para bloquear el <enter>
  function stopRKey(evt) {
    var evt = (evt) ? evt : ((event) ? event : null);
    var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
    if ((evt.keyCode == 13) &&(node.type=="text")) {return false;}  
  }
  document.onkeypress = stopRKey;

 // funcion replicate 
 function replicate(str,nveces) {
   var r='';
   while(nveces) {
     if(nveces&1) {r+=str;}
       str+=str;
       nveces>>=1;
     }
 return r;
 } 
 
 // funcion para redondear cantidades   
 function roundNumber(cantidad, decimales) {
    var cantidad = parseFloat(cantidad);
    var decimales = parseFloat(decimales);
    decimales = (!decimales ? 2 : decimales);
    return Math.round(cantidad * Math.pow(10, decimales)) / Math.pow(10, decimales);
 } 

 // funcion para formatear cantidades
 // ojo: sin redondeo
 function picture(cantidad,dec) {  
	var miles = 3 ; 	 
    var num = cantidad, signo=3, expr;
    var cad = ""+cantidad;
    var ceros = "", pos, pdec, i;
    for (i=0; i < dec; i++)
    ceros += '0';
    pos = cad.indexOf('.')
    if (pos < 0)
       cad = cad+"."+ceros;
    else {
       pdec = cad.length - pos -1;
       if (pdec <= dec) {
          for (i=0; i< (dec-pdec); i++)
              cad += '0';
       }
       else {
           num = num*Math.pow(10, dec);
           num = Math.round(num);
           num = num/Math.pow(10, dec);
           cad = new String(num);
       }
    }
    pos = cad.indexOf('.')
    if (pos < 0) pos = cad.lentgh
    if (cad.substr(0,1)=='-' || cad.substr(0,1) == '+') 
       signo = 4;
    if (miles && pos > signo)
       do{
          expr = /([+-]?\d)(\d{3}[\.\,]\d*)/
          cad.match(expr)
          cad=cad.replace(expr, RegExp.$1+','+RegExp.$2)
       }
    while (cad.indexOf(',') > signo)
       if (dec<0) cad = cad.replace(/\./,'')
          return cad;      
 }	 
	 
//****** checar si son numeros y formatear cantidad *********************
function ValidaNum(objNum,dec)   {
    var strValidChars = "0123456789.,-";
    var strChar;
    var blnResult = true;
    var miles = 3 ;
    if (objNum.value.trim()=="") { 
	   objNum.value="0" ;
    }
    for (i = 0; i < objNum.value.length; i++)  {
       strChar = objNum.value.charAt(i);
       if (strValidChars.indexOf(strChar) == -1) { blnResult = false }
       }
    if (blnResult) { }
    else { alert("Introduzca solo numeros...")
    objNum.value = "0"
    }

    var num = objNum.value, signo=3, expr;
    var cad = ""+objNum.value;
    var ceros = "", pos, pdec, i;
    for (i=0; i < dec; i++)
    ceros += '0';
    pos = cad.indexOf('.')
    if (pos < 0)
       cad = cad+"."+ceros;
    else {
       pdec = cad.length - pos -1;
       if (pdec <= dec) {
          for (i=0; i< (dec-pdec); i++)
              cad += '0';
       }
       else {
           num = num*Math.pow(10, dec);
           num = Math.round(num);
           num = num/Math.pow(10, dec);
           cad = new String(num);
       }
    }
    pos = cad.indexOf('.')
    if (pos < 0) pos = cad.lentgh
    if (cad.substr(0,1)=='-' || cad.substr(0,1) == '+') 
       signo = 4;
    if (miles && pos > signo)
       do{
          expr = /([+-]?\d)(\d{3}[\.\,]\d*)/
          cad.match(expr)
          cad=cad.replace(expr, RegExp.$1+','+RegExp.$2)
       }
    while (cad.indexOf(',') > signo)
       if (dec <= 0) {cad = cad.replace(/\./,'')}
       
    objNum.value = cad;       
}
//************************************************************


 function PintaCeros(Obj, nPos) {
	 //se valida que solo sean numeros
     if (Obj.value.trim() != "") { 	 
        var strValidChars = "0123456789.,-";
        var strChar;
        var blnResult = true;
        var miles = 3 ;
        for (i = 0; i < Obj.value.length; i++)  {
            strChar = Obj.value.charAt(i);
            if (strValidChars.indexOf(strChar) == -1) { blnResult = false }
        }
        if (blnResult) { }
           else { alert("Introduzca solo numeros...")
           Obj.value = ""
        }   
     }
	 //se colocan los ceros iniciales
     if (Obj.value.trim() != "") {   
      var cStr  = Obj.value.trim();
      var cLen  = nPos - (cStr.length);
      if (cStr.length < nPos) {
          var nvCl  = replicate("0",cLen); 
          nvCl += cStr;
          Obj.value = nvCl;
      }    
    } 
  }
//***********************************************************************
  
 //Funciones para checar las fechas
 //En el campo hidden se pondra la fecha
 //en formato 20091031
 function valFecha(oInpt,oHidd, nMin, nMax){ 
   var bOk  = true;
   if (oInpt.value != ""){
      var cDia = parseInt(oInpt.value.substr(0, 2), 10);
      var cMes = parseInt(oInpt.value.substr(3, 2), 10);
      var cAno = oInpt.value.substr(6);
      bOk = bOk && (valAno(oInpt,nMin, nMax));
      bOk = bOk && (valMes(oInpt));
      bOk = bOk && (valDia(oInpt));
      bOk = bOk && (valSep(oInpt));
      bOk = bOk && (valbis(oInpt));
      if (!bOk){
         alert("Fecha inválida");
         oInpt.value = "";
         oInpt.focus();
       }
       else {  
          nDia = String(cDia).trim()
          nMes = String(cMes).trim()
          if (nDia.length == 1) {nDia = "0" + nDia}  
          if (nMes.length == 1) {nMes = "0" + nMes}
          f______1 = nDia + "/" + nMes + "/" + cAno
          f______2 = cAno + nMes + nDia
          oInpt.value = f______1
          oHidd.value = f______2 
       }   
    }    
 }  
 
 function esDigito(sChr){
   var sCod = sChr.charCodeAt(0);
   return ((sCod > 47) && (sCod < 58));
 }
 function valSep(oInpt){
   var bOk = false;
   bOk = bOk || ((oInpt.value.charAt(2) == "-") && (oInpt.value.charAt(5) == "-"));
   bOk = bOk || ((oInpt.value.charAt(2) == "/") && (oInpt.value.charAt(5) == "/"));
   bOk = bOk || ((oInpt.value.charAt(2) == ".") && (oInpt.value.charAt(5) == "."));
   bOk = bOk || ((oInpt.value.charAt(2) == ",") && (oInpt.value.charAt(5) == ","));
   bOk = bOk || ((oInpt.value.charAt(2) == " ") && (oInpt.value.charAt(5) == " "));
   return bOk;
 }
 function finMes(oInpt){
   var nMes = parseInt(oInpt.value.substr(3, 2), 10);
   var nRes = 0;
   switch (nMes){
   case  1: nRes = 31; break;
   case  2: nRes = 29; break;
   case  3: nRes = 31; break;
   case  4: nRes = 30; break;
   case  5: nRes = 31; break;
   case  6: nRes = 30; break;
   case  7: nRes = 31; break;
   case  8: nRes = 31; break;
   case  9: nRes = 30; break;
   case 10: nRes = 31; break;
   case 11: nRes = 30; break;
   case 12: nRes = 31; break;
   }
 return nRes;
 }
 function valDia(oInpt){
   var bOk  = false;
   var nDia = parseInt(oInpt.value.substr(0, 2), 10);
   bOk = bOk || ((nDia >= 1) && (nDia <= finMes(oInpt)));
   return bOk;
 }
 function valMes(oInpt){
   var bOk = false;
   var nMes = parseInt(oInpt.value.substr(3, 2), 10);
   bOk = bOk || ((nMes >= 1) && (nMes <= 12));
   return bOk;
 }
 function valAno(oInpt, nMin, nMax){
   var bOk = true;
   var nAno = oInpt.value.substr(6);
   bOk = bOk && (nAno.length == 4);
   if (bOk){
      for (var i = 0; i < nAno.length; i++){
      bOk = bOk && esDigito(nAno.charAt(i));
      }
   }
   if ((nAno < nMin)||(nAno > nMax)) {
      alert("El año debe ser mayor a 2000 y menor a 2036");
      bOk = false
   }     
 return bOk;
 }
 function valbis(oInpt) {
   var bOk  = true;
   var cDia = parseInt(oInpt.value.substr(0, 2), 10);
   var cMes = parseInt(oInpt.value.substr(3, 2), 10);
   var cAno = oInpt.value.substr(6);
   if ((cDia > 28) && (cMes == 02) && ((cAno%4) != 0 )) { 
      bOk = false
   }
 return bOk;
 }
//***********************************************************************


 //Funcion para extraer valor de radio botones
 //Asignando valor seleccionado a un input hidden (hiddenObj)
 function ChecaRadio(radioObj,hiddenObj) {
    var i 
    for (i=0;i<radioObj.length;i++){ 
       if (radioObj[i].checked) 
          break; 
    } 
    hiddenObj.value = radioObj[i].value
 }
//***********************************************************************

// Funcion para quitar las comas de mos MILES para evitar error
// en operaciones aritmeticas al convertir de STRING a NUMERO 
// con parseInt()
 function QuitaComa(cCant) { 
	var  i = 0             
    for (i = 0; i < cCant.trim().length; i++) {
        cCant = cCant.replace(/\,/,'')
    }      
 return cCant;
 }
 
 
/* 
  FUNCIONES PARA CANTIDAD CON LETRA                 
  solo asignar a una variable la funcion:
  covertirNumLetras(number)   
*/
     
function mod(dividendo , divisor) { 
         resDiv = dividendo / divisor ;  
         parteEnt = Math.floor(resDiv);
         parteFrac = resDiv - parteEnt ;
         modulo = Math.round(parteFrac * divisor);
         return modulo; 
} 
function ObtenerParteEntDiv(dividendo , divisor) { 
         resDiv = dividendo / divisor ;  
         parteEntDiv = Math.floor(resDiv); 
         return parteEntDiv; 
}
function fraction_part(dividendo , divisor) { 
         resDiv = dividendo / divisor ;  
         f_part = Math.floor(resDiv); 
         return f_part; 
} 
function string_literal_conversion(number) {   
         centenas = ObtenerParteEntDiv(number, 100);    
         number = mod(number, 100); 
         decenas = ObtenerParteEntDiv(number, 10); 
         number = mod(number, 10); 
         unidades = ObtenerParteEntDiv(number, 1); 
         number = mod(number, 1);  
         string_hundreds="";
         string_tens="";
         string_units="";
         if (centenas == 1){ string_hundreds = "ciento ";}       
         if (centenas == 2){ string_hundreds = "doscientos ";}    
         if (centenas == 3){ string_hundreds = "trescientos ";}    
         if (centenas == 4){ string_hundreds = "cuatrocientos ";} 
         if (centenas == 5){ string_hundreds = "quinientos ";} 
         if (centenas == 6){ string_hundreds = "seiscientos ";} 
         if (centenas == 7){ string_hundreds = "setecientos ";} 
         if (centenas == 8){ string_hundreds = "ochocientos ";}    
         if (centenas == 9){ string_hundreds = "novecientos ";}    
         if (decenas  == 1){
            if (unidades == 1){ string_tens = "once";}
            if (unidades == 2){ string_tens = "doce";}
            if (unidades == 3){ string_tens = "trece";}      
            if (unidades == 4){ string_tens = "catorce";}      
            if (unidades == 5){ string_tens = "quince";}      
            if (unidades == 6){ string_tens = "dieciseis";}      
            if (unidades == 7){ string_tens = "diecisiete";}      
            if (unidades == 8){ string_tens = "dieciocho";}     
            if (unidades == 9){ string_tens = "diecinueve";}
        }    
        if (decenas == 2){ string_tens = "veinti";}
        if (decenas == 3){ string_tens = "treinta";}
        if (decenas == 4){ string_tens = "cuarenta";}
        if (decenas == 5){ string_tens = "cincuenta";}
        if (decenas == 6){ string_tens = "sesenta";}
        if (decenas == 7){ string_tens = "setenta";}
        if (decenas == 8){ string_tens = "ochenta";}
        if (decenas == 9){ string_tens = "noventa";}   
        if (decenas == 1){ string_units="";} 
        else { 
             if (unidades == 1){ string_units = "un";}
             if (unidades == 2){ string_units = "dos";}
             if (unidades == 3){ string_units = "tres";}
             if (unidades == 4){ string_units = "cuatro";}
             if (unidades == 5){ string_units = "cinco";}
             if (unidades == 6){ string_units = "seis";}
             if (unidades == 7){ string_units = "siete";}
             if (unidades == 8){ string_units = "ocho";}
             if (unidades == 9){ string_units = "nueve";}
        } 
        if (centenas == 1 && decenas == 0 && unidades == 0) { string_hundreds = "cien " ;}  
        if (decenas == 1 && unidades ==0) { string_tens = "diez ";} 
        if (decenas == 2 && unidades ==0) { string_tens = "veinte ";} 
        if (decenas >=3 && unidades >=1)  { string_tens = string_tens+" y ";} 
        final_string = string_hundreds+string_tens+string_units;
        return final_string ; 
}

function covertirNumLetras(number){   
         cFinal = ""; 
         number1 = number          ;
         num1 = String(number1)    ;
         cent = num1.split('.')    ;   
         centavos = cent[1]        ;
         number = parseInt(number) ;   
         if (centavos == 0 || centavos == undefined){
            centavos = "00";
         }   
         if (number == 0 || number == "") { 
            centenas_final_string=" cero ";
         } 
         else {    
              millions  = ObtenerParteEntDiv(number, 1000000); 
              number = mod(number, 1000000);      
              if (millions != 0) {      
                 if (millions == 1) {    
                    descriptor= " millon ";
                 } 
                 else {
                      descriptor = " millones "; 
                 } 
              } 
              else {    
                   descriptor = " ";
              } 
              millions_final_string = string_literal_conversion(millions)+descriptor; 
              thousands = ObtenerParteEntDiv(number, 1000);
              number = mod(number, 1000);
              if (thousands != 1) { 
                 thousands_final_string =string_literal_conversion(thousands) + " mil ";         
              } 
              if (thousands == 1) {
                 thousands_final_string = " mil "; 
              }
              if (thousands < 1) { 
                 thousands_final_string = " "; 
              }   
              centenas  = number;                     
              centenas_final_string = string_literal_conversion(centenas) ; 
         } 
         cad = millions_final_string+thousands_final_string+centenas_final_string;          
         cad = cad.toUpperCase(); /* Convierte la cadena a Mayúsculas*/
         if (centavos.length>2) {   
            if (centavos.substring(2,3)>= 5){
               centavos = centavos.substring(0,1)+(parseInt(centavos.substring(1,2))+1).toString();
            }
            else {
                centavos = centavos.substring(0,2);
            }
         }
         if (centavos.length==1) {
             centavos = centavos+"0";
         }
         centavos = centavos+ "/100"; 
         if (number == 1) {
            moneda = " PESO ";  
         }
         else {
             moneda = " PESOS ";  
         }
         cFinal = cad+moneda+centavos+" M.N."
         return cFinal 
};  /* TERMINAN FUNCIONES CANTIDAD CON LETRA */
 

function Convierte(campo) {
   Cadena     = campo.value	
   especiales = new Array('á','â','ã','ä','å','è','é','ê','ë','ì','í','î','ï','ò','ó','ô','õ','ù','ú','û','ü','ñ','Ñ','À','Â','Ã','Ä','È','É','Ê','Ë','Ì','Í','Î','Ï','Ò','Ó','Ô','Õ','Ö','Ù','Ú','Û','Ü','¿','?','#' ,'$','%','&','<','>','=','º','~','¡','!','|','*','/'); 
   normales   = new Array('a','a','a','a','a','e','e','e','e','i','i','i','i','o','o','o','o','u','u','u','u','n','N','A','A','A','A','E','E','E','E','I','I','I','I','O','O','O','O','O','U','U','U','U','_','_','N.','_','_','_','_','_','_','_','_','_','_','_','_','_');
   i=0;
   while (i<especiales.length) {
    //Cadena = Cadena.replace(especiales[i], normales[i]);
    Cadena   = Cadena.split(especiales[i]).join(normales[i]);
    i++
   }
   Cadena = Cadena.replace(/'/g, "_");
   Cadena = Cadena.replace(/"/g, '_');     
   campo.value = Cadena
} 

     // FUNCIONES PARA CANTIDAD CON LETRA
     function mod(dividendo , divisor) 
             { 
             resDiv = dividendo / divisor ;  
             parteEnt = Math.floor(resDiv);
             parteFrac = resDiv - parteEnt ;
             modulo = Math.round(parteFrac * divisor);
             return modulo; 
             } 

     function ObtenerParteEntDiv(dividendo , divisor) 
              { 
              resDiv = dividendo / divisor ;  
              parteEntDiv = Math.floor(resDiv); 
              return parteEntDiv; 
              }

     function fraction_part(dividendo , divisor) 
              { 
              resDiv = dividendo / divisor ;  
              f_part = Math.floor(resDiv); 
              return f_part; 
              } 

     function string_literal_conversion(number) 
              {   
              centenas = ObtenerParteEntDiv(number, 100);    
              number = mod(number, 100); 
              decenas = ObtenerParteEntDiv(number, 10); 
              number = mod(number, 10); 
              unidades = ObtenerParteEntDiv(number, 1); 
              number = mod(number, 1);  
              string_hundreds="";
              string_tens="";
              string_units="";
              if(centenas == 1){
                 string_hundreds = "ciento ";
              } 
      
              if(centenas == 2){
                 string_hundreds = "doscientos ";
              }
    
              if(centenas == 3){
                  string_hundreds = "trescientos ";
              } 
   
              if(centenas == 4){
                 string_hundreds = "cuatrocientos ";
              } 
   
              if(centenas == 5){
                 string_hundreds = "quinientos ";
              } 
   
              if(centenas == 6){
                 string_hundreds = "seiscientos ";
              } 
   
              if(centenas == 7){
                 string_hundreds = "setecientos ";
              } 
   
              if(centenas == 8){
                 string_hundreds = "ochocientos ";
              } 
   
              if(centenas == 9){
                 string_hundreds = "novecientos ";
              } 
   
              if(decenas == 1){
                 if(unidades == 1){
                   string_tens = "once";
                 }
      
                 if(unidades == 2){
                    string_tens = "doce";
                 }
      
                 if(unidades == 3){
                   string_tens = "trece";
                 }
      
                 if(unidades == 4){
                    string_tens = "catorce";
                 }
      
                 if(unidades == 5){
                   string_tens = "quince";
                 }
      
                 if(unidades == 6){
                    string_tens = "dieciseis";
                 }
      
                 if(unidades == 7){
                    string_tens = "diecisiete";
                 }
      
                 if(unidades == 8){
                    string_tens = "dieciocho";
                 }
      
                 if(unidades == 9){
                    string_tens = "diecinueve";
                 }
              } 
   
              if(decenas == 2){
                 string_tens = "veinti";
              }
              if(decenas == 3){
                 string_tens = "treinta";
              }
              if(decenas == 4){
                 string_tens = "cuarenta";
              }
              if(decenas == 5){
                 string_tens = "cincuenta";
              }
              if(decenas == 6){
                 string_tens = "sesenta";
              }
              if(decenas == 7){
                 string_tens = "setenta";
              }
              if(decenas == 8){
                 string_tens = "ochenta";
              }
              if(decenas == 9){
                 string_tens = "noventa";
              }
   
              if (decenas == 1){ 
                 string_units=""; 
              } 
              else 
              { 
                 if(unidades == 1){
                    string_units = "un";
                 }
                 if(unidades == 2){
                    string_units = "dos";
                 }
                 if(unidades == 3){
                    string_units = "tres";
                 }
                 if(unidades == 4){
                    string_units = "cuatro";
                 }
                 if(unidades == 5){
                    string_units = "cinco";
                 }
                 if(unidades == 6){
                     string_units = "seis";
                 }
                 if(unidades == 7){
                    string_units = "siete";
                 }
                 if(unidades == 8){
                    string_units = "ocho";
                 }
                 if(unidades == 9){
                    string_units = "nueve";
                 }
              } 
              if (centenas == 1 && decenas == 0 && unidades == 0) { 
                 string_hundreds = "cien " ; 
              }  

              if (decenas == 1 && unidades ==0) { 
                 string_tens = "diez " ; 
              } 

              if (decenas == 2 && unidades ==0) { 
                 string_tens = "veinte " ; 
              } 

              if (decenas >=3 && unidades >=1) {
                 string_tens = string_tens+" y "; 
              } 
              final_string = string_hundreds+string_tens+string_units;

              return final_string ; 
              }

     function covertirNumLetras(number)
              {   
              cFinal = ""               ; 

              number1 = number          ;
              num1 = String(number1)    ;
              cent = num1.split('.')    ;   
              centavos = cent[1]        ;
              number = parseInt(number) ;
   
              if (centavos == 0 || centavos == undefined){
                 centavos = "00";}
   
              if (number == 0 || number == "") { 
                 centenas_final_string=" cero ";
              } 
              else 
              {    
              millions  = ObtenerParteEntDiv(number, 1000000); 
              number = mod(number, 1000000);
      
              if (millions != 0) {                      
      
                 if (millions == 1) {    
                   descriptor= " millon ";
                 } 
                 else 
                 { 
                 descriptor = " millones "; 
                 } 
              } 
              else 
              {    
              descriptor = " ";
              } 
              millions_final_string = string_literal_conversion(millions)+descriptor; 
              thousands = ObtenerParteEntDiv(number, 1000);
              number = mod(number, 1000);
              if (thousands != 1) 
              { 
              thousands_final_string =string_literal_conversion(thousands) + " mil ";         
              } 
              if (thousands == 1)
              {
              thousands_final_string = " mil "; 
              }
              if (thousands < 1) { 
                 thousands_final_string = " "; 
              }   
              centenas  = number;                     
              centenas_final_string = string_literal_conversion(centenas) ; 
              } 
              cad = millions_final_string+thousands_final_string+centenas_final_string; 

              /* Convierte la cadena a Mayúsculas*/
              cad = cad.toUpperCase();       

             if (centavos.length>2) {   
                if(centavos.substring(2,3)>= 5){
                  centavos = centavos.substring(0,1)+(parseInt(centavos.substring(1,2))+1).toString();
             }
             else
                {
                centavos = centavos.substring(0,2);
                }
             }
             if (centavos.length==1) {
                centavos = centavos+"0";
             }
             centavos = centavos+ "/100"; 

             if (number == 1) {
                moneda = " PESO ";  
             }
             else
                 {
                 moneda = " PESOS ";  
             }
             cFinal = cad+moneda+centavos+" M.N."
             return cFinal 
             }
