var MediaServer = 'http://212.6.121.49/vod/westerstede.tv/';

/**
 * Die Hauptklasse des Frontends
 */
var Controller = new Class({
	
	initialize: function() {
		this.main = $('main');
		this.generateMenues();
	},
	
	generateMenues: function() {
		var menues = new MenueGenerator(this.main);
		menues.addMenue({selected:true, picture:'tv.gif', text:'wst | tv', sender:'loadTvContent'});
		menues.addMenue({selected:false, picture:'kontakt.gif', text:'Kontakt', sender:'loadKontaktContent'});
		menues.addMenue({selected:false, picture:'impressum.gif', text:'Impressum', sender:'loadImpressumKontent'});
		this.contentGenerator = new ContentGenerator(this.main);
		this.contentGenerator.loadTvContent();
		menues.addEvent('menueChanged', this.loadMenue.bind(this));
	},
	
	loadMenue: function(loader) {
		this.contentGenerator[loader]();
	}
	
});

/**
 * Generiert den Content der Seite
 */
var ContentGenerator = new Class({
	
	contents: {
		tv: null,
		contact: null,
		impressum: null
	},
	
	initialize: function(main) {
		this.main = main;
		this.generateContent();
	},
	
	generateContent: function() {
		var content = new Element('div',{'id':'content'});
		var contentTop = new Element('div',{'class':'contentTop'});
		this.contentMiddle = new Element('div',{'class':'contentMiddle'});
		var contentBottom = new Element('div',{'class':'contentBottom'});
		
		content.adopt([contentTop, this.contentMiddle, contentBottom]);
		this.main.grab(content);
	},
	
	loadTvContent: function() {
		if(this.contents.tv!=null) this.contents.tv.stopPlayer();
		this.contentMiddle.innerHTML = '';
		if(this.contents.tv==null) this.contents.tv = new TvContentGenerator(this.contentMiddle);
		else this.contents.tv.setContent();
	},
	
	loadKontaktContent: function() {
		this.contents.tv.stopPlayer();
		this.contentMiddle.innerHTML = '';
		if(this.contents.contact==null) this.contents.contact = new KontaktContentGenerator(this.contentMiddle);
		else this.contents.contact.setContent();
	},
	
	loadImpressumKontent: function() {
		this.contents.tv.stopPlayer();
		this.contentMiddle.innerHTML = '';
		if(this.contents.impressum==null) this.contents.impressum = new ImpressumContentGenerator(this.contentMiddle);
		else this.contents.impressum.setContent();
	}
	
});

/**
 * Generiert das Menue
 */
var MenueGenerator = new Class({
	
	Implements: Events,
	
	options: {
		picturePath: 'pics/menue/'
	},
	
	initialize: function(main) {
		this.main = main;
		this.menues = {};
		this.activeMenue = null;
		this.generateMenueContainer();
	},
	
	generateMenueContainer: function() {
		var menueContainer = new Element('div',{'id':'menueContainer'});
		var leftMenueContainer = new Element('div',{'id':'leftMenueContainer'});
		this.middleMenueContainer = new Element('ul',{'id':'middleMenueContainer'});
		var rightMenueContainer = new Element('div',{'id':'rightMenueContainer'});
		menueContainer.adopt([leftMenueContainer, this.middleMenueContainer, rightMenueContainer]);
		var clear = new Element('div',{'class':'clear'});
		this.main.adopt([menueContainer, clear]);
	},
	
	addMenue: function(obj) {
		var menueContainerClass = obj.selected ? 'selectedMenueContainer' : 'normalMenueContainer';
		
		var menueContainer = new Element('li', {'class':menueContainerClass});
		var menueLeft = new Element('div',{'class':'menueLeft'});
		
		var menueMiddle = new Element('div',{'class':'menueMiddle'});
		if(obj.picture) {
			var img = new Element('img',{'src':this.options.picturePath + obj.picture});
			//img.effect('top', {transition: Fx.Transitions.Elastic.easeOut});
			menueContainer.addEvents({
				'click': function(){
				
				}.bind(this),
				'mouseenter': function(event) {
					new ImageBouncer(img, 3, 7);
				}
			});
			menueContainer.addEvent();
			menueMiddle.grab(img);
		}
		if(obj.text) {
			var divText = new Element('div');
			divText.set('text', obj.text);
			menueMiddle.grab(divText);
		}
		
		var menueRight = new Element('div',{'class':'menueRight'});
		menueContainer.adopt([menueLeft, menueMiddle, menueRight]);
		
		this.middleMenueContainer.grab(menueContainer);
		this.menues[obj.sender] = menueContainer;
		if(obj.selected) this.activeMenue = obj.sender;
		menueContainer.addEvent('click', function() {
			this.changeSelected(obj.sender);
			this.fireEvent('menueChanged', obj.sender);
		}.bind(this));
	},
	
	changeSelected: function(sender) {
		if(this.activeMenue!=null) {
			this.menues[this.activeMenue].removeClass('selectedMenueContainer');
			this.menues[this.activeMenue].addClass('normalMenueContainer');
		}
		this.menues[sender].removeClass('normalMenueContainer');
		this.menues[sender].addClass('selectedMenueContainer');
		this.activeMenue = sender;
	}
});

