// PopUps aufrufen
function PopUp(src,w,h)
{
	if(w > screen.width-100)
	{
		h = Math.round((screen.width-100)/w*h);
		w = (screen.width-100);
	}
	if(h > screen.height-200)
	{
	    w = Math.round((screen.height-200)/h*w);
		h = (screen.height-200);
	}

	breite = Math.round((screen.width - w) / 2);
	hoehe = Math.round((screen.height - h) / 2);

	window.open(src,"popwin","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=auto,resizable=no,width="+w+",height="+h+",top="+hoehe+",left="+breite);
}

// Druckansicht
function PrintView(src,w,h)
{
	var breite = (screen.width - w) / 2;
	var hoehe = (screen.height - h) / 2;
	window.open(src,"printview","toolbar=yes,location=no,directories=no,status=no,menubar=yes,scrollbars=yes,resizable=yes,width="+w+",height="+h+",top="+hoehe+",left="+breite);
}

// Formulare leeren
function ClearForm(Formular)
{
	document.forms[Formular].reset(); // Zuerst reset!
	var x = 0;
	while(document.forms[Formular].elements[x])
	{
		if(document.forms[Formular].elements[x].type == "checkbox" || document.forms[Formular].elements[x].type == "radio")
		{
			// Checkboxen + Radiobuttons werden nicht angehakt
			document.forms[Formular].elements[x].checked = false;
		}
		else if(document.forms[Formular].elements[x].type != "hidden" && document.forms[Formular].elements[x].type != "submit" && document.forms[Formular].elements[x].type != "reset" && document.forms[Formular].elements[x].type != "button")
		{
			// Alle, ausser versteckte Felder, dürfen geleert werden
			document.forms[Formular].elements[x].value = "";
		}
		x++;
	}
}

// Zum Anfang der Seite scrollen
function ScrollToTop()
{
	var y = 0;

	if(window.pageYOffset) y = window.pageYOffset;
	else
	if(document.body && document.body.scrollTop) y=document.body.scrollTop;

	while(y > 0)
	{
		setTimeout("window.scrollBy(0,-20)",10);
		y = y-5;
	}
}

// Seite zu den Favoriten
function MakeFavorite(title,url)
{
	if((navigator.appName == "Microsoft Internet Explorer") && (parseInt(navigator.appVersion) >= 4))
	{
		window.external.AddFavorite(url,title)
	}
	else if(navigator.appName == "Netscape")
	{
		alert("Unsere Homepage können Sie manuell oder\nmit den Tasten STRG+D zu den Favoriten hinzufügen.");
	}
}

// Bilder vorladen, mit PreloadImages('bild1.jpg','bild2.gif'); aufrufen
function PreloadImages()
{
	document.Vorladen = new Array();
	if(document.images)
	{
		for(var i=0; i<PreloadImages.arguments.length; i++)
		{
			document.Vorladen[i] = new Image();
			document.Vorladen[i].src = PreloadImages.arguments[i];
		}
	}
}

function gObj(id)
{
	if(typeof document.getElementById(id) == 'object' && document.getElementById(id) != null)
	{
		return document.getElementById(id);
	}
	else if(document.getElementsByName)
	{
		var namedObjects = document.getElementsByName(id);
		if(typeof namedObjects != 'undefined' && namedObjects.length)
		{
		    return namedObjects[0];
		}
	}
}


var nrAnswer = 0;

function addAnswer(text)
{
	nrAnswer++;
	if(text == undefined) text = '';

	// Funktioniert nicht im FF:
	//if(gObj('answers')) gObj('answers').insertAdjacentHTML('BeforeEnd','<div id="answer'+nrAnswer+'"><a href="javascript:void(0);" onClick="delAnswer('+nrAnswer+');">löschen</a><br><textarea name="p[answers][]" class="tfield" style="width:300px; height:40px;">'+text+'</textarea><div class="halfSpace"></div></div>');

	// Funktioniert nicht korrekt im FF:
	//if(gObj('answers')) gObj('answers').innerHTML = gObj('answers').innerHTML+'<div id="answer'+nrAnswer+'"><a href="javascript:void(0);" onClick="delAnswer('+nrAnswer+');">löschen</a><br><textarea name="p[answers][]" class="tfield" style="width:300px; height:40px;">'+text+'</textarea><div class="halfSpace"></div></div>';

	// Funktioniert bei FF, IE, NS:
	aDiv = document.createElement("div");
	aDiv.id = 'answer'+nrAnswer;

	inDiv1 = document.createElement("div");
	inDiv1.className = 'floatL';
	inDiv1.style.width = '15px';
	inDiv1.innerHTML = '<b>'+nrAnswer+'.</b>';

	inDiv2 = document.createElement("div");
	inDiv2.className = 'floatL';
	
	inDiv3 = document.createElement("div");
	inDiv3.className = 'clear';

	aA = document.createElement("a");
	aA.href = 'javascript:void(0);';
	aA.onclick = new Function("delAnswer("+nrAnswer+")");

	aDelImg = document.createElement("img");
	aDelImg.src = 'images/blank.gif';
	aDelImg.className = 'iDelete';
	aDelImg.align = 'absmiddle';
	aDelImg.alt = 'entfernen';
	aA.appendChild(aDelImg);

	aTextarea = document.createElement("textarea");
	aTextarea.value = text;
	aTextarea.setAttribute('NAME','p[quest][answers][]'); // NAME bitte in Grossbuchstaben wegen IE
	aTextarea.name = 'p[quest][answers][]';
	aTextarea.className = 'tfield';
	aTextarea.style.width = '300px';
	aTextarea.style.height = '40px';
	aTextarea.style.verticalAlign = 'middle';

	aSpace = document.createElement("div");
	aSpace.className = 'halfSpace';

	// Anwort zusammenfügen

	inDiv2.appendChild(aTextarea);
	inDiv2.appendChild(document.createTextNode(" "));
	inDiv2.appendChild(aA);

	aDiv.appendChild(inDiv1);
	aDiv.appendChild(inDiv2);
	aDiv.appendChild(inDiv3);
// 	aDiv.appendChild(aTextarea);
// 	aDiv.appendChild(document.createTextNode(" "));
// 	aDiv.appendChild(aA);
	aDiv.appendChild(aSpace);

	gObj('answers').insertBefore(aDiv, gObj('newAnswer'));

    setNumbers();

	if(text == '') aTextarea.focus();
}

function delAnswer(nr)
{
	if(gObj('answer'+nr)) gObj('answers').removeChild(gObj('answer'+nr));
	setNumbers();
}

function delAnswers(nr)
{
	if(gObj('answer'+nr)) gObj('answers').removeChild(gObj('answer'+nr));
}

// Nummeriert die Antwortmöglichkeiten neu durch
function setNumbers()
{
	interncount = 1;
	for (i=interncount; i <= nrAnswer; i++)
	{
		if(document.getElementById('answer'+i) != null)
		{
			document.getElementById('answer'+i).getElementsByTagName('div')[0].innerHTML = '<b>'+interncount+'.</b>';
			interncount++;
		}
	}
}

