/*-- swap image --*/
function swapImage(element, newimage) {
	var oldsrc = element.src
	element.src = newimage
	if (!element.onmouseout)
		element.onmouseout = function (event) { swapImage(this, oldsrc); };
}

/*-- spam protection --*/
function getAdr(prefix, postfix, text) {
	document.write('<a href="mailto:' + prefix + '@' + postfix + '">' + (text ? text.replace(/&quot;/g, '"').replace(/%EMAIL%/, prefix + '@' + postfix) : prefix + '@' + postfix) + '</a>');
}

/*-- trim --*/
String.prototype.trim = function() {
	return this.replace(/(^\s*)|(\s*$)/g, '');
}

/*-- check e-mail --*/
function checkEmail(val) {
	if (val) {
		var usr = "([a-zA-Z0-9][a-zA-Z0-9_.-]*|\"([^\\\\\x80-\xff\015\012\"]|\\\\[^\x80-\xff])+\")";
		var domain = "([a-zA-Z0-9][a-zA-Z0-9._-]*\\.)*[a-zA-Z0-9][a-zA-Z0-9._-]*\\.[a-zA-Z]{2,5}";
		var regex = "^"+usr+"\@"+domain+"$";
		var myrxp = new RegExp(regex);
		var check = (myrxp.test(val));
		if (check!=true) {
			return false;
		}
		else {
			return true;
		}
	}
}

/*-- validate form --*/
function validateForm(form,specialfields) {
	var errors = new Array();
	var fields = form.getElementsByTagName('span');
	for (i = 0; i < fields.length; i++) {
		var span = fields[i].getElementsByTagName('label')[0];
		if (span && span.firstChild) {
			var label = span.firstChild.data;
			label = label.trim();
			if (label.charAt(label.length - 1) == '*') {
				label = label.substring(0, label.length - 1).trim();
				var obj_input = fields[i].getElementsByTagName('input');
				if (!obj_input[0])
					obj_input = fields[i].getElementsByTagName('select');
				if (!obj_input[0])
					obj_input = fields[i].getElementsByTagName('textarea');
				if (obj_input && obj_input[0]) {
					input = obj_input[0];
					error = false;
					if (!input.value || input.value.trim().length==0) {
						error = true;
						errors.push(label);
					}
					if (!error && specialfields[input.name]){
						specialfield = specialfields[input.name];
						for (check in specialfield){
							check_function = specialfield[check].split(',')[0];
							check_message = specialfield[check].split(',')[1];
							if (!eval(check_function)(input.value)){
								error = true;
								errors.push(label + ' ' + check_message);
							}
						}
					}
					if (error) {
						className = fields[i].className;
						if (className.length>0){
							className = className + ' ';
						}
						fields[i].className = className + 'error';
					}
					else {
						className = fields[i].className;
						if (className.indexOf('error')>-1) {
							className = className.replace(' error', '');
							className = className.replace('error', '');
							fields[i].className = className;
						}
					}
				}
			}
		}
	}
	return errors;
}
myObjects = new Object();
function showFormErrors (errors, form) {
	error_message = '';
	if (form) {
		$(form);
		error_message = '<strong>' + lang + '</strong><ul>';
		for (i=0;i<errors.length;i++) {
			error_message += '<li>' + errors[i] + '</li>';
		}
		error_message += '</ul>';
		if (!myObjects.errorDiv) {
			myObjects.errorDiv = new Element('div', {'id':'formErrors'});
			myObjects.errorDiv.injectTop(form);
		}
		myObjects.errorDiv.innerHTML = error_message;
		location.href='#formErrors';
	}
	else {
		for (i=0;i<errors.length;i++) {
			error_message += errors[i] + '\n';
		}
	alert(error_message);
	}
}

/*-- title fix --*/
window.addEvent('domready', function() {
	var tags = new Array('a', 'img', 'h1');
	for(t=0; t<tags.length; t++) {
		var eles = document.getElementsByTagName(tags[t]);
		for(var i = 0; i < eles.length; i++) {
			if(eles[i].className.indexOf('tip') == -1) {
				eles[i].removeAttribute('title');
				eles[i].removeAttribute('alt');
			}
		}
	}
});

/*-- navigation --*/
window.addEvent('domready', function() {
	if (document.getElementById('nav')) {
		var nav = document.getElementById('nav');
		var imgs = nav.getElementsByTagName('img');
		for(i=0; i<imgs.length; i++) {
			imgs[i].removeAttribute('onmouseover');
			if(imgs[i].src.indexOf('_n.') > -1) {
				imgs[i].onmouseover = function(e) {
					this.src = this.src.split('_n').join('_h');
				}
				imgs[i].onmouseout = function(e) {
					this.src = this.src.split('_h').join('_n');
				}
			}
		}
	}
});

