var PRESS = new Class({
	initialize: function(parentWrapperID, indx, options, archive) {
		this.parentWrapperID = parentWrapperID;
		this.indx = indx;
		this.options = options;
		this.archive = archive;
		this.imageDir = './images/content/';
		this.pressImageDir = './images/content/press/';
		this.pressContentDir = './content/press/';
		this.downloadPath = './ajax/download.php';

		this.elements = {
			newsWrapper:null,
			fullArticleWrapper:null
		};
		
		this.fx = {
			fullArticleWrapper:null
		};
		
		this.labels = {
			openFullArticle: 'vollst\u00e4ndigen Pressebericht \u00f6ffnen',
			downloads: 'Artikel herunterladen:',
			download: 'Download',
			print: 'Drucken',
			author: 'Autor: ',
			contact: 'Ansprechpartner: ',
			phone: 'Tel.: ',
			fax: 'Fax: ',
			mobile: 'Mobil: ',
			email: 'E-Mail: ',
			printversion: 'Druckansicht',
			printarticle: 'Presseartikel von www.etelligence.de'
		};
		
		this.fullArticleWrapperID = 'full-article-wrapper';
	},
	
	showAsTextPicture: function(fxTime) {
		var _self = this;
		this.elements.newsWrapper = new Element('div', {'class':'newsWrapper'}).setStyle('opacity', 0);
		if(this.indx == 0 && !this.archive) this.elements.newsWrapper.setStyle('padding-top', 0);
		var textWrapper = new Element('div', {'class':'textWrapper'});
		var headlineWrapper = new Element('div', {'class':'headlineWrapper'});
		var dateWrapper = new Element('div', {'class':'newsDate'}).set('html', this.options.date);
		headlineWrapper.grab(dateWrapper).grab(new Element('div').set('html', this.options.headline));
		
		if(this.options.text != '') {
			var icon = new Element('img', {'alt':this.labels.openFullArticle, 'src':this.imageDir + 'plus.gif', 'title':this.labels.openFullArticle}).setStyles({'cursor':'pointer', 'margin':'0px 5px -2px 0px'});
			icon.addEvent('click', function() {
				_self.showFullArticle();
			});
			var link = new Element('span', {'class':'link-on'}).setStyles({'display':'inline'}).set('html', this.labels.openFullArticle);
			link.addEvent('mouseover', function() {
				this.setStyles({'text-decoration':'underline'});
			});
			link.addEvent('mouseout', function() {
				this.setStyles({'text-decoration':'none'});
			});
			link.addEvent('click', function() {
				_self.showFullArticle();
			});
			var text = new Element('div').set('html', this.options.teaser).grab(new Element('div').setStyles({'padding-top':20}).grab(icon).grab(link));
		} else var text = new Element('div').set('html', this.options.teaser);
		textWrapper.grab(headlineWrapper).grab(text);
		var imageWrapper = new Element('div', {'class':'imageWrapper'});

		if(this.options.image != null && this.options.image != '') {
			var image = new Element('img', {'alt':this.options.date + ' - ' + this.options.headline, 'title':this.options.date + ' - ' + this.options.headline}).setStyles({'border':0, 'margin-left':30});
			image.addEvent('load', function() {
				new Fx.Morph(_self.elements.newsWrapper, {duration:fxTime}).start({'opacity':1});
			});
			image.addEvent('error', function() {
				this.destroy();
				new Fx.Morph(_self.elements.newsWrapper, {duration:fxTime}).start({'opacity':1});
			});
			imageWrapper.grab(image);
			this.elements.newsWrapper.grab(textWrapper).grab(imageWrapper).grab(new Element('div', {'class':'clear'}));
			if($(this.parentWrapperID.toString())) $(this.parentWrapperID.toString()).grab(this.elements.newsWrapper);
			if(this.options.image != '') image.src = this.pressImageDir + this.options.image;
		} else {
			this.elements.newsWrapper.grab(textWrapper).grab(imageWrapper).grab(new Element('div', {'class':'clear'}));
			if($(this.parentWrapperID.toString())) {
				$(this.parentWrapperID.toString()).grab(this.elements.newsWrapper);
				new Fx.Morph(this.elements.newsWrapper, {duration:fxTime}).start({'opacity':1});
			}
		}
	},
	
	showAsPicture: function(fxTime) {
		
	},
	
	showAsText: function(fxTime) {
		
	},
	
	hide: function(fxTime) {
		var _self = this;
		if(this.elements.newsWrapper != null) {
			new Fx.Morph(this.elements.newsWrapper, {duration:fxTime}).start({
				'opacity':0
			}).chain(function() {
				_self.elements.newsWrapper.destroy();
				_self.elements.newsWrapper = null;
			});
		}
	},
	
	showFullArticle: function() {
		if(typeof dialog == 'object') {
			var _self = this;
			var body = document.getElementsByTagName('body')[0];
			this.elements.fullArticleWrapper = new Element('div', {'id':this.fullArticleWrapperID}).setStyles({'opacity':0});
			
			var header = new Element('div', {'class':'full-article-header'}).set('html', '&nbsp;');
			this.elements.fullArticleWrapper.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.closeFullArticle();
			});
			closeButtonWrapper.grab(closeButton);
			this.elements.fullArticleWrapper.grab(closeButtonWrapper);
			
			var contentWrapper = new Element('div').setStyles({
				'background-color':'#fff',
				'padding':'0px 20px 20px 20px'
			});
			
			var headlineWrapper = new Element('div', {'class':'headlineWrapper'}).setStyles({'height':30});
			var dateWrapper = new Element('div', {'class':'newsDate'}).setStyles({'margin-bottom':0, 'height':40}).set('html', this.options.date);
			var headline = new Element('div').set('html', this.options.headline);
			
			headlineWrapper.grab(dateWrapper).grab(headline);
			contentWrapper.grab(headlineWrapper);
			
			// left-content
			var leftContentWrapper = new Element('div').setStyles({'float':'left', 'width':500});
			var subline = new Element('div', {'class':'press-subline'}).set('html', this.options.subline)
			var text = new Element('div', {'class':'press-text'}).setStyles({}).set('html', this.options.text);
			var downloads = new Element('div', {'class':'press-downloads'}).set('html', '<div>' + this.labels.downloads + '</div>');
			for(var i = 0; i < this.options.downloads.length; i++) {
				var download = new Element('div');
				var click = (function() {
					location.href = _self.downloadPath + '?directory=' + _self.pressContentDir + '&file=' + this;
				}).bind(this.options.downloads[i].url);
				
				var icon = new Element('img', {'alt':this.labels.download, 'src':this.pressImageDir + 'icon-download.gif', 'title':this.labels.download}).setStyles({'cursor':'pointer', 'margin-right':5});
				icon.addEvent('click', click);
				var link = new Element('span', {'class':'link-on'}).setStyles({'display':'inline'}).set('html', this.options.downloads[i].link);
				link.addEvent('mouseover', function() {
					this.setStyles({'text-decoration':'underline'});
				});
				link.addEvent('mouseout', function() {
					this.setStyles({'text-decoration':'none'});
				});
				link.addEvent('click', click);
				downloads.grab(download.grab(icon).grab(link));
			}
			var print = new Element('div', {'class':'press-print'}).setStyles({'padding-top':20});
			var icon = new Element('img', {'alt':this.labels.print, 'src':this.pressImageDir + 'icon-print.gif', 'title':this.labels.print}).setStyles({'cursor':'pointer', 'margin':'0px 5px -3px 0px'});
			icon.addEvent('click', function() {
				_self.printArticle();
			});
			var link = new Element('span', {'class':'link-on'}).setStyles({'display':'inline'}).set('html', this.labels.print);
			link.addEvent('mouseover', function() {
				this.setStyles({'text-decoration':'underline'});
			});
			link.addEvent('mouseout', function() {
				this.setStyles({'text-decoration':'none'});
			});
			link.addEvent('click', function() {
				_self.printArticle();
			});
			print.grab(icon).grab(link);
			
			leftContentWrapper.grab(subline).grab(text);
			if(this.options.downloads.length > 0) leftContentWrapper.grab(downloads);
			leftContentWrapper.grab(print);
			
			// right-content
			var rightContentWrapper = new Element('div').setStyles({'padding-left':550});
			var thumbnails = new Element('div', {'class':'press-thumbnails'});
			for(var i = 0; i < this.options.images.length; i++) {
				var thumbnail = new Element('div').setStyles({'padding-bottom':20});
				var image = new Element('img', {'alt':this.options.images[i].subtitle, 'src':this.pressContentDir + this.options.images[i].thumbnail, 'title':this.options.images[i].subtitle});
				var subtitle = new Element('div', {'class':'press-thumbnail-subtitle'}).set('html', this.options.images[i].subtitle);
				var click = (function() {
					location.href = _self.downloadPath + '?directory=' + _self.pressContentDir + '&file=' + this;
				}).bind(this.options.images[i].src);
				
				var icon = new Element('img', {'alt':this.labels.download, 'src':this.pressImageDir + 'icon-download.gif', 'title':this.labels.download}).setStyles({'cursor':'pointer', 'margin-right':5});
				icon.addEvent('click', click);
				var link = new Element('span', {'class':'link-on'}).setStyles({'display':'inline'}).set('html', this.options.images[i].link);
				link.addEvent('mouseover', function() {
					this.setStyles({'text-decoration':'underline'});
				});
				link.addEvent('mouseout', function() {
					this.setStyles({'text-decoration':'none'});
				});
				link.addEvent('click', click);
				thumbnails.grab(thumbnail.grab(image).grab(subtitle).grab(icon).grab(link));
			}
			
			var authorWrapper = new Element('div', {'class':'press-author'}).set('html', this.labels.author + this.options.author);
			var contactWrapper = new Element('div', {'class':'press-contact'}).set('html', this.labels.contact + this.options.contact.surname + ' ' + this.options.contact.name + '<br />' + this.options.contact.company + '<br />' + this.options.contact.street + '<br />' + this.options.contact.zip + ' ' + this.options.contact.city + '<br />' + this.labels.phone + this.options.contact.phone + '<br />' + this.labels.fax + this.options.contact.fax + '<br />' + this.labels.mobile + this.options.contact.mobile + '<br />' + this.labels.email + this.options.contact.mail);
			rightContentWrapper.grab(thumbnails).grab(authorWrapper).grab(contactWrapper);
			
			contentWrapper.grab(leftContentWrapper).grab(rightContentWrapper).grab(new Element('div', {'class':'clear'}));
			this.elements.fullArticleWrapper.grab(contentWrapper);
			
			var footer = new Element('div', {'class':'full-article-footer'}).set('html', '&nbsp;');
			this.elements.fullArticleWrapper.grab(footer);
			
			body.appendChild(this.elements.fullArticleWrapper);
			dialog.show();
			this.fx.fullArticleWrapper = new Fx.Morph(this.elements.fullArticleWrapper, {duration:300}).start({'opacity':1});
		}
	},
	
	closeFullArticle: function() {
		var _self = this;
		this.fx.fullArticleWrapper = new Fx.Morph(this.elements.fullArticleWrapper, {duration:300}).start({'opacity':0}).chain(function() {
			_self.elements.fullArticleWrapper.destroy();
		});
		if(typeof dialog == 'object') dialog.hide();
	},
	
	printArticle: function() {
		var printversion = window.open('', this.labels.printversion, 'height=600, location=0, menubar=1, resizable=1, scrollbars=1, status=0, toolbar=0, width=560');
		printversion.document.open();
		printversion.document.write('<html><head><title>Druckansicht</title><link rel="stylesheet" type="text/css" href="./css/eTelligence.css" /></head><body style="background-image:none;" onload="window.print();">');
		printversion.document.write('<div class="print-logo"><img src="' + this.pressImageDir + 'logo-print.jpg" alt="eTelligence" title="eTelligence" style="width:6cm;border:0px;" /></div>');
		printversion.document.write('<div style="margin-left:1cm;width:500px;">');
		printversion.document.write('<div class="print-headline">' + this.labels.printarticle + '</div>');
		printversion.document.write('<div class="headlineWrapper" style="height: 30px;"><div class="newsDate" style="margin-bottom: 0px; height: 40px;">' + this.options.date + '</div><div>' + this.options.headline + '</div></div>');
		printversion.document.write('<div class="press-subline">' + this.options.subline + '</div>');
		printversion.document.write('<div class="press-text" style="background-image:none;">' + this.options.text + '</div>');
		printversion.document.write('<div class="press-author" style="padding-top:0px;">' + this.labels.author + this.options.author + '</div>');
		printversion.document.write('<div class="press-contact">' + this.labels.contact + this.options.contact.surname + ' ' + this.options.contact.name + '<br />' + this.options.contact.company + '<br />' + this.options.contact.street + '<br />' + this.options.contact.zip + ' ' + this.options.contact.city + '<br />' + this.labels.phone + this.options.contact.phone + '<br />' + this.labels.fax + this.options.contact.fax + '<br />' + this.labels.mobile + this.options.contact.mobile + '<br />' + this.labels.email + this.options.contact.mail + '</div>');
		printversion.document.write('</div>');
		printversion.document.write('</body></html>');
		printversion.document.close();
	}
});