function delAllAnswers()
{
	for(i=1; i<=nrAnswer; i++)
	{
	    delAnswers(i);
	}
	nrAnswer = 0;
}

function showAreas(areas)
{
	areasSelected = "";
	for(i=0; i<areas.options.length; i++)
	{
	    if(areas.options[i].selected == true)
		{
		    if(areasSelected == "")
				areasSelected += ""+areas.options[i].text;
			else
				areasSelected += ", "+areas.options[i].text;
		}
	}

	gObj('showAreas').innerHTML = areasSelected;
}

// Bei Enter soll Formular gesendet werden
function sendByEnter(e)
{
	if(!e)
	{
		e = window.event;
	}

	if(e.which)
	{
		key = e.which;
	}
	else if(e.keyCode)
	{
		key = e.keyCode;
	}

	if(key == 13){
		document.forms[0].submit();
		return true;
	}
}

function helpTip(content,autowidth)
{
	return Tip(content,
			BGCOLOR,'#FFFFCC',
			BORDERCOLOR,'#F2E336',
			DELAY,100,
			FOLLOWMOUSE,false,
			FONTFACE,'Arial,Tahoma',
			FONTSIZE,'12px',
			PADDING,8,
			SHADOW,true,
			SHADOWCOLOR,'#999777',
			SHADOWWIDTH,3,
			WIDTH,(autowidth ? 0 : 400)
			);
}

function toolTip(content,autowidth)
{
	return Tip(content,
			BGCOLOR,'#FFFFFF',
			BORDERCOLOR,'#AAAAAA',
			DELAY,500,
			FOLLOWMOUSE,false,
			FONTFACE,'Arial,Tahoma',
			FONTSIZE,'12px',
			PADDING,8,
			SHADOW,true,
			SHADOWCOLOR,'#999999',
			SHADOWWIDTH,3,
			WIDTH,(autowidth ? 0 : 400)
			);
}

function contextTip(content,autowidth)
{
	return Tip(content,
			BGCOLOR,'#FFFFFF',
			BORDERCOLOR,'#AAAAAA',
			DELAY,0,
			FOLLOWMOUSE,false,
			FONTFACE,'Arial,Tahoma',
			FONTSIZE,'12px',
			PADDING,8,
			SHADOW,true,
			SHADOWCOLOR,'#999999',
			SHADOWWIDTH,3,
			CLICKCLOSE,true,
			STICKY,true,
			WIDTH,(autowidth ? 0 : 400)
			);
}

function chartTip(content)
{
	return Tip(content,
			BGCOLOR,'#FFFFFF',
			BORDERCOLOR,'#AAAAAA',
			DELAY,100,
			FOLLOWMOUSE,true,
			FONTFACE,'Arial,Tahoma',
			FONTSIZE,'12px',
			PADDING,4,
			SHADOW,true,
			SHADOWCOLOR,'#333333',
			SHADOWWIDTH,1,
			CENTERMOUSE,true,
			OFFSETY,-50
			);
}

function sendForm(butt,form,span,txt)
{
	gObj(butt).href = '#';
	gObj(butt).className += ' butt_disabled';
	gObj(span).innerHTML = txt;
	gObj(form).submit();
}


// Funktionen für Zitatwechsel

function blendIn()
{
	if(TextNum > TextTotal) TextNum = 1;

	if(opa == 1) gObj("textswitch"+TextNum).style.display = "block";

	if(gObj("textswitch"+TextNum).filters)
		gObj("textswitch"+TextNum).filters.alpha.opacity = (10 * opa); // IE
	else
		gObj("textswitch"+TextNum).style.MozOpacity = (0.1 * opa);

	if(opa < 10)
	{
		opa++;
		window.setTimeout('blendIn()',100);
	}
	else
	{
		opa = 1;
		window.setTimeout('blendOut()',9000); // Text Einblendedauer
	}
}

function blendOut()
{
	if(gObj("textswitch"+TextNum).filters)
		gObj("textswitch"+TextNum).filters.alpha.opacity = (100 - 10 * opa); // IE
	else
		gObj("textswitch"+TextNum).style.MozOpacity = (1 - 0.1 * opa);

	if(opa < 10)
	{
		opa++;
		window.setTimeout('blendOut()',100);
	}
	else
	{
		opa = 1;
		gObj("textswitch"+TextNum).style.display = "none";
		TextNum++;
		blendIn();
	}
}

function initQuotes()
{
    i = 1;
	heightMax = 0;
	checkBlendFunction = (gObj("textswitch"+TextNum).filters != undefined || gObj("textswitch"+TextNum).style.MozOpacity != undefined);

	while(gObj('textswitch'+i) != undefined)
    {
		gObj('textswitch'+i).style.display='block';
		if(heightMax < gObj('textswitch'+i).offsetHeight) heightMax = gObj('textswitch'+i).offsetHeight;
		if(checkBlendFunction) gObj('textswitch'+i).style.display='none';
        i++;
	}

	if(checkBlendFunction && TextTotal > 1)
	{
	    gObj('quotes').style.height = heightMax+"px";
		blendIn();
	}
	else
	{
	    gObj('textswitch1').style.display = "block";
	}
}

function copyOptions(from,to)
{
	//Alte selektierte Einträge merken
	var selectedArray = new Array();
	for(i=0;i<to.options.length;i++)
	{
		if(to.options[i].selected) selectedArray[to.options[i].value] = '1'; 
	}
	
	//Liste leeren
	while(to.options.length > 0) to.options[0] = null;

	//Liste neu aufbauen (ggf. Einträge selektieren)
	for(i=0; i<from.options.length; i++)
	{
	    if(from.options[i].selected == true)
	    {
	    	var entrySelected = false;
	    	if(typeof selectedArray[from.options[i].value] != 'undefined') entrySelected = true;
	    	
			NeuerEintrag = new Option(from.options[i].text, from.options[i].value, false, entrySelected);
			to.options[to.length] = NeuerEintrag;
	    }
	}
}

// Diese Funktion sucht nach der Select-Box mit dem gegebenen Namen z.B. "alert_areas" und
// dem passenden TD mit der ID "label_" + alertBoxName, z.B. "label_alert_areas"
// @depreciated
function switchNoAlert(alertBoxName)
{
	var selectBox = gObj(alertBoxName);
	var labelField = gObj('label_' + alertBoxName);
	if(typeof(selectBox) == 'object' && typeof(labelField) == 'object' && selectBox != null && labelField != null) {
		if(selectBox.selectedIndex >= 0) {
			if(parseInt(selectBox.options[selectBox.selectedIndex].value) < 1) {
				labelField.className = 'shaded';
				return true;
			}
		}
	}
	labelField.className = '';
	return false;
}

function is_child(event,parent_element)
{
	if(!event)
	{
		event = window.event;
	}
 
	if(event.toElement) //ie,opera
	{
		var toelement = event.toElement;
	}
    else if(event.relatedTarget) //ff
	{
    	var toelement = event.relatedTarget;
	}
 
	if(toelement && element_is_child(toelement,parent_element))
	{
		return true;
	}
	else
	{
		return false;
	}
}

