// JavaScript Document
// ---------------------------------------------------------------------- //
//                                VARIABLES                               //
// ---------------------------------------------------------------------- //
// Esta variable indica si está bien dejar las casillas
// en blanco como regla general
var defaultEmptyOK = false
// listas de caracteres para validación
var digits = "0123456789";
var lowercaseLetters = "abcdefghijklmnopqrstuvwxyzáéíóúñü."
var uppercaseLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZÁÉÍÓÚÑ"
var whitespace = " \_\-\t\n\r";
var directorio = " \.\0123456789\:\t\n\r\/\˜\~\ñ\-\_\%\#\?\¿\&\+\*\!\¡\$\|\(\\)";
var iDay = "El día debe ser un número entre 1 y 31.  Por favor intente de nuevo."
var iMonth = "El mes debe ser un número entre 1 y 12.  Por favor intente de nuevo."
var iYear = "El año deben ser numeros de 2 a 4 digitos.  Por favor intente de nuevo."
var iDatePrefix = "El día, mes, y año para "
var iDateSuffix = " No es una fecha valida.  Por favor intente de nuevo."
// caracteres admitidos en los números telefonicos de telefono
var phoneChars = "()-+ ";
// ---------------------------------------------------------------------- //
//                     TEXTOS PARA LOS MENSAJES                           //
// ---------------------------------------------------------------------- //
// m abrevia "missing" (faltante)
var mMessage = "Error: no puede dejar este espacio vacio"
// p abrevia "prompt"
var pPrompt = "Error: ";
var pAlphanumeric = "Ingrese un texto que contenga solo letras y/o numeros";
var pAlphabetic   = "Ingrese un texto que contenga solo letras";
var pInteger = "Ingrese un numero entero";
var pNumber = "Ingrese un numero";
var pPhoneNumber = "Ingrese un número de teléfono";
var pEmail = "Ingrese una dirección de correo electrónico válida Ejemplo: (Nombre@Dominio.Dominio)";
var pName = "Ingrese un texto que contenga solo letras, numeros o espacios";
var pFecha="Ingrese una fecha valida Ejemplo: dd/mm/yyyy";
var pCad = "Ingrese un texto que contenga solo letras, números o los caracteres % y _";
var daysInMonth = makeArray(12);
daysInMonth[1] = 31;
daysInMonth[2] = 29;   // must programmatically check this
daysInMonth[3] = 31;
daysInMonth[4] = 30;
daysInMonth[5] = 31;
daysInMonth[6] = 30;
daysInMonth[7] = 31;
daysInMonth[8] = 31;
daysInMonth[9] = 30;
daysInMonth[10] = 31;
daysInMonth[11] = 30;
daysInMonth[12] = 31;



// ---------------------------------------------------------------------- //
//                  CODIGO PARA FUNCIONES BASICAS                         //
// ---------------------------------------------------------------------- //
// s es vacio
function isEmpty(s)
{   return ((s == null) || (s.length == 0))
}

// s es vacio o solo caracteres de espacio
function isWhitespace (s)
{   var i;
    if (isEmpty(s)) return true;
    for (i = 0; i < s.length; i++)
    {
        var c = s.charAt(i);
        // si el caracter en que estoy no aparece en whitespace,
        // entonces retornar falso
        if (whitespace.indexOf(c) == -1) return false;
    }
    return true;
}

//***********VALIDA***********/
function makeArray(n)
{
//*** BUG: If I put this line in, I get two error messages:
//(1) Window.length can't be set by assignment
//(2) daysInMonth has no property indexed by 4
//If I leave it out, the code works fine.
//   this.length = n;
	for (var i = 1; i <= n; i++)
	{
      this[i] = 0
   	}
   	return this
}

// Quita todos los caracteres que estan en "bag" del string "s" s.
function stripCharsInBag (s, bag)
{   var i;
    var returnString = "";

    // Buscar por el string, si el caracter no esta en "bag",
    // agregarlo a returnString
    for (i = 0; i < s.length; i++)
    {   var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }

    return returnString;
}

// Quita todos los espacios en blanco de una cadena de caracteres.
function QuitaBlancos(Cadena) {
  var temp = "";
  for(var i=0; i<Cadena.length; i++) {
   if (Cadena.charAt(i)!=" ") {
      temp = temp + Cadena.charAt(i)
      }
   }
   return temp;
}

