// JavaScript Document
function decode(text1, text2, text3, ccs, pre) {
      document.write('<a href="' + 'mailto:' + text1 + '@' + text2 + '.' + text3 + '" class="' + ccs + '">' + pre + text1 + '@' + text2 + '.' + text3 + '</a>');
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}


// JavaScript Document

/*
	--------------------------------------------------------------------------
	Version: 1.02
	Release date: 13/05/2006
	Last update: 07/01/2007

	(c) 2006 SpamSpan (www.spamspan.com)

	This program is distributed under the terms of the GNU General Public
	Licence version 2, available at http://www.gnu.org/licenses/gpl.txt
	--------------------------------------------------------------------------
*/

var spamSpanMainClass		= 'spamspan';
var spamSpanUserClass		= 'u';
var spamSpanDomainClass		= 'd';
var spamSpanAnchorTextClass = 't';

/*
	--------------------------------------------------------------------------
	Do not edit past this point (unless you know what you are doing).
	--------------------------------------------------------------------------
*/

// load SpamSpan
addEvent(window, 'load', spamSpan);

function spamSpan() {
	var allSpamSpans = getElementsByClass(spamSpanMainClass, document, 'span');
	for (var i=0; i<allSpamSpans.length; i++) {
		// get data
		var user = getSpanValue(spamSpanUserClass, allSpamSpans[i]);
		var domain = getSpanValue(spamSpanDomainClass, allSpamSpans[i]);
		var anchorText = getSpanValue(spamSpanAnchorTextClass, allSpamSpans[i]);
		// create new anchor tag
		var at = String.fromCharCode(32*2);
		var email = cleanSpan(user) + at + cleanSpan(domain);
		var anchorTagText = document.createTextNode(anchorText ? anchorText : email);
		var mto = String.fromCharCode(109,97,105,108,116,111,58);
		var anchorTag = document.createElement('a');
			anchorTag.className = spamSpanMainClass;
			anchorTag.setAttribute('href', mto + email);
			anchorTag.appendChild(anchorTagText);
		// replace the span with anchor
		allSpamSpans[i].parentNode.replaceChild(anchorTag, allSpamSpans[i]);
	}
}

