var tooltipControl = Class.create();
tooltipControl.prototype = {
	initialize : function(elm,mode) {
		var links = $(elm).getElementsByTagName('A');
		
		for(var i=0;i<links.length;i++){
			if(Element.hasClassName(links[i],'openTooltip')){
				if(mode=="click"){
					Event.observe(links[i],'click',this.show.bindAsEventListener(this),false);
					var images = $(this.tabID(links[i])).getElementsByTagName('IMG');
					if(images.length && (images[0].className=='closeTooltip')){
						Event.observe(images[0],'click',this.clickHide.bindAsEventListener(this),false);
					}
				} else if(mode=="hover"){
					Event.observe(links[i],'mouseover',this.show.bindAsEventListener(this),false);
					Event.observe(links[i],'mouseout',this.hoverHide.bindAsEventListener(this),false);
					Event.observe(links[i],'click',this.killClick.bindAsEventListener(this),false);
				}
			}
		}
	},
	show : function(ev) {
		var a = Event.findElement(ev, "a");
		Event.stop(ev);
		var elm = $(this.tabID(a));
		var tdd = $(elm).parentNode;
		var	tdheight = tdd.clientHeight;
		var	tdwidth = tdd.clientWidth;
		var	tdabs = this.findPos(tdd);
		
		var allDivs = document.getElementsByTagName('DIV');
		for(var i = 0; i < allDivs.length; i++) {
			if(Element.hasClassName(allDivs[i],'tooltip')){
				Element.hide(allDivs[i]);
			}
		}
		Element.show($(elm));
		
		iMouseX = tdabs[0] + tdwidth - 20;
		iMouseY = tdabs[1] - 200;
		
		//Element.setStyle(elm, {"left": iMouseX + "px", "top": iMouseY + "px", "z-index": 1000});
		new Draggable(elm,{});
	},
	clickHide : function(ev) {
		var img = Event.findElement(ev, "img");
		var elm = img.parentNode;
		Element.hide(elm);
	},
	hoverHide : function(ev) {
		var a = Event.findElement(ev, "a");
		var elm = this.tabID(a);
		Element.hide(elm);
	},
	killClick : function(ev) {
		Event.stop(ev);
	},
	tabID : function(elm) {
		return elm.href.match(/#(\w.+)/)[1];
	},
	findPos : function(obj) {
		var curleft = curtop = 0;
		if (obj.offsetParent) {
			curleft = obj.offsetLeft;
			curtop = obj.offsetTop;
			while (obj = obj.offsetParent) {
				curleft += obj.offsetLeft;
				curtop += obj.offsetTop;
			}
		}
		return [curleft,curtop];
	}
}
