var h_tooltip = {
	"x" : 0,
	"y" : 0,
	"initialized" : false,
	"update" : function(newX,newY){
		if (h_tooltip.initialized){
			h_tooltip.frame.style.left = (newX-10)+"px";
			h_tooltip.frame.style.top = (newY+15)+"px";
		}
	},
	"frame" : {},
	"init" : function(mydata){
		$("body").append("<div id=\"h_glossary_tooltip\"></div>");
		this.glossary = mydata;
		$().mousemove( function(e) {h_tooltip.update(e.pageX,e.pageY);});
		h_tooltip.frame = document.getElementById("h_glossary_tooltip");
		h_tooltip.initialized = true;
		$("[glossary]").each(function(){
			$(this).addClass("realage_glossary");
//			var temphtml = this.innerHTML.replace(/^\s*([\S\s]*?)\s*$/, '$1'); // trimmin some whitespace
			var temphtml = (!!$(this).attr("glossary")) ? $(this).attr("glossary") : "UNAVAILABLE";
			for (var name in h_tooltip.glossary){
				if (temphtml.toString().toLowerCase() == name.toString().toLowerCase()){
					var term = name;
					var desc = h_tooltip.glossary[name];
					this.setAttribute("description",desc);
					break;
				}
			}
		});
		$("[glossary]").hover(
		  function () {
			  var desc = $(this).attr("description");
			  var term = $(this).attr("glossary");
			$("#h_glossary_tooltip").html("<span class=\"term\">"+term+"</span><hr><span class=\"desc\">"+desc+"</span>").show();
		  }, 
		  function () {
			$("#h_glossary_tooltip").hide();
		  }
		);
		
	},
	"glossary" : {}
}

$(document).ready(function(){
	$.getJSON("/glossary.json",function(data){
		h_tooltip.init(data);
	});
});