function getElementsByClass(searchClass, scope, tag) {
	var classElements = new Array();
	if (scope == null) node = document;
	if (tag == null) tag = '*';
	var els = scope.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\s)"+searchClass+"(\s|$)");
	for (var i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

function getSpanValue(searchClass, scope) {
	var span = getElementsByClass(searchClass, scope, 'span');
	if (span[0]) return span[0].firstChild.nodeValue;
	else return false;
}

function cleanSpan(string) {
	// string = string.replace(//g, '');
	// replace variations of [dot] with .
	string = string.replace(/[\[\(\{]?[dD][oO0][tT][\}\)\]]?/g, '.');
	// replace spaces with nothing
	string = string.replace(/\s+/g, '');
	return string;
}

function addEvent(obj, type, fn) {
	if (obj.addEventListener)
		obj.addEventListener(type, fn, false);
	else if (obj.attachEvent)
	{
		obj['e' + type + fn] = fn;
		obj[type + fn] = function() { obj['e' + type + fn](window.event); }
		obj.attachEvent('on' + type, obj[type + fn]);
	}
}

function cssValue (obj,value) {
	if(document.getComputedStyle) {
		return document.getComputedStyle(obj,"").getPropertyValue(value);
	} else {
		
		if(obj.currentStyle) {
			return obj.currentStyle[value];
		}
	}
	return false;
}

function getAbsoluteXPos(id) {
	var x = 0;
	var obj = document.getElementById(id);
	var o = document.getElementById(id);
	while (obj != null) {
		x += obj.offsetLeft;
		// den Rahmen vom eigentlichen Element nicht mitzï¿½hlen
		// da geht es ja los und Opera macht es sowieso
		if(!/opera/i.test(navigator.userAgent) && obj != o) {
			var bL = 0;
		
			// fï¿½r Safari / FF 
			if(!/msie/i.test(navigator.userAgent)) {                        
				bL = parseInt(cssValue(obj,"border-left-width"));
			} else { // IE
				bL = parseInt(cssValue(obj,"borderLeftWidth"));
			}
			// IE 6 gibt NaN zurï¿½ck wenn kein Rahmen existiert
			if (bL) x = x+bL;
		};
		obj = obj.offsetParent;
	}
	return x;
}

function getAbsoluteYPos(id) {
	var y = 0;
	var obj = document.getElementById(id);
	var o   =   document.getElementById(id);
	while (obj != null) {
		y += obj.offsetTop;
		// den Rahmen vom eigentlichen Element nicht mitzï¿½hlen
		// da geht es ja los und Opera macht es sowieso
		if(!/opera/i.test(navigator.userAgent) && obj != o) {
			var bT = 0;
		
			// fï¿½r Safari / FF 
			if(!/msie/i.test(navigator.userAgent)) {                        
				bT = parseInt(cssValue(obj,"border-top-width"));
			} else { // IE
				bT = parseInt(cssValue(obj,"borderTopWidth"));
			}
			
			// IE 6 gibt NaN zurï¿½ck wenn kein Rahmen existiert
			if(bT)  y = y+bT;
		};

		obj = obj.offsetParent;
	}
	return y;
}

function showAdvancedSearch(id, parent, offset_top, offset_left, lnk) {
	var y = getAbsoluteYPos(parent);
	var x = getAbsoluteXPos(parent);
	var obj = document.getElementById(id);
	var obj2 = document.getElementById(parent);
	if (typeof(lnk) != 'undefined') {
		var link = document.getElementById(lnk);
	}
	if (obj.style.display != 'block') { 
		obj.style.display = 'block';
		obj.style.position = 'absolute';
		if (typeof(offset_left) != 'undefined') {
			x = x+offset_left;
		}
		if (typeof(offset_top) != 'undefined') {
			y = y+offset_top;
		}
		obj.style.left = x+'px';
		obj.style.top = y + obj2.offsetHeight+'px';
		if (link) {
			link.style.display = 'none';
		}
	} else {
		obj.style.display='none';
		if (link) {
			link.style.display = 'block';
		}
	}
}

function showHideKat(obj, img) {
	img=document.getElementById(img);
	obj = document.getElementById(obj); 
	if (obj.style.display=='none') { 
		obj.style.display = '';
		img.src = "/img/closeList.png";
	} else {
		obj.style.display = 'none';
		img.src = "/img/openList.png";
	}
}

function evalScript(scripts)
{	try
	{	if(scripts != '')	
		{	var script = "";
			scripts = scripts.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi, function(){
	       	                         if (scripts !== null) script += arguments[1] + '\n';
 	        	                        return '';});
			if(script) (window.execScript) ? window.execScript(script) : window.setTimeout(script, 0);
		}
		return false;
	}
	catch(e)
	{	alert(e)
	}
}

function interpretRequest(request,element) {
	/*
	* 0 = uninitialized
    * 1 = loading
    * 2 = loaded
    * 3 = interactiv
    * 4 = complete
	*/
	switch (request.readyState) {
		// wenn der readyState 4 und der request.status 200 ist, dann ist alles korrekt gelaufen
		case 4:
			if (request.status != 200) {
				alert("Fehler "+request.status+": Es gab einen Fehler bei der Datenabfrage!");
			} else {
				result = request.responseText;
				document.getElementById(element).innerHTML = result;
				evalScript(result);
			}
			break;
		default:
			break;
	}
}

function ajaxRequest(method,url,element,requestString) {
	if (window.XMLHttpRequest) {
		request = new XMLHttpRequest(); // Mozilla, Safari, Opera
	} else if (window.ActiveXObject) {
		try {
			request = new ActiveXObject('Msxml2.XMLHTTP'); // IE 5
		} catch (e) {
			try {
				request = new ActiveXObject('Microsoft.XMLHTTP'); // IE 6
			} catch (e) {}
		}
	}

	if (!request) {
		alert("Ihr Browser unterstützt kein Active Javascript!");
		return false;
	} else {
		request.open(method, url, true);
		request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=iso-8859-1');
		request.send(requestString);
		request.onreadystatechange = function(){interpretRequest(request,element);};
	}
}

function generateRequest(form_id, additional, exclusive_additional, exclusive_append) {
	requestStr = '';
	form = null;
	if (typeof additional == 'undefined')
		additional = '';
	if (typeof exclusive_additional == 'undefined')
		exclusive_additional = '';
	if (typeof exclusive_append == 'undefined')
		exclusive_append = false;
	if ((typeof form_id != 'undefined') && (form_id.length > 0)) {
		form = document.getElementById(form_id);
	}
	
	if (form != null) {	
		for (i = 0; i < form.elements.length; i++) {
			elem = form.elements[i];
			key = form.elements[i].name;
			if (key != ''){
				switch (elem.type) {
					case 'select-one':
						requestStr += key + '=' + encodeURIComponent(elem.value) + '&';
						break;
					case 'text':
					case 'hidden':
					case 'password':
					case 'textarea':
						requestStr += key + '=' + encodeURIComponent(elem.value) + '&';
						break;
					case 'radio':
						if (elem.checked) {
							requestStr += key + '=' + encodeURIComponent(elem.value) + '&'
						}
						break;
					case 'checkbox':
						if (elem.checked) {
							requestStr += key + '=' + encodeURIComponent(elem.value) + '&'
						}
						break;
				}
			}
		}
	}
	
	if (exclusive_append == false) {
		if (requestStr.length > 0) {
			requestStr = requestStr.substr(0, requestStr.length-1);
			additional = '&' + additional;
		}
		return requestStr+additional;
	} else {
		if (exclusive_additional.length > 0) {
			additional = '&' + additional;
		}
		return exclusive_additional+additional;
	}
}

