function hex(b)
{
var literal="0123456789ABCDEF";

  lo=literal.charAt(b&0x0F);
  hi=literal.charAt((b&0xF0)/16);
  return(hi+lo);
}

function crypt(my)
{
 var a='';
 for (i=0; i<my.length; i++)
  {
  nix=my.charCodeAt(i);
  a+=hex(nix);
  }
 return(a);
}

function decode(my)
{
 var alphabet="%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_´abcdefghijklmnopqrstuvwxyz{|}~";
 var a=''; b=''; p='';

 for (i=0; i<my.length; i++)
  {
  if (i%2==0)
    {
    a=my.charAt(i);
    a+=my.charAt(i+1);

    a=('0x'+a)&0xFF;
    if (a >126)
      {
      b+='&#'+a+';';
      }
    else if (a >36)
      {
      a-=37;
      b+=alphabet.charAt(a);
      }
    else
      {
      switch(a){
        case 10: break;
        case 13: break;
        case 19: b+='-'; break;
        case 32: b+=" "; break;
        case 33: b+="!"; break;
        case 34: b+="\""; break;
        case 35: b+="#"; break;
        case 36: b+="$"; break;

        default:b+='&#'+a+';';
        }
      }
    }
  }
 return(b);
}