function encodeAddress(address, msg) {
var message = msg;
var addrarray = address.split("@");
var addr = addrarray[0];
var domextcoun = addrarray[1];
var domarray = domextcoun.split(".");
var dom = domarray[0];
var ext = domarray[1];
switch(domarray.length) {
	case 2:
	// domain.com
	var coun = "";
	break;
	
	case 3:
	// domain.co.uk
	var coun = domarray[2];
	break;
	
	default:
	break;
}
var i = addr.length;
var j = Math.floor(i/2);
addr1 = addr.substring(0, j);
addr2 = addr.substring(j, i);
var i = dom.length;
var j = Math.floor(i/2);
dom1 = dom.substring(0, j);
dom2 = dom.substring(j, i);
var s = "";
s += encode(addr1) + ", ";
s += encode(addr2) + ", ";
s += encode(dom1) + ", ";
s += encode(dom2) + ", ";
s += encode(ext) + ", ";
if (coun == "")
	s += "0, "
else
	s += encode(coun) + ", ";
s += encode(message);
document.write(s);
}

function writeLink(addr1, addr2, dom1, dom2, ext, coun, disp) {
	var first = 'ma';
	var second = 'il';
	var third = 'to:';
	var at = '@';
	var address = encodeEmail(decode(addr1)) + encodeEmail(decode(addr2));
	var domain = encodeEmail(decode(dom1)) + encodeEmail(decode(dom2));
	var extension = encodeEmail(decode(ext));
	if (coun > 0)
		extension += '.' + encodeEmail(decode(coun));
	var displaytext = encodeEmail(decode(disp)); 
	document.write('<a href="');
	document.write(encodeEmail(first+second+third));
	document.write(address);
	document.write(encodeEmail(at));
	document.write(domain);
	document.write('.');
	document.write(extension);  
	document.write('">'); 
	document.write(displaytext+'</a>');
}

function writeAddressLink(addr1, addr2, dom1, dom2, ext, coun) {
	var first = 'ma';
	var second = 'il';
	var third = 'to:';
	var at = '@';
	var address = encodeEmail(decode(addr1)) + encodeEmail(decode(addr2));
	var domain = encodeEmail(decode(dom1)) + encodeEmail(decode(dom2));
	var extension = encodeEmail(decode(ext));
	if (coun > 0)
		extension += '.' + encodeEmail(decode(coun));
	document.write('<a href="');
	document.write(encodeEmail(first+second+third));
	document.write(address);
	document.write(encodeEmail(at));
	document.write(domain);
	document.write('.');
	document.write(extension);
	document.write('">');
	document.write(address);
	document.write(encodeEmail(at));
	document.write(domain);
	document.write('.');
	document.write(extension);
	document.write('</a>');
}

function writeAddress(addr1, addr2, dom1, dom2, ext, coun) {
	var at = '@';
	var address = encodeEmail(decode(addr1)) + encodeEmail(decode(addr2));
	var domain = encodeEmail(decode(dom1)) + encodeEmail(decode(dom2));
	var extension = encodeEmail(decode(ext));
	if (coun > 0)
		extension += '.' + encodeEmail(decode(coun));
	document.write(address);
	document.write(encodeEmail(at));
	document.write(domain);
	document.write('.');
	document.write(extension);  
}

function decode(code) {
	var dcode = code.toString(36);
	dcode = dcode.replace(/00/g, ".");
	dcode = dcode.replace(/11/g, "_");
	return dcode;
}

function encode(mstr) {
	mystr = mstr;
	mystr = mystr.replace(/\./g, "00");
	mystr = mystr.replace(/_/g, "11");
	var s = parseInt(mystr, 36);
	return s;
}

function encodeEmail(strAddress) {

var regEmail = strAddress.toLowerCase();
var codeEmail = "";
var regLength = regEmail.length;
        for (i = 0; i < regLength; i++) {
                var charNum = "000";
                var curChar = regEmail.charAt(i);
		charNum = curChar.charCodeAt(0);
                if (charNum == "00") {
                        codeEmail += curChar;
                }
                else {
                        codeEmail += "&#" + charNum + ";";
                }
        }
return codeEmail;
}

