
if(typeof Prototype=='undefined'||!Prototype.Version.match("1.6"))
throw("QsvTooltip require Prototype library >= 1.6.0");var QsvTooltip=Class.create({initialize:function(divId,tooltipId,width,pos){this.offsetfromcursorX=12;this.offsetfromcursorY=10;this.offsetdivfrompointerX=10;this.offsetdivfrompointerY=14;if(typeof(pos)=="undefined")pos="bottom";this.bottom=(pos=="bottom");this.pointerobj=new Element("img",{"id":divId+"_pointer","src":this.bottom?"images/tooltip.gif":"images/tooltip2.gif","class":"dhtmlpointer"});$(divId).insert({after:this.pointerobj});this.tipobj=new Element("div",{"id":divId+"_tooltip","class":"dhtmltooltip"});$(divId).insert({after:this.tipobj});this.hide();if(typeof(width)!="undefined")this.tipobj.style.width=width+"px";this.tipobj.update($(tooltipId).innerHTML);$(divId).observe("mousemove",this.show.bindAsEventListener(this));$(divId).observe("mouseout",this.hide.bindAsEventListener(this));},getSize:function(){var size={top:this.tipobj.cumulativeOffset().top,left:this.tipobj.cumulativeOffset().left,width:this.tipobj.getWidth(),height:this.tipobj.getHeight()};return size;},getViewport:function(){var viewport={top:document.viewport.getScrollOffsets().top,left:document.viewport.getScrollOffsets().left,width:document.viewport.getWidth(),height:document.viewport.getHeight()}
return viewport;},show:function(evt){var nondefaultpos=false;var curX=evt.pointerX();var curY=evt.pointerY();var view=this.getViewport();this.tipobj.style.left=curX+this.offsetfromcursorX-this.offsetdivfrompointerX+"px";this.pointerobj.style.left=curX+this.offsetfromcursorX+"px";var tipsize=this.getSize();if(tipsize.left+tipsize.width>view.left+view.width){nondefaultpos=true;var newleft=view.left+view.width-tipsize.width;if(newleft<view.left)newleft=view.left;this.tipobj.style.left=newleft+"px";}
if(this.bottom){this.tipobj.style.top=curY+this.offsetfromcursorY+this.offsetdivfrompointerY+"px";this.pointerobj.style.top=curY+this.offsetfromcursorY+"px";var tipsize=this.getSize();if(tipsize.top+tipsize.height>view.top+view.height){nondefaultpos=true;var newtop=view.top+view.height-tipsize.height;if(newtop<view.top)newtop=view.top;this.tipobj.style.top=newtop+"px";}}else{var newtop=curY-this.tipobj.offsetHeight-this.offsetfromcursorY+1;if(newtop<view.top){nondefaultpos=true;newtop=view.top;}
this.tipobj.style.top=newtop+"px";this.pointerobj.style.top=curY-this.offsetfromcursorY+"px";}
this.tipobj.show();if(!nondefaultpos)this.pointerobj.show();else this.pointerobj.hide();},hide:function(){this.tipobj.hide();this.pointerobj.hide();}});