((m,l)=>{XF.Rating=XF.Element.newHandler({options:{theme:"fontawesome-stars",initialRating:null,ratingHref:null,readonly:!1,deselectable:!1,showSelected:!0},ratingOverlay:null,barrating:null,widget:null,ratings:null,init(){var a=this.target,b=this.options;const c=b.initialRating;var d=b.showSelected;const f=b.readonly;this.barrating=new XF.BarRating(a,{theme:b.theme,initialRating:c,readonly:f?!0:!1,deselectable:b.deselectable?!0:!1,showSelectedRating:d?!0:!1,onSelect:this.ratingSelected.bind(this)});
(b=a.nextElementSibling)&&b.classList.contains("br-widget")||(b=null);const e=b.querySelectorAll("[data-rating-text]");this.widget=b;this.ratings=e;c&&(a.value=c);d&&b.classList.add("br-widget--withSelected");f||(d=a.getAttribute("id"),a=null,d&&(d=l.querySelector(`label[for="${d}"]`))&&(a=XF.uniqueId(d)),b.setAttribute("role","radiogroup"),b.setAttribute("aria-labelledby",a),Array.from(e).forEach(g=>{const h=c&&g.getAttribute("data-rating-value")==c;g.setAttribute("role","radio");g.setAttribute("aria-checked",
h?"true":"false");g.setAttribute("aria-label",g.getAttribute("data-rating-text"));g.setAttribute("tabindex",h?0:-1)}),c||e[0].setAttribute("tabindex",0),Array.from(e).forEach(g=>{XF.on(g,"keydown",h=>{let k=!1;switch(h.keyCode){case 37:case 38:k=!0;this.keySelectPrevious();break;case 39:case 40:k=!0,this.keySelectNext()}k&&(h.preventDefault(),h.stopPropagation())})}))},keySelect(a){var b=this.target;b=b.querySelector(`option[value="${b.value}"]`);if(a="next"===a?b.nextElementSibling:b.previousElementSibling){var c=
a.value;this.barrating.set(c);Array.from(this.ratings).forEach(d=>{d.matches(`[data-rating-value="${c}"]`)&&d.focus()})}},keySelectPrevious(){this.keySelect("prev")},keySelectNext(){this.keySelect("next")},ratingSelected(a,b,c){this.options.readonly||(Array.from(this.ratings).forEach(d=>{d.setAttribute("aria-checked","false");d.setAttribute("tabindex",-1);a&&d.matches(`[data-rating-value="${a}"]`)&&(d.setAttribute("aria-checked","true"),d.setAttribute("tabindex",0))}),a||this.ratings[0].setAttribute("tabindex",
0),this.options.ratingHref&&(this.ratingOverlay&&this.ratingOverlay.destroy(),this.barrating.clear(),XF.ajax("get",this.options.ratingHref,{rating:a},this.loadOverlay.bind(this))))},loadOverlay(a){a.html&&XF.setupHtmlInsert(a.html,(b,c)=>{b=XF.getOverlayHtml({html:b,title:c.h1||c.title});this.ratingOverlay=XF.showOverlay(b)})}});XF.BarRating=XF.create({options:{theme:"",initialRating:null,allowEmpty:null,emptyValue:"",showValues:!1,showSelectedRating:!0,deselectable:!0,reverse:!1,readonly:!1,fastClicks:!0,
hoverState:!0,silent:!1,onSelect(a,b,c){},onClear(a,b){},onDestroy(a,b){}},target:null,widget:null,__construct(a,b){this.target=a;this.options=XF.extendObject({},this.options,b);this.init()},init(){this.target.matches("select")?this.show():console.error("XF.BarRating must be provided with a select element.")},attachMouseEnterHandler(a){Array.from(a).forEach(b=>{XF.on(b,"mouseenter.barrating",()=>{this.resetStyle();b.classList.add("br-active");const c=this[this.nextAllorPreviousAll()](b);c.length&&
Array.from(c).forEach(d=>d.classList.add("br-active"));this.showSelectedRating(b.getAttribute("data-rating-text"))})})},attachMouseLeaveHandler(){const a=()=>{this.showSelectedRating();this.applyStyle()};XF.on(this.widget,"mouseleave.barrating",a);XF.on(this.widget,"blur.barrating",a)},fastClicks(a){Array.from(a).forEach(b=>{XF.on(b,"touchstart.barrating",c=>{c.preventDefault();c.stopPropagation();b.click()})})},disableClicks(a){Array.from(a).forEach(b=>{XF.on(b,"click.barrating",c=>{c.preventDefault()})})},
attachHandlers(a){this.attachClickHandler(a);this.options.hoverState&&(this.attachMouseEnterHandler(a),this.attachMouseLeaveHandler(a))},detachHandlers(a){Array.from(a).forEach(b=>{XF.off(b,".barrating")})},setupHandlers(a){const b=this.widget.querySelectorAll("a");this.fastClicks(b);a?(this.detachHandlers(b),this.disableClicks(b)):this.attachHandlers(b)},buildWidget(){const a=XF.createElement("div",{className:"br-widget"});Array.from(this.target.querySelectorAll("option")).forEach(b=>{const c=b.value;
c!==this.getData("emptyRatingValue")&&(b=b.textContent,XF.createElement("a",{href:"#",innerHTML:this.options.showValues?b:"",dataset:{ratingValue:c,ratingText:b}},a))});this.options.showSelectedRating&&XF.createElement("div",{className:"br-current-rating"},a);this.options.reverse&&a.classList.add("br-reverse");this.options.readonly&&a.classList.add("br-readonly");return a},show(){this.getData()||(this.wrapElement(),this.saveDataOnElement(),this.widget=this.buildWidget(),this.target.after(this.widget),
this.applyStyle(),this.showSelectedRating(),this.setupHandlers(this.options.readonly),XF.display(this.target,"none"))},readonly(a){"boolean"===typeof a&&this.getData("readOnly")!=a&&(this.setupHandlers(a),this.setData("readOnly",a),this.widget.classList.toggle("br-readonly"))},applyStyle(){var a=this.widget.querySelector('a[data-rating-value="'+this.ratingValue()+'"]'),b=this.getData("userOptions").initialRating;const c=XF.isNumeric(this.ratingValue())?this.ratingValue():0,d=this.fraction(b);this.resetStyle();
if(a){a.classList.add("br-selected","br-current");const f=this[this.nextAllorPreviousAll()](a);f.length&&Array.from(f).forEach(e=>e.classList.add("br-selected"))}this.getData("ratingMade")||!XF.isNumeric(b)||b<=c||!d||(b=Array.from(this.widget.querySelectorAll("a")),a=a?this.getData("userOptions").reverse?a.previousElementSibling:a.nextElementSibling:this.getData("userOptions").reverse?b[b.length-1]:b[0],a.classList.add("br-fractional"),a.classList.add(`br-fractional-${d}`))},isDeselectable(a){return this.getData("allowEmpty")&&
this.getData("userOptions").deselectable?this.ratingValue()==a.getAttribute("data-rating-value"):!1},attachClickHandler(a){Array.from(a).forEach(b=>{XF.on(b,"click.barrating",c=>{c.preventDefault();const d=this.getData("userOptions");let f=b.getAttribute("data-rating-value"),e=b.getAttribute("data-rating-text");this.isDeselectable(b)&&(f=this.getData("emptyRatingValue"),e=this.getData("emptyRatingText"));this.setData("ratingValue",f);this.setData("ratingText",e);this.setData("ratingMade",!0);this.setSelectFieldValue(f);
this.showSelectedRating(e);this.applyStyle();d.onSelect.call(this,this.ratingValue(),this.ratingText(),c);return!1})})},resetStyle(){this.widget.querySelectorAll("a").forEach(a=>{const b=a.classList;Array.from(b).filter(c=>c.match(/^br-/)).forEach(c=>b.remove(c))})},fraction(a){return Math.round(Math.floor(10*a)/10%1*100)},showSelectedRating(a){a=a?a:this.ratingText();a==this.getData("emptyRatingText")&&(a="");this.options.showSelectedRating&&(this.target.parentNode.querySelector(".br-current-rating").textContent=
a)},wrapElement(){const a=["br-wrapper"];""!==this.options.theme&&a.push("br-theme-"+this.options.theme);const b=l.createElement("div");b.classList.add(...a);this.target.parentNode.insertBefore(b,this.target);b.appendChild(this.target)},unwrapElement(){const a=this.target,b=a.parentNode;if(b){for(;a.firstChild;)b.insertBefore(a.firstChild,a);b.removeChild(a)}},nextAllorPreviousAll(){return this.getData("userOptions").reverse?"nextAll":"prevAll"},nextAll(a){const b=[];for(a=a.nextElementSibling;null!==
a;)b.push(a),a=a.nextElementSibling;return b},prevAll(a){const b=[];for(a=a.previousElementSibling;null!==a;)b.push(a),a=a.previousElementSibling;return b},getInitialOption(){const a=this.options.initialRating;return a?this.findOption(a):this.target.querySelector("option:checked")},findOption(a){XF.isNumeric(a)&&(a=Math.floor(a));return this.target.querySelector(`option[value="${a}"]`)},getEmptyOption(){var a=this.target.querySelector(`option[value="${this.options.emptyValue}"]`);return!a&&this.options.allowEmpty?
(a=XF.createElement("option",{value:this.options.emptyValue}),this.target.insertBefore(a,this.target.firstChild),a):a},set(a){const b=this.getData("userOptions"),c=this.target.querySelector(`option[value="${a}"]`);c&&(this.setData("ratingValue",a),this.setData("ratingText",c.textContent),this.setData("ratingMade",!0),this.setSelectFieldValue(this.ratingValue()),this.showSelectedRating(this.ratingText()),this.applyStyle(),b.silent||b.onSelect.call(this,this.ratingValue(),this.ratingText()))},setSelectFieldValue(a){if(a=
this.findOption(a))a.selected=!0;XF.trigger(this.target,"change")},resetSelectField(a){a=this.target.querySelectorAll("option");Array.from(a).forEach(b=>{b.selected=b.defaultSelected});XF.trigger(this.target,"change")},clear(){const a=this.getData("userOptions");this.setData("ratingValue",this.getData("originalRatingValue"));this.setData("ratingText",this.getData("originalRatingText"));this.setData("ratingMade",!1);this.resetSelectField();this.showSelectedRating(this.ratingText());this.applyStyle();
a.onClear.call(this,this.ratingValue(),this.ratingText())},destroy(){const a=this.ratingValue(),b=this.ratingText(),c=this.getData("userOptions");this.detachHandlers(this.widget.querySelectorAll("a"));this.widget.remove();this.removeDataOnElement();this.unwrapElement();this.target.display="block";c.onDestroy.call(this,a,b)},ratingText(){return this.getData("ratingText")},ratingValue(){return this.getData("ratingValue")},getData(a){const b=XF.DataStore.get(this.target,"barrating");return"undefined"!==
typeof a?b[a]:b},setData(a,b){if(null!==b&&"object"===typeof b)XF.DataStore.set(this.target,"barrating",b);else{const c=this.getData();c[a]=b;XF.DataStore.set(this.target,"barrating",c)}},saveDataOnElement(){var a=this.getInitialOption();const b=this.getEmptyOption(),c=a.value;a=a.dataset.html?a.dataset.html:a.textContent;this.setData(null,{userOptions:this.options,ratingValue:c,ratingText:a,originalRatingValue:c,originalRatingText:a,allowEmpty:null!==this.options.allowEmpty?this.options.allowEmpty:
!!b,emptyRatingValue:b?b.value:null,emptyRatingText:b?b.textContent:null,readOnly:this.options.readonly,ratingMade:!1})},removeDataOnElement(){XF.DataStore.remove(this.target,"barrating")}});XF.Element.register("rating","XF.Rating")})(window,document);
Flash Sale Popup