var TF_Notices=function(){function t(){this.app_ajax_url="?option=com_ajax&format=raw&plugin=nrframework&task=Notices",this.notices=document.querySelector(".tf-notices"),this.root_url=this.notices.dataset.root,this.token=this.notices.dataset.token,this.ext_element=this.notices.dataset.extElement,this.ext_xml=this.notices.dataset.extXml,this.ext_type=this.notices.dataset.extType,this.exclude=JSON.parse(this.notices.dataset.exclude),this.current_url=this.notices.dataset.currentUrl,this.init()}var e=t.prototype;return e.init=function(){this.showNotices(),this.initEvents()},e.showNotices=function(){var e=this,t={ext_element:this.ext_element,ext_xml:this.ext_xml,ext_type:this.ext_type,exclude:this.exclude,current_url:this.current_url,action:"ajaxnotices"},o=["downloadkey","license","outdated","geolocation","update","upgradetopro","upgradetobundle","error"];this.call(t,function(t){for(index in o)t.notices[o[index]]&&(e.notices.innerHTML+=t.notices[o[index]]);!t.notices.license&&t.notices.rate&&(e.notices.innerHTML+=t.notices.rate),""===e.notices.innerHTML&&e.notices.remove()})},e.initEvents=function(){var e=this;document.addEventListener("click",function(t){e.onNoticeClose(t,"outdated",7),e.onNoticeClose(t,"rate",30),e.onAlreadyRatedClose(t),e.onNoticeClose(t,"update",1),e.onNoticeClose(t,"expired",7),e.onNoticeClose(t,"expiring",1),e.onNoticeClose(t,"geolocation",30),e.onNoticeClose(t,"upgradeToPro",30),e.onNoticeClose(t,"upgradeToBundle",30),e.updateDownloadKey(t)}),document.addEventListener("mouseover",function(t){e.onTooltipEnter(t)}),document.addEventListener("mouseout",function(t){e.onTooltipExit(t)}),window.addEventListener("resize",function(t){e.updateTooltipPosition()},!0)},e.onTooltipEnter=function(t){var t=t.target.closest(".notice-tooltip-icon");!t||(t=t.closest(".notice-tooltip-wrapper").querySelector(".notice-tooltip")).classList.contains("is-visible")||(this.hideOtherTooltips(),t.classList.add("is-visible"),this.elementInViewport(t)?t.classList.remove("leftPosition"):t.classList.add("leftPosition"))},e.onTooltipExit=function(t){t.relatedTarget&&!t.relatedTarget.closest(".notice-tooltip-wrapper")&&this.hideOtherTooltips()},e.hideOtherTooltips=function(){var t=document.querySelectorAll(".notice-tooltip.is-visible");t.length&&t.forEach(function(t){t.classList.remove("is-visible"),t.classList.remove("leftPosition")})},e.elementInViewport=function(t){t=t.getBoundingClientRect();return 0<=t.top&&0<=t.left&&20