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


/*--- Formular Bestellung AB Oberlaa ---*/

//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;
		}
	}
}


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);
}


function check_order(start, end) {
	var ausgaben = new Array();
	var ausgaben_error = new Array();
	var counter = 0;
	var counter_error = 0;
	var error_message = '';

	for (i=start; i<=end; i++) {
		if (document.getElementById('checkbox_'+i).checked == true) {
			if (document.getElementById('anzahl_'+i).value) {
				ausgaben[counter] = document.getElementById('anzahl_'+i).value;
				counter += 1;
			} else {
				ausgaben_error[counter_error] = 'Bitte geben Sie beim Jahrgang '+i+' eine Anzahl an!';
				counter_error += 1;
			}
		}
	}

	if (ausgaben.length == 0 && ausgaben_error.length == 0) {
		errors.push('Bitte geben Sie den gewünschten Jahrgang und die Anzahl an!');
	}

	if (ausgaben_error.length > 0) {
		for (j=0; j<=ausgaben_error.length; j++) {
			if (ausgaben_error[j]) {
				errors.push(ausgaben_error[j]);
			}
		}
	}
}




/*-- swap image --*/

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

/*-- popup --*/

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

/*-- getElementsByClassName --*/

	function getElementsByClass(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, '@');
				}
				email_empfaenger.onchange = function() {
					var options = this.getElementsByTagName('option');
					for(o=1; o<options.length; o++) {
						if(options[o].selected) {
							var location_data = $($('.form_locations>div')[o-1]).find('span');
							var form = this.parentNode;
							while(form.tagName.toLowerCase() != 'form') {
								form = form.parentNode;
							}
							for(i=0; i<location_data.length; i++) {
								if(location_data[i].title != 'location_id') {
									form['to_' + location_data[i].title].value = location_data[i].innerHTML;
								}
							}
						}
					}
				}
				email_empfaenger.onchange();
			}
			else {
				email_empfaenger.value = email_empfaenger.value.replace(/\+at\+/g, '@');
			}
		}

		// check for form_application
		var url = document.location.href;
		if(url.indexOf('job_title') > -1 && document.getElementById('form_application')) {
			var spliturl = url.split('?');
			var splitparams = spliturl[1].split('&');
			var params = new Object();
			for(i=0; i<splitparams.length; i++) {
				var splitvalues = splitparams[i].split('=');
				params[splitvalues[0]] = splitvalues[1];
			}

			if(params['job_title'] && params['location_id'] && $("select[name='email_empfaenger']").length > 0) {
				$('.job input')[0].value = params['job_title'];
				$('.form_locations>div').each(function(i) {
					$(this).find('span').each(function(s) {
						if(this.title == 'location_id' && this.innerHTML == params['location_id']) {
							$("select[name='email_empfaenger'] option")[i+1].selected = true;
							$("select[name='email_empfaenger']")[0].disabled = true;
						}
					});
				});
				$("select[name='email_empfaenger']")[0].onchange();
			}
		}
		    if($(".ordertable").length) {
      $(".ordertable").closest("form").submit(function(event){
        if(!$(".ordertable input:checked").length) {
          alert("Bitte wählen sie einen Jahrgang aus!");
          event.preventDefault();
        }
        else {
          $(".ordertable input:checked").each(function(){    
            val = $("#anzahl_"+$(this).val() ).val();
            if( isNaN ( val ) || val == "" ) {
              alert("Bitte geben Sie eine gültige Anzahl für den Jahrgang " + $(this).val() + " ein." );
              event.preventDefault();
            }
          });
        }
      });
    }
	}

	function init_form(form) {
		var required = getElementsByClass('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 = getElementsByClass('required', '*', this);
			for(v=0; v<required.length; v++) {
//				alert(v);
				if(! validate(required[v])) {
					doSubmit = false;
					list.push(required[v]);
				}
			}
			var checkboxeles = getElementsByClass('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 = getElementsByClass('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();
	});            




  
/*-- display elements onmouseover --*/

	var hover_links = new Array();
	hover_links.push(new Array('fontchange', 'fontsize'));
	// To add more links, follow the same pattern
	// hoverLinks.push(new Array('linkid', 'elementid'));

	function init_show_elements() {
		for (i = 0; i < hover_links.length; i++) {
			var link = document.getElementById(hover_links[i][0]);
			if (link) {
				link.el = document.getElementById(hover_links[i][1]);
				if (link.el) {
					link.onmouseover = function() {
						this.el.style.display = 'block';
					};
					link.onmouseout = function() {
						this.el.style.display = 'none';
					}
					link.onclick = function() {
						return false;
					}
				}
			}
		}
	}

	$(function(){
		init_show_elements();
	});

/*-- filter/sort tables --*/

	function init_table_sort() {
		var tables = document.getElementsByTagName('table');
		for(t=0; t<tables.length; t++) {
			if(tables[t].className.indexOf('sortable') > -1) {
				tables[t].data = new Array();
				// check column descriptions
				tables[t].columndesc = new Array();
				tables[t].filterstrings = new Array();
				var ths = tables[t].getElementsByTagName('thead')[0].getElementsByTagName('th');
				for(th=0; th<ths.length; th++) {
					var col = new Object();
					col['name'] = ths[th].innerHTML;
					col['settings'] = new Object();
					var settings = ths[th].className.split(' ');
					for(set=0; set<settings.length; set++) {
						col['settings'][settings[set]] = 1;
					}
					tables[t].columndesc.push(col);

					if(ths[th].title) {
						tables[t].filterstrings[th] = ths[th].title.replace('%', col['name']);
					}
				}
				// check values
				tables[t].columntagnames = new Array(); // so we can support td and th
				var trs = tables[t].getElementsByTagName('tbody')[0].getElementsByTagName('tr');
				for(tr=0; tr<trs.length; tr++) {
					var trdata = new Array();
					var tds = trs[tr].getElementsByTagName('*');
					if(tds.length > 0) {
						for(td=0; td<tds.length; td++) {
							if(tds[td].tagName.toLowerCase() == 'td' || 
								tds[td].tagName.toLowerCase() == 'th') {

								// get rid of script tags
								if(tds[td].getElementsByTagName('script').length > 0) {
									var scripts = tds[td].getElementsByTagName('script');
									for(script=0; script<scripts.length; script++) {
										scripts[script].parentNode.removeChild(scripts[script]);
									}
								}

								trdata.push(tds[td].innerHTML);

								if(tables[t].columntagnames.length < tables[t].columndesc.length) {
									tables[t].columntagnames.push(tds[td].tagName.toLowerCase()); // save tagname so we can reproduce it later
								}
							}
						}
						tables[t].data.push(trdata);
					}
				}
				// now create control panel depending on settings of colum descriptions
				tables[t].panel = document.createElement('div');
				tables[t].panel.className = 'panel';
				tables[t].parentNode.insertBefore(tables[t].panel, tables[t]);
				// * sortable
				var sorter = document.createElement('select');
				sorter.className = 'sort';
				for(col=0; col<tables[t].columndesc.length; col++) {
					var coldesc = tables[t].columndesc[col];
					if(coldesc['settings']['sort']) {
						var opt = new Option(TABLESORT_sort + ' ' + coldesc['name'], col);
						sorter.options[sorter.options.length] = opt;
					}
				}
				if(sorter.options.length > 0)
					tables[t].panel.appendChild(sorter);
				// * ascending / descending
				var ascdesc = document.createElement('select');
				ascdesc.className = 'ascdesc';
				var ascdesc_values = new Array(TABLESORT_asc, TABLESORT_desc);
				for(c=0; c<ascdesc_values.length; c++) {
					var opt = new Option(ascdesc_values[c], c);
					ascdesc.options[ascdesc.options.length] = opt;
				}
				if(sorter.options.length > 0)
					tables[t].panel.appendChild(ascdesc);
				// * filter
				for(col=0; col<tables[t].columndesc.length; col++) {
					var coldesc = tables[t].columndesc[col];
					var coldfilterstring = tables[t].filterstrings[col];
					if(coldesc['settings']['filter']) {
						var filter = document.createElement('select');
						filter.col = col; // save to which column this filter belongs to
						filter.className = 'filter';
						var opt = new Option(coldfilterstring ? coldfilterstring : TABLESORT_showall.replace('STRING', coldesc['name']), '');
						filter.options[filter.options.length] = opt;
						var words = new Object();
						for(d=0; d<tables[t].data.length; d++) {
							if(coldesc['settings']['list']) {
								var tempdiv = document.createElement('div');
								tempdiv.innerHTML = tables[t].data[d][col];
								var lis = tempdiv.getElementsByTagName('li');
								for(li=0; li<lis.length; li++) {
									words[lis[li].innerHTML] = 1;
								}
							}
							else {
								words[tables[t].data[d][col]] = 1;
							}
						}
						for(w in words) {
							var opt = new Option(TABLESORT_showonly.replace('STRING', w), w);
							filter.options[filter.options.length] = opt;
						}
						tables[t].panel.appendChild(filter);
					}
				}
				// * onchange function
				var selects = tables[t].panel.getElementsByTagName('select');
				tables[t].panel.table = tables[t]; // save table in panel
				for(s=0; s<selects.length; s++) {
					selects[s].onchange = function() {
						table_sort(this.parentNode.table, (this.className.indexOf('filter') > -1 ? 'filter_only' : ''));
					}
					selects[s].onclick = selects[s].onchange;
				}

				if(tables[t].className.indexOf('no_initial_sort') == -1) {
					table_sort(tables[t]);
				}
			}
		}
	}

	function table_sort(table, options) {
		if(options == undefined)
			options = "";

		var stable = document.createElement('table'); // sortable table
		stable.data = table.data;
		stable.columndesc = table.columndesc;
		stable.columntagnames = table.columntagnames;
		stable.panel = table.panel;
		stable.panel.table = stable; // save table in panel
		stable.className = table.className;

		// get info of which column should be sorted, and which filter should be applied
		stable.sortbycol = 0;
		stable.ascdesc = 0; // ascending
		stable.ascdesc_select;
		stable.sort_select;
		stable.filtercol = new Array();
		var selects = stable.panel.getElementsByTagName('select');
		for(s=0; s<selects.length; s++) {
			if(selects[s].className.indexOf('sort') > -1) {
				stable.sortbycol = selects[s].value;
				stable.sort_select = selects[s];
			}

			if(selects[s].className.indexOf('filter') > -1) {
				stable.filtercol[selects[s].col] = selects[s].value;
			}

			if(selects[s].className.indexOf('ascdesc') > -1) {
				stable.ascdesc = selects[s].value;
				stable.ascdesc_select = selects[s];
			}
		}

		if(options.indexOf('filter_only') == -1) {
			// sort
			// we'll do a little trick here; we simply copy the col values in front, sort it, and then drop the first col again
			for(d=0; d<stable.data.length; d++) {
				stable.data[d].unshift(stable.data[d][stable.sortbycol]);
			}
			stable.data.sort();
			if(stable.ascdesc == 1) { // ascending (0) or descending (1)?
				stable.data.reverse();
			}
			for(d=0; d<stable.data.length; d++) {
				stable.data[d].shift();
			}
		}

		// clone colgroups
		var colgroups = table.getElementsByTagName('colgroup');
		if(colgroups.length > 0) {
			var colgroup = colgroups[0].cloneNode(true);
			stable.appendChild(colgroup);
		}

		// draw header
		var thead = document.createElement('thead');
		stable.appendChild(thead);
		var tr = document.createElement('tr');
		thead.appendChild(tr);
		for(c=0; c<stable.columndesc.length; c++) {
			if(!stable.columndesc[c]['settings']['hide']) {
				var th = document.createElement('th');
				th.innerHTML = stable.columndesc[c]['name'];
				th.col = c; // save which column this th belongs to
				th.table = stable; // save my parent table
				tr.appendChild(th);
				if(stable.sortbycol == c) {
					if(stable.ascdesc == 0) {
						th.className = 'sort_asc';
					}
					else {
						th.className = 'sort_desc';
					}
				}
				if(stable.columndesc[c]['settings']['sort']) {
					th.className += ' sortable';
					th.onclick = function() {
						var tbl = this.table;
						if(tbl.sortbycol == this.col) {
							tbl.ascdesc_select.value = (tbl.ascdesc_select.value == 0 ? 1 : 0);
						}
						stable.sort_select.value = this.col;
						table_sort(tbl);
					}
				}
			}
		}

		// draw body, but only rows that are allowed by filter, and not hidden
		var tbody = document.createElement('tbody');
		stable.appendChild(tbody);
		for(d=0; d<stable.data.length; d++) {
			var tr = document.createElement('tr');
			var show = 1;
			for(c=0; c<stable.columndesc.length; c++) {
				var td = document.createElement(stable.columntagnames[c]);

				if(!stable.columndesc[c]['settings']['hide'])
					tr.appendChild(td);

				td.innerHTML = stable.data[d][c];

				if(stable.columndesc[c]['settings']['filter'] &&  stable.filtercol[c] != "") {
					if(stable.columndesc[c]['settings']['list']) {
						var lis = td.getElementsByTagName('li');
						var correct = 0;
						for(li=0; li<lis.length; li++) {
							if(lis[li].innerHTML == stable.filtercol[c]) {
								correct++;
							}
						}
						if(correct == 0)
							show = 0;
					}
					else {
						if(td.innerHTML != stable.filtercol[c]) {
							show = 0;
						}
					}
				}
			}

			if(show)
				tbody.appendChild(tr);
		}

		// insert new table, delete old table
		table.parentNode.insertBefore(stable, table);
		table.parentNode.removeChild(table);
	}

	$(function(){
		init_table_sort();
		if($('.accordion').length) {
      $('.accordion').accordion({ autoheight: true, active: false, alwaysOpen: false, header: 'div.toggler' });
    }
	});   


              
	/* nav height fix */

	$(function() {
		$('#nav li').hover(function() {
			if($(this).find('ul').length) {
				var ul = $(this).find('ul')[0];
				$(ul).removeClass('navbottom');
				ul.style.marginBottom = 0 + 'px';
				var parent = ul;
				var offset = 0;
				while(parent) {
					offset += parent.offsetTop;
					parent = parent.offsetParent;
				}

				if(ul.origOffset == undefined) {
					ul.origOffset = offset;
				}

				if(document.body.offsetHeight - 20 < (offset + $(ul).height())) {
					$(ul).addClass('navbottom');
					var parent = ul;
					var offset = 0;
					while(parent) {
						offset += parent.offsetTop;
						parent = parent.offsetParent;
					}
					if(offset < 0) {
						ul.style.marginBottom = offset + 'px';
					}
				}
				else {
					$(ul).removeClass('navbottom');
				}
			}
		});
	});



	/* search word highlighting */

	$(function() {
		var url = document.location.href;
		var ref = document.referrer;
		if(ref.indexOf('%') > -1) {
			ref = decodeURI(ref);
		}
		if(ref.indexOf('words=') > -1 && url.indexOf('words=') == -1) {
			var words = ref.split('words=');
                        if(words[1].indexOf('&') == -1) {
                                words = words[1].split(';'); // if navigating to another page, params are separated by ; instead of &
                        }
                        else {
                                words = words[1].split('&');
                        }
                    	words = words[0].split('+');
			for(w=0; w<words.length; w++) {
				var word = words[w];

				var realels = document.getElementById('content').getElementsByTagName('*');
				var els = new Array(); // make a real array, otherwise .length is increased while making changes
				for(e=0; e<realels.length; e++) {
					els.push(realels[e]);
				}
				for(e=0; e<els.length; e++) {
					var el = els[e];
					if(el.hasChildNodes()) {
						var realkids = el.childNodes;
						var kids = new Array();
						// make a real array, otherwise childNodes.length is increased while making changes
						for(i=0; i<realkids.length; i++) {
							kids.push(realkids[i]);
						}
						for(i=0; i<kids.length; i++) {
							if(kids[i].nodeType == 3) { // textnode
								if(kids[i].data.toLowerCase().indexOf(word.toLowerCase()) > -1) {
									// get real word
									var pos = kids[i].data.toLowerCase().indexOf(word.toLowerCase());
									var origword = kids[i].data.substr(pos, word.length);
									// split and fill in <span>s
									var remainingtext = kids[i].data.split(origword);
									for(r=0; r<remainingtext.length; r++) {
										var newtextnode = document.createTextNode(remainingtext[r]);
										el.insertBefore(newtextnode, kids[i]);
										if(r <remainingtext.length-1) {
											var newelement = document.createElement('span');
											newelement.innerHTML = origword;
											newelement.className = "searchhighlight";
											newelement.style.color = "red";
											newelement.style.background = "yellow";
											el.insertBefore(newelement, kids[i]);
										}
									}
									el.removeChild(kids[i]);
								}
							}
						}
					}
				}
			}

			// scroll to first found word
			setTimeout("scrollFirstHighlight()", 500);
		}
	});

	$(function() {
		if($('#stichwort .infolist_toplink').length) {
			$('#stichwort .infolist_toplink').click(function() {
				$('#content').animate({scrollTop: 0}, 500);
				return false;
			});
		}
	});

	function scrollFirstHighlight() {
		if($('.searchhighlight').length) {
			$('#content').animate({scrollTop: $('.searchhighlight').position().top}, 500);
		}
	}
	
	
	/*-- clogroup fix ---*/
  $(function() {
    table = $('table#stichwort');
    if( table.length > 0 ) {
        $('tr :nth-child(2n)', table).css('background-color', '#ccc');
    }
  });