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(this.element==null){return}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}};