/*****************************************************************************
 * Email - Kontakt - Management v0.0.1                                       *
 *                                                                           *
 * Verhindert das automatisierte sammeln von Email-Adressen, indem sie per   *
 * Javascript aufgebaut werden. Ist Javascript abgeschaltet landen die       *
 * Leute auf einer Kontakt-Webseite.                                         *
 *****************************************************************************/

var parta = "afu";	// Domain Teil 1
var partb = "linux";	// Domain Teil 2
var tld   = "de";	// TLD

function kontakt(adr, src)
{
  var month  = "mai";
  var year   = "lto";
  var at     = String.fromCharCode(64);
  var dot    = ".";
  var gotat  = 0;
  var gotpar = 0;
  var to     = month+year+":";

  for (i=0; i<adr.length; i++)
  {
    switch(adr.charAt(i)) {
      case "+":
        /* Adresse: Ersetzen durch Komma mit Domainvervollständigung
         * Subject: Ersetzen durch Leerzeichen
         */
        if (gotpar != 1) /* Adresse */
        {
          if (gotat == 0) /* Domainvervollständigung */
            to += at+parta+partb+dot+tld;
          gotat = 0;
          to += ",";
        } else /* Subject */
          to += " ";
        break;
      case ",":
        /* Nur Adresse: Mehrere Email-Adressen werden mit Komma voneinander
         * getrennt, d.h. beim Auftreten eines Kommas muß die Default-Domain
         * ergänzt werden, wenn keine Domain angegeben wurde.
         */
        if (gotpar != 1 && gotat == 0) to += at+parta+partb+dot+tld;
        to += ",";
        gotat = 0;
        break;
      case "#":
        /* Nur Adresse: Ersetzen durch @ beim ersten Auftreten,
         * ansonsten ersetzen durch Punkt.
         */
        if (gotpar != 1) /* Adresse */
        {
          (gotat != 0) ? to += dot : to += at;
          gotat = 1;
        } else /* Subject */
          to += adr.charAt(i);
        break;
      case "/":
        /* Nur Adresse: Ersetzen durch Punkt.
         */
        (gotpar != 1) ? to += "." : to += adr.charAt(i);
        break;
      case "!":
        /* Leitet den Parameterteil ein. Ersetzt ?subject= beim ersten
         * Auftreten, ersetzt &cc= beim zweiten Auftreten und &bcc= beim
         * dritten Auftreten.
         */
        /* Default-Domain setzen, wenn noch nicht vorhanden */
        if (gotpar != 1 && gotat == 0) to += at+parta+partb+dot+tld;
        gotpar++;
        switch (gotpar) {
          case 1:
            to += "?subject=";
            break;
          case 2:
            to += "&cc=";
            break;
          default:
            to += "&bcc=";
            break;
        }
        gotat = 0;
        break;
      default:
        /* Zeichen übernehmen */
        to += adr.charAt(i);
        break;
    }
  }

  /* Default-Domain setzen, wenn noch nicht vorhanden */
  if (gotpar != 1 && gotat == 0) to += at+parta+partb+dot+tld;

  /* Werte zurückliefern */
  src.href = to;
}