/* Avening Framework @Mic */


var AveningFramework = new Class({

    options: {
		selector: null,
		positioningContainer: null,
		tipx: -10,
		tipy: -10
		
	},
	
	initialize: function(options) {
		this.setOptions(options);
	
		this.selector = options['selector'];
		this.referenceContainer = options['referenceContainer'];
	
		this.tipx = options['tipx'];
		this.tipy = options['tipy'];
		
		if (this.selector != null) {
			
			this.activeElements = $$(this.selector);
			
			
			this.activeElements.each(function(aElement, index) {
				
				aElement.addEvent('mouseenter',this.createTip.bindWithEvent(this,aElement));	
				aElement.addEvent('mouseleave',this.destroyTip.bindWithEvent(this,aElement));
				
				aElement.addEvent('click',this.createContent.bindWithEvent(this,aElement));
				//aElement.addEvent('click',this.createContent.bindWithEvent(this,aElement));	

			}.bind(this));
			
			$('closeBtn').addEvent('click',this.destroyContent.bindWithEvent(this));
			
		}
		else {
			
		}
	},
	
	
	createTip: function(e,aElement) {
			
					
			var parentElement = aElement.getPosition(aElement.getParent(this.referenceContainer));
		
			var tipContainer = new Element('div', {
											   	'id': 'tip',
												'class':'hint',
											    'styles': {
											
													'left':parentElement.x + this.tipx,
													'top':parentElement.y + this.tipy
													
												}

			});
			
			
			
			tipContainer.appendText(aElement.getProperty('thumbTxt'));
			tipContainer.inject(aElement,'after');
	
	},
	
	destroyTip: function(e,aElement) {
		
		if ($('tip') != null) {$('tip').destroy();}
		
	},
	
	createContent: function(e,aElement) {
		
		
			
			if (aElement.getProperty('content') != null) {
			
				var parentElement = aElement.getPosition(aElement.getParent(this.referenceContainer));
				//var myHTMLRequest = new Request.HTML().get('/content/justy-bluehorn.html');
				$('popupText').empty();
				$('popupText').load(aElement.getProperty('content'));
	
				var xmodifier = 100;
				if (parentElement.x > 475) {
					var xmodifier = -500;
				}
				
				var ymodifier = -100;
				if (parentElement.y > 400) {
					var ymodifier = -200;
				}
				
				
				
				
				$('contentPopup').setStyles({
											'display':'block',
											'left':parentElement.x + xmodifier,
											'top':parentElement.y + ymodifier
											
				});
			}
			else {};
		
			
		
			
	
	},
	
	
	destroyContent: function(e,aElement) {
			$('contentPopup').setStyle('display','none');
			//aElement.removeEvents('click');
			//aElement.addEvent('click',this.createContent.bindWithEvent(this,aElement));	
	}
	
	

		
});

AveningFramework.implement(new Options, new Events);