// Lo contrario, quitar todos los caracteres que no estan en "bag" de "s"
function stripCharsNotInBag (s, bag)
{   var i;
    var returnString = "";
    for (i = 0; i < s.length; i++)
    {
        var c = s.charAt(i);
        if (bag.indexOf(c) != -1) returnString += c;
    }

    return returnString;
}

// Quitar todos los espacios en blanco de un string
function stripWhitespace (s)
{   return stripCharsInBag (s, whitespace)
}

// La rutina siguiente es para cubrir un bug en Netscape
// 2.0.2 - seria mejor usar indexOf, pero si se hace
// asi stripInitialWhitespace() no funcionaria
function charInString (c, s)
{   for (i = 0; i < s.length; i++)
    {   if (s.charAt(i) == c) return true;
    }
    return false
}

// Quita todos los espacios que antecedan al string
function stripInitialWhitespace (s)
{   var i = 0;
    while ((i < s.length) && charInString (s.charAt(i), whitespace))
       i++;
    return s.substring (i, s.length);
}

// c es una letra del alfabeto espanol
function isLetter (c)
{
    return( ( uppercaseLetters.indexOf( c ) != -1 ) ||
            ( lowercaseLetters.indexOf( c ) != -1 ) )
}

// c es un digito
function isDigit (c)
{   return ((c >= "0") && (c <= "9"))
}

// c es letra o digito
function isLetterOrDigit (c)
{   return (isLetter(c) || isDigit(c))
}

// ---------------------------------------------------------------------- //
//                          NUMEROS                                       //
// ---------------------------------------------------------------------- //
// s permite que cualquier caracter sea valido
// "OJO es una función utilizada unicamente para conservar compatibilidad "
function isAllValid (s)
{ return true; }

// s es un numero entero (con o sin signo)
function isInteger (s)
{   var i;
    if (isEmpty(s))
       if (isInteger.arguments.length == 1) return defaultEmptyOK;
       else return (isInteger.arguments[1] == true);

    for (i = 0; i < s.length; i++)
    {
        var c = s.charAt(i);
        if( i != 0 ) {
            if (!isDigit(c)) return false;
        } else {
            if (!isDigit(c) && (c != "-") || (c == "+")) return false;
        }
    }
    return true;
}

// s es un numero (entero o flotante, con o sin signo)
function isNumber (s)
{   
	var i;
    var dotAppeared;
    dotAppeared = false;
    if (isEmpty(s))
       if (isNumber.arguments.length == 1) return defaultEmptyOK;
       else return (isNumber.arguments[1] == true);

    for (i = 0; i < s.length; i++)
    {
        var c = s.charAt(i);
        if( i != 0 ) {
            if ( c == "." ) {
                if( !dotAppeared )
                    dotAppeared = true;
                else
                    return false;
            } else
                if (!isDigit(c)) return false;
        } else {
            if ( c == "." ) {
                if( !dotAppeared )
                    dotAppeared = true;
                else
                    return false;
            } else
                if (!isDigit(c) && (c != "-") || (c == "+")) return false;
        }
    }
    return true;
}

// ---------------------------------------------------------------------- //
//                        STRINGS SIMPLES                                 //
// ---------------------------------------------------------------------- //
// s tiene solo letras
function isAlphabetic (s)
{   var i;

    if (isEmpty(s))
       if (isAlphabetic.arguments.length == 1) return defaultEmptyOK;
       else return (isAlphabetic.arguments[1] == true);
    for (i = 0; i < s.length; i++)
    {
        // Check that current character is letter.
        var c = s.charAt(i);

        if (!isLetter(c))
        return false;
    }
    return true;
}

// s tiene solo letras y numeros
function isAlphanumeric (s)
{   var i;

    if (isEmpty(s))
       if (isAlphanumeric.arguments.length == 1) return defaultEmptyOK;
       else return (isAlphanumeric.arguments[1] == true);

    for (i = 0; i < s.length; i++)
    {
        var c = s.charAt(i);
        if (! (isLetter(c) || isDigit(c) ) )
        return false;
    }

    return true;
}

// s tiene solo letras, numeros o espacios en blanco
function isName (s)
{
    if (isEmpty(s))
       if (isName.arguments.length == 1) return defaultEmptyOK;
       else return (isAlphanumeric.arguments[1] == true);

    return( isAlphanumeric( stripCharsInBag( s, whitespace ) ) );
}

