/*
  Name:    Simple Anti-Spam Protection
  Version: 0.1 (06. 07. 2008)
  Author:  Roman Riska
  License: BSD License

  * Copyright (c) 2008, Roman Riska
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are met:
  *     * Redistributions of source code must retain the above copyright
  *       notice, this list of conditions and the following disclaimer.
  *     * Redistributions in binary form must reproduce the above copyright
  *       notice, this list of conditions and the following disclaimer in the
  *       documentation and/or other materials provided with the distribution.
  *     * Neither the name of the <organization> nor the
  *       names of its contributors may be used to endorse or promote products
  *       derived from this software without specific prior written permission.
  *
  * THIS SOFTWARE IS PROVIDED BY <copyright holder> ``AS IS'' AND ANY
  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  * DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY
  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/

function mailDecoder(mail) {
	var i, new_mail = new Array();

  for (i = 0; i < mail.length; i = i + 2)
	{
		if (i < mail.length - 1) {
			new_mail[i] = mail.substr(i + 1, 1);
			new_mail[i + 1] = mail.substr(i, 1);
		}
		else {
			new_mail[i] = mail.substr(i, 1);
		}
	}

	return (new_mail.join(''));
}

function anchorDecode(anchor) {
  var filter=/^[a-zA-Z0-9\.\_\-\:]+@[a-zA-Z0-9\.\-\:]+\.[a-zA-Z0-9]{1,4}$/;

  var href = anchor.getAttribute('href');
  var caption = anchor.innerHTML;

  // hyperlink is email
  if (filter.test(href)) {
    anchor.setAttribute('href', mailDecoder(href));
  }

  // hyperlink text is email
  if (filter.test(caption)) {
    anchor.innerHTML = mailDecoder(caption);
  }
}

function spamDecoder() {
  var links = document.getElementsByTagName('a');

  for (var i = 0; i < links.length; i++) {
    anchorDecode(links[i]);
  }
}
