TooltipManager={options:{cssClassName:"tooltip",delayOver:200,delayOut:1000,shiftX:10,shiftY:10,className:"alphacube",width:200,height:null,draggable:false,minimizable:false,maximizable:false,showEffect:Element.show,hideEffect:Element.hide},ajaxInfo:null,elements:null,showTimer:null,hideTimer:null,init:function(A,B,C){TooltipManager.options=Object.extend(TooltipManager.options,C||{});
A=TooltipManager.options.cssClassName||"tooltip";
TooltipManager.ajaxInfo=B;
TooltipManager.elements=$$("."+A);
TooltipManager.elements.each(function(D){D=$(D);
var E=TooltipManager._getInfo(D);
if(E.ajax){D.ajaxId=E.id;
D.ajaxInfo=B
}else{D.tooltipElement=$(E.id)
}D.observe("mouseover",TooltipManager._mouseOver);
D.observe("mouseout",TooltipManager._mouseOut)
});
Windows.addObserver(this)
},addHTML:function(A,B){A=$(A);
B=$(B);
A.tooltipElement=B;
A.observe("mouseover",TooltipManager._mouseOver);
A.observe("mouseout",TooltipManager._mouseOut)
},addAjax:function(B,A){B=$(B);
B.ajaxInfo=A;
B.observe("mouseover",TooltipManager._mouseOver);
B.observe("mouseout",TooltipManager._mouseOut)
},addURL:function(C,B,D,A){C=$(C);
C.url=B;
C.frameWidth=D;
C.frameHeight=A;
C.observe("mouseover",TooltipManager._mouseOver);
C.observe("mouseout",TooltipManager._mouseOut)
},close:function(){if(TooltipManager.tooltipWindow){TooltipManager.tooltipWindow.hide()
}},preloadImages:function(B,A,C){if(!C){C=".gif"
}$A(A).each(function(D){var E=new Image();
E.src=B+"/"+D+C
})
},_showTooltip:function(C){if(this.element==C){return 
}while(C&&(!C.tooltipElement&&!C.ajaxInfo&&!C.url)){C=C.parentNode
}this.element=C;
TooltipManager.showTimer=null;
if(TooltipManager.hideTimer){clearTimeout(TooltipManager.hideTimer)
}var A=Position.cumulativeOffset(C);
var E=C.getDimensions();
if(!this.tooltipWindow){this.tooltipWindow=new Window("__tooltip__",TooltipManager.options)
}this.tooltipWindow.hide();
this.tooltipWindow.setLocation(A[1]+E.height+TooltipManager.options.shiftY,A[0]+TooltipManager.options.shiftX);
Event.observe(this.tooltipWindow.element,"mouseover",function(F){TooltipManager._tooltipOver(F,C)
});
Event.observe(this.tooltipWindow.element,"mouseout",function(F){TooltipManager._tooltipOut(F,C)
});
this.tooltipWindow.height=TooltipManager.options.height;
this.tooltipWindow.width=TooltipManager.options.width;
if(C.ajaxInfo){var D=C.ajaxInfo.options.parameters;
var B=D;
if(C.ajaxId){if(D){D+="&id="+C.ajaxId
}else{D="id="+C.ajaxId
}}C.ajaxInfo.options.parameters=D||"";
this.tooltipWindow.setHTMLContent("");
this.tooltipWindow.setAjaxContent(C.ajaxInfo.url,C.ajaxInfo.options);
C.ajaxInfo.options.parameters=B
}else{if(C.url){this.tooltipWindow.setURL(C.url);
this.tooltipWindow.setSize(C.frameWidth,C.frameHeight);
this.tooltipWindow.height=C.frameHeight;
this.tooltipWindow.width=C.frameWidth
}else{this.tooltipWindow.setHTMLContent(C.tooltipElement.innerHTML)
}}if(!C.ajaxInfo){this.tooltipWindow.show();
this.tooltipWindow.toFront()
}},_hideTooltip:function(A){if(this.tooltipWindow){this.tooltipWindow.hide();
this.element=null
}},_mouseOver:function(B){var A=Event.element(B);
if(TooltipManager.showTimer){clearTimeout(TooltipManager.showTimer)
}TooltipManager.showTimer=setTimeout(function(){TooltipManager._showTooltip(A)
},TooltipManager.options.delayOver)
},_mouseOut:function(B){var A=Event.element(B);
if(TooltipManager.showTimer){clearTimeout(TooltipManager.showTimer);
TooltipManager.showTimer=null;
return 
}if(TooltipManager.tooltipWindow){TooltipManager.hideTimer=setTimeout(function(){TooltipManager._hideTooltip(A)
},TooltipManager.options.delayOut)
}},_tooltipOver:function(B,A){if(TooltipManager.hideTimer){clearTimeout(TooltipManager.hideTimer);
TooltipManager.hideTimer=null
}},_tooltipOut:function(B,A){if(TooltipManager.hideTimer==null){TooltipManager.hideTimer=setTimeout(function(){TooltipManager._hideTooltip(A)
},TooltipManager.options.delayOut)
}},_getInfo:function(A){var C=A.className.split(" ").detect(function(D){return D.indexOf("html_")==0
});
var B=true;
if(C){B=false
}else{C=A.className.split(" ").detect(function(D){return D.indexOf("ajax_")==0
})
}C=C.substr(C.indexOf("_")+1,C.length);
return C?{ajax:B,id:C}:null
},onBeforeShow:function(B,E){var D=parseFloat(E.getLocation().top);
var C=E.element.getDimensions();
if(D+C.height>TooltipManager._getScrollTop()+TooltipManager._getPageHeight()){var A=Position.cumulativeOffset(this.element);
var D=A[1]-TooltipManager.options.shiftY-C.height;
E.setLocation(D,A[0]+TooltipManager.options.shiftX)
}},_getPageWidth:function(){return window.innerWidth||document.documentElement.clientWidth||0
},_getPageHeight:function(){return window.innerHeight||document.documentElement.clientHeight||0
},_getScrollTop:function(){return document.documentElement.scrollTop||window.pageYOffset||0
},_getScrollLeft:function(){return document.documentElement.scrollLeft||window.pageXOffset||0
}};