//Diverse Elemente bei kleiner Fenstergröße verändern
function check_resolution() {
	var obj = document.getElementById('container');
	var obj2 = document.getElementById('container_small');

	if (document.body.offsetHeight < 665) {
		if(obj) {
			obj.id = 'container_small';
		}
	} else {
		if(obj2) {
			obj2.id = 'container';
		}
	}

	if (document.body.offsetWidth < 1100 && closetip == 1) {
		displayElements(tippsElements, 'none');
		document.getElementById('content').style.right = '20px';
		document.getElementById('no_tipps_bg').style.display = 'block';
	}
}
window.onresize = window.onload = check_resolution;




// TIPPS AUSBLENDEN

var tippsElements = new Array('rightcolumn', 'right_bottom_corner', 'contenteck_rechts');

function closetipps() {
	displayElements(tippsElements, 'none');
	document.getElementById('content').style.right = '20px';
	document.getElementById('no_tipps_bg').style.display = 'block';
	document.cookie = "tipps=0; path=/";
}

function opentipps() {
	displayElements(tippsElements, 'block');
	document.getElementById('content').style.right = '137px';
	document.getElementById('contenteck_rechts').style.right = '132px';
	document.getElementById('no_tipps_bg').style.display = 'none';
	document.cookie = "tipps=1; path=/";
}

var tippswaiter = window.setInterval(function() {
	if (document.body) {
		window.clearInterval(tippswaiter);
		var nameEQ = "tipps=";
		var tipps = 1;
		var ca = document.cookie.split(';');
		for(var i=0; i < ca.length; i++) {
			var c = ca[i];
			while (c.charAt(0) == ' ') c = c.substring(1, c.length);
			if (c.indexOf(nameEQ) == 0) {
				tipps = c.substring(nameEQ.length, c.length);
			}
		}

		if (Math.floor(tipps) == 0) {
			displayElements(tippsElements, 'none');
			document.getElementById('content').style.right = '0';
			document.getElementById('no_tipps_bg').style.display = 'block';
		}

		check_resolution();
	}
}, 10);

var currentSujetImage = 1;
var maxSujetImage = 4;
var milliSecondInterval = 3000;
var fadedIn = 1;
var sujetLoaded = 0;
var sujetPreloaderSet = 0;

function changeSujet() {
	var sujetimage = document.getElementById('sujetimage');
	var startsujet = document.getElementById('startsujet');

	if (sujetimage && startsujet) {
		if (sujetLoaded >= maxSujetImage) {
			currentSujetImage++;
			if (currentSujetImage > maxSujetImage) {
				currentSujetImage = 1;
			}

			if (fadedIn == 0) {
				$(sujetimage).effects({duration:400,onComplete:function(){      $(sujetimage).effects({}).set({'opacity':[1]}); }}).start({'opacity':[0,1]});
				sujetimage.src = ZMS_COMMON + '/images/startpage/sujet' + currentSujetImage + '.jpg';
				fadedIn = 1;
			} else {
				startsujet.style.background='url(' + ZMS_COMMON + '/images/startpage/sujet' + currentSujetImage + '.jpg' + ') no-repeat top left';
				$(sujetimage).effects({duration:400,onComplete:function(){      $(sujetimage).effects({}).set({'opacity':[0]}); }}).start({'opacity':[1,0]});
				fadedIn = 0;
			}
		} else {

			if (sujetPreloaderSet == 0) {
				var preloader = document.getElementById('startsujet_preloader');
				preloader.style.display = 'none';

				for (i=1; i<=maxSujetImage; i++) {
					preloader.innerHTML = preloader.innerHTML + '<img onload="sujetLoaded++;" src="' + ZMS_COMMON + '/images/startpage/sujet' + i + '.jpg" alt="" />';
				}

				sujetPreloaderSet = 1;
			}
		}

		window.setTimeout("changeSujet()", milliSecondInterval);
	}
}

window.setTimeout("changeSujet()", 1000);

function displayElements(elements, display) {
	for (i=0;i<elements.length;i++) {
		ele = document.getElementById(elements[i]);
		if (ele) {
			ele.style.display = display;
		}
	}
}


// FAQ-SCRIPT

function displayfaq(id) {
	for (i=0;i<questions.length;i++) {
		document.getElementById('question_'+questions[i]).style.display='none';
	}
	document.getElementById('question_'+id).style.display='block';
}

function closefaq() {
	for (i=0;i<questions.length;i++) {
		document.getElementById('question_'+questions[i]).style.display='none';
	}
}



// NAVIGATION

var tmp_submenuitem = '';
var oldsrc = '';

