// gerlindewawra.at
// common JavaScript functions
// copyright 2011 Bernhard Barkow, creativeeyes.at

var doRot13=true;

function getElementsByClass(theClass,node) { // Rob Larsen / www.drunkenfist.com
	var classElements = [], i;
	if (node == null) node = document;
	if (node.getElementsByClassName) {
		var tempCollection = node.getElementsByClassName(theClass);
		for (i = 0; i < tempCollection.length; i++) 	classElements.push(tempCollection[i]);
	} else {
		var els = node.getElementsByTagName("*"), elsLen = els.length;
		var pattern = new RegExp("(^|\\s)"+theClass+"(\\s|$)");
		for (i = 0; i < elsLen; i++) {
			if (pattern.test(els[i].className)) classElements.push(els[i]);
		}
	}
	return classElements;
}

function getElem(s) { return document.getElementById(s); }
function removeClass(o,c) {	var re=new RegExp("(s*|\\b)"+c+"(\\b|$)"); o.className = o.className.replace(re,''); }
function addClass(o,c) { var re=new RegExp("(^|\\b)"+c+"(\\b|$)"), b=!re.test(o.className); if(b) o.className += " "+c; return b; }
function toggleClass(o,s) { if (o) if (!addClass(o,s)) removeClass(o,s); }
function hasClass(o,s) { if (!o) return; var c = o.className;
	return (c.length > 0 && (c == s || new RegExp("(^|\\s)" + s + "(\\s|$)").test(c)));
}

//contact
function emd(a, m) {
	var hr=a.href;
	var ad=hr.replace(/.*contact.*?\?([a-z0-9._%-]+)\+([a-z0-9._%-]+)\+([a-z.]+)/i, '$1'+'@'+'$2'+'.'+'$3');
	if (hr!=ad) {
		ad = (m ? str_rot13(ad, m) : ad);
		a.setAttribute('href','mailto:'+ad);
		if (hasClass(a,'shm')) a.firstChild.nodeValue=ad;
		a.title='E-Mail senden';
	}
}
function initEm() {
	var a=document.getElementsByTagName('a'), map = null;
	if (doRot13) map = initRot13();
	for (var i=0; i<a.length; i++) { emd(a[i], map); }//.onclick=emd; }
}

function initRot13() { // Roel Van Gils 2007, alistapart/gracefulemailobfuscation
	var map = new Array(), s = "abcdefghijklmnopqrstuvwxyz", n=s.length;
	for (var i=0; i<n; i++) map[s.charAt(i)] = s.charAt((i+13)%26);
	for (var i=0; i<n; i++) map[s.charAt(i).toUpperCase()] = s.charAt((i+13)%26).toUpperCase();
	return map;
}
function str_rot13(a,map) {
	var s = "", b;
	for (var i = 0 ; i < a.length ; i++) {
		b = a.charAt(i);
		s += (b>='A' && b<='Z' || b>='a' && b<='z' ? map[b] : b);
	}
	return s;
}

// initialization
var tmpOnload = window.onload;
window.onload = function(){
	if (typeof(tmpOnload) == "function"){
		try{ tmpOnload(); } catch(e){}
	}
	initEm();
}

