/*-- 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>');
	}

/*-- popup --*/

	function popup(url, width, height) {
		window.open(url, 'Popup', 'width=' + width + ', height=' + height + ',scrollbars=1');
	    return false;
	}

/*-- getElementsByClassName --*/

	function getElementsByClassName(strClass, strTag, objContElm) {
		strTag = strTag || "*";
		objContElm = objContElm || document;
		var objColl = objContElm.getElementsByTagName(strTag);
		if (!objColl.length &&  strTag == "*" &&  objContElm.all) objColl = objContElm.all;
		var arr = new Array();
		var delim = strClass.indexOf('|') != -1  ? '|' : ' ';
		var arrClass = strClass.split(delim);
		for (var i = 0, j = objColl.length; i < j; i++) {
			var arrObjClass = objColl[i].className.split(' ');
			if (delim == ' ' && arrClass.length > arrObjClass.length) continue;
			var c = 0;
			comparisonLoop:
			for (var k = 0, l = arrObjClass.length; k < l; k++) {
				for (var m = 0, n = arrClass.length; m < n; m++) {
					if (arrClass[m] == arrObjClass[k]) c++;
					if (( delim == '|' && c == 1) || (delim == ' ' && c == arrClass.length)) {
						arr.push(objColl[i]);
						break comparisonLoop;
					}
				}
			}
		}
		return arr;
	}

/*-- validform --*/

	function init_forms() {
		var content = document.getElementById('content');
		if(content) {
			var forms = content.getElementsByTagName('form');
			for(f=0; f<forms.length; f++) {
				init_form(forms[f]);
			}
		}
		var email_empfaenger;
		var inputs = document.getElementsByTagName('*');
		for(i=0; i < inputs.length; i++) {
			if(inputs[i].name) {
				if(inputs[i].name == 'email_empfaenger') {
					email_empfaenger = inputs[i];
				}
			}
		}
		if(email_empfaenger) {
			if(email_empfaenger.tagName.toLowerCase() == 'select') {
				var options = email_empfaenger.getElementsByTagName('option');
				for(o=0; o<options.length; o++) {
					options[o].value = options[o].value.replace(/\+at\+/g, '@');
				}
			}
			else {
				email_empfaenger.value = email_empfaenger.value.replace(/\+at\+/g, '@');
			}
		}
	}

	function init_form(form) {
		var required = getElementsByClassName('required', '*', form);
		for(i=0; i<required.length; i++) {
			required[i].oldformonblur = required[i].onblur;
			required[i].onblur = function() {
				validate(this);
				if(this.oldformonblur)
					this.oldformonblur();
			}
		}
		form.onsubmit = function() {
			var doSubmit = true;
			var list = new Array();
			var required = getElementsByClassName('required', '*', this);
			for(v=0; v<required.length; v++) {
				if(! validate(required[v])) {
					doSubmit = false;
					list.push(required[v]);
				}
			}
			var checkboxeles = getElementsByClassName('required_checkbox', '*', this);
			for(i=0; i<checkboxeles.length; i++) {
				valid = false;
				checkboxes = checkboxeles[i].getElementsByTagName('input');
				for(c=0; c<checkboxes.length; c++) {
					if(checkboxes[c].type == 'checkbox') {
						checkboxeles[i].name = checkboxes[c].name; // we need the name to check for custom_required_texts
						if(checkboxes[c].checked)
							valid = true;
					}
				}
	
				if(valid == false) {
					doSubmit = false;
					set_msg(checkboxeles[i], FORM_valid_checkbox);
					list.push(checkboxeles[i]);
				} 
				else {
					clear_msg(checkboxeles[i]);
				}
			}
			var radioeles = getElementsByClassName('required_radio', '*', this);
			for(i=0; i<radioeles.length; i++) {
				valid = false;
				radios = radioeles[i].getElementsByTagName('input');
				for(c=0; c<radios.length; c++) {
					if(radios[c].type == 'radio') {
						radioeles[i].name = radios[c].name; // we need the name to check for custom_required_texts
						if(radios[c].checked)
							valid = true;
					}
				}
	
				if(valid == false) {
					doSubmit = false;
					set_msg(radioeles[i], FORM_valid_radio);
					list.push(radioeles[i]);
				} 
				else {
					clear_msg(radioeles[i]);
				}
			}

			if(doSubmit == false) {
				show_error(list);
				return doSubmit;
			}
		}
	}

	function validate(el) {
		var valid = true;
		clear_msg(el);
		switch(el.type) {
			case 'text':
			case 'textarea':
			case 'select-one':
				if(el.value != '') {
					if(el.className.indexOf('email') > -1) {
						var regEmail = /^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/;
						if(el.value.toUpperCase().match(regEmail)){
							valid = true;
						}
						else {
							valid = false;
							set_msg(el, FORM_valid_email);
						}
					}
					if(el.className.indexOf('number') > -1) {
						if(el.value == Math.round(el.value)) {
							valid = true;
						}
						else {
							valid = false;
							set_msg(el, FORM_valid_postal_code);
						}
					}
				}
				else {
					valid = false;
					set_msg(el);
				}
				break;
		}
	
		return valid;
	}

	function set_msg(el, msg) {
		if(msg == undefined) {
			msg = el.parentNode.getElementsByTagName('span')[0].innerHTML.replace(' *', '') + ' ' + FORM_valid_required;
		}

		if(custom_required_text[el.name])
			msg = custom_required_text[el.name];

		el.errorMessage = msg;
		if(el.parentNode.className.indexOf('error') == -1)
			el.parentNode.className += ' error';
	}

	function clear_msg(el) {
		var classes = el.parentNode.className.split(' ');
		for(e=0; e<classes.length; e++) {
			if(classes[e].indexOf('error') > -1)
				classes[e] = "";
		}
		el.parentNode.className = classes.join(' ');
		el.errorMessage = "";
	}

	function show_error(list) {
		errorlist = '<ul>';
		for(i=0; i<list.length; i++) {
			el = list[i];
			if(el.errorMessage != undefined)
				errorMessage = el.errorMessage;
			else
				var errorMessage = el.parentNode.getElementsByTagName('span')[0].innerHTML.replace(' *', '') + ' ' + FORM_valid_required;
	
			errorlist += '<li>' + errorMessage + '</li>';
		};
		errorlist += '</ul>';
	
		var validationMessage = document.getElementById('validationMessage');
		validationMessage.innerHTML = '<h2 title="' + FORM_valid_error + '">' + FORM_valid_error + '</h2>' + errorlist;
		document.location.href = '#validationMessage';
	}

	$(function(){
		init_forms();
	});