// prueft ob dom_child_element Kindelement von dom_parent_element ist
function element_is_child(dom_child_element,dom_parent_element) 
{
	var is_parent = false;
	do {
		if ((is_parent = dom_parent_element == dom_child_element))
		{
			break;
		}
		dom_child_element = dom_child_element.parentNode;
	} while (dom_child_element != null);
	return is_parent;
}

// Funktionen für MouseOver-Bewertungsanzeige mit Sternen
var starsWait;
var starsRated;
var stars_id;
//Kommentarbewertungen
var comStarsRated;
var showComStarsRating = true;
//Itembewertungen
var itemStarsRated;
var showItemStarsRating = true;

function showRatedStars()
{
	window.clearTimeout(starsWait);
	if(starsRated)
	{
		starsWait = window.setTimeout("gObj('stars').src = '"+starsRated+"';",300);
	}
}

function showStars(num)
{
    window.clearTimeout(starsWait);
    if(stars_id != 'stars')
    {
    	starsRated = gObj('stars').src;
    	stars_id = 'stars';
    }
    if(num > 0 && num < 6)
    {
    	gObj('stars').src = 'images/stars'+num+'.gif';
    }
}

function showComRatedStars(css_id,num)
{
	if(num != null)
	{
		comStarsRated = 'images/stars'+num+'.gif';
	}
	if(comStarsRated)
	{
		gObj(css_id).src = comStarsRated;
	}
}

function showComRatingStars(css_id,anzahl)
{
    if(stars_id != css_id)
    {
    	comStarsRated = gObj(css_id).src;
    	stars_id = css_id;
    }
    if(anzahl == 0)
    {
    	gObj(css_id).src = 'images/stars0.gif';
    }
    else if(anzahl > 0 && anzahl < 6)
    {
    	gObj(css_id).src = 'images/stars'+anzahl+'green.gif';
    }
}

// zeigt Sterne aus globalem Array an
function showComRatings(id_comment)
{
	css_id = 'com_stars'+id_comment;
    if(stars_id != css_id)
    {
    	comStarsRated = gObj(css_id).src;
    	stars_id = css_id;
    }
    if(com_ratings_array[id_comment][0] == 0)
    {
    	gObj(css_id).src = 'images/stars0.gif';
    	$('comRatingText'+id_comment).style.backgroundColor = '#EFFEDC';
    	$('comRatingText'+id_comment).innerHTML = 'Bewerten:';
    }
    else if(com_ratings_array[id_comment][0] > 0 && com_ratings_array[id_comment][0] < 6)
    {
    	gObj(css_id).src = 'images/stars'+com_ratings_array[id_comment][0]+'green.gif';
    	$('comRatingText'+id_comment).style.backgroundColor = '#FFFFFF';
    	$('comRatingText'+id_comment).innerHTML = 'Meine Bewertung:';
    }
}

function showItemRatedStars(css_id,num)
{
	if(num != null)
	{
		itemStarsRated = 'images/stars'+num+'.gif';
	}
	if(itemStarsRated)
	{
		gObj(css_id).src = itemStarsRated;
	}
}

function showItemRatingStars(css_id,anzahl)
{
    if(stars_id != css_id)
    {
    	itemStarsRated = gObj(css_id).src;
    	stars_id = css_id;
    }
    if(anzahl == 0)
    {
    	gObj(css_id).src = 'images/stars0.gif';
    }
    else if(anzahl > 0 && anzahl < 6)
    {
    	gObj(css_id).src = 'images/stars'+anzahl+'green.gif';
    }
}

// zeigt Sterne aus globalem Array an
function showItemRatings(id_item)
{
	css_id = 'item_stars'+id_item;
    if(stars_id != css_id)
    {
    	itemStarsRated = gObj(css_id).src;
    	stars_id = css_id;
    }
    if(item_ratings_array[id_item][0] == 0)
    {
    	gObj(css_id).src = 'images/stars0.gif';
    	$('itemRatingText'+id_item).style.backgroundColor = '#EFFEDC';
    	$('itemRatingText'+id_item).innerHTML = 'Bewerten:';
    }
    else if(item_ratings_array[id_item][0] > 0 && item_ratings_array[id_item][0] < 6)
    {
    	gObj(css_id).src = 'images/stars'+item_ratings_array[id_item][0]+'green.gif';
    	$('itemRatingText'+id_item).style.backgroundColor = '#FFFFFF';
    	$('itemRatingText'+id_item).innerHTML = 'Meine Bewertung:';
    }
}

function bewertung_sterne_bewertet_show(css_id)
{
	window.clearTimeout(starsWait);
	if(starsRated)
	{
		starsWait = window.setTimeout("gObj('"+css_id+"').src = '"+starsRated+"';",300);
	}
}

function bewertung_sterne_show(css_id,anzahl)
{
    window.clearTimeout(starsWait);
    if(stars_id != css_id)
    {
    	starsRated = gObj(css_id).src;
    	stars_id = css_id;
    }
    if(anzahl > 0 && anzahl < 6)
    {
    	gObj(css_id).src = 'images/stars'+anzahl+'.gif';
    }
}

//Opacity für Kommentarbewertungen
function resetComStarsOpacity(id_comment)
{
	css_id = 'com_stars'+id_comment;
	$(css_id).style.cssText = "";
}

function setComStarsOpacity(id_comment)
{
	css_id = 'com_stars'+id_comment;
	$(css_id).style.cssText = com_ratings_array[id_comment][1];
}

//Opacity für Itembewertungen
function resetItemStarsOpacity(id_item)
{
	css_id = 'item_stars'+id_item;
	$(css_id).style.cssText = "";
}

function setItemStarsOpacity(id_item)
{
	css_id = 'item_stars'+id_item;
	$(css_id).style.cssText = item_ratings_array[id_item][1];
}

// Kommentarbewertung
function rateComment(id_comment,point)
{
	new Ajax.Request("ajax/ajax.rate_comment.php", {
		method: 'post',
		parameters: {id_comment: id_comment, point: point}
	});
}

//Kommentarbewertung Items
function rateItemComment(id_comment,point)
{
	new Ajax.Request("ajax/ajax.rate_item_comment.php", {
		method: 'post',
		parameters: {id_comment: id_comment, point: point}
	});
}

// Itembewertung
function rateItem(id_item_type,id_item,point)
{
	new Ajax.Request("ajax/ajax.rate_item.php", {
		method: 'post',
		parameters: {id_item_type: id_item_type, id_item: id_item, point: point}
	});
}

// Daumenbewertung für Admins
function adminRateComment(id_comment,point)
{
	new Ajax.Updater("admin_comment_rating"+id_comment,"ajax/ajax.admin_rate_comment.php", {
		method: 'post',
		parameters: {id_comment: id_comment, point: point}
	});
}

// Kommentar für Kommentar
function addSubComment(id_comment,sub)
{
	addForm = gObj('newSubComment');
	gObj('commentAnswer'+id_comment).appendChild(addForm); // Formular einsetzen
	addForm.style.display = 'block';
	addForm.getElementsByTagName('input')[0].value = id_comment;
	addForm.getElementsByTagName('textarea')[0].focus();
}