//---------------------------------------------------------------------//
//			RUTA DE LOS ARCHIVOS				                       //
//----------------------------------------------------------------------//
// s tiene letras, y barras, numeros o espacios en blanco
function isRuta (s)
{
    if (isEmpty(s))
       if (isRuta.arguments.length == 1) return defaultEmptyOK;
       else return (isAlphanumeric.arguments[1] == true);
    return( isAlphanumeric( stripCharsInBag( s, directorio ) ) );

}

// USADO PARA EL DIRECTORIO TELEFONICO, VALIDA QUE LA CADENA A BUSCAR SEA VALIDA
// s tiene solo letras y _ y %
function isCadena (s)
{
    if ( (isEmpty(s)) || (s.length==0))
       return false;

    for (i = 0; i < s.length; i++)
    {
        var c = s.charAt(i);
        if ( (isLetter(c)) || (isNumber(c)) || (c=="%") || (c=="_") )
	        return true
	else
		return false
    }
}

// ---------------------------------------------------------------------- //
//                           FONO o EMAIL                                 //
// ---------------------------------------------------------------------- //
// s es numero de telefono valido
function isPhoneNumber (s)
{   var modString;
    if (isEmpty(s))
       if (isPhoneNumber.arguments.length == 1) return defaultEmptyOK;
       else return (isPhoneNumber.arguments[1] == true);
    modString = stripCharsInBag( s, phoneChars );
    return (isInteger(modString))
}

// s es una direccion de correo valida
function isEmail (s)
{
    if (isEmpty(s))
       if (isEmail.arguments.length == 1) return defaultEmptyOK;
       else return (isEmail.arguments[1] == true);
    if (isWhitespace(s)) return false;
    var i = 1;
    var sLength = s.length;
    while ((i < sLength) && (s.charAt(i) != "@"))
    { i++
    }

    if ((i >= sLength) || (s.charAt(i) != "@")) return false;
    else i += 2;

    while ((i < sLength) && (s.charAt(i) != "."))
    { i++
    }

    if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
    else return true;
}

// ---------------------------------------------------------------------- //
//                  FUNCIONES PARA RECLAMARLE AL USUARIO                  //
// ---------------------------------------------------------------------- //
// pone el string s en la barra de estado
function statBar (s)
{   window.status = s
}

// notificar que el campo theField esta vacio
function warnEmpty (theField)
{   theField.focus()
    alert(mMessage)
    statBar(mMessage)
    return false
}

// notificar que el campo theField es invalido
function warnInvalid (theField, s)
{   theField.focus()
    theField.select()
    alert(s)
    statBar(pPrompt + s)
    return false
}

// el corazon de todo: checkField
function checkField (theField, theFunction, emptyOK, s)
{
    var msg;
    if (checkField.arguments.length < 3) emptyOK = defaultEmptyOK;
    if (checkField.arguments.length == 4) {
        msg = s;
    } else {
        if( theFunction == isAlphabetic ) msg = pAlphabetic;
        if( theFunction == isAlphanumeric ) msg = pAlphanumeric;
        if( theFunction == isInteger ) msg = pInteger;
        if( theFunction == isNumber ) msg = pNumber;
        if( theFunction == isEmail ) msg = pEmail;
        if( theFunction == isPhoneNumber ) msg = pPhoneNumber;
        if( theFunction == isName ) msg = pName;
        if( theFunction == isAllValid ) msg = mMessage;
        if( theFunction == isCadena ) msg = pCad;
    }

    if ((emptyOK == true) && (isEmpty(theField.value))) return true;

    if ((emptyOK == false) && (isEmpty(theField.value)))
        return warnEmpty(theField);

    if (theFunction(theField.value) == true)
        return true;
    else
        return warnInvalid(theField,msg);
}

function isYear (s)
{   if (isEmpty(s))
       if (isYear.arguments.length == 1) return defaultEmptyOK;
       else return (isYear.arguments[1] == true);
    if (!isNonnegativeInteger(s)) return false;
    return ((s.length == 2) || (s.length == 4));
}

function isMonth (s)
{   if (isEmpty(s))
       if (isMonth.arguments.length == 1) return defaultEmptyOK;
       else return (isMonth.arguments[1] == true);
    return isIntegerInRange (s, 1, 12);
}

