  function ChangeLetter( s, l1, l2 )
  {
    return s;
    var a;
    var b;
    var pa;
    var pb;

    if( l1 != l2 ) 
    {    
      if( l1 < l2 ){ pa = l1; pb = l2; }else{ pa = l2; pb = l1; };
   
      a = s.substr( l1, 1 );
      b = s.substr( l2, 1 );

      if( a != b )
        return s.substr( 0, pa ) + b + s.substr( pa+1, pb - pa-1 ) + a + s.substr( pb+1, (s.length - pb)-1 );
    }
    return s;   
  }
  
  function EncryptString( s, pw )
  {   
    var npw = pw;    
  
    while( npw.length < s.length )
      npw = npw + pw;

    var codes = new Array( npw.length );
    var tmp = "";

    for( i = 0; i < npw.length; i++ )
    {
      idx = codepos.indexOf( npw.substr( i, 1 ) );
      if( idx == -1 ) idx = cplen; 
      codes[i] = (idx + i) % s.length; 
    }

    tmp = s;

    for( i = 0; i < npw.length-1; i++ )
      tmp = ChangeLetter( tmp, codes[i], codes[i+1] );

    var r = "";

    for( i = 0; i < tmp.length; i++ )
    {
      a = codepos.indexOf( npw.substr( i, 1 ) ); if( a == -1 ) a = cplen;
      b = codepos.indexOf( tmp.substr( i, 1 ) ); 
      if( b == -1 ) 
      {
        r = r + tmp.substr( i, 1 );
      }
      else
      {
        c = (a + b) % cplen;
        r = r + codepos.substr( c, 1 );
      }
    }
 
    return r;
  }

  function DecryptString( s, pw )
  { 
    var npw = pw;    

    while( npw.length < s.length )
      npw = npw + pw;

    var codes = new Array( npw.length );
    var tmp = "";

    for( i = 0; i < npw.length; i++ )
    {
      idx = codepos.indexOf( npw.substr( i, 1 ) );
      if( idx == -1 ) idx = cplen; 
      codes[i] = (idx + i) % s.length; 
    }

    r = "";

    for( i = 0; i < s.length; i++ )
    {
      a = codepos.indexOf( npw.substr( i, 1 ) ); if( a == -1 ) a = cplen;
      c = codepos.indexOf( s.substr( i, 1 ) ); 
      if( c == -1 )
      {
        r = r + s.substr( i, 1 );
      }
      else
      { 
        b = (c + cplen - a) % cplen;
        r = r + codepos.substr( b, 1 );
      }
    }
    
    tmp = r;
    for( i = npw.length-2; i >= 0; i-- )
      tmp = ChangeLetter( tmp, codes[i], codes[i+1] );
 
    return tmp;
  }

