1var GLOBAL_REFRESH_AD="";var GLOBAL_TEST="smesh";var bru={data:{mobile:false,tablet:false,orientation:"landscape",app:false,os:"",tapOrClick:"click",cdn:{general:"https://superbru-cdn.superbru.com/",content:"https://content-cdn.superbru.com/",pools:"https://static-cdn.superbru.com/pools/",players:"https://static-cdn.superbru.com/players/",clubs:"https://static-cdn.superbru.com/clubs/"},tablet_width_guess:768,ads:[],tooltips:{},fb_app_id:6483758771,fb_api_version:"v12.0",google_client_id:"382113597437-l9njmpdu0cajjochmkdpf759g7ae2n52.apps.googleusercontent.com",ajax_start_ms:0,token:""},init:function(token){console.log("init bru.js");var ua=navigator.userAgent+"";if(ua.toLowerCase().indexOf("iphone")!==-1||ua.toLowerCase().indexOf("android")!==-1){if($(window).width()<768){bru.data.mobile=true}else{bru.data.tablet=true}}if(ua.toLowerCase().indexOf("ipad")!==-1){bru.data.tablet=true}if($(window).width()<$(window).height()){bru.data.orientation="portrait"}if(typeof token!=="undefined"){bru.data.token=token}if(ua.toLowerCase().indexOf("bb10")!==-1||ua.toLowerCase().indexOf("blackberry")!==-1){bru.data.mobile=true}if(ua.toLowerCase().indexOf("iphone")!==-1){bru.data.os="ios";var hn=window.location.hostname;if(hn!=""){if(hn.indexOf("webapp")!==-1){bru.data.app=true}}}if(ua.toLowerCase().indexOf("android")!==-1){bru.data.os="android"}if(ua.toLowerCase().indexOf("ipad")!==-1||ua.toLowerCase().indexOf("android")!==-1||ua.toLowerCase().indexOf("ios")!==-1){if($(window).width()>700){if($(window).width()<$(window).height()){bru.tablet.toggleRotateMessage(true)}$(window).on("orientationchange",function(){if($(window).width()<$(window).height()){bru.tablet.toggleRotateMessage(true)}else{bru.tablet.toggleRotateMessage(false)}})}}bru.history.add();bru.history.print();$(document).ajaxStart(function(){var callDate=new Date;bru.data.ajax_start_ms=callDate.getTime()});$(document).ajaxError(function(event,jqxhr,settings,thrownError){return;if(settings.url!="https://secure.superbru.com/record_ajax_error.php"&&settings.url!="/home/ajax/record_ajax_fail.php"){var callDate=new Date;var recErr={};recErr.duration_ms=callDate.getTime()-bru.data.ajax_start_ms;recErr.url=settings.url;recErr.data=settings.data;recErr.timeout=settings.timeout;recErr.thrown_error=thrownError;recErr.status=jqxhr.status;recErr.timezone_offset=callDate.getTimezoneOffset();recErr.user_agent=navigator.userAgent;console.log("Superbru Error");console.log(recErr);$.ajax({method:"POST",dataType:"json",url:"https://secure.superbru.com/record_ajax_error.php",cache:false,timeout:2e4,data:recErr}).done(function(msg,stat,xhr){}).fail(function(msg,stat,xhr){})}});$("header .right-icons .icon").on("click",function(){bru.mobile.toggleNav("right")});$(".tray-mask").on(bru.data.tapOrClick,function(){$(".tray-left").removeClass("exposed");$(".tray-right").removeClass("exposed");$(".tray-mask").removeClass("exposed");bru.mobile.hideLeftNav()});$(".desktop-tray-mask").on("click",function(){bru.desktop.hideNav()});$("header .left-icons .icon.menu").on("click",function(){bru.mobile.toggleNav("left")});$("header .left-icons .icon.home").on("click",function(){document.location="/player/dashboard.php"});$(".nav-item").on("click",function(){if($(this).data("bru-open-tray")===false){}else{bru.desktop.toggleNav($(this).attr("data-bru-id"))}});bru.initDesktopNav();bru.initTooltips();bru.initTabs();bru.initHashLinks();bru.initMobileNav();if(typeof brupicks!=="undefined"){brupicks.init()}if(window.location.hostname=="webapp.superbru.com"){var curr=bru.utils.removeURLParameter(document.location.search,"lt");curr=document.location.origin+document.location.pathname+curr+document.location.hash;window.localStorage.setItem("applastlocation",curr)}},initAds:function(){console.log("init bru ads");var goAds=false;if(window.googletag&&googletag.apiReady){goAds=true}else{console.log("googletag.apiReady is false so stop");return}$(function(){$(".ad-load").each(function(){console.log("try to load each ad in bru.js");if(bru.data.mobile){if($(this).hasClass("mobile")){console.log("render mobile ad "+$(this).attr("id"));$(this).append("<script type='text/javascript'>googletag.cmd.push(function() { googletag.display('"+$(this).attr("id")+"')});<\/script>")}}else{if($(this).hasClass("desktop")){var append=true;if($(this).hasClass("desktop-narrow")){if($(window).width()>=1366){append=false}}if($(this).hasClass("desktop-wide")){if($(window).width()<1366){append=false}}if(append){var ad=$(this).attr("id");console.log("append ad "+ad);$(this).append("<script type='text/javascript'>googletag.cmd.push(function() { googletag.display('"+ad+"')}); <\/script>")}else{console.log("do not append ads desktop size "+$(window).width())}}}})})},initTabs:function(){if(bru.url.getLocationHashVal("tab")!=""){bru.page.loadTab(bru.url.getLocationHashVal("tab"))}else{$(".tab-page .tab").each(function(){if($(this).hasClass("default")){bru.page.loadTab($(this).data("bru-tab"))}})}},initHashLinks:function(){$(document).on("click","a.hash",function(e){e.preventDefault();var pt=document.location.pathname;var fn=pt.substr(pt.lastIndexOf("/"));var u=$(this).attr("href");var tt=u.split("?")[0];if(tt.substr(0,1)!="/"){tt="/"+tt}if(tt==fn){var r=bru.utils.getRandomAlphanumeric(6);if(u.indexOf("?")!=-1){u=u.replace("?","?z="+r+"&")}else if(u.indexOf(".php")!=-1){u=u.replace(".php",".php?z="+r)}}document.location=u})},initMobileNav:function(){$(".mobile-toolbar li").on(bru.data.tapOrClick,function(e){$(".mobile-toolbar li").removeClass("active");$(this).addClass("active")});$(".action-sheet-trigger, .drop").on("click",function(e){if(bru.data.mobile||bru.data.tablet){var a=$(this).find(".action-sheet");if($(this).find(".action-sheet").length==0){console.log("no sheet");if($(this).find("ul").length!=0){html="<ul>"+$(this).find("ul").html()+"</ul>"}}else{html=a.html()}$(".action-sheet-mask").remove();$("body").append("<div class='action-sheet-mask'></div>");$(".action-sheet-mask").on("click",function(e){bru.ui.closeActionSheet()});var cs="";if(a.hasClass("slim")){cs="slim"}$(".body-action-sheet").remove();$("body").append("<div class='action-sheet body-action-sheet "+cs+"'>"+html+"</div>");$(".body-action-sheet").addClass("active");$(".body-action-sheet ul").append("<li class='cancel'><a href='javascript:void(0)' onclick='bru.ui.closeActionSheet()'>Cancel</a></li>");$(".body-action-sheet ul li a").click(function(e){console.log("click");e.preventDefault();var hr=$(this).attr("href");if(hr.indexOf("#")!==-1){if(hr.indexOf("?")!==-1){hr=hr.replace("#","&nocache="+(new Date).getTime()+"#")}else{hr=hr.replace("#","?nocache="+(new Date).getTime()+"#")}}document.location=hr})}})},initDesktopNav:function(){if(bru.data.mobile){return}var showSub=function(){$(".pools-sub-nav .sub").addClass("exposed")};var hideSub=function(){$(".pools-sub-nav .sub").removeClass("exposed")};$(".pools-sub-nav").hoverIntent({over:showSub,out:hideSub,timeout:300,interval:25});var hidePoolDrop=function(e){var o=$("#"+e.currentTarget.id);console.log("remove "+o.data("pool-name"));o.remove()};var showPoolDrop=function(e){var o=$("#"+e.currentTarget.id);$(".pool-desktop-drop").remove();var subId="pool-desktop-drop"+e.currentTarget.id;if($("#"+subId).length!=0){$("#"+subId).remove()}$("body").append("<div class='pool-desktop-drop' id='"+subId+"' data-pool-name='"+o.data("pool-name")+"'>"+o.find("ul").html()+"</div>");var d=$("#pool-desktop-drop"+e.currentTarget.id);d.css("top",o.offset().top+"px");d.css("left",o.offset().left+"px");d.addClass("visible");$("#"+subId).hover(function(){console.log("hover")},function(){$(this).remove()})};$(".pool-line").hoverIntent({over:showPoolDrop,out:function(){},timeout:300,interval:25});var showSubi=function(){$(".info-sub-nav .sub").addClass("exposed")};var hideSubi=function(){$(".info-sub-nav .sub").removeClass("exposed")};$(".info-sub-nav").hoverIntent({over:showSubi,out:hideSubi,timeout:300});var showSubi=function(){$(".aor-sub-nav .sub").addClass("exposed")};var hideSubi=function(){$(".aor-sub-nav .sub").removeClass("exposed")};$(".aor-sub-nav").hoverIntent({over:showSubi,out:hideSubi,timeout:300});window.setTimeout(function(){bru.desktop.updatePoolRanks()},100)},initTooltips:function(){if(bru.data.mobile){return}$(document).on({mouseenter:function(){var d=new Date;var n="tt"+d.getTime()+bru.utils.getRandomAlphanumeric(5);$(this).data("tooltip-id",n);var top=parseFloat($(this).offset().top);var mid=parseFloat($(this).offset().left)+parseFloat($(this).width())/2;var tt="<div class='brutip' id='"+n+"'>"+$(this).data("brutip")+"</div>";var o=$(this);var ms=250;if(o.hasClass("brutip-slow")){ms=500}else if(o.hasClass("brutip-vslow")){ms=1e3}bru.data.tooltips[n]=setTimeout(function(){$("body").append(tt);var tip=$("#"+n);var l=mid-parseFloat($("#"+n).outerWidth())/2;var t=top-tip.outerHeight()-3;if(t<0||o.hasClass("brutip-south")){tip.addClass("south");t=top+o.outerHeight()+5}
1else if(o.hasClass("brutip-east")){tip.addClass("east");l=o.offset().left+o.width()+10;t=top-tip.outerHeight()/2+10;if(l+tip.outerWidth()>$(window).width()){tip.removeClass("east");tip.addClass("west");l=o.offset().left-tip.outerWidth()-15;t=top-tip.outerHeight()/2+10}}else if(o.hasClass("brutip-west")){tip.addClass("west");l=o.offset().left-tip.outerWidth()-15;t=top-tip.outerHeight()/2+10;if(l<0){tip.removeClass("west");tip.addClass("east");l=o.offset().left+o.width()+10;t=top-tip.outerHeight()/2+10}}tip.css("left",l+"px");tip.css("top",t+"px")},ms)},mouseleave:function(){clearTimeout(bru.data.tooltips[$(this).data("tooltip-id")]);$("#"+$(this).data("tooltip-id")).remove()}},"[data-brutip]")},history:{print:function(){var history=JSON.parse(localStorage.getItem("history"))},add:function(page){if(typeof page==="undefined"){page=window.location.href}if(localStorage.getItem("history")===null){localStorage.setItem("history",JSON.stringify([]))}var hist=JSON.parse(localStorage.getItem("history"));hist.unshift(page);if(hist.length>5){hist.pop()}localStorage.setItem("history",JSON.stringify(hist))},back:function(){if(localStorage.getItem("history")===null){return false}var hist=JSON.parse(localStorage.getItem("history"));alert("go "+hist[1])}},destroyAllTooltips:function(){$(".brutip").remove()},initScrollWatch:function(){if(bru.data.mobile){return}window.addEventListener("scroll",function(){var st=window.pageYOffset||(document.documentElement||document.body.parentNode||document.body).scrollTop;if(st>0&&st<100){if(!$(".ad-desktop-top").hasClass("floating")){$(".ad-desktop-top").addClass("floating")}}else{if($(".ad-desktop-top").hasClass("floating")){$(".ad-desktop-top").removeClass("floating")}}if(st>=100&&$(".ad-desktop-top").hasClass("floating")){$(".ad-desktop-top").removeClass("floating")}},false)},routing:{gotoPage:function(u){document.location=u},openExternal:function(url){var ua=navigator.userAgent+"";var topHolder=0;if(ua.toLowerCase().indexOf("iphone")!==-1||ua.toLowerCase().indexOf("ipad")!==-1){topHolder=22}if($("#externalframe").length==0){$("body").prepend("<div id='externalframeholder' style='position:absolute;background-color:#fff;z-index:9999999;top:"+topHolder+"px;left:0;width:100%;height:100%;'><div style='position:fixed;top:0;width:100%;background-color:#1b2026;padding:25px 10px 10px 10px;'><input type='button' onclick='$(\"#externalframeholder\").fadeOut();$(\"#externalframe\").attr(\"src\", \"/home/loading_external.html\");' value='Back to SuperBru' /></div><iframe id='externalframe' name='externalframe' style='margin-top:70px;width:100%;height:100%;overflow:hidden' frameborder='0' ></iframe></div>")}window.scrollTo(0,0);bru.analytics.trackEvent("Outbound Link","click",url)},offerLiveGameRoutes:function(obj,tid,gid,gamePage){if(bru.data.mobile||bru.data.tablet){bru.ui.openActionSheet(obj)}else{return}}},analytics:{trackEvent:function(eventCategory,eventAction,eventLabel){if(typeof dataLayer!=="undefined"){dataLayer.push({event:"dtTrackEvent",category:eventCategory,action:eventAction,label:eventLabel})}}},mobile:{hideLeftNav:function(){$(".tray-left").removeClass("exposed");$(".tray-mask").removeClass("exposed");$(".hamburger-icons").removeClass("exposed");$("main").show()},toggleNav:function(side){if(side=="left"){if($(".tray-left").hasClass("exposed")){bru.mobile.hideLeftNav()}else{$(".tray-left").addClass("exposed");$(".tray-mask").addClass("exposed");$(".hamburger-icons").addClass("exposed");if($.trim($(".tray-left").html())==""){$(".tray-left").html(bru.snippets.spinner)}$("main").hide();console.log("get storage");console.log(window.localStorage.getItem("mobiletraynav"));if(window.localStorage.getItem("mobiletraynav")!==null){bru.mobile.loadHamburgerPanel(window.localStorage.getItem("mobiletraynav"))}else{bru.mobile.loadHamburgerPanel("results")}}}else{if($(".tray-right").hasClass("exposed")){$(".tray-right").removeClass("exposed");$(".tray-mask").removeClass("exposed")}else{$(".tray-right").addClass("exposed");$(".tray-mask").addClass("exposed");$("main").addClass("no-scroll")}}},loadHamburgerPanel:function(p){var c=$(".tray-left .hamburger .content");c.html(bru.snippets.spinner);$(".hamburger-icons .icon").removeClass("active");$(".hamburger-icons .icon."+p).addClass("active");var url="";var css="padded";var data={};var loadPage=false;switch(p){case"todo":url="/player/navtrays/todo.php";data={token:bru.data.token};css="";break;case"tournaments":url="/player/navtrays/tournaments.php";css="";data={token:bru.data.token};break;case"upcoming":url="/player/navtrays/upcoming.php";data={token:bru.data.token};css="";break;case"invitations":url="/player/invitations.php";data={token:bru.data.token};loadPage=true;css="";break;case"results":url="/player/navtrays/live_and_results.php";data={token:bru.data.token};css="";break;case"captaincies":url="/player/navtrays/captaincies.php";data={token:bru.data.token};css="";break;case"news":url="/player/navtrays/news.php";data={format:"mobile",token:bru.data.token};break}if(loadPage){document.location=url;return}window.localStorage.setItem("mobiletraynav",p);var fail="<div class='fail'><i class='fa fa-bomb' aria-hidden='true'></i><div class='title'>Woah! That didn't work. Please try again.</div></div>";console.log(data);$.ajax({method:"POST",dataType:"json",url:url,cache:false,timeout:2e4,data:data}).done(function(msg,stat,xhr){if(msg.result=="success"){var h="";if(css!=""){h='<div class="'+css+'">'}h+=msg.data;if(css!=""){h+="</div>"}c.html(h)}else{c.html(fail)}}).fail(function(msg,stat,xhr){c.html(fail)})},refreshLiveTray:function(){bru.mobile.loadHamburgerPanel("results")}},tablet:{toggleRotateMessage:function(show){if(show){$("body").append("<div class='tablet-rotate-mask'></div>");$("body").append("<div class='tablet-rotate'><div><div class='icons'><i class='fa fa-tablet' aria-hidden='true'></i><i class='fa fa-undo' aria-hidden='true'></i></div><div class='message'><h1>Please rotate your screen</h1>On a tablet, Superbru works best in landscape mode</div><a href='javascript:void(0)' class='button' onclick='bru.tablet.toggleRotateMessage(false)'>Close</a></div></div>")}else{$(".tablet-rotate-mask").remove();$(".tablet-rotate").remove()}}},desktop:{toggleNav:function(nav){var tp=".nav-tray[data-bru-id="+nav+"]";var t=$(tp);$(".nav-item").removeClass("active");if(t.hasClass("exposed")){$(".nav-tray").removeClass("exposed");
1$(".desktop-tray-mask").removeClass("exposed");$("main").removeClass("fixed");$("body").removeClass("fixed")}else{$(".nav-tray").removeClass("exposed");t.addClass("exposed");$(".desktop-tray-mask").addClass("exposed");$("main").addClass("fixed");$("body").addClass("fixed");$(".nav-item."+nav).addClass("active");console.log("nav "+nav);var load=true;if(t.attr("data-bru-last-update")!=null&&t.data("bru-cache-secs")!=null&&!isNaN(t.data("bru-cache-secs"))&&!isNaN(t.attr("data-bru-last-update"))){if(Date.now()-1e3*parseInt(t.data("bru-cache-secs"),10)<parseInt(t.attr("data-bru-last-update"),10)){load=false}}if(load){var url="";var data={};if(t.data("bru-href")!=""){url=t.data("bru-href")}if(t.data("bru-data")!=null&&t.data("bru-data")!=""){console.log("--"+t.data("bru-data")+"--");data=bru.url.getObjectFromQuerystring(t.data("bru-data"))}if(url!=""){var params={};data.token=bru.data.token;params.data=data;t.data("bru-last-update",Date.now());t.attr("data-bru-last-update",Date.now());bru.ui.load(tp,url,params)}}}},hideNav:function(showLoading){loading=false;if(typeof showLoading!=="undefined"){if(showLoading){loading=true}}$(".nav-tray").removeClass("exposed");if(loading){$(".desktop-tray-mask").addClass("loading")}else{$(".desktop-tray-mask").removeClass("exposed")}$("main").removeClass("fixed");$("body").removeClass("fixed");$(".nav-item").removeClass("active")},pinPoolNav:function(pin){if(pin==1){$(".pool-bar-pinned").addClass("pinned");$(".pool-nav-overlay").removeClass("exposed");$(".pool-bar-pinned .fa-thumb-tack").addClass("pinned")}else{$(".pool-bar-pinned").removeClass("pinned");$(".pool-bar-pinned .fa-thumb-tack").removeClass("pinned")}$.ajax({method:"POST",dataType:"json",url:"ajax/pin_pool_nav.php",cache:false,timeout:2e4,data:{pin:pin}}).done(function(msg,stat,xhr){if(msg.result=="success"){}}).fail(function(msg,stat,xhr){})},pinPool:function(tid,pid){$("#tack"+pid).addClass("waiting");$.ajax({method:"POST",dataType:"json",url:"ajax/pin_pool_nav.php",cache:false,timeout:2e4,data:{tournament_id:tid,pool_id:pid}}).done(function(msg,stat,xhr){if(msg.result=="success"){if(msg.data=="pinned"){$("#tack"+pid+" i").addClass("pinned");$("#visible-pin"+pid).addClass("shown");$(".pool-bar-pinned").addClass("pinned")}else{$("#tack"+pid+" i").removeClass("pinned");$("#visible-pin"+pid).removeClass("shown")}}}).fail(function(msg,stat,xhr){}).always(function(msg,stat,xhr){$("#tack"+pid).removeClass("waiting");var shown=0;$(".pool-bar-pinned .pools div.pool-line").each(function(){if($(this).hasClass("shown")){shown++}});if(shown==0){$(".pool-bar-pinned a.cog").addClass("hidden")}else{$(".pool-bar-pinned a.cog").removeClass("hidden")}bru.ui.hidePinGuide()})},updatePoolRanks:function(){},toggleTodoTournament:function(o){if(bru.data.mobile){}if(o.parent().hasClass("exposed")){o.parent().removeClass("exposed")}else{o.parent().addClass("exposed")}}},dashboard:{toggleFixtureView:function(view_fixtures){if(view_fixtures){$("#todo-tray-fixture").removeClass("todo-tray-hidden");$("#todo-tray-round").addClass("todo-tray-hidden")}else{$("#todo-tray-fixture").addClass("todo-tray-hidden");$("#todo-tray-round").removeClass("todo-tray-hidden")}},toggleUnmadeOnly:function(obj){var choice=1;if(obj.hasClass("toggle-on")){choice=0;obj.removeClass("toggle-on");obj.find("i").removeClass("fa-toggle-on").addClass("fa-toggle-off");$(".event2.picked").removeClass("hidden");$(".pick-made-total").addClass("hidden")}else{obj.addClass("toggle-on");obj.find("i").removeClass("fa-toggle-off").addClass("fa-toggle-on");$(".event2.picked").addClass("hidden");$(".pick-made-total").removeClass("hidden")}$.ajax({type:"POST",url:"/player/ajax/update_player_preference.php",timeout:1e4,cache:false,dataType:"html",data:{p:2,c:choice}}).done(function(msg,xhr){}).fail(function(msg,xhr){}).always(function(msg,xhr){})},clickEvent:function(e,o){console.log("clickevent");console.log(e);e.preventDefault();e.stopPropagation();bru.desktop.hideNav(true);document.location=o.attr("href")}},user:{setSportPreference:function(s){var jqxhr=$.ajax({dataType:"json",method:"POST",url:"/beta/set_sport_cookie.php",data:{sport_id:s},cache:false,timeout:3e4}).done(function(msg,xhr){if(msg.result=="success"){}else{}}).fail(function(){}
1).always(function(){})},saveSportPreferences:function(f){var jqxhr=$.ajax({dataType:"json",method:"POST",url:"/player/ajax/save_sport_preferences.php",data:{form:$(f).serializeArray()},cache:false,timeout:3e4}).done(function(msg,xhr){if(msg.result=="success"){}else{}}).fail(function(){}).always(function(){bru.ui.overlay.close()})},askCookies:function(){$("body").append("<div class='cookie-bar'><div class='inner'><div class='info'>Hi there! Like most websites we use <b>cookies</b> to enable your usage of our site, store your preferences, analyse your usage of our services and serve advertising. More detail is in our <a href='/cookies'>Cookie Policy</a>. Please acknowledge that you understand this.</div><button onclick='bru.user.saveCookieConsent(1)'>I accept cookies</button></div></div>")},saveCookieConsent:function(c){$(".cookie-bar").fadeOut(250);var jqxhr=$.ajax({dataType:"json",method:"POST",url:"/player/ajax/save_cookie_consent.php",data:{consent:c},cache:false,timeout:3e4}).done(function(msg,xhr){console.log("xhr done");if(msg.result=="success"){}else{}}).fail(function(){}
1).always(function(){})},setBetPreference:function(o,choice){o.html("Saving...");var jqxhr=$.ajax({dataType:"json",method:"POST",url:"/player/ajax/update_player_preference.php",data:{c:choice,p:3},cache:false,timeout:3e4}).done(function(msg,xhr){if(msg.result=="success"){$(".bet-feature").fadeOut(200)}else{alert("Sorry, your preference couldn't be saved right now.");o.html('<i class="fa fa-arrow-up" aria-hidden="true"></i> <a href="javascript:void(0)" onclick="bru.user.setBetPreference($(this).parent(),1)">Don\'t show me this feature</a>')}}).fail(function(){alert("Sorry, your preference couldn't be saved right now.");o.html('<i class="fa fa-arrow-up" aria-hidden="true"></i> <a href="javascript:void(0)" onclick="bru.user.setBetPreference($(this).parent(),1)">Don\'t show me this feature</a>')}).always(function(){})}},tournament_nav:{openPoolsTab:function(d,t,p){var u="ajax/nav_pools_cdn.php?t="+t+"&p="+p;bru.ui.overlay.open({title:"ajax",content:{url:u,method:"POST"},footer:"",pad:false,width:"600px"})}},utils:{getRandomAlphanumeric:function(len){var outStr="",newStr;while(outStr.length<len){newStr=Math.random().toString(36).slice(2);outStr+=newStr.slice(0,Math.min(newStr.length,len-outStr.length))}return outStr},validateEmail:function(email){var re=/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;return re.test(email)},removeURLParameter:function(url,parameter){var urlparts=url.split("?");if(urlparts.length>=2){var prefix=encodeURIComponent(parameter)+"=";var pars=urlparts[1].split(/[&;]/g);for(var i=pars.length;i-- >0;){if(pars[i].lastIndexOf(prefix,0)!==-1){pars.splice(i,1)}}url=urlparts[0]+"?"+pars.join("&");return url}else{return url}},replaceWordChars:function(t){t=t.replace(/[\u2012\u2013\u2014\u2015]/g,"-");t=t.replace(/[\u2026]/g,"...");t=t.replace(/[\u201C\u201D]/g,'"');t=t.replace(/[\u2018\u2019]/g,"'");return t}},ui:{overlay:{open:function(p,onClose){if(!p.hasOwnProperty("id")){p.id="overlay"+bru.utils.getRandomAlphanumeric(32)}if($("#"+p.id).length!=0){$("#"+p.id).remove()}var mob=true;if(!bru.data.mobile&&$(window).width()>1e3){mob=false}if($(".overlay-mask").length!=0){$(".overlay-mask").fadeIn()}else{$("body").append("<div class='overlay-mask'></div>")}$(".overlay-mask").on("click",function(){if(typeof onClose==="function"){onClose()}else{bru.ui.overlay.close()}});if(!p.hasOwnProperty("title")){p.title=""}var ajaxTitle=false;if(!p.hasOwnProperty("header")){p.header=true}var alertStyle=false;var styleCss="";var icon="";if(p.hasOwnProperty("style")){if(p.style=="alert"){alertStyle=true;styleCss="alertOverlay ";icon='<i class="fa fa-exclamation-triangle" aria-hidden="true"></i>';if(p.hasOwnProperty("alert_style")){styleCss+=" "+p.alert_style+" ";if(p.alert_style=="confirm"||p.alert_style=="conf"){icon='<i class="fa fa-check" aria-hidden="true"></i>'}if(p.alert_style=="lock"){icon='<i class="fa fa-lock" aria-hidden="true"></i>'}}$(".overlay-mask").addClass("popup")}if(p.style=="premium"){styleCss="premium "}}if(!p.header&&!mob){var hd=""}else{if(typeof p.content==="object"&&p.title=="ajax"){p.title="…";ajaxTitle=true}var hd='<div class="header">'+icon+'<div class="title">'+p.title+"</div>";if(!alertStyle){hd+='<i class="fa fa-close"></i>'}hd+="</div>";if(p.hasOwnProperty("header_back")){if(p.header_back===true){hd='<div class="header with-back"><div class="back"><i class="fa fa-angle-left" aria-hidden="true"></i><div class="text">Back</div></div><div class="title">'+p.title+"</div></div>"}}}var desktopCss="";var mobileCss="";if(!mob){if(p.hasOwnProperty("width")){desktopCss+="width:"+p.width+";"}}var autofit=true;if(p.hasOwnProperty("autofit")){if(p.autofit===false){autofit=false}}var f="";if(p.hasOwnProperty("footer")){if(typeof p.footer==="object"){if(typeof p.footer.type!=="undefined"){if(p.footer.type=="lock"){f+='<div class="button-group margin-top-bottom">';f+='<button onclick="bru.ui.overlay.close()" class="flat">Cancel</button>';
1f+='<button onclick="brupicks.lockPickProcess('+p.footer.game_id+",'"+p.footer.save_token+'\')" class="">Lock</button>';f+="</div>"}else if(p.footer.type=="lock-sachin"){f+='<div class="button-group margin-top-bottom">';f+='<button onclick="bru.ui.overlay.close()" class="flat">Cancel</button>';f+='<button onclick="brupicks.cricket.sachin.lockPickProcess('+p.footer.game_id+",'"+p.footer.save_token+'\')" class="">Lock</button>';f+="</div>"}else if(p.footer.type=="lock_round"){f+='<div class="button-group margin-top-bottom">';f+='<button onclick="bru.ui.overlay.close()" class="flat">Cancel</button>';f+='<button onclick="brupicks.lockPickRoundProcess('+p.footer.game_id+","+p.footer.round_id+')" class="">Lock All</button>';f+="</div>"}}else{f='<div class="footer"><a href="'+p.footer.url+'" class="button">'+p.footer.text+"</a></div>"}}else{if(p.footer===false){}else{f='<div class="footer">';if(p.footer=="close"){f+='<button onclick="bru.ui.overlay.close()" class="flat">Close</button>'}else if(p.footer=="ok"){f+='<button onclick="bru.ui.overlay.close()" class="flat">OK</button>'}else{f+='<button onclick="bru.ui.overlay.close()" class="flat">'+p.footer+"</button>"}f+="</div>"}}}var cs="content ";var c='<div class="content">';if(!p.hasOwnProperty("pad")){p.pad=true}if(p.pad){cs+="pad "}var scrollTo=0;var st="";if(p.hasOwnProperty("scroll")){if(p.scroll==true){cs+="scroll ";if(p.hasOwnProperty("scroll_to")){scrollTo=p.scroll_to;console.log("scroll to "+scrollTo)}}else{p.scroll=false}}else{console.log("scroll true");p.scroll=true}c='<div class="'+cs+'" style="'+st+'">';if(typeof p.content==="object"){h=bru.snippets.spinner}else{var h="content";if(p.content){h=p.content}}var ol="overlay-mobile-toolbar";if(p.hasOwnProperty("overlay_toolbar")){if(p.overlay_toolbar===false){ol=""}}else{p.overlay_toolar=true}styleCss+=ol;if(bru.data.os=="ios"&&bru.data.app==true){styleCss+=" iphone-app"}$("body").append('<div class="overlay '+styleCss+'" style="'+desktopCss+mobileCss+'" id="'+p.id+'">'+hd+c+h+"</div>"+f+"</div>");var o=$("#"+p.id);if(!mob){bru.ui.overlay.autoPosition(mob,p)}if(p.scroll){var heightMod=100;if(bru.data.mobile){heightMod=0}var fh=0;if(p.overlay_toolbar===false){fh=$("#"+p.id+" .footer").outerHeight()}if(autofit){if(bru.data.mobile||bru.data.tablet){$("#"+p.id+" .content").addClass("scroll").css("height",$(window).height()-heightMod-$("#"+p.id+" .header").outerHeight()-fh+"px")}}if(scrollTo!=0){console.log("scroll to should happen now "+scrollTo);console.log("#"+p.id+" .content");$("#"+p.id+" .content").scrollTop(scrollTo)}}$("#"+p.id+" .header i, #"+p.id+" .header .back").on(bru.data.tapOrClick,function(){if(typeof onClose==="function"){onClose()}else{bru.ui.overlay.close()}});var overlayEscHandler=function(e){if(e.keyCode===27){bru.ui.overlay.close()}};$(document).bind("keyup",bru.ui.overlay.overlayEscHandler);bru.ui.overlay.autoPosition(mob,p);if(typeof p.content==="object"){$("#"+p.id+" .footer").hide();var a=p.content;if(!a.method){a.method="POST"}if(!a.data){a.data={}}if(!a.timeout){a.timeout=2e4}var cx=false;if(a.url.indexOf("superbru-cdn")!==-1){cx=true}var params={dataType:"json",method:a.method,url:a.url,data:a.data,cache:cx,timeout:a.timeout};if(a.url.indexOf("_cdn")!==-1){params.dataType="jsonp";params.jsonp="callback"}var jqxhr=$.ajax(params).done(function(msg,xhr){if(params.dataType=="jsonp"){msg=msg[0]}if(msg.result=="success"){$("#"+p.id+" .content").html(msg.data.html);if(msg.data.title&&ajaxTitle){$("#"+p.id+" .header .title").html(msg.data.title)}if(p.hasOwnProperty("ajaxCallback")){window[p.ajaxCallback]()}}else{if(msg.code==1){$("#"+p.id+" .content").html('<div class="error"><i class="fa fa-user-circle"></i>Please log in to view this.<br><br><a href="/home/login_form.php" class="button">Log in</a></div>');$("#"+p.id+" .header .title").html("Please log in")}else{$("#"+p.id+" .content").html('<div class="error"><i class="fa fa-bomb"></i>'+msg.data+"</div>");$("#"+p.id+" .header .title").html("Oops")}}}).fail(function(data,stat,xhr){$("#"+p.id+" .content").html('<div class="error"><i class="fa fa-bomb"></i>Sorry, this could not be loaded. Please try again. [1]</div>');$("#"+p.id+" .header .title").html("Oops")}).always(function(){$("#"+p.id+" .footer").fadeIn();bru.ui.overlay.autoPosition(mob,p)})}},autoPosition:function(mob,p){if(!mob){var o=$("#"+p.id);o.css("margin-left","-"+o.width()/2+"px");var con=$("#"+p.id+" .content");
1if(con.height()>$(window).height()-40-20-40){con.addClass("scroll");var contop=parseInt(o.css("top").replace("px",""),10);con.css("height",$(window).height()-40-20-40-60+"px")}o.css("top",($(window).height()-o.height())/2+"px")}else{console.log("autopos overlay");$(".overlay").css("overflow","scroll");$(".overlay .content.scroll").css("height","100%")}},fixHeight:function(){if(!bru.data.mobile){var o=$(".overlay .content.scroll");o.css("height",$(window).height()-40-20-40-60+"px")}},close:function(){$(".overlay-mask").fadeOut().remove();$(".overlay").fadeOut().remove();$(document).unbind("keyup",bru.ui.overlay.overlayEscHandler)},overlayEscHandler:function(e){if(e.keyCode===27){bru.ui.overlay.close()}}},alert:function(m,t,s){if(typeof t==="undefined"){t="Superbru"}if(typeof s==="undefined"){var s="error"}bru.ui.overlay.open({title:t,content:m,footer:"ok",style:"alert",scroll:false,alert_style:s})},togglePickStatus:function(o){$(".pick-date").toggle();var fa=o.find(".fa");if(fa.hasClass("fa-toggle-off")){fa.removeClass("fa-toggle-off");fa.addClass("fa-toggle-on")}else{fa.addClass("fa-toggle-off");fa.removeClass("fa-toggle-on")}},toggleCheck:function(o){if(o.hasClass("chosen")){o.removeClass("chosen")}else{o.addClass("chosen")}},showPaymentSecurityNotice:function(){bru.ui.overlay.open({title:"Payment Security",content:"<h1>Credit Card Security</h1><p>We follow industry best practice for security around your payment:</p><h3>Transmission using SSL</h3> <p>When you put your card details into Superbru, they are transmitted from your device to our payment system provider over a secure connection. A technology called SSL ensures that everything you submit is encrypted on its journey across the internet from you to us. If anyone did intercept your details along the way, all they would see is a meaningless jumble of code.</p><h3>Processing by Stripe</h3><p>Your payment will be processed by our payment system provider, <b>Stripe</b>. Stripe is a leading, trusted player in the online payments industry, processing billions of dollars a year for thousands of online retailers. Your credit card details will not be transmitted to Superbru's servers: all processing happens at Stripe. Read more about <a href='https://stripe.com/help/security' target='_blank'>Stripe's commitment to security</a>.</p>",footer:"Close",scroll:false})},writeAlert:function(p){var alertClass="alertInfo";var alertIcon="fa-info-circle";if(p.hasOwnProperty("alertType")){if(p.alertType=="error"){alertClass="alertError";alertIcon="fa-exclamation-triangle"}else if(p.alertType=="confirm"){alertClass="alertConfirm";alertIcon="fa-check-circle"}else if(p.alertType=="scoring"){alertClass="alertScoring";alertIcon="fa-hand-o-down"}if(p.el.substr(0,1)=="."){var selector=p.el}else{var selector="#"+p.el}$(selector).append("<div class='alert "+alertClass+"'><i class='fa "+alertIcon+"' aria-hidden='true'></i><div class='alertcontent'><div class='alerttitle'>"+p.title+"</div>"+p.message+"</div><div class='clear'></div></div>")}},getCountdown:function(mins,format,showDays){if(mins<1){diffHour=0;diffDay=0;diffMin=0}else{days=mins/(60*24);dayRem=mins/(60*24)-Math.floor(mins/(60*24));diffDay=Math.floor(days);hours=dayRem*24;diffHour=Math.floor(hours);hoursRem=hours-Math.floor(hours);min=hoursRem*60;diffMin=Math.floor(min)}tagDays="days";tagHours="hrs";tagMins="mins";if(format=="mini"){tagDays="d";tagHours="h";tagMins="m"}t="";if(showDays){t=t+"<div class='timeNumber'>";if(diffDay.toString().length<2){t=t+"0"}t=t+diffDay+"</div><div class='timeLabel'>"+tagDays+"</div>"}t=t+"<div class='timeNumber'>";if(diffHour.toString().length<2){t=t+"0"}t=t+diffHour+"</div><div class='timeLabel'>"+tagHours+"</div><div class='timeNumber'>";if(diffMin.toString().length<2){t=t+"0"}t=t+diffMin+"</div><div class='timeLabel'>"+tagMins+"</div>";return t},load:function(c,u,p){var o=$(c);if(typeof p==="undefined"){p={}}showIndicator=true;if(p.hasOwnProperty("indicator")){if(p.indicator===false){showIndicator=false}}if(showIndicator){o.html(bru.snippets.spinner)}if(!p.hasOwnProperty("dataType")){p.dataType="json"}if(!p.hasOwnProperty("method")){p.method="GET"}if(!p.hasOwnProperty("data")){p.data={}}if(!p.hasOwnProperty("timeout")){p.timeout=3e4}var cx=false;if(u.indexOf("superbru-cdn")!==-1){cx=true}var params={dataType:p.dataType,method:p.method,url:u,data:p.data,cache:cx,timeout:p.timeout};if(u.indexOf("_cdn")!==-1){params.dataType="jsonp";params.jsonp="callback"}var jqxhr=$.ajax(params).done(function(msg,xhr){if(params.dataType=="jsonp"){msg=msg[0]}if(params.dataType=="json"||params.dataType=="jsonp"){if(msg.hasOwnProperty("result")){if(msg.result=="success"){if(msg.hasOwnProperty("data")){if(msg.data.hasOwnProperty("html")){o.html(msg.data.html)}else{if(msg.data.hasOwnProperty("res")){o.html(msg.data.res)}else{o.html(msg.data)}}}else{o.html(msg.res)}}else{if(msg.code==-1){var loc=encodeURIComponent(window.location.pathname+window.location.search+window.location.hash);document.location="/home/login_form.php?referer="+loc}else{o.html("");bru.ui.writeAlert({alertType:"error",title:"Error",message:"Sorry, this didn't work. Please try again. [2]",el:c})}}}else{o.html("");bru.ui.writeAlert({alertType:"error",title:"Error",message:"Sorry, this didn't work. Please try again. [3]",el:c})}}else if(p.dataType=="html"){o.html(msg)}}).fail(function(data,stat,xhr){console.log(data);console.log(xhr);$.ajax({type:"POST",url:"/player/ajax/record_error.php",timeout:3e4,cache:false,dataType:"json",data:{info:JSON.stringify(params)}}).done(function(msg,req,xhr){}).fail(function(msg,xhr){}).always(function(msg,xhr){});o.html("");bru.ui.writeAlert({alertType:"error",title:"Error",message:"Sorry, this didn't work. Please try again. Status "+data.status,el:c})}).always(function(){})},closeActionSheet:function(){$(".body-action-sheet").remove();$(".action-sheet-mask").remove()},openSachinExplanation:function(tid,gid){bru.ui.overlay.open({title:"ajax",content:{url:"ajax/sachin_explanation.php",method:"GET",data:{tournament_id:tid,game_id:gid}},footer:"ok"})},openPoolChooser:function(rid,data,linkType,linkParam,linkPrefix,linkHref){var s='<div class="list-block"><ul>';var css="";for(var key in data){if(data.hasOwnProperty(key)){css="";if(key==rid){css="active"}var action="";if(linkType=="hash"){loc="#"+linkParam+"="+linkPrefix+key;action="document.location='"+loc+"'"}else if(linkType=="href"){if(linkHref.indexOf("?")==-1){loc=linkHref+"?"}else{loc=linkHref+"&"}loc+=linkParam+"="+linkPrefix+key;action="document.location='"+loc+"'"}else if(linkType=="js"){action=linkPrefix.replace("**val**",key)}var obj=data[key];if(linkType=="js"){s+='<li id="rc'+key+'" class="item-content '+css+' chooseable" onclick="'+action+'"><div class="item-inner"><div class="item-title">'+obj.name+"</div></div></li>"}else{s+='<li class="item-content '+css+' chooseable" onclick="bru.ui.overlay.close();'+action+'"><div class="item-inner"><div class="item-title">'+obj.name+"</div></div></li>"}}}s+="</div>";
1bru.ui.overlay.open({title:"Choose Pool",content:s,scroll:true,pad:false,overlay_toolbar:true})},openRoundChooser:function(rid,data,linkType,linkParam,linkPrefix,linkHref){var s='<div class="list-block"><ul>';var css="";for(var key in data){if(data.hasOwnProperty(key)){css="";if(key==rid){css="active"}var action="";if(linkType=="hash"){loc="#"+linkParam+"="+linkPrefix+key;action="document.location='"+loc+"'"}else if(linkType=="href"){if(linkHref.indexOf("?")==-1){loc=linkHref+"?"}else{loc=linkHref+"&"}loc+=linkParam+"="+linkPrefix+key;action="document.location='"+loc+"'"}else if(linkType=="js"){action=linkPrefix.replace("**val**",key)}var obj=data[key];if(linkType=="js"){s+='<li id="rc'+key+'" class="item-content '+css+' chooseable" onclick="bru.ui.closeRoundChooserAndUpdate('+key+");"+action+'"><div class="item-inner"><div class="item-title">'+obj.name+'</div><div class="item-after">'+obj.date+"</div></div></li>"}else{s+='<li class="item-content '+css+' chooseable" onclick="bru.ui.overlay.close();'+action+'"><div class="item-inner"><div class="item-title">'+obj.name+'</div><div class="item-after">'+obj.date+"</div></div></li>"}}}s+="</div>";bru.ui.overlay.open({title:"Choose Round",content:s,scroll:true,pad:false,overlay_toolbar:true})},closeRoundChooserAndUpdate:function(key){$("#roundChooser").html('<span class="inner"><span>'+$("#rc"+key+" .item-title").html()+"</span><label>"+$("#rc"+key+" .item-after").html()+'</label><i class="fa fa-chevron-down" aria-hidden="true"></i></span>');$(".item-content.choosable").removeClass("active");$("#rc"+key).addClass("active");bru.ui.overlay.close()},openGenericJsChooser:function(id,selId,data,title,fnc){var s='<div class="list-block"><ul>';var css="";for(var key in data){if(data.hasOwnProperty(key)){css="";if(key==selId){css="active"}var action="";action=fnc.replace("**val**",key);var obj=data[key];s+='<li id="'+id+key+'" class="item-content '+css+' chooseable" onclick="bru.ui.closeGenericJsChooserAndUpdate(\''+id+"',"+key+");"+action+'"><div class="item-inner"><div class="item-title">'+obj.name+"</div></div></li>"}}s+="</div>";bru.ui.overlay.open({title:title,content:s,scroll:true,pad:false,overlay_toolbar:true})},closeGenericJsChooserAndUpdate:function(id,key){$("#"+id).html('<span class="inner"><span>'+$("#"+id+key+" .item-title").html()+'</span><i class="fa fa-chevron-down" aria-hidden="true"></i></span>');$(".item-content.choosable").removeClass("active");$("#"+id+key).addClass("active");bru.ui.overlay.close()},openRoundChooserForTabPage:function(rid,data,tab){var s='<div class="list-block"><ul>';var css="";for(var key in data){if(data.hasOwnProperty(key)){css="";var obj=data[key];if(obj.round_id==rid){css="active"}s+='<li class="item-content '+css+' chooseable" onclick="bru.ui.overlay.close();bru.page.loadTab(\''+tab+"', { round_id: "+obj.round_id+' })"><div class="item-inner"><div class="item-title">'+obj.name+'</div><div class="item-after">'+obj.date+"</div></div></li>"}}s+="</div>";bru.ui.overlay.open({title:"Choose Round",content:s,scroll:true,pad:false,overlay_toolbar:true})},openLeaderboardGroupChooserForTabPage:function(pid,rid,gid,data,tab){var s='<div class="list-block"><ul>';var css="";console.log(data);for(var key in data){if(data.hasOwnProperty(key)){css="";if(key==rid){css="active"}var obj=data[key];s+='<li class="item-content '+css+' chooseable" onclick="bru.ui.overlay.close();bru.page.loadTab(\''+tab+"', { round_id: "+rid+", group_id: "+obj.id+'})"><div class="item-inner"><div class="item-title">'+obj.name+'</div><div class="item-after">'+obj.date+"</div></div></li>"}}s+="</div>";bru.ui.overlay.open({title:"Choose Group",content:s,scroll:true,pad:false,overlay_toolbar:true})},openRaceChooserForTabPage:function(rid,data,tab){var s='<div class="list-block"><ul>';var css="";for(var key in data){if(data.hasOwnProperty(key)){css="";if(key==rid){css="active"}var obj=data[key];s+='<li class="item-content '+css+' chooseable" onclick="bru.ui.overlay.close();bru.page.loadTab(\''+tab+"', { round_id: "+key+" }, 'race"+key+'\')"><div class="item-inner"><div class="item-title">'+obj.name+'</div><div class="item-after">'+obj.date+"</div></div></li>"}}s+="</div>";
1bru.ui.overlay.open({title:"Choose Race",content:s,scroll:true,pad:false,overlay_toolbar:true})},openGameChooserForTabPage:function(gid,data,tab,subtab){var s='<div class="list-block"><ul>';var css="";for(var key in data){if(data.hasOwnProperty(key)){css="";if(key==gid){css="active"}var gotab=subtab;if(subtab=="game"){gotab="game"+key}if(key==0){gotab="allmatches"}var obj=data[key];s+='<li class="item-content '+css+' chooseable" onclick="bru.ui.overlay.close();bru.page.loadTab(\''+tab+"', { game_id: "+key+"}, '"+gotab+"');$('#game-chooser .game-title').html('"+obj.short_name+'\')"><div class="item-inner"><div class="item-title">'+obj.name+'</div><div class="item-after">'+obj.date+"</div></div></li>"}}s+="</div>";bru.ui.overlay.open({title:"Choose Match",content:s,scroll:true,pad:false,overlay_toolbar:true})},openGameChooserForMatchPage:function(rid,data,tab,subtab){var s='<div class="list-block"><ul>';var css="";for(var key in data){if(data.hasOwnProperty(key)){css="";if(key==rid){css="active"}var gotab=subtab;if(subtab=="game"){gotab="game"+key}if(key==0){gotab="allmatches"}var obj=data[key];s+='<li class="item-content '+css+' chooseable" onclick="bru.ui.overlay.close();document.location=\'match.php?g='+key+'\'"><div class="item-inner"><div class="item-title">'+obj.name+'</div><div class="item-after">'+obj.date+"</div></div></li>"}}s+="</div>";bru.ui.overlay.open({title:"Choose Match",content:s,scroll:true,pad:false,overlay_toolbar:true})},textCounter:function(o,m){if(o.val().length>m){o.val(o.val().substring(0,m))}else{var v=m-parseInt(o.val().length,10);o.parent().find(".textarea-counter").html(v+" characters left")}},chooser:{showMenu:function(li){li.parent().find("li").removeClass("hidden");li.addClass("hidden")},hideMenu:function(li){li.parents("ul").find("li").addClass("hidden");li.parents("ul").find("li.menu").removeClass("hidden")}},horizScroller:{clickScroller:function(par,selectedItem,i){var hs=$("."+par);var activeItem=$("."+par+" ul li.active");var activeIndex=hs.find("li").index(activeItem);var selectedIndex=hs.find("li").index(selectedItem);var scrollTox=0;var maxw=$("."+par).width();if(selectedIndex==activeIndex){scrollTox-=selectedItem.position().left-activeItem.position().left}else{if(selectedItem.position().left+$("."+par+" ul").position().left>.75*maxw){scrollTox=-1*selectedItem.width()}else if(selectedItem.position().left+$("."+par+" ul").position().left<.25*maxw){scrollTox=selectedItem.width()}}var cl=$("."+par+" ul").position().left;cl+=scrollTox;cl=Math.round(cl);var firstLi=hs.find("li:first-child").position().left;if(cl>0){cl=0}$("."+par+" ul").css("left",cl+"px");activeItem.removeClass("active");selectedItem.addClass("active")},arrowLeft:function(par){var hs=$("."+par);var fc=hs.find("li:first-child");var pl=fc.css("padding-left").replace("px","");var pr=fc.css("padding-right").replace("px","");var fw=parseInt(fc.width(),10)+parseInt(pl,10)+parseInt(pr,10);var cl=$("."+par+" ul").css("left");cl=parseInt(cl.replace("px",""),10);cl=cl+fw;if(cl>0){cl=0}$("."+par+" ul").css("left",cl+"px")},arrowRight:function(par){var hs=$("."+par);var fc=hs.find("li:first-child");var pl=fc.css("padding-left").replace("px","");var pr=fc.css("padding-right").replace("px","");var fw=parseInt(fc.width(),10)+parseInt(pl,10)+parseInt(pr,10);var cl=$("."+par+" ul").css("left");cl=parseInt(cl.replace("px",""),10);cl=cl-fw;if(cl>0){cl=0}var ll=Math.round(hs.find("li:last-child").position().left+hs.find("li:last-child").width()+20);if(Math.abs(cl)+$("."+par+" .scroller").width()>ll){cl=-1*($("."+par+" ul").width()-$("."+par+" .scroller").width())}$("."+par+" ul").css("left",cl+"px")}},openStreak:function(tournamentId,teamId){bru.ui.overlay.open({title:"ajax",content:{url:"ajax/write_streak.php",method:"POST",data:{tournament_id:tournamentId,team_id:teamId}},scroll:true,overlay_toolbar:true,footer:"close"})},openActionSheet:function(obj){var a=obj.find(".action-sheet");$(".action-sheet-mask").remove();$("body").append("<div class='action-sheet-mask'></div>");$(".action-sheet-mask").on("click",function(e){bru.ui.closeActionSheet()});var cs="";if(a.hasClass("slim")){cs="slim"}$(".body-action-sheet").remove();$("body").append("<div class='action-sheet body-action-sheet "+cs+"'>"+a.html()+"</div>");$(".body-action-sheet").addClass("active");$(".body-action-sheet ul").append("<li class='cancel'><a href='javascript:void(0)' onclick='bru.ui.closeActionSheet()'>Cancel</a></li>")},switchCricketMargin:function(poolId,gameId,sort){bru.page.loadTab("matches",{cricket:sort},"game"+gameId)},hidePinGuide:function(){$(".pin-guide").remove();var jqxhr=$.ajax({dataType:"json",method:"POST",url:"/player/ajax/update_player_preference.php",data:{c:1,p:4},cache:false,timeout:3e4}).done(function(msg,xhr){})},slide:function(o){var a="add";if(o.hasClass("slide")){a="remove"}$(".list-block.slider li.sliding .over").removeClass("slide");if(a=="add"){o.addClass("slide");o.parent().parent().parent().parent().addClass("active")}else{o.parent().parent().parent().parent().removeClass("active")}},sideTab:{chooseTab:function(o){o.parent().find(".icon-tab").removeClass("active");o.addClass("active");o.parent().parent().find(".details .sub-tab").removeClass("active");o.parent().parent().find(".details .sub-tab[data-tab-id="+o.data("tab")+"]").addClass("active")}},loadAjaxPanel:function(selector){var o=$(selector);if(o.data("bru-href")!=""){bru.ui.load(selector,o.data("bru-href"))}}},page:{loadTabWithChangedData:function(tab,qs){$(".tab-page .tab[data-bru-tab='"+tab+"']").data("bru-data",qs);$(".tab-page .tab[data-bru-tab='"+tab+"']").data("bru-last-update",0);bru.page.loadTab(tab)},loadTab:function(tab,form,subtab,setHash){if(typeof subtab=="undefined"){$(".tab-control[data-bru-tab='"+tab+"']").parent().find(".tab-control").removeClass("active");$(".tab-control[data-bru-tab='"+tab+"']").addClass("active");var tp=".tab-page .tab[data-bru-tab='"+tab+"']";$(".tab-page .tab").removeClass("active");bru.url.setLocationHashVal("tab",tab)}else{$(".subtab-control[data-bru-tab='"+subtab+"']").parent().find(".subtab-control").removeClass("active");$(".subtab-control[data-bru-tab='"+subtab+"']").addClass("active");var tp=".tab-page .subtab[data-bru-tab='"+subtab+"']";$(".tab-page .subtab").removeClass("active");if(typeof setHash!="undefined"){if(setHash){bru.url.setLocationHashVal("tab",tab);bru.url.setLocationHashVal("subtab",subtab)}}}$(tp).addClass("active");var forceLoad=false;if(typeof form!=="undefined"){forceLoad=true}if($(tp).length>0){var t=$(tp);if(t){var load=false;if(t.data("bru-href")!=null){load=true}if(!forceLoad&&t.data("bru-last-update")!=null&&t.data("bru-cache-secs")!=null&&!isNaN(t.data("bru-cache-secs"))&&!isNaN(t.data("bru-last-update"))){if(Date.now()-1e3*parseInt(t.data("bru-cache-secs"),10)<parseInt(t.data("bru-last-update"),10)){load=false}}if(load){var addToken=false;var url="";var data={};if(t.data("bru-href")!=""){url=t.data("bru-href")}if(t.data("bru-directory")){url="/"+t.data("bru-directory")+"/"+url;if(url.indexOf("pool_leaderboard")!=-1){}}if(t.data("bru-data")!=null&&t.data("bru-data")!=""){data=bru.url.getObjectFromQuerystring(t.data("bru-data"))}if(addToken){url=url+"&token="+bru.data.token}if(url!=""){var params={};params.data=data;t.data("bru-last-update",Date.now());t.attr("data-bru-last-update",Date.now());if(typeof form!="undefined"){params.data.form=form;params.method="POST"}bru.ui.load(tp,url,params);if(t.data("bru-question")!=null){if(t.data("bru-question")=="results"){bru.questions.check(5,t.data("bru-tournament-id"),data["pool_id"],0)}else if(t.data("bru-question")=="game"){bru.questions.check(4,t.data("bru-tournament-id"),data["pool_id"],0)}else if(t.data("bru-question")=="leaderboard"){bru.questions.check(6,t.data("bru-tournament-id"),data["pool_id"],0)}else if(t.data("bru-question")=="makePicks"){bru.questions.check(2,t.data("bru-tournament-id"),"",0)}}}}else{}}}else{console.log("no tab")}},initTabs:function(){if(bru.url.getLocationHashVal("tab")!=""){if(bru.url.getLocationHashVal("subtab")!=""){bru.page.loadTab(bru.url.getLocationHashVal("subtab"))}else{bru.page.loadTab(bru.url.getLocationHashVal("tab"))}}},lazyLoadImages:function(){$("img.lazy").each(function(){if($(this).data("src")!=null){$(this).attr("src",$(this).data("src"))}})}},url:{getObjectFromQuerystring:function(qs){var vars={},hash;if(qs.substr(0,1)!="?"){qs="?"+qs}var hashes=qs.slice(qs.indexOf("?")+1).split("&");for(var i=0;i<hashes.length;i++){hash=hashes[i].split("=");vars[hash[0]]=hash[1]}return vars},getQuerystring:function(){var vars=[],hash;var hashes=window.location.href.slice(window.location.href.indexOf("?")+1).split("&");for(var i=0;i<hashes.length;i++){hash=hashes[i].split("=");vars.push(hash[0]);vars[hash[0]]=hash[1]}return vars},getQuerystringVal:function(name){return bru.url.getQuerystring()[name]},getLocationHashVal:function(name){var o="";if(window.location.hash.length>0){var hashes=window.location.hash.slice(1).split("&");for(var i=0;i<hashes.length;i++){hash=hashes[i].split("=");if(hash[0]==name){o=hash[1]}}}return o},setLocationHashVal:function(name,val){var found=false;var i=0;var o="";if(window.location.hash.length>0){var hashes=window.location.hash.slice(1).split("&");for(i=0;i<hashes.length;i++){hash=hashes[i].split("=");if(hash[0]==name){o+=name+"="+val;found=true}else{o+=hash[0]+"="+hash[1]}
1if(i<hashes.length-1){o+="&"}}}if(!found){if(i>0){o+="&"}o+=name+"="+val}window.location.hash=o}},pool:{desktopNavDrop:function(o){o.css("border","5px solid red")},triggerOptIn:function(pool_id){var loadPop=false;var title="";var img="";var c="";if(pool_id==11836108){c="World Cup sponsor Coca-Cola is offering prizes for South African users in this tournament.<br><br>Can Superbru share your email with Coca-Cola so you can receive special offers and marketing?<div class='button-group'><a href='javascript:void(0)' class='button' data-pool-id='11836108' data-action='submit-email'>Yes please!</a></div><a href='javascript:void(0)' class='' data-pool-id='11836108' data-action='no-email'>No thanks</a>";title="Coca-Cola";img="https://superbru-cdn.superbru.com/worldcup_predictor/images/coke_optin_header.jpg"}else if(pool_id==11836109){c="Leading insurance broker JW Seagon is sponsoring prizes for Kenyan users in this tournament.<br><br>Can Superbru share your email with JW Seagon so you can receive receive a quarterly email newsletter from them?<div class='button-group'><a href='javascript:void(0)' class='button' data-pool-id='11836109' data-action='submit-email'>Yes please!</a></div><a href='javascript:void(0)' class='' data-pool-id='11836109' data-action='no-email'>No thanks</a>";title="JW Seagon";img="https://superbru-cdn.superbru.com/worldcup_predictor/images/jws_optin_header.jpg"}else if(pool_id==11841567){c="Roman's Pizza would like to send special offers and targeted advertising to you. Can Superbru share your email address with Roman's Pizza for this?<div class='button-group'><a href='javascript:void(0)' class='button' data-pool-id='11841567' data-action='submit-email'>Yes please!</a></div><a href='javascript:void(0)' class='' data-pool-id='11841567' data-action='no-email'>No thanks</a>";title="Roman's Pizza";img="https://superbru-cdn.superbru.com/worldcup_fantasy/images/romans_optin_header.jpg"}if(c!=""){bru.ui.overlay.open({title:title,content:"<img src='"+img+"' width='100%' /><div class='pool-opt-in-popup'>"+c+"</div>",header:false,autofit:false,pad:false,width:"400px"});$("body").on("click",".pool-opt-in-popup a",function(){var optIn=0;var poolId=$(this).data("pool-id");if($(this).data("action")=="submit-email"){optIn=1}$.ajax({type:"POST",url:"ajax/pool_opt_in.php",timeout:3e4,cache:false,dataType:"json",data:{pool_id:poolId,opt_in:optIn}}).done(function(msg,req,xhr){if(msg.result=="success"){bru.ui.overlay.close()}else{bru.ui.alert("Sorry, this task failed. Please try again.","Error")}}).fail(function(msg,xhr){bru.ui.alert("Sorry, this task failed. Please try again.","Error")}).always(function(msg,xhr){})})}},setCover:function(tab,p,path,img){$(".cover-chooser .item").removeClass("active");tab.addClass("active");$(".pool-header[data-bru-pool-id="+p+"]").css("background-image","url("+path+img+")");$.ajax({method:"POST",dataType:"json",url:"ajax/update_pool_cover_image.php",cache:false,timeout:2e4,data:{p:p,i:img}}).done(function(msg,stat,xhr){}).fail(function(msg,stat,xhr){})},test:function(){alert("x")},poolHorizScroller:{clickScroller:function(par,selectedItem,i){var hs=$("."+par);var activeItem=$("."+par+" ul li.active");var activeIndex=hs.find("li").index(activeItem);var selectedIndex=hs.find("li").index(selectedItem);var scrollTox=0;var maxw=$("."+par).width();if(selectedIndex==activeIndex){scrollTox-=selectedItem.position().left-activeItem.position().left}else{if(selectedItem.position().left+$("."+par+" ul").position().left>.75*maxw){scrollTox=-1*selectedItem.width()}else if(selectedItem.position().left+$("."+par+" ul").position().left<.25*maxw){scrollTox=selectedItem.width()}}var cl=$("."+par+" ul").position().left;cl+=scrollTox;cl=Math.round(cl);var firstLi=hs.find("li:first-child").position().left;if(cl>0){cl=0}$("."+par+" ul").css("left",cl+"px");activeItem.removeClass("active");selectedItem.addClass("active")},arrowLeft:function(par){var hs=$("."+par);var fc=hs.find("li:first-child");var pl=fc.css("padding-left").replace("px","");var pr=fc.css("padding-right").replace("px","");var fw=parseInt(fc.width(),10)+parseInt(pl,10)+parseInt(pr,10);var cl=$("."+par+" ul").css("left");cl=parseInt(cl.replace("px",""),10);cl=cl+fw;if(cl>0){cl=0}$("."+par+" ul").css("left",cl+"px")},arrowRight:function(par){var hs=$("."+par);var fc=hs.find("li:first-child");var pl=fc.css("padding-left").replace("px","");var pr=fc.css("padding-right").replace("px","");
1var fw=parseInt(fc.width(),10)+parseInt(pl,10)+parseInt(pr,10);var cl=$("."+par+" ul").css("left");cl=parseInt(cl.replace("px",""),10);cl=cl-fw;if(cl>0){cl=0}var ll=Math.round(hs.find("li:last-child").position().left+hs.find("li:last-child").width()+20);if(Math.abs(cl)+$("."+par+" .scroller").width()>ll){cl=-1*($("."+par+" ul").width()-$("."+par+" .scroller").width())}$("."+par+" ul").css("left",cl+"px")}}},player:{showMainProfile:function(pid){bru.ui.overlay.open({title:"ajax",content:{url:"/player/ajax/player_profile_popup.php",method:"POST",data:{player_id:pid}},scroll:true,autofit:false,footer:"close"})},sendEmailValidation:function(encryptedPid,reason){$(".email-validation .step1 button").hide();$(".email-validation .step2 button").hide();$(".email-validation .step-error").addClass("hidden");$(".email-validation .step1 .spinner").removeClass("hidden");$.ajax({type:"POST",url:"/player/ajax/send_validation_email.php",timeout:3e4,cache:false,dataType:"json",data:{p:encryptedPid,r:reason}}).done(function(msg,req,xhr){$(".email-validation .step1").addClass("hidden");$(".email-validation .step2").removeClass("hidden");$(".email-validation .step2 button").show()}).fail(function(msg,xhr){$(".email-validation .step-error").removeClass("hidden");$(".email-validation .step1").addClass("hidden")}).always(function(msg,xhr){})},showProfile:function(tid,pid,pool_id,round_id){if(typeof pool_id=="undefined"){var pool_id=""}if(typeof round_id=="undefined"){var round_id=""}bru.ui.overlay.open({title:"ajax",content:{url:"ajax/player_profile_popup.php",method:"POST",data:{tournament_id:tid,player_id:pid,round_id:round_id,pool_id:pool_id}},scroll:true,autofit:true,footer:"close"})},comparePicks:function(player1,player2,pool_id,round_id){bru.ui.overlay.open({title:"ajax",content:{url:"ajax/compare_picks.php",method:"POST",data:{pool_id:pool_id,player1:player1,player2:player2,round_id:round_id}},scroll:true,autofit:true,footer:"close"})},comparePicksMotorsport:function(player1,player2,pool_id,round_id){bru.ui.overlay.open({title:"ajax",content:{url:"ajax/compare_picks_motorsport.php",method:"POST",data:{pool_id:pool_id,player1:player1,player2:player2,round_id:round_id}},scroll:true,autofit:true,footer:"close"})},openYellowCapPopup:function(player_id,pool_id,round_id){bru.ui.overlay.open({title:"ajax",content:{url:"ajax/yellow_cap_popup.php",method:"POST",data:{pool_id:pool_id,player_id:player_id,round_id:round_id}},scroll:true,autofit:false,footer:"close"})},openDateOfBirthPopup:function(){var days="";var months="";var years="";for(i=1;i<=31;i++){days+="<option value='"+i+"'>"+i+"</option>"}for(i=1;i<=12;i++){switch(i){case 1:mn="January";break;case 2:mn="February";break;case 3:mn="March";break;case 4:mn="April";break;case 5:mn="May";break;case 6:mn="June";break;case 7:mn="July";break;case 8:mn="August";break;case 9:mn="September";break;case 10:mn="October";break;case 11:mn="November";break;case 12:mn="December";break}months+="<option value='"+i+"'>"+mn+"</option>"}for(i=2019;i>1920;i--){years+="<option value='"+i+"'>"+i+"</option>"}bru.ui.overlay.open({title:"Date of birth",content:"<div class='text-center'><p>Please enter your <b>date of birth</b>. Superbru will use this to confirm your eligibility for prizes and to try to ensure you are not shown age-inappropriate content (such as advertisements for alcohol brands).</p><div id='dob-error' style='color:#c0392b;padding:5px;text-align:center;display:none'></div><form class='basic' style='margin: 0 auto;display:inline-block'><table cellspacing='5'><tr><td style='padding:5px 5px 5px 0'><select id='dob-day' style='width:80px'><option value=''>Day</option>"+days+"</select></td><td style='padding:5px'><select id='dob-month' style='width:120px'><option value=''>Month</option>"+months+"</select></td><td style='padding:5px'><select id='dob-year' style='width:80px'><option value=''>Year</option>"+years+"</select></td></tr></table><br><div class='button-group'><a href='javascript:void(0)' class='button' onclick='bru.player.submitDateOfBirth()'>Submit</a></div></form></div>"})},triggerSponsorOptinEPCR:function(){var c="<div class='content pad text-center epc-popup'><p>Would you like to receive communications from <b>European Professional Club Rugby</b>?</p><p>Benefits include: first-hand and up-to-date information on scheduling, ticketing, news, special offers and competitions.
1</p><p>If you opt in, Superbru will share your email address with European Professional Cup Rugby.</p><div class='button-group' style=''><a href='javascript:void(0)' class='button' data-action='opt-in'>Yes please!</a><a href='javascript:void(0)' class='button' data-action='no-thanks'>No thanks</a></div></div>";bru.ui.overlay.open({title:"European Professional Club Rugby",content:c,header:true,autofit:false});$("body").on("click",".epc-popup a.button",function(){if($(this).data("action")=="close"){bru.ui.overlay.close()}else{var opt=0;if($(this).data("action")=="opt-in"){opt=1}$.ajax({type:"POST",url:"/player/ajax/save_sponsor_optin.php",timeout:3e4,cache:false,dataType:"json",data:{t:725,o:opt,s:"EPC Rugby"}}).done(function(msg,req,xhr){}).fail(function(msg,xhr){}).always(function(msg,xhr){bru.ui.overlay.close()})}})},triggerSponsorOptinCastle:function(){var c="<div class='content pad text-center castle-popup'><img src='https://superbru-cdn.superbru.com/lions_tour_predictor/images/castle_logo.svg' /><p>Would you like the chance to win a <b>signed team jersey</b>, and receive promotional emails from <b>Castle Lager</b>?</p><p>If you opt in by clicking 'Yes please!' below, Superbru will share your first name, last name, date of birth and email address with Castle Lager.</p><p>Over-18s only.</p><div class='button-group margin-top-bottom' style=''><a href='javascript:void(0)' class='button' data-action='opt-in'>Yes please!</a><a href='javascript:void(0)' class='button flat' data-action='no-thanks'>No thanks</a></div></div>";bru.ui.overlay.open({title:"Castle Lager",content:c,header:true,pad:false,autofit:false});$("body").on("click",".castle-popup a.button",function(){if($(this).data("action")=="close"){bru.ui.overlay.close()}else{var opt=0;if($(this).data("action")=="opt-in"){opt=1}$.ajax({type:"POST",url:"/player/ajax/save_sponsor_optin.php",timeout:3e4,cache:false,dataType:"json",data:{t:839,o:opt,s:"Castle Lager"}}).done(function(msg,req,xhr){}).fail(function(msg,xhr){}).always(function(msg,xhr){bru.ui.overlay.close()})}})},triggerPoolOptinPR:function(){var c="<div class='content text-center pr-popup'><div style='background:#2f2a61;padding:20px;margin:0 0 10px 0;text-align:center'><img src='https://superbru-cdn.superbru.com/core/images/partners/premiership_rugby/premiership_rugby_logo_white.svg' height='60' /></div><div style='padding:15px;'><p>Thanks for taking part in the Premiership Rugby Pool! We're looking forward to sending our World Cup champion and three friends to the Gallagher Premiership Rugby Final 2024.</p><p><b>Would you like to receive emails from Premiership Rugby containing exclusive offers, news and information?</b></p><div class='button-group margin-top-bottom' style=''><a href='javascript:void(0)' class='button filled' data-action='opt-in'>Yes please!</a><a href='javascript:void(0)' class='button flat' data-action='no-thanks'>No thanks</a></div></div></div>";bru.ui.overlay.open({title:"Premiership Rugby",content:c,header:true,pad:false,autofit:false});$("body").on("click",".pr-popup a.button",function(){if($(this).data("action")=="close"){bru.ui.overlay.close()}else{var opt=0;if($(this).data("action")=="opt-in"){opt=1}$.ajax({type:"POST",url:"/player/ajax/save_pool_optin.php",timeout:3e4,cache:false,dataType:"json",data:{t:1109,p:12628863,o:opt,s:"Premiership Rugby"}}).done(function(msg,req,xhr){}).fail(function(msg,xhr){}).always(function(msg,xhr){bru.ui.overlay.close()})}})},triggerSponsorOptinURC:function(){var c="<div class='content pad text-center castle-popup'><div style='padding:20px 0 0 0'><img src='https://superbru-cdn.superbru.com/core/images/partners/urc/urc_logo_turquoise_deep_slate.png' width='250' /></div><p style='padding:30px 0 20px 0'><b>YES! Opt me in to receiving the best of URC including alerts, news, offers and discounts. You can opt out at any time by unsubscribing.</b></p><p style='font-size:0.8em'>If you opt in by clicking 'Yes please!' below, Superbru will share your name and email address with the operators of URC. You can withdraw this consent at any time by unsubscribing via the URC website. <a href='https://www.unitedrugby.com/privacy-policy' target='_blank'>URC Privacy Policy</a></p><div class='button-group margin-top-bottom' style=''><a href='javascript:void(0)' class='button' data-action='opt-in'>Yes please!</a><a href='javascript:void(0)' class='button flat' data-action='no-thanks'>No thanks</a></div></div>";bru.ui.overlay.open({title:"URC",content:c,header:true,pad:false,autofit:false});$("body").on("click",".castle-popup a.button",function(){if($(this).data("action")=="close"){bru.ui.overlay.close()}else{var opt=0;
1if($(this).data("action")=="opt-in"){opt=1}$.ajax({type:"POST",url:"/player/ajax/save_sponsor_optin.php",timeout:3e4,cache:false,dataType:"json",data:{t:850,o:opt,s:"URC"}}).done(function(msg,req,xhr){}).fail(function(msg,xhr){}).always(function(msg,xhr){bru.ui.overlay.close()})}})},triggerSponsorOptinURC2023:function(){var c="<div class='content text-center castle-popup'><div style='padding:15px 0 0 0'><img src='https://content-cdn.superbru.com/urc_ps5.png' width='400' /></div><div id='urc-confirmation' style='padding:20px 0 20px 0;display:none'><b>Thank you!</b><p>You have been entered into the competition. Good luck!</p><a href='javascript:void(0)' class='button' data-action='close' style='background:#f04e5d;'>Close</a></div><div style='padding: 0 15px 0 15px' id='urc-competition-body'><p style='padding:20px 0 5px 0;font-weight:bold'>A PS5 is up for grabs courtesy of the United Rugby Championship!</p><div style='display:flex;align-items: start; margin: 10px'><input type='checkbox' id='urc_competition' name='urc_competition' /><label for='urc_competition' style='cursor: pointer;text-align:left; display:block; line-height: 16px; padding: 0 0 0 10px;font-size:0.9em'>Enter the competition to win a Sony PlayStation 5 courtesy of the United Rugby Championship. I accept the competition's Terms and Conditions. </label></div><div style='display:flex;align-items: start; margin: 10px'><input type='checkbox' id='urc_optin' name='urc_optin' /><label for='urc_optin' style='text-align:left; display:block; line-height: 16px; padding: 0 0 0 10px;font-size:0.9em;cursor: pointer;'>Allow United Rugby Championship to send me exclusives, offers, competitions, discounts and things to make my rugby life better.</label></div><p style='font-size: 0.75em'>Competition closes October 28th. <a href='https://r1.marketing-pages.com/p/5GVN-E0L/ps5-giveaway-superbru-terms-conditions' target='_blank'>Terms and Conditions apply</a>. Your data will be governed by the <a href='https://www.unitedrugby.com/privacy-policy' target='_blank'>URC Privacy Policy</a>. If you opt into communications you may unsubscribe at any time via the URC website.</p><div class='button-group margin-top-bottom' style=''><a href='javascript:void(0)' class='button' data-action='opt-in' style='background:#f04e5d;'>Enter Competition</a><a href='javascript:void(0)' class='button flat' data-action='no-thanks'>No thanks</a></div></div></div>";bru.ui.overlay.open({title:"Win a Playstation 5 from URC",content:c,header:true,pad:false,autofit:false});$("body").on("click",".castle-popup a.button",function(){if($(this).data("action")=="close"){bru.ui.overlay.close()}else{var opt=0;if($("#urc_optin").is(":checked")){opt=1}if(!$("#urc_competition").is(":checked")&&$(this).data("action")!="no-thanks"){alert("Please tick the box to enter the competition and accept the Terms and Conditions.");return}$.ajax({type:"POST",url:"/player/ajax/save_urc_competition_entry.php",timeout:3e4,cache:false,dataType:"json",data:{t:850,o:opt,s:"URC",e:$("#urc_competition").is(":checked")?1:0}}).done(function(msg,req,xhr){if($(this).data("action")!="no-thanks"){bru.ui.overlay.close()}else{$("#urc-competition-body").hide();$("#urc-confirmation").show()}}).fail(function(msg,xhr){alert("Sorry, an error occurred while entering the competition.")}).always(function(msg,xhr){})}})},triggerSponsorOptinERC:function(){var c="<div class='content pad text-center castle-popup'><div style='padding:20px 0 0 0'><img src='https://superbru-cdn.superbru.com/core/images/partners/erc/EPC
1R_Logo_Acronym_Gold-1.png' width='100' /></div><p style='padding:30px 0 20px 0'><b>Would you like receive news, information and offers from European Professional Club Rugby?</b></p><p style='font-size:0.8em'>If you opt in by clicking 'Yes please!' below, Superbru will share your name and email address with European Professional Club Rugby. You can withdraw this consent at any time through EPCR. <a href='https://www.epcrugby.com/legal/' target='_blank'>EPCR Privacy Policy</a></p><div class='button-group margin-top-bottom' style=''><a href='javascript:void(0)' class='button' data-action='opt-in'>Yes please!</a><a href='javascript:void(0)' class='button flat' data-action='no-thanks'>No thanks</a></div></div>";bru.ui.overlay.open({title:"URC",content:c,header:true,pad:false,autofit:false});$("body").on("click",".castle-popup a.button",function(){if($(this).data("action")=="close"){bru.ui.overlay.close()}else{var opt=0;if($(this).data("action")=="opt-in"){opt=1}$.ajax({type:"POST",url:"/player/ajax/save_sponsor_optin.php",timeout:3e4,cache:false,dataType:"json",data:{t:887,o:opt,s:"ERC2021"}}).done(function(msg,req,xhr){}).fail(function(msg,xhr){}).always(function(msg,xhr){bru.ui.overlay.close()})}})},submitDateOfBirth:function(){var d=$("#dob-day").val();var m=$("#dob-month").val();var y=$("#dob-year").val();if(d==""||m==""||y==""){$("#dob-error").html("Please enter your full date of birth.").show();return}var leap=y%100===0?y%400===0:y%4===0;var dateError=false;if(m==2&&leap&&d>29){dateError=true}if(m==2&&!leap&&d>28){dateError=true}if(d>30&&(m==4||m==6||m==9||m==9||m==11)){dateError=true}if(dateError){$("#dob-error").html("That date isn't possible. Please check it.").show();return}$.ajax({method:"POST",dataType:"json",url:"/player/ajax/save_birth_date.php",cache:false,timeout:2e4,data:{dob:d+"/"+m+"/"+y}}).done(function(msg,stat,xhr){}).fail(function(msg,stat,xhr){}).always(function(msg,stat,xhr){bru.ui.overlay.close()})},openTournamentPreregisterPopup:function(t){var go=true;if(window.localStorage.getItem("prereg"+t+"_last_check")!=""){var d=new Date;if(parseFloat(window.localStorage.getItem("prereg"+t+"_last_check"))>d.getTime()-1e3*60*60*24*2){go=false}}if(!go){return}window.localStorage.setItem("prereg"+t+"_last_check",d.getTime());$.ajax({method:"POST",dataType:"json",url:"/player/ajax/get_tournament_promo_status.php",cache:false,timeout:2e4,data:{tournament_id:t}}).done(function(msg,stat,xhr){if(msg.data.given_answer==0){bru.ui.overlay.open({title:"ajax",content:{url:"ajax/preregister.php",method:"POST",data:{tournament_id:t}},scroll:true,autofit:true,footer:"close"})}})},saveTournamentPromotionResponse:function(t,r){bru.player.preregisterSaveFromPopup(t,r);$(".promoted-tournament[data-tournament-id="+t+"] a.promobutton").removeClass("chosen").addClass("not-chosen");$(".promoted-tournament[data-tournament-id="+t+"] a.promobutton[data-action='"+r+"']").removeClass("not-chosen").addClass("chosen")},preregisterSaveFromPopup:function(t,r){$.ajax({method:"POST",dataType:"json",url:"ajax/save_preregister_response.php",cache:false,timeout:2e4,data:{tournament_id:t,response:r}}).done(function(msg,stat,xhr){if(r=="joinlater"||r=="notinterested"){bru.ui.overlay.close()}if(r=="joinnow"){}}).fail(function(msg,stat,xhr){}).always(function(msg,stat,xhr){});if(r=="joinnow"){var h=$(".overlay .preregister-pools").html();bru.ui.overlay.close();bru.ui.overlay.open({id:"prereg-pools-overlay",title:"Pools",content:h,scroll:true,autofit:true,footer:"close"})}},preregisterSavePoolsFromPopup:function(t){var pools=[];$.each($("#prereg-pools-overlay table.check-list tr"),function(){if($(this).hasClass("chosen")){pools.push($(this).data("bru-pool-id"))}});$.ajax({method:"POST",dataType:"json",url:"ajax/save_preregister_response.php",cache:false,timeout:2e4,data:{tournament_id:t,response:"pools",pools:pools}}).done(function(msg,stat,xhr){}).fail(function(msg,stat,xhr){}).always(function(msg,stat,xhr){bru.ui.overlay.close()})},preregister:function(object,playerId,tournamentId,teamId,email){$("#prejoin_"+tournamentId+"_step1").hide();$("#prejoin_"+tournamentId+"_processing").removeClass("hidden");var jqxhr=$.ajax({dataType:"json",method:"POST",url:"/player/ajax/preregister.php",data:{t:tournamentId,p:playerId,e:email,tm:teamId},cache:false,timeout:2e4}).done(function(msg,xhr){if(msg.result=="success"){bru.ui.alert("Thanks! We'll let you know
1when the tournament goes live.","You have pre-registered","conf");object.html("You've pre-registered");$("#prejoin_"+tournamentId+"_step1").hide();$("#prejoin_"+tournamentId+"_step2").removeClass("hidden");$("#prejoin_"+tournamentId+"_processing").hide()}else{bru.ui.alert(msg.message,"Error","conf")}}).fail(function(msg,xhr){bru.ui.alert("Sorry, we could not pre-register this tournament for you right now.")}).always(function(msg,xhr){})},saveTournamentFavourite:function(t,f){if(f==0){f=1}else{f=0}var star=$(".side-tab-holder .holder .details .list .item[data-tournament-id="+t+"] i.fa-star-o");star.addClass("fa-spin");var sport=star.data("sport-id");var jqxhr=$.ajax({dataType:"json",method:"POST",url:"/player/ajax/save_tournament_favourite.php",data:{t:t,f:f},cache:false,timeout:2e4}).done(function(msg,xhr){if(msg.result=="success"){if(f==0){star.removeClass("active");$(".side-tab-holder .holder .details .sub-tab[data-tab-id=tab-0] .list .item[data-tournament-id="+t+"]").remove()}else{star.addClass("active");$(".side-tab-holder .holder .details .sub-tab[data-tab-id=tab-"+sport+"] .item[data-tournament-id="+t+"]").clone().appendTo($(".side-tab-holder .holder .details .sub-tab[data-tab-id=tab-0] .list.main-list"))}$(".side-tab-holder .holder .details .item[data-tournament-id="+t+"]").data("favourite",f)}}).fail(function(msg,xhr){bru.ui.alert("Sorry, we could not star this tournament for you right now.")}).always(function(msg,xhr){$(".side-tab-holder .holder .details .item[data-tournament-id="+t+"] i.fa-star-o").removeClass("fa-spin");$(".side-tab-holder .holder .icons .icon-tab[data-tab=tab-0] i.fa-star-o").addClass("activated");window.setTimeout(function(){$(".side-tab-holder .holder .icons .icon-tab[data-tab=tab-0] i.fa-star-o").removeClass("activated")},500);bru.destroyAllTooltips()})},updateAlertNumbers:function(){var jqxhr=$.ajax({dataType:"json",method:"POST",url:"/player/ajax/get_notification_numbers.php",data:{},cache:false,timeout:1e4}).done(function(msg,xhr){if(msg.result=="success"){$.each(msg.data,function(key,val){if($(".alert-number[data-alert-type="+key+"] .num").length!=0){if($(".alert-number[data-alert-type="+key+"] .num").html()!=val.display){if(parseInt(val.num,10)==0){$(".alert-number[data-alert-type="+key+"]").addClass("hidden")}else{$(".alert-number[data-alert-type="+key+"]").removeClass("hidden")}var css="increased";var n=$(".alert-number[data-alert-type="+key+"] .num").html();n=parseInt(n.replace("+",""),10);var vd=val.display+"";vd=parseInt(vd.replace("+",""),10);if(vd<n){css="decreased"}$(".alert-number[data-alert-type="+key+"] .num").html(val.display).addClass(css);window.setTimeout(function(){$(".alert-number[data-alert-type="+key+"] .num").html(val.display).removeClass("increased").removeClass("decreased")},1e3)}}})}else{}}).fail(function(msg,xhr){}).always(function(msg,xhr){})},settings:{savePushPreference:function(jqCheckbox,pushId,objectId,objectType,enable){jqCheckbox.parent().find("span").remove();jqCheckbox.parent().append("<span class='saving'>Saving...</span>");var jqxhr=$.ajax({dataType:"json",method:"POST",url:"/player/ajax/save_push_preference.php",data:{push_id:pushId,object_id:objectId,object_type:objectType,enable:enable},cache:false,timeout:3e4}).done(function(msg,xhr){if(msg.result=="success"){jqCheckbox.parent().append("<span class='saved'>Saved</span>")}else{jqCheckbox.parent().append("<span class='failed'>Save failed</span>")}}).fail(function(msg,xhr){console.log(msg);jqCheckbox.parent().append("<span class='failed'>Save failed</span>")}).always(function(msg,xhr){jqCheckbox.parent().find("span.saving").remove()})}}},join:{data:{join_type:null,tournament_id:null,team_id:null,team_mandatory:false,postcode_mandatory:false,pools:[],email:null,pool_opt_ins:[],pool_passwords:[],pools_with_mandatory_opt_in:[],sponsor_opt_in:null,pool_total:0,transfer_pool_id:null,primary_pool_id:0,referer:null,palacebet_username:null,dob_day:"",dob_month:"",dob_year:"",postcode:""},init:function(joinType,tournamentId,teamId,pid,teamMandatory,poolTotal,referer,poolsWithMandatoryOptIn,transferPoolId,palaceBetUsername,postcodeMandatory,postcode){bru.join.data.join_type=joinType;bru.join.data.tournament_id=tournamentId;if(typeof teamId!=="undefined"){bru.join.data.team_id=teamId}if(typeof teamMandatory!=="undefined"){bru.join.data.team_mandatory=teamMandatory}if(typeof postcodeMandatory!=="undefined"){bru.join.data.postcode_mandatory=postcodeMandatory}if(typeof postcode!=="undefined"){bru.join.data.postcode=postcode}if(typeof poolTotal!=="undefined"){bru.join.data.pool_total=poolTotal}if(typeof referer!=="undefined"){bru.join.data.referer=referer}else{console.log("No referer")}if(typeof transferPoolId!=="undefined"){if(transferPoolId!=""){bru.join.data.transfer_pool_id=transferPoolId}}if(typeof palaceBetUsername!=="undefined"){bru.join.data.palacebet_username=palaceBetUsername}if(typeof poolsWithMandatoryOptIn!=="boolean"&&poolsWithMandatoryOptIn!==false){bru.join.data.pools_with_mandatory_opt_in=poolsWithMandatoryOptIn}if(joinType=="pool"||joinType=="tournament-and-pool"){bru.join.addPool(pid);bru.join.data.primary_pool_id=pid}$(".page-content").on("click",".vodacom-number-use",function(){bru.ui.overlay.open({title:"ajax",content:{url:"/player/ajax/vodacom_number_use.php",method:"POST"},footer:"",pad:true,autofit:false,footer:"close"})});console.log(bru.join.data)},setDob:function(part,val){if(part=="day"){bru.join.data.dob_day=(parseInt(val,10)<10?"0":"")+val}if(part=="month"){bru.join.data.dob_month=(parseInt(val,10)<10?"0":"")+val}if(part=="year"){bru.join.data.dob_year=val}console.log(bru.join.data.dob_year+"/"+bru.join.data.dob_month+"/"+bru.join.data.dob_day)},setPostcode:function(postcode){bru.join.data.postcode=postcode},back:function(){bru.join.chooseTeam(-1);
1$(".join .join-page-1").show();$(".join .join-page-2").hide()},scrollTop:function(){$("html, body").animate({scrollTop:$(".join").offset().top-20},0)},updateEmail:function(e){if(!bru.utils.validateEmail(e)){bru.ui.alert("<b>"+e+"</b> looks like an invalid email address.<br><br>Please double-check it.","Invalid email","error");return}bru.join.data.email=e},chooseTeam:function(t){console.log("choose team "+t);console.log(bru.join.data);var p=$("tr.team[data-bru-team="+t+"]").data("bru-pool-id");if(t==-1||bru.join.data.team_id!=null){bru.join.data.team_id=null;$(".team-chooser .team").removeClass("hidden").removeClass("active");$("tr.team").addClass("hidden");bru.join.data.pools.splice(bru.join.data.pools.indexOf(p),1);$(".join .join-page-1").show();$(".join .join-page-2").hide();$(".team-chooser .team .changeTeam").addClass("hidden");$("#joinPrevBtn").hide()}else{bru.join.data.team_id=t;$("tr.team[data-bru-team="+t+"]").removeClass("hidden").addClass("chosen");$(".team-chooser .team").addClass("hidden");$(".team-chooser .team[data-bru-id="+t+"]").removeClass("hidden").addClass("active");bru.join.data.pools.push(p);$(".join .join-page-1").hide();$(".join .join-page-2").show()}},joinPrevTeam:function(t){var p=$("tr.team[data-bru-team="+t+"]").data("bru-pool-id");bru.join.data.team_id=t;$("tr.team[data-bru-team="+t+"]").removeClass("hidden").addClass("chosen");$(".team-chooser .team").addClass("hidden");$(".team-chooser .team[data-bru-id="+t+"]").removeClass("hidden").addClass("active");bru.join.data.pools.push(p);if(bru.join.data.pool_total==0){console.log("pool total 0");bru.join.processJoin()}else{console.log("pool total NOT 0");$(".join .join-page-1").hide();$(".join .join-page-2").show()}},addPool:function(p){var f=false;for(var i=0;i<bru.join.data.pools.length;i++){if(bru.join.data.pools[i]==p){f=true}}if(!f){bru.join.data.pools.push(p);if($(".check-group[data-bru-opt-pool="+p+"]").find("input[type=checkbox]").is(":checked")){bru.join.data.pool_opt_ins.push(p)}}},togglePool:function(row,p){if(row.hasClass("chosen")){row.removeClass("chosen");bru.join.data.pools.splice(bru.join.data.pools.indexOf(p),1);bru.join.data.pool_opt_ins.splice(bru.join.data.pool_opt_ins.indexOf(p),1);$(".check-group[data-bru-opt-pool="+p+"]").addClass("hidden")}else{row.addClass("chosen");bru.join.addPool(p);$(".check-group[data-bru-opt-pool="+p+"]").removeClass("hidden")}},setPalaceBetUsername:function(poolId,username){bru.join.data.palacebet_username=username;console.log("pb username set to "+username)},setPoolPassword:function(p,pwd){var found=false;for(var j=0;j<bru.join.data.pool_passwords.length;j++){pl=bru.join.data.pool_passwords[j];if(pl.pool_id==p){found=true;bru.join.data.pool_passwords[j].password=pwd;if(pwd!=""){$("tr[data-bru-pool-id="+p+"]").addClass("chosen");bru.join.addPool(p);if($(".check-group[data-bru-opt-pool="+p+"]").find("input[type=checkbox]").is(":checked")){bru.join.data.pool_opt_ins.push(p)}$(".check-group[data-bru-opt-pool="+p+"]").removeClass("hidden")}}}if(!found){bru.join.data.pool_passwords.push({pool_id:p,password:pwd})}},setPoolOptIn:function(p,checked){if(checked){bru.join.data.pool_opt_ins.push(p)}else{if($(".check-group[data-bru-opt-pool="+p+"]").data("bru-mandatory")=="1"){bru.ui.alert("Sorry, to play in this pool you must agree to the opt-in. If you'd prefer not to play, deselect the pool.","Opt-in mandatory");$(".check-group[data-bru-opt-pool="+p+"]").find("input").prop("checked",true)}else{bru.join.data.pool_opt_ins.splice(bru.join.data.pool_opt_ins.indexOf(p),1)}}},setSponsorOptIn:function(checked){bru.join.data.sponsor_opt_in=checked},processJoin:function(){bru.join.scrollTop();if(bru.join.data.join_type=="tournament"){if(bru.join.data.pools_with_mandatory_opt_in.length>0){for(ip=0;ip<bru.join.data.pools_with_mandatory_opt_in.length;ip++){var pl=bru.join.data.pools_with_mandatory_opt_in[ip];for(ij=0;ij<bru.join.data.pools.length;ij++){if(bru.join.data.pools[ij]==pl){if(!$(".check-group[data-bru-opt-pool="+pl+"]").find("input").is(":checked")){bru.ui.alert("Sorry, to play in "+$(".check-group[data-bru-opt-pool="+bru.join.data.pools_with_mandatory_opt_in[ip]+"]").data("bru-opt-pool-name")+" you must agree to the pool's opt-in by ticking the box below the pool. If you'd prefer not to agree to the pool's conditions, deselect the pool.","Opt-in mandatory");return}}}}}}else if(bru.join.data.join_type=="tournament-and-pool"||bru.join.data.join_type=="pool"){if(bru.join.data.pools_with_mandatory_opt_in.length>0){for(ip=0;ip<bru.join.data.pools_with_mandatory_opt_in.length;ip++){if(!$(".check-group[data-bru-opt-pool="+bru.join.data.pools_with_mandatory_opt_in[ip]+"]").find("input").is(":checked")){bru.ui.alert("Sorry, to play in "+$(".check-group[data-bru-opt-pool="+bru.join.data.pools_with_mandatory_opt_in[ip]+"]").data("bru-opt-pool-name")+" you must agree to the pool's opt-in by ticking the box below the pool.","Opt-in mandatory");return}}}}
1$(".join .join-page-processing").show();$(".join .join-page-1").hide();$(".join .join-page-2").hide();$("table.pool-join tr").each(function(){if($(this).hasClass("chosen")){bru.join.addPool($(this).data("bru-pool-id"))}});if(bru.join.data.postcode_mandatory&&$("#postcode").length>0&&$(".join-page-2").length>0&&$(".join-page-2").css("display")!=="none"&&(bru.join.data.postcode==null||bru.join.data.postcode.trim()=="")){bru.ui.alert("Please enter your postcode.","Postcode");return}if(bru.join.data.team_mandatory&&bru.join.data.team_id==null){bru.ui.alert("Please choose which team you support, or say you're neutral","Choose a team");return}var jqxhr=$.ajax({dataType:"json",method:"POST",url:"ajax/join.php",data:bru.join.data,cache:false,timeout:3e4}).done(function(msg,xhr){if(msg.result=="success"){if(typeof msg.data.destination!=="undefined"){if(bru.join.data.transfer_pool_id!=null){document.location="pool_setup_form.php?pp="+bru.join.data.transfer_pool_id}else{document.location=msg.data.destination}}else{if(bru.join.data.transfer_pool_id!=null){document.location="pool_setup_form.php?pp="+bru.join.data.transfer_pool_id}else{if(bru.join.data.referer!=null){document.location=bru.join.data.referer}else{document.location="play.php"}}}}else{bru.ui.alert(msg.data,"There's a problem");$(".join .join-page-processing").hide();$(".join .join-page-1").show();$(".join .join-page-2").hide()}}).fail(function(msg,xhr){bru.ui.alert("Sorry, this didn't work. Please try again. [5]","Error");$(".join .join-page-processing").hide();$(".join .join-page-1").show();$(".join .join-page-2").hide()}).always(function(msg,xhr){})},declineInvitation:function(i){$(".join .join-page-processing").show().find(".text").html("Declining...");$(".join .join-page-1").hide();$(".join .join-page-2").hide();var jqxhr=$.ajax({dataType:"json",method:"POST",url:"/player/ajax/decline_invitation.php",data:{i:i,task:"decline"},cache:false,timeout:3e4}).done(function(msg,xhr){if(msg.result=="success"){$(".join .join-page-1").show().html("").append("<div>"+msg.data.html+"</div>");$(".join .join-page-processing").hide()}else{bru.ui.alert(msg.data,"There's a problem");$(".join .join-page-processing").hide();$(".join .join-page-1").show();$(".join .join-page-2").hide()}}).fail(function(msg,xhr){bru.ui.alert("Sorry, this didn't work. Please try again. [5]","Error");$(".join .join-page-processing").hide();$(".join .join-page-1").show();$(".join .join-page-2").hide()}).always(function(msg,xhr){})}},trays:{invitations:{toggleProgress:function(i,p){if(p){$(".nav-invitations li[data-invitation-id="+i+"] .under .title").hide();$(".nav-invitations li[data-invitation-id="+i+"] .under .buttons").hide();$(".nav-invitations li[data-invitation-id="+i+"] .under .progress").show()}else{$(".nav-invitations li[data-invitation-id="+i+"] .under .title").show();$(".nav-invitations li[data-invitation-id="+i+"] .under .buttons").show();$(".nav-invitations li[data-invitation-id="+i+"] .under .progress").hide()}},accept:function(i,forceApplyLink){if(typeof forceApplyLink!=="undefined"){document.location=forceApplyLink;return}bru.trays.invitations.toggleProgress(i,true);var jqxhr=$.ajax({dataType:"json",method:"POST",url:"/player/ajax/accept_invitation.php",data:{i:i},cache:false,timeout:3e4}).done(function(msg,xhr){if(msg.result=="success"){$(".nav-invitations li[data-invitation-id="+i+"] .over .item-inner .item-title .pool-type").html(msg.data).addClass("joined");$(".nav-invitations li[data-invitation-id="+i+"] .over .item-inner .item-title .pool-from").hide();$(".nav-invitations li[data-invitation-id="+i+"] .over").removeClass("slide").click(function(e){e.preventDefault();document.location=$(this).data("url")});$(".nav-invitations li[data-invitation-id="+i+"] .under .buttons").hide()}else{if(msg.code=="1"){document.location=msg.data}else{bru.ui.alert(msg.data,"There's a problem [i3]")}}}).fail(function(msg,xhr){bru.ui.alert("Sorry, this didn't work. Please try again. [i4]","Error")}).always(function(msg,xhr){bru.trays.invitations.toggleProgress(i,false);bru.player.updateAlertNumbers()})},declineMessage:function(i,c){var h="<p class='large'>Let <b>"+c+"</b>
1 know why are declining this pool invitation by entering a message below.</p><form class='basic'><div class='group'><textarea id='decline"+i+"-message'></textarea></div><div class='button-group'><a href='javascript:void(0)' onclick='bru.trays.invitations.decline("+i+",true)' class='button med'>Send</a></div></form>";bru.ui.overlay.open({title:"Decline Invitation",content:h,scroll:true,autofit:false,footer:"Cancel"})},declineClubMessage:function(i,c){var h="<p class='large'>Let <b>"+c+"</b> know why are declining this club invitation by entering a message below.</p><form class='basic'><div class='group'><textarea id='decline"+i+"-message'></textarea></div><div class='button-group'><a href='javascript:void(0)' onclick='bru.trays.invitations.declineClub("+i+",true)' class='button med'>Send</a></div></form>";bru.ui.overlay.open({title:"Decline Invitation",content:h,scroll:true,autofit:false,footer:"Cancel"})},decline:function(i,msg){var task="decline";var m="";var proceed=true;if(typeof msg!=="undefined"){if(msg){task="declineMessage";m=$("#decline"+i+"-message").val()}bru.ui.overlay.close()}else{if(bru.data.mobile){if(!confirm("Are you sure you wish to ignore this invitation?")){proceed=false}}}if(!proceed){bru.trays.invitations.toggleProgress(i,false);return}bru.trays.invitations.toggleProgress(i,true);var jqxhr=$.ajax({dataType:"json",method:"POST",url:"/player/ajax/decline_invitation.php",data:{i:i,task:task,declineMessage:m},cache:false,timeout:3e4}).done(function(msg,xhr){if(msg.result=="success"){$(".nav-invitations li[data-invitation-id="+i+"]").remove()}else{bru.ui.alert(msg.data,"There's a problem [i1]")}}).fail(function(msg,xhr){bru.ui.alert("Sorry, this didn't work. Please try again. [i2]","Error")}).always(function(msg,xhr){bru.trays.invitations.toggleProgress(i,false);bru.player.updateAlertNumbers()})},declineClub:function(i,msg){var task="declineClub";var m="";if(typeof msg!=="undefined"){if(msg){task="declineClubMessage";m=$("#decline"+i+"-message").val()}bru.ui.overlay.close()}bru.trays.invitations.toggleProgress(i,true);var jqxhr=$.ajax({dataType:"json",method:"POST",url:"/player/ajax/decline_invitation.php",data:{i:i,task:task,declineMessage:m},cache:false,timeout:3e4}).done(function(msg,xhr){if(msg.result=="success"){$(".nav-invitations li[data-invitation-id="+i+"]").remove()}else{bru.ui.alert(msg.data,"There's a problem [i6]")}}).fail(function(xhr,stat,errorThrown){console.log("xhr");console.log(xhr);console.log("stat");console.log(stat);console.log("error");console.log(errorThrown);bru.logging.logAjaxError(xhr);bru.ui.alert("Sorry, this didn't work. Please try again. [i5]","Error")}).always(function(msg,xhr){bru.trays.invitations.toggleProgress(i,false);bru.player.updateAlertNumbers()})},block:function(i,p,u){if(confirm("Are you sure you wish to block future invitations from "+u+"?")){bru.trays.invitations.toggleProgress(i,true);var callDate=new Date;var startMs=callDate.getTime();var jqxhr=$.ajax({dataType:"json",method:"POST",url:"/player/ajax/block_inviter.php",data:{player_id:p},cache:false,timeout:2e4}).done(function(msg,xhr){if(msg.result=="success"){bru.trays.invitations.decline(i)}else{bru.ui.alert(msg.data,"There's a problem [i1]")}}).fail(function(xhr,stat,errorThrown){bru.ui.alert("Sorry, this didn't work. Please try again. [i2]","Error")}).always(function(msg,xhr){bru.trays.invitations.toggleProgress(i,false);bru.player.updateAlertNumbers()})}}},tournaments:{clickTournament:function(e,o){e.preventDefault();if(e.target.id=="icon-favourite"){bru.player.saveTournamentFavourite(o.data("tournament-id"),o.data("favourite"))}else if(e.target.id=="icon-trash"){bru.trays.tournaments.saveTournamentNotInterested(o.data("tournament-id"),o.data("interested"))}else if(e.target.id=="icon-restore"){bru.trays.tournaments.saveTournamentNotInterested(o.data("tournament-id"),0)}else{o.find("i.fa-arrow-right").removeClass("fa-arrow-right").addClass("fa-refresh").addClass("fa-spin");bru.desktop.hideNav(true);document.location=o.data("url")}},toggleShowHidden:function(par,h){if(h.html()=="Show"){par.find(".list").removeClass("hidden");h.html("Hide")}else{par.find(".list").addClass("hidden");h.html("Show")}},saveTournamentNotInterested:function(t,i){if(i==1){i=0}else{i=1}var prefix=".nav-tray[data-bru-id=tournaments] ";prefix="";var trash=$(".side-tab-holder .holder .details .item[data-tournament-id="+t+"] i.fa-close");trash.addClass("fa-spin");var sport=trash.data("sport-id");var jqxhr=$.ajax({dataType:"json",method:"POST",url:"/player/ajax/save_tournament_not_interested.php",data:{t:t,i:i},cache:false,timeout:2e4}).done(function(msg,xhr){if(msg.result=="success"){var h=$(prefix+" .side-tab-holder .holder .details .sub-tab[data-tab-id=tab-"+sport+"] .hidden-tournaments");var hn=$(prefix+" .side-tab-holder .holder .details .sub-tab[data-tab-id=tab-n] .hidden-tournaments");if(i==0){var o=$(prefix+" .side-tab-holder .holder .details .sub-tab[data-tab-id=tab-"+sport+"] .item[data-tournament-id="+t+"]");$(prefix+" .side-tab-holder .holder .details .sub-tab[data-tab-id=tab-"+sport+"] .item[data-tournament-id="+t+"]").clone().appendTo($(prefix+" .side-tab-holder .holder .details .sub-tab[data-tab-id=tab-"+sport+"] .hidden-tournaments .list"));if(o.data("new")=="1"){var p=$(prefix+" .side-tab-holder .holder .details .sub-tab[data-tab-id=tab-n] .item[data-tournament-id="+t+"]");p.clone().appendTo($(prefix+" .side-tab-holder .holder .details .sub-tab[data-tab-id=tab-n] .hidden-tournaments .list"));p.remove();var len=$(prefix+" .side-tab-holder .holder .details .sub-tab[data-tab-id=tab-n] .hidden-tournaments .list .item").length;hn.data("tot",len)}o.remove();h.data("tot",$(prefix+" .side-tab-holder .holder .details .sub-tab[data-tab-id=tab-"+sport+"] .hidden-tournaments .list .item").length)}else{var o=$(prefix+" .side-tab-holder .holder .details .sub-tab[data-tab-id=tab-"+sport+"] .hidden-tournaments .list .item[data-tournament-id="+t+"]");$(prefix+" .side-tab-holder .holder .details .sub-tab[data-tab-id=tab-"+sport+"] .hidden-tournaments .list .item[data-tournament-id="+t+"]").clone().appendTo($(prefix+" .side-tab-holder .holder .details .sub-tab[data-tab-id=tab-"+sport+"] .list.main-list"));if(o.data("new")=="1"){var p=$(prefix+" .side-tab-holder .holder .details .sub-tab[data-tab-id=tab-n] .hidden-tournaments .list .item[data-tournament-id="+t+"]");p.clone().appendTo($(prefix+" .side-tab-holder .holder .details .sub-tab[data-tab-id=tab-n] .list.main-list"));p.remove();var len=$(prefix+" .side-tab-holder .holder .details .sub-tab[data-tab-id=tab-n] .hidden-tournaments .list .item").length;hn.data("tot",len)}h.data("tot",$(prefix+" .side-tab-holder .holder .details .sub-tab[data-tab-id=tab-"+sport+"] .hidden-tournaments .list .item").length);o.remove()}$(prefix+" .hidden-tournaments").each(function(){var len=$(this).find(".list .item").length;$(this).find(".title span.tot").html(len);if(len==0){$(this).removeClass("visible")}else{$(this).addClass("visible")}})}}).fail(function(msg,xhr){bru.ui.alert("Sorry, we could not hide this tournament for you right now.")}).always(function(msg,xhr){$(prefix+" .side-tab-holder .holder .details .item[data-tournament-id="+t+"] i.fa-close").removeClass("fa-spin");bru.destroyAllTooltips()})},resignTournamentConfirm:function(tid){bru.ui.overlay.open({title:"ajax",content:{url:"/player/ajax/resign_tournament_confirm.php",method:"POST",data:{t:tid}},footer:"close"})},resignTournament:function(tid,tname){bru.ui.overlay.close();$("li.item-content[data-tournament-id="+tid+"]").hide();var jqxhr=$.ajax({dataType:"json",method:"POST",url:"/player/ajax/resign_tournament.php",data:{tid:tid},cache:false,timeout:2e4}).done(function(msg,xhr){if(msg.result=="success"){}else{bru.ui.alert("Sorry, the attempt to resign failed. Please try again.");$("li.item-content[data-tournament-id="+tid+"]").show()}}).fail(function(msg,xhr){bru.ui.alert("Sorry, the attempt to resign failed. Please try again.");$("li.item-content[data-tournament-id="+tid+"]").show()}).always(function(msg,xhr){})}}},notifications:{follow:function(n,url){bru.notifications.update(n,0,2,url)},dismiss:function(n){$("table.notifications tr[data-notification-id="+n+"]").remove();bru.notifications.update(n,0,1)},dismissAll:function(){$("table.notifications tr").remove();$(".cleared-all").removeClass("hidden");bru.notifications.update(0,1,1)},update:function(n,a,st,url){var jqxhr=$.ajax({dataType:"json",method:"POST",url:"/player/ajax/update_notification.php",data:{n:n,a:a,s:st},cache:false,timeout:3e4}).done(function(msg,xhr){if(msg.result=="success"){if(typeof url!=="undefined"){document.location=url}}else{bru.ui.alert(msg.data,"There's a problem [i1]")}}).fail(function(msg,xhr){bru.ui.alert("Sorry, this didn't work. Please try again. [i2]","Error")}).always(function(msg,xhr){bru.player.updateAlertNumbers()})}
1,togglePools:function(o){if(o.html()=="Hide pool activity"){$("table.notifications tr[data-category='pool application']").hide();o.html("Show pool activity")}else{$("table.notifications tr[data-category='pool application']").show();o.html("Hide pool activity")}}},pastResults:{toggleHomeOnly:function(radio){if(radio.hasClass("toggle-on")){radio.removeClass("toggle-on");radio.find("i").removeClass("fa-toggle-on").addClass("fa-toggle-off");$(".past-away-game").fadeIn(200);$(".past-soccer-results .result").removeClass("shaded");var i=0;$(".past-soccer-results .result").each(function(){i++;if(i%2!=0){$(this).addClass("shaded")}})}else{radio.addClass("toggle-on");radio.find("i").removeClass("fa-toggle-off").addClass("fa-toggle-on");$(".past-away-game").fadeOut(200);$(".past-soccer-results .result").removeClass("shaded");var i=0;$(".past-soccer-results .result.past-home-game").each(function(){i++;if(i%2!=0){$(this).addClass("shaded")}})}}},external:{openSupersportLive:function(){bru.analytics.trackEvent("supersport","live_stream","live_stream");window.open("https://now.dstv.com/livetv/play/e6058f06-43f1-4ba2-beb5-caab09b63ef6?utm_source=ss_social&utm_medium=organic&utm_campaign=int_ss_rwc2019&utm_term=superbru&utm_content=feature","_blank")}},experts:{toggle:function(gameId){var hd=$(".experts-row[data-game-id="+gameId+"]");var det=$(".experts-detail[data-game-id="+gameId+"]");if(det.hasClass("hidden")){hd.addClass("hidden");det.removeClass("hidden");det.find(".bar").each(function(){$(this).animate({width:$(this).data("width")+"px"},500,function(){$(this).parent().find(".pick").removeClass("hidden")})})}else{hd.removeClass("hidden");det.addClass("hidden");det.find(".bar").css("width",0);det.find(".pick").addClass("hidden")}}},snippets:{spinner:'<div class="spin-holder"><svg class="spinner" width="45px" height="45px" viewBox="0 0 66 66" xmlns="http://www.w3.org/2000/svg"><circle class="path" fill="none" stroke-width="4" stroke-linecap="round" cx="33" cy="33" r="30"></circle></svg></div>'},tracking:{trackSignupEvent:function(e){if(typeof fbq!=="undefined"){fbq("track",e)}}},error:{logAjaxError:function(xhr){}},adblock:{recordFalsePositive:function(){var d=new Date;if(typeof Storage!=="undefined"){window.localStorage.setItem("adblock_false_positive",1);window.localStorage.setItem("adblock_last_check",d.getTime())}$(".ad-desktop-top.ad-blocker .sorry").removeClass("hidden")},checkForBlocker:function(pid,img,un,price){console.log("ad block check script");window.setTimeout(function(){if(typeof Storage!=="undefined"){var atst=false;if(localStorage.getItem("last_bcheck")==null){atst=true}else{var dt=new Date;if(dt.getTime()-localStorage.getItem("last_bcheck")>1e3*30*1){atst=true}}console.log("check adblocker "+atst);if(atst){var dt=new Date;localStorage.setItem("last_bcheck",dt.getTime());if(typeof jjf0e2jfpidjijklfds!=="undefined"){console.log("var exists")}else{console.log("no var")}if(document.getElementById("23j0ewh8fewh")){console.log("record whitelist / no block");$.ajax({type:"POST",url:"/player/ajax/record_blkker.php",timeout:5e3,cache:false,dataType:"json",data:{p:pid,u:1}})}else{console.log("add adblock message");$(".ad-desktop-top").after("<div class='ad-desktop-top ad-blocker'><div class='container'><div class='inner'><div class='ad-blocker-appeal'><div class='thumb'><img src='"+img+"' width='90' /></div><div class='greeting'><b>Hi "+un+"!</b> Could you please turn off your adblocker?</div><div class='below'><div class='intro'><div class='appeal'>To deliver a free service to you, Superbru depends on advertising income. Some sites have irritating ads,<br />but we try hard to display quality ads that aren't disruptive. If you enjoy Superbru, please:</div><ul><li><b>Whitelist Superbru</b> in your adblocker...</li><li>... or upgrade to <b>ad-free Superbru Premium</b>
1 for "+price+"</li></ul></div><div class='button-group'><a class='button' href='/player/adblock_whitelist.php#how'>How to whitelist</a><a class='button premium' href='/player/premium.php?src=check-for-blocker'>Discover ad-free Superbru Premium</a></div> <a href='/player/adblock_whitelist.php' class='not'>More about why ads are important to Superbru</a><a href='javascript:void(0)' onclick='bru.adblock.recordFalsePositive()' class='not'>Woah there! I'm not using an adblocker</a> <div class='sorry hidden'>Sorry about this. Please contact us at <a href='mailto:[email protected]'>[email protected]</a> and we'll make sure this message doesn't show for you.</div></div></div></div></div></div>");$.ajax({type:"POST",url:"/player/ajax/record_blkker.php",timeout:5e3,cache:false,dataType:"json",data:{p:pid,u:0}})}}}},1e3)}},ads:{notifyAboutInterstitial:function(premPrice){var showAd=false;var minMinsBetweenShows=30;var maxTimesPerDay=3;var d=new Date;var nowMins=d.getTime()/1e3/60;var utc=(new Date).toJSON().slice(0,10).replace(/-/g,"-");console.log("test date "+utc);if(!window.localStorage.getItem("ad_last_interstitial_date")){window.localStorage.setItem("ad_last_interstitial_date",utc);window.localStorage.setItem("ad_interstitial_today_count","0");showAd=true}else{if(window.localStorage.getItem("ad_last_interstitial_date")==utc){var countToday=parseInt(window.localStorage.getItem("ad_interstitial_today_count"),10);if(countToday<=maxTimesPerDay){showAd=true}}else{window.localStorage.setItem("ad_last_interstitial_date",utc);window.localStorage.setItem("ad_interstitial_today_count",0);showAd=true}if(window.localStorage.getItem("ad_last_interstitial_shown_minutes")!=null){if(nowMins-parseInt(window.localStorage.getItem("ad_last_interstitial_shown_minutes"),10)<minMinsBetweenShows){showAd=false;console.log("skip interstitial: last shown less than "+minMinsBetweenShows+" mins ago")}}}if(!showAd){return}window.localStorage.setItem("ad_last_interstitial_date",utc);window.localStorage.setItem("ad_interstitial_today_count",parseInt(window.localStorage.getItem("ad_interstitial_today_count"),10)+1+"");window.localStorage.setItem("ad_last_interstitial_shown_minutes",nowMins);bru.ui.overlay.open({title:"Advertisement",content:"<div class='text-center' style='margin-bottom:10px'><div id='div-gpt-ad-1544091790230-0' style='height:250px; width:300px;margin:0 auto'></div></div><p class='text-center'><b>Thanks for making your picks!</b></p><p class='text-center'>Please support Superbru by viewing a quick ad. We know ads can be disruptive, but without them Superbru could not be free.</p><p class='text-center'>Go ad-free with <b><a href='/player/premium.php?src=pre-interstitial-mobile-web' style='text-decoration:underline'>Superbru Premium</a></b> for <b>"+premPrice+"</b> per month and get other great features too.</p><br><a href='javascript:void(0)' onclick='bru.ads.showInterstitial()' class='button large max'>Continue</a></div>"});googletag.cmd.push(function(){googletag.display("div-gpt-ad-1544091790230-0")})},showInterstitial:function(){$("body").append("");bru.ui.overlay.close();console.log("start interstitial")},getAdPersonalizationConsent:function(){if(window.dataLayer&&window.dataLayer.length>0){for(let i=window.dataLayer.length-1;i>=0;i--){if(window.dataLayer[i][0]==="consent"&&window.dataLayer[i][1]==="update"){return window.dataLayer[i][2].ad_personalization}}}else{console.log("no dataLayer for consent check")}return null}},questions:{check:function(questionArea,tournamentId,poolId,delay){if(delay==0){delay=2e3}var siteType="web";if(bru.data.mobile){siteType="mobileweb"}var id=bru.url.getQuerystringVal("id");var w=window.setTimeout(function(){$.ajax({method:"POST",dataType:"json",url:"/home/ajax/get_question.php",cache:false,timeout:2e4,data:{tournament_id:tournamentId,pool_id:poolId,qa:questionArea,st:siteType,id:id}}).done(function(msg,stat,xhr){console.log(msg);if(msg.result=="success"){var question=msg.data.res;if($.isEmptyObject(question)==false&&question["question_text"]!="undefined"){var questionContent="<h3>"+question["question_text"]+"</h3>";questionContent+="<div id='questionConfirm'></div><div class='questionAnswers'>";if($.isEmptyObject(question["answers"])==false){$.each(question["answers"],function(key,value){questionContent+="<div class='qAnswer' id='answer"+value["id"]+"' onclick='bru.questions.saveAnswer("+question["question_id"]+","+value["id"]+")'>"+value["answer"]+"</div>"})}else{questionContent+="<div><input type='text' name='answer' /></div>"}questionContent+="</div><div id='questionResults'></div>";if(siteType!="app"){questionContent+="<div id='questionPrivacy'>"+question["privacy"]+" <a href='/player/privacy_policy.php' target='_blank'>Privacy Policy</a></div>"}if(questionArea==7){$("#question-content").html(questionContent)}else{bru.ui.overlay.open({title:"Help us personalise your Superbru experience",content:questionContent,footer
1:"close"})}bru.questions.saveAnswer(question["question_id"],0)}else{if(questionArea==7){$("#question-content").html("Your answer is saved. Thanks for taking part!")}}}else{if(questionArea==7){$("#question-content").html("Your answer is saved. Thanks for taking part!")}}}).fail(function(msg,stat,xhr){console.log("question error");if(questionArea==7){$("#question-content").html("Sorry, something went wrong.")}}).always(function(msg,stat,xhr){})},delay)},saveAnswer:function(questionId,answerId){$.ajax({method:"GET",dataType:"json",url:"/home/ajax/save_answer_2019.php",cache:false,timeout:2e4,data:{q:questionId,a:answerId},beforeSend:function(){if(answerId>0){$("#questionConfirm").html("Saving your answer...");$(".qAnswer").removeClass("selected").hide();$("#answer"+answerId).show().addClass("selected")}}}).done(function(msg,stat,xhr){if(msg.result=="success"&&answerId>0){if("betting_positive"in msg.data&&msg.data.betting_positive==1){bru.ui.overlay.close();bru.betting.openConfirmationPopup();$.ajax({type:"POST",url:"/beat-the-odds/ajax/"+"process_onboarding.php",timeout:3e4,cache:false,dataType:"json",data:{onboarding:"popup-question",club:"yes"}}).done(function(msg,xhr){if(msg.result=="error"){}else{}}).fail(function(msg,xhr){}).always(function(msg,xhr){})}else{$("#questionConfirm").html("Thanks for taking part!");if(msg.data!="No results"){$("#questionResults").html(msg.data.res)}}}}).fail(function(msg,stat,xhr){console.log("question error")}).always(function(msg,stat,xhr){})}},premium_trial:{offer:function(){var delay=500;var w=window.setTimeout(function(){$.ajax({method:"POST",dataType:"json",url:"/player/ajax/offer_premium_trial.php",cache:false,timeout:2e4,data:{}}).done(function(msg,stat,xhr){if(msg.result=="success"){if(msg.data.offer==1){bru.ui.overlay.open({title:"Free Superbru Premium trial",content:msg.data.html,footer:"close"})}}}).fail(function(msg,stat,xhr){}).always(function(msg,stat,xhr){})},delay)},decline:function(trialId){bru.ui.overlay.close();$.ajax({method:"POST",dataType:"json",url:"/player/ajax/activate_premium_trial.php",cache:false,timeout:2e4,data:{trial_id:trialId,response:2}}).done(function(msg,stat,xhr){}).fail(function(msg,stat,xhr){}).always(function(msg,stat,xhr){})}},betting:{openRecommendedBetsPopup:function(tid,rid){bru.ui.overlay.open({title:"ajax",content:{url:"/beat-the-odds/ajax/recommended_bets_popup.php",method:"GET",data:{tournament_id:tid,round_id:rid}},footer:"Close",pad:true,scroll:true})},openOnboardingPopup:function(){bru.ui.overlay.open({title:"ajax",content:{url:"/player/ajax/beat_the_odds_onboarding_popup.php",method:"GET"},footer:false,pad:false,width:"1000px",scroll:true})},openConfirmationPopup:function(){bru.ui.overlay.open({title:"ajax",content:{url:"/player/ajax/beat_the_odds_confirmation_popup.php",method:"GET"},footer:false,pad:false,width:"500px",scroll:true})},onboarding:{selectCheck:function(o){this.hideErrors();o.parent().data("value",o.data("value"));o.addClass("chosen");o.parent().find(".check-touch").each(function(){if($(this).data("value")!=o.data("value")){$(this).removeClass("chosen")}})},hideErrors:function(){$(".onboarding-form #onboarding-errors").addClass("hidden")},submit:function(){$(".onboarding-form #actions button").hide();$(".onboarding-form #actions .spinner").removeClass("hidden");this.hideErrors();var errors=[];var form=$("form#onboarding-form");var cont=true;if($(".onboarding-form #dob-day").length>0){var d=$(".onboarding-form #dob-day").val();var m=$(".onboarding-form #dob-month").val();var y=$(".onboarding-form #dob-year").val();if(d==""||m==""||y==""){errors.push("Please enter your full date of birth.");cont=false}if(cont){var leap=y%100===0?y%400===0:y%4===0;var dateError=false;if(m==2&&leap&&d>29){dateError=true}if(m==2&&!leap&&d>28){dateError=true}if(d>30&&(m==4||m==6||m==9||m==9||m==11)){dateError=true}if(dateError){errors.push("Your date of birth isn't valid. Please check it.")}}var dob=y+"/"+(m<10?"0"+m:m)+"/"+(d<10?"0"+d:d)}else{var dob=""}if(form.find("#club").data("value")==""){errors.push("Please answer the question about joining the Beat the Odds club.")}if(form.find("#addiction").data("value")==""){errors.push("Please answer the question about any history of gambling problems.")}if(errors.length>0){var e="";$(".onboarding-form #onboarding-errors").removeClass("hidden");for(i=0;i<errors.length;i++){e+=errors[i]+"<br />"}$(".onboarding-form #onboarding-errors p").html(e);$(".onboarding-form #actions .spinner").addClass("hidden");$(".onboarding-form #actions button").show();return}var club="no";if(form.find("#club").data("value")=="yes"){club="yes"}$.ajax({type:"POST",url:"/beat-the-odds/ajax/"+"process_onboarding.php",timeout:3e4,cache:false,dataType:"json",data:{dob:dob,addiction:form.find("#addiction").data("value"),club:club}}
1).done(function(msg,xhr){if(msg.result=="error"){var e="";$("#onboarding-errors").removeClass("hidden");for(i=0;i<msg.data.errors.length;i++){e+=msg.data.errors[i]+"<br />"}$(".onboarding-form #onboarding-errors p").html(e);$(".onboarding-form #button-activate").addClass("hidden");$(".onboarding-form #button-dashboard").removeClass("hidden");form.hide();$(".onboarding-form #actions .spinner").addClass("hidden")}else{document.location=msg.data.next_page}}).fail(function(msg,xhr){$(".onboarding-form #actions #button-activate").show();$(".onboarding-form #actions .spinner").addClass("hidden");$(".onboarding-form #onboarding-errors").removeClass("hidden");$(".onboarding-form #onboarding-errors p").html("An error occurred while trying to process your submission: "+msg);return}).always(function(msg,xhr){})}}}};(function(t,n){function e(n,e,o,i){t.each(c,function(t,a){a[n].call(this,e,o,i)})}function o(t){var n=u.Event(t);r=u.State(n),e("touchstart",t,r,n)}function i(t){if(r){var n=u.Event(t);r.move.push(n),e("touchmove",t,r,n)}}function a(t){var n=u.Event(t);r.end=n,e("touchend",t,r,n)}var r,c={},u={active:!1,on:function(){t(document).on("touchstart MSPointerDown pointerdown",o).on("touchmove MSPointerMove MSPointerHover pointermove",i).on("touchend touchcancel MSPointerUp MSPointerCancel pointerup pointercancel",a),u.active=!0},off:function(){t(document).off("touchstart MSPointerDown pointerdown",o).off("touchmove MSPointerMove MSPointerHover pointermove ",i).off("touchend touchcancel MSPointerUp MSPointerCancel pointerup pointercancel",a),u.active=!1},track:function(t,n){c[t]=n},addEventParam:function(n,e){var o=t(n.target),i=o.offset(),a={pageX:n.point[0].x,pageY:n.point[0].y,offsetX:i.left-n.point[0].x,offsetY:i.top-n.point[0].y};return t.extend(a,e)},Event:function(n){var e={type:n.type,timestamp:(new Date).getTime(),target:n.target,point:[]},o=[];return n.type.indexOf("touch")>-1?o=n.changedTouches||n.originalEvent.changedTouches||n.touches||n.originalEvent.touches:n.type.match(/.*?pointer.*?/i)&&(o=[n.originalEvent]),t.each(o,function(t,n){e.point.push({x:n.pageX,y:n.pageY})}),e},State:function(t){return t.point[0],{start:t,move:[],end:null}},calc:{getDuration:function(t,n){return n.timestamp-t.timestamp},getDistance:function(t,n){return Math.sqrt(Math.pow(n.x-t.x,2)+Math.pow(n.y-t.y,2))},getAngle:function(t,n){return 180*Math.atan2(n.y-t.y,n.x-t.x)/Math.PI},getDirection:function(t){return-45>t&&t>-135?"up":t>=-45&&45>=t?"right":t>=45&&135>t?"down":t>=135||-135>=t?"left":"unknown"},getScale:function(t,n){var e=t.point,o=n.point;return 2===e.length&&2===o.length?(Math.sqrt(Math.pow(o[0].x-o[1].x,2)+Math.pow(o[0].y-o[1].y,2))/Math.sqrt(Math.pow(e[0].x-e[1].x,2)+Math.pow(e[0].y-e[1].y,2))).toFixed(2):0},getRotation:function(t,n){var e=t.point,o=n.point;return 2===e.length&&2===o.length?(180*Math.atan2(o[0].y-o[1].y,o[0].x-o[1].x)/Math.PI-180*Math.atan2(e[0].y-e[1].y,e[0].x-e[1].x)/Math.PI).toFixed(2):0}}};u.on(),t.toe=u})(jQuery,this),function(t,n){var e=document.documentElement.clientWidth,o=document.documentElement.clientHeight;Math.sqrt(e*o);var i={timestamp:0,point:null},a="doubletap",r={distance:40,duration:300,interval:600,finger:1};n.track(a,{touchstart:function(t,n,e){n[a]={finger:e.point.length}},touchmove:function(t,n,e){n[a].finger=e.point.length>n[a].finger?e.point.length:n[a].finger},touchend:function(e,o,c){var u,g,l=t.extend(r,e.data);if(u=n.calc.getDuration(o.start,c),g=n.calc.getDistance(o.start.point[0],c.point[0]),l.duration>u&&l.distance>g&&o[a].finger===l.finger){var h=new Date,f=null,p=null;i.timestamp<h.getTime()&&(f=h.getTime()-i.timestamp),null!=i.point&&(p=n.calc.getDistance(i.point,c.point[0])),null!=f&&null!=p&&f>0&&l.interval>f&&l.distance>g&&t(e.target).trigger(t.Event(a,n.addEventParam(o.start,o[a]))),i.timestamp=h.getTime(),i.point=c.point[0]}}})}(jQuery,jQuery.toe,this),function(t,n){var e="swipe",o={distance:40,duration:1200,direction:"all"};n.track(e,{touchstart:function(t,n,o){n[e]={finger:o.point.length}},touchmove:function(t,n,o){n[e].finger=o.point.length>n[e].finger?o.point.length:n[e].finger},touchend:function(i,a,r){var c,u,g=t.extend(o,i.data);c=n.calc.getDuration(a.start,r),u=n.calc.getDistance(a.start.point[0],r.point[0]),g.duration>c&&u>g.distance&&(a[e].angle=n.calc.getAngle(a.start.point[0],r.point[0]),a[e].direction=n.calc.getDirection(a[e].angle),("all"===g.direction||a[e].direction===g.direction)&&t(i.target).trigger(t.Event(e,n.addEventParam(a.start,a[e]))))}})}(jQuery,jQuery.toe,this),function(t,n){var e=document.documentElement.clientWidth,o=document.documentElement.clientHeight,i=Math.sqrt(e*o),a=.02*i,r="tap",c={distance:a,duration:300,finger:1};
1n.track(r,{touchstart:function(t,n,e){n[r]={finger:e.point.length}},touchmove:function(t,n,e){n[r].finger=e.point.length>n[r].finger?e.point.length:n[r].finger},touchend:function(e,o,i){var a,u,g=t.extend(c,e.data);a=n.calc.getDuration(o.start,i),u=n.calc.getDistance(o.start.point[0],i.point[0]),g.duration>a&&g.distance>u&&o[r].finger===g.finger&&t(e.target).trigger(t.Event(r,n.addEventParam(o.start,o[r])))}})}(jQuery,jQuery.toe,this),function(t,n){var e,o,i="taphold",a={distance:20,duration:500,finger:1};n.track(i,{touchstart:function(r,c,u){var g=t.extend(a,r.data);o=!1,c[i]={finger:u.point.length},clearTimeout(e),e=setTimeout(function(){!o&&n.active&&c[i].finger===g.finger&&t(r.target).trigger(t.Event(i,n.addEventParam(u,c[i])))},g.duration)},touchmove:function(e,r,c){var u,g=t.extend(a,e.data);r[i].finger=c.point.length>r[i].finger?c.point.length:r[i].finger,u=n.calc.getDistance(r.start.point[0],c.point[0]),u>g.distance&&(o=!0)},touchend:function(){o=!0,clearTimeout(e)}})}(jQuery,jQuery.toe,this),function(t,n){var e,o="transform",i={scale:.1,rotation:15};n.track(o,{touchstart:function(t,n,i){e=!1,n[o]={start:i,move:[]}},touchmove:function(a,r,c){var u=t.extend(i,a.data);2===c.point.length&&(r[o].move.push(c),2!==r[o].start.point.length&&2===c.point.length&&(r[o].start=t.extend({},c)),r[o].rotation=n.calc.getRotation(r[o].start,c),r[o].scale=n.calc.getScale(r[o].start,c),(Math.abs(1-r[o].scale)>u.scale||Math.abs(r[o].rotation)>u.rotation)&&(e||(t(a.target).trigger(t.Event("transformstart",r[o])),e=!0),t(a.target).trigger(t.Event("transform",r[o]))))},touchend:function(i,a,r){e&&(e=!1,2!==r.point.length&&(a.end=t.extend({},a[o].move[a[o].move.length-1])),a[o].rotation=n.calc.getRotation(a[o].start,a.end),a[o].scale=n.calc.getScale(a[o].start,a.end),t(i.target).trigger(t.Event("transformend",a[o])))}})}(jQuery,jQuery.toe,this);(function($){$.fn.hoverIntent=function(handlerIn,handlerOut,selector){var cfg={interval:100,sensitivity:6,timeout:0};if(typeof handlerIn==="object"){cfg=$.extend(cfg,handlerIn)}else{if($.isFunction(handlerOut)){cfg=$.extend(cfg,{over:handlerIn,out:handlerOut,selector:selector})}else{cfg=$.extend(cfg,{over:handlerIn,out:handlerIn,selector:handlerOut})}}var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if(Math.sqrt((pX-cX)*(pX-cX)+(pY-cY)*(pY-cY))<cfg.sensitivity){$(ob).off("mousemove.hoverIntent",track);ob.hoverIntent_s=true;return cfg.over.apply(ob,[ev])}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob)},cfg.interval)}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIntent_s=false;return cfg.out.apply(ob,[ev])};var handleHover=function(e){var ev=$.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t)}if(e.type==="mouseenter"){pX=ev.pageX;pY=ev.pageY;$(ob).on("mousemove.hoverIntent",track);if(!ob.hoverIntent_s){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob)},cfg.interval)}}else{$(ob).off("mousemove.hoverIntent",track);if(ob.hoverIntent_s){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob)},cfg.timeout)}}};return this.on({"mouseenter.hoverIntent":handleHover,"mouseleave.hoverIntent":handleHover},cfg.selector)}})(jQuery);(function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)})(function(e){function t(){var t=this;t.top="auto",t.left="auto",t.right="auto",t.bottom="auto",t.set=function(o,n){e.isNumeric(n)&&(t[o]=Math.round(n))}}function o(e,t,o){function n(n,i){r(),e.data(v)||(n?(i&&e.data(m,!0),o.showTip(e)):(P.tipOpenImminent=!0,l=setTimeout(function(){l=null,s()},t.intentPollInterval)))}function i(n){r(),P.tipOpenImminent=!1,e.data(v)&&(e.data(m,!1),n?o.hideTip(e):(P.delayInProgress=!0,l=setTimeout(function(){l=null,o.hideTip(e),P.delayInProgress=!1},t.closeDelay)))}function s(){var i=Math.abs(P.previousX-P.currentX),s=Math.abs(P.previousY-P.currentY),r=i+s;t.intentSensitivity>r?o.showTip(e):(P.previousX=P.currentX,P.previousY=P.currentY,n())}function r(){l=clearTimeout(l),P.delayInProgress=!1}function a(){o.resetPosition(e)}var l=null;this.show=n,this.hide=i,this.cancel=r,this.resetPosition=a}function n(){function e(e,i,r,a,l){var p,c=i.split("-")[0],u=new t;switch(p=s(e)?n(e,c):o(e,c),i){case"n":u.set("left",p.left-r/2),u.set("bottom",P.windowHeight-p.top+l);break;case"e":u.set("left",p.left+l),u.set("top",p.top-a/2);break;case"s":u.set("left",p.left-r/2),u.set("top",p.top+l);break;case"w":u.set("top",p.top-a/2),u.set("right",P.windowWidth-p.left+l);break;case"nw":u.set("bottom",P.windowHeight-p.top+l),u.set("right",P.windowWidth-p.left-20);break;case"nw-alt":u.set("left",p.left),u.set("bottom",P.windowHeight-p.top+l);break;case"ne":u.set("left",p.left-20),u.set("bottom",P.windowHeight-p.top+l);break;case"ne-alt":u.set("bottom",P.windowHeight-p.top+l),u.set("right",P.windowWidth-p.left);break;case"sw":u.set("top",p.top+l),u.set("right",P.windowWidth-p.left-20);break;case"sw-alt":u.set("left",p.left),u.set("top",p.top+l);break;case"se":u.set("left",p.left-20),u.set("top",p.top+l);break;case"se-alt":u.set("top",p.top+l),u.set("right",P.windowWidth-p.left)}return u}function o(e,t){var o,n,i=e.offset(),s=e.outerWidth(),r=e.outerHeight();switch(t){case"n":o=i.left+s/2,n=i.top;break;case"e":o=i.left+s,n=i.top+r/2;break;case"s":o=i.left+s/2,n=i.top+r;break;case"w":o=i.left,n=i.top+r/2;break;case"nw":o=i.left,n=i.top;break;case"ne":o=i.left+s,n=i.top;break;case"sw":o=i.left,n=i.top+r;break;case"se":o=i.left+s,n=i.top+r}return{top:n,left:o}}function n(e,t){function o(){d.push(p.matrixTransform(u))}var n,i,s,r,a=e.closest("svg")[0],l=e[0],p=a.createSVGPoint(),c=l.getBBox(),u=l.getScreenCTM(),f=c.width/2,w=c.height/2,d=[],h=["nw","n","ne","e","se","s","sw","w"];if(p.x=c.x,p.y=c.y,o(),p.x+=f,o(),p.x+=f,o(),p.y+=w,o(),p.y+=w,o(),p.x-=f,o(),p.x-=f,o(),p.y-=w,o(),d[0].y!==d[1].y||d[0].x!==d[7].x)for(i=Math.atan2(u.b,u.a)*O,s=Math.ceil((i%360-22.5)/45),1>s&&(s+=8);s--;)h.push(h.shift());for(r=0;d.length>r;r++)if(h[r]===t){n=d[r];break}return{top:n.y+P.scrollTop,left:n.x+P.scrollLeft}}this.compute=e}function i(o){function i(e){e.data(v,!0),O.queue(function(t){s(e),t()})}function s(e){var t;
1if(e.data(v)){if(P.isTipOpen)return P.isClosing||r(P.activeHover),O.delay(100).queue(function(t){s(e),t()}),void 0;e.trigger("powerTipPreRender"),t=p(e),t&&(O.empty().append(t),e.trigger("powerTipRender"),P.activeHover=e,P.isTipOpen=!0,O.data(g,o.mouseOnToPopup),o.followMouse?a():(b(e),P.isFixedTipOpen=!0),O.fadeIn(o.fadeInTime,function(){P.desyncTimeout||(P.desyncTimeout=setInterval(H,500)),e.trigger("powerTipOpen")}))}}function r(e){P.isClosing=!0,P.activeHover=null,P.isTipOpen=!1,P.desyncTimeout=clearInterval(P.desyncTimeout),e.data(v,!1),e.data(m,!1),O.fadeOut(o.fadeOutTime,function(){var n=new t;P.isClosing=!1,P.isFixedTipOpen=!1,O.removeClass(),n.set("top",P.currentY+o.offset),n.set("left",P.currentX+o.offset),O.css(n),e.trigger("powerTipClose")})}function a(){if(!P.isFixedTipOpen&&(P.isTipOpen||P.tipOpenImminent&&O.data(T))){var e,n,i=O.outerWidth(),s=O.outerHeight(),r=new t;r.set("top",P.currentY+o.offset),r.set("left",P.currentX+o.offset),e=c(r,i,s),e!==I.none&&(n=u(e),1===n?e===I.right?r.set("left",P.windowWidth-i):e===I.bottom&&r.set("top",P.scrollTop+P.windowHeight-s):(r.set("left",P.currentX-i-o.offset),r.set("top",P.currentY-s-o.offset))),O.css(r)}}function b(t){var n,i;o.smartPlacement?(n=e.fn.powerTip.smartPlacementLists[o.placement],e.each(n,function(e,o){var n=c(y(t,o),O.outerWidth(),O.outerHeight());return i=o,n===I.none?!1:void 0})):(y(t,o.placement),i=o.placement),O.addClass(i)}function y(e,n){var i,s,r=0,a=new t;a.set("top",0),a.set("left",0),O.css(a);do{i=O.outerWidth(),s=O.outerHeight(),a=k.compute(e,n,i,s,o.offset),O.css(a)}while(5>=++r&&(i!==O.outerWidth()||s!==O.outerHeight()));return a}function H(){var e=!1;!P.isTipOpen||P.isClosing||P.delayInProgress||(P.activeHover.data(v)===!1||P.activeHover.is(":disabled")?e=!0:l(P.activeHover)||P.activeHover.is(":focus")||P.activeHover.data(m)||(O.data(g)?l(O)||(e=!0):e=!0),e&&r(P.activeHover))}var k=new n,O=e("#"+o.popupId);0===O.length&&(O=e("<div/>",{id:o.popupId}),0===d.length&&(d=e("body")),d.append(O)),o.followMouse&&(O.data(T)||(f.on("mousemove",a),w.on("scroll",a),O.data(T,!0))),o.mouseOnToPopup&&O.on({mouseenter:function(){O.data(g)&&P.activeHover&&P.activeHover.data(h).cancel()},mouseleave:function(){P.activeHover&&P.activeHover.data(h).hide()}}),this.showTip=i,this.hideTip=r,this.resetPosition=b}function s(e){return window.SVGElement&&e[0]instanceof SVGElement}function r(){P.mouseTrackingActive||(P.mouseTrackingActive=!0,e(function(){P.scrollLeft=w.scrollLeft(),P.scrollTop=w.scrollTop(),P.windowWidth=w.width(),P.windowHeight=w.height()}),f.on("mousemove",a),w.on({resize:function(){P.windowWidth=w.width(),P.windowHeight=w.height()},scroll:function(){var e=w.scrollLeft(),t=w.scrollTop();e!==P.scrollLeft&&(P.currentX+=e-P.scrollLeft,P.scrollLeft=e),t!==P.scrollTop&&(P.currentY+=t-P.scrollTop,P.scrollTop=t)}}))}function a(e){P.currentX=e.pageX,P.currentY=e.pageY}function l(e){var t=e.offset(),o=e[0].getBoundingClientRect(),n=o.right-o.left,i=o.bottom-o.top;return P.currentX>=t.left&&P.currentX<=t.left+n&&P.currentY>=t.top&&P.currentY<=t.top+i}function p(t){var o,n,i=t.data(y),s=t.data(H),r=t.data(k);return i?(e.isFunction(i)&&(i=i.call(t[0])),n=i):s?(e.isFunction(s)&&(s=s.call(t[0])),s.length>0&&(n=s.clone(!0,!0))):r&&(o=e("#"+r),o.length>0&&(n=o.html())),n}function c(e,t,o){var n=P.scrollTop,i=P.scrollLeft,s=n+P.windowHeight,r=i+P.windowWidth,a=I.none;return(n>e.top||n>Math.abs(e.bottom-P.windowHeight)-o)&&(a|=I.top),(e.top+o>s||Math.abs(e.bottom-P.windowHeight)>s)&&(a|=I.bottom),(i>e.left||e.right+t>r)&&(a|=I.left),(e.left+t>r||i>e.right)&&(a|=I.right),a}function u(e){for(var t=0;e;)e&=e-1,t++;return t}var f=e(document),w=e(window),d=e("body"),h="displayController",v="hasActiveHover",m="forcedOpen",T="hasMouseMove",g="mouseOnToPopup",b="originalTitle",y="powertip",H="powertipjq",k="powertiptarget",O=180/Math.PI,P={isTipOpen:!1,isFixedTipOpen:!1,isClosing:!1,tipOpenImminent:!1,activeHover:null,currentX:0,currentY:0,previousX:0,previousY:0,desyncTimeout:null,mouseTrackingActive:!1,delayInProgress:!1,windowWidth:0,windowHeight:0,scrollTop:0,scrollLeft:0},I={none:0,top:1,bottom:2,left:4,right:8};e.fn.powerTip=function(t,n){if(!this.length)return this;if("string"===e.type(t)&&e.powerTip[t])return e.powerTip[t].call(this,this,n);var s=e.extend({},e.fn.powerTip.defaults,t),a=new i(s);return r(),this.each(function(){var t,n=e(this),i=n.data(y),r=n.data(H),l=n.data(k);n.data(h)&&e.powerTip.destroy(n),t=n.attr("title"),i||l||r||!t||(n.data(y,t),n.data(b,t),n.removeAttr("title")),n.data(h,new o(n,s,a))}),s.manual||this.on({"mouseenter.powertip":function(t){e.powerTip.show(this,t)},"mouseleave.powertip":function(){e.powerTip.hide(this)},"focus.powertip":function(){e.powerTip.show(this)},"blur.powertip":function(){e.powerTip.hide(this,!0)},"keydown.powertip":function(t){27===t.keyCode&&e.powerTip.hide(this,!0)}}),this},e.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:!1,popupId:"powerTip",intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:!1,offset:10,mou
1seOnToPopup:!1,manual:!1},e.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]},e.powerTip={show:function(t,o){return o?(a(o),P.previousX=o.pageX,P.previousY=o.pageY,e(t).data(h).show()):e(t).first().data(h).show(!0,!0),t},reposition:function(t){return e(t).first().data(h).resetPosition(),t},hide:function(t,o){return t?e(t).first().data(h).hide(o):P.activeHover&&P.activeHover.data(h).hide(!0),t},destroy:function(t){return e(t).off(".powertip").each(function(){var t=e(this),o=[b,h,v,m];t.data(b)&&(t.attr("title",t.data(b)),o.push(y)),t.removeData(o)}),t}},e.powerTip.showTip=e.powerTip.show,e.powerTip.closeTip=e.powerTip.hide});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.