
var ddThumbnailsSlider = new Class({
	
	initialize: function(linkContainerId, thumbnailsId, buttonClass, buttonClassInactive, buttonClassActive) {
		this.linkContainer = $(linkContainerId);
		this.link = this.linkContainer.getElement('a');
		this.button = this.linkContainer.getElement('.'+buttonClass);
		this.buttonClassInactive = buttonClassInactive;
		this.buttonClassActive = buttonClassActive;
		this.open = false;
		
		
		if (!this.linkContainer.hasClass('hidden')) {
			
			this.thumbnails = $(thumbnailsId);
			this.slide = new Fx.Slide(this.thumbnails);
			this.slide.hide();
			this.slide = false;
			
			this.link.addEvent('click', function() {
				this.link.blur();
				if (!this.slide) {
					if (this.open) {
						this.closeThumbnails();					
					}
					else {
						this.openThumbnails();
					}	
				}
			}.bind(this));
			
		}
		
	},
	
	openThumbnails: function() {
		this.slide = new Fx.Slide(this.thumbnails);
		this.slide.addEvent('complete',  function() {
			this.slide = false;
		}.bind(this));	
			
		this.slide.slideIn();
		this.button.removeClass(this.buttonClassInactive);
		this.button.addClass(this.buttonClassActive);
		this.open = true;
	},
	closeThumbnails: function() {
		this.slide = new Fx.Slide(this.thumbnails);
		this.slide.addEvent('complete',  function() {
			this.slide = false;
		}.bind(this));
		
		this.slide.slideOut();
		this.button.removeClass(this.buttonClassActive);
		this.button.addClass(this.buttonClassInactive);
		this.open = false;		
	}
	
});

var ddDescriptionResizer = new Class({
	
	initialize: function(descriptionId) {
		this.description = $(descriptionId);
		this.maxLength = 400;
		this.fullHeight = this.description.getSize().y;
		this.fullText = this.description.get('html');
		this.length = this.description.get('text').length;
		this.open = false;
		this.slide = false;
		
		if (this.length > this.maxLength) {
			
			this.moreLink = new Element('a', {
				'href' : 'javascript:void(0);',
				'class': 'eventDescriptionMoreLink',
				'text' : 'weiterlesen'
			});			

			this.subText = this.subWordSave(this.fullText, this.maxLength);
			this.description.set('html', this.subText);
			this.moreLink.inject(this.description);
			this.subHeight = this.description.getSize().y;
			
			this.moreLink.addEvent('click', function() {
				if (!this.slide) {
					if (this.open) {
						this.closeDescription();
					}
					else {
						this.openDescription();						
					}
				}	
			}.bind(this));
			
			this.fullHeight += this.moreLink.getSize().y+10;
		}
		
		
	},
	
	openDescription: function() {
		this.slide = new Fx.Tween(this.description);
		this.slide.addEvent('complete',  function() {
			this.slide = false;
		}.bind(this));	
			
		this.slide.start('height', this.fullHeight);
		this.description.set('html', this.fullText);
		this.moreLink.inject(this.description);	
		this.moreLink.set('text','zuklappen');	
		this.open = true;		
	},
	
	closeDescription: function() {
		this.slide = new Fx.Tween(this.description);
		this.slide.addEvent('complete',  function() {
			this.slide = false;
		}.bind(this));	
			
		this.slide.start('height', this.subHeight);
		this.description.set('html', this.subText);
		this.moreLink.inject(this.description);	
		this.moreLink.set('text','weiterlesen');	
		this.open = false;
		var slideBack = new Fx.Scroll(window).toElement(this.description);		
	},	
	
	subWordSave: function(text, maxLength) {
		subText = '';
		words = text.split(' ');
		for (c=0; c<words.length; c++) {
			if (subText.length < maxLength) {
				subText += (subText?' ':'') + words[c];
			}
			else {
				break;
			}
		}
		return subText + ' ...';
	}
});


var ddCommentForm = new Class({
	
	initialize: function(nameId, textId, firstViewId) {

		this.firstView = $(firstViewId);
		if (this.firstView.value!='0') {
			this.nameInput = $(nameId);
			//this.textInput = $(textId);
			
			this.nameDefaultValue = this.nameInput.value;
			//this.textDefaultValue = this.textInput.value;
			
			this.nameInput.addEvent('focus', function() {
				if (this.nameInput.value==this.nameDefaultValue) {
					this.nameInput.value = '';
				}
			}.bind(this));
			
			this.nameInput.addEvent('blur', function() {
				if (this.nameInput.value=='') {
					this.nameInput.value = this.nameDefaultValue;
				}
			}.bind(this));
			/*
			this.textInput.addEvent('focus', function() {
				if (this.textInput.value==this.textDefaultValue) {
					this.textInput.value = '';
				}
			}.bind(this));
			
			this.textInput.addEvent('blur', function() {
				if (this.textInput.value=='') {
					this.textInput.value = this.textDefaultValue;
				}
			}.bind(this));
			*/			
		}
				
		
	}

		
	
});

window.addEvent('domready', initEventView);
function initEventView() {
	
	thumbnailsSlider = new ddThumbnailsSlider('eventMoreImagesLinkContainer', 'eventMoreImages', 'buttonMagenta', 'buttonMagentaDown', 'buttonMagentaUp');
	descriptionResizer = new ddDescriptionResizer('eventDescriptionContainer');
	commentForm = new ddCommentForm('commentFormNameInput', 'commentFormTextInput', 'commentFormFirstView');
	
}