/*-- search --*/

	function init_search() {
		if (document.getElementById('search')) {
			var search_string = SEARCH_value;
			var searchinput = document.getElementById('fld_search');
			searchinput.search_string = search_string;
			var searchform = document.getElementById('search');
			searchinput.onfocus = function(e) {
				if (this.value == this.search_string) {
					this.value = '';
				}
			}
			searchinput.onblur = function(e) {
				if (this.value == '') {
					this.value = this.search_string;
				}
			}
		}
	}

	$(function(){
		init_search();
	});

/*-- filter/sort selection --*/

	// Function for the special objects: Veranstaltungen, Presse, ...

	function init_selection() {
		var form_selections_obj = document.getElementById('form_selections');
		if (form_selections_obj) {
			form_selections_obj.getElementsByTagName('button')[0].style.display = 'none';
			selects = form_selections_obj.getElementsByTagName('select');
			for(i=0; i<selects.length; i++) {
				selects[i].onchange = form_selections_change;
			}
		}
	}
	
	function form_selections_change() {
		urlparm = '?';
		selects = document.getElementById('form_selections').getElementsByTagName('select');
		for(i=0; i<selects.length; i++) {
			urlparm += selects[i].name + '=' + selects[i].value;
			if (i!=selects.length-1) {
				urlparm += '&';
			}
		};
		location.href=urlparm;
	}

	$(function(){
		init_selection();
	});
	
	//STARTPAGE DOORS
	$(function(){
		$(".door").hover(function() {
      $(".content", this).show();  
    }, function() {
      $(".content", this).hide();  
    });
	});

  //SUJET MOVER	
	function moveSujet(){
    moveTime = 20000;//20000;
    fadeTime = 5000;
    fadeStart = moveTime-fadeTime-10;
    //alert("ms (" +$("#sujetmove").css("margin-left")+") " + ' #sujetmove w:' +$("#sujetmove").width()+ '+ #sujet w:' +$("#sujet").width() + '= ' + ($("#sujetmove").width()-$("#sujet").width()) +'px' );

    //MOVE
    
    $("#sujetmove")
      .stop()
      .css("margin-left","0")
      .animate( { marginLeft: -($("#sujetmove").width()-$("#sujet").width()) }, moveTime, "linear");  
    $("#sujetimg").show();              
    //FADE AFTER
    setTimeout( function() { $("#sujetimg").fadeOut(fadeTime, function() { moveSujet() }); }, fadeStart );
  }  
  
	$(function(){
    moveSujet();
	});
	
	//EVERY SECOND WORKAROUND!
	$(function(){
    $(".startpage #navbar ul li:nth-child(2), .startpage #navbar ul li:nth-child(6)").css("margin-right","221px");
    $("#content .leistungsuebersicht ul li:nth-child(even)").css("margin-left","20px");
	});
