//----------------------------------------------------------------------
//                         Copyright © 1999 CALCULO
//----------------------------------------------------------------------
//
//    Programa : mascara.js
// Descripción : Permite definir una mínima validación de formato en
//               los campos de entrada
// Programador : ARMS
//       Fecha : 09-05-1999
//     Versión : 1.01 - Se incopora la opción F para fechas
//    Historia : 1.00 - 
//
//----------------------------------------------------------------------

//----------------------------------------------------------------------
//
//     Función : Mascara
// Descripción : Realiza la validación/transformación de un campo de
//               entrada
//  Parámetros : *  Cadena que indica el tipo de validación o 
//                  transformación que desamos según los siguientes
//                  indicadores:
//                   N Admite sólo expresiones Numéricas
//                   D Admite sólo Dígitos (no admite puntos, espacios
//                     o símbolos matemáticos)
//                   A Admite sólo caracteres Alfanuméricos (sin
//                     espacios o símbolos de puntuación)
//                   L Admite sólo Letras (sin espacios o símbolos 
//                     de puntuación)
//                   M Convierte la entrada a Mayúsculas
//                   m Convierte la entrada a minúsculas
//                   S Convierte la entrada a su correspondiente sin 
//                     símbolos diacríticos, excepto en el caso de 
//                     la eñe (ñÑ)
//                   F Sólo admite digitos y los caracteres "/" y "-"
//                     se utiliza para fechas
//     Ejemplo : <input type="text" onkeypress="Mascara('MS')">
//       Notas : * En el caso de pasar N y D o A y L sólo tendrá 
//                 efecto al último de los valores pasados en el
//                 parámetro
//               * Los valores A, L, M, m, S pueden combinarse
//               * Los valores A, L, M, m, S son incompatibles 
//                 con N, D y F
//
//----------------------------------------------------------------------
function Mascara( cTipo )
{
  for ( nCont = 0; nCont < cTipo.length; nCont++ ) {
    switch ( cTipo.charAt( nCont ) ) {
    case "N":
      if ( isNaN( parseInt( String.fromCharCode( event.keyCode ) ) ) 
           && String.fromCharCode( event.keyCode ) != "-"
           && String.fromCharCode( event.keyCode ) != "+"
           && String.fromCharCode( event.keyCode ) != "."
           && String.fromCharCode( event.keyCode ) != "," ) {
        event.returnValue = false;
      }
      break;
    case "D":
      if ( isNaN( parseInt( String.fromCharCode( event.keyCode ) ) ) ) {
        event.returnValue = false;
      }
      break;
    case "L":
      if ( String.fromCharCode( event.keyCode ).toUpperCase() == String.fromCharCode( event.keyCode ).toLowerCase() ) {
        event.returnValue = false;
      }
      break;
    case "A":
      if ( String.fromCharCode( event.keyCode ).toUpperCase() == String.fromCharCode( event.keyCode ).toLowerCase() 
           && isNaN( parseInt( String.fromCharCode( event.keyCode ) ) ) ) {
        event.returnValue = false;
	return false;
      }
      break;
    case "M":
    
		
      event.keyCode = String.fromCharCode( event.keyCode ).toUpperCase().charCodeAt(0);
     
      
     
      break;
    case "m":
      event.keyCode = String.fromCharCode( event.keyCode ).toLowerCase().charCodeAt(0);
      break;
    case "S":
      switch ( String.fromCharCode( event.keyCode ) ) {
      case "À": case "Á": case "Â": case "Ã": case "Ä": case "Å":
        event.keyCode = "A".charCodeAt(0); 
        break;
      case "Æ":
        event.keyCode = "A".charCodeAt(0); 
        break;
      case "Ç":
        event.keyCode = "C".charCodeAt(0); 
        break;
      case "È": case "É": case "Ê": case "Ë":
        event.keyCode = "E".charCodeAt(0); 
        break;
      case "Ì": case "Í": case "Î": case "Ï":
        event.keyCode = "I".charCodeAt(0); 
        break;
      case "Ð":
        event.keyCode = "D".charCodeAt(0); 
        break;
      case "Ò": case "Ó": case "Ô": case "Õ": case "Ö": case "Ø":
        event.keyCode = "O".charCodeAt(0); 
        break;
      case "Ù": case "Ú": case "Û": case "Ü":
        event.keyCode = "U".charCodeAt(0); 
        break;
      case "Ý":
        event.keyCode = "Y".charCodeAt(0); 
        break;
      case "à": case "á": case "â": case "ã": case "ä": case "å": case "æ":
        event.keyCode = "a".charCodeAt(0); 
        break;
      case "ç":
        event.keyCode = "c".charCodeAt(0); 
        break;
      case "è": case "é": case "ê": case "ë":
        event.keyCode = "e".charCodeAt(0); 
        break;
      case "ì": case "í": case "î": case "ï":
        event.keyCode = "i".charCodeAt(0); 
        break;
      case "ð": case "ò": case "ó": case "ô": case "õ": case "ö": case "ø":
        event.keyCode = "o".charCodeAt(0); 
        break;
      case "ù": case "ú": case "û": case "ü":
        event.keyCode = "u".charCodeAt(0); 
        break;
      case "ý": case "ÿ":
        event.keyCode = "y".charCodeAt(0); 
        break;
      }
      break;
    case "F":
      if ( isNaN( parseInt( String.fromCharCode( event.keyCode ) ) ) 
           && String.fromCharCode( event.keyCode ) != "/"
           && String.fromCharCode( event.keyCode ) != "-" ) {
        event.returnValue = false;
      }
      break;
    }
  }
}

//-------------------
// Fin de mascara.js
//-------------------
