

function cipheroffset(num,addy) {
  var lc = ciphers[0].length-1;
  for ( i=0 ; i < ciphers[num].length ; i++ ) {
    fchar = String.fromCharCode(ciphers[num].charCodeAt(i));
    schar = String.fromCharCode(addy.charCodeAt(0));
    if ( fchar == schar )
      if ( i >= 1 ) {
        return(i-1);
      }
      else {
        return(lc);
      }
    }
    return(-1);
}

function findoffset(addy) {
  for ( i=0 ; i < ciphers[0].length ; i++ ) {
    fchar = String.fromCharCode(ciphers[0].charCodeAt(i));
    schar = String.fromCharCode(addy.charCodeAt(0));
    if ( fchar == schar )
      return(i);
    }
 return(-1);
}

function findstart(addy) {
  for ( i =1 ; i < ciphers.length ; i++ ) {
    fchar = String.fromCharCode(ciphers[i].charCodeAt(0));
    schar = String.fromCharCode(addy.charCodeAt(0));
    if ( fchar == schar )
      return(i);
    }
    return(-1);
}

function ecd(myaddy) {
  j = findstart(myaddy);

// 1st char same as original
  newaddy = String.fromCharCode(myaddy.charCodeAt(0));
  for ( n=0; n < myaddy.length ; n++ ) {

// char in addy
    partstr = String.fromCharCode(myaddy.charCodeAt(n));

// offset in [0]
    k = findoffset(partstr);

// ciphered char
    newstr = String.fromCharCode(ciphers[j++].charCodeAt(k));
    newaddy = ""+newaddy+""+newstr+"";
    if ( j >= ciphers.length ) {
      j = 0;
    }
  }
  return(newaddy);
}

function dcd(myaddy) {
  j = findstart(myaddy);

// 1st char same as original
  newaddy = String.fromCharCode(myaddy.charCodeAt(0));
  for ( n=2; n < myaddy.length ; n++ ) {

// char in ciphered addy
    partstr = String.fromCharCode(myaddy.charCodeAt(n));

// offset in cipher[j]
    k = cipheroffset(j++,partstr);

// deciphered char
    newstr = String.fromCharCode(ciphers[0].charCodeAt(k));
    newaddy = ""+newaddy+""+newstr+"";
    if ( j >= ciphers.length ) {
      j = 0;
    }
  }
  document.write(newaddy);
  return(newaddy);
}

function encode() {
document.forms[0].elements[0].value = ecd(document.forms[0].elements[0].value)
}
function decode() {
document.forms[0].elements[0].value = dcd(document.forms[0].elements[0].value)
}

