﻿Type.registerNamespace("S2B.Portal.Controls.ToolTipExtender");
S2B.Portal.Controls.ToolTipExtender.HoverTooltip = function(element) {
    S2B.Portal.Controls.ToolTipExtender.HoverTooltip.initializeBase(this, [element]);
    this._htmlTemplate = ""; this._defaultTooltipText = ""; this._defaultTooltipTitle = ""; this._controls = []; this._offsetX = 15; this._offsetY = 15;
    this._moveDelegate = Function.createDelegate(this, this._move); this._cleanupInfo = [];
}
S2B.Portal.Controls.ToolTipExtender.HoverTooltip.prototype = { initialize: function() {
    S2B.Portal.Controls.ToolTipExtender.HoverTooltip.callBaseMethod(this, 'initialize');
    for (var i = 0; i < this._controls.length; i++) {
        var webControl = $get(this._controls[i]);
        if (webControl) {
            var title = webControl.title; var tooltipTitle = "";
            if (!title || title.toString() != "") { if (webControl && webControl.attributes && webControl.attributes.getNamedItem("title")) { title = webControl.attributes.getNamedItem("title").value; } } if (webControl && webControl.attributes && webControl.attributes.getNamedItem("tooltiptitle")) { tooltipTitle = webControl.attributes.getNamedItem("tooltiptitle").value; }
            var _showDelegate = Function.createDelegate({ tooltip: this, webControl: webControl, title: title, tooltipTitle: tooltipTitle }, this._show); if (!title) title = ""; var _hideDelegate = Function.createDelegate(this, this._hide); $addHandler(webControl, "mouseover", _showDelegate); $addHandler(webControl, "mouseout", _hideDelegate); Array.add(this._cleanupInfo, { webControl: webControl, _showDelegate: _showDelegate, _hideDelegate: _hideDelegate }); webControl.title = "";
        } 
    } $addHandler(document, "mousemove", this._moveDelegate); if (Sys.Browser.agent == Sys.Browser.InternetExplorer && Sys.Browser.version < 7) { var htIFrame = document.createElement("iframe"); htIFrame.id = "htIFrame"; htIFrame.frameBorder = 0; htIFrame.src = "javascript:false;"; htIFrame.style.display = "none"; htIFrame.style.position = "absolute"; htIFrame.style.filter = "progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)"; htIFrame.style.zIndex = this.get_element().style.zIndex - 1; this.get_element().htIFrame = this.get_element().parentNode.insertBefore(htIFrame, this.get_element()); } 
}, dispose: function() { this.get_element().htIFrame = null; $removeHandler(document, "mousemove", this._moveDelegate); for (var i = 0; i < this._cleanupInfo.length; i++) { var info = this._cleanupInfo[i]; $removeHandler(info.webControl, "mouseover", info._showDelegate); $removeHandler(info.webControl, "mouseout", info._hideDelegate); delete info.webControl; delete info._showDelegate; delete info._hideDelegate; } Array.clear(this._cleanupInfo); S2B.Portal.Controls.ToolTipExtender.HoverTooltip.callBaseMethod(this, 'dispose'); }, get_htmlTemplate: function() { return this._htmlTemplate; }, set_htmlTemplate: function(value) { if (this._htmlTemplate !== value) { this._htmlTemplate = value; this.raisePropertyChanged('htmlTemplate'); } }, get_defaultTooltipText: function() { return this._defaultTooltipText; }, set_defaultTooltipText: function(value) { if (this._defaultTooltipText !== value) { this._defaultTooltipText = value; this.raisePropertyChanged('defaultTooltipText'); } }, get_defaultTooltipTitle: function() { return this._defaultTooltipTitle; }, set_defaultTooltipTitle: function(value) { if (this._defaultTooltipTitle !== value) { this._defaultTooltipTitle = value; this.raisePropertyChanged('defaultTooltipTitle'); } }, get_controls: function() { return this._controls; }, set_controls: function(value) { if (this._controls !== value) { this._controls = value; this.raisePropertyChanged('controls'); } }, get_offsetX: function() { return this._offsetX; }, set_offsetX: function(value) { if (this._offsetX !== value) { this._offsetX = value; this.raisePropertyChanged('offsetX'); } }, get_offsetY: function() { return this._offsetY; }, set_offsetY: function(value) { if (this._offsetY !== value) { this._offsetY = value; this.raisePropertyChanged('offsetY'); } }, _getClientBounds: function() {
    var clientWidth; var clientHeight; switch (Sys.Browser.agent) { case Sys.Browser.InternetExplorer: clientWidth = document.documentElement.clientWidth; clientHeight = document.documentElement.clientHeight; break; case Sys.Browser.Safari: clientWidth = window.innerWidth; clientHeight = window.innerHeight; break; case Sys.Browser.Opera: clientWidth = Math.min(window.innerWidth, document.body.clientWidth); clientHeight = Math.min(window.innerHeight, document.body.clientHeight); break; default: clientWidth = Math.min(window.innerWidth, document.documentElement.clientWidth); clientHeight = Math.min(window.innerHeight, document.documentElement.clientHeight); break; }
    var scrollLeft = (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft); var scrollTop = (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop); return new Sys.UI.Bounds(scrollLeft, scrollTop, clientWidth, clientHeight);
}, show: function(control, tooltipTitle, tooltipText) { var delegate = Function.createDelegate({ tooltip: this, webControl: control, title: tooltipText, tooltipTitle: tooltipTitle }, this._show); delegate.call(); }, hide: function() { this._hide(); }, _show: function(args) { var webControl = this.webControl; var tooltip = this.tooltip; var tooltipTitle = this.tooltipTitle; var title = this.title; if (!webControl.disabled) { if (title.toString() == "") { title = tooltip._defaultTooltipText; } if (tooltipTitle.toString() == "") { tooltipTitle = tooltip._defaultTooltipTitle; } var contents = String.format(tooltip._htmlTemplate, tooltipTitle, title); tooltip.get_element().innerHTML = contents; tooltip.get_element().style.visibility = "visible"; } }, _hide: function(args) { this.get_element().style.visibility = "hidden"; if (this.get_element().htIFrame) { this.get_element().htIFrame.style.left = this.get_element().style.left; this.get_element().htIFrame.style.top = this.get_element().style.top; this.get_element().htIFrame.style.display = "none"; } }, _move: function(args) {
    if (this.get_element() && this.get_element().style.visibility == "visible") {
        var bounds = this._getClientBounds(); var scrollX = bounds.x; var scrollY = bounds.y; var x = args.clientX + scrollX; var y = args.clientY + scrollY; var innerWidth = bounds.width; var innerHeight = bounds.height; if ((x + this._offsetX + this.get_element().offsetWidth) >= innerWidth) { this.get_element().style.left = (x - 5 - this.get_element().offsetWidth) + "px"; } else { this.get_element().style.left = (x + this._offsetX) + "px"; }
        if (y + this._offsetY + this.get_element().offsetHeight >= innerHeight + scrollY) {
            this.get_element().style.top = (y + 5 - this.get_element().offsetHeight) + "px";
        } else { this.get_element().style.top = (y + this._offsetY) + "px"; } if (this.get_element().htIFrame != null) {
            this.get_element().htIFrame.style.left = this.get_element().style.left;
            this.get_element().htIFrame.style.top = this.get_element().style.top;
            this.get_element().htIFrame.style.width = this.get_element().offsetWidth + "px";
            this.get_element().htIFrame.style.height = this.get_element().offsetHeight + "px";
            this.get_element().htIFrame.style.display = "block";
        } 
    } 
} 
}
S2B.Portal.Controls.ToolTipExtender.HoverTooltip.registerClass('S2B.Portal.Controls.ToolTipExtender.HoverTooltip', Sys.UI.Control);
Type.registerNamespace('S2B.Portal.Controls.ToolTipExtender');S2B.Portal.Controls.ToolTipExtender.Resource={};
if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();