/* ***************************************************** *
 *                                                       *
 *  JavaScript by Florian "flowtron" Schulte             *
 *  Copyright 2008, 2009                                 *
 *                                                       *
 * ***************************************************** */

/* --------------------------------------------------------------------------------------------------- */

var nav_n = navigator.appName;
var nav_v = parseInt(navigator.appVersion);

var NS = ((nav_n == "Netscape") && (nav_v >= 4));
var IE = ((nav_n == "Microsoft Internet Explorer") && (nav_v >= 4));
var OP = ((nav_n == "Opera") && (nav_v >= 7));

var isDOM=document.getElementById?1:0;
var isNS4=navigator.appName=='Netscape'&&!isDOM;

var pagelang = "en";

/* --------------------------------------------------------------------------------------------------- */

/* --------------------------------------------------------------------------------------------------- */
function setLanguage(lang) { pagelang = lang; }
/* --------------------------------------------------------------------------------------------------- */

function getel(id, style)
{
	var handle = null;
	if(document.all) // is IE
	{
		var handle = eval("document.all." + id);
		if(style)  if(handle && handle.style) handle = handle.style;
		if(!handle) { var el = document.getElementById(id); if(style==1) handle = el.style; else handle = el; }
	}
	else
	{
		// is NS 4 or below .. or is DOM
		if(document.layers) handle = document.layers[id];
		else
		{
			if(document.getElementById) // DOM
			{
				var el = document.getElementById(id);
				if(el) { if(style==1) handle = el.style; else handle = el; } 
			}
		}
	}
	return handle;
}

function update_el(el, content)
{
	try {
		if (el != null) 
			el.innerHTML = content; 
		else
			document.write ("update_html :: [invalid ELEMENT '" + el.nodeName + "']"); 
	} catch(e) { document.write("update_el :: [" + el.nodeName + "] : " + e); }
}

function update_html(tid, content) 
{
	try {
		var it = getel(tid, 0); 
		if (it != null) it.innerHTML = content; 
		else document.write ("update_html :: [invalid ID #" + tid + "]"); 
	} catch(e) { document.write("update_html :: [" + tid + "] : " + e); }
}

/* --------------------------------------------------------------------------------------------------- */
// quirksmode.org
function findPos(obj) 
{
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		do {
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		} while (obj = obj.offsetParent); // = != == - I know! :)
	}
	return [curleft,curtop];
}
/* --------------------------------------------------------------------------------------------------- */

var ACKbutton = '<br><p align="center"><input type="button" class="field" value="Best&auml;tigen" onclick="AckMessage()"></p>';

function AckMessage() 
{
	var mc = getel("message"); 
	if (mc) { 
		mc.innerHTML = ""; 
		mc.setAttribute("class", "MessagesOff");
	}
}

function SetMessage(msg) 
{ 
	var mc = getel("message", 0); 
	if (mc) { 
		mc.innerHTML = msg + ACKbutton; 
		var ep = findPos(mc); 
		window.scrollTo(ep[0], ep[1]); 
		mc.setAttribute("class", "MessagesSee");
	} else alert(msg);
}

/* --------------------------------------------------------------------------------------------------- */

var call = Array();
call[call.length] = Array("htfQRc", "", "A EH GC", "B IE AA IE");
call[call.length] = Array("htfQRs", "", "A EH GC", "B IE AA IF");
call[call.length] = Array("htfVc", "@EJ", "EH GC", "B IE AA IE");
call[call.length] = Array("htfVs", "@EJ", "EH GC", "B IE AA IF");

var mehl = Array();
mehl[mehl.length] = Array("jro", "jroznfgre", "cebfbyib", "pbz");
mehl[mehl.length] = Array("htf", "Qe.Fpuhygr", "cebfbyib", "pbz");
mehl[mehl.length] = Array("sybj", "Sybevna.Fpuhygr", "cebfbyib", "pbz");

function chr(cc) { return String.fromCharCode(cc); }

function un_num17(s)
{
	var r = new String();
	for(var i = 0; i < s.length; i++) 
	{
		var ci = s.substring(i, i+1);
		var cc = ci.charCodeAt(0);
		var tc = (cc==32) ? 32 : 43;
		if(cc>=65 && cc<=74) tc = cc - 17;
		r += String.fromCharCode(tc);
	}
	return r;
}

function un_rot13(s)
{
	var r = new String();
	for(var i = 0; i < s.length; i++) 
	{
		var ci = s.substring(i, i+1);
		var cc = ci.charCodeAt(0);
		var bv = 0;
		if(cc>=65 && cc<=90) bv = 64;
		if(cc>=97 && cc<=122) bv = 97;
		if(bv)
		{
			var tc = cc + 13;
			if(tc >= bv + 26) tc = bv + (tc - (bv + 26));
			r += String.fromCharCode(tc);
		} else r += ci;
	}
	return r;
}

