/////////////////////////////////////////////////////////////////
// scramble.js
// Anti-Spam script to write e-mail addresses
//
// Copyright 2004, by Antony Templier under the terms of GNU GPL.
// 19 may 2004: v0.1 (first public release)
//
// Combination and enhancement of email_obfuscator.js by Nathan Rosenqist (freely downloaded on the net)
// and mapping technique used on the php eprotect script for pmwiki by Steven Leite (under GNU GPL)
//
// Examples :
// !!! All string parameters must be change before by the decode function !!!
// To code info : <script type='text/javascript'>displayMail('tld', 'domain', 'mail')</script>
//
// <script>displayMail('com','mydomain','myname');</script>
// (displays myname@mydomain.com in HTML)
//
// <script>displayMailLink('com','mydomain','myname','displayname');</script>
// (displays displayname in HTML and links to mailto:myname@mydomain.com)
//
// <script>displayMailLink('com','mydomain','myname','displayname','subject=myTopic');</script>
// (displays displayname in HTML and links to mailto:myname@mydomain.com?subject=myTopic)
//////////////////////////////////////////////////////////////////


// definition objet
function map(){
    //property
    this.value=null;

    //methodes
    this.init=init;
}

function init() {
    if (this.value!=null) return;

        this.value=new Array();
        var s='abcdefghijklmnopqrstuvwxyz';
        for(i=0;i<s.length;i++) this.value[s.charAt(i)]=s.charAt((i+13)%26);
        for(i=0;i<s.length;i++) this.value[s.charAt(i).toUpperCase()]=s.charAt((i+13)%26).toUpperCase();
}

function decode(myString){

    var myMap= new map();
    myMap.init();

    var result='';

    for(i=0;i<myString.length;i++){
        var b=myString.charAt(i);
        result+=((b>='A'&&b<='Z')||(b>='a'&&b<='z')?myMap.value[b]:b);
    }

    return result;
}

function getEmail(tld, domain, name) {
    return (name + '@' + domain + '.' + tld);
}

function displayMail(tld, domain, name) {
    document.write(decode(getEmail(tld,domain,name)));
}

function displayMailLink(tld, domain, name, displayName, queryString){
    if (!displayName) {
        displayName = getEmail(tld,domain,name);
    }

    displayName=decode(displayName);
    var mail=decode(getEmail(tld,domain,name));

    if (queryString) {
        queryString=decode(queryString);
        document.write('<a class="lienCouleur" href="mailto:' + mail + '?' + queryString + '">' + displayName + '</a>');
    } else  {
        document.write('<a class="lienCouleur" href="mailto:' + mail + '">' + displayName + '</a>');
    }
}