window.addEvent('load', function(){
	
	if ($("right")) {
		var remove = $("right").getElements("span.glossary");
		remove.each(
			function (sp) {
				sp.removeClass("glossary");
				}
			);
		}
	if ($("footer-features")) {
		var remove = $("footer-features").getElements("span.glossary");
		remove.each(
			function (sp) {
				sp.removeClass("glossary");
				}
			);
		}
	if ($("center")) {
		var glossaries = $("center").getElements("span.glossary");
		
		var exclude = "[h1],[h2],[h3],[h4],[h5],[a],[input]";
		glossaries.each(
			function (sp) {
				var spanItem = sp.getElement("span");
				//alert(exclude.indexOf(sp.getParent().tagName.toLowerCase()))
				
				if (exclude.indexOf("[" + sp.getParent().tagName.toLowerCase() + "]") == -1) {
					sp.setProperty("id", new UUID());
					
					sp.addEvent("mouseover", function () {
						if ($("d_" + sp.getProperty("id") )) {
							$("d_" + sp.getProperty("id") ).dispose()
							}
						
						definition = new Element("div", {"class":"definition", "id": "d_" + sp.getProperty("id")}).set("html","<strong>" + sp.get("text") + "</strong><p>" + sp.getProperty("title") + "</p>").setOpacity(0).injectAfter(sp);
						
						var fx = new Fx.Morph(definition, {
															duration: 100, wait: true, 
															onComplete : function () {
																//alert($("bubble-login").getStyle("opacity"))
																}
															});
						definition.addEvent("mouseout", function () {
							//definition.getParent().triggerEvent("mouseout");
							});
						fx.options.transition = Fx.Transitions.Sine.easeIn;
						dposition = definition.getCoordinates();
						spposition = sp.getCoordinates();
						bodyposition = $$("body")[0].getCoordinates();
						
						definition.setStyles({
							'opacity': 0,
							'display' : 'block',
							'top' : spposition.top - (dposition.height+5),
							'left' : spposition.left - ((dposition.width - spposition.width)/2)
							})
						//alert(spposition.top)
						//alert((definition.getCoordinates().left + dposition.width) + " : " + bodyposition.width)
						if ((definition.getCoordinates().left + dposition.width) >  bodyposition.width) {
							//alert("too wide")
							definition.setStyles({
								"left": 0,
								"top" : -100
								});
							}
						
						this.s = {
							'opacity' : 1
							};
						sp.setProperty("xtitle", sp.getProperty("title"));
						sp.removeProperty("title");
						fx.start(this.s);	
						return false;
							
						});
					
					
					
					sp.addEvent("mouseout", function (ev) {
						//alert(ev.target)
						var definition = ev.target.getNext();
						//alert(definition);
						sp.setProperty("title", sp.getProperty("xtitle"));
						sp.removeProperty("xtitle");
						//sp.setProperty("title", definition.getElement("p").innerHTML);
						var fx = new Fx.Morph(definition, {
															duration: 100, wait: true, 
															onComplete : function () {
																//alert(this.element.getProperty("id"));
																try {
																	this.element.dispose();
																	}catch (e) {}
																}
															});
							
						fx.options.transition = Fx.Transitions.Sine.easeIn;
						
						
						this.s = {
							'opacity' : 0
							};
					
						fx.start(this.s);	
						return false;
						});
					}
				else {
					sp.removeClass("glossary");
					
					}
						
				}
			);
		}
	});
