code: function encodeEmailAddress(addr) {
  
          function char2hex(ch) {
              var hexDigits = '0123456789ABCDEF';
              var dec = ch.charCodeAt(0);
              return(hexDigits.charAt(dec>>4) + hexDigits.charAt(dec&15));
          }
  
          var encode = [
              function(ch){return "&#"+ch.charCodeAt(0)+";";},
              function(ch){return "&#x"+char2hex(ch)+";";},
              function(ch){return ch;}
          ];
  
          addr = "mailto:" + addr;
  
          addr = addr.replace(/./g, function(ch) {
              if (ch == "@") {
                  ch = encode[Math.floor(Math.random()*2)](ch);
              } else if (ch !=":") {
                  var r = Math.random();
                  ch =  (r > .9 ? encode[2](ch) : r > .45 ? encode[1](ch) : encode[0](ch));
              }
              return ch;
          });
  
          addr = "<a href=\"" + addr + "\">" + addr + "</a>";
          addr = addr.replace(/">.+:/g,"\">");
  
          return addr;
      }
docs: }}} {{{ encodeEmailAddress