Get the Best IPTV Service
((h,k)=>{XF.PrefixMenu=XF.Element.newHandler({options:{select:"< .js-prefixContainer | .js-prefixSelect",title:"< .js-prefixContainer | .js-titleInput",active:".js-activePrefix",menu:"| [data-menu]",menuContent:".js-prefixMenuContent",listenTo:"",href:"",helpHref:"",helpContainer:"< .formRow | .js-prefixHelp",helpSkipInitial:!1},select:null,active:null,title:null,menu:null,menuContent:null,template:null,initialPrefixId:0,init(){if(this.select=XF.findRelativeIf(this.options.select,this.target)){XF.on(this.select, "control:enabled",this.toggleActive.bind(this));XF.on(this.select,"control:disabled",this.toggleActive.bind(this));this.title=XF.findRelativeIf(this.options.title,this.target);this.active=this.target.querySelector(this.options.active);this.menu=XF.findRelativeIf(this.options.menu,this.target);this.menuContent=this.menu.querySelector(this.options.menuContent);XF.onDelegated(this.menuContent,"click","[data-prefix-id]",this.prefixClick.bind(this));this.template=this.menuContent.querySelector('script[type="text/template"]').innerHTML; this.template||(console.error("No template could be found"),this.template="");if(this.options.href){var a=this.options.listenTo?XF.findRelativeIf(this.options.listenTo,this.target):null;if(a)XF.on(a,"change",this.loadPrefixes.bind(this));else console.error("Cannot load prefixes dynamically as no element set to listen to for changes")}this.initMenu();if(a=parseInt(this.select.value,10))this.initialPrefixId=a,this.selectPrefix(a,!0);a=this.target.closest("form");XF.on(a,"reset",this.reset.bind(this))}else console.error("No select matching %s", this.options.select)},initMenu(){const a=[],b=[];Array.from(this.select.childNodes).forEach(c=>{if(c.nodeType!==Node.TEXT_NODE)if(c.matches("optgroup")){const d=[];Array.from(c.querySelectorAll("option")).forEach(e=>{d.push({prefix_id:e.value,title:e.textContent,css_class:e.dataset.prefixClass})});d.length&&a.push({title:c.getAttribute("label"),prefixes:d})}else{const d=c.value;"0"!==d&&"-1"!==d&&b.push({prefix_id:d,title:c.textContent,css_class:c.dataset.prefixClass})}});b.length&&a.push({title:null, prefixes:b});this.menuContent.innerHTML=Mustache.render(this.template,{groups:a})},reset(){this.selectPrefix(this.initialPrefixId,!0)},loadPrefixes(a){XF.ajax("POST",this.options.href,{val:a.target.value,initial_prefix_id:this.initialPrefixId},this.loadSuccess.bind(this))},loadSuccess(a){if(a.html){const b=this.select;XF.setupHtmlInsert(a.html,c=>{if("SELECT"===c.tagName){let d=b.value;b.innerHTML="";b.append(...Array.from(c.children));b.querySelector(`option[value="${d}"]`)||(d=0);this.initMenu(); this.selectPrefix(d)}})}},toggleActive(a){a=a.target;const b=this.active.closest(".inputGroup-text");b&&(a.disabled?b.classList.add("inputGroup-text--disabled"):b.classList.remove("inputGroup-text--disabled"))},selectPrefix(a,b){a=parseInt(a,10);const c=this.active,d=this.select;let e=d.querySelector(`option[value="${a}"]`);e||(a=0,e=d.querySelector(`option[value="${a}"]`));let f=c.dataset.prefixClass||"",g=e.dataset.prefixClass||"";f&&c.classList.remove(...f.split(" "));g&&c.classList.add(...g.split(" ")); c.dataset.prefixClass=g;d.value=a;c.textContent=e.textContent;if(!this.options.helpHref||!e.dataset.hasHelp||b&&this.options.helpSkipInitial){if(a=this.getHelpContainer())a.innerHTML=""}else XF.ajax("POST",this.options.helpHref,{prefix_id:a},this.displayHelp.bind(this));XF.trigger(d,"change")},getHelpContainer(){return XF.findRelativeIf(this.options.helpContainer,this.target)},displayHelp(a){const b=this.getHelpContainer();a.html&&b&&XF.setupHtmlInsert(a.html,c=>{b.innerHTML="";b.append(c)})},prefixClick(a){this.selectPrefix(a.target.dataset.prefixId); (a=XF.DataStore.get(this.menu,"menu-trigger"))&&a.close();a=this.title;a.length&&a.focus()}});XF.PrefixLoader=XF.Element.newHandler({options:{listenTo:"",initUpdate:!0,href:""},init(){if(!this.target.matches("select"))console.error("Must trigger on select");else if(this.options.href){const a=this.options.listenTo?XF.findRelativeIf(this.options.listenTo,this.target):null;a?(XF.on(a,"change",this.loadPrefixes.bind(this)),this.options.initUpdate&&XF.trigger(a,"change")):console.error("Cannot load prefixes dynamically as no element set to listen to for changes")}}, loadPrefixes(a){XF.ajax("POST",this.options.href,{val:a.target.value},this.loadSuccess.bind(this))},loadSuccess(a){if(a.html){const b=this.target;XF.setupHtmlInsert(a.html,c=>{const d=b.value;if(c instanceof HTMLSelectElement){b.innerHTML="";b.append(...Array.from(c.children));let e=!1;c=b.querySelectorAll("option");c.forEach(f=>{f.getAttribute("value")===d&&(b.value=d,e=!0)});e||(b.value=c[0].getAttribute("value"));return!1}})}}});XF.Element.register("prefix-menu","XF.PrefixMenu");XF.Element.register("prefix-loader", "XF.PrefixLoader")})(window,document); Flash Sale Popup