// Spam-Meldung (Kommentare) senden
function reportSpam(id_comment)
{
    $("reportSpam"+id_comment).innerHTML = '<img src="images/loader.gif" alt="">';
	new Ajax.Updater("reportSpam"+id_comment,"ajax/ajax.report_spam.php", {
		method: 'post',
		parameters: {id_comment: id_comment}
	});
}

// Spam-Meldung (Beiträge) senden
function reportSpamPost(id_post)
{
    $("reportSpamPost"+id_post).innerHTML = '<img src="images/loader.gif" alt="">';
	new Ajax.Updater("reportSpamPost"+id_post,"ajax/ajax.report_spam.php", {
		method: 'post',
		parameters: {id_post: id_post}
	});
}

// Weiterempfehlung: Empfänger hinzufügen
function addReceiver()
{
	addForm = gObj('model').cloneNode(true);
	addForm.removeAttribute('id');
	addForm.removeAttribute('style');
	gObj('receivers').insertBefore(addForm, gObj('model'));
	addForm.getElementsByTagName('input')[0].focus();
}

// Dokument hinzufügen
function addDocFile()
{
	if(document.forms['createpost'] != null && document.forms['createpost'] != undefined)
	{
		$('loading').innerHTML = '<img src="images/loader.gif" align="absmiddle">&nbsp; Datei wird hochgeladen. Bitte warten...';

		oldFormAction = document.forms['createpost'].action;
		document.forms['createpost'].target = 'upload_iframe';
		document.forms['createpost'].action = 'ajax/ajax.upload_docfile.php';
		document.forms['createpost'].submit();
		document.forms['createpost'].target = '_self';
		document.forms['createpost'].action = oldFormAction;
	}
}

// Dokument anzeigen
function showDocFile()
{
	content = window.upload_iframe.document.getElementById('show').innerHTML;
	if(content.length>0)
	{
		if(content.search(/errtext/) == -1)
		{
		    // Wenn keine Fehlermeldung zurück kommt
			div = document.createElement("div");
			div.innerHTML = content; // Inhalt einfügen
			$('showDocfiles').appendChild(div); // In Liste einsetzen
		    $('docfile').value = ''; // Input-File leeren (geht nicht im IE)
		    $('docfile_info').value = ''; // Input-Text leeren
		    $('loading').innerHTML = '';
		}
		else
		{
		    $('loading').innerHTML = content; // Fehlermeldung einfügen
		}
	}
    else $('loading').innerHTML = '';

    checkDocFileUpload();
}

// Dokument löschen
function delDocFile(n)
{
    window.upload_iframe.location.href = 'ajax/ajax.upload_docfile.php?del_docfile='+n;
	$('showDocfiles').removeChild($('df'+n).parentNode);
	checkDocFileUpload();
}

// Upload-Formular anzeigen/verstecken
function checkDocFileUpload()
{
    // Alle DIVs der ersten Ebene müssen gezählt werden um die exakte Anzahl an Dokumenten herauszufinden
	nums = 0;
	for(i=0; i<$('showDocfiles').childNodes.length; i++)
	{
	    if($('showDocfiles').childNodes[i].tagName == 'DIV') nums++;
	}
	
	$('showDocfiles').style.display=(nums > 0 ? 'block' : 'none');

	if(nums < 5)
        $('showDocFileUpload').style.display='block';
	else
	    $('showDocFileUpload').style.display='none';
}

// Upload-Formular zurücksetzen/abbrechen
function abortDocFileUpload()
{
    $('docfile').value = ''; // Input-File leeren (geht nicht im IE)
    $('docfile_info').value = ''; // Input-Text leeren
    $('loading').innerHTML = '';
	window.upload_iframe.location.href = 'ajax/ajax.upload_docfile.php';
}

// Overlay anzeigen
function showOverlay()
{
	if($('overlay') != undefined)
	{
	    // Folgendes gilt nur für IE6, da dieser kein position:fixed; kann
		if(!window.opera && document.all && !window.XMLHttpRequest)
	    {
			window.scrollTo(0,0);
			if($('overlayBg')) $('overlayBg').style.height = document.body.offsetHeight+'px';
		}

		// Overlay anzeigen
		$('overlay').style.display = 'block';
	}
}

// Klasse für Handling der Formulardaten bei Session-Timeout:
// Formulardaten prüfen auf Änderung alle x Minuten und Zwischenspeicherung durch AJAX-Script
// Wenn bei wiederholter Abfrage die Formulardaten nicht geändert wurden, wird ein Overlay eingeblendet
// Das Overlay wird bei onclick wieder ausgeblendet
function handleFormTimeout(form)
{
    var self = this;

	var elementForm = form; // Formularelement
	var formChanged = true; // Wurde Formular geändert?
	var formCheckInterval = 300 * 1000; // Formularprüfung alle 5 Minuten (Angabe in Millisekunden)
	var formActive; // setTimeout

	// Formular im Zeitinterval checken
	this.sendFormToAjax = function()
	{
	    formActive = window.setTimeout(function(){self.sendFormToAjax();}, formCheckInterval); // alle fünf Minuten prüfen
		new Ajax.Request("ajax/ajax.extend_session.php", {
			method: 'post',
			parameters: elementForm.serialize(true),
			onSuccess: function(result)
			{
				if(result.responseText == 'Bitte einloggen!')
				{
				    window.clearTimeout(formActive); // Interval abbrechen
				    domain = location.href.substr(0, location.href.lastIndexOf("/")); // Location-String bis letztes Vorkommen von '/'
					location.href = domain+'/?timeout_session=1'; // Startseite mit Meldung ausrufen
				    return;
				}

				if(formChanged == false && result.responseText != 'changed')
				{
					$('overlay').onclick = function()
					{
						// Overlay ausblenden
						document.body.style.overflow = 'visible';
						$('overlay').style.display = 'none';
						// Von neu anfangen
						formChanged = true;
					    self.sendFormToAjax();
					}
					showOverlay();
					window.clearTimeout(formActive); // Interval abbrechen
				}

				if(result.responseText != 'changed')
					formChanged = false;
				else
					formChanged = true;
			}
		});
	}

	// Klassenhandling stoppen
	this.stopHandle = function()
	{
	    window.clearTimeout(formActive);
	}

	// Los gehts hier unten!!!
    self.sendFormToAjax();
}

// PNG-Bilder werden im IE 5.5 oder IE 6 halbtransparent dargestellt, ohne extra Klassen benutzen zu müssen
// vor </body> muss noch folgendes eingebunden werden:
// <script type="text/javascript">
// fixAllPNGs();
// </script>
function fixAllPNGs()
{
	ie = navigator.appVersion.split("MSIE");
	version = parseFloat(ie[1]);

    if((version >= 5.5) && (version < 7) && (document.body.filters))
    {
		for(i=0; i<document.getElementsByTagName('img').length; i++)
		{
			myImage = document.getElementsByTagName('img')[i];

			if(myImage.src.match(/\.png$/) != null)
			{
				var imgID = (myImage.id) ? "id='" + myImage.id + "' " : ""
				var imgClass = (myImage.className) ? "class='" + myImage.className + "' " : ""
				var imgTitle = (myImage.title) ?
				             "title='" + myImage.title  + "' " : "title='" + myImage.alt + "' "
				var imgStyle = "display:inline-block;" + myImage.style.cssText
				var strNewHTML = "<span " + imgID + imgClass + imgTitle
				          + " style=\"" + "width:" + myImage.width
				          + "px; height:" + myImage.height
				          + "px;" + imgStyle + ";"
				          + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
				          + "(src=\'" + myImage.src + "\', sizingMethod='image');\"></span>"
				myImage.outerHTML = strNewHTML;
				i--;
			}
		}
	}
}

