/*
requires events.js
*/

var NoSpam = {
		
	/**
	 * @private
	 * @param {HTMLElement} span
	 */
	_changeAdresse: function NoSpam__changeAdresse(span) {
		/** @type NodeList */
		var spans = span.getElementsByTagName('span');
		if (spans.length < 6) {
			return;
		}
		var beforeAt = spans[1].firstChild.nodeValue;
		var afterAt = '';
		for (var i = 5; i < spans.length-1; i++) {
			afterAt += spans[i].firstChild.nodeValue;
		}
		if (spans[3].childNodes.length > 0) {
			spans[3].firstChild.nodeValue = '@';
		}
		if (!document.createElement || !span.childNodes || !span.removeChild) {
			return;
		}
		for (var j = spans.length-1; j >= 0; j--) {
			span.removeChild(spans[j]);
		}
		var link = document.createElement('a');
		link.setAttribute('href', 'mailto:'+beforeAt+'@'+afterAt);
		link.setAttribute('title', beforeAt+'@'+afterAt);
		if (span.childNodes.length > 0) {
			var text = span.childNodes[0];
			span.removeChild(text);
			link.appendChild(text);
		} else {
			link.appendChild(document.createTextNode(beforeAt+'@'+afterAt));
		}
		span.appendChild(link);
		/** @type Element */
		var parent = span.parentNode;
		if (parent.tagName.toLowerCase() == 'a' && parent.hasAttribute('href') && parent.childNodes.length == 1) {
			// remove parent link
			parent.removeChild(span);
			parent.parentNode.insertBefore(span, parent);
			parent.parentNode.removeChild(parent);
		}
	},

	/**
	 * @private
	 */
	_changeAdressen: function NoSpam__changeAdressen() {
		if (document.getElementsByTagName) {
			var spans = document.getElementsByTagName('span');
			for (var i = 0; i < spans.length; i++) {
				if (spans[i].className == 'mail') {
					NoSpam._changeAdresse(spans[i]);
				}
			}
		}
	}
};

Events.addListener(window, 'load', NoSpam._changeAdressen, false);
