function trigger(triggerElement) {
		this.triggerElement = triggerElement;
	}	

		trigger.prototype.getIdData = function() {
			var id = this.triggerElement.readAttribute('id');
			var dataArray = id.split('_');
				
			return new triggerIdData(dataArray[0], dataArray[1]);	
		}
		
		trigger.prototype.getOffset = function() {
			return this.triggerElement.cumulativeOffset();
		}
		
		trigger.prototype.getDimensions = function() {
			return this.triggerElement.getDimensions();
		}
	
	function triggerIdData(prefix, number) {
		this.prefix = prefix;
		this.number = number;
	}
	
	function textPlaceholder(defaultStyles) {
		this.element = document.createElement('div');
		document.body.appendChild(this.element);
		this.element = $(this.element);
		this.element.setStyle(defaultStyles); 
		this.element.className = 'vorteilePlaceholder';
		
		this.innerElement = document.createElement('div');
		this.element.appendChild(this.innerElement);
		this.innerElement.className = 'vorteilePlaceholderInner';
	}
		
		textPlaceholder.prototype.remove = function() {
			new Effect.Appear(this.element, {duration: 0.5, to: 0, afterFinish: function(effect) {
				effect.element.innerHTML = '';
				document.body.removeChild(effect.element);
			}});
			/*
			this.innerElement.innerHTML = '';
			this.element.removeChild(this.innerElement);
			document.body.removeChild(this.element);
			*/
		}
		
		textPlaceholder.prototype.update = function(content) {
			this.innerElement.innerHTML = content;
		}
		
		textPlaceholder.prototype.addStyle = function(style) {
			this.element.setStyle(style); 
		}
		
		textPlaceholder.prototype.getDimensions = function() {
			return this.element.getDimensions();
		}
		
		textPlaceholder.prototype.fadeIn = function(fadeTo) {
			new Effect.Appear(this.element, {duration: 0.5, to: fadeTo});
		}
		
		textPlaceholder.prototype.setClassName = function(className) {
			this.element.addClassName(className);
		}
	
	
	var productInfo = {
		placeholder: null,
		
		getTextFromHiddenElemen: function(number) {
			var element = $('text_' + number);
			
			if(!element) {
				return;
			}
			
			return element.innerHTML;
		},
		
		getBodyDimensions: function() {
			return $(document.body).getDimensions();
		},
		
		show: function(trigger) {
			var triggerPosition = trigger.getOffset();
			var triggerDimensions = trigger.getDimensions();
			
			var idData = trigger.getIdData();

			this.placeholder = new textPlaceholder({position: 'absolute', visibility: 'hidden'});	
			this.placeholder.update(this.getTextFromHiddenElemen(idData.number));
			
			var placeholderDimensions = this.placeholder.getDimensions();
			
			var placeholderPositionTop = (triggerPosition.top - placeholderDimensions.height) + 5;
			var placeholderPositionLeft = triggerPosition.left;

			if(placeholderPositionLeft + placeholderDimensions.width > this.getBodyDimensions().width) {
				placeholderPositionLeft = (triggerPosition.left - placeholderDimensions.width) + triggerDimensions.width;
				this.placeholder.setClassName('vorteileRtl');
			}
			else {
				this.placeholder.setClassName('vorteileLtr');
			}
				
			this.placeholder.addStyle({
				top: placeholderPositionTop + 'px', //28
				left: placeholderPositionLeft + 'px', //268
				visibility: ''
			});
			
			this.placeholder.fadeIn(0.9);
		},
		
		hide: function(trigger) {
			if(!this.placeholder) {
				return;
			}
			
			this.placeholder.remove();
			this.placeholder = null;
		},
		
		init: function(id) {
			if(!$(id)) {
				return;
			}
			
			var links = $(id).getElementsBySelector('a');

			if(!links.length) {
				return;
			}

			for(var i = 0; i < links.length; i++) {
				var currentLink = links[i];
				
				if(!currentLink.readAttribute('id') || currentLink.readAttribute('id').indexOf('trigger') == -1) {
					continue;
				}
				
				currentLink.onmouseover = function() {
					productInfo.show(new trigger($(this)));
				}
				
				currentLink.onmouseout = function() {
					productInfo.hide(new trigger($(this)));
				}
				
				currentLink.onclick = function() {
					return false;
				}
			}
		}
	};
		
	window.onload = function() {
		productInfo.init('vorteile');
	}