function correct_png_for_ie()
{
	if (!window.opera && document.all && !window.XMLHttpRequest)
	{
		for(var i=0; i<document.images.length; i++)
		{
			var img = document.images[i];
			var imgName = img.src.toUpperCase();
			if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
			{
				img.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+img.src+'")';
				img.src='clear.gif';
			}
		}
	}
}

function changeTab(tabID, sumOfTabs)
{
	for (var i = 1; i <= sumOfTabs; ++i)
	{
		if (i != tabID.substr(4, 1)) {
			$('tab_' + i).setStyle({display: 'none'});
			$('tab_content_' + i).className = 'tab-inactive';
		} else {
			$('tab_' + i).setStyle({display: 'block'});
			$('tab_content_' + i).className = 'tab-active';
		}
	}
}

// form field hints
function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

function prepareInputsForHints() {
	var inputs = document.getElementsByTagName("input");
	for (var i=0; i<inputs.length; i++){
		// test to see if the hint span exists first
		if (inputs[i].parentNode.getElementsByTagName("span")[0]) {
			// the span exists!  on focus, show the hint
			inputs[i].onfocus = function () {
				this.parentNode.getElementsByTagName("span")[0].style.display = "inline";
			}
			// when the cursor moves away from the field, hide the hint
			inputs[i].onblur = function () {
				this.parentNode.getElementsByTagName("span")[0].style.display = "none";
			}
		}
	}
	// repeat the same tests as above for selects
	var selects = document.getElementsByTagName("select");
	for (var k=0; k<selects.length; k++){
		if (selects[k].parentNode.getElementsByTagName("span")[0]) {
			selects[k].onfocus = function () {
				this.parentNode.getElementsByTagName("span")[0].style.display = "inline";
			}
			selects[k].onblur = function () {
				this.parentNode.getElementsByTagName("span")[0].style.display = "none";
			}
		}
	}
	// repeat the same tests as above for textareas
	var textareas = document.getElementsByTagName("textarea");
	for (var i=0; i<textareas.length; i++){
		// test to see if the hint span exists first
		if (textareas[i].parentNode.getElementsByTagName("span")[0]) {
			// the span exists!  on focus, show the hint
			textareas[i].onfocus = function () {
				this.parentNode.getElementsByTagName("span")[0].style.display = "inline";
			}
			// when the cursor moves away from the field, hide the hint
			textareas[i].onblur = function () {
				this.parentNode.getElementsByTagName("span")[0].style.display = "none";
			}
		}
	}
}

// Select-Boxen Schwerpunkte ein-/ausblenden
function check_area(id_area,num)
{
	if(num<2 && document.getElementById('error_main_area'))
	{
		document.getElementById('error_main_area').style.display = 'none';
	}
	var select_names = 'main_area_sel';
	select_names = select_names.concat(num);
	var label = 'main_area_';
	label = label.concat(num);
	var input_fields = 'u[main_area';
	if(num>1)
	{
		input_fields = input_fields.concat(num);
	}
	input_fields = input_fields.concat(']');
	
	var selects = document.getElementsByTagName("select");
	for(i=0;i<selects.length;i++)
	{
		if(selects[i].name == input_fields)
		{
			selects[i].name = select_names;
			selects[i].style.display = 'none';
		}
	}
	
	var pre_area = 'area';
	pre_area = pre_area.concat(num);
	pre_area = pre_area.concat('_');
	var area = pre_area.concat(id_area);
	if(elem = document.getElementById(area))
	{
		document.getElementById(label).style.display = '';
		elem.style.display = 'block';
		elem.name = input_fields;
	}
	else
	{
		document.getElementById(label).style.display = 'none';
	}
}

//Select-Boxen ein-/ausblenden
function check_child_elements(parent_id,child_names,child_input,parent,child)
{
	var selects = document.getElementsByTagName("select");
	for(i=0;i<selects.length;i++)
	{
		if(selects[i].name == child_input || selects[i].name == child_names)
		{
			var tmp_ = selects[i].id;
			selects[i].name = child_names;
			document.getElementById(child.concat(tmp_.substr(child.length))).style.display = 'none';
			document.getElementById(parent.concat(tmp_.substr(child.length))).style.display = 'none';
		}
	}
	
	if(elem = document.getElementById(child.concat(parent_id)))
	{
		document.getElementById(parent.concat(parent_id)).style.display = '';
		document.getElementById(child.concat(parent_id)).style.display = '';
		elem.name = child_input;
	}
}

function checkTextInput(inputFields, errorTextById) {

	var errBGColor = '#ffdede';
	var errBorderColor = '#cc2929';
	var retval = true;
	
	if (inputFields.length > 0) {
			for (var i = 0; i < inputFields.length; ++i) {
				if (inputFields[i].value.length == 0) {
					$(inputFields[i].id).setStyle({backgroundColor: errBGColor, borderColor: errBorderColor});
					retval = false;
				}
			}
		
		if (!retval) {
			$(errorTextById).show();
		}
	}
	
	if (retval) {
		avoidDoubleContent();
	}

	return retval;
}

function avoidDoubleContent() {

	var submitButtons = $$('.submitButton');
	var spinningWheels = $$('.spinningWheel');

	if (submitButtons.length > 0 || spinningWheels.length > 0) {
		for (var i = 0; i < submitButtons.length; ++i) {
			submitButtons[i].hide();
		}
		for (var i = 0; i < spinningWheels.length; ++i) {
			spinningWheels[i].show();
			$$('body')[0].setStyle({cursor: 'wait'});

			if (Prototype.Browser.IE) {
				var spinningWheelImage = $$('img.spinningWheel');
				for (var j = 0; j < spinningWheelImage.length; ++j) {
					spinningWheelImage[j].hide();
				}
			}
		}
	}
}

function blindElementUpAndDown(element) {

	if ($(element).getStyle('display') == 'block') {
		Effect.BlindUp(element, {
			duration: 0.4
		});
	} else {
		Effect.BlindDown(element, {
			duration: 0.4
		});
	}
}

function switchMessageBGC(element) {

	if ($(element).getStyle('backgroundColor') == 'rgb(239, 255, 255)' || $(element).getStyle('backgroundColor') == '#efffff') {
		$(element).setStyle({backgroundColor: '#ffffff'});
	} else {
		$(element).setStyle({backgroundColor: '#efffff'});
	}
}

function switchArrow(element) {

	if ($(element).readAttribute('src') == 'images/arrow_right.png' || $(element).readAttribute('src') == 'images/new_mail.png') {
		$(element).setAttribute('src', 'images/arrow_down.png');
	} else {
		$(element).setAttribute('src', 'images/arrow_right.png');
	}
}

