var Tooltip=Class.create();Tooltip.prototype={initialize:function(a,b){var c=Object.extend({default_css:false,margin:"0px",padding:"5px",backgroundColor:"#d6d6fc",min_distance_x:5,min_distance_y:5,delta_x:0,delta_y:0,zindex:1000},arguments[2]||{});this.element=$(a);this.options=c;if($(b)){this.tool_tip=$(b)}else{this.tool_tip=$(document.createElement("div"));document.body.appendChild(this.tool_tip);this.tool_tip.addClassName("tooltip");this.tool_tip.appendChild(document.createTextNode(b))}this.tool_tip.hide();this.eventMouseOver=this.showTooltip.bindAsEventListener(this);this.eventMouseOut=this.hideTooltip.bindAsEventListener(this);this.eventMouseMove=this.moveTooltip.bindAsEventListener(this);this.registerEvents()},destroy:function(){Event.stopObserving(this.element,"mouseover",this.eventMouseOver);Event.stopObserving(this.element,"mouseout",this.eventMouseOut);Event.stopObserving(this.element,"mousemove",this.eventMouseMove)},registerEvents:function(){Event.observe(this.element,"mouseover",this.eventMouseOver);Event.observe(this.element,"mouseout",this.eventMouseOut);Event.observe(this.element,"mousemove",this.eventMouseMove)},moveTooltip:function(a){Event.stop(a);var b=Event.pointerX(a);var c=Event.pointerY(a);var d=Element.getDimensions(this.tool_tip);var e=d.width;var f=d.height;if((e+b)>=(this.getWindowWidth()-this.options.min_distance_x)){b=b-e;b=b-this.options.min_distance_x}else{b=b+this.options.min_distance_x}if((f+c)>=(this.getWindowHeight()-this.options.min_distance_y)){c=c-f;c=c-this.options.min_distance_y}else{c=c+this.options.min_distance_y}this.setStyles(b,c)},showTooltip:function(a){Event.stop(a);this.moveTooltip(a);new Element.show(this.tool_tip)},setStyles:function(a,b){Element.setStyle(this.tool_tip,{position:'absolute',top:b+this.options.delta_y+"px",left:a+this.options.delta_x+"px",zindea:this.options.zindex});if(this.options.default_css){Element.setStyle(this.tool_tip,{margin:this.options.margin,padding:this.options.padding,backgroundColor:this.options.backgroundColor,zindea:this.options.zindex})}},hideTooltip:function(a){new Element.hide(this.tool_tip)},getWindowHeight:function(){var a;if(navigator.appVersion.indexOf('MSIE')>0){a=document.body.clientHeight}else{a=window.innerHeight}return a},getWindowWidth:function(){var a;if(navigator.appVersion.indexOf('MSIE')>0){a=document.body.clientWidth}else{a=window.innerWidth}return a}};
