var Tooltip=Class.create();Tooltip.prototype={initialize:function(C,B){var A=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=$(C);this.options=A;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(E){Event.stop(E);var B=Event.pointerX(E);var A=Event.pointerY(E);var D=Element.getDimensions(this.tool_tip);var C=D.width;var F=D.height;if((C+B)>=(this.getWindowWidth()-this.options.min_distance_x)){B=B-C;B=B-this.options.min_distance_x}else{B=B+this.options.min_distance_x}if((F+A)>=(this.getWindowHeight()-this.options.min_distance_y)){A=A-F;A=A-this.options.min_distance_y}else{A=A+this.options.min_distance_y}this.setStyles(B,A)},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",zindex: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,zindex: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}};