function switchSubjectText(element) {

	if ($(element).getStyle('display') == 'inline') {
		$(element).setStyle({display: 'none'});
		$(element + '_long').setStyle({display: 'inline'});
	} else {
		$(element).setStyle({display: 'inline'});
		$(element + '_long').setStyle({display: 'none'});
	}
}

function checkMessageStatus(uid, elmt_id, observed_uid) {

	$(elmt_id).setStyle({fontWeight: 'normal'});

	var url = "ajax/ajax.pm_set_message_status.php";
	new Ajax.Request(url, {
		method: 'post',
		parameters: {msg_uid: uid, obs_uid: observed_uid}
	});
}

function checkAll(form, master_checkbox) {

	for (var i=0; i < form.elements.length; i++) {
		var e = form.elements[i];
		if ((e.name != master_checkbox) && (e.type=='checkbox')) {
			e.checked = master_checkbox.checked;
		}
	}
}

function checkboxListener(element, parentElement) {

	if (!element.checked && parentElement.checked) {
		parentElement.checked = false;
	}
}

/**
 *	Function to handle if a button that depends on one or more checkboxes is disabled or not.
 *	We need the form and the ID of the button and its css classes for enabled/disabled state.
 *
 *	@param Object form
 *	@param string buttonID
 *	@param string cssClassEnabled
 *	@param string cssClassDisabled
 */
function checkButtonAccesibilityForCheckbox(form, buttonID, cssClassEnabled, cssClassDisabled) {

	var buttonStatus = $(buttonID).disabled;
	for (var i = 0; i < form.length; ++i) {
		if (form[i].type == 'checkbox') {
			if (form[i].checked == true) {
				buttonStatus = false;
				break;
			} else {
				buttonStatus = true;
			}
		}
	}
	
	$(buttonID).disabled = buttonStatus;
	if (buttonStatus == true) {
		$(buttonID).setAttribute('class', cssClassDisabled);
	} else {
		$(buttonID).setAttribute('class', cssClassEnabled);
	}
}

function emptyMessageForm() {

	$('autocomplete').value = 'Benutzername finden';
	$('msg_subject').value = '';
	$('msg_text').value = '';
	
	$('pm_err_text').hide();
	if ($('user_err_text')) {
		$('user_err_text').hide();
	}
	
	$('autocomplete').setStyle({
		border: '1px #98b7ce solid',
		color: 'black',
		backgroundColor: 'white'
	});
	$('msg_subject').setStyle({
		border: '1px #98b7ce solid',
		color: 'black',
		backgroundColor: 'white'
	});
	$('msg_text').setStyle({
		border: '1px #98b7ce solid',
		color: 'black',
		backgroundColor: 'white'
	});
}

// Weiterleiten von Beiträgen/Kommentaren
function toggle_div(id_comment) {
	var div_name = 'weiterleiten';
	div_name = div_name.concat(id_comment);
	var send_form = 'send_form';
	send_form = send_form.concat(id_comment);
	remove_msg_box(id_comment);
	remove_close_btn(id_comment);
	clear_error_field(id_comment);
	if(gObj(div_name).style.display == 'none')
	{
		gObj(div_name).style.display = 'block';
		gObj(send_form).style.display = 'block';
	}
	else
	{
		gObj(div_name).style.display = 'none';
	}
}
function close_div(id_comment) {
	remove_msg_box(id_comment);
	remove_close_btn(id_comment);
	toggle_div(id_comment);
	var msg_text = 'message_text';
	msg_text = msg_text.concat(id_comment);
	gObj(msg_text).value = '';
}
function abort(id_comment) {
	var id_form = 'send_form';
	id_form = id_form.concat(id_comment);
	var msg_text = 'message_text';
	msg_text = msg_text.concat(id_comment);
	document.getElementById(id_form).reset();
	gObj(msg_text).value = '';
	remove_msg_box(id_comment);
	remove_close_btn(id_comment);
	clear_error_field(id_comment);
	toggle_div(id_comment);
}
function remove_msg_box(id_comment) {
	var msg_box = 'msg_box';
	msg_box = msg_box.concat(id_comment);
	if(gObj(msg_box))
	{
		var div = gObj(msg_box);
		div.parentNode.removeChild(div);
	}
}
function remove_close_btn(id_comment) {
	var close_btn = 'close_btn';
	close_btn = close_btn.concat(id_comment);
	if(gObj(close_btn))
	{
		var div2 = gObj(close_btn);
		div2.parentNode.removeChild(div2);
	}
}
function clear_error_field(id_comment) {
	var receivers = 'receivers';
	receivers = receivers.concat(id_comment);
	gObj(receivers).className = 'tfield';
}


function post_advertise_show(element_id)
{
	//hide error div
	if ($('post_advertise_error_div_'+element_id))
	{
		dom_element_hide($('post_advertise_error_div_'+element_id));
	}
	//show form
	if ($('post_advertise_form_'+element_id))
	{
		$('post_advertise_form_'+element_id).style.display='block';
	}
	
	//switch div
	if (!dom_element_visible_check_by_id('post_advertise_div_'+element_id))
	{
		$('post_advertise_div_'+element_id).style.display='block';
	}
	else
	{
		dom_element_hide($('post_advertise_div_'+element_id));
	}
}

function post_advertise_abort(element_id)
{
	$('post_advertise_form_'+element_id).reset();
	$('post_advertise_message_text_'+element_id).value = '';
	post_advertise_show(element_id);
}

function post_advertise_button(css_id,input_value)
{
	if (input_value=='')
	{
		dom_element_hide($(css_id));
	}
	else
	{
		$(css_id).style.display='inline';
	}
}
function post_advertise_name_select(element_id)
{
	var receiver = $('post_advertise_receivers_'+element_id).value;
	receiver=trim(receiver);
	if (receiver.length == 0 || receiver[receiver.length-1]==',')
	{
		$('post_advertise_receivers_'+element_id).value = $('post_advertise_receivers_'+element_id).value + ' ' + $('post_advertise_autocomplete_'+element_id).value;
	}
	else
	{
		$('post_advertise_receivers_'+element_id).value = $('post_advertise_receivers_'+element_id).value + ', ' + $('post_advertise_autocomplete_'+element_id).value;
	}

	$('post_advertise_receivers_'+element_id).value=trim($('post_advertise_receivers_'+element_id).value);
	$('post_advertise_autocomplete_'+element_id).value="Benutzername finden";
	dom_element_hide($('post_advertise_autocomplete_action_button_'+element_id));
}
function post_advertise_form_send(element_id)
{
	if ($('post_advertise_autocomplete_'+element_id).value!="" && $('post_advertise_autocomplete_'+element_id).value!="Benutzername finden")
	{
		post_advertise_name_select(element_id);
	}
	$('post_advertise_form_'+element_id).submit();
}

// Beitrag aus Newsfeed löschen
function deleteStartPost(uid) {

	new Ajax.Request("ajax/ajax.delete_start_post.php", {
		method: 'post',
		parameters: {id_post: uid}
	});
}

