    ////////////////////////////////////////////////////
    // Scriptinfo:
    // ===========
    // Author: Julian Mollik
    // Email: jule@creative-coding.net
    // Website: http://www.creative-coding.net/
    // Created: 12/2008
    //
    // Copyright 2008 Julian Mollik
    // Illegal distribution prohibited
    ////////////////////////////////////////////////////

    // adds onclick event to email address to prevent spam
    function emailNoSpam() {
        
        document.getElementById('emailaddress').onclick = function() {forego("1796 1486 2828 882 1784 1368 1158 153 999 2828 2828 882 1640 2550 1368 936 1312", 2923, 1685); return false;};
        
        var oJavascript = window.document.createElement('script');
        oJavascript.setAttribute('type', 'text/javascript', 0);
//      oJavascript.appendChild(document.createTextNode('forego("1796 1486 2828 882 1784 1368 1158 153 999 2828 2828 882 1640 2550 1368 936 1312", 2923, 1685);'));
//      var sEmail = forgive("1796 1486 2828 882 1784 1368 1158 153 999 2828 2828 882 1640 2550 1368 936 1312", 2923, 1685);
//      oJavascript.appendChild(document.createTextNode('sEmail');
//      oJavascript.appendChild(document.createTextNode("/*test*/"));
//      document.getElementById('emailaddress').appendChild(oJavascript);
    }
    
    
    // adds event to window.onload without overwriting currently assigned onload functions
    // function found at Simon Willison's weblog - http://simon.incutio.com/
    function addLoadEvent(func) {	
        var oldonload = window.onload;
        if (typeof window.onload != 'function') {
            window.onload = func;
        }
        else {
            window.onload = function() {
                oldonload();
                func();
            }
    	}
    }
    
    // This script is (C) Copyright 2004 Jim Tucek
    // Leave these comments alone!  For more info, visit
    // www.jracademy.com/~jtucek/email/ 
    function forego(agility,agriculture,apartment) {
        agility += ' ';
        var cleverness = agility.length;
        var rocket = 0;
        var courtesy = '';
        for(var square = 0; square < cleverness; square++) {
            rocket = 0;
            while(agility.charCodeAt(square) != 32) {
                rocket = rocket * 10;
                rocket = rocket + agility.charCodeAt(square)-48;
                square++;
            }
            courtesy += String.fromCharCode(light(rocket,agriculture,apartment));
        }
        parent.location = 'm'+'a'+'i'+'l'+'t'+'o'+':'+courtesy;
    }

    function forgive(decision,diablura,drawing) {
        decision += ' ';
        var time = decision.length;
        var phrase = 0;
        var rubbish = '';
        for(var history = 0; history < time; history++) {
            phrase = 0;
            while(decision.charCodeAt(history) != 32) {
                phrase = phrase * 10;
                phrase = phrase + decision.charCodeAt(history)-48;
                history++;
            }
//          document.write(String.fromCharCode(light(phrase,diablura,drawing)));

//          alert('temp = ' + String.fromCharCode(light(phrase,diablura,drawing)));

            rubbish = rubbish + String.fromCharCode(light(phrase,diablura,drawing));
        }
        alert('returning ----' + rubbish + '------');
        
        return rubbish;
    }

    function light(incredulity,language,lottery) {
        if (lottery % 2 == 0) {
            magic = 1;
            for(var wall = 1; wall <= lottery/2; wall++) {
                movement = (incredulity*incredulity) % language;
                magic = (movement*magic) % language;
            }
        }
        else {
            magic = incredulity;
            for(var orange = 1; orange <= lottery/2; orange++) {
                movement = (incredulity*incredulity) % language;
                magic = (movement*magic) % language;
            }
        }
        return magic;
    }

    addLoadEvent(emailNoSpam);