var rot13map;

function rot13init() {
    var map = [];
    var s = 'abcdefghijklmnopqrstuvwxyz';

    for (var i = 0; i < s.length; i++) {
	map[s.charAt(i)] = s.charAt((i + 13) % 26)
    }
    s = s.toUpperCase();
    for (var i = 0; i < s.length; i++) {
	map[s.charAt(i)] = s.charAt((i + 13) % 26)
    }
    return map
}

function rot13(a) {
    if (!rot13map) {
	rot13map = rot13init()
    }
    var s = '';
    for (var i = 0; i < a.length; i++) {
	var b = a.charAt(i);
	s += ( ( ( (b >= 'A') && (b <= 'Z') ) || ( ( b >= 'a' ) && ( b <= 'z') ) ) ? rot13map[b] : b)
    }
    return s
}