function search_switch_item(menu_id, base_id, li_item, page) {
	menu_obj = document.getElementById(menu_id);
	li_neu = document.getElementById(li_item);
	div_neu = document.getElementById(li_item+'div');
	node_count = 0;
	for (i = 0; i < menu_obj.childNodes.length; i++) {
		if (menu_obj.childNodes[i].nodeName == "LI")
			node_count++;
	}
	for (i = 0; i < node_count; i++) {
		li_alt = document.getElementById(base_id+(i+1));
		li_alt.style.backgroundColor = '#E6E6E6';
		li_alt.style.color = 'black';
		div_alt = document.getElementById(base_id+(i+1)+'div');
		div_alt.style.display = 'none';
	}
	if (page == 'unt')
		li_neu.style.backgroundColor = '#FF0198';
	else
		li_neu.style.backgroundColor = '#2906A2';
	li_neu.style.color = 'white';
	div_neu.style.display = '';
}

function search_laender_suche(selectId, menu_id, base_id, li_item, page) {
	selectObj = document.getElementById(selectId);
	if (selectObj.options[selectObj.selectedIndex].value == "1") {
		search_switch_item(menu_id, base_id, li_item, page);
	} else {
		search_switch_item(menu_id, base_id, base_id+'1', page);
	}
}

function switch_umkreis_suche(isUmkreis, land, plz) {
	if (isUmkreis == 0) {
		document.getElementById(land).style.display = '';
		document.getElementById(plz).style.display = 'none';
	} else {
		document.getElementById(land).style.display = 'none';
		document.getElementById(plz).style.display = '';
	}
}

function submitSearch(form,lang) {
	ort = form.ort;
	if ((ort != null) && (ort.selectedIndex == 1)) {
		plz = form.plz.value;
		if(!plz.match(/^[0-9]{4}$/)) {
			if (lang == 'de')
				alert("Bitte geben Sie eine gültige PLZ ein!");
			else
				alert("Please enter a valid zip code!");
			return false;
		}
		umkreis = form.umkreis.value;
		if((umkreis != '') && (!umkreis.match(/^\d+((,|\.)?\d+)?$/))) {
			if (lang == 'de')
				alert("Der Umkreis muss eine gültige ganze Zahl sein!");
			else
				alert("Please enter a valid zip code!");
			return false;
		}
	}
	form.submit();
}

function submitByEnter(event,form,lang) {
	if ((event && event.which==13)||(window.event&&window.event.keyCode==13)) {
		submitSearch(form,lang);
	} else {
		return true;
	}
}

function submitForm_bew(lang) {
		if(validateForm_bew(lang)) {
			document.form_bew.submit();
		}
}

function validateForm_bew(lang) {
	if(!document.form_bew.elements['jobs[]'].length) {
		if(document.form_bew.elements['jobs[]'].checked) {
			return true;	
		}
	}
	for(i=0;i<document.form_bew.elements['jobs[]'].length;i++) {
		if(document.form_bew.elements['jobs[]'][i].checked) {
			return true;	
		}
	}
	if (lang == 'de')
		alert("Bitte wählen Sie mindestens einen Job aus!");
	else
		alert("Please choose at least one job!");
	return false;			
}

function submitForm_unt(lang) {
		if(validateForm_unt(lang)) {
			document.form_unt.submit();
		}
}

function validateForm_unt(lang) {
	if(	
		document.form_unt.firma.value.length=="" ||
		document.form_unt.ansprech.value.length=="" ||
		document.form_unt.address.value.length=="" ||
		document.form_unt.telefon.value.length=="" ||
		document.form_unt.fax.value.length=="" ||
		document.form_unt.stellenbeschreibung.value.length=="" ||
		document.form_unt.email.value.length=="" 	
	) {
		if (lang == 'de')
			alert("Bitte füllen Sie alle Felder aus!");
		else
			alert("Please fill out all fields!");
		return false;
	}

	return true;			
}