// Anzeige Content aus Startseite löschen
function deleteStartContent() {

	new Ajax.Request("ajax/ajax.delete_start_post.php", {
		method: 'post',
		parameters: {content: 1}
	});
}

// Beitrag aus Newsfeed löschen
function deleteStartTop5Kommentare() 
{
	new Ajax.Request("ajax/ajax.delete_start_top_5_kommentare.php", {
		method: 'post',
		parameters: {content: 1}
	});
}

// Suche Startseite
function startSearch(search,fb)
{
	new Ajax.Updater("searchresults","ajax/ajax.start_search.php", {
		method: 'post',
		parameters: {search: search, fb: fb},
		evalScripts: true
	});
}

// Arzt verifizieren
function verifyPhysician(uid, flag) {

	new Ajax.Request("ajax/ajax.verify_physician.php", {
		method: 'post',
		parameters: {verify: flag, uid: uid}
	});
}

// Austausch von zwei Icons
function toggleIcon(element, image1, image2) {

	Element.extend(element);
	if (element.getStyle('backgroundImage') == 'url(' + location.href.substring(0, location.href.lastIndexOf('/') + 1) + image1 + ')' || 
		element.getStyle('backgroundImage') == 'url("' + location.href.substring(0, location.href.lastIndexOf('/') + 1) + image1 + '")' || /* für den IE Spassvogel... */
		element.getStyle('backgroundImage') == 'url(' + image1 + ')'
	) {
		element.setStyle({backgroundImage: 'url(' + image2 + ')'});
	} else {
		element.setStyle({backgroundImage: 'url(' + image1 + ')'});
	}
}

// Suche nach Postings die Filterstring entsprechen (admin_topic.php)
function lookupKeywordsInPostings(filter, topic) {

	if (filter.length > 2) {
		new Ajax.Request("ajax/ajax.lookup_postings_by_keywords.php", {
			method: 'post',
			parameters: {'filter': filter, 'topic': topic}, 
			onSuccess: function(result)	{
				if (result.responseText.length > 0) {
					$('matching_post_list').innerHTML = result.responseText;
					$('save_step_2').setStyle({display : 'block'});
				}
			}
		});
	} else {
		$('matching_post_list').innerHTML = '<li>Ergebnisliste</li>';
	}
}

// entfernt Beitrag aus einem Themengebiet (AJAX)
function removePostingFromTopic(uid) {

	new Ajax.Request("ajax/ajax.remove_posting_from_topic.php", {
		method: 'post',
		parameters: {post: uid}
	});
	
	$('post_' + uid).hide();
}

// loescht Themengebiet
function deleteTopic(uid) {

	new Ajax.Request("ajax/ajax.delete_topic.php", {
		method: 'post',
		parameters: {post: uid}
	});
	
	$('topic_' + uid).hide();
}

// Switchen zwischen (de-)aktiviertem Themengbiet
function topicStatus(uid, flag) {

	new Ajax.Request("ajax/ajax.topic_status.php", {
		method: 'post',
		parameters: {post: uid, status: flag}
	});
}

// entfernt Abonnement für Empfang PM's anderer User (AJAX)
function removePMAbonnement(uid) {

	new Ajax.Request("ajax/ajax.remove_pm_abonnement.php", {
		method: 'post',
		parameters: {uid: uid}
	});
	
	$('abo_' + uid).hide();
}

