var ROT13L = 'nopqrstuvwxyzabcdefghijklm';
var ROT13U = 'NOPQRSTUVWXYZABCDEFGHIJKLM';

function isLower ( c )
{
  return c >= 'a' && c <= 'z';
}

function isUpper ( c )
{
  return c >= 'A' && c <= 'Z';
}

function rot13 ( s )
{
  var al = 'a'.charCodeAt ( 0 );
  var au = 'A'.charCodeAt ( 0 );
  var i = 0;
  var r = "";
  
  for ( i = 0; i < s.length; i ++ )
    if ( isLower ( s.charAt ( i ) ) )
        r += ROT13L.charAt ( s.charCodeAt ( i ) - al );
    else
      if ( isUpper ( s.charAt ( i ) ) )
          r += ROT13U.charAt ( s.charCodeAt ( i ) - au );
      else
          r += s.charAt ( i );

  return r;
}

/*
 * vim:sw=2:et:ts=2:sts=2:sta:tw=75
 */
