function code(sIn) {
/* ---------------------------------------------------------------------- *
 * Esta função codifica um campo usando uma chave.                        *
 * Autor: Antonio Augusto Rocha Luz                           28/10/1999  *
 * ---------------------------------------------------------------------- */

var alfabeto = ' ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
sIn = sIn.toUpperCase();
sKey = sIn;

var alfa = new Array(37);
var tamanho_alfa = 37;
for (i=1; i<=37; i++) { 
	alfa[i] = alfabeto.substring(i-1,i);
}

var tamanho_chave = sKey.length;
var beta = new Array(30);

for (i=1; i<=tamanho_chave; i++) { 
    beta[tamanho_chave-i+1] = sKey.substring(i-1,i);
}

var tamanho_string = sIn.length;
var chr = new Array(30);

for (i=1; i<=tamanho_string; i++) {
    chr[i] = sIn.substring(i-1,i);
}

var sOut = ''; 
var j = 0;
for (var i=1; i<=tamanho_string; i++) {
    j = j + 1;
    if (j > tamanho_chave) { j = 1; }
    var pk = alfabeto.indexOf(beta[j]) + 1;
    var px = alfabeto.indexOf(chr[i]) + 1;
    var pe = ((px + pk -1) % tamanho_alfa) + 1;
    sOut = sOut + alfa[pe];
}
return sOut;
}