function htmlspecialchars(text)
{
	text=text.replace(/&/gi, "&amp;");
	text=text.replace(/</gi, "&lt;");
	text=text.replace(/>/gi, "&gt;");
	text=text.replace(/\"/gi, "&quot;");
	text=text.replace(/'/gi, "&#039;");
	return text;
}
function trim(text) 
{
	return text.replace (/^\s+/, '').replace (/\s+$/, '');
}
function nl2br(text)
{
	text=text.replace(/\n/gi, "<br>");
	return text;
}
function einladungen_verschicken_update_preview()
{
	var vorname = $('einladungen_verschicken_vorname_first').value;
	var name = $('einladungen_verschicken_name_first').value;
	var text = $('einladungen_verschicken_content').value;

	$('einladungen_verschicken_preview_vorname').innerHTML=htmlspecialchars(vorname);
	$('einladungen_verschicken_preview_name').innerHTML=htmlspecialchars(name);
	
	text=htmlspecialchars(text);
	text=nl2br(text);
	
	$('einladungen_verschicken_preview_content').innerHTML=text;
}

function enlargeTextarea(textarea, addHeight)
{
	if(textarea != null)
	{
		if(addHeight <= 0)
		{
			if(parseInt(textarea.scrollHeight) > parseInt(textarea.style.height))
				textarea.style.height = parseInt(textarea.scrollHeight)+'px';
		}
		else
		{
			while(parseInt(textarea.scrollHeight) > parseInt(textarea.offsetHeight))
				textarea.style.height = (parseInt(textarea.style.height)+addHeight)+'px';
		}
	}
}

function dom_element_hide_by_id(css_id)
{
	dom_element_hide($(css_id));
}

function dom_element_hide(css_element)
{
	if (!css_element)
	{
		return;
	}
	css_element.style.display='none';
}
function dom_element_visible_check_by_id(css_id)
{
	return dom_element_visible_check($(css_id));
}
function dom_element_visible_check(element)
{
	if (!element)
	{
		return false;
	}
	if (element.style.display=='none' || dom_element_computed_style_get(element,'display')=='none')
	{
		return false;
	}
	return true;
}
function dom_element_computed_style_get(element,property) 
{
	var result="";

	if(element) 
	{
		if(window.getComputedStyle) 
		{
			result=window.getComputedStyle(element,"").getPropertyValue(property);
		} 
		else if(element.currentStyle) 
		{
			result=element.currentStyle[property];
		} 
		else if(element.style) 
		{
			result=element.style[property];
		}
	}
	return result;
}
function clone_object_after(css_id_source,css_id_target_after)
{
	var clone_object = $(css_id_source).cloneNode(true);
	clone_object.removeAttribute('id');
	clone_object.removeAttribute('style');
	$(css_id_target_after).parentNode.insertBefore(clone_object, $(css_id_target_after).nextSibling);
}
function clone_object_before(css_id_source,css_id_target_before)
{
	var clone_object = $(css_id_source).cloneNode(true);
	clone_object.removeAttribute('id');
	clone_object.removeAttribute('style');
	$(css_id_target_before).parentNode.insertBefore(clone_object, $(css_id_target_before));
}

/* Fügt Keyword in die Datenbank und Liste ein */
function insertKeywordAlert(keyword)
{
    /* Wenn das Keyword schon in der Liste steht nicht einfügen */
    if(isAlreadyInSelect($('keyword_listbox').options, keyword))
    {
        return;
    }
    /* Vorhandenes Keyword updaten */
    else if($('keyword_input').title > 0)
    {
        updateKeywordAlert($('keyword_input').title, keyword)
    }
    /* Neues Keyword speichern */
    else
    {
        new Ajax.Request("ajax/ajax.keyword_alert.php", {
        method: 'post',
        parameters: {uid: 0, keyword: keyword, action: 'insert'},
            onSuccess: function(result)
            {
                if (result.responseText.length > 0)
                {
                    $('keyword_input').title = "";
                    $('keyword_input').value = "Eingabe neues KW";

                    var optn = document.createElement("OPTION");
                    optn.text = keyword;
                    optn.value = result.responseText;
                    $('keyword_listbox').options.add(optn);

                    sortSelect($('keyword_listbox').options);
                    selectOption($('keyword_listbox').options, keyword);
                }
            }
        });
    }
}

/* Updated Keyword in der Datenbank und Liste */
function updateKeywordAlert(uid, keyword)
{
    /* Wenn das Keyword schon in der Liste steht nicht updaten */
    if(isAlreadyInSelect($('keyword_listbox').options, keyword))
    {
        return;
    }
    /* Vorhandenes Keyword updaten */
    else if(uid > 0)
    {
        new Ajax.Request("ajax/ajax.keyword_alert.php", {
        method: 'post',
        parameters: {uid: uid, keyword: keyword, action: 'update'}
        });

        $('keyword_input').title = "";
        $('keyword_input').value = "Eingabe neues KW";
        $('keyword_listbox').options[$('keyword_listbox').selectedIndex].text = keyword;
        $('keyword_listbox').options[$('keyword_listbox').selectedIndex].selected = true;

        sortSelect($('keyword_listbox').options);
        selectOption($('keyword_listbox').options, keyword);
    }
    /* Keyword zum Bearbeiten in das Textfeld laden */
    else if($('keyword_input').title == '')
    {
        $('keyword_input').value = $('keyword_listbox').options[$('keyword_listbox').selectedIndex].text;
        $('keyword_input').title = $('keyword_listbox').options[$('keyword_listbox').selectedIndex].value;
    }
    /* Bearbeitung des Keyword abbrechen */
    else
    {
        $('keyword_input').title = "";
        $('keyword_input').value = "Eingabe neues KW";
    }
}

/* Löscht Keyword aus der Datenbank und der Liste */
function deleteKeywordAlert(uid)
{
    new Ajax.Request("ajax/ajax.keyword_alert.php", {
    method: 'post',
    parameters: {uid: uid, keyword: 0, action: 'delete'}
    });

    $('keyword_input').title = "";
    $('keyword_input').value = "Eingabe neues KW";

    var indexToDelete = $('keyword_listbox').selectedIndex;

    $('keyword_listbox').options[indexToDelete] = null;

    if($('keyword_listbox').length > indexToDelete)
    {
        $('keyword_listbox').options[indexToDelete].selected = true;
    }
    else if($('keyword_listbox').length != 0)
    {
        $('keyword_listbox').options[indexToDelete-1].selected = true;
    }
}

/* Prüft ob sich das Keyword bereits in der Liste befindet */
function isAlreadyInSelect(options, keyword)
{
    for(i = 0; i < options.length; i++)
    {
        if(options[i].text == keyword)
        {
            window.alert('Keyword exitstiert bereits!')
            return true;
        }
    }
    return false;
}

/* Sortiert Select */
function sortSelect(options)
{
    var unsortedArray = new Array();
    for(i = 0; i < options.length; i++)
    {
        unsortedArray[i] = new Object();
        unsortedArray[i]["text"] = options[i].text;
        unsortedArray[i]["value"] = options[i].value;
    }

    unsortedArray.sort(Optionsort);

    for(i = 0; i < unsortedArray.length; i++)
    {
        options[i].text = unsortedArray[i]["text"];
        options[i].value = unsortedArray[i]["value"];
    }
}

/* Vergleichsfunktion für Select Optionen */
function Optionsort(a, b)
{
    if(a.text > b.text)
        return 1;
    else if(a.text < b.text)
        return -1;
    else
        return 0;
}

/* Selektiert Option mit entsprechendem Keyword */
function selectOption(options, keyword)
{
    for(i = 0; i < options.length; i++)
    {
        if(options[i].text == keyword)
        {
            options[i].selected = true;
            return;
        }
        else
        {
            options[i].selected = false;
        }
    }
}

function form_checkbox_deselect_in_element(element,parent_value)
{
	var tmp_element=element;
	for (var i=0;i<parent_value;i++)
	{
		tmp_element=tmp_element.parentNode;
	}
	var input_elemente = tmp_element.getElementsByTagName("input");
	for (var i = 0; i < input_elemente.length; i++) 
	{
		var element_type = input_elemente[i].getAttribute("type");
		if (element_type.toLowerCase()!="checkbox")
		{
			continue;
		}
		input_elemente[i].checked=false;
	}
}
function form_checkbox_select_in_element(element,parent_value)
{
	var tmp_element=element;
	for (var i=0;i<parent_value;i++)
	{
		tmp_element=tmp_element.parentNode;
	}
	var input_elemente = tmp_element.getElementsByTagName("input");
	for (var i = 0; i < input_elemente.length; i++) 
	{
		var element_type = input_elemente[i].getAttribute("type");
		if (element_type.toLowerCase()!="checkbox")
		{
			continue;
		}
		input_elemente[i].checked=true;
	}
}
/*submittet das form in dem das element liegt*/
function form_this_submit(element)
{
	while(element !=null)
	{
		if (!element.parentNode)
		{
			break;
		}
		if (element.nodeType==1 && element.nodeName.toLowerCase()=="form")
		{
			element.submit();
			break;
		}
		element = element.parentNode;
	}
}
/**/
function element_visibility_switcher(root_element,id_prefix,id_suffix,id_show)
{
	if (root_element.childNodes.length==0)
	{
		return;
	}
	
	var knoten=root_element.firstChild;
	var pattern = "^" + id_prefix + '\\d+' + id_suffix + "$";
	var regexp_object = new RegExp(pattern,'i');
	
	if (!knoten)
	{
		return;
	}
	
	while(knoten != null)
	{
		if (knoten.nodeType!=1)
		{
			knoten=knoten.nextSibling;
			continue;
		}
		
		if (regexp_object.test(knoten.getAttribute('id')))
		{
			dom_element_hide(knoten);
			//hat das element select felder in sich drinne ? => danna uch hide
			ie6_element_visibility_switcher_select(knoten,0);
		}
		if (knoten.getAttribute('id')==id_prefix + id_show + id_suffix)
		{
			knoten.style.display='';
			ie6_element_visibility_switcher_select(knoten,1);
		}
		
		element_visibility_switcher(knoten,id_prefix,id_suffix,id_show);
		
		knoten=knoten.nextSibling;
	} 
}
function ie6_element_visibility_switcher_select(root_element,typ)
{
	var knoten=root_element.firstChild;
	while(knoten != null)
	{
		
		if (knoten.nodeType!=1)
		{
			knoten=knoten.nextSibling;
			continue;
		}
		if (knoten.nodeName.toLowerCase()=='select')
		{
			if (typ==1)
			{
				knoten.style.display='';
			}
			else
			{
				dom_element_hide(knoten);
			}
		}
		
		if (knoten.hasChildNodes())
		{
			ie6_element_visibility_switcher_select(knoten,typ);
		}
		
		knoten=knoten.nextSibling;
	}
}