var dialog = null;
var navigation = null;
var lightgallery = null;
var etelligence = null;

var initialize = function(page) {
	if(typeof page == 'undefined') var page = 'default';
	etelligence = new ETELLIGENCE(page);
}

var ETELLIGENCE = new Class({
	initialize: function(page) {
		this.page = page;
		this.imageDir = './images/content/';
		this.ajaxURL = './ajax/request.php';
		this.mailURL = './ajax/email.php';
		this.searchURL = './ajax/search.php';

		this.navigationWrapperID = 'navigation';
		this.navigationMinHeight = 430;
		this.contentWrapperID = 'contentWrapper';
		this.contentMinHeight = (Browser.Engine.trident4 ? 450 : 420);
		
		this.slideshowWrapperID = 'slideshowWrapper';
		this.slideshowPlayerWrapperID = 'slideshowPlayerWrapper';
		this.slideshowPlayerID = 'slideshowPlayer';
		this.slideshowPlayerHandleID = 'slideshowPlayerHandle';
		this.gameWrapperID = null;
		this.gameWrapperID = 'gameWrapper';
		
		this.consortiumPointer = null;
		this.articleSetPointer = null;
		
		this.projectContentID = 'projectContent';
		this.newsContentID = 'newsContent';
		this.eventsContentID = 'eventContent';
		this.fotosContentID = 'fotosContent';
		this.pressContentID = 'pressContent';
		this.contactContentID = 'contactContent';
		this.imprintContentID = 'imprintContent';
		this.sitemapContentID = 'sitemapContent';
		this.searchContentID = 'searchContent';
		
		this.options = {
			mailtoFormularWrapperID: 'mailto-formular-wrapper',
			mailtoFormularIntroductionID: 'mailto-formular-introduction',
			mailtoFormularID: 'mailto-formular',
			mailtoFormularErrorNameID: 'mailto-formular-error-name',
			mailtoFormularLabelNameID: 'mailto-formular-label-name',
			mailtoFormularNameID: 'mailto-formular-name',
			mailtoFormularErrorEMailID: 'mailto-formular-error-email',
			mailtoFormularLabelEMailID: 'mailto-formular-label-email',
			mailtoFormularEMailID: 'mailto-formular-email',
			mailtoFormularErrorMessageID: 'mailto-formular-error-message',
			mailtoFormularLabelMessageID: 'mailto-formular-label-message',
			mailtoFormularMessageID: 'mailto-formular-message',
			contactFormularWrapperID: 'contact-formular-wrapper',
			contactFormularIntroductionID: 'contact-formular-introduction',
			contactFormularID: 'contact-formular',
			contactFormularErrorSalutationID: 'contact-formular-error-salutation',
			contactFormularLabelSalutationID: 'contact-formular-label-salutation',
			contactFormularSalutationID: 'contact-formular-salutation',
			contactFormularErrorNameID: 'contact-formular-error-name',
			contactFormularLabelNameID: 'contact-formular-label-name',
			contactFormularNameID: 'contact-formular-name',
			contactFormularErrorStreetID: 'contact-formular-error-street',
			contactFormularLabelStreetID: 'contact-formular-label-street',
			contactFormularStreetID: 'contact-formular-street',
			contactFormularErrorZipID: 'contact-formular-error-zip',
			contactFormularLabelZipID: 'contact-formular-label-zip',
			contactFormularZipID: 'contact-formular-zip',
			contactFormularErrorCityID: 'contact-formular-error-city',
			contactFormularLabelCityID: 'contact-formular-label-city',
			contactFormularCityID: 'contact-formular-city',
			contactFormularLabelPhoneID: 'contact-formular-label-phone',
			contactFormularPhoneID: 'contact-formular-phone',
			contactFormularErrorEMailID: 'contact-formular-error-mail',
			contactFormularLabelEMailID: 'contact-formular-label-mail',
			contactFormularEMailID: 'contact-formular-mail',
			contactFormularErrorMessageID: 'contact-formular-error-message',
			contactFormularLabelMessageID: 'contact-formular-label-message',
			contactFormularMessageID: 'contact-formular-message',
			searchID: 'search',
			searchResultID: 'search-result',
			tagCloudID: 'tag-cloud',
			tagsID: 'tags',
			participateID: 'participate',
			participateLinkID: 'participate-link',
			messageWrapperID: 'message-wrapper',
			forewordTeaserPositions: new Array({x:10,y:500}, {x:270,y:500}, {x:530,y:500}),
			forewordTeaserPositionsIndex: 0
		};
		
		this.elements = {
			mailtoFormularWrapper: null,
			formularWrapper: null,
			contactFormularWrapper: null,
			messageWrapper: null
		};
		
		this.fx = {
			mailtoFormularWrapper: null,
			contactFormularWrapper: null,
			tagCloud: null,
			messageWrapper: null
		};
		
		this.labels = {
			subscribeRSSFeed: 'RSS-Feed abonnieren',
			eenergyLogo: 'E-Energy',
			bwtLogo: 'Bundesministerium f\u00fcr Wirtschaft und Technologie',
			mailtoFormularIntroductionText: 'E-Mail schreiben an: ',
			mailtoFormularErrorName: 'Ihr Name muss aus mindestens drei Zeichen bestehen.<br />Bitte &uuml;berpr&uuml;fen Sie die Eingabe.',
			mailtoFormularName: 'Ihr Name:',
			mailtoFormularErrorEMail: 'Dies ist keine g&uuml;ltige E-Mail-Adresse.<br />Bitte &uuml;berpr&uuml;fen Sie die Eingabe.',
			mailtoFormularEMail: 'Ihre E-Mail-Adresse: *',
			mailtoFormularErrorMessage: 'Ihre Nachricht muss aus mindestens zehn Zeichen bestehen.<br />Bitte &uuml;berpr&uuml;fen Sie die Eingabe.',
			mailtoFormularMessage: 'Ihre Nachricht:',
			mailtoFormularAdvice: '* Hinweis: Die E-Mail-Adresse, die Sie hier angeben, wird f&uuml;r die Antwort ben&ouml;tigt und nicht gespeichert.',
			mailtoFormularSuccess: '<div class="mailto-formular-h1">Vielen Dank!</div><div>Ihre Anfrage wurde erfolgreich verschickt und wird nach Durchsicht umgehend bearbeitet.',
			mailtoFormularFailure: '<div class="mailto-formular-h1">Es ist ein Fehler aufgetreten!</div><div>Bitte versuchen Sie es zu einem sp&auml;teren Zeitpunkt erneut.',
			contactFormularIntroductionText: 'E-Mail schreiben an: info@etelligence.de',
			contactFormularSalutation: 'Anrede:',
			femaleOption: 'Frau',
			maleOption: 'Herr',
			contactFormularErrorName: 'Ihr Name muss aus mindestens drei Zeichen bestehen.<br />Bitte &uuml;berpr&uuml;fen Sie die Eingabe.',
			contactFormularName: 'Name: *',
			contactFormularErrorStreet: 'Ihre Strasse muss aus mindestens drei Zeichen bestehen.<br />Bitte &uuml;berpr&uuml;fen Sie die Eingabe.',
			contactFormularStreet: 'Strasse: *',
			contactFormularErrorZip: 'Bitte &uuml;berpr&uuml;fen Sie die Eingabe.',
			contactFormularZip: 'PLZ: *',
			contactFormularErrorCity: 'Ihre Stadt muss aus mindestens drei Zeichen bestehen.<br />Bitte &uuml;berpr&uuml;fen Sie die Eingabe.',
			contactFormularCity: 'Ort: *',
			contactFormularPhone: 'Telefon:',
			contactFormularErrorEMail: 'Dies ist keine g&uuml;ltige E-Mail-Adresse.<br />Bitte &uuml;berpr&uuml;fen Sie die Eingabe.',
			contactFormularEMail: 'E-Mail: *',
			contactFormularErrorMessage: 'Ihre Nachricht muss aus mindestens zehn Zeichen bestehen.<br />Bitte &uuml;berpr&uuml;fen Sie die Eingabe.',
			contactFormularMessage: 'Ihr Anliegen: *',
			contactFormularAdvice: 'Die mit Sternchen (*) gekennzeichneten Felder m&uuml;ssen ausgef&uuml;llt sein.',
			contactFormularSuccess: '<div class="mailto-formular-h1">Vielen Dank!</div><div>Ihre Anfrage wurde erfolgreich verschickt und wird nach Durchsicht umgehend bearbeitet.',
			contactFormularFailure: '<div class="mailto-formular-h1">Es ist ein Fehler aufgetreten!</div><div>Bitte versuchen Sie es zu einem sp&auml;teren Zeitpunkt erneut.',
			pleaseInsertSearchTerm: 'Bitte Suchbegriff eingeben!',
			searchButton: 'Suche starten',
			moreLink: 'weiter',
			noSearchResult: '<div style="margin-top:10px;">Es wurden leider keine Suchergebnisse gefunden.</div>',
			noTagsAvailable: 'Bislang existieren noch keine Suchtreffer.',
			closeMessage: 'Nachricht schlie\u00dfen',
			messageBePart: 'Holen Sie sich die Zukunft<br />ins Haus: eTelligence<br />Siehe: <a href="projekt.php#Mitmachen">Mitmachen</a><br />',
			messageBePartSamePage: 'Holen Sie sich die Zukunft<br />ins Haus: eTelligence<br />Siehe: <a onclick="window.location.reload();" href="#">Mitmachen</a><br />'
		};

		dialog = new DIALOG();
		navigation = new NAVIGATION(page);
		lightgallery = new LIGHTGALLERY();

		switch(this.page.toString()) {
			case 'project':
				this.showPageProject();
				this.showSponsors();
				break;
			case 'news':
				this.showPageNews();
				this.showSponsors();
				break;
			case 'events':
				this.showPageEvents();
				this.showSponsors();
				break;
			case 'fotos':
				this.showPageFotos();
				this.showSponsors();
				break;
			case 'press':
				this.showPagePress();
				this.showSponsors();
				break;
			case 'consortium':
				this.showPageConsortium();
				this.showSponsors();
				break;
			case 'contact':
				this.showPageContact();
				this.showSponsors();
				break;
			case 'imprint':
				this.showPageImprint();
				this.showSponsors();
				break;
			case 'sitemap':
				this.showPageSitemap();
				this.showSponsors();
				break;
			case 'search':
				this.showPageSearch();
				this.showTagCloud();
				this.showSponsors();
				break;
			default:
				this.showPageForeword();
				break;
		}
		this.showBePart();
		
		// IE6 cant handle min-height-CSS-Declaration
		if(Browser.Engine.trident) {
			var navigationHeight = $(this.navigationWrapperID.toString()).getHeight();
			if(navigationHeight < this.navigationMinHeight) $(this.navigationWrapperID.toString()).setStyle('height', this.navigationMinHeight);
			$(this.navigationWrapperID.toString()).setStyle('height', navigationHeight);
		}
	},
	
	showPageProject: function() {
		var _self = this;
		var contentWrapper = new Element('div', {'id':this.contentWrapperID});
		contentWrapper.setStyles({'padding':'120px 0px 100px 297px'});
		var content = new Element('div', {'id':this.projectContentID});
		contentWrapper.grab(content);
		$(this.navigationWrapperID.toString()).grab(contentWrapper);
		
		new Request.JSON({
			url:this.ajaxURL,
			onComplete: function(response) {
				var tabs = response.tabs;
				var tabWrapper = new Element('ul', {'id':'tabs'});
				var projectContent = new Element('div').setStyle('padding-top', '30px');
				for(var i = 0; i < tabs.length; i++) {
					tabWrapper.grab(new Element('li', {'id':'tab-' + tabs[i].tabBackgroundImage}).set('html', '&nbsp;'));
					var tabContent = new Element('div', {'class':'tabContent'}).setStyles({'width':500}).set('html', tabs[i].content);
					if(tabs[i].tabBackgroundImage == 'game') {
						var gameImage = new Element('img').setStyles({'border':0, 'cursor':'pointer', 'opacity':0});
						var gameImageSrcMouseOut = _self.imageDir + 'image-game-off.jpg';
						var gameImageSrcMouseOver = _self.imageDir + 'image-game-on.jpg';
						
						gameImage.addEvent('load', function() {
							new Fx.Morph(this, {duration:500}).start({'opacity':1});
						});
						gameImage.addEvent('mouseover', function() {
							this.src = gameImageSrcMouseOver;
						});
						gameImage.addEvent('mouseout', function() {
							this.src =  gameImageSrcMouseOut;
						});
						gameImage.addEvent('click', function() {
							_self.showGameeTelligence();
						});
						
						tabContent.grab(gameImage);
						
						new Asset.images([gameImageSrcMouseOut, gameImageSrcMouseOver], {
							onComplete: function() {
								gameImage.src = gameImageSrcMouseOut;
							}
						});
					}
					projectContent.grab(tabContent);
				}
				content.grab(tabWrapper).grab(new Element('div', {'class':'clear'})).grab(projectContent);
				
				var height = content.getHeight();
				if(height < _self.contentMinHeight) height = _self.contentMinHeight;
				content.setStyle('height', height);
				
				var tab = 0;
				var location = window.location.href;
				if(location.indexOf('#') > -1) {
					location = location.split('#')[1];
					switch(location.toString().toLowerCase()) {
						case 'idee':
							tab = 0;
							break;
						case 'spiel':
							tab = 1;
							break;
						case 'mitmachen':
							tab = 2;
							break;
						case 'energie':
							tab = 3;
							break;
						default:
							tab = 0;
							break;
					}
				}
				
				_self.tabSwapper = new TabSwapper({
					clickers:$$('ul#tabs li'),
					deselectedClass:'off',
					initPanel:tab.toInt(),
					sections:$$('div.tabContent'),
					selectedClass:'on',
					smooth:true,
					tabs:$$('ul#tabs li'),
					onActive: function() {
						content.setStyle('height', 'auto');
						var height = content.getHeight();
						if(height < _self.contentMinHeight + 30) height = _self.contentMinHeight + 30;
						content.setStyle('height', height);
					}
				});
				
				window.addEvent('domready', function() {
					var showParticipateFormular = false;
					
					if($('participate-formular')) $('participate-formular').setStyles({'opacity':0});
					$('participate-icon').addEvent('click', function() {
						showParticipateFormular = !showParticipateFormular;
						$('participate-formular').setStyles({'display':'block'});
						$('projectContent').setStyles({'height':'auto'});
						new Fx.Morph('participate-formular', {duration:300}).start({'opacity':showParticipateFormular ? 1 : 0}).chain(function() {
							$('participate-icon').set({'src':(showParticipateFormular ? './images/content/minus.gif' : './images/content/plus.gif')});
							$('participate-link').set({'html':(showParticipateFormular ? 'Teilnahme-Formular zuklappen' : 'Teilnahme-Formular aufklappen')});
							$('participate-formular').setStyles({'display':(showParticipateFormular ? 'block' : 'none')});
						});
					});
					$('participate-link').addEvent('click', function() {
						showParticipateFormular = !showParticipateFormular;
						$('participate-formular').setStyles({'display':'block'});
						$('projectContent').setStyles({'height':'auto'});
						new Fx.Morph('participate-formular', {duration:300}).start({'opacity':showParticipateFormular ? 1 : 0}).chain(function() {
							$('participate-icon').set({'src':(showParticipateFormular ? './images/content/minus.gif' : './images/content/plus.gif')});
							$('participate-link').set({'html':(showParticipateFormular ? 'Teilnahme-Formular zuklappen' : 'Teilnahme-Formular aufklappen')});
							$('participate-formular').setStyles({'display':(showParticipateFormular ? 'block' : 'none')});
						});
					});
					
					var permittedChars = new Array(8, 9, 37, 39, 46); // backspace, tab, left, right, delete 
					if($('zip')) {
						$('zip').addEvent('keydown', function(event) {
							if(!permittedChars.contains(event.code)) {
								if(this.value.length > 4) return false;
							}
						});
						$('zip').addEvent('keyup', function(event) {
							if(!permittedChars.contains(event.code)) {
								this.value = this.value.replace(/\D/g, '');
							}
						});
					}
					
					if($('phone')) {
						$('phone').addEvent('keyup', function(event) {
							if(!permittedChars.contains(event.code)) {
								this.value = this.value.replace(/\D/g, '');
							}
						});
					}
					
					var participate = function() {
						var submitallowed = true;
						
						var mandatories = new Array('salutation', 'lastname', 'firstname', 'street', 'number', 'zip', 'city', 'phone', 'home');
						
						mandatories.each(function(item, index) {
							if($(item)) {
								switch($(item).get('tag')) {
									case 'select':
										if($(item).selectedIndex == 0) {
											submitallowed = false;
											if($('label-' + item)) $('label-' + item).addClass('error');
											$(item).addClass('error');
										} else {
											if($('label-' + item)) $('label-' + item).removeClass('error');
											$(item).removeClass('error');
										}
										break;
									default:
										if($(item).value == '' || (item == 'zip' && $(item).value.length != 5)) {
											submitallowed = false;
											if($('label-' + item)) $('label-' + item).addClass('error');
											$(item).addClass('error');
										} else {
											if($('label-' + item)) $('label-' + item).removeClass('error');
											$(item).removeClass('error');
										}
										break;
								}
							}
						});
						
						if(!_self.checkMail($('mail').value)) {
							submitallowed = false;
							if($('label-mail')) $('label-mail').addClass('error');
							$('mail').addClass('error');
						} else {
							if($('label-mail')) $('label-mail').removeClass('error');
							$('mail').removeClass('error');
						}
						
						if($('day').selectedIndex == 0 || $('month').selectedIndex == 0 || $('year').selectedIndex == 0) {
							submitallowed = false;
							$('label-birthday').addClass('error');
							if($('day').selectedIndex == 0) $('day').addClass('error');
							else $('day').removeClass('error');
							if($('month').selectedIndex == 0) $('month').addClass('error');
							else $('month').removeClass('error');
							if($('year').selectedIndex == 0) $('year').addClass('error');
							else $('year').removeClass('error');
						} else {
							$('label-birthday').removeClass('error');
							$('day').removeClass('error');
							$('month').removeClass('error');
							$('year').removeClass('error');
						}
						
						radios.each(function(item, index) {
							if(item.getValue() == false) {
								submitallowed = false;
								if($('label-' + item.getName())) $('label-' + item.getName()).addClass('error');
							} else {
								if($('label-' + item.getName())) $('label-' + item.getName()).removeClass('error');
							}
						});
						
						if($('participation-conditions') && $('label-participation-conditions')) {
							if(!$('participation-conditions').get('src').match(/-checked-/g)) {
								submitallowed = false;
								$('label-participation-conditions').addClass('error');
							} else {
								$('label-participation-conditions').removeClass('error');
							}
						}
						
						if(submitallowed) {
							new Request.JSON({
								url:_self.mailURL,
								onComplete:function(response) {
									if(response.message.code == 200) {
										if($('participate-links')) $('participate-links').destroy();
										if($('participate-formular')) $('participate-formular').destroy();
										_self.showMessage(response.message.text);
									}
								}
							}).post({
								'command':'participate',
								'salutation':$('salutation').value,
								'lastname':$('lastname').value,
								'firstname':$('firstname').value,
								'street':$('street').value,
								'number':$('number').value,
								'zip':$('zip').value,
								'city':$('city').value,
								'phone':$('phone').value,
								'mail':$('mail').value,
								'birthday':$('day').value + '.' + $('month').value + '.' + $('year').value,
								'contract':radios[0].getValue(),
								'gas':radios[1].getValue(),
								'power':radios[2].getValue(),
								'iam':radios[3].getValue(),
								'home':$('home').value,
								'sameroom':radios[4].getValue(),
								'participationconditions':true
							});
						}
					}
					
					if($('day')) for(var i = 1; i <= 31; i++) $('day').grab(new Element('option', {'value':(i < 10 ? '0' + i : i)}).set({'html':(i < 10 ? '0' + i : i)}));
					if($('month')) for(var i = 1; i <= 12; i++) $('month').grab(new Element('option', {'value':(i < 10 ? '0' + i : i)}).set({'html':(i < 10 ? '0' + i : i)}));
					var year = new Date().getFullYear() - 18;
					if($('year')) for(var i = year; i >= 1900; i--) $('year').grab(new Element('option', {'value':i}).set({'html':i}));
					
					$$('img.checkbox3').each(function(item, index) {
						item.checked = false;
						item.addEvent('click', function() {
							if(item.checked) {
								item.checked = false;
								item.set({'src':'./images/content/checkbox-on.gif'});
							} else {
								item.checked = true;
								item.set({'src':'./images/content/checkbox-checked-on.gif'});
							}
						});
					});
					
					if($('button-participate')) {
						$('button-participate').addEvent('mouseover', function() {
							this.set({'src':'./images/content/button-participate-on.gif'});
						});
						
						$('button-participate').addEvent('mouseout', function() {
							this.set({'src':'./images/content/button-participate-off.gif'});
						});
						
						$('button-participate').addEvent('click', function() {
							participate();
						});
					}
					
					var radiogroups = new Array('contract', 'gas', 'power', 'iam', 'same-room');
					var radios = new Array();
					radiogroups.each(function(item, index) {
						radios.push(new RADIOGROUP(item, {}));
					});
				}.bind(this));
			}
		}).get({'page':this.page, 'type':'json'});
	},
	
	showGameeTelligence: function() {
		var _self = this;
		if($(this.gameWrapperID.toString())) $(this.gameWrapperID.toString()).destroy();
		var body = document.getElementsByTagName('body')[0];
		var gameURL = './content/eTelligenceGame.swf';
		var gameDimensions = new Object();
		gameDimensions.width = 980;
		gameDimensions.height = 560;

		this.gameWrapper = new Element('div', {'id':this.gameWrapperID}).setStyles({'opacity':0, 'text-align':'center'});
		var game = new Element('div').set('html', '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="' + gameDimensions.width + '" height="' + gameDimensions.height + '" id="eTelligenceGame" align="middle"><param name="allowScriptAccess" value="sameDomain" /><param name="allowFullScreen" value="false" /><param name="movie" value="' + gameURL + '" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><embed src="' + gameURL + '" quality="high" bgcolor="#ffffff" width="' + gameDimensions.width + '" height="' + gameDimensions.height + '" name="eTelligenceGame" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></object>')
		var buttonWrapper = new Element('div').setStyles({
			'height':35,
			'padding':'5px 10px 0px 0px',
			'text-align':'right'
		});
		var buttonClose = new Element('img', {'src':this.imageDir + 'button-close-dialog-off.gif'}).setStyles({
			'cursor':'pointer',
			'height':28,
			'width':28
		});
		buttonClose.addEvent('mouseover', function() {
			this.src = _self.imageDir + 'button-close-dialog-on.gif';
		});
		buttonClose.addEvent('mouseout', function() {
			this.src = _self.imageDir + 'button-close-dialog-off.gif';
		});
		buttonClose.addEvent('click', function() {
			_self.hideGameeTelligence();
		});
		this.gameWrapper.grab(buttonWrapper.grab(buttonClose)).grab(game);
		body.appendChild(this.gameWrapper);
		dialog.show();
		new Fx.Morph(this.gameWrapper, {duration:300}).start({'opacity':1});
	},
	
	hideGameeTelligence: function() {
		new Fx.Morph(this.gameWrapper, {duration:300}).start({'opacity':0});
		dialog.hide();
	},
	
	showMessage: function(message) {
		var _self = this;
		var body = document.getElementsByTagName('body')[0];
		
		this.elements.messageWrapper = new Element('div', {'id':this.options.messageWrapperID}).setStyles({'opacity':0});
		var messageTop = new Element('div', {'class':'message-top'}).set({'html':'&nbsp;'});
		var messageBody = new Element('div', {'class':'message-body'});
		var buttonWrapper = new Element('div').setStyles({'text-align':'right'});
		var buttonClose = new Element('img', {'alt':this.labels.closeMessage, 'class':'button', 'src':this.imageDir + 'button-close-dialog-off.gif', 'title':this.labels.closeMessage});
		buttonClose.addEvent('mouseover', function() {
			this.src = _self.imageDir + 'button-close-dialog-on.gif';
		});
		buttonClose.addEvent('mouseout', function() {
			this.src = _self.imageDir + 'button-close-dialog-off.gif';
		});
		buttonClose.addEvent('click', function() {
			_self.closeMessage();
		});
		buttonWrapper.grab(buttonClose);
		var messageWrapper = new Element('div').set({'html':message});
		messageBody.adopt(buttonWrapper, messageWrapper);
		var messageBottom = new Element('div', {'class':'message-bottom'}).set({'html':'&nbsp;'});
		this.elements.messageWrapper.adopt(messageTop, messageBody, messageBottom);
		body.appendChild(this.elements.messageWrapper);
		
		var win = window.getSize();
		var wrapper = this.elements.messageWrapper.getSize();
		var pos = {x:parseInt(wrapper.x / 2), y:parseInt(wrapper.y / 2)};
		if(pos.x > parseInt(win.x / 2)) pos.x = parseInt(win.x / 2);
		if(pos.y > parseInt(win.y / 2)) pos.y = parseInt(win.y / 2);
		this.elements.messageWrapper.setStyles({'margin-left':-pos.x, 'margin-top':-pos.y + window.getScroll().y});

		if(typeof dialog == 'object') dialog.show();
		if(this.fx.messageWrapper != null) this.fx.messageWrapper.cancel();
		this.fx.messageWrapper = new Fx.Morph(this.elements.messageWrapper, {duration:300}).start({'opacity':1});
	},
	
	closeMessage: function() {
		var _self = this;
		
		if(this.fx.messageWrapper != null) this.fx.messageWrapper.cancel();
		this.fx.messageWrapper = new Fx.Morph(this.elements.messageWrapper, {duration:300}).start({'opacity':0}).chain(function() {
			_self.elements.messageWrapper.destroy();
			if(typeof dialog == 'object') dialog.hide();
		});
	},
	
	showPageNews: function() {
		var _self = this;
		var contentWrapper = new Element('div', {'id':this.contentWrapperID});
		contentWrapper.setStyles({'padding':'80px 0px 100px 297px'});
		var rssWrapper = new Element('div', {'class':'rss-wrapper'});
		var rssIcon = new Element('img', {'alt':this.labels.subscribeRSSFeed, 'src':this.imageDir + 'button-rss-off.gif', 'title':this.labels.subscribeRSSFeed}).setStyles({'cursor':'pointer'});
		rssIcon.addEvent('mouseover', function() {
			this.src = _self.imageDir + 'button-rss-on.gif';
		});
		rssIcon.addEvent('mouseout', function() {
			this.src = _self.imageDir + 'button-rss-off.gif';
		});
		rssIcon.addEvent('click', function() {
			location.href = './rss.php';
		});
		rssWrapper.grab(rssIcon);
		var content = new Element('div', {'id':this.newsContentID});
		contentWrapper.grab(rssWrapper).grab(content);
		$(this.navigationWrapperID.toString()).grab(contentWrapper);
		
		new Request.JSON({
			url:this.ajaxURL,
			onComplete:function(response) {
				_self.newsSet = new NEWSSET(response);
				_self.newsSet.showNewsSet();
				var height = content.getHeight();
				if(height < _self.contentMinHeight) height = _self.contentMinHeight;
				content.setStyle('height', height);
			}
		}).get({'page':this.page, 'type':'json'});
	},
	
	showPageEvents: function() {
		var _self = this;
		var contentWrapper = new Element('div', {'id':this.contentWrapperID});
		contentWrapper.setStyles({'padding':'120px 0px 100px 297px'});
		var content = new Element('div', {'id':this.eventsContentID});
		contentWrapper.grab(content);
		$(this.navigationWrapperID.toString()).grab(contentWrapper);
		
		new Request.JSON({
			url:this.ajaxURL,
			onComplete:function(response) {
				_self.eventSet = new EVENTSET(response);
				_self.eventSet.showEventSet();
				var height = content.getHeight();
				if(height < _self.contentMinHeight) height = _self.contentMinHeight;
				content.setStyle('height', height);
			}
		}).get({'page':this.page, 'type':'json'});
	},
	
	showPageFotos: function() {
		var _self = this;
		var contentWrapper = new Element('div', {'id':this.contentWrapperID});
		contentWrapper.setStyles({'padding':'120px 0px 100px 297px'});
		var content = new Element('div', {'id':this.fotosContentID});
		contentWrapper.grab(content);
		$(this.navigationWrapperID.toString()).grab(contentWrapper);
		
		new Request.JSON({
			url:this.ajaxURL,
			onComplete:function(response) {
				_self.fotoSet = new FOTOSET(response.fotos);
				_self.fotoSet.showNewsSet();
				var height = content.getHeight();
				if(height < _self.contentMinHeight) height = _self.contentMinHeight;
				content.setStyle('height', height);
			}
		}).get({'page':this.page, 'type':'json'});
	},
	
	showPagePress: function() {
		var _self = this;
		var contentWrapper = new Element('div', {'id':this.contentWrapperID});
		contentWrapper.setStyles({'padding':'80px 0px 100px 297px'});
		var rssWrapper = new Element('div', {'class':'rss-wrapper'});
		var rssIcon = new Element('img', {'alt':this.labels.subscribeRSSFeed, 'src':this.imageDir + 'button-rss-off.gif', 'title':this.labels.subscribeRSSFeed}).setStyles({'cursor':'pointer'});
		rssIcon.addEvent('mouseover', function() {
			this.src = _self.imageDir + 'button-rss-on.gif';
		});
		rssIcon.addEvent('mouseout', function() {
			this.src = _self.imageDir + 'button-rss-off.gif';
		});
		rssIcon.addEvent('click', function() {
			location.href = './rss.php';
		});
		rssWrapper.grab(rssIcon);
		var content = new Element('div', {'id':this.pressContentID});
		contentWrapper.grab(rssWrapper).grab(content);
		$(this.navigationWrapperID.toString()).grab(contentWrapper);
		
		new Request.JSON({
			url:this.ajaxURL,
			onComplete:function(response) {
				var tabs = response.tabs;
				var tabWrapper = new Element('ul', {'id':'tabs'});
				var pressContent = new Element('div').setStyle('padding-top', '30px');
				for(var i = 0; i < tabs.length; i++) {
					tabWrapper.grab(new Element('li', {'id':'tab-' + tabs[i].tabBackgroundImage}).set('html', '&nbsp;'));
					var tabContent = new Element('div', {'class':'tabContent', 'id':'tabContent-' + tabs[i].tabBackgroundImage}).set('html', tabs[i].content);
					/*if(i == 0) {
						var message = new Element('div').set({'html':'Pressegespr&auml;ch am 9. Juni 2009 in Berlin:<br />&quot;Unser Smart Grid wird Wirklichkeit&quot:<br />Ort und Zeit bitte erfragen'});
						tabContent.grab(message);
					}*/
					pressContent.grab(tabContent);
				}
				content.grab(tabWrapper).grab(new Element('div', {'class':'clear'})).grab(pressContent);
				
				var height = content.getHeight();
				if(height < _self.contentMinHeight) height = _self.contentMinHeight;
				content.setStyle('height', height);
				
				_self.pressSet = new PRESSSET(response.tabs[0].articles);
				_self.pressSet.showNewsSet();
				var height = content.getHeight();
				if(height < _self.contentMinHeight) height = _self.contentMinHeight;
				content.setStyle('height', height);
				
				var tab = 0;
				var location = window.location.href;
				if(location.indexOf('#') > -1) {
					location = location.split('#')[1];
					switch(location.toString().toLowerCase()) {
						case 'pressemitteilung':
							tab = 0;
							break;
						case 'pressekontakt':
							tab = 1;
							break;
						default:
							_self.pressSet.showArticle(location);
							break;
					}
				}
				
				_self.tabSwapper = new TabSwapper({
					selectedClass:'on',
					deselectedClass:'off',
					initPanel:tab.toInt(),
					tabs:$$('ul#tabs li'),
					clickers:$$('ul#tabs li'),
					sections:$$('div.tabContent'),
					smooth:true
				});
			}
		}).get({'page':this.page, 'type':'json'});
	},

	showPageConsortium: function() {
		var _self = this;
		var contentWrapper = new Element('div', {'id':this.contentWrapperID});
		contentWrapper.setStyles({'padding':'120px 0px 100px 297px'});
		$(this.navigationWrapperID.toString()).grab(contentWrapper);
		new Request.JSON({
			url:this.ajaxURL,
			onComplete:function(response) {
				var currentAccordion = 0;
				var location = window.location.href;
				if(location.indexOf('#') > -1) {
					var accordion = '';
					var company = null;
					location = location.split('#')[1];
					if(location.indexOf(',') > -1) {
						accordion = location.split(',')[0];
						company = location.split(',')[1].toInt();
					} else accordion = location;
					switch(accordion.toString().toLowerCase()) {
						case 'antragsteller':
							currentAccordion = 0;
							break;
						case 'kooperationspartner':
							currentAccordion = 1;
							break;
						case 'unterauftragnehmer':
							currentAccordion = 2;
							break;
						default:
							currentAccordion = 0;
							company = null;
							break;
					}
				}
				_self.consortiumPointer = new CONSORTIUM(contentWrapper, response.images, response.accordions, currentAccordion, company);
			}
		}).get({'page':this.page, 'type':'json'});
	},
	
	showPageContact: function() {
		var _self = this;
		var contentWrapper = new Element('div', {'id':this.contentWrapperID});
		contentWrapper.setStyles({'padding':'120px 0px 100px 297px'});
		var content = new Element('div', {'id':this.contactContentID});
		contentWrapper.grab(content);
		$(this.navigationWrapperID.toString()).grab(contentWrapper);
		
		new Request.JSON({
			url:this.ajaxURL,
			onComplete:function(response) {
				var contact = new Element('div').setStyles({
					'background-color':'#ffffff',
					'height':'auto',
					'opacity':0,
					'width':500
				}).set('html', response.contact.text);
				content.grab(contact);
				var height = contact.getHeight();
				if(height < _self.contentMinHeight) height = _self.contentMinHeight;
				content.setStyle('height', height);
				new Fx.Morph(contact, {duration:300}).start({'opacity':[0, 1]});
			}
		}).get({'page':this.page, 'type':'json'});
	},
	
	showPageImprint: function() {
		var _self = this;
		var contentWrapper = new Element('div', {'id':this.contentWrapperID});
		contentWrapper.setStyles({'padding':'120px 0px 150px 297px'});
		var content = new Element('div', {'id':this.imprintContentID});
		contentWrapper.grab(content);
		$(this.navigationWrapperID.toString()).grab(contentWrapper);
		
		new Request.JSON({
			url:this.ajaxURL,
			onComplete:function(response) {
				var imprint = new Element('div').setStyles({
					'background-color':'#ffffff',
					'height':'auto',
					'opacity':0,
					'width':500
				}).set('html', response.imprint.text);
				content.grab(imprint);
				var height = imprint.getHeight();
				if(height < _self.contentMinHeight) height = _self.contentMinHeight;
				content.setStyle('height', height);
				new Fx.Morph(imprint, {duration:300}).start({'opacity':[0, 1]});
			}
		}).get({'page':this.page, 'type':'json'});
	},
	
	showPageSitemap: function() {
		var _self = this;
		var contentWrapper = new Element('div', {'id':this.contentWrapperID});
		contentWrapper.setStyles({'padding':'120px 0px 100px 297px'});
		var content = new Element('div', {'id':this.sitemapContentID});
		contentWrapper.grab(content);
		$(this.navigationWrapperID.toString()).grab(contentWrapper);
		
		new Request.JSON({
			url:this.ajaxURL,
			onComplete:function(response) {
				var sitemap = new Element('div').setStyles({
					'background-color':'#ffffff',
					'height':'auto',
					'opacity':0,
					'width':500
				}).set('html', response.sitemap.text);
				content.grab(sitemap);
				var height = sitemap.getHeight();
				if(height < _self.contentMinHeight) height = _self.contentMinHeight;
				content.setStyle('height', height);
				new Fx.Morph(sitemap, {duration:300}).start({'opacity':[0, 1]});
			}
		}).get({'page':this.page, 'type':'json'});
	},
	
	showPageSearch: function() {
		var _self = this;
		var contentWrapper = new Element('div', {'id':this.contentWrapperID});
		contentWrapper.setStyles({'padding':'120px 0px 100px 297px'});
		var content = new Element('div', {'id':this.searchContentID});
		contentWrapper.grab(content);
		$(this.navigationWrapperID.toString()).grab(contentWrapper);
		
		var options = {
			all: false,
			project: false,
			consortium: true,
			news: false,
			events: false,
			fotos: false
		};
		
		this.searchCheckboxes = {
			all: new CHECKBOX(true, true, 'Alles durchsuchen'),
			project: new CHECKBOX(false, true, 'Das Projekt'),
			consortium: new CHECKBOX(false, true, 'Das Konsortium'),
			news: new CHECKBOX(false, true, 'News'),
			events: new CHECKBOX(false, true, 'Events'),
			press: new CHECKBOX(false, true, 'Presse')
		};
		
		this.searchCheckboxes['all'].elements.checkbox.removeEvents('click');
		this.searchCheckboxes['all'].elements.checkbox.addEvent('click', function() {
			if(_self.searchCheckboxes['all'].options.checked) _self.setSearchCheckboxAllInactive();
			else _self.setSearchCheckboxAllActive();
		});

		var optionsWrapper = new Element('div');
		
		for(checkbox in this.searchCheckboxes) {
			var option = new Element('div').setStyles({'float':'left', 'width':150});
			option.grab(this.searchCheckboxes[checkbox].elements.checkbox);
			option.grab(new Element('span').set('html', this.searchCheckboxes[checkbox].labels.text));
			optionsWrapper.grab(option);
			if(checkbox == 'consortium' || checkbox == 'press') optionsWrapper.grab(new Element('div', {'class':'clear'}).setStyles({'height':5}).set('html', '&nbsp;'));
		}
		
		var wrapper = new Element('div');
		var searchFieldWrapper = new Element('div', {'class':'search-field-wrapper'});
		var searchField = new Element('input', {'autocomplete':'off', 'class':'search-field-off', 'id':this.options.searchID, 'type':'text'});
		searchField.value = this.labels.pleaseInsertSearchTerm;
		searchField.addEvent('keyup', function(event) {
			if(event.code == 13) _self.search();
		});
		searchField.addEvent('focus', function() {
			this.removeClass('search-field-off');
			this.addClass('search-field-on');
			if(this.value == _self.labels.pleaseInsertSearchTerm) this.value = '';
		});
		searchField.addEvent('blur', function() {
			if(this.value == '') {
				this.removeClass('search-field-on');
				this.addClass('search-field-off');
				this.value = _self.labels.pleaseInsertSearchTerm;
			}
		});
		var searchButtonWrapper = new Element('div').setStyles({'text-align':'right'});
		var searchButton = new Element('img', {'alt':this.labels.searchButton, 'src':this.imageDir + 'search/button-search-off.gif', 'title':this.labels.searchButton}).setStyles({'cursor':'pointer', 'margin-top':23});
		searchButton.addEvent('mouseover', function() {
			this.src = _self.imageDir + 'search/button-search-on.gif';
		});
		searchButton.addEvent('mouseout', function() {
			this.src = _self.imageDir + 'search/button-search-off.gif';
		});
		searchButton.addEvent('click', function() {
			_self.search();
		});
		var searchResult = new Element('div', {'id':this.options.searchResultID});
		
		wrapper.grab(searchFieldWrapper.grab(searchField)).grab(searchButtonWrapper.grab(searchButton)).grab(searchResult);
		
		var search = new Element('div', {'id':'search-content'}).setStyles({
			'background-color':'#ffffff',
			'height':'auto',
			'opacity':0,
			'width':565
		}).grab(optionsWrapper).grab(wrapper);
		
		content.grab(search);
		
		new Autocompleter.Request.JSON(this.options.searchID, this.ajaxURL + '?page=' + this.page + '&type=json&command=getTags', {minLength: 2});
		
		var height = search.getHeight();
		if(height < _self.contentMinHeight) height = _self.contentMinHeight;
		content.setStyle('height', height);
		new Fx.Morph(search, {duration:300}).start({'opacity':[0, 1]});
	},
	
	showPageForeword: function() {
		var _self = this;
		var body = document.getElementsByTagName('body')[0];
		if(Browser.Engine.trident4) body.style.backgroundImage = "url('./images/bg-gradient-foreword-ie6.gif')";
		else body.style.backgroundImage = "url('./images/bg-gradient-foreword.gif')";
		
		var slideImages = [
			{'image':this.imageDir + 'slideshow/foreword-slide-001.jpg','fxTime':500,'delay':2500},
			{'image':this.imageDir + 'slideshow/foreword-slide-002.jpg','fxTime':50,'delay':100},
			{'image':this.imageDir + 'slideshow/foreword-slide-003.jpg','fxTime':50,'delay':100},
			{'image':this.imageDir + 'slideshow/foreword-slide-004.jpg','fxTime':50,'delay':100},
			{'image':this.imageDir + 'slideshow/foreword-slide-005.jpg','fxTime':50,'delay':100},
			{'image':this.imageDir + 'slideshow/foreword-slide-006.jpg','fxTime':500,'delay':1500},
			{'image':this.imageDir + 'slideshow/foreword-slide-007.jpg','fxTime':500,'delay':2500},
			{'image':this.imageDir + 'slideshow/foreword-slide-008.jpg','fxTime':50,'delay':100},
			{'image':this.imageDir + 'slideshow/foreword-slide-009.jpg','fxTime':50,'delay':100},
			{'image':this.imageDir + 'slideshow/foreword-slide-010.jpg','fxTime':50,'delay':100},
			{'image':this.imageDir + 'slideshow/foreword-slide-011.jpg','fxTime':50,'delay':100},
			{'image':this.imageDir + 'slideshow/foreword-slide-012.jpg','fxTime':500,'delay':1500},
			{'image':this.imageDir + 'slideshow/foreword-slide-013.jpg','fxTime':500,'delay':2500},
			{'image':this.imageDir + 'slideshow/foreword-slide-014.jpg','fxTime':50,'delay':100},
			{'image':this.imageDir + 'slideshow/foreword-slide-015.jpg','fxTime':50,'delay':100},
			{'image':this.imageDir + 'slideshow/foreword-slide-016.jpg','fxTime':50,'delay':100},
			{'image':this.imageDir + 'slideshow/foreword-slide-017.jpg','fxTime':50,'delay':100},
			{'image':this.imageDir + 'slideshow/foreword-slide-018.jpg','fxTime':500,'delay':1500},
			{'image':this.imageDir + 'slideshow/foreword-slide-019.jpg','fxTime':500,'delay':2500},
			{'image':this.imageDir + 'slideshow/foreword-slide-020.jpg','fxTime':50,'delay':100},
			{'image':this.imageDir + 'slideshow/foreword-slide-021.jpg','fxTime':50,'delay':100},
			{'image':this.imageDir + 'slideshow/foreword-slide-022.jpg','fxTime':50,'delay':100},
			{'image':this.imageDir + 'slideshow/foreword-slide-023.jpg','fxTime':500,'delay':1500},
			{'image':this.imageDir + 'slideshow/foreword-slide-024.jpg','fxTime':50,'delay':100},
			{'image':this.imageDir + 'slideshow/foreword-slide-025.jpg','fxTime':50,'delay':100},
			{'image':this.imageDir + 'slideshow/foreword-slide-026.jpg','fxTime':50,'delay':100},
			{'image':this.imageDir + 'slideshow/foreword-slide-027.jpg','fxTime':50,'delay':100},
			{'image':this.imageDir + 'slideshow/foreword-slide-028.jpg','fxTime':50,'delay':100},
			{'image':this.imageDir + 'slideshow/foreword-slide-029.jpg','fxTime':500,'delay':1000},
			{'image':this.imageDir + 'slideshow/foreword-slide-031.jpg','fxTime':500,'delay':4000},
			{'image':this.imageDir + 'slideshow/foreword-slide-032.jpg','fxTime':500,'delay':2000},
			{'image':this.imageDir + 'slideshow/foreword-slide-033.jpg','fxTime':500,'delay':5000}
		];

		var contentWrapper = new Element('div', {'id':this.contentWrapperID});
		contentWrapper.setStyles({'padding':'30px 0px 200px 297px'});
		var slideshowWrapper = new Element('div', {'id':this.slideshowWrapperID});
		var slideshowPlayerWrapper = new Element('div', {'id':this.slideshowPlayerWrapperID});
		var slideshowPlayer = new Element('div', {'id':this.slideshowPlayerID});
		var slideshowPlayerHandle = new Element('img', {'id':this.slideshowPlayerHandleID}).setStyle('opacity', 0);
		slideshowPlayerHandle.addEvent('load', function() {
			new Fx.Morph(this, {duration:500}).start({'opacity':[0, 1]});
		});
		slideshowPlayerHandle.set('src', this.imageDir + 'player-handle.gif');
		slideshowPlayer.grab(slideshowPlayerHandle);
		slideshowPlayerWrapper.grab(slideshowPlayer);
		contentWrapper.grab(slideshowWrapper).grab(slideshowPlayerWrapper);
		$(this.navigationWrapperID.toString()).grab(contentWrapper);
		
		new Request.JSON({
			url:this.ajaxURL,
			onComplete:function(response) {
				if(response.teaser) {
					var teaserNews = (response.teaser.news != null ? response.teaser.news : null);
					var teaserEvents = (response.teaser.events != null ? response.teaser.events : null);
				}
				if(teaserNews != null) {
					var lastChar = teaserNews[teaserNews.length - 1];
					if(lastChar != '.' && lastChar != '?' && lastChar != '!') teaserNews += '.';
					var teaserTopNewsImageSrcOver = _self.imageDir + 'button-teaser-topnews-over.gif';
					var teaserTopNewsImageSrcOut = _self.imageDir + 'button-teaser-topnews-on.gif';
					var teaserTopNews = new Element('div', {'class':'teaser-foreword-news'}).setStyles({'left':_self.options.forewordTeaserPositions[_self.options.forewordTeaserPositionsIndex].x, 'opacity':0, 'top':_self.options.forewordTeaserPositions[_self.options.forewordTeaserPositionsIndex].y});
					var teaserTopNewsImage = new Element('img', {'alt':'Top News', 'src':teaserTopNewsImageSrcOut, 'title':'Top News'}).setStyles({'border':0, 'cursor':'pointer'});
					teaserTopNewsImage.addEvent('mouseover', function() {
						this.src = teaserTopNewsImageSrcOver;
					});
					teaserTopNewsImage.addEvent('mouseout', function() {
						this.src = teaserTopNewsImageSrcOut;
					});
					teaserTopNewsImage.addEvent('click', function() {
						window.location.href = 'news.php';
					});
					var teaserTopNewsText = new Element('div').set('html', teaserNews  + '<br />Siehe:&nbsp;<a href="news.php">News</a>');
					teaserTopNews.grab(teaserTopNewsImage).grab(teaserTopNewsText);
					if($(_self.navigationWrapperID.toString())) $(_self.navigationWrapperID.toString()).grab(teaserTopNews);
					new Fx.Morph(teaserTopNews, {duration:500}).start({'opacity':1});
					_self.options.forewordTeaserPositionsIndex++;
				}
				if(teaserEvents != null) {
					var lastChar = teaserEvents[teaserEvents.length - 1];
					if(lastChar != '.' && lastChar != '?' && lastChar != '!') teaserEvents += '.';
					var teaserTopEventImageSrcOver = _self.imageDir + 'button-teaser-topevent-over.gif';
					var teaserTopEventImageSrcOut = _self.imageDir + 'button-teaser-topevent-on.gif';
					var teaserTopEvent = new Element('div', {'class':'teaser-foreword-events'}).setStyles({'left':_self.options.forewordTeaserPositions[_self.options.forewordTeaserPositionsIndex].x, 'opacity':0, 'top':_self.options.forewordTeaserPositions[_self.options.forewordTeaserPositionsIndex].y});
					var teaserTopEventImage = new Element('img', {'alt':'Top Event', 'src':teaserTopEventImageSrcOut, 'title':'Top Event'}).setStyles({'border':0, 'cursor':'pointer'});
					teaserTopEventImage.addEvent('mouseover', function() {
						this.src = teaserTopEventImageSrcOver;
					});
					teaserTopEventImage.addEvent('mouseout', function() {
						this.src = teaserTopEventImageSrcOut;
					});
					teaserTopEventImage.addEvent('click', function() {
						window.location.href = 'events.php';
					});
					var teaserTopEventText = new Element('div').set('html', teaserEvents  + '<br />Siehe:&nbsp;<a href="events.php">Events</a>');
					teaserTopEvent.grab(teaserTopEventImage).grab(teaserTopEventText);
					if($(_self.navigationWrapperID.toString())) $(_self.navigationWrapperID.toString()).grab(teaserTopEvent);
					new Fx.Morph(teaserTopEvent, {duration:500}).start({'opacity':1});
					_self.options.forewordTeaserPositionsIndex++;
				}
				
				_self.showSponsors();
				
				// participate
				var participateSynapse = new Element('img', {'class':'button', 'id':_self.options.participateID, 'src':_self.imageDir + 'participate-synapse-off.gif'}).setStyles({'opacity':0});
				participateSynapse.addEvent('mouseover', function() {
					this.set({'src':_self.imageDir + 'participate-synapse-on.gif'});
				});
				participateSynapse.addEvent('mouseout', function() {
					this.set({'src':_self.imageDir + 'participate-synapse-off.gif'});
				});
				participateSynapse.addEvent('click', function() {
					window.location.href = 'projekt.php#Mitmachen';
				});
				if($(_self.navigationWrapperID.toString())) $(_self.navigationWrapperID.toString()).grab(participateSynapse);
				new Fx.Morph(participateSynapse, {duration:500}).start({'opacity':1});
				
				var participateLink = new Element('div', {'id':_self.options.participateLinkID}).setStyles({'opacity':0}).set({'html':'und werden einer von 2.000 Entdecker-Haushalten! Es winken nicht nur attraktive Preise...<br /><br />Nutzen Sie Ihre Chance und bewerben sich jetzt!<br /><a href="projekt.php#Mitmachen">Zum Anmeldeformular</a>'});
				if($(_self.navigationWrapperID.toString())) $(_self.navigationWrapperID.toString()).grab(participateLink);
				new Fx.Morph(participateLink, {duration:500}).start({'opacity':1});
				
				var slideshow = new SLIDESHOW(slideshowWrapper, slideImages, slideshowPlayer, slideshowPlayerHandle);
				slideshow.show();
			}
		}).get({'page':this.page, 'type':'json'});
	},
	
	showMailtoFormular: function(email) {
		if(typeof dialog == 'object') {
			// hide full-article-wrapper
			if($('full-article-wrapper')) $('full-article-wrapper').setStyles({'z-index':40});
			
			var _self = this;
			email = email.replace(/\[at\]/g, '@').replace(/\[dot\]/g, '.');
			var body = document.getElementsByTagName('body')[0];
			
			this.elements.mailtoFormularWrapper = new Element('div', {'id':this.options.mailtoFormularWrapperID}).setStyles({'opacity':0});
			var header = new Element('div', {'class':'mailto-formular-header'}).set('html', '&nbsp;');
			this.elements.mailtoFormularWrapper.grab(header);
			
			var closeButtonWrapper = new Element('div').setStyles({
				'background-color':'#fff',
				'padding':'0px 10px 0px 0px',
				'text-align':'right'
			})
			var closeButton = new Element('img', {'alt':'', 'src':this.imageDir + 'button-close-dialog-off.gif', 'title':''}).setStyles({'cursor':'pointer'});
			closeButton.addEvent('mouseover', function() {
				this.src = _self.imageDir + 'button-close-dialog-on.gif';
			});
			closeButton.addEvent('mouseout', function() {
				this.src = _self.imageDir + 'button-close-dialog-off.gif';
			});
			closeButton.addEvent('click', function() {
				_self.closeMailtoFormular();
			});
			closeButtonWrapper.grab(closeButton);
			this.elements.mailtoFormularWrapper.grab(closeButtonWrapper);
			
			var introduction = new Element('div', {'id':this.options.mailtoFormularIntroductionID}).setStyles({'background-color':'#fff', 'padding':'10px 20px 10px 20px'});
			var headline = new Element('div', {'class':'mailto-formular-h1'}).set('html', this.labels.mailtoFormularIntroductionText + email);
			introduction.grab(headline);
			this.elements.mailtoFormularWrapper.grab(introduction);
			
			this.elements.formularWrapper = new Element('div').setStyles({'background-color':'#fff', 'padding':'0px 20px 10px 20px'});
			var formular = new Element('form', {'id':this.options.mailtoFormularID});
			var errorName = new Element('div', {'class':'error', 'id':this.options.mailtoFormularErrorNameID}).setStyles({'display':'none'}).set('html', this.labels.mailtoFormularErrorName);
			var labelName = new Element('label', {'class':'normal', 'for':this.options.mailtoFormularNameID, 'id':this.options.mailtoFormularLabelNameID}).set('html', this.labels.mailtoFormularName);
			var inputName = new Element('input', {'class':'normal', 'id':this.options.mailtoFormularNameID, 'type':'text'});
			var clear = new Element('div', {'class':'clear'}).setStyles({'height':10}).set('html', '&nbsp;');
			var errorEMail = new Element('div', {'class':'error', 'id':this.options.mailtoFormularErrorEMailID}).setStyles({'display':'none'}).set('html', this.labels.mailtoFormularErrorEMail);
			var labelEMail = new Element('label', {'class':'normal', 'for':this.options.mailtoFormularEMailID, 'id':this.options.mailtoFormularLabelEMailID}).set('html', this.labels.mailtoFormularEMail);
			var inputEMail = new Element('input', {'class':'normal', 'id':this.options.mailtoFormularEMailID, 'type':'text', 'value':''});
			var errorMessage = new Element('div', {'class':'error', 'id':this.options.mailtoFormularErrorMessageID}).setStyles({'display':'none'}).set('html', this.labels.mailtoFormularErrorMessage);
			var labelMessage = new Element('label', {'class':'normal', 'for':this.options.mailtoFormularMessageID, 'id':this.options.mailtoFormularLabelMessageID}).set('html', this.labels.mailtoFormularMessage);
			var inputMessage = new Element('textarea', {'class':'normal', 'id':this.options.mailtoFormularMessageID}).set('html', '');
			var buttonWrapper = new Element('div').setStyles({'padding':'10px 0px 20px 0px', 'text-align':'right'});
			var button = new Element('img', {'src':this.imageDir + 'button-send-off.gif'}).setStyles({'cursor':'pointer'});
			button.addEvent('mouseover', function() {
				this.src = _self.imageDir + 'button-send-on.gif';
			});
			button.addEvent('mouseout', function() {
				this.src = _self.imageDir + 'button-send-off.gif';
			});
			button.addEvent('click', function() {
				_self.sendMailtoFormular(email);
			});
			buttonWrapper.grab(button);
			formular.grab(errorName).grab(labelName).grab(inputName).grab(clear.clone()).grab(errorEMail).grab(labelEMail).grab(inputEMail).grab(clear.clone()).grab(errorMessage).grab(labelMessage).grab(inputMessage).grab(clear.clone()).grab(buttonWrapper);
			this.elements.formularWrapper.grab(formular);
			var text = new Element('div', {'class':'mailto-formular-separator'}).set('html', this.labels.mailtoFormularAdvice);
			this.elements.formularWrapper.grab(text);
			this.elements.mailtoFormularWrapper.grab(this.elements.formularWrapper);
			
			var footer = new Element('div', {'class':'mailto-formular-footer'}).set('html', '&nbsp;');
			this.elements.mailtoFormularWrapper.grab(footer);
			
			body.appendChild(this.elements.mailtoFormularWrapper);
			if(!$('full-article-wrapper')) dialog.show();
			this.fx.mailtoFormularWrapper = new Fx.Morph(this.elements.mailtoFormularWrapper, {duration:300}).start({'opacity':1});
		}
	},
	
	closeMailtoFormular: function() {
		var _self = this;
		if(this.fx.mailtoFormularWrapper != null) this.fx.mailtoFormularWrapper.cancel();
		this.fx.mailtoFormularWrapper = new Fx.Morph(this.elements.mailtoFormularWrapper, {duration:300}).start({'opacity':0}).chain(function() {
			_self.elements.mailtoFormularWrapper.destroy();
			// show full-article-wrapper 
			if($('full-article-wrapper')) $('full-article-wrapper').setStyles({'z-index':95});
			else dialog.hide();
		});
	},
	
	sendMailtoFormular: function(email) {
		var _self = this;
		var submitallowed = true;
		
		if($(this.options.mailtoFormularNameID.toString()).value.length < 3) {
			submitallowed = false;
			$(this.options.mailtoFormularErrorNameID.toString()).style.display = 'block';
			$(this.options.mailtoFormularLabelNameID.toString()).removeClass('normal').addClass('error');
			$(this.options.mailtoFormularNameID.toString()).removeClass('normal').addClass('error');
		} else {
			$(this.options.mailtoFormularErrorNameID.toString()).style.display = 'none';
			$(this.options.mailtoFormularLabelNameID.toString()).removeClass('error').addClass('normal');
			$(this.options.mailtoFormularNameID.toString()).removeClass('error').addClass('normal');
		}
		
		if(!this.checkMail($(this.options.mailtoFormularEMailID.toString()).value)) {
			submitallowed = false;
			$(this.options.mailtoFormularErrorEMailID.toString()).style.display = 'block';
			$(this.options.mailtoFormularLabelEMailID.toString()).removeClass('normal').addClass('error');
			$(this.options.mailtoFormularEMailID.toString()).removeClass('normal').addClass('error');
		} else {
			$(this.options.mailtoFormularErrorEMailID.toString()).style.display = 'none';
			$(this.options.mailtoFormularLabelEMailID.toString()).removeClass('error').addClass('normal');
			$(this.options.mailtoFormularEMailID.toString()).removeClass('error').addClass('normal');
		}
		
		if($(this.options.mailtoFormularMessageID.toString()).value.length < 10) {
			submitallowed = false;
			$(this.options.mailtoFormularErrorMessageID.toString()).style.display = 'block';
			$(this.options.mailtoFormularLabelMessageID.toString()).removeClass('normal').addClass('error');
			$(this.options.mailtoFormularMessageID.toString()).removeClass('normal').addClass('error');
		} else {
			$(this.options.mailtoFormularErrorMessageID.toString()).style.display = 'none';
			$(this.options.mailtoFormularLabelMessageID.toString()).removeClass('error').addClass('normal');
			$(this.options.mailtoFormularMessageID.toString()).removeClass('error').addClass('normal');
		}
		
		if(submitallowed) {
			var request = new Request({url:this.mailURL});
			request.onSuccess = function(text, xml) {
				if(text == 'sendMailOK') {
					_self.elements.formularWrapper.destroy();
					$(_self.options.mailtoFormularIntroductionID.toString()).set('html', _self.labels.mailtoFormularSuccess);
				} else {
					$(_self.options.mailtoFormularIntroductionID.toString()).set('html', _self.labels.mailtoFormularFailure);
				}
			}
			request.send('command=mailto&recipient=' + email + '&name=' + $(this.options.mailtoFormularNameID.toString()).value + '&sender=' + $(this.options.mailtoFormularEMailID.toString()).value + '&message=' + $(this.options.mailtoFormularMessageID.toString()).value);
		}
	},
	
	showContactFormular: function() {
		if(typeof dialog == 'object') {
			var _self = this;
			var body = document.getElementsByTagName('body')[0];
			
			this.elements.contactFormularWrapper = new Element('div', {'id':this.options.contactFormularWrapperID}).setStyles({'opacity':0});
			var header = new Element('div', {'class':'mailto-formular-header'}).set('html', '&nbsp;');
			this.elements.contactFormularWrapper.grab(header);
			
			var closeButtonWrapper = new Element('div').setStyles({
				'background-color':'#fff',
				'padding':'0px 10px 0px 0px',
				'text-align':'right'
			})
			var closeButton = new Element('img', {'alt':'', 'src':this.imageDir + 'button-close-dialog-off.gif', 'title':''}).setStyles({'cursor':'pointer'});
			closeButton.addEvent('mouseover', function() {
				this.src = _self.imageDir + 'button-close-dialog-on.gif';
			});
			closeButton.addEvent('mouseout', function() {
				this.src = _self.imageDir + 'button-close-dialog-off.gif';
			});
			closeButton.addEvent('click', function() {
				_self.closeContactFormular();
			});
			closeButtonWrapper.grab(closeButton);
			this.elements.contactFormularWrapper.grab(closeButtonWrapper);
			
			var introduction = new Element('div', {'id':this.options.contactFormularIntroductionID}).setStyles({'background-color':'#fff', 'padding':'10px 20px 10px 20px'});
			var headline = new Element('div', {'class':'mailto-formular-h1'}).set('html', this.labels.contactFormularIntroductionText);
			introduction.grab(headline);
			this.elements.contactFormularWrapper.grab(introduction);
			
			this.elements.formularWrapper = new Element('div').setStyles({'background-color':'#fff', 'padding':'0px 20px 10px 20px'});
			var formular = new Element('form', {'id':this.options.contactFormularID});
			var errorSalutation = new Element('div', {'class':'error', 'id':this.options.contactFormularErrorSalutationID}).setStyles({'display':'none'}).set('html', this.labels.contactFormularErrorSalutation);
			var labelSalutation = new Element('label', {'class':'normal', 'for':this.options.contactFormularSalutationID, 'id':this.options.contactFormularLabelSalutationID}).set('html', this.labels.contactFormularSalutation);
			var selectSalutation = new Element('select', {'class':'normal', 'id':this.options.contactFormularSalutationID});
			var femaleOption = new Element('option', {'selected':'selected', 'value':'female'}).set('html', this.labels.femaleOption);
			var maleOption = new Element('option', {'value':'male'}).set('html', this.labels.maleOption);
			selectSalutation.grab(femaleOption).grab(maleOption);
			var errorName = new Element('div', {'class':'error', 'id':this.options.contactFormularErrorNameID}).setStyles({'display':'none'}).set('html', this.labels.contactFormularErrorName);
			var labelName = new Element('label', {'class':'normal', 'for':this.options.contactFormularNameID, 'id':this.options.contactFormularLabelNameID}).set('html', this.labels.contactFormularName);
			var inputName = new Element('input', {'class':'normal', 'id':this.options.contactFormularNameID, 'type':'text'});
			var clear = new Element('div', {'class':'clear'}).setStyles({'height':10}).set('html', '&nbsp;');
			var errorStreet = new Element('div', {'class':'error', 'id':this.options.contactFormularErrorStreetID}).setStyles({'display':'none'}).set('html', this.labels.contactFormularErrorStreet);
			var labelStreet = new Element('label', {'class':'normal', 'for':this.options.contactFormularStreetID, 'id':this.options.contactFormularLabelStreetID}).set('html', this.labels.contactFormularStreet);
			var inputStreet = new Element('input', {'class':'normal', 'id':this.options.contactFormularStreetID, 'type':'text', 'value':''});
			var errorZip = new Element('div', {'class':'error', 'id':this.options.contactFormularErrorZipID}).setStyles({'display':'none'}).set('html', this.labels.contactFormularErrorZip);
			var labelZip = new Element('label', {'class':'normal', 'for':this.options.contactFormularZipID, 'id':this.options.contactFormularLabelZipID}).set('html', this.labels.contactFormularZip);
			var inputZip = new Element('input', {'class':'normal', 'id':this.options.contactFormularZipID, 'type':'text', 'value':''});
			var errorCity = new Element('div', {'class':'error', 'id':this.options.contactFormularErrorCityID}).setStyles({'display':'none'}).set('html', this.labels.contactFormularErrorCity);
			var labelCity = new Element('label', {'class':'normal', 'for':this.options.contactFormularCityID, 'id':this.options.contactFormularLabelCityID}).set('html', this.labels.contactFormularCity);
			var inputCity = new Element('input', {'class':'normal', 'id':this.options.contactFormularCityID, 'type':'text', 'value':''});
			var labelPhone = new Element('label', {'class':'normal', 'for':this.options.contactFormularPhoneID, 'id':this.options.contactFormularLabelPhoneID}).set('html', this.labels.contactFormularPhone);
			var inputPhone = new Element('input', {'class':'normal', 'id':this.options.contactFormularPhoneID, 'type':'text', 'value':''});
			var errorEMail = new Element('div', {'class':'error', 'id':this.options.contactFormularErrorEMailID}).setStyles({'display':'none'}).set('html', this.labels.contactFormularErrorEMail);
			var labelEMail = new Element('label', {'class':'normal', 'for':this.options.contactFormularEMailID, 'id':this.options.contactFormularLabelEMailID}).set('html', this.labels.contactFormularEMail);
			var inputEMail = new Element('input', {'class':'normal', 'id':this.options.contactFormularEMailID, 'type':'text', 'value':''});
			var errorMessage = new Element('div', {'class':'error', 'id':this.options.contactFormularErrorMessageID}).setStyles({'display':'none'}).set('html', this.labels.contactFormularErrorMessage);
			var labelMessage = new Element('label', {'class':'normal', 'for':this.options.contactFormularMessageID, 'id':this.options.contactFormularLabelMessageID}).set('html', this.labels.contactFormularMessage);
			var inputMessage = new Element('textarea', {'class':'normal', 'id':this.options.contactFormularMessageID}).set('html', '');
			var buttonWrapper = new Element('div').setStyles({'padding':'10px 0px 20px 0px', 'text-align':'right'});
			var button = new Element('img', {'src':this.imageDir + 'button-send-off.gif'}).setStyles({'cursor':'pointer'});
			button.addEvent('mouseover', function() {
				this.src = _self.imageDir + 'button-send-on.gif';
			});
			button.addEvent('mouseout', function() {
				this.src = _self.imageDir + 'button-send-off.gif';
			});
			button.addEvent('click', function() {
				_self.sendContactFormular();
			});
			buttonWrapper.grab(button);
			formular.grab(errorSalutation).grab(labelSalutation).grab(selectSalutation).grab(clear.clone()).grab(errorName).grab(labelName).grab(inputName).grab(clear.clone()).grab(errorStreet).grab(labelStreet).grab(inputStreet).grab(clear.clone()).grab(errorZip).grab(labelZip).grab(inputZip).grab(clear.clone()).grab(errorCity).grab(labelCity).grab(inputCity).grab(clear.clone()).grab(labelPhone).grab(inputPhone).grab(clear.clone()).grab(errorEMail).grab(labelEMail).grab(inputEMail).grab(clear.clone()).grab(errorMessage).grab(labelMessage).grab(inputMessage).grab(clear.clone()).grab(buttonWrapper);
			this.elements.formularWrapper.grab(formular);
			var text = new Element('div', {'class':'mailto-formular-separator'}).set('html', this.labels.contactFormularAdvice);
			this.elements.formularWrapper.grab(text);
			this.elements.contactFormularWrapper.grab(this.elements.formularWrapper);
			
			var footer = new Element('div', {'class':'mailto-formular-footer'}).set('html', '&nbsp;');
			this.elements.contactFormularWrapper.grab(footer);
			
			body.appendChild(this.elements.contactFormularWrapper);
			dialog.show();
			this.fx.contactFormularWrapper = new Fx.Morph(this.elements.contactFormularWrapper, {duration:300}).start({'opacity':1});
		}
	},
	
	closeContactFormular: function() {
		var _self = this;
		if(this.fx.contactFormularWrapper != null) this.fx.contactFormularWrapper.cancel();
		this.fx.contactFormularWrapper = new Fx.Morph(this.elements.contactFormularWrapper, {duration:300}).start({'opacity':0}).chain(function() {
			_self.elements.contactFormularWrapper.destroy();
			dialog.hide();
		});
	},
	
	sendContactFormular: function() {
		var _self = this;
		var submitallowed = true;
		
		if($(this.options.contactFormularNameID.toString()).value.length < 3) {
			submitallowed = false;
			$(this.options.contactFormularErrorNameID.toString()).style.display = 'block';
			$(this.options.contactFormularLabelNameID.toString()).removeClass('normal').addClass('error');
			$(this.options.contactFormularNameID.toString()).removeClass('normal').addClass('error');
		} else {
			$(this.options.contactFormularErrorNameID.toString()).style.display = 'none';
			$(this.options.contactFormularLabelNameID.toString()).removeClass('error').addClass('normal');
			$(this.options.contactFormularNameID.toString()).removeClass('error').addClass('normal');
		}
		
		if($(this.options.contactFormularStreetID.toString()).value.length < 3) {
			submitallowed = false;
			$(this.options.contactFormularErrorStreetID.toString()).style.display = 'block';
			$(this.options.contactFormularLabelStreetID.toString()).removeClass('normal').addClass('error');
			$(this.options.contactFormularStreetID.toString()).removeClass('normal').addClass('error');
		} else {
			$(this.options.contactFormularErrorStreetID.toString()).style.display = 'none';
			$(this.options.contactFormularLabelStreetID.toString()).removeClass('error').addClass('normal');
			$(this.options.contactFormularStreetID.toString()).removeClass('error').addClass('normal');
		}
		
		if($(this.options.contactFormularZipID.toString()).value.length < 3) {
			submitallowed = false;
			$(this.options.contactFormularErrorZipID.toString()).style.display = 'block';
			$(this.options.contactFormularLabelZipID.toString()).removeClass('normal').addClass('error');
			$(this.options.contactFormularZipID.toString()).removeClass('normal').addClass('error');
		} else {
			$(this.options.contactFormularErrorZipID.toString()).style.display = 'none';
			$(this.options.contactFormularLabelZipID.toString()).removeClass('error').addClass('normal');
			$(this.options.contactFormularZipID.toString()).removeClass('error').addClass('normal');
		}
		
		if($(this.options.contactFormularCityID.toString()).value.length < 3) {
			submitallowed = false;
			$(this.options.contactFormularErrorCityID.toString()).style.display = 'block';
			$(this.options.contactFormularLabelCityID.toString()).removeClass('normal').addClass('error');
			$(this.options.contactFormularCityID.toString()).removeClass('normal').addClass('error');
		} else {
			$(this.options.contactFormularErrorCityID.toString()).style.display = 'none';
			$(this.options.contactFormularLabelCityID.toString()).removeClass('error').addClass('normal');
			$(this.options.contactFormularCityID.toString()).removeClass('error').addClass('normal');
		}
		
		if(!this.checkMail($(this.options.contactFormularEMailID.toString()).value)) {
			submitallowed = false;
			$(this.options.contactFormularErrorEMailID.toString()).style.display = 'block';
			$(this.options.contactFormularLabelEMailID.toString()).removeClass('normal').addClass('error');
			$(this.options.contactFormularEMailID.toString()).removeClass('normal').addClass('error');
		} else {
			$(this.options.contactFormularErrorEMailID.toString()).style.display = 'none';
			$(this.options.contactFormularLabelEMailID.toString()).removeClass('error').addClass('normal');
			$(this.options.contactFormularEMailID.toString()).removeClass('error').addClass('normal');
		}
		
		if($(this.options.contactFormularMessageID.toString()).value.length < 10) {
			submitallowed = false;
			$(this.options.contactFormularErrorMessageID.toString()).style.display = 'block';
			$(this.options.contactFormularLabelMessageID.toString()).removeClass('normal').addClass('error');
			$(this.options.contactFormularMessageID.toString()).removeClass('normal').addClass('error');
		} else {
			$(this.options.contactFormularErrorMessageID.toString()).style.display = 'none';
			$(this.options.contactFormularLabelMessageID.toString()).removeClass('error').addClass('normal');
			$(this.options.contactFormularMessageID.toString()).removeClass('error').addClass('normal');
		}
		
		if(typeof dialog == 'object') dialog.resize();
		
		if(submitallowed) {
			var request = new Request({url:this.mailURL});
			request.onSuccess = function(text, xml) {
				if(text == 'sendMailOK') {
					_self.elements.formularWrapper.destroy();
					$(_self.options.contactFormularIntroductionID.toString()).set('html', _self.labels.contactFormularSuccess);
				} else {
					$(_self.options.contactFormularIntroductionID.toString()).set('html', _self.labels.contactFormularFailure);
				}
			}
			request.send(
				'command=contact' + 
				'&salutation=' + $(this.options.contactFormularSalutationID.toString()).value +
				'&name=' + $(this.options.contactFormularNameID.toString()).value +
				'&street=' + $(this.options.contactFormularStreetID.toString()).value +
				'&zip=' + $(this.options.contactFormularZipID.toString()).value +
				'&city=' + $(this.options.contactFormularCityID.toString()).value +
				'&phone=' + $(this.options.contactFormularPhoneID.toString()).value +
				'&mail=' + $(this.options.contactFormularEMailID.toString()).value +
				'&message=' + $(this.options.contactFormularMessageID.toString()).value
			);
		}
	},
	
	showBePart: function() {
		if(this.page.toString() != 'foreword') {
			var bePartWrapper = new Element('div', {'class':'teaser-bepart'}).setStyles({'opacity':0}).set({'html':(this.page.toString() == 'project' ? this.labels.messageBePartSamePage : this.labels.messageBePart)});
			if(this.page.toString() == 'search') bePartWrapper.setStyles({'top':590});
			if($(this.navigationWrapperID.toString())) $(this.navigationWrapperID.toString()).grab(bePartWrapper);
			new Fx.Morph(bePartWrapper, {duration:500}).start({'opacity':1});
		}
	},
	
	showSponsors: function() {
		var sponsorsWrapper = new Element('div', {'class':'teaser-sponsors'}).setStyles({'opacity':0});
		if(this.page.toString() == 'foreword') sponsorsWrapper.setStyles({'left':this.options.forewordTeaserPositions[this.options.forewordTeaserPositionsIndex].x, 'top':this.options.forewordTeaserPositions[this.options.forewordTeaserPositionsIndex].y});
		else {
			sponsorsWrapper.setStyles({'left':20});
			if(this.page.toString() == 'search') sponsorsWrapper.setStyles({'top':690});
		}
		var eenergyLogoWrapper = new Element('div').setStyles({'float':'left'});
		var eenergyLogo = new Element('img', {'alt':this.labels.eenergyLogo, 'src':this.imageDir + 'logo-eenergy.gif', 'title':this.labels.eenergyLogo});
		eenergyLogoWrapper.grab(eenergyLogo);
		var bwtLogoWrapper = new Element('div').setStyles({'float':'left'});
		var bwtLogo = new Element('img', {'alt':this.labels.bwtLogo, 'src':this.imageDir + 'logo-bwt.gif', 'title':this.labels.bwtLogo});
		bwtLogoWrapper.grab(bwtLogo);
		sponsorsWrapper.grab(bwtLogoWrapper).grab(eenergyLogoWrapper).grab(new Element('div', {'class':'clear'}).set('html', '&nbsp;'));
		if($(this.navigationWrapperID.toString())) $(this.navigationWrapperID.toString()).grab(sponsorsWrapper);
		new Fx.Morph(sponsorsWrapper, {duration:500}).start({'opacity':1});
	},
	
	showTagCloud: function() {
		var _self = this;
		var tagCloud = null;
		var tags = null;
		
		if($(this.options.tagCloudID.toString()) && $(this.options.tagsID.toString())) {
			tagCloud = $(this.options.tagCloudID.toString());
			tags = $(this.options.tagsID.toString());
		} else {
			tagCloud = new Element('div', {'class':'tag-cloud', 'id':this.options.tagCloudID.toString()}).setStyles({'opacity':0, 'top':450});
			var topsearch = new Element('img', {'alt':'', 'src':this.imageDir + 'button-teaser-search-off.gif', 'title':''});
			tags = new Element('div', {'id':this.options.tagsID.toString()});
			if($(this.navigationWrapperID.toString())) $(this.navigationWrapperID.toString()).grab(tagCloud.grab(topsearch).grab(tags));
			new Fx.Morph(tagCloud, {duration:500}).start({'opacity':1});
		}
		
		tags.setStyles({'opacity':0}).set('html', '');
		
		new Request.JSON({
			url:this.ajaxURL,
			onComplete:function(response) {
				if(response.tags.length > 0) {
					for(var i = 0; i < response.tags.length; i++) {
						var tmpTag = new Element('span', {'class':'link-on'}).setStyles({'display':'inline', 'font-size':response.tags[i].fontsize, 'line-height':response.tags[i].fontsize}).set('html', response.tags[i].tag + ' ');
						tmpTag.addEvent('click', (function() {
							_self.setSearchCheckboxAllActive();
							if($(_self.options.searchID.toString())) {
								$(_self.options.searchID.toString()).removeClass('search-field-off');
								$(_self.options.searchID.toString()).addClass('search-field-on');
								$(_self.options.searchID.toString()).value = this.tag;
							}
							_self.search();
						}).bind(response.tags[i]));
						tags.grab(tmpTag);
					}
				} else tags.set('html', _self.labels.noTagsAvailable);
				if(response.search != '' && response.search != null) {
					if($(_self.options.searchID.toString())) {
						if($(_self.options.searchID.toString()).value != response.search && $(_self.options.searchID.toString()).value != _self.labels.noTagsAvailable) {
							$(_self.options.searchID.toString()).value = response.search;
							_self.search();
						}
					}
				}
				_self.fx.tagCloud = new Fx.Morph(tags, {duration:500}).start({'opacity':[0, 1]});
			}
		}).get({'page':this.page, 'type':'json'});
	},
	
	setSearchCheckboxAllActive: function() {
		this.searchCheckboxes['all'].options.checked = true;
		this.searchCheckboxes['all'].elements.checkbox.src = this.searchCheckboxes['all'].options.imageurlcheckedon;
		this.searchCheckboxes['project'].setInactive();
		this.searchCheckboxes['consortium'].setInactive();
		this.searchCheckboxes['news'].setInactive();
		this.searchCheckboxes['events'].setInactive();
		this.searchCheckboxes['press'].setInactive();
	},
	
	setSearchCheckboxAllInactive: function() {
		this.searchCheckboxes['all'].options.checked = false;
		this.searchCheckboxes['all'].elements.checkbox.src = this.searchCheckboxes['all'].options.imageurlnotcheckedon;
		this.searchCheckboxes['project'].setActive();
		this.searchCheckboxes['consortium'].setActive();
		this.searchCheckboxes['news'].setActive();
		this.searchCheckboxes['events'].setActive();
		this.searchCheckboxes['press'].setActive();
	},
	
	search: function() {
		var _self = this;
		
		var options = {
			all: this.searchCheckboxes['all'].options.checked,
			project: this.searchCheckboxes['project'].options.checked,
			consortium: this.searchCheckboxes['consortium'].options.checked,
			news: this.searchCheckboxes['news'].options.checked,
			events: this.searchCheckboxes['events'].options.checked,
			press: this.searchCheckboxes['press'].options.checked
		}
		
		if($(this.options.searchID.toString())) {
			if($(this.options.searchID.toString()).value != '' && $(this.options.searchID.toString()).value != this.labels.pleaseInsertSearchTerm && $(this.options.searchID.toString()).value.length >= 2) {
				new Request.JSON({
					url:this.searchURL,
					onComplete:function(response) {
						$(_self.options.searchResultID.toString()).set('html', '');
						if(response.results.length > 0) {
							for(var i = 0; i < response.results.length; i++) {
								var result = new Element('div', {'class':'search-result'}).set('html', response.results[i].text);
								var moreLinkWrapper = new Element('div', {'class':'more-link-wrapper'});
								var moreLink = new Element('a', {'href':response.results[i].link}).set('html', _self.labels.moreLink);
								moreLinkWrapper.grab(moreLink);
								result.grab(moreLinkWrapper);
								$(_self.options.searchResultID.toString()).grab(result);
							}
							_self.showTagCloud();
						} else $(_self.options.searchResultID.toString()).set('html', _self.labels.noSearchResult);
						var height = $('search-content').getHeight();
						if(height < _self.contentMinHeight) height = _self.contentMinHeight;
						$(_self.searchContentID.toString()).setStyle('height', height);
					}
				}).post({'options':JSON.encode(options), 'search':$(this.options.searchID.toString()).value});
			}
		}
	},
	
	participate: function() {
		var submitallowed = true;
	},
	
	/* *** HELPERS::BEGIN *** */
	checkMail: function(email) {
		if(email.match(/^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i)) return true;
		else return false;
	}
	/* *** HELPERS::END   *** */
});