/*******************************************************
* maskedemail.js - script to mask an email address     *
* from email harvesting crawlers.                      *
* Author: Phil Ewigton (phil.ewington@i-model.co.uk)   *
* Created: 16/03/2009                                  *
* History: 2.0 - Function written in closure to avoid  *
				 global variables. Params object for   *
				 greater control over attributes.      *
*******************************************************/

/* 
params: allows control over display text and styling.
		Default values not required, list only required
		params.
		
		var params = {
			display: 'Email Us',
			class: 'linkclass',
			style: 'font-size:11px'
		};
*/

/*jslint evil: true */

// create maskedEmail object if it does not already exist
if (!this.maskedEmail) {
	var maskedEmail = {};
}

(function () {
	
	// create the print method if not already defined
	if (typeof(maskedEmail.print) !== 'function') {
		maskedEmail.print = function (localpart, domain, params) {

			// build address string
			var address = '';
			address = '<a href="mailto:' + localpart + '@' + domain + '"';
			
			// look for params
			if (arguments.length === 3) {
				// class attribute
				if (params.classname) {
					address += ' class="' + params.classname + '"';
				}
				// style attribute
				if (params.style) {
					address += ' style="' + params.style + '"';
				}
				// alter display of link
				address += '>';
				if (params.display) {
					address += params.display;
				}
				else {
					// use address as display
					address += localpart + '@' + domain;
				}
			}
			else {
				// use address as display as default
				address += '>';
				address += localpart + '@' + domain;
			}
			// close anchor tag
			address += '</a>';
			
			// write to screen
			document.write(address);
		};
	}
})();
