if (typeof Array.prototype.push == "undefined") { Array.prototype.push = function (a) { this[this.length] = a; return this.length } } function CancelEventBubble(e) { if (e.cancelBubble) e.cancelBubble = true; if (e.stopPropagation) e.stopPropagation() } function SelectText(obj, start, length) { if (document.all && !window.opera) { objRng = obj.createTextRange(); objRng.collapse(); objRng.moveStart('character', start); objRng.moveEnd('character', length); objRng.select() } else if (window.getSelection) { obj.focus(); obj.selectionStart = start; obj.selectionEnd = start + length } } var activeHintId = null; function ShowHint(sender, id) { try { HideHint(); var e = document.getElementById(id); if (e) { activeHintId = id; var pos = GetPosition(sender); pos.y -= 18; pos.x += 22; e.style.display = "block"; e.style.top = pos.y + "px"; e.style.left = pos.x + "px" } } catch (e) { } } function HideHint() { try { if (activeHintId != null) { var e = document.getElementById(activeHintId); e.style.display = "none" } } catch (e) { } } function GetPosition(e) { var pos; try { var x = e.offsetLeft; var y = e.offsetHeight; var p = e.offsetParent; while (p != null) { y += p.offsetTop; x += p.offsetLeft; p = p.offsetParent } pos = { x: x, y: y} } catch (e) { } return pos } function GetScrollTop() { var y; if (self.pageYOffset) { y = self.pageYOffset } else if (document.documentElement && document.documentElement.scrollTop) { y = document.documentElement.scrollTop } else if (document.body) { y = document.body.scrollTop } return y } function GetScrollLeft() { var x; if (self.pageYOffset) { x = self.pageXOffset } else if (document.documentElement && document.documentElement.scrollTop) { x = document.documentElement.scrollLeft } else if (document.body) { x = document.body.scrollLeft } return x } function GetWinWidth() { var w; if (self.innerHeight) { w = self.innerWidth } else if (document.documentElement && document.documentElement.clientHeight) { w = document.documentElement.clientWidth } else if (document.body) { w = document.body.clientWidth } return w } function GetWinHeight() { var h; if (self.innerHeight) { h = self.innerHeight } else if (document.documentElement && document.documentElement.clientHeight) { h = document.documentElement.clientHeight } else if (document.body) { h = document.body.clientHeight } return h } function EventArgs() { this.EventName = ""; this.Value = null } function EventListener(listener, callback) { this.Listener = listener; this.Callback = callback; this.Alive = true } function EventBroadcaster() { this._Events = {} } function AddEventHandler(eventName, listener, callback) { this.Cleanup(); var eName = eventName.toLowerCase(); if (this._Events[eName]) { var arrListeners = this._Events[eName].listeners; for (var i = 0; i < arrListeners.length; i++) { var el = arrListeners[i]; if (el.Listener == listener && el.Callback == callback) { return } } arrListeners.push(new EventListener(listener, callback)) } else { this._Events[eName] = {}; this._Events[eName].listeners = []; this._Events[eName].listeners.push(new EventListener(listener, callback)) } } function RemoveEventHandler(eventName, listener, callback) { this.Cleanup(); var eName = eventName.toLowerCase(); if (this._Events[eName]) { var arrListeners = this._Events[eName].listeners; for (var i = 0; i < arrListeners.length; i++) { var el = arrListeners[i]; if (el.Listener == listener && el.Callback == callback) { arrListeners.splice(i, 1); return } } } } function Cleanup() { for (var e in this._Events) { if (this._Events[e].listeners) { var arrListeners = this._Events[e].listeners; var l = arrListeners.length - 1; for (var i = l; i >= 0; i--) { if (!arrListeners[i].Alive) arrListeners.splice(i, 1) } } } } function FireEvent(eventName, sender, args) { var eName = eventName.toLowerCase(); if (this._Events[eName]) { var eArgs = new EventArgs(); eArgs.EventName = eventName; eArgs.Value = args; eArgs.Broadcaster = this; var arrListeners = this._Events[eName].listeners; for (var i = 0; i < arrListeners.length; i++) { var el = arrListeners[i]; if (el.Callback) { try { el.Alive = (el.Callback(sender, eArgs) === true) } catch (ex) { el.Alive = false } } else { el.Alive = false } } } } EventBroadcaster.prototype.AddEventHandler = AddEventHandler; EventBroadcaster.prototype.RemoveEventHandler = RemoveEventHandler; EventBroadcaster.prototype.Cleanup = Cleanup; EventBroadcaster.prototype.FireEvent = FireEvent; var Broadcaster = new EventBroadcaster(); if (typeof (Sys) !== undefined) Sys.Application.notifyScriptLoaded();