/**
 * Generiert den Inhalt des TV Modus
 */
var TvContentGenerator = new Class({
	
	initialize: function(content) {
		this.content = content;
		this.selectedFilmBlock = 0;
		this.json = null;
		this.loadData('tvID=first');
	},
	
	setContent: function() {
		this.setDataInContent(this.json);
	},
	
	stopPlayer: function() {
		if($('tvPlayer')) this.player.close();
	},
	
	loadData: function(param) {
		param = param ? '&' + param : '';
		new JsonRequest({
			url: 'ajax/getWork.php',
			onSuccess: this.setDataInContent.bind(this)
		}).send('type=tv' + param);
	},
	
	setDataInContent: function(json) {
		if(json.video.length==0) {
			var title = new Element('h2', {'class':'filmTitle'});
			title.set('html', 'Hinweis');
			var text = new Element('div', {'class':'filmText'});
			text.set('html', 'Zur Zeit gibt es keinen Film.');
			this.content.adopt([title, text]);
			return;
		}
		if(this.json==null) this.json = json;
		var playerDiv = new Element('div', {'id':'tvPlayer'});
		this.title = new Element('h2', {'class':'filmTitle'});
		this.title.set('text', json.video.title + ' vom ' + json.video.date);
		this.text = new Element('div', {'class':'filmText'});
		this.text.set('text', json.video['textLong']);
		this.content.adopt([playerDiv, this.title, this.text]);
		this.initVideo();
		if(json.archiv.length>0) this.generateArchiv(json.archiv);
	},
	
	generateArchiv: function(jsonArchiv) {
		this.buttonArchiv = new Element('div', {'class':'buttonArchiv'});
		var archivImg = new Element('img', {'class':'archivImg', 'src':'pics/content/archiv_img.gif'});
		this.buttonArchiv.grab(archivImg);
		
		this.archiv = new Element('div', {'id':'archiv', 'style':'display:none;'});
		var archivContentTop = new Element('div', {'class':'archivContentTop'});
		
		this.archivContentMiddle = new Element('div', {'class':'archivContentMiddle'});
		var archivLayerTop = new Element('div', {'class':'archivLayerTop'});
		this.archivContentMiddle.grab(archivLayerTop);
		
		this.generateArchivContent(this.archivContentMiddle, jsonArchiv);
		var clear = new Element('div', {'class':'clear'});
		this.archivContentMiddle.grab(clear);
		
		var archivLayerBottom = new Element('div', {'class':'archivLayerBottom'});
		this.archivContentMiddle.grab(archivLayerBottom);
		
		var archivContentBottom = new Element('div', {'class':'archivContentBottom'});
		
		if(this.archivBlocksArray.length>1) {
			var archivFilmSliderBlock = this.generateArchivFilmSliderBlock();
			this.archivContentMiddle.grab(archivFilmSliderBlock);
		}
		
		this.archiv.adopt([archivContentTop, this.archivContentMiddle, archivContentBottom]);
		
		var archivButtonClose = new Element('img', {'class':'archivButtonClose', 'src':'pics/content/archiv_button_close.png'});
		this.archivContentMiddle.grab(archivButtonClose);
		
		archivButtonClose.addEvent('click', function(){
			this.archiv.setStyle('display','none');
		}.bind(this));
		
		this.buttonArchiv.addEvents({
			'click': function() {
				if(this.selectedFilmBlock!=0) this.showArchivBlock(0);
				this.archiv.setStyle('display','block');
				this.setArchivHeight();
			}.bind(this),
			'mouseenter': function() {
				new ImageBouncer(archivImg, -5, 0);
			}
		});
		this.content.adopt([this.buttonArchiv, this.archiv]);
	},
	
	setArchivHeight: function() {
		this.archivContentMiddle.setStyle('height','auto');
		var contentHeight = this.content.getHeight();
		var archivHeight = this.archivContentMiddle.getHeight();
		if(contentHeight>465) this.archivContentMiddle.setStyle('height',contentHeight + 'px');
		else if(archivHeight<465) this.archivContentMiddle.setStyle('height','450px');
	},
	
	generateArchivFilmSliderBlock: function() {
		var archivFilmSliderBlock = new Element('div', {'class':'archivFilmSliderBlock'});
		var archivFilmSliderLeftButton = new Element('img', {'class':'archivFilmSliderLeftButton', 'src':'pics/content/archiv_button_left.png'});
		archivFilmSliderLeftButton.addEvent('click', this.sliderButtonPressed.bind(this, 'minus'));
		
		var archivFilmSliderSelectorBox = new Element('ul', {'class':'archivFilmSliderSelectorBox'});
		var archivFilmSliderSelectorText = new Element('li', {'class':'archivFilmSliderSelectorText'});
		archivFilmSliderSelectorText.set('text','Seite');
		archivFilmSliderSelectorBox.grab(archivFilmSliderSelectorText);
		this.selectSliders = [];
		for(var i=0; i<this.archivBlocksArray.length; i++) {
			var select = new Element('li');
			if(i==0) select.addClass('selected');
			this.selectSliders.push(select);
			select.set('text',i+1);
			var selectFunc = this.showArchivBlock.bind(this, i);
			select.addEvent('click', selectFunc);
			archivFilmSliderSelectorBox.grab(select);
		}
		
		var archivFilmSliderRightButton = new Element('img', {'class':'archivFilmSliderRightButton', 'src':'pics/content/archiv_button_right.png'});
		archivFilmSliderRightButton.addEvent('click', this.sliderButtonPressed.bind(this, 'plus'));
		
		archivFilmSliderBlock.adopt([archivFilmSliderLeftButton, archivFilmSliderSelectorBox, archivFilmSliderRightButton]);
		return archivFilmSliderBlock;
	},
	
	sliderButtonPressed: function(type) {
		if(type=='plus') {
			var next = this.selectedFilmBlock + 1;
			if(next<this.archivBlocksArray.length)
				this.showArchivBlock(next);
		} else {
			var before = this.selectedFilmBlock - 1;
			if(before >= 0)
				this.showArchivBlock(before);
		}
	},
	
	showArchivBlock: function(newSelectedFilmBlock) {
		if(newSelectedFilmBlock==this.selectedFilmBlock) return;
		this.archivBlocksArray[this.selectedFilmBlock].setStyle('display','none');
		this.archivBlocksArray[newSelectedFilmBlock].setStyle('display','block');
		this.selectSliders[this.selectedFilmBlock].removeClass('selected');
		this.selectSliders[newSelectedFilmBlock].addClass('selected');
		this.selectedFilmBlock = newSelectedFilmBlock;
		this.setArchivHeight();
	},
	
	generateArchivContent: function(archivContentMiddle, jsonArchiv) {
		var blockID = 0;
		this.archivBlocksArray = [];
		for(var i=0; i<jsonArchiv.length; i++) {
			if(blockID==6) blockID = 0;
			else if(blockID==2 || blockID==4) {
				var archivSeperator = new Element('div', {'class':'archivSeperator'});
				archivBlock.grab(archivSeperator);
			}
			if(blockID==0) {
				if(i>0) archivContentMiddle.grab(archivBlock);
				var archivBlock = new Element('div', {'class':'archivBlock'});
				this.archivBlocksArray.push(archivBlock);
				if(i!=0) archivBlock.setStyles({'display':'none'});
			}
			if(blockID==0 || blockID==2 || blockID==4) {
				var archivLayerMiddle = new Element('div', {'class':'archivLayerMiddle'});
				archivBlock.grab(archivLayerMiddle);
			}
			var archivFilmBox = this.generateArchivFilm(jsonArchiv[i]);
			archivLayerMiddle.grab(archivFilmBox);
			blockID++;
		}
		archivContentMiddle.grab(archivBlock);
	},
	
	generateArchivFilm: function(film) {
		var date = new Date();
		var imageURL = 'method/getImage.php?image=' + film.name + '&width=130&height=100&type=cut&time=' + date.getTime();
		
		var archivFilmBox = new Element('div', {'class':'archivFilmBox'});
		var archivFilmBoxIEBug = new Element('div', {'class':'archivFilmBoxIEBug'});
		archivFilmBox.grab(archivFilmBoxIEBug);
		
		var archivImageBlock = new Element('div', {'class':'archivImageBlock'});
		var img = new Element('img', {'src':imageURL});
		archivImageBlock.adopt([img]);
		
		archivTextBox = new Element('div', {'class':'archivTextBox'});
		archivTextBox.set('html','<h3>' + film.title + '</h3><h4> vom ' + film.date + '</h4><div>' + film.textShort + '</div>');
		
		var playButton = new Element('img', {'class':'archivPlayButton', 'src':'pics/content/archiv_button_play.gif'});
		
		archivFilmBoxIEBug.adopt([archivImageBlock, archivTextBox, playButton]);
		
		archivFilmBox.addEvent('click', function(){
			this.setNewMovie(film);
		}.bind(this));
		archivFilmBox.addEvent('mouseover',function(layer){
			layer.setStyle('background-color','#cc6733');
		}.pass(archivFilmBox));
		archivFilmBox.addEvent('mouseout',function(layer){
			layer.setStyle('background-color','#758082');
		}.pass(archivFilmBox));
		return archivFilmBox;
	},
	
	initVideo: function() {
		var date = new Date();
		var imageURL = 'method/getImage.php?image=' + this.json.video.name + '&width=640&time=' + date.getTime();
		var movieURL = MediaServer + this.json.video.name + '.flv';
		this.movieID = this.json.video.movieID;
		this.player = $f('tvPlayer', 
			{src:'lib/flash/flowplayer.commercial-3.1.5.swf', wmode:'transparent'},
			{key:'$2446f5906808580dfb8', playlist: [
	            {url:escape(imageURL), scaling:'fit', type:'image'},
	            {autoPlay:false, autoBuffering:true, url:movieURL, scaling:'fit', onBegin:this.incMovieCount.bind(this)}]}
		);
		this.player.onPlaylistReplace(this.incMovieCount.bind(this));
	},
	
	incMovieCount: function() {
		new JsonRequest({
			url: 'ajax/getWork.php',
			showLoader: false,
			onSuccess: this.setDataInContent.bind(this)
		}).send('type=incMovieCount&movieID=' + this.movieID);
	},
	
	setNewMovie: function(film) {
		var date = new Date();
		var imageURL = 'method/getImage.php?image=' + film.name + '&width=640&time=' + date.getTime();
		var movieURL = MediaServer + film.name + '.flv';
		this.movieID = film.movieID;
		this.player.setPlaylist([
			{url:imageURL, scaling:'fit', type:'image'},
			{autoPlay:false, autoBuffering:false, url:movieURL, scaling:'fit'}
		]);
		this.title.set('text', film.title + ' vom ' + film.date);
		this.text.set('text', film.textLong);
		this.archiv.setStyle('display','none');
		this.player.play();
	}
});

/**
 * Generiert den Inhalt fuer den Kontakt
 */
var KontaktContentGenerator = new Class({	
	
	verifyElements: {
		'name' : 'Sie haben keinen Namen angegeben.<br/>Bitte tragen Sie Ihren Nachnamen ein.',
		'vorname': 'Sie haben keinen Vornamen angegeben.<br/>Bitte tragen Sie Ihren Vornamen ein.',
		'email' : 'Sie haben keine (g&uuml;ltige) E-Mail angegeben.<br/>Bitte tragen Sie eine g&uuml;ltige E-Mail-Adresse ein.',
		'datenschutz' : 'Sie haben keine Einverst&auml;ndniserkl&auml;rung zu unserer Datenschutzerkl&auml;rung abgegeben.'
	},
	
	initialize: function(content) {
		this.content = content;
		this.formElements = {};
		this.checkedElements = [];
		this.generateKontaktFormular();
		this.checkElements();
	},
	
	setContent: function() {
		this.initialize(this.content);
	},
	
	checkElements: function() {
		for(var i=0; i<this.checkedElements.length; i++) {
			this.checkedElements[i].checked = true;
		}
	},
	
	generateKontaktFormular: function() {
		var textTop = '<h2>Kontaktformular</h2><p>Haben sie Fragen oder Anregungen zu westerstede | tv?<br />Ob Kritik, Lob oder Fragen rund um unseren Auftritt - hier ist der richtige Platz dafür.</p>';
		this.content.set('html', textTop);
		
		this.formular = new Element('div', {'class':'formular'});
		var formularContentLeft = new Element('div', {'class':'formularContentLeft'});
		this.generateContentLeft(formularContentLeft);
		var formularContentRight = new Element('div', {'class':'formularContentRight'});
		this.generateContentRight(formularContentRight);
		var formularSuccesses = new Element('div', {'class':'formularSuccesses'});
		this.generateContentSuccess(formularSuccesses);
		this.formular.adopt([formularContentLeft, formularContentRight, formularSuccesses]);
		this.generateTextAndSendButton(this.formular);
		
		var clear = new Element('div', {'class':'clear'});
		this.content.adopt([this.formular, clear]);
	},
	
	verifyContactData: function() {
		var errors = [];
		if(this.formElements['name'].element.value.length<1) errors.push(this.verifyElements['name']);
		if(this.formElements['vorname'].element.value.length<1) errors.push(this.verifyElements['vorname']);
		if(!this.formElements['email'].element.value.test(/^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i)) errors.push(this.verifyElements['email']);
		if(!this.formElements['datenschutz'].element.checked) errors.push(this.verifyElements['datenschutz']);
		if(errors.length>0) {
			Overlayer.showWarning('Bitte korrigieren Sie folgende Eingabefelder:', errors);
		} else {
			var send = this.serialize();
			new JsonRequest({
				url: 'ajax/getWork.php',
				onSuccess: function(json) {
					Overlayer.checkJsonResult(json, 'result', this.showResult.bind(this));
				}.bind(this)
			}).send('type=contact&json=' + send);
		}
	},
	
	showResult: function() {
		this.formular.setStyle('display', 'none');
		var formResult = new Element('div', {'class':'formResult'});
		formResult.set('html', '<p>Vielen Dank für Ihre Kontaktaufnahme. Ein Mitarbeiter wird sich so bald wie Möglich um Ihre Frage/Anregung kümmern.</p><p>Ihr westerstede tv Team</p>');
		this.content.grab(formResult);
	},
	
	serialize: function() {
		var serializeObj = {};
		for(var formElement in this.formElements) {
			if(this.formElements[formElement].type=='input') {
				var value = this.formElements[formElement].element.value.trim();
				if(value!='') {
					serializeObj[formElement.capitalize()] = value;
				}
			} else if(this.formElements[formElement].type=='checkbox') {
				if(this.formElements[formElement].element.checked) {
					serializeObj[formElement.capitalize()] = 'einverstanden';
				} else {
					serializeObj[formElement.capitalize()] = 'nicht einverstanden';
				}
			} else if(this.formElements[formElement].type=='radio') {
				var radios = this.formElements[formElement].element;
				for(var i=0; i<radios.length; i++) {
					if(radios[i].checked) {
						serializeObj[formElement.capitalize()] = radios[i].value;
						break;
					}
				}
			} else if(this.formElements[formElement].type=='selectbox') {
				var value = this.formElements[formElement].element.getSelected();
				if(value!='') {
					serializeObj[formElement.capitalize()] = value;
				}
			} else if(this.formElements[formElement].type=='textarea') {
				var value = this.formElements[formElement].element.value.clean();
				if(value!='') {
					serializeObj[formElement.capitalize()] = this.formElements[formElement].element.value.trim();
				}
			}
		}
		return encodeURIComponent(JSON.encode(serializeObj));
	},
	
	generateTextAndSendButton: function(formular) {
		var sendButton = new Element('img', {'class':'sendButton', src:'pics/forms/button_send.jpg'});
		sendButton.addEvent('click', this.verifyContactData.bind(this));
		var dutyText = new Element('span', {'class':'dutyText'});
		dutyText.set('html','* Pflichtfelder - bitte ausf&uuml;llen!');
		formular.adopt([sendButton, dutyText]);
	},
	
	generateContentLeft: function(formularContentLeft) {
		this.generateSelectBoxWithLabel(formularContentLeft, 'anrede', 'Anrede', [{text:'Herr'}, {text:'Frau'}]);
		this.generateLabelWithInput(formularContentLeft, 'name', 'Name *', {maxlength:15});
		this.generateLabelWithInput(formularContentLeft, 'vorname', 'Vorname *', {maxlength:15});
		this.generateLabelWithInput(formularContentLeft, 'email', 'E-Mail *', {maxlength:100});
		this.generateLabelWithInput(formularContentLeft, 'strasse', 'Straße', {maxlength:40});
		this.generateLabelWithInput(formularContentLeft, 'plz', 'PLZ', {maxlength:5});
		this.generateLabelWithInput(formularContentLeft, 'ort', 'Ort', {maxlength:40});
		this.generateRadioWithLabel(formularContentLeft, 'ewetelkunde', 'Ich bin Kunde von EWE TEL', ['Ja', 'Nein'], 'labelRadioLong');
	},
	
	generateContentRight: function(formularContentRight) {
		this.generateTextareaWithLabel(formularContentRight, 'nachricht', 'Ihre Nachricht an uns:', 'labelMessage', 'textareaMessage')
	},
	
	generateContentSuccess: function(formularSuccesses) {
		this.generateCheckboxWithText(formularSuccesses, 'datenschutz', 'Ich habe die Erkl&auml;rung von EWE TEL zum <u><b><a href="http://www.ewetel.de/124.php" target="_blank">Datenschutz</a></b></u> gelesen und bin damit einverstanden. *')
		this.generateCheckboxWithText(formularSuccesses, 'beratung', 'Ich bin damit einverstanden, dass die EWE TEL GmbH die von mir angegebenen Daten für die Beratung zu Produkten und zu meiner Information sowie zur Marktforschung verarbeitet und nutzt.<br/>EWE TEL darf zu diesen Zwecken per E-Mail, SMS, Telefon oder Post Kontakt zu mir aufnehmen.<br/>Die Daten werden nicht an Dritte weitergegeben.');
	},
	
	generateCheckboxWithText: function(parent, name, text, checked) {
		var checkbox = new Element('input', {'type':'checkbox', 'class':'formCheckbox', name:name});
		var checkboxText = new Element('span', {'class':'checkboxText'});
		checkboxText.set('html', text + '<p></p>');
		
		parent.adopt([checkbox, checkboxText]);
		if(checked) this.checkedElements.push(checkbox);
		this.formElements[name] = {type:'checkbox', element:checkbox};
	},
	
	generateLabelWithInput: function(parent, name, labelText, attributes) {
		var label = new Element('label', {'class':'formLabel'});
		label.set('text', labelText);
		var input = new Element('input', {'class':'formInput', name:name});
		for(var attr in attributes) input.set(attr, attributes[attr]);
		parent.adopt([label, input]);
		this.formElements[name] = {type:'input', element:input};
	},
	
	generateSelectBoxWithLabel: function(parent, name, labelText, selections) {
		var label = new Element('label', {'class':'formLabel'});
		label.set('text', labelText);
		parent.grab(label);
		var selectbox = new SelectBox({selections:selections, parent:parent});
		this.formElements[name] = {type:'selectbox', element:selectbox};
	},
	
	generateRadioWithLabel: function(parent, name, labelText, radioTexts, labelClass) {
		var className = labelClass ? labelClass : 'formLabel';
		var label = new Element('label', {'class':className});
		label.set('text', labelText);
		parent.grab(label);
		var radios = [];
		for(var i=0; i<radioTexts.length; i++) {
			var radio = new Element('input', {type:'radio', name:name, 'class':'formRadio', value:radioTexts[i].toLowerCase()});
			var radioText = new Element('span', {'class':'formRadioText'});
			radioText.set('text', radioTexts[i]);
			parent.adopt([radio, radioText]);
			if(i==0) this.checkedElements.push(radio);
			radios.push(radio);
		}
		this.formElements[name] = {type:'radio', element:radios};
	},
	
	generateTextareaWithLabel: function(parent, name, labelText, labelClass, textareaClass) {
		var classNameLabel = labelClass ? labelClass : 'formLabel';
		var label = new Element('label', {'class':classNameLabel});
		label.set('text', labelText);
		
		var classNameTextarea = textareaClass ? textareaClass : 'formLabel';
		var textarea = new Element('textarea', {'class':classNameTextarea});
		
		parent.adopt([label, textarea]);
		this.formElements[name] = {type:'textarea', element:textarea};
	}
	
});