function isDay (s)
{   if (isEmpty(s))
       if (isDay.arguments.length == 1) return defaultEmptyOK;
       else return (isDay.arguments[1] == true);
    return isIntegerInRange (s, 1, 31);
}

// isDate (STRING year, STRING month, STRING day)
// isDate returns true if string arguments year, month, and day
// form a valid date.
function isDate (year, month, day)
{   // catch invalid years (not 2- or 4-digit) and invalid months and days.
    if (! (isYear(year, false) && isMonth(month, false) && isDay(day, false))) return false;

    // Explicitly change type to integer to make code work in both
    // JavaScript 1.1 and JavaScript 1.2.
    var intYear = parseInt(year);
    var intMonth = parseInt(month);
    var intDay = parseInt(day);

    // catch invalid days, except for February
    if (intDay > daysInMonth[intMonth]) return false;

    if ((intMonth == 2) && (intDay > daysInFebruary(intYear))) return false;

    return true;
}

function isNonnegativeInteger (s)
{   var secondArg = defaultEmptyOK;

    if (isNonnegativeInteger.arguments.length > 1)
        secondArg = isNonnegativeInteger.arguments[1];
    // The next line is a bit byzantine.  What it means is:
    // a) s must be a signed integer, AND
    // b) one of the following must be true:
    //    i)  s is empty and we are supposed to return true for
    //        empty strings
    //    ii) this is a number >= 0
    return (isSignedInteger(s, secondArg)
         && ( (isEmpty(s) && secondArg)  || (parseInt (s) >= 0) ) );
}

function isSignedInteger (s)
{   if (isEmpty(s))
       if (isSignedInteger.arguments.length == 1) return defaultEmptyOK;
       else return (isSignedInteger.arguments[1] == true);

    else {
        var startPos = 0;
        var secondArg = defaultEmptyOK;

        if (isSignedInteger.arguments.length > 1)
            secondArg = isSignedInteger.arguments[1];

        // skip leading + or -
        if ( (s.charAt(0) == "-") || (s.charAt(0) == "+") )
           startPos = 1;
        return (isInteger(s.substring(startPos, s.length), secondArg))
    }
}

function isIntegerInRange (s, a, b)
{   if (isEmpty(s))
       if (isIntegerInRange.arguments.length == 1) return defaultEmptyOK;
       else return (isIntegerInRange.arguments[1] == true);

    // Catch non-integer strings to avoid creating a NaN below,
    // which isn't available on JavaScript 1.0 for Windows.
    if (!isInteger(s, false)) return false;

    // Now, explicitly change the type to integer via parseInt
    // so that the comparison code below will work both on
    // JavaScript 1.2 (which typechecks in equality comparisons)
    // and JavaScript 1.1 and before (which doesn't).
    var num = parseInt (s);
    return ((num >= a) && (num <= b));
}

function daysInFebruary (year)
{   // February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (  ((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0) ) ) ? 29 : 28 );
}

function checkFecha(yearField, monthField, dayField, labelString, OKtoOmitDay)
{   // Next line is needed on NN3 to avoid "undefined is not a number" error
    // in equality comparison below.

    if(dayField.length>1) {
      if(dayField.charAt(0)=="0") {
         dayField=dayField.charAt(1)
       }
     }

    if(monthField.length>1) {
      if(monthField.charAt(0)=="0") {
         monthField=monthField.charAt(1)
       }
     }

    if (checkFate.arguments.length == 4) OKtoOmitDay = false;
    if ( (OKtoOmitDay == true) && isEmpty(dayField) ) return true;
    else if (!isDay(dayField))
       return warnInvalid (dayField, iDay);
    if (!isMonth(monthField)) return warnInvalid (monthField, iMonth);
    if (!isYear(yearField)) return warnInvalid (yearField, iYear);
    if (isDate (yearField, monthField, dayField))
       return true;
    else {
       alert (iDatePrefix + labelString + iDateSuffix)
       return false
     }
}

function warnInvalid (theField, s)
{   alert(s)
    return false
}

function mensaje(texto){
self.status = texto;
return true;
}