var callend = Array("", "&#160;", "&#160;-&#160;", "");

function fix_call()
{
	var i;
	var allSPANs = document.getElementsByTagName("span");
	var findCALL = /call./
	var findSPCE = /\ /
	var replCALL = Array();
	for(i = 0; i < call.length; i++)
	{
		var rc = call[i];
		var c = Array();
		c[0] = un_rot13(rc[0]);
		var tocontent = "";
		for(var j=1; j<rc.length; j++) tocontent += un_num17(rc[j]) + callend[j]; // non-I18L-calls have &#160; at front *shrug*
		replCALL[i] = Array(c[0], tocontent);
	}
	for(i = 0; i < allSPANs.length; i++)
	{
		var potCand = (allSPANs[i].id!="");
		if(potCand)
		{
			var foundCALL = findCALL.test(allSPANs[i].id);
			if(foundCALL)
			{
				var thisCALL = allSPANs[i];
				var fndPOS = thisCALL.id.search(findCALL);
				if(fndPOS == 0)
				{
					var restCALL = thisCALL.id.substring(4);
					for(var j = 0; j < replCALL.length; j++)
					{
						if(replCALL[j][0] == restCALL)
						{
							update_el(thisCALL, replCALL[j][1]);
							thisCALL.id = 'fixed'+restCALL; // avoid redoing this tag
						}
					}
				}
			}
		}
	}
}

var totag = Array(60, 97, 32, 104, 114, 101, 102, 61, 34, 109, 97, 105, 108, 116, 111, 58);
var tagto = Array(32, 23, 17);
var toend = Array(60, 47, 97, 62);

function fix_mehl()
{
	var i;
	var allSPANs = document.getElementsByTagName("span");
	var findMEHL = /mehl./
	var findSPCE = /\ /
	var replMEHL = Array();
	var nameMEHL = Array();
	var endsitall = "";
	for(var te = 0; te < toend.length; te++) endsitall += chr(toend[te]);
	for(i = 0; i < mehl.length; i++)
	{
		var rc = mehl[i];
		var c = Array();
		for(var j=0; j<rc.length; j++) c[j] = un_rot13(rc[j]);
		var tocontent = "";
		var contentto = "";
		for(var tc = 0; tc < totag.length; tc++) tocontent += chr(totag[tc]);
		for(var ct = 0; ct < tagto.length; ct++) contentto += c[ct + 1] + chr(tagto[ct] * 2);
		var spandc = contentto.substr(0,contentto.length-1);
		tocontent += contentto + chr(62);
		replMEHL[i] = Array(tocontent, spandc);
		nameMEHL[i] = c[0];
	}
	for(i = 0; i < allSPANs.length; i++)
	{
		var potCand = (allSPANs[i].id!="");
		if(potCand)
		{
			var foundMEHL = findMEHL.test(allSPANs[i].id);
			if(foundMEHL)
			{
				var thisMEHL = allSPANs[i];
				var fndPOS = thisMEHL.id.search(findMEHL);
				if(fndPOS == 0)
				{
					var restMEHL = thisMEHL.id.substring(4);
					for(var j = 0; j < nameMEHL.length; j++)
					{
						if(nameMEHL[j] == restMEHL)
						{
							var val = thisMEHL.innerHMTL == "" ? replMEHL[j][1] : thisMEHL.innerHTML;
							var lnk = replMEHL[j][0] + val + endsitall;
							update_el(thisMEHL, lnk);
							thisMEHL.id = 'fixed'+restMEHL; // avoid redoing this tag
						}
					}
				}
			}
		}
	}
}

/* --------------------------------------------------------------------------------------------------- */

function init_page()
{
	fix_mehl();
	fix_call();
}

function addLoadEvent(func) {
	if(window.addEventListener)
	{
		// W3C Compliant
		window.addEventListener('load', function () { func(); }, false);
	}
	else
	{
		// Microsoft Way
		window.attachEvent('onload', function() { func(); });
	}
}

addLoadEvent(init_page);

/* --------------------------------------------------------------------------------------------------- */

// Angus Turnbull : iePNGfix v2.0 Alpha 3 : http://www.twinhelix.com/css/iepngfix/
if (document.all 
	&& /MSIE (5\.5|6)/.test(navigator.userAgent) 
	&& document.styleSheets 
	&& document.styleSheets[0] 
	&& document.styleSheets[0].addRule)
document.styleSheets[0].addRule('.pngfix', 'behavior: url(/iepngfix.htc)');
 
/* --------------------------------------------------------------------------------------------------- */

/* --------------------------------------------------------------------------------------------------- */

/* --------------------------------------------------------------------------------------------------- */