function openSub(newimage, id) {

	navitems = document.getElementById('nav').getElementsByTagName('ul');
	for (i=0; i<navitems.length; i++) {
		navitems[i].style.display = 'none';
	}

	if(oldsrc!='' && tmp_submenuitem) {
		tmp_submenuitem.src = oldsrc;
	}
	oldsrc = document.getElementById('nav_'+id).getElementsByTagName('img')[0].src;

	tmp_submenuitem = document.getElementById('nav_'+id).getElementsByTagName('img')[0];
	tmp_submenuitem.src = newimage;

	navitem = document.getElementById('navul_'+id);
	if (navitem) {
		navitem.style.display = 'block';
	}
}

function closeSub(element, id) {
	tmp_submenuitem.src = oldsrc;
	oldsrc = '';
	tmp_submenuitem = '';
	navitems = document.getElementById('nav').getElementsByTagName('ul');
	for (i=0; i<navitems.length; i++) {
		navitems[i].style.display = 'none';
	}
}




// TIPPS EIN- UND AUSBLENDEN

function getRandom(to) {
	var v = Math.round(Math.random() * to);
	return (v == to ? 0 : v);
}

function displayTipp(amount) {
	x = getRandom(amount);
	x += 1; 
	var obj = document.getElementById('tipps_sujet');
	if (obj && imagesource[x]) {
		obj.src = imagesource[x];
	}
	document.getElementById('tipp_'+item_id[x]).style.display = 'block';
}



// GALERIE

function ShowGallery(id, status) {

	for(i=0;i<gallerypix.length;i++) {
		document.getElementById('galpic_'+gallerypix[i]).style.display='none';
		document.getElementById('galnav_'+gallerypix[i]).className=' ';
	}
	document.getElementById('galpic_'+gallerypix[id]).style.display='block'
	document.getElementById('galnav_'+gallerypix[id]).className = 'active';
	document.getElementById('content').scroll = '0';
	if (status == 'nocontent') {
		document.getElementById('content').style.overflow = 'hidden';
	}
}

function closeGalPic() {
	for(i=0;i<gallerypix.length;i++) {
		document.getElementById('galpic_'+gallerypix[i]).style.display='none';
		document.getElementById('galnav_'+gallerypix[i]).className=' ';
	}
	document.getElementById('content').style.overflow = 'auto';
}



// FORMULAR-VALIDIERUNG

// deletes leading and trailing spaces in a string - adds the function directly to the String Object, so that all strings inherit this method
String.prototype.trim = function() {
    return this.replace(/(^\s*)|(\s*$)/g, '');
}

//checkEmail - needed for forms
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;
		}
	}
}

/*
validates formfields if they have a value or not
to check for other options do the following
specialfields = new Object();
specialfields.fieldname = new Object();
specialfields.fieldname.check1 = 'function_to_call,error_message';
specialfields.fieldname.check2 = 'second_function_to_call,second_error_message';
specialfields.another_fieldname = new Object();
specialfields.another_fieldname.check1 = 'function_to_call,error_message';
*/
function validateForm(form,specialfields) {
	var errors = new Array();
	var fields = form.getElementsByTagName('label');
	for (i = 0; i < fields.length; i++) {
		var span = fields[i].getElementsByTagName('span')[0];
		if (span) {
			var label = span.firstChild.data;
			label = label.trim();
			// if there is a '*' in the label - this indicates the inputfield has to be filled
			if (label.charAt(label.length - 1) == '*') {
				label = label.substring(0, label.length - 1).trim();
				// get the inputfield
				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 there is an inputfield
				if (obj_input && obj_input[0]) {
					input = obj_input[0];
					error = false;
					
					// check if the inputfield has a value
					if (!input.value || input.value.trim().length==0) {
						error = true;
						errors.push(label + ' nicht eingegeben');
					}
					
					// check the inputfield for special things (email, ...)
					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);
							}
						}
					}

					// on error give the label the className 'error' otherwise delete the className 'error' (if exists)
					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;
}

function showFormErrors (errors) {
	error_message = '';
	for (i=0;i<errors.length;i++){
		error_message += errors[i] + '\n';
	}
	alert(error_message);
}


// Lageplan-PopUp-Script

function popup(url,typ,para1,width,height) {
	attrib="";
	Y=(screen.height-width)/2;
	X=(screen.width-height)/2;
	X=Math.round(X);
	Y=Math.round(Y);
	if (para1=='CENTER') {attrib+='height='+height+',width='+width+',top='+Y+',left='+X;}
	if (typ=='TYP1') {attrib+=",scrollbars=no";}
	if (typ=='TYP2') {attrib+=",scrollbars=yes";}
	if (typ=='TYP3') {attrib+=",scrollbars=yes,menubar=yes";}
	x=Math.random();
	fenster=window.open(url,'win',attrib);
	return false;
}



// sonstige Scripts

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

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