<!--
/*
-----------------------------------------
|     By Mattias Sjöberg 28/11-96       |
|You're welcome to use/edit this script.|
| Keep the comments and drop me a note. |
-----------------------------------------
|      mattias.sjoberg@swipnet.se       |
| www.geocities.com/SiliconValley/7116  |
|     Visit  The JavaScript Planet      |
-----------------------------------------
*/
function checkdate(a)
{
        var err=0
        //cambiar el argumento del textbox...
        //a=document.form1.lblFecha.value;
        if (a.length != 10) err=1
        d = a.substring(0, 2)// b=month; aqui es dia
        c = a.substring(2, 3)// '/'
        b = a.substring(3, 5)// d=day; aqui es mes
        e = a.substring(5, 6)// '/'
        f = a.substring(6, 10)// year
        //basic error checking
        if (b<1 || b>12) err = 1
        if (c != '/') err = 1
        if (d<1 || d>31) err = 1
        if (e != '/') err = 1
        if (f<1990 || f>9999) err = 1
        //advanced error checking
        // months with 30 days
        if (b==4 || b==6 || b==9 || b==11)
        {
                if (d==31) err=1
        }
        // february, leap year
        if (b==2)
        {
                // feb
                var g=parseInt(f/4)
                if (isNaN(g)) {
                        err=1
                }
                if (d>29) err=1
                if (d==29 && ( (f/4)!=parseInt(f/4) ) && ( (year % 4 != 0) && ((!(year % 100 != 0)) || (year % 400 != 0) ))) err=1
        }

        if (err==1){

			return false;
        }
        else{

			return true;
        }
}
//-->


//------------------------------------------------------//
//    Inicialización de Objetos para escape de chars    //
//------------------------------------------------------//
function initText(control,value) {
// Initialize a text field
	control.value = value;
}

function initTextArea(control,value) {
// Initialize a text area field
	control.value = value;
}

function initCheckBox(control,value) {
// Initialize a check box
	control.checked = (value != "");
}

function initRadio(control,value) {
// Initialize a radio button
	for (var i = 0; i < control.length; i++) {
		if (control[i].value == value) {
			control[i].checked = true;
			break;
		}
	}
}

function initSelect(control,value) {
// Initialize a selection list (single valued)
	if (value == "") return;
	for (var i = 0; i < control.length; i++) {
		if (control.options[i].value == value) {
			control.options[i].selected = true;
			break;
		}
	}
}

function initSelectMulti(control,value) {
// Initialize a selection list (multi valued)
	if (value == "") return;
	var a = value.split(","); // make array
	for (var i = 0; i < a.length; i++) {
		for (var j = 0; j < control.length; j++) {
			if (control.options[j].value == a[i]) {
				control.options[j].selected = true;
				break;
			}
		}
	}
}

function initCheckBoxMulti(control,value) {
// Initialize a list of check boxes
	if (value == "") return;
	var a = value.split(","); // make array
	for (var i = 0; i < a.length; i++) {
		if (typeof(control.length) == "undefined") {
			if (control.value == a[i]) {
				control.checked = true;
				return;
			}
		}
		for (var j = 0; j < control.length; j++) {
			if (control[j].value == a[i]) {
				control[j].checked = true;
				break;
			}
		}
	}
}


/*********************************************************/
/*********** Nuevas Funciones para CIR********************/
/*********************************************************/
//Función para detectar CURP
function funisCurp(objeto){
	var obj = objeto;//.value;
	if (obj.length != 18){ return false;}
	if (!(isAlphabetic(obj.substring(0,4)))){ return false;}
	else if(!(isInteger(obj.substring(4,10)))){ return false;}
	else if(!(obj.substring(10,11) == "H" || obj.substring(10,11) == "M")){ return false;}
	//else if(){ return false;}
	else { return true;}
}

//Función que convierte los value de objetos en Mayúsculas
function funConvUpCase(objeto) {
		objeto.value = objeto.value.toUpperCase();
	}
	
//Funcion que determina si es correcto segundo y demás nombres
function funisNomMedio(objeto){ 
	var obj = objeto;
	var temp;
	var i;
	if (!isWhitespace(obj)){
		for (i=0; i < obj.length; i++){
			temp = obj.charAt(i);
			if(temp==" "){}
			else if (!isLetter(temp)){ return false;}
		}		
	}
	else if(isWhitespace(obj)){
		return "V";
	}
	return true;		
} 

