var publicationsList = new Class({
	
	initialize: function(id){
		this._div = $(id);
		this._animationSpeed = 500;
		this._doNotMorph = false;
		
		this._setMouseEvents();
	},
	
	_setMouseEvents: function(){
		var listElements = this._div.getChildren('dl');
		var num_listElements = listElements.length;
		var listEntry = '';
		for(var i=0;i<num_listElements;i++){
			listEntry = listElements[i];
			listEntry.addEvent('mouseenter', this._highlight.bind(this, listEntry));
		//	listEntry.addEvent('mousemove', this._highlight);
			listEntry.addEvent('mouseleave', this._resetHighlight.bind(this, listEntry));
			listEntry.addEvent('click', this._openEntry.bind(this, listEntry));
		}
	},
	
	_highlight: function(listEntry){
		// dl/a/img - styles setzen
		if(!this._doNotMorph){
			listEntry.get('morph').start({'background-color': ['#000000','#000000'], 'color':['#FFFFFF','#FFFFFF']});
			var childDD = listEntry.getChildren('dd')[0];
			var sizeDD = childDD.getSize();
			if(sizeDD.y < 30){
				childDD.style.height = '23px';
			}
			var anchors = childDD.getChildren('a');
			var num_anchors = anchors.length;
			var articleNameAnchor = anchors[0];
			articleNameAnchor.get('morph').start({'color':['#FFFFFF','#FFFFFF']});
			var description = articleNameAnchor.getChildren('span')[0];
			description.style.display = 'none';
			var image = null;
			for(var i=1;i<num_anchors;i++){
				image = anchors[i].getChildren('img')[0];
				image.style.display = 'inline';
			}
		
			var images = childDD.getChildren('img');
			var num_images = images.length;
			for(var i=0;i<num_images;i++){
				images[i].style.display = 'inline';
			}
		
			var thumbnail = $(listEntry.title);
			var thumbnailImage = thumbnail.getChildren('img')[0];
			var fx = function(){
				thumbnail.get('morph').start({'opacity':[1,1], 'height': thumbnailImage.height, 'padding-bottom': 2 }).chain(
					function(){
						thumbnail.set('isClosing',false);
					}
				);
			}
			this._closeTimer = fx.delay(500);
		}
	},
	
	_resetHighlight: function(listEntry){
		clearTimeout(this._closeTimer);
		var thumbnail = $(listEntry.title);
		thumbnail.get('morph').start({'opacity': 0 }); // chain...
		thumbnail.get('morph').start({'height': 0, 'padding-bottom': 0}); // chain...
		listEntry.get('morph').start({ 'background-color' : '#FFFFFF', 'color' : '#00000'});
		var childDD = listEntry.getChildren('dd')[0];
		var anchors = childDD.getChildren('a');
		var num_anchors = anchors.length;
		var articleNameAnchor = anchors[0];
		articleNameAnchor.get('morph').start({'color': '#000000'});
		// var description = articleNameAnchor.getChildren('span')[0];
		// description.style.display = 'inline';
		var image = null;
		
		for(var i=1;i<num_anchors;i++){
			image = anchors[i].getChildren('img')[0];
			image.style.display = 'none';
		}

		var images = childDD.getChildren('img');
		var num_images = images.length;
		for(var i=0;i<num_images;i++){
			images[i].style.display = 'none';
		}
	},
	
	_openEntry: function(clickedElement){
		clearTimeout(this._closeTimer);
		this._doNotMorph = true;
		var thumbnail = $(clickedElement.title);
		thumbnail.set('morph',{link: 'ignore'});
		var listElements = this._div.getChildren('dl');
		var num_listElements = listElements.length;
		var listEntry = '';
		for(var i=0;i<num_listElements;i++){
			listEntry = listElements[i];
			listEntry.removeEvents('mouseenter');
			listEntry.removeEvents('mouseleave');
			if(clickedElement.title != listEntry.title){
				listEntry.get('morph').start({'opacity':0}).chain(
					function(){
						this.start({'height': 0, 'margin-bottom': 0});
					}
				);
			}
		}
		
		var thumbImage = thumbnail.getChildren('img')[0];
		var oldSrc = thumbImage.src;
		var oldHeight = thumbImage.height;
		
		thumbImage.style.width = '128px';
		thumbImage.style.height = oldHeight+'px';
		var newHeight = 470;
		var newWidth = 470;
		if(oldHeight > 128){
			newWidth = Math.round(470/oldHeight * 128);
		}
		if(oldSrc.split('index.php?rex_resize=')[1]){
			var fileName = oldSrc.split('index.php?rex_resize=')[1].substr(12);
			var newSrc = 'index.php?rex_resize='+newWidth+'c__470h__'+fileName;
		}else{
			var fileName = 'no_image.png';
			var newSrc = 'pics/'+fileName;
		}
		thumbImage.src = newSrc;
		
		var fx = function(){
			thumbnail.get('morph').start({'height': 470});
			thumbImage.get('morph').start({'width': newWidth, 'height': 470}).chain(
				function(){
					var childDD = clickedElement.getChildren('dd')[0];
					var anchor = childDD.getChildren('a')[0];
					window.location.href = anchor.href;
				}
			);
		}
		fx.delay(550);
		return false;
	}
});