/*-- sections --*/
window.addEvent('domready', function() {
	if (document.getElementById('section_overview')) {
		var nav = document.getElementById('section_overview');
		var as = nav.getElementsByTagName('a');
		for(i=0; i<as.length; i++) {
			as[i].onmouseover = function(e) {
				var imgs = this.getElementsByTagName('img');
				for(i=0; i<imgs.length; i++) {
					imgs[i].src = imgs[i].src.split('_n').join('_h');
				}
			};
			as[i].onmouseout = function(e) {
				var imgs = this.getElementsByTagName('img');
				for(i=0; i<imgs.length; i++) {
					imgs[i].src = imgs[i].src.split('_h').join('_n');
				}
			}
		}
	}
});

/*-- input focus --*/
window.addEvent('domready', function() {
	if (document.getElementById('content'))
		var form = document.getElementById('content').getElementsByTagName('form')[0];
	if(form) {
		var elements = new Array('button', 'textarea', 'input', 'select');
		for(a=0;a<elements.length;a++) {
			var inputs = form.getElementsByTagName(elements[a]);
			if(inputs.length > 0) {
				for(i=0;i<inputs.length;i++) {
					if(inputs[i].type != 'hidden') {
						inputs[i].onfocus = function(e) { this.className='focus'; }
						inputs[i].onblur = function(e) { this.className='nofocus'; }
					}
				}
				i = 0;
				while(inputs[i].type == 'hidden') {
					i++;
				}
			}
		}
	}
});

/*-- tooltip --*/
window.addEvent('domready', function() {
	var myTips = new Tips('.tip', {
		className: 'tooltip'
	});
});

/*-- resize --*/
function checkResolution() {
	removeContentPadding();
	if (document.getElementById('back2overview')) {
		var back2overview = document.getElementById('back2overview');
		if (document.body.offsetHeight < 500 && back2overview) back2overview.style.top='32px';
		else if (back2overview) back2overview.style.top='175px';
		}
	if (document.getElementById('title-sp')) {
		var titlesp = document.getElementById('title-sp');
		if (document.body.offsetHeight < 500 && titlesp) titlesp.style.top='114px';
		else if (titlesp) titlesp.style.top='225px';
		}
	if (document.getElementById('title')) {
		var title = document.getElementById('title');
		if (document.body.offsetHeight < 500 && title) title.style.top='31px';
		else if (title) title.style.top='175px';
		}
	if (document.getElementById('title-function')) {
		var titlef = document.getElementById('title-function');
		if (document.body.offsetHeight < 500 && titlef) titlef.style.top='31px';
		else if (titlef) titlef.style.top='165px';
		}
	if (document.getElementById('content-sp')) {
		var contentsp = document.getElementById('content-sp');
		if (document.body.offsetHeight < 500 && contentsp) contentsp.style.top='94px';
		else if (contentsp) contentsp.style.top='205px';
		}
	if (document.getElementById('content-overview')) {
		var contentoverview = document.getElementById('content-overview');
		if (document.body.offsetHeight < 500 && contentoverview) contentoverview.style.top='0px';
		else if (contentoverview) contentoverview.style.top='161px';
		}
	if (document.getElementById('content')) {
		var content = document.getElementById('content');
		if (document.body.offsetHeight < 500 && content) content.style.top='0px';
		else if (content) content.style.top='152px';
		content.style.paddingRight = '0px';
		shrinkContentOnTeamPage();
		}
	if (document.getElementById('content-function')) {
		var contentf = document.getElementById('content-function');
		if (document.body.offsetHeight < 500 && contentf) contentf.style.top='0px';
		else if (contentf) contentf.style.top='144px';
		}
	if (document.getElementById('nav')) {
		var nav = document.getElementById('nav').getElementsByTagName('ul')[0];
		if (document.body.offsetHeight < 500 && nav) nav.style.top='210px';
		else if (nav) nav.style.top='364px';
		}
	if (document.getElementById('image')) {
		var image = document.getElementById('image');
		if (document.body.offsetHeight < 500 && image) image.style.display='none';
		else if (image) image.style.display='';
		}
	setTimeout("setContentPadding()", 10);
	}
var contents = new Array('content', 'content-sp', 'content-function');
function removeContentPadding() {
	for(i=0; i<contents.length; i++) {
		obj = document.getElementById(contents[i]);
		if(obj) {
			obj.style.paddingRight = '0px';
			}
		}
	}