/**
 * Generiert den Inhalt des Impressums
 */
var ImpressumContentGenerator = new Class({
	
	initialize: function(content) {
		this.content = content;
		this.generateImpressumContent();
	},
	
	setContent: function() {
		this.initialize(this.content);
	},
	
	generateImpressumContent: function() {
		//var textTop = '<h2>Impressum</h2><p>Dies ist das Impressum.</p>';
		this.content.set('html', this.htmlText());
	},
	
	htmlText: function() {
		var text = '<h2>Impressum</h2>';
		text += '<br/><p>EWE TEL GmbH<br/>Cloppenburger Str. 310<br/>26133 Oldenburg</p>';
		text += '<p>Tel.: 0800 010 14 00<br/>Mo.-Fr.: 08.00 - 20.00 Uhr<br/>Sa.: 08.00 - 16.00 Uhr<br/>Fax: 0441 8000-1999<br/><a href="mailto:kundenservice@ewetel.de">kundenservice@ewetel.de</a><br/>Vertreten durch die Geschäftsführer<br/>Konrad Meier (Vorsitzender), Dirk Brameier, Ulf Heggenberger, Norbert Westfal</p>';
		text += '<p>Handelsregister:<br/>Amtsgericht Oldenburg, HR B 3723<br/>Sitz der Gesellschaft: Oldenburg<br/>Umsatzsteueridentifikationsnummer: DE 184286895</p>';
		text += '<p>Redaktionelle Verantwortung (im Sinne des Presserechts und des Mediendienste-Staatsvertrags):<br/>NW1 TV GmbH<br/>Peterstr. 28-34<br/>26121 Oldenburg (Oldb)<br/>Tel.: (04 41) 99 88 - 32 43<br/>Fax: (04 41) 99 88 - 32 49<br/>E-Mail: <a href="mailto:redaktion@westerstede.tv">redaktion@westerstede.tv</a></p>';
		text += '<p>Sitz der Gesellschaft: Oldenburg<br/>Amtsgericht Oldenburg HRA 3589<br/>USt-IdNr.: DE 206584895<br/>Persönlich haftende Gesellschafterin:<br/>NW1 TV GmbH<br/>Sitz der Gesellschaft: Oldenburg<br/>Amtsgericht Oldenburg HRB 4421<br/>Geschäftsführer: Ulrich Gathmann</p>';
		text += '<p>Realisation:<br/>hmmh multimediahaus AG<br/>Am Weser-Terminal 1<br/>D-28217 Bremen<br/>Tel.: 0421 - 6 96 50 -0<br/>Fax: 0421 - 6 96 50 -190<br/>E-Mail: <a href="mailto:info@hmmh.de">info@hmmh.de</a><br/>Internet: <a href="http://www.hmmh.de/" target="_blank">http://www.hmmh.de/</a></p>';
		text += '<p>Haftungshinweis:<br/>EWE TEL übernimmt keinerlei Gewähr für die Aktualität, Korrektheit, Vollständigkeit oder Qualität der bereitgestellten Informationen. Alle Angebote sind freibleibend und unverbindlich. EWE TEL behält sich ausdrücklich vor, Teile der Seiten oder das gesamte Angebot ohne gesonderte Ankündigung zu verändern, zu löschen oder einzustellen. Die Haftung für Schäden materieller oder ideeller Art, die durch die dargebotenen Informationen verursacht wurden, ist ausgeschlossen. Für alle direkten oder indirekten Verweise auf fremde Internetseiten ("Links") innerhalb des eigenen Internetangebots sowie für alle Fremdeinträge in von EWE TEL eingerichteten Gästebüchern, Diskussionsforen und Mailinglisten gilt: EWE TEL hat keinen Einfluss auf die Gestaltung und die Inhalte der gelinkten Seiten. EWE TEL distanziert sich ausdrücklich von den Inhalten aller gelinkten Seiten.</p>';
		text += '<p>Hier können Sie die Datenschutzerklärung anschauen und downloaden: <a href="http://www.ewetel.de/124.php" target="_blank">Datenschutzerklärung</a></p>';
		return text;
	}
});