function showInfoForm() {
	document.getElementById('infoForm').style.display = '';
}

function addMetaTag(name, content){
	var meta;
	if (document.createElement && (meta = document.createElement('meta'))) {
		// set properties
		meta.name = name;
		meta.content = content;

		// now add the meta element to the head
		document.getElementsByTagName('head').item(0).appendChild(meta);
	}
}

function showHideMenu(id) {
	obj = document.getElementById(id);
	if (getStyleById(id, 'display') == 'none') {
		obj.style.display = 'block';
	} else {
		obj.style.display = 'none';
	}
}

function getStyleById(i, p) {
	var n = document.getElementById(i);
	var s = eval("n.style." + p);

	// try inline
	if((s != "") && (s != null)) {
		return s;
	}

	// try currentStyle
	if(n.currentStyle) {
		var s = eval("n.currentStyle." + p);
		if((s != "") && (s != null)) {
			return s;
		}
	}
	
	// try computedStyle
	if (window.getComputedStyle) {
		var s = document.defaultView.getComputedStyle(n,null).getPropertyValue(p);
		if((s != "") && (s != null)) {
			return s;
		}
	}
	
	return '';
}

function showMapInfo(e, id, file, param) {
	obj = document.getElementById(id);
	
	mousePos = getMousePosition(e);	
	x = mousePos[0];
	y = mousePos[1];
	clearTimeout(obj.showInfoId);
	
	obj.showInfoId = setTimeout("showMapInfoDoIt('"+id+"', '"+file+"', '"+param+"', "+x+","+y+")", 1000);
}

function showMapInfoDoIt(id, file, param, x, y) {
	obj = document.getElementById(id);
	obj.style.display = 'block';
	obj.style.left = (x + 10) + 'px';
	obj.style.top = (y + 10) + 'px';
	obj.param = param;
	obj.innerHTML = '';
	ajaxRequest('post', file, id, 'param='+param);
	
	hideMapInfo(id);
}

function hideMapInfo(id) {
	obj = document.getElementById(id);
	clearTimeout(obj.hideInfoId);
	obj.hideInfoId = setTimeout("hideMapInfoDoIt('"+id+"')", 3000);
}

function hideMapInfoDoIt(id) {
	obj = document.getElementById(id);
	obj.style.display = 'none';
}

function cancelShowMapInfo(id) {
	obj = document.getElementById(id);
	clearTimeout(obj.showInfoId);
}

function getMousePosition(e) {
	var posx = 0;
	var posy = 0;
	if (!e) var e = window.event;
	if (e.pageX || e.pageY) 	{
		posx = e.pageX;
		posy = e.pageY;
	}
	else if (e.clientX || e.clientY) 	{
		posx = e.clientX + document.body.scrollLeft
			+ document.documentElement.scrollLeft;
		posy = e.clientY + document.body.scrollTop
			+ document.documentElement.scrollTop;
	}

	return new Array(posx, posy);
}

function showConsultant(source) {
	clickedBtn = document.getElementById(source);
	clickedBtn .style.backgroundColor = '#858585';
	
	if (source == 'firstContactBtn') {
		bBtn = document.getElementById('beraterBtn');
		bBtn.style.backgroundColor = '#FF0198';
	} else {
		fcBtn = document.getElementById('firstContactBtn');
		fcBtn.style.backgroundColor = '#FF0198';
	}	
	
	hideCarreerHotline();
	jobfnd = document.getElementById('jobfinder');
	cons = document.getElementById('consultant');
	btm = document.getElementById('loungeBottom');
	
	jobfnd.style.display = 'none';
	btm.style.display = 'none';
	cons.style.display = 'block';
}

function hideConsultant() {
	jobfnd = document.getElementById('jobfinder');
	btm = document.getElementById('loungeBottom');
	cons = document.getElementById('consultant');
	
	fcBtn = document.getElementById('firstContactBtn');
	fcBtn.style.backgroundColor = '#FF0198';
	
	bBtn = document.getElementById('beraterBtn');
	bBtn.style.backgroundColor = '#FF0198';
	
	jobfnd.style.display = 'block';
	btm.style.display = 'block';
	cons.style.display = 'none';
}

function showJobFacts() {
	facts = document.getElementById('jobfacts');
	persp = document.getElementById('jobperspective');
	factsBtn = document.getElementById('jobfactsbtn');
	perspBtn = document.getElementById('jobperspectivebtn');
	
	facts.style.display = 'block';
	factsBtn.style.backgroundColor = '#858585';
	persp.style.display = 'none';
	perspBtn.style.backgroundColor = '#FF0198';
}