function setContentPadding() {
	for(i=0; i<contents.length; i++) {
		obj = document.getElementById(contents[i]);
		if(obj) {
			if(contents[i] == 'content-sp') {
				obj.style.paddingRight = '25px';
				}
			else {
				obj.style.paddingRight = '20px';
				}
			}
		}
	}
window.addEvent('domready', function() {
	checkResolution();
});
window.onresize = checkResolution;

/*--- Team Resize ---*/
function shrinkContentOnTeamPage() {
	var add = 100;
	var main_box = $('main_box');
	var mitarbeiter_flash = $('mitarbeiter_flash');
	var mitarbeiter_flash_container = document.getElementById('mitarbeiter_flash_container');
	var content = $('content');
	var title = $('title');
	var back2overview = $('back2overview');
	if(content && mitarbeiter_flash) {
		var maintop = main_box.getTop();
		content.style.top = (content.getTop()-maintop+add) + "px";
		back2overview.style.top = (back2overview.getTop()-maintop+add) + "px";
		title.style.top = (title.getTop()-maintop+add) + "px";

		//no flash!
		if(mitarbeiter_flash_container.tagName == 'DIV' && 0) {
			var mitarbeiter_flash = $('mitarbeiter_flash');
			if(mitarbeiter_flash) {
				var divs = mitarbeiter_flash.getElementsByTagName('div');
				for(i=0; i<divs.length; i++) {
					if(divs[i].parentNode.id == "mitarbeiter_flash") {
						divs[i].style.display = 'block';
					}
				}
			}
		}
		else {
			if(document.body.offsetHeight < 680) {
				mitarbeiter_flash_container.style.marginTop = "-14px";
				title.style.top = (title.getTop()-maintop-57) + "px";
				back2overview.style.top = (back2overview.getTop()-maintop-57) + "px";
				content.style.top = (content.getTop()-maintop-44) + "px";
				content.style.borderTop = "35px solid #ececec";
			}
			else {
				mitarbeiter_flash_container.style.marginTop = "0px";
				content.style.borderTop = "65px solid #ececec";
			}
		}
	}
}

/*--- Team Javascript Variant ---*/

function showPartnerText(number) {
	var mitarbeiter_flash = $('mitarbeiter_flash');
	if(mitarbeiter_flash) {
		var divs = mitarbeiter_flash.getElementsByTagName('div');
		for(i=0; i<divs.length; i++) {
			if(divs[i].parentNode.id == "mitarbeiter_flash") {
				divs[i].style.display = 'none';
			}
		}
	}

	var text = document.getElementById('ma'+number);
	if(text) {
		text.style.display = 'block';
	}
}

var employees = new Array();
var morphine = new Array(); //saves Morph references for each image
window.addEvent('domready', function() {
	if($('mitarbeiter_flash_container')) {
		$$('.member_information .member').each(function(member, i) {
			var eles = member.getChildren();
			employees[i] = new Object();
			eles.each(function(el, s) {
				employees[i][el.className.toLowerCase()] = el.innerHTML;
			});
		});

		var cont = $('mitarbeiter_flash_container');

		var employeesPos = new Array(0, 107, 218, 324, 418);
		employees.each(function(el, i) {
			var newdiv = new Element('div');
			var newimg = new Element('img');
			newdiv.inject(cont, 'top');
			newdiv.setStyles({
				position: 'absolute',
				bottom: '20px',
				left: (200 + employeesPos[i])
			});
			newdiv.addEvent('mouseover', function() {
				teamActivateMe(this);
			});
			newdiv.addEvent('mouseout', function() {
				teamShowAll(this);
			});
			newdiv.number = i;
			newimg.src = el['imagecloseurl'];
			newimg.inject(newdiv, 'bottom');
			morphine[i] = new Fx.Morph(newdiv, { wait: false, duration: 200 });
		});

		showPartnerText(0);
	}
});

function teamActivateMe(div) {
	showPartnerText(div.number + 1);

	var divs = $$('#mitarbeiter_flash_container div');
	divs.each(function(el, i) {
		if(div.number == i) {
			morphine[i].start({
				"opacity": 1
			});
		}
		else {
			morphine[i].start({
				"opacity": 0.5
			});
		}
	});
}

function teamShowAll(div) {
	showPartnerText(0);

	var divs = $$('#mitarbeiter_flash_container div');
	divs.each(function(el, i) {
		morphine[i].start({
			"opacity": 1
		});
	});
}