//Función que quita los blancos iniciales  y consecutivos
function funChkNomMedio(objeto){
	var obj = objeto.value;
	obj = stripInitialWhitespace (obj);
	var i;
	var temp;	
	for (i=0; i < obj.length; i++){		
		if (obj.charAt(i) == " "){
			if (i < (obj.length-1)){				
				temp = obj.substring(i+1,obj.length);				
				temp = stripInitialWhitespace (temp);				
				obj = obj.substring(0,i+1) + temp;				
			}
			if (i == (obj.length-1)){
				obj = obj.substring(0,i);				
			}			
		}
	}
	objeto.value = obj;	
}
	
//Funcion para corresponder la CURP con el Nombre(s)
function funisMatchCurpNoms(objeto, objeto2, objeto3){
	var obj = objeto.substring(3,4);
	var obj2 = objeto2.substring(0,1).toUpperCase();
	var obj3 = objeto3;
	var temp = "";
	var i;
	temp = funStrNomMedio(objeto3); 
	if (obj == obj2){ return true;}
	for (i=0; i < temp.length; i++){
		if (temp.charAt(i) == obj){ return true;}
	}
	return false;
}

//Función de Letras posibles en una CURP con base en 2do.'s nombres
function funStrNomMedio(objeto){
	var obj = objeto;
	var Str = "";
	var i;
	var temp;	
	Str = obj.substring(0,1);
	for (i=0; i < obj.length; i++){
		temp = obj.charAt(i);
		if (temp == " "){ Str += obj.charAt(i+1);}
	}
	return Str.toUpperCase();
}

//Funcion de comprobar un CP
function funisCP(objeto){
	var obj = objeto;
	if (obj.length != 5){ return false;}
	if (!isInteger(obj)){ return false;}
	return true;		
}

//Funcion para corresponder la CURP y Apellidos
function funisMatchCurpApes(objeto, objeto2, objeto3){
	var obj  = objeto.substring(0,2);
	var obj1 = objeto.substring(2,3);
	var temp = objeto.substring(0,3);
	var obj2 = objeto2.substring(0,2).toUpperCase();
	var obj3 = objeto3; 	
	var i;
	var temp2 = "";
	temp2 = funStrNomMedio(objeto3);
	if (obj == obj2){ return true;}
	return false;	
}

//----------------------------------------------------------------------------------------- 
//	FUNCIONES PARA VALIDAR LOS CAMPOS DE TEXTO DEL FORMULARIO DE SOLICITUD DE INSCRIPCIÓN  
//-----------------------------------------------------------------------------------------
  
 
function cadena() {		//	Funciones para Internet Explorer, valida nombre, apellidos, calle, colonia, ciudad -otro-, especialidad, puesto   
  if ((event.keyCode<65 || event.keyCode>90) && (event.keyCode<97 || event.keyCode>122) && (event.keyCode!=32) && (event.keyCode < 160 ))
  //if ((event.keyCode<65 || event.keyCode>90) && (event.keyCode<97 || event.keyCode>122) && (event.keyCode!=32))  
  event.returnValue = false;  
}

function numeros_letras() {		//	para validar el usuario, número de casa
  if ((event.keyCode<48 || event.keyCode>57) && (event.keyCode < 65 || event.keyCode > 90) && (event.keyCode < 97 || event.keyCode > 122))
  event.returnValue = false;
}

function password() {		//	Para validar la Contraseña
  if ((event.keyCode!=32) && (event.keyCode!=33) && (event.keyCode!=35) && (event.keyCode!=37) && (event.keyCode!=38) && (event.keyCode<40 || event.keyCode>43) && (event.keyCode<45 || event.keyCode>63) && (event.keyCode < 65 || event.keyCode > 93) && (event.keyCode!=95) && (event.keyCode < 97 || event.keyCode > 125))
  event.returnValue = false;
}

function numeros() {		//	para validar el código postal	
  if (event.keyCode<48 || event.keyCode>57)
  event.returnValue = false;
}

function telefono() {		//	para validar el teléfono, código postal
  if ((event.keyCode<48 || event.keyCode>57) && (event.keyCode<40 || event.keyCode>41) && (event.keyCode!=32) && (event.keyCode!=45))
  event.returnValue = false;
}
function numeros_letras() {		//	para validar el usuario, número de casa
  if ((event.keyCode<48 || event.keyCode>57) && (event.keyCode < 65 || event.keyCode > 90) && (event.keyCode < 97 || event.keyCode > 122) && (event.keyCode!=32))
  event.returnValue = false;
}