function showJobPerspective() {
	facts = document.getElementById('jobfacts');
	persp = document.getElementById('jobperspective');
	factsBtn = document.getElementById('jobfactsbtn');
	perspBtn = document.getElementById('jobperspectivebtn');
	
	facts.style.display = 'none';
	factsBtn.style.backgroundColor = '#FF0198';
	persp.style.display = 'block';
	perspBtn.style.backgroundColor = '#858585';
}

function showForwardJob() {
	blnk = document.getElementById('blanket');
	fwd = document.getElementById('forwardjob');
	resp = document.getElementById('forwardResponse');
	
	fwd.style.display = 'block';
	blnk.style.display = 'block';
	resp.style.display = 'none';
}

function hideForwardJobShowResponse() {
	resp = document.getElementById('forwardResponse');
	resp.style.display = 'block';
	
	setTimeout("hideForwardJob()", 2000);
}

function hideForwardJob() {
	blnk = document.getElementById('blanket');
	fwd = document.getElementById('forwardjob');
	resp = document.getElementById('forwardResponse');
	
	fwd.style.display = 'none';
	blnk.style.display = 'none';
	resp.style.display = 'none';
}

function showCarreerHotline() {
	btm = document.getElementById('loungeBottom');
	htln = document.getElementById('carreerhotline');
	
	btm.style.display = 'none';
	htln.style.display = 'block';
	
	btn = document.getElementById('carreerhotlinebtn');
	btn.style.backgroundColor = '#858585';
}

function hideCarreerHotline() {
	btm = document.getElementById('loungeBottom');
	htln = document.getElementById('carreerhotline');	
	
	btm.style.display = 'block';
	htln.style.display = 'none';
	
	btn = document.getElementById('carreerhotlinebtn');
	btn.style.backgroundColor = '#FF0198';
}

function checkForwardJob() {
	submitForm = true;
	errorInRow = new Array(false, false);
	if (!checkMail(document.getElementById("senderEmail").value)) {
		document.getElementById("senderEmailError").innerHTML = 'Ung&uuml;ltige E-Mail Adresse!';
		errorInRow[0] = true;
		submitForm = false;
	} else {
		document.getElementById("senderEmailError").innerHTML = '';
	}
	
	if (!checkMail(document.getElementById("recipientEmail").value)) {
		document.getElementById("recipientEmailError").innerHTML = 'Ung&uuml;ltige E-Mail Adresse!';
		errorInRow[0] = true;
		submitForm = false;
	} else {
		document.getElementById("recipientEmailError").innerHTML = '';
	}
	
	senderName = trim(document.getElementById("senderName").value);
	if (senderName.length == 0) {
		document.getElementById("senderNameError").innerHTML = 'Bitte ausf&uuml;llen!';
		errorInRow[1] = true;
		submitForm = false;
	} else {
		document.getElementById("senderNameError").innerHTML = '';
	}
	
	
	recipientName = trim(document.getElementById("recipientName").value);
	if (recipientName.length == 0) {
		document.getElementById("recipientNameError").innerHTML = 'Bitte ausf&uuml;llen!';
		errorInRow[1] = true;
		submitForm = false;
	} else {
		document.getElementById("recipientNameError").innerHTML = '';
	}
	
	additionalHeight = 0;
	if (errorInRow[0]) {
		additionalHeight += 15;
	}
	if (errorInRow[1]) {
		additionalHeight += 15;
	}
	
	document.getElementById("forwardjob").style.height = (356 + additionalHeight) + 'px';
	document.getElementById("forwardjob").style.marginTop = (-178 - Math.round(additionalHeight/2)) + 'px';
	return submitForm;
}

function checkMail(s) {
	var a = false;
	var res = false;
	if(typeof(RegExp) == 'function') {
		var b = new RegExp('abc');
		if(b.test('abc') == true){a = true;}
	}
	
	if(a == true) {
		reg = new RegExp('^([a-zA-Z0-9\\-\\.\\_]+)'+
				   '(\\@)([a-zA-Z0-9\\-\\.]+)'+
				   '(\\.)([a-zA-Z]{2,4})$');
		res = (reg.test(s));
	} else {
		res = (s.search('@') >= 1 &&
			s.lastIndexOf('.') > s.search('@') &&
			s.lastIndexOf('.') >= s.length-5);
	}
	return(res);
}

function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}
