var findEventHandlers = function (eventType, jqSelector) { var results = []; var $ = jQuery; // to avoid conflict between others frameworks like Mootools var arrayIntersection = function (array1, array2) { return $(array1).filter(function (index, element) { return $.inArray(element, $(array2)) !== -1; }); }; var haveCommonElements = function (array1, array2) { return arrayIntersection(array1, array2).length !== 0; }; var addEventHandlerInfo = function (element, event, $elementsCovered) { var extendedEvent = event; if ($elementsCovered !== void 0 && $elementsCovered !== null) { $.extend(extendedEvent, { targets: $elementsCovered.toArray() }); } var eventInfo; var eventsInfo = $.grep(results, function (evInfo, index) { return element === evInfo.element; }); if (eventsInfo.length === 0) { eventInfo = { element: element, events: [extendedEvent] }; results.push(eventInfo); } else { eventInfo = eventsInfo[0]; eventInfo .events .push(extendedEvent); } }; var $elementsToWatch = $(jqSelector); if (jqSelector === "*") // * does not include document and we might be interested in handlers registered // there $elementsToWatch = $elementsToWatch.add(document); var $allElements = $("*").add(document); $.each($allElements, function (elementIndex, element) { var allElementEvents = $._data(element, "events"); if (allElementEvents !== void 0 && allElementEvents[eventType] !== void 0) { var eventContainer = allElementEvents[eventType]; $.each(eventContainer, function (eventIndex, event) { var isDelegateEvent = event.selector !== void 0 && event.selector !== null; var $elementsCovered; if (isDelegateEvent) { $elementsCovered = $(event.selector, element); //only look at children of the element, since those are the only ones the handler covers } else { $elementsCovered = $(element); //just itself } if (haveCommonElements($elementsCovered, $elementsToWatch)) { addEventHandlerInfo(element, event, $elementsCovered); } }); } }); return results; }; <<<<<<>>>>>> 8 a6acabd0b62f0eb47602d7d497e73c55fec82d5 }); $(document).ready(function () { $(document) .on("click", ".stag_rhs_toggle", function () { var state = window .top .toggleRHS(), icon = $(this).find("i"); if (state === "collapsed") { icon .removeClass() .addClass("fa fa-arrow-left"); } else { icon .removeClass() .addClass("fa fa-arrow-right"); } }); var body = $(window.top.document.body), icon = $(".stag_rhs_toggle i"); if (body.is(".stag_rhs_collapsed")) { icon .removeClass() .addClass("fa fa-arrow-left"); } initFastLoad(); initializeCalendar(); }); function enableTimeSpecificFields(_checked, _valueClass, _rangeClass) { if (_valueClass) $('.' + _valueClass).prop('disabled', _checked); if (_rangeClass) $('.' + _rangeClass).prop('disabled', !_checked); } function toggleDisabledAsNeeded(_el, _targetValue, _enableClass, _disableClass) { if (_el.value === _targetValue) { if (_enableClass) $('.' + _enableClass).prop('disabled', false); if (_disableClass) $('.' + _disableClass).prop('disabled', true); } else { if (_enableClass) $('.' + _enableClass).prop('disabled', true); if (_disableClass) $('.' + _disableClass).prop('disabled', false); } } function toggleVisibilityAsNeeded(_el, _targetValue, _visibleClass, _hiddenClass) { if (_el.value === _targetValue) { if (_visibleClass) $('.' + _visibleClass).removeClass('d-none'); if (_hiddenClass) $('.' + _hiddenClass).addClass('d-none'); } else { if (_visibleClass) $('.' + _visibleClass).addClass('d-none'); if (_hiddenClass) $('.' + _hiddenClass).removeClass('d-none'); } } var fastCache = {}; function initFastLoad(_parent = false) { fastCache = {}; var allAs = $('a:not([onclick]):not([href="#"])'); if (_parent) { allAs = _parent.find('a:not([onclick]):not([href="#"])'); } // find links without event handlers allAs .each(function () { if (!$(this).closest("[moe]").length) { if ($(this).closest('.dropdown-menu[aria-labelledby="practice-management"]').length) { enableFastLoad(this, true); } else { var handlers = findEventHandlers("click", this); if (!handlers || !handlers.length) { enableFastLoad(this); } } } }); function enableFastLoad(_a, _menuItem = false) { $(_a) .on("click", function () { fastLoad(this.href, true, true); if (_menuItem) { $(this) .closest(".dropdown-menu") .removeClass("show") .prev(".dropdown-toggle") .attr("aria-expanded", "false"); } return false; }); // console.info('FastLoad enabled for ' + _a.innerText + ' [' + _a.href + ']'); } // fast cache allAs = $('a:not([onclick]):not([href="#"])'); allAs.each(function () { var a = this; $.get(a.href, function (_data) { fastCache[a.href] = _data; }); }); } function fastLoad(_href, _history = true, _useCache = true) { function onData(_data) { var targetParent = $(".stag-content"); _data = "
" + _data + "
"; var content = $(_data).find(".stag-content"); if (content && content.length) { content = content.html(); content += ''; targetParent.html(content); initFastLoad(targetParent); initializeCalendar(); // push state if (_history) { var target = _href; if (target.indexOf("//") !== -1) { target = target.split("//")[1]; if (target.indexOf("/") !== -1) { target = target.substr(target.indexOf("/") + 1); } } window .top .history .pushState(target, null, "/mc/" + target); } } else { console.warn("Target page not found: " + _href); window.location.href = _href; // fallback } hideMask(); } showMask(); if (_useCache && !!fastCache[_href]) { onData(fastCache[_href]); } else { $.get(_href, onData); } } function openInRHS(_url) { window .top .showRHS(); var icon = $(".stag_rhs_toggle i"); icon .removeClass() .addClass("fa fa-arrow-right"); window .top .openInRHS(_url); return false; }