function setFormRequirements(form, fields, callback)
{
	var formElement = $(form);
	var fieldArray = $A(fields);
	formElement.onsubmit = function() {
		for (var i=0; i<fieldArray.length; i++) {
			var field = formElement[fieldArray[i]];
			if (field && (field.value == '') ) {
			//if (field && (field.value == '' || parseInt(field.value) < 10) ) {
			//	alert('Bitte füllen Sie das Feld "' + field.title + '" aus.');
				field.focus();
				new Effect.Highlight(field.parentNode.parentNode, {startcolor: '#FF0000', restorecolor: '#ffffff'});
				return false;
			}
		}
		if (callback) {
			callback();
		}
		return true;
	};
}

function updateFileInputs(count) {
	for (var i=1; i<=count; i++) {
		Element.show('file_' + i);
	}
	for (; i<=5; i++) {
		Element.hide('file_' + i);
	}
}

function levelClosed() {
	var navigationDiv = this.parentNode.parentNode.parentNode;
	navigationDiv.hide();
}

function levelWillOpen(linkElement) {
	linkElement.blur();
	$('navigation_' + linkElement.rel).show();
	new Effect.MoveBy('navigation_container', 0, -248, {duration: 0.4});
}

function initDocument()
{
	var hasAjax = Ajax.getTransport();
	var listItems = $A(document.getElementsByTagName('li'));	
	listItems.each( function(listItem) {
		var links = $A(listItem.getElementsByTagName('a'));
		links.each( function(link) {
			if (link.getAttribute('type') == 'image/jpeg') {
				link.onclick = loadImage;
				allImages[showIndex++] = link.href;
			} else if (link.getAttribute('type') == 'text/html') {
				if (hasAjax) {
					link.onclick = loadPage.bind(link);					
				}
			}
		} );
	} );
}

function loadPage()
{
	var linkElements = $A($('navigation_container').getElementsByTagName('a'));
	linkElements.each( function(linkElement) {
		$(linkElement).className = '';
	} );
	
	this.blur();
	this.className = 'selected';
	
	var divElement = $('contents');
	divElement.hide();
	new Ajax.Updater(divElement, this.href, { evalScripts:true, onComplete:function() { Effect.Appear(divElement, {duration:0.5}); initLightbox(); }});
	
	if (this.rel != '') {
		levelWillOpen(this);
	}
	return false;
}

function loadImage()
{
	var imageElement = document.createElement('img');
	imageElement.src = this.href;
	imageElement.border = 0;
	imageElement.style.display = 'none';
	$('image_container').innerHTML = '';
	$('image_container').appendChild(imageElement);
	Effect.Appear(imageElement, {duration:0.4});
	return false;
}

function nextImage()
{
	if (showIndex >= allImages.length) {
		showIndex = 0;
	}
	var context = { href: allImages[showIndex] };
	var handler = loadImage.bind(context);
	handler();
	showIndex++;
}

function appearIfHidden(id) {
	var element = $(id);
	hidePortraits(element);
	if (element.style.display == 'none') {
		new Effect.Appear(element, {duration:0.3});
	}
}

function hidePortraits(except) {
	var portraits = document.getElementsByClassName('portrait', $('contents'));
	portraits.each( function(element) {
		if (element != except) {
			element.hide();
		}
	} );
}

function toggleVisibility(id) {
	var element = $(id);
	if (element.style.display == 'none') {
		new Effect.Appear(element, {duration:0.3});
	} else {
		element.hide();
	}
}

function displayContent(pageId, contentTitle) {
	$('contentTitle').innerHTML = contentTitle;
	Element.show('content' + pageId);
}

var showHandler = null;
var showIndex = null;
var allImages = null;

Event.observe(window, 'load', initDocument);

function openWindow(theURL,winName,winWidth,winHeight,sb,rs)
{
	var winLeft = ((screen.availWidth - winWidth) / 2);
	var winTop = ((screen.availHeight - winHeight) / 2);
	if(sb == "no") {
		sb_string = ",scrollbars=no";
	}
	else {
		sb_string = ",scrollbars=yes";
	}
	if(rs == "yes") {
		rs_string = ",resizable=yes";
	}
	else {
		rs_string = ",resizable=no";
	}
	
	window.open(theURL,winName,'toolbar=no,status=no,menubar=no' + rs_string + ',location=no,dependent=yes,width=' + winWidth + ',height=' + winHeight + ',left=' + winLeft + ',top=' + winTop);
}