/*
 * Copyright (C) 2003 Andreas Bolka
 * Licensed under the Academic Free License version 1.1
 */

function rot13( str ) {
    var a = 'a'.charCodeAt(); var z = 'z'.charCodeAt();
    var A = 'A'.charCodeAt(); var Z = 'Z'.charCodeAt();

    var res = '';
    for( var i = 0; i < str.length; i++ ) {
	var base = 0;
	var ch = str.charCodeAt(i);
	if( ch >= a && ch <= z ) base = a;
	if( ch >= A && ch <= Z ) base = A;
	if( base != 0 )
	    ch = base + (ch - base + 13) % 26;

	res += String.fromCharCode( ch );
    }
    return res;
}

function htmlEscape( str ) {
    return str.
	replace( /&/, '&amp;' ).
	replace( /</, '&lt;' ).
	replace( />/, '&gt;' ).
	replace( /\"/, '&quot;' ).
	replace( /\'/, '&apos;' );
}

function mask( str ) {
    return rot13( str ).replace( /@/, '@@@' );
}

function demask( str ) {
    return rot13( str ).replace( /@@@/, '@' );
}

function makeMailto( addr, text ) {
    return '<a href="mailto:' + 
	escape(demask(unescape(addr))) + '">' + 
	htmlEscape(demask(unescape(text))) + '<\/a>'; 
}

function writeMailto1( addr ) {
    document.write( makeMailto( addr, addr ) );
}

function writeMailto2( addr, text ) {
    document.write( makeMailto( addr, text ) );
}
