/*! (c) 2016 Jagex Limited */ document.domain="runescape.com";var RS3=RS3||{},baseURL=baseURL||"https://www.runescape.com",PAGEGLOBALS=PAGEGLOBALS||{},ajaxHiscoresUrl=ajaxHiscoresUrl||"http://services.runescape.com/m=hiscore",ajaxClanHiscoresUrl=ajaxClanHiscoresUrl||"http://services.runescape.com/m=clan-hiscores";RS3.global={viewportDimensions:function(){var a={};return a.cHeight=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight,a.cWidth=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,a},external:function(){//track external clicks - class .ext and title attr $("body").on("click",".ext",function(a){var b=$(this),c=b.data("title"),d=b.attr("href");c&&(a.preventDefault(),window.open(d),RS3.tracking.pushTrackEvent("external_link","click",c))})},internal:function(){// Function to track internal clicks - class .int and title attr $("body").on("click",".int",function(a){var b=$(this);RS3.tracking.pushTrackEvent("internal_link","click",b.attr("title"))})},addCToLink:function(a){function b(a){var b,c,d=a.split("/");for(var e in d)c=d[e],c.split("c=").length>1&&(b=c);return b}function c(a){var b,c=a.split("/"),d=[];for(var e in c)b=c[e],b.split("c=").length<=1&&d.push(b);return d.join("/")}var d=b(pageLocation);return a=c(a),a.split(".com").join(".com/"+d)},responsiveMenu:function(){$("#main-nav").on("click",function(){$(this).toggleClass("main-nav--show")}),$(".main-nav__expander").on("click",function(a){a.stopPropagation(),a.preventDefault(),$(this).parent().parent().toggleClass("main-nav__item--expand")})},playerCount:function(){var a=$("#playerCount");if(a.length>0){ // Show the PlayerCount var b=parseInt(a.html().replace(",",""));(b<1||isNaN(b))&&RS3.global.pollPlayerCount(a)}},pollPlayerCount:function(a){$.ajax({url:baseURL+"/player_count.js?varname=iPlayerCount",dataType:"jsonp",success:function(b){b>0&&a.html(RS3.global.playerCountCommas(b))}})},playerCountCommas:function(a){a+="",x=a.split("."),x1=x[0],x2=x.length>1?"."+x[1]:"";for(var b=/(\d+)(\d{3})/;b.test(x1);)x1=x1.replace(b,"$1,$2");return x1+x2},lightbox:{wrap:'
',onUpdate:function(){ // .greyFrame class for IE has a 5px margin and will be 10px higher var a=$(".fancybox-inner.greyFrame");$("html").hasClass("no-borderimage")&&a.find("iframe").width(a.width()-10).height(a.height()-10)},init:function(){"use strict";var a=$(".lightbox");a.fancybox({openEffect:"none",closeEffect:"none",hideOnContentClick:!0,tpl:{wrap:RS3.global.lightbox.wrap},scrolling:!1,helpers:{media:{}},onUpdate:RS3.global.lightbox.onUpdate})}},tabbedElement:function(){"use strict";var a=$("#tabs"),b=$("#tabNav"),c=window.location.hash;"#videos"===c?(a.find(".tabbedContent").hide().end().find(c).show(),b.find('a[href="'+c+'"]').parent().addClass("active")):(a.find(".tabbedContent:not(:first)").hide(),b.find("li:first").addClass("active")),b.on("click","a",function(c){c.preventDefault();var d=$(this),e=d.attr("href");b.find(".active").removeClass("active"),d.parent().addClass("active"),$(".lt-ie9").length?a.find(".tabbedContent").hide().end().find(e).show():a.find(".tabbedContent").hide().end().find(e).fadeIn(250)})},headerDescriptionToggle:function(){$(".descTrigger").length&&$(".hiScoreDescription").length&&$(".descTrigger").on("click",function(a){a.preventDefault();var b=$(this);b.toggleClass("descTriggerOpen"),b.next(".hiScoreDescription").slideToggle(500,function(){ //if inside a fancybox then position the fancybox $(".fancybox-wrap").is(":visible")&&b.hasClass("descTriggerOpen")&&$.fancybox.update()})})},categoryDropDown:{fallbackImages:function(a){switch(a){case 1:fallbackImage=RS3.imgRoot+"/news/fallback-gameupdates.jpg?1";break;case 2:fallbackImage=RS3.imgRoot+"/news/fallback-website.jpg?1";break;case 3:fallbackImage=RS3.imgRoot+"/news/fallback-support.jpg?1";break;case 4:fallbackImage=RS3.imgRoot+"/news/fallback-technical.jpg?1";break;case 5:fallbackImage=RS3.imgRoot+"/news/fallback-community.jpg?1";break;case 6:fallbackImage=RS3.imgRoot+"/news/fallback-behindthescenes.jpg?1";break;case 8:fallbackImage=RS3.imgRoot+"/news/fallback-support.jpg?1";break;case 9:fallbackImage=RS3.imgRoot+"/news/fallback-shop.jpg?1";break;case 12:fallbackImage=RS3.imgRoot+"/news/fallback-futureupdates.jpg";break;case 13:fallbackImage=RS3.imgRoot+"/news/fallback-solomons.jpg";break;case 14:fallbackImage=RS3.imgRoot+"/news/fallback-treasurehunter.jpg";break;case 15:fallbackImage=RS3.imgRoot+"/news/fallback-yourfeedback.jpg";break;case 16:fallbackImage=RS3.imgRoot+"/news/fallback-events.jpg";break;default:fallbackImage=RS3.imgRoot+"/news/fallback-unspecified.jpg?1"}return fallbackImage},getNewsCats:function(){"use strict";var a=$(".catList");a.on("click","a",function(a){a.preventDefault(); // declare all variables var b,c,d,e=$(this),f=e.data("type"),g=e.data("id");""+currentLangId; // Abort if current category is already active of catId is not a number if(e.hasClass("active")||isNaN(g))return!1; // Set variables ready for feed depending on news or video tab "news"===f?(b=$("#newsSection"),c="jsonNews_",d=$("#catListNews")):(b=$("#videoSection"),c="jsonVideo_",d=$("#catListVideo")), // if archive page remove active cat class $("#catListArchive").find(".active").removeClass("active"),d.find(".active").removeClass("active"),e.addClass("active"),b.hide().empty(); //get correct url for json feed var h="news"===f?"latestNews":"latestNewsWithVideoContent"; //ajax functionality to get news items by category id $.ajax({url:ajaxNewsUrl+"/"+h+".json?cat="+g,dataType:"jsonp",success:function(a){RS3.global.categoryDropDown.parseNewsCats(a,f,b)},error:function(){var a=[];RS3.global.categoryDropDown.parseNewsCats(a,f)}})})},parseNewsCats:function(a,b,c,d){var e,f=0,g=7,h=[],i=!0,j=a.categoryId,k=RS3.newsCategories();switch(archiveOrNewsPage){case"archive":e="jptg=ia&jptv=news_archive";break;case"news":e="jptg=ia&jptv=news_list";break;case"home":e="jptg=ia&jptv=community_news"}null!==a&&a.newsItems.length&&($.each(a.newsItems,function(a,c){ // Set fallback image and category var d=0===j?c.categoryId:j,i=k[d]; // If video, only show largeMediaType = 3 // If video, only show largeMediaType = 3 // Break the loop if more than 5 items // Add one to found //create a new article and append to news items return RS3.global.categoryDropDown.fallbackImages(d),"video"===b&&3!=c.largeMediaType||!(f>g)&&(f+=1,h.push("
"),h.push('
'),h.push(''+c.title+'Teaser Image'),h.push("
"),h.push('
'),h.push('

'+c.title+"

"),h.push('
'),h.push(i),h.push("
"),h.push("
"),"home"!=archiveOrNewsPage&&h.push("

"+c.summary+' Read More

'),h.push("
"),void h.push("
"))}), //if found, dont show error message 0!=f&&(i=!1)),i&& //no news items found h.push('

Sorry, there are no articles for this category. Please try another category.

'), // Fade in results c.html(h.join("")),c.fadeIn(500)}},facebook:{ // loadFacebookAPI // This function loads in the Facebook API, and then initialises our RS app. // params: initCallback (function to be called after the FB app has been initted) loadFacebookAPI:function(a){"use strict";"undefined"==typeof FB&&(// check FB is not loaded yet 0===$("#fb-root").length&&$("body").prepend('
'),window.fbAsyncInit=function(){FB.init({appId:PAGEGLOBALS.FB.appId,status:!1,cookie:!0,xfbml:!0,version:"v2.2",oauth:!0}), // not sure if that's still needed.... FB.UIServer.setLoadedNode = function (a,b) { FB.UIServer._loadedNodes[a.id] = b; } // hack for a IE mistake in FB api a&&a()},function(a,b){var c,d="facebook-jssdk",e=a.getElementsByTagName("script")[0];a.getElementById(d)||(c=a.createElement("script"),c.id=d,c.async=!0,c.src="//connect.facebook.net/en_US/sdk"+(b?"/debug":"")+".js",e.parentNode.insertBefore(c,e))}(document,/*debug*/!1))}, // fbLoginRedirect // This function sends a JSON request to checkLogin in sn-integration to find out about the // person's account status. It then handles the login action accordingly. // I'd recommend not calling this directly. Use the function fbButtonClickHandler instead. // params: destStr: determines where the user goes after login // _target: used to determine which window to load the page in after login, leave blank for _self // or enter _parent or _top fbLoginRedirect:function(a,b){"use strict";var c=PAGEGLOBALS.FB.fbURL,d=PAGEGLOBALS.FB.checkLoginURL,e=PAGEGLOBALS.FB.loginURL,f=500;return $.getJSON(d+"?json=?",{tps:0,token:FB.getAuthResponse().accessToken,expiry:FB.getAuthResponse().expiresIn,signed:FB.getAuthResponse().signedRequest},function(d){var g;if(d.sso<0)//TO DO: pretty error alerts // Error occurred return alert("There was a problem verifying your login. Please try again."),!1;if(d.sso.length>1){ // Found an account to login as if(!(d.sna>-1)) // Log straight in return"undefined"==typeof b&&(b=""),g=e+"?key="+d.sso+"?"+a,"_parent"===b?window.parent.location=g:"_top"===b?window.top.location=g:"_blank"===b?window.open(g,"_blank"):window.location=g,!0; // We need to pester them for login details g=c+"?key="+d.sso+"&tps=0&"+a,"_parent"===b&&(window.parent.location=g),f=620}else // No account found. Create a new one g=c+"?"+a,"_parent"===b&&(window.parent.location=g);"_parent"!==b&&$.fancybox({href:g,type:"iframe",width:462,height:f,autoSize:!1,wrapCSS:"loginFancyBoxFB"})}),!1}, // fbButtonClickHandler // Attach this function to an tag to trigger a Facebook login // params: destination: a link to redirect to after login. Default is the same page. // implicit param: the attribute target you give your tag will determine if // the window after login opens up in _self, _top or _parent fbButtonClickHandler:function(a,b){"use strict";var c=a||PAGEGLOBALS.FB.queryString;"undefined"==typeof FB||"function"!=typeof FB.getAuthResponse?alert("Couldn't contact Facebook. Please try again later."):null==FB.getAuthResponse()?FB.login(function(a){a.authResponse? // Logged in RS3.global.facebook.fbLoginRedirect(c,b): // No session notification alert("Authentication with Facebook failed. Please try again.")},{scope:PAGEGLOBALS.FB.scope}): // Already has all settings, no login required RS3.global.facebook.fbLoginRedirect(c,b)}, // setUpEvents // this is fired by default after page and FB API load // you might need to call it again if you add .facebookLogin elements dynamically // and need to attach click handlers for them setUpEvents:function(){"use strict";$(".facebookLogin").click(function(a){a.preventDefault();var b=$(this),c=b.data("redirecturl"),d=b.attr("target");RS3.global.facebook.fbButtonClickHandler(c,d)}),$("#weblogin .fbLogout").length&&FB.getLoginStatus(function(a){a.authResponse&&(document.getElementById("socialnetworks").style.display="block",FB.XFBML.parse(document.getElementById("fb_logout")),document.getElementById("fb_logout").style.display="block")}),$("#weblogin .googleLogout").length&&(document.getElementById("socialnetworks").style.display="block",document.getElementById("google_logout").style.display="block")}}, // // Consists of 2 elements: // -- a slider with thumbnails ('.carouselLightboxNav') // -- a lightbox with full size slider ('.flexsliderLightbox') // Give your thumbnail slider the class .carouselLightboxNav, the slides inside it need // to have an anchor tag with a class .galleryLightBox and a rel that signifies the gallery (e.g. 'gallery1') // The anchor tag should also have the href to the image you want to display // Usage example: splash.ws galleryLightBox:function(){function a(){var a,b,c,d;return a=i.getTime(),b=new Date,c=b.getTime(),d=c-a,i=b,d} // helper function to get the available width/height of popup function b(){var a={};return a.height=RS3.global.viewportDimensions().cHeight-100,a.width=RS3.global.viewportDimensions().cWidth-100,a} // gather all images into gallery arrays function c(){g.each(function(){var a=$(this),b=a.attr("rel"),c=a.attr("href");galleries[b]?galleries[b].img.push(c):(galleries[b]=[],galleries[b].img=[],galleries[b].width=0,galleries[b].height=0,galleries[b].img.push(c))})} // preload images to measure their width and height function d(){for(gallery in galleries){var a=galleries[gallery].img,b=new Image;b.src=a[0],b.onload=function(){galleries[gallery].width
"}function f(a,b){var c;for(c=0;cb().width||a.height()>b().height?h.find(".galleryLightBox").addClass("inactive"):h.find(".galleryLightBox").removeClass("inactive")}), // make image galleries before running the flexslider which adds additional slides c(),d(),h.flexslider({animation:"fade",slideshow:!1,slideshowSpeed:7e3,controlNav:!1,before:function(b){var c=b.animatingTo,d=b.slides.eq(c).find("img"),e=$(".flex-active-slide"),f=e.find("a"),g=f.find("img").attr("src");d.attr("src")!=d.data("src")&&d.attr("src",d.data("src")),RS3.tracking.pushTrackEvent("media_slider_"+$("body").attr("id"),"unload",g,a())},after:function(a){var b=$(".flex-active-slide"),c=b.find("a"),d=c.find("img").attr("src"),e=b.index("ul.slides>li");RS3.tracking.pushTrackEvent("media_slider_"+$("body").attr("id"),"load",d,e)},start:function(a){$(".flex-viewport .slides a").click(function(){var a=$(".flex-active-slide"),b=a.find("a"),c=b.find("img").attr("src"),d=a.index("ul.slides>li");RS3.tracking.pushTrackEvent("media_slider_"+$("body").attr("id"),"click",c,d)})}}),h.on("click",".galleryLightBox",function(b){b.preventDefault();var c=$(this),d=c.attr("rel"),g=c.attr("href"),h=f(g,galleries[d].img); // screen too small, don't show popup c.hasClass("inactive")||( // append the gallery to the page $body.append(e(galleries[d],d)), // make the gallery a slider, starting at index $("#"+d).flexslider({animation:"fade",slideshow:!1,controlNav:!1,slideshowSpeed:7e3,startAt:h,before:function(b){var c=$(".flex-active-slide"),d=c.find("a"),e=d.find("img").attr("src");RS3.tracking.pushTrackEvent("media_slider_"+$("body").attr("id"),"unload",e,a())},after:function(){var a=$(".flex-active-slide"),b=a.find("a"),c=b.find("img").attr("src"),d=a.index("ul.slides>li");RS3.tracking.pushTrackEvent("media_slider_"+$("body").attr("id"),"load",c,d)},start:function(){$(".flex-viewport .slides a").click(function(){var a=$(".flex-active-slide"),b=a.find("a"),c=b.find("img").attr("src"),d=a.index("ul.slides>li");RS3.tracking.pushTrackEvent("media_slider_"+$("body").attr("id"),"click",c,d)})}}), // trigger the fancybox $.fancybox.open($("#"+d),{openEffect:"none",closeEffect:"none",wrapCSS:"galleryWrap",afterClose:function(){$("#"+d).remove()},tpl:{wrap:RS3.global.lightbox.wrap},scrolling:!1,fitToView:!1,onUpdate:RS3.global.lightbox.onUpdate}))}))},gfLightbox:function(){var a=$(".greyFrameLightbox");a.fancybox({openEffect:"none",closeEffect:"none",tpl:{wrap:'
'},scrolling:!1,helpers:{media:{}},onUpdate:function(){ // .greyFrame class for IE has a 5px margin and will be 10px higher var a=$(".fancybox-inner.greyFrame");$("html").hasClass("no-borderimage")&&a.find("iframe").width(a.width()-10).height(a.height()-10)}})}, // //countdown timer takes 2 arguments: // - countdownWrapper: the dom element containing the countdown timer, and // a data value of the end time in milliseconds // - animationRequired: pass in 'true' if you want an animation. // You can supply an animation from one number to the next // by adding a css style for .oldNumber.animate countdownTimer:function(a,b){"use strict";var c,d,e,f,g,h,i,j,k,l,m;l=(new Date).getTime(),c=1e3,d=60*c,e=60*d,f=24*e,m=a.data("endmillis"),h={days100:{oldNumber:0,newNumber:0},days10:{oldNumber:0,newNumber:0},days0:{oldNumber:0,newNumber:0},hours10:{oldNumber:0,newNumber:0},hours0:{oldNumber:0,newNumber:0},minutes10:{oldNumber:0,newNumber:0},minutes0:{oldNumber:0,newNumber:0},seconds10:{oldNumber:0,newNumber:0},seconds0:{oldNumber:0,newNumber:0}},j={days100:a.find(".day100 span.newNumber"),days10:a.find(".day10 span.newNumber"),days0:a.find(".day0 span.newNumber"),hours10:a.find(".hour10 span.newNumber"),hours0:a.find(".hour0 span.newNumber"),minutes10:a.find(".minutes10 span.newNumber"),minutes0:a.find(".minutes0 span.newNumber"),seconds10:a.find(".seconds10 span.newNumber"),seconds0:a.find(".seconds0 span.newNumber")},i={days100:a.find(".day100 span.oldNumber"),days10:a.find(".day10 span.oldNumber"),days0:a.find(".day0 span.oldNumber"),hours10:a.find(".hour10 span.oldNumber"),hours0:a.find(".hour0 span.oldNumber"),minutes10:a.find(".minutes10 span.oldNumber"),minutes0:a.find(".minutes0 span.oldNumber"),seconds10:a.find(".seconds10 span.oldNumber"),seconds0:a.find(".seconds0 span.oldNumber")};var n=function(){var a,b,i,j,k;l=(new Date).getTime(),g=parseInt(m)-l,a=Math.floor(g/f),k=g-a*f,b=Math.floor(k/e),k-=b*e,i=Math.floor(k/d),k-=i*d,j=Math.floor(k/c),$.each(h,function(){this.oldNumber=this.newNumber}),h.days100.newNumber=Math.floor(a/100),h.days10.newNumber=Math.floor(a%100/10),h.days0.newNumber=a%10,h.hours10.newNumber=Math.floor(b/10),h.hours0.newNumber=b%10,h.minutes10.newNumber=Math.floor(i/10),h.minutes0.newNumber=i%10,h.seconds10.newNumber=Math.floor(j/10),h.seconds0.newNumber=j%10},o=function(a,b,c){var d;b.oldNumber!==b.newNumber&&(p(i[a],b.oldNumber,"oldNumber"),i[a].show(),p(j[a],b.newNumber,"newNumber"), // animation on number change, apply to timeUnitsOldDom[elem] c?(d=function(){i[a].hide().css({opacity:1}).removeClass("animate")},i[a].animate({opacity:0},800,d).addClass("animate")):i[a].hide(),j[a].show())},p=function(a,b,c){a.removeClass().addClass(c+" num"+b)},q=function(a){return g<0?void clearInterval(k):void $.each(h,function(b){o(b,h[b],a)})},r=function(a){n(),q(a)};r(!1),g>0&&(a.show().animate({opacity:"1"}),k=setInterval(function(){r(b)},1e3))},tooltip:function(){$(".tooltipLink").on("mouseenter",function(){var a=$(this),b=a.data("target"),c=$("#"+b);c.show()}).on("mouseleave",function(){var a=$(this),b=a.data("target"),c=$("#"+b);c.hide()}).on("click",function(a){a.preventDefault()}).on("mousemove",function(a){var b=$(this),c=b.data("target"),d=$("#"+c),e=b.parents(".tooltipOuter").offset();d.css({top:a.pageY-e.top+10,left:a.pageX-e.left+20})})},detailsElement:function(){var a=$("summary");a.children().on("click",function(a){a.stopPropagation()}),a.on("click",function(){$(this).parent().toggleClass("details--show")})},init:function(){"use strict";RS3.global.external(),// Open external links in new window (.ext & title) RS3.global.internal(),// Track internal links with GA (.int & title) Determine and save OS RS3.global.playerCount(),// Player count AJAX // Menu delay functionality RS3.global.lightbox.init(),// Lightbox functionality RS3.global.tabbedElement(),// Tabbed element RS3.global.responsiveMenu(),RS3.global.headerDescriptionToggle(),// Show / hide content RS3.global.categoryDropDown.getNewsCats(),// News cat AJAX RS3.global.galleryLightBox(),// Extended lightbox: gallery lightbox with slider RS3.global.gfLightbox(),// Extended lightbox: grey frame around it RS3.global.tooltip()}},RS3.splashpage={tracking:function(){"use strict";$("#continue").on("click",function(){// Continue to main site click, GA and inhouse RS3.tracking.pushTrackEvent("mainsite_continue_splash","click",pageLocation)}),$("#trailerWatch").on("click",function(){// Play video click, GA only RS3.tracking.pushTrackEvent("video_splash","click",pageLocation)})},init:function(){"use strict";RS3.splashpage.tracking()}},RS3.tracking={trackingPixel:function(a,b,c,d){// our own tracking pixels, not Google's "use strict";var e=baseURL+"/img/track/2013_";d&&(e=baseURL+"/img/track/track.gif?jptg=rswf2&jptv=0-"),null!=a&&a.preventDefault(); //Create pixel at defined src var f=new Image;return f.src=e+b,c&&(window.location=c),!1},pushTrackEvent:function(a,b,c,d){// optLabel + optValue are optional parameters "use strict";a&&b&&// fail silently if these required parameters are missing dataLayer.push({event:"GAEvent",eventCategory:a,eventAction:b,eventLabel:c,eventInteraction:d})},init:function(){$(".userBarContent .play").on("click",function(){// header play now button var a=0;loggedIn!==-1&&(a=1),RS3.tracking.pushTrackEvent("play_button_topnav","click",pageLocation,a)}),$("#newAccount").on("click",function(){// header create account link RS3.tracking.pushTrackEvent("account_create","click",pageLocation)}),$(".language div ul li").on("click",function(){// footer language selector var a,b;a=$(this).attr("class"),"en"===a?b=0:"de"===a?b=1:"fr"===a?b=2:"pt"===a?b=3:"es"===a&&(b=6),RS3.tracking.pushTrackEvent("language_selector","click",a,b)})}},RS3.homepage={carousel:function(){"use strict";var a=$("#carousel");new Date;a.find("li").length>1&&a.flexslider({animation:"fade",slideshow:!0,slideshowSpeed:7e3,before:function(a){var b=a.animatingTo,c=a.slides.eq(b).find("img"),d=$(".flex-active-slide");d.find("a");c.attr("src")!=c.data("src")&&c.attr("src",c.data("src"))},start:function(a){$(".flex-viewport .slides a").click(function(){var a=$(".flex-active-slide"),b=a.find("a"),c=b.find("img").attr("src"),d=a.index("#carousel ul.slides>li");RS3.tracking.pushTrackEvent("community_banner","click",c,d)})}})},promos:{init:function(){$("#promos").on("click",".selection li h3 a",function(a){var b=$(this),c=b.text(),d=b.index(".selection li h3 a")+1;RS3.tracking.pushTrackEvent("community_promo","click",c,d)})}},poll:function(){"use strict";var a=[],b=$("ul#pollResults"),c=$("ul#pollResults").find("li.pollResult"); //remove class real on poll results c.removeClass("real"), //hide all key elements c.find("div").hide(), //loop through each result and add to array the width and indexupda c.each(function(b,c){var d=$(c),e=d.find("div.voteBar"),f=e.width();a.push([b,f])}), //now sort array with highest width first a.sort(function(a,b){return b[1]-a[1]}), //now loop through widths, clone the item, add class to new $.each(a,function(a,c){var d=b.find("li.pollResult:eq("+c[0]+")"),e=d.clone();e.addClass("real").appendTo("ul#pollResults")}), //remove all old items c.not(".real").remove(); //recache roll results var c=$("ul#pollResults").find("li.pollResult"); //now loop through new sets up li's in correct order c.each(function(a,b){var c=$(b),d=c.find("div.voteText"),e=c.find("div.voteBarOuter"),f=e.find("div.voteBar"),g=f.width(),h=1e3;f.width(0), //now fadeIn and animate elements d.fadeIn(1e3,function(){e.show(),f.show().animate({width:g+"px"},h)})})},playNow:function(){ //Tracks play now buttons (moved from gameOptions.js) $("#play").on("click",function(a){RS3.tracking.pushTrackEvent("home_page_header_play_button_clicked","click",pageLocation),RS3.tracking.trackingPixel(a,""+RS3.TRACKING_PLAY_BUTTON_CLICKED,this.href,!0)})},accountsCreated:function(){RS3.homepage.accountsCreatedAjax(),setInterval(function(){RS3.homepage.accountsCreatedAjax()},3e4)},accountsCreatedAjax:function(){$.ajax({url:ajaxAccountsCreatedUrl+"/rsusertotal.ws",dataType:"jsonp",timeout:3e3}).done(function(a){"undefined"!=typeof a.accountsformatted&&$("#numberAccounts").html(a.accountsformatted)})},lazyLoadVideos:function(a){$("#videoLink").on("click",function(a){$("#videos figure img").each(function(){$(this).attr("src",$(this).data("original"))}),$(this).unbind("click")})},init:function(){"use strict";/*var videoBannerFallback = $('#banner__video-fallback'); if((typeof(Modernizr) == 'undefined' || !Modernizr.videoautoplay) && videoBannerFallback.length > 0){//If we cannot find Modernizr or we cannot autoplay videos $('#banner__video-fallback').attr('src',bannerFallbackUrl); }*/ RS3.tracking.trackingPixel(null,RS3.TRACKING_HOME_PAGE_LOADED,null,!0),RS3.homepage.carousel(),// Carousel RS3.homepage.promos.init(),// Promo boxes user selection RS3.homepage.playNow(),// Play now button tracking RS3.homepage.accountsCreated(),// Account creation counter $("#pollResults").length&&RS3.homepage.poll(),RS3.homepage.lazyLoadVideos()}},RS3.news={moreNews:function(){var a,b,c=$("#moreNews,#moreVideos"),d="";c.on("click","a",function(c){c.preventDefault(), //determines if you're exploring the archive' $(this).parents("#moreNews").hasClass("moreArchive")&&(a=!0);var e=$(this),f=e.parents(".btnWrap").attr("id"),g=this.href,h=g.substr(g.indexOf("&page=")+6),i=parseInt(h)+1,j=g.substr(0,g.length-h.length)+i,k="moreNews"===f?"#newsSection":"#videoSection";$.ajax({url:g,success:function(c){var f=$.parseHTML(c),g=$(f).find(k+" article"),h=$(f).find(k).html();h==d?e.parents(".btnWrap").hide():($(k).append(g),d=f,a||4!==i?e.attr("href",j):(e.attr("href",baseURL+"/archive"),e.find("span").text("Visit Archive"),e.parents(".btnWrap").removeClass("showMore").unbind("click")),d=h, //needs to trigger post update to count new items fullTotal&&(b=$("#newsSection").children("article").length,b>=fullTotal&&e.parents(".btnWrap").hide()))},error:function(){alert("Sorry - there has been an error processing this request. Please try again.")}})})},archiveButton:function(){var a=$("#archiveButton"),b=$("#archiveSelect");a.on("click",function(c){c.preventDefault(),b.stop().slideToggle(250,function(){var b=$(this);a.toggleClass("expand",b.is(":visible"))})})},archiveFilter:function(){$(".archiveSelectSubmit").slideDown();$(".months a").on("click",function(a){a.preventDefault();var b=$(this);$(".months li").removeClass("active"),b.parent().addClass("active"),$("#month").val(b.attr("data-month"))}),$(".years a").on("click",function(a){a.preventDefault();var b=$(this);$(".years li").removeClass("active"),b.parent().addClass("active"),$("#year").val(b.attr("data-year"))})},init:function(){RS3.news.moreNews(),// Load more news via AJAX RS3.news.archiveButton(),// Button to show and hide archive RS3.news.archiveFilter()}},RS3.mediavideos={youtube:function(){if($("#videoPanelArea").length){var a=$("#videoPanelArea"),b="PLMjuVhi1Lg6f-Zyo6ZZPuU0deaAGCy_G2",c="";switch(a.html("Loading videos"),currentLangId){case 1:c="&cc_lang_pref=de&cc_load_policy=1";break;case 2:c="&cc_lang_pref=fr&cc_load_policy=1";break;case 3:c="&cc_lang_pref=pt",b="PL7EF50iQcMbLcwAJpbedalcTN4NvpwBm5"}var d=a.data("value"),e="http://www.youtube.com/embed/",f="
",g="Video";$.ajax({type:"GET",url:"http://gdata.youtube.com/feeds/api/playlists/"+b+"?v=2&alt=json&orderby=published&max-results="+d,cache:!1,dataType:"jsonp",success:function(b){var d="";$.each(b.feed.entry,function(a,b){var h=(b.title.$t,b.link[1].href),i=h.split("/"),j=i[i.length-2],k=e+j+"?autoplay=1"+c,l="http://img.youtube.com/vi/"+j+"/hqdefault.jpg";d+=f+""+g+"Video
"}),a.html(d),Shadowbox.init({continuous:!0,counterType:"skip",overlayColor:"#000000",overlayOpacity:.8,players:["img","iframe"]})}})}}},RS3.membersBenefits={scrollTo:function(){"use strict"; // Smooth Scroll to All Benefits $("#allBenefits").on("click","a",function(a){a.preventDefault();var b=$(this);$("html, body").stop().animate({scrollTop:$(b.attr("href")).offset().top},500)})},hexPanel:function(){ // hexPanel click to reveal hexContent panel $(".hexPanel").on("click",function(a){var b=$(this),c=b.parent();c.find(".hexContent").fadeIn(200),b.parents(".hexBoxes").find(".deco").fadeOut(180),RS3.tracking.trackingPixel(a,hexPanelTrackingPixel+"/"+c.attr("class")+"/1"),RS3.tracking.pushTrackEvent("members_benefits","hexpanel_click",b.find("p").text(),b.index(".hexPanel")+1)}),$(".hexContent .close").on("click",function(){var a=$(this),b=a.parent();b.fadeOut(200),a.parents(".hexBoxes").find(".deco").fadeIn(220),RS3.tracking.pushTrackEvent("members_benefits","hexcontent_close",b.find("h3").text(),b.index(".hexContent")+1)})},buyNowButtons:function(){ //Setup tracking for buy now buttons $(".buyNowPackage a,.btnWrap a").on("click",function(){var a=$(this),b=a.attr("href"),c=0,// Non-specific, click through to billing with no package preselected d="bottom",e="rs1m";b.indexOf("rs1w")>0&&(c=1,// Week d="1 Week",e="rs1w"),b.indexOf("rs1m")>0&&(c=1,// Month d="1 Month"),b.indexOf("rs3m")>0&&(c=3,// Months d="3 Months",e="rs3m"),b.indexOf("rs4m")>0&&(c=4,// Months d="4 Months",e="rs4m"),b.indexOf("rs4m")>0&&(c=4,// Month d="4 Month",e="rs4m"),b.indexOf("rs6m")>0&&(c=6,// Months d="6 Months",e="rs6m"),b.indexOf("rs12m")>0?(c=12,// Months d="12 Months",e="rs12m"):b.indexOf("packagegroupredirect.ws")>0&&RS3.membersBenefits.trackingPixel(null,null,1,e),RS3.tracking.pushTrackEvent("members_benefits","buy_now",d,c)}), //Normal Login button (non by now) - must reset hidden form values to not redirected to billing $("#membersBenefits #inline").on("click",function(){var a=$("#loginPanel input[name=dest]").val();a.indexOf("members_benefits")==-1&&($("#loginPanel input[name=mod]").attr("value","www"),$("#loginPanel input[name=ssl]").attr("value",0),$("#loginPanel input[name=dest]").attr("value","members_benefits"))}), // Tracking for video watch $("#playVideoLink").on("click",function(){// Play video click, GA only RS3.tracking.pushTrackEvent("video_members_benefits","click",pageLocation)})},updateAffiliateLinks:function(){if($(".alternativeLogin").length){var a=$(".alternativeLogin li").find("a:not(.facebookLogin)");a.each(function(a){var b=$(this),c=b.attr("href"),d=c.split("?")[0],e="?mod="+$("#loginPanel input[name=mod]").val()+"&ssl="+$("#loginPanel input[name=ssl]").val()+"&dest="+encodeURIComponent($("#loginPanel input[name=dest]").val()),f=d+e;b.attr("href",f)})}}, //Track the actions of various buttons on Members Benefits page tracking:function(){"use strict"; //onLoad tracking RS3.membersBenefits.trackingPixel(null,null,0,""), //Track all buttons that do not already have js functions $("ul#membersBenefitsHex").on("click",".hexPanel",function(){// Clicks a hex button var a=$(this).data("tracking");RS3.membersBenefits.trackingPixel(null,null,a,"1:expand")}),$("ul#membersBenefitsHex").on("click",".close",function(){// Clicks a hex close button var a=$(this).parent().siblings(".hexPanel").data("tracking");RS3.membersBenefits.trackingPixel(null,null,a,"2:close")}),$("ul#membersBenefitsHex").on("click",".buyNow",function(){// Clicks a hex buyNow button var a=$(this).parent().siblings(".hexPanel").data("tracking");RS3.membersBenefits.trackingPixel(null,null,a,"3:click buy")}),$("#seeAllBenefits").on("click",function(){// Clicks see all benefits RS3.membersBenefits.trackingPixel(null,null,2,"")}),$("#buyNowBottom").on("click",function(){// Clicks bottom buy now button RS3.membersBenefits.trackingPixel(null,null,20,"")}),$("#facebooklogin").on("click",function(){// Clicks login form facebook login RS3.membersBenefits.trackingPixel(null,null,27,"")}),$("ul#footerSocialButtons li a").on("click",function(){// Clicks a social button var a=null;switch($(this).parent().attr("class")){case"rss":a=30;break;case"facebook":a=31;break;case"twitter":a=32;break;case"youtube":a=33;break;case"google":a=34;break;case"reddit":a=35}RS3.membersBenefits.trackingPixel(null,null,a,"")}),$("#footerLikeButton").on("click",function(a){// footer like button a.stopPropagation(),RS3.membersBenefits.trackingPixel(null,null,36,"")}),$("#footerTermsLink").on("click",function(){// footer terms link RS3.membersBenefits.trackingPixel(null,null,37,"")}),$("#footerPrivacyLink").on("click",function(){// footer privacy link RS3.membersBenefits.trackingPixel(null,null,38,"")}),$("#footerCookiesLink").on("click",function(){// footer cookie link RS3.membersBenefits.trackingPixel(null,null,39,"")}),$("#footerSelectLanguage").on("click","a",function(a){// Clicks select language RS3.membersBenefits.trackingPixel(a,$(this).attr("href"),40,"")})}, //Fire the pixel to the members benefits tracking url trackingPixel:function(a,b,c,d){// tracking pixels only for members benefits page "use strict";var e=baseURL+"/members_benefits?jptg=mbt&jptv="+c+"|"+d;return null!=a&&a.preventDefault(),$.ajax({url:e,dataType:"jsonp",timeout:3e3,complete:function(){b&&(window.location=b)}}),!1},init:function(){"use strict";RS3.membersBenefits.hexPanel(),// Set up what happens when you click on a hexPanel (one of the six picture buttons). RS3.membersBenefits.scrollTo(),// Set up smooth scroll for all benefits link. RS3.membersBenefits.buyNowButtons(),// Buy now buttons . RS3.membersBenefits.tracking()}},RS3.hiscores={init:function(){"use strict";RS3.hiscores.countdownTimer(),RS3.hiscores.compareFormToggle(),//toggle form on compare page RS3.hiscores.findMeToggle(),//toggle content on ranking pages RS3.hiscores.factionWidthBar(),//faction width bar RS3.hiscores.tempShowMoreIcon(),//temp show more icon RS3.hiscores.tempFilterShowMoreIcon(),//ajax page refresh on view all pages RS3.hiscores.tempDescriptionHover(),//temp description showing functionality RS3.hiscores.tempRankingSidebar(),//temp sidebar arrow click functionality RS3.hiscores.overviewPage.init()},countdownTimer:function(){var a=[];$(".countdownTimer").each(function(){var b=$(this);a.push(RS3.global.countdownTimer(b))})},compareFormToggle:function(){$(".changeCharacterLink").length&&$(".changeCharacterForm").length&&$("a.changeCharacterLink").on("click",function(a){//show form on click a.preventDefault(),$("a.changeCharacterLink").toggleClass("changeCharacterOpen"),$(".changeCharacterForm").slideToggle()})},findMeToggle:function(){$(".findMeContent").length&&$(".findMeLink").length&&$("a.findMeLink").on("click",function(a){//show form on click a.preventDefault(),$(this).toggleClass("findMeLinkOpen"),$(".findMeContent").slideToggle()})},factionWidthBar:function(){if($("#factionWidth").length){var a=$("#factionWidth"),b=a.data("width");setTimeout(function(){a.animate({width:b+"px"})},1e3)}},tempDescriptionHover:function(){ // attach event to parent as button is part of ajax loaded content $("#futureHiScoreSegment").on("mouseenter","a.descLinkStyle",function(a){var b=$(this),c=b.data("target"),d=$("#"+c);d.show()}).on("mousemove","a.descLinkStyle",function(a){var b=$(this),c=b.data("target"),d=$("#"+c),e=b.parents(".paraDesc").offset();d.css({top:a.pageY-e.top+10,left:a.pageX-e.left+20})}).on("mouseleave","a.descLinkStyle",function(a){var b=$(this),c=b.data("target"),d=$("#"+c);d.hide()}).on("click","a.descLinkStyle",function(a){a.preventDefault()})},tempFilterShowMoreIcon:function(){if($(".tempHSFilterShowMoreButton").length){var a=$("#ajaxLoadOuter"); // attach event to parent as button is part of ajax loaded content $("#futureHiScoreSegment,#pastHiScoreSegment").on("click",".tempHSFilterShowMoreButton a",function(b){b.preventDefault();var c=$(this),d=c.attr("href")+" #ajaxLoadInner",e=a.parent(".tempHSOverviewSegment");e.css("min-height",e.outerHeight()),//keep height of parent to avoid page movements a.fadeOut(250,function(){e.addClass("tempLoading"),//show loading icon on parent a.load(d,function(){e.removeClass("tempLoading"),//remove loading icon a.fadeIn(250),RS3.hiscores.tempDescriptionHover()})})})}},tempShowMoreIcon:function(){$(".tempHSExtraBoxContainer").length>0&&($(".tempHSShowMoreButton a span").html("Show More"),//AJM TODO: Check whatthis needs to be $(".tempHSOverDividerActive").addClass("tempHSOverDividerShort"),$(".tempHSShowMoreContainerActive").show(),$(".tempHSShowMoreButton a").on("click",function(a){var b=$(this),c=$(".tempHSShowMoreButton a").index(this),d=$(".tempHSExtraBoxContainer").get(c);b.parents(".activeShowMoreButton").length?$(d).data("shown")!==!0&&(a.preventDefault(),$(d).data("shown",!0),b.parents(".btnWrap").hide(),$(".tempHSOverDividerActive").removeClass("tempHSOverDividerShort"),$(d).slideDown()):$(d).data("shown")!==!0&&(a.preventDefault(),$(d).data("shown",!0),$(d).slideDown(),b.find("span").html("View All"))}))},tempRankingSidebar:function(){$("a.seasonalEventLink").on("click",function(a){a.preventDefault();var b=$(this),c=b.data("load"),d=$("#"+c),e=$(".seasonalEventShell:visible");e.fadeOut(250,function(){d.fadeIn(250)})})},overviewPage:{init:function(){RS3.hiscores.overviewPage.populateCarousel()},activateCarousel:function(){if($("#hsCarousel").length){var a=$("#hsCarousel");a.flexslider({animation:"fade",slideshow:!0,slideshowSpeed:7e3,controlNav:!1,start:function(a){var b=a.find(".slides .overviewSliderItem img");b.data("src")&&b.attr("src")!=b.data("src")&&b.attr("src",b.data("src"))}})}},populateCarousel:function(){if($("#hsCarousel").length){ // HISCORE AJAX REQUEST var a=[],b=$.getJSON(ajaxHiscoresUrl+"/ranking.json?table=0&category=0&size=3",function(b){a.push('RankCharacter Name'),$.each(b,function(b,c){var d=escape($.trim(c.name));if(loggedIn!=-1)var e=RS3.global.addCToLink(ajaxHiscoresUrl+"/compare?user1="+d);else var e=ajaxHiscoresUrl+"/compare?user1="+d;a.push(''+c.rank+""),a.push(''+c.name+"")}),a.push('Your RankLog In to find out'),a.push(""),$("#topHiscoreAjaxResponse").append(a.join("")),$("#topHiscoreOuter").show()}).fail(function(){$("#topHiscoreOuter").hide()}),c=[],d=$.getJSON(ajaxClanHiscoresUrl+"/clanRanking.json",function(a){c.push('RankClan Name'),$.each(a,function(a,b){var d=escape($.trim(b.clan_name));if(loggedIn!=-1)var e=RS3.global.addCToLink(ajaxClanHiscoresUrl+"/compare.ws?clanName="+d);else var e=ajaxClanHiscoresUrl+"/compare.ws?clanName="+d;c.push(''+b.rank+""),c.push(''+b.clan_name+"")}),c.push('Your RankLog in to find out'),c.push(""),$("#clanHiscoreAjaxResponse").append(c.join("")),$("#clanHiscoreOuter").show()}).fail(function(){$("#clanHiscoreOuter").hide()}); // Wait for the 2 ajax calls to finish then either get user rank or activate carousel $.when(b,d).then(function(){loggedIn!=-1?RS3.hiscores.overviewPage.getUserRank():RS3.hiscores.overviewPage.activateCarousel()}).fail(function(){RS3.hiscores.overviewPage.activateCarousel()})}},getUserRank:function(){var a=RS3.global.addCToLink(ajaxHiscoresUrl+"/userRanking.json");$("#hsRank").hide();var b=$.getJSON(a,function(a){if(""!=a.displayName&&0!=parseInt(a.rank)){if($("#hsRank").length){var b=[],c=escape($.trim(a.displayName));if(loggedIn!=-1)var d=RS3.global.addCToLink(ajaxHiscoresUrl+"/compare?user1="+c);else var d=ajaxHiscoresUrl+"/compare?user1="+c;b.push(''+a.userRank+""),b.push(''+a.displayName+""),$("#hsRank").html(b.join("")).removeClass("loginRow")}}else $("#hsRank").html('There is no rank to show')}).fail(function(){$("#hsRank").html('There is no rank to show')}).always(function(){$("#hsRank").show()});a=RS3.global.addCToLink(ajaxClanHiscoresUrl+"/userClanRanking.json"),$("#clanRank").hide();var c=$.getJSON(a,function(a){if(""!=a.displayName&&""!=a.clanName&&0!=parseInt(a.clanRank)){if($("#clanRank").length){var b=[],c=escape($.trim(a.clanName));if(loggedIn!=-1)var d=RS3.global.addCToLink(ajaxClanHiscoresUrl+"/compare.ws?clanName="+c);else var d=ajaxClanHiscoresUrl+"/compare.ws?clanName="+c;b.push(''+a.clanRank+""),b.push(''+a.clanName+""),$("#clanRank").html(b.join("")).removeClass("loginRow")}}else $("#clanRank").html('There is no rank to show')}).fail(function(){$("#clanRank").html('There is no rank to show')}).always(function(){$("#clanRank").show()}); // Wait for the 2 ajax calls to finish then activate carousel $.when(b,c).then(function(){RS3.hiscores.overviewPage.activateCarousel()}).fail(function(){RS3.hiscores.overviewPage.activateCarousel()})}}},RS3.hiscoreSummer2016={init:function(){RS3.hiscores.countdownTimer()}},RS3.assoc={dom:{optionWrapper:null,associationWrapper:null,showAssocTrigger:null,newMemberPrompt:null,errorMessage:null,associationForm:null,usernameField:null,passwordField:null,body:null},showAssoc:function(){RS3.assoc.dom.associationWrapper.show(),RS3.assoc.dom.optionWrapper.hide(),RS3.assoc.dom.usernameField.focus()},showOptions:function(){RS3.assoc.dom.associationWrapper.hide(),RS3.assoc.dom.optionWrapper.show()},showErrors:function(a){RS3.assoc.dom.errorMessage.text(a).show(),RS3.assoc.dom.usernameField.focus()},hideErrors:function(){RS3.assoc.dom.errorMessage.hide(),RS3.assoc.dom.newMemberPrompt.show()},checkForm:function(){return""==RS3.assoc.dom.usernameField.val()||""==RS3.assoc.dom.passwordField.val()?(RS3.assoc.showErrors(assocVar.errorMessages.alertUsername),!1):(RS3.assoc.dom.errorMessage.hide(),void RS3.assoc.dom.associationForm.submit())},init:function(){var a={body:$("body"),optionWrapper:$("#associationForm #associationOptions"),associationWrapper:$("#associationForm #associateAccount"),showAssocTrigger:$("#associationForm #syncUser .btn a"),newMemberPrompt:$("#associationForm #createNewAccount"),errorMessage:$("#associationForm #errorMessage"),associationForm:$("#associationForm"),promptMessage:$("#associationForm #associatePrompt"),usernameField:$("#associationForm #username"),passwordField:$("#associationForm #password"),assocSubmitTrigger:$("#associationForm #existingplayer")};RS3.assoc.dom=a,RS3.assoc.dom.showAssocTrigger.on("click",function(a){a.preventDefault(),RS3.assoc.showAssoc()}),RS3.assoc.dom.assocSubmitTrigger.on("click",function(a){a.preventDefault(),RS3.assoc.checkForm()}),assocVar.errorCode>0&&(RS3.assoc.showAssoc(),RS3.assoc.showErrors())}},RS3.legacy={init:function(){"use strict";RS3.global.external(),// Open external links in new window (.ext) RS3.global.playerCount(),// Player count AJAX RS3.global.lightbox.init(),// Lightbox functionality RS3.mediavideos.youtube(),RS3.global.headerDescriptionToggle()}},RS3.weblogin={init:function(){"use strict";$(".loginiframe").length&&(//if iframe class is present then redirect out of iframe window.parent.location.href=RS3.webloginUrl+"/loginform.ws?mod=www&ssl=1&dest=account_settings.ws"),$("#username").focus(),//focus on username input RS3.global.facebook.loadFacebookAPI(RS3.global.facebook.setUpEvents)}},RS3.affiliate={init:function(){"use strict";RS3.affiliate.axeso5Toolbar()},axeso5Toolbar:function(){$("#dvAxeso5Toolbar").length&&void 0!==$.fn.axeso5Toolbar&&$("#dvAxeso5Toolbar").axeso5Toolbar({uFC:"false",uL:"false",uLC:"false",uMT:"true"})}},RS3.bonds={carousel:function(){var a=$("#carousel");a.flexslider({animation:"fade",slideshow:!0,slideshowSpeed:2e4,controlNav:!1,before:function(a){var b=a.animatingTo,c=a.slides.eq(b).find("img"),d=$(".flex-active-slide"),e=d.find("a");e.find("img").attr("src");c.attr("src")!=c.data("src")&&c.attr("src",c.data("src"))}})},init:function(){RS3.bonds.carousel()}},RS3.combat={carousel:function(){var a=$("#carousel");a.flexslider({animation:"fade",slideshow:!0,slideshowSpeed:5e3,controlNav:!1})},init:function(){this.carousel()}},RS3.storeloc={init:function(){"use strict";RS3.storeloc.events()},events:function(){var a=$("#changeFlag"); // page load show correct section based on IP if(a.on("click","li",function(){var b=$(this),c=b.text(),d=b.data("flag");a.find("li").removeClass("selected"),b.addClass("selected"),RS3.storeloc.changeView(d,c)}),$("#currentCountry").length){var b=$("#currentCountry");b.addClass("selected");var c=b.text(),d=b.data("flag");RS3.storeloc.changeView(d,c)}else{var b=$(".defaultCountry");b.addClass("selected");var c=b.text(),d=b.data("flag");RS3.storeloc.changeView(d,c)}},changeView:function(a,b){var c=$("#changeFlag"); // change Text c.find("#countryName").text(b), // change Flag c.removeClass().addClass("countryFlag "+a), // show correct content $(".shopList").hide(),$("#"+a).fadeIn()}},RS3.goodwill={init:function(){RS3.goodwill.getHiScores(),$(".goodwill-tab").on("click",function(a){a.preventDefault();var b=$(this),c=b.attr("href");$(".tabbednav__tab--active").removeClass("tabbednav__tab--active"),$(".method--show").removeClass("method--show"),b.parent().addClass("tabbednav__tab--active"),$(c).addClass("method--show")}),$("#coins_thermometer").css("height",thermometerHeight)},getHiScores:function(){ //Get coin totals $.ajax({url:ajaxCoinURL,dataType:"jsonp",timeout:3e3,success:function(a){RS3.goodwill.enterPlayers(a,"coins")}}), //Get bond totals $.ajax({url:ajaxBondURL,dataType:"jsonp",timeout:3e3,success:function(a){RS3.goodwill.enterPlayers(a,"bonds")}})},enterPlayers:function(a,b){var c=a.length;c>=3&&(c=2);for(var d,e,f=0;f<=c;f++)d="#"+b+"_donator_"+f,e=$(d+" .top-donators__avatar"),e.attr("src",avatarBase+a[f].name+"/chat.png?h=75&w=75"),e.attr("title",a[f].name),e.attr("alt",a[f].name),$(d+" .top-donators__name").html(a[f].name),"coins"==b?$(d+" .top-donators__total").html(a[f].score_formatted+millionChar):$(d+" .top-donators__total").html(a[f].score_formatted)}},RS3.premierClub={getPrices:function(){ //Call the store and handle errors if needs be (vars declared on premier.ftl) $.ajax({url:billingStoreUrl,timeout:3e3,dataType:"json",success:function(a){for(var b,c,d,e,f=0;f0&&$(".premier-overview__more a").attr("href",d)}})},buyNowButtons:function(){ //Buy now tracking on packages $(".btnWrap a").on("click",function(a){var b=$(this),c=b.attr("href"),d="12",// Non-specific, click through to billing with no package preselected - Gold selected - all showing e="Default Gold";c.indexOf("rsprem15b")>0&&(d=3,// 3 Months e="Bronze"),c.indexOf("rsprem15s")>0&&(d=6,// Months e="Silver"),c.indexOf("rsprem15g")>0&&(d=12,// Months e="Gold"),RS3.tracking.pushTrackEvent("premier_club","buy_now",e,d)})}, //Fire the pixel to the premier club tracking url trackingPixel:function(){// tracking pixels only for premier club page for page load only "use strict";var a=baseURL+"/track/?jptg=pc&jptv=0";$.ajax({url:a,dataType:"jsonp",timeout:3e3,complete:function(){}})},init:function(){RS3.premierClub.getPrices(),RS3.premierClub.buyNowButtons(),RS3.premierClub.trackingPixel()}},RS3.companion={carousel:function(){var a=$("#carousel");a.flexslider({animation:"fade",slideshow:!1,slideshowSpeed:2e4,controlNav:!0,before:function(a){var b=a.animatingTo,c=a.slides.eq(b).find("img"),d=$(".flex-active-slide"),e=d.find("a");e.find("img").attr("src");c.attr("src")!=c.data("src")&&c.attr("src",c.data("src"))}})},preloadImages:function(){var a=new Image;a.src=RS3.imgRoot+"/companion_app/slide1.jpg";var b=new Image;b.src=RS3.imgRoot+"/companion_app/slide2.jpg";var c=new Image;c.src=RS3.imgRoot+"/companion_app/slide3.jpg";var d=new Image;d.src=RS3.imgRoot+"/companion_app/slide4.jpg"},events:function(){$("#appCode").on("click",function(){$(this).select()})},init:function(){RS3.companion.carousel(),// Carousel on Bonds page RS3.companion.preloadImages(),// Preload images used on carousel RS3.companion.events()}},RS3.topTrumps={init:function(){"use strict";var a=[];RS3.topTrumps.pageLoadTrack(),$(".trumpJSInfoSection").hide(),$(".trumpSelectionSection").show();for(var b=0;b<=5;b+=1)a[b]=new Image;a[0].src=RS3.imgRoot+"/top_trumps/trump_hero_kre.jpg",a[1].src=RS3.imgRoot+"/top_trumps/trump_hero_zil.jpg",a[2].src=RS3.imgRoot+"/top_trumps/trump_hero_kin.jpg",a[3].src=RS3.imgRoot+"/top_trumps/trump_hero_sar.jpg",a[4].src=RS3.imgRoot+"/top_trumps/trump_hero_evi.jpg",a[5].src=RS3.imgRoot+"/top_trumps/trump_all_cards.jpg",!window.location.hash.length||"#kreearra"!==window.location.hash&&"#commander_zilyana"!==window.location.hash&&"#king_black_dragon"!==window.location.hash&&"#saradomin_colossus"!==window.location.hash&&"#evil_chicken"!==window.location.hash&&"#runescape_top_trumps"!==window.location.hash||RS3.topTrumps.cardSelect($(window.location.hash+"_select")),$(".trumpBuyNow").on("click","a",function(a){var b=new Image;b.src="/track/?jptg=tt&jptv=1"}),$(".trumpSelectionCard").on("mouseenter",function(){$(this).hasClass("trumpSelectionCardCurrent")||$(this).stop().animate({marginTop:"40px"},"fast")}).on("mouseleave",function(){$(this).hasClass("trumpSelectionCardCurrent")||$(this).stop().animate({marginTop:"60px"},"fast")}).on("click",function(a){$(this).hasClass("trumpSelectionCardCurrent")||RS3.topTrumps.cardSelect($(this))}),RS3.topTrumps.showBonds()},cardSelect:function(a){"use strict";$(".trumpSelectionCardCurrent").stop().animate({marginTop:"60px"},"fast"),$(".trumpSelectionCardCurrent").removeClass("trumpSelectionCardCurrent"),$(".trumpCardDetailsCurrent").fadeOut("fast").removeClass("trumpCardDetailsCurrent"),a.stop().animate({marginTop:"0px"},"fast"),a.addClass("trumpSelectionCardCurrent"),$("#"+a.data("assoc")).fadeIn("fast").addClass("trumpCardDetailsCurrent")},pageLoadTrack:function(){"use strict";var a=baseURL+"/track/?jptg=tt&jptv=0";$.ajax({url:a,dataType:"jsonp",timeout:3e3,complete:function(){}})},showBonds:function(){var a=$("#showBonds"),b=$("#collapse");a.click(function(a){a.preventDefault(),b.stop().slideToggle()})}},RS3.gamePage={ //Overlay tracking for game page moved from gameOptions.js overlayTracking:function(){function a(a){var b,c=JSON.parse?JSON.parse(JSON.stringify(a.data)):{};return"TRACKING"===c.type&&void("opened"===c.text?(RS3.tracking.pushTrackEvent("game_html5_overlay_loaded","load",pageLocation),RS3.tracking.trackingPixel(null,TRACKING_GAME_HTML5_OVERLAY_LOADED,null,!0)):(b=parseInt(c.text.split("reply-")[1]),0===b?(RS3.tracking.pushTrackEvent("game_html5_overlay_accepted","accepted",pageLocation),RS3.tracking.trackingPixel(null,TRACKING_GAME_HTML5_OVERLAY_ACCEPTED,null,!0)):1===b||3===b?(RS3.tracking.pushTrackEvent("game_html5_overlay_declined","declined",pageLocation),RS3.tracking.trackingPixel(null,TRACKING_GAME_HTML5_OVERLAY_DECLINED,null,!0)):2===b&&(RS3.tracking.pushTrackEvent("game_html5_overlay_error","error",pageLocation),RS3.tracking.trackingPixel(null,TRACKING_GAME_HTML5_OVERLAY_ERROR,null,!0))))}window.addEventListener?window.addEventListener("message",a):window.attachEvent&&window.attachEvent("onmessage",a)},showDownloadPage:function(){ //Load a failed screen encase we cannot redirect the user RS3.gamePage.showFailedScreen(),window.location=downloadUrl},showThanksScreen:function(){$.removeCookie("JXRSLAUNCHING"),$("#launchingTitle,#gameUnsupportedPage").remove(),$("#thanksTitle").addClass("game-launch-page__title--show"),$("#gameLaunchingContent").addClass("game-launch-page__content--nospin")},showFailedScreen:function(){$.removeCookie("JXRSLAUNCHING"),$("#failedLaunchPage").addClass("game-failed-page--show"),$("#gameLaunchingPage,#game").remove()},failure:function(){ //Load a failed screen encase we cannot redirect the user RS3.gamePage.showFailedScreen(),window.location=gameFailedUrl},init:function(){ //We need to set a cookie so the script is not re-ran when we fire the protocol link if( //Listen for the not loading link $("#gameLaunchNotLoad").on("click",function(){RS3.gamePage.showFailedScreen()}),$.cookie("JXRSLAUNCHING")){var a=setTimeout(function(){$("#gameShouldLaunch").addClass("game-launch-page__should--show"),clearTimeout(a)},1e3);$.removeCookie("JXRSLAUNCHING");var b=setTimeout(function(){RS3.gamePage.showThanksScreen(),clearTimeout(b)},2e4)}else{ //Deploy global checks of browser and os var c=JXGLOBAL.user.browser(),d=(JXGLOBAL.user.os(),null); //Set the current browser string used for protocol checker c.isChrome?d="chrome":c.isFirefox?d="mozilla":c.isIE?d="msie":c.isEdge&&(d="edge"); //We now need to wait to ensure all our vars have been retreived var e=setTimeout(function(){if( //Set the launcing cookie to avoid duplicate runs $.cookie("JXRSLAUNCHING",!0),c.isEdge)RS3.gamePage.showDownloadPage();else{$("#gameShouldLaunch").addClass("game-launch-page__should--show"); //Check if the protocol works var a="rs-launch://www.runescape.com/l="+currentLangId+"/jav_config.ws";checkProtocol(a,d); //Wait for our check protocol to return var b=setTimeout(function(){ //If the protocol is not supported removing the launching cookie and show the install screen unless the client cookie is set if(protocolSupport[a])var c=setTimeout(function(){RS3.gamePage.showThanksScreen(),clearTimeout(c)},1e4);else $.removeCookie("JXRSLAUNCHING"), //Any value for this cookie will indicate that the client will have been installed with the protocol $.cookie("JXRSCLIENTVERSION")?RS3.gamePage.showThanksScreen():RS3.gamePage.showDownloadPage();clearTimeout(b)},2e3)}clearTimeout(e)},1e3)} //Perform tracking logic RS3.tracking.pushTrackEvent("game_java_client_loaded","load",pageLocation),RS3.tracking.trackingPixel(null,TRACKING_GAME_JAVA_CLIENT_LOADED,null,!0),RS3.gamePage.overlayTracking()}},RS3.gamePageConstants={javaVersion:"1.7.0_25+",hasJava:!1,hasJavaVersion:!1},RS3.gamePageBrowser={checkJs:function(){var a,b=document.getElementById("game");b&&(a=b.src.split(",j0,").join(",j1,"),b.src=a)},showGameScreen:function(){var a=$("#game");$.removeCookie("JXRSLAUNCHING"),$("#gameStateScreens,footer").remove(),a.addClass("java-frame--show"),a.attr("src",worldLink), //Check for js and append to the iframe RS3.gamePageBrowser.checkJs()},checkJava:function(){RS3.gamePageConstants.hasJava=deployJava.getJREs().length>=1,RS3.gamePageConstants.hasJavaVersion=deployJava.versionCheck(RS3.gamePageConstants.javaVersion)},init:function(){ //Listen for the not loading link $("#gameLaunchNotLoad").on("click",function(){RS3.gamePage.failure()}), //Run the java check RS3.gamePageBrowser.checkJava();var a=1e3,b=JXGLOBAL.user.browser();b.isIE&&(a=5e3); //We now need to wait to ensure all our vars have been retreived var c=setTimeout(function(){ //Get variables var a=RS3.gamePageConstants.hasJava,b=RS3.gamePageConstants.hasJavaVersion,d=JXGLOBAL.user.os(); //If Java is supported (and we are not on a mac) load the client as normal and remove everything else a&&b&&!d.isMac?RS3.gamePageBrowser.showGameScreen():RS3.gamePage.failure(),clearTimeout(c)},a); //Perform tracking logic RS3.tracking.pushTrackEvent("game_java_client_loaded","load",pageLocation),RS3.tracking.trackingPixel(null,TRACKING_GAME_JAVA_CLIENT_LOADED,null,!0),RS3.gamePage.overlayTracking()}},RS3.grandExchange={data:null,options:null,chartObj:null,formatter:null,ticker:function(){var a=$("#ticker"),b=a.find(".ticker-wrap");b.webTicker({speed:50,direction:"left",moving:!0,startEmpty:!1,duplicate:!1,rssurl:!1,rssfrequency:0,updatetype:"reset"})},chart:function(){RS3.grandExchange.formatter=new google.visualization.NumberFormat({pattern:"#,###"}),this.drawChart(average30), //If the user clicks a filter option $("#filter a").on("click",function(a){a.preventDefault();var b,c=$(this),d=c.parent(),e=c.parents("ul"); //Check if there is a change of current data set d.hasClass("active")||(e.find(".active").removeClass("active"),d.addClass("active"),e.prepend(d), //Work out which data we need an create a data table for google b=window["average"+c[0].hash.substr(1)],RS3.grandExchange.data=google.visualization.arrayToDataTable(b), //For the 6month and 3month set reduce the dot size to avoid overlap b==average30?RS3.grandExchange.options.pointSize=5:RS3.grandExchange.options.pointSize=3, //Format column 1 data for tooltip RS3.grandExchange.formatter.format(RS3.grandExchange.data,1), //If we do not want the second column remove it $("#toggleTrend").is(":checked")?RS3.grandExchange.formatter.format(RS3.grandExchange.data,2):RS3.grandExchange.data.removeColumn(2), //Redraw the graph with our new data RS3.grandExchange.renderChart())}), //If the user toggles the trend line $("#toggleTrend").on("change",function(){if($(this).is(":checked")){ //Work out which data we need an create a data table for google var a=window["average"+$("#filter .active a")[0].hash.substr(1)];RS3.grandExchange.data=google.visualization.arrayToDataTable(a), //Format the data in both columns for the tooltip RS3.grandExchange.formatter.format(RS3.grandExchange.data,1),RS3.grandExchange.formatter.format(RS3.grandExchange.data,2)}else //If the user does not want the trendline remove the column from the existing data table RS3.grandExchange.data.removeColumn(2); //Redraw the graph with the applicable data RS3.grandExchange.renderChart()})},drawChart:function(a){var b=JXGLOBAL.user.browser(); //Get the applicable dataSet and create a data table RS3.grandExchange.data=google.visualization.arrayToDataTable(a), //Remove trend line on first start RS3.grandExchange.data.removeColumn(2), //Format the data in column 1 for the tooltip RS3.grandExchange.formatter.format(RS3.grandExchange.data,1), //Setup chart options RS3.grandExchange.options={animation:{duration:1e3,startup:!0},chartArea:{left:95,height:"85%",top:50,width:"77%",backgroundColor:{stroke:"#23333e",strokeWidth:2}},backgroundColor:"transparent",legend:{position:"none"},pointSize:5,pointShape:"circle",pointsVisible:!0,series:{0:{color:"#e1bb34"},1:{color:"#b2dbee"}},hAxis:{baselineColor:"#23333e",textStyle:{color:"white"},gridlines:{color:"#23333e",count:-1},minorGridlines:{color:"transparent",count:0},titleTextStyle:{color:"transparent"}},vAxis:{baselineColor:"#23333e",format:"short",textStyle:{color:"white"},gridlines:{color:"#23333e",count:-1},title:"GP",titleTextStyle:{color:"white"}},width:665}, //Only show hAxis gridlines in chrome b.isChrome||(RS3.grandExchange.options.hAxis.gridlines.color="transparent"), //Define our chart object and render it RS3.grandExchange.chartObj=new google.visualization.LineChart(document.getElementById("itemchart")),this.renderChart()},renderChart:function(){ //Render the chart using the open scope vars for data and options RS3.grandExchange.chartObj.draw(RS3.grandExchange.data,RS3.grandExchange.options)},searchFilter:function(){$(".filter-link").on("click",function(a){a.preventDefault();var b=$("#filter");b.hasClass("showElement")?(b.removeClass("showElement"),$(".filter-link").removeClass("expand")):(b.addClass("showElement"),$(".filter-link").addClass("expand"))}),this.updateMinMax()},updateMinMax:function(){if($("#priceSlider").length){var a=$("#priceSlider").val().split(";");a[0]>495500?$("#minPrice").val("495500"):$("#minPrice").val(a[0]),a[1]==maxScale&&(a[1]="+",$(".jslider-value-to span").html("500,000+")),$("#maxPrice").val(a[1])}},init:function(){this.ticker(),this.searchFilter(),"undefined"!=typeof average30&&this.chart()}},RS3.polls={ //Draw poll results for the given id drawPollResults:function(a){var b=$(".showElement"),c=b.parent().attr("id");$(".pollExpand.expanded").removeClass("expanded"),$(".polls").find(".showContent").removeClass("showContent"), //If different poll add new class c!="pollTab"+a&&($("#pollTab"+a+" .pollExpand").addClass("expanded"),$(".expanded").parent().parent().addClass("showContent")); //Check if the poll details are already in the dom var d=$("#pollDetails"+a);d.length>0?d.addClass("showElement"):RS3.polls.requestPoll(a),b.removeClass("showElement")}, //Determine how to show the remaining time calculateReturnString:function(a){var b="",c=0;return a>=216e3?(c=a/86400,b=c.toFixed(1)+" "+pollLoc_days):a>=3600?(c=a/3600,b=c.toFixed(1)+" "+pollLoc_hours):a>=60?(c=a/60,b=c.toFixed(1)+" "+pollLoc_minutes):b=a+" "+pollLoc_seconds,b}, //Request the poll details requestPoll:function(a){$.ajax({url:pollUrl+"/pollResults.json?id="+a,dataType:"jsonp",timeout:3e3,success:function(b){if(b.errorCode>0)RS3.polls.drawErrorPane(a,b.errorCode);else if(b.isBanned&&1==b.status)RS3.polls.drawErrorPane(a,9);else if(b.pollDetails[0].options[0].hidden&&b.playerAlreadyVoted)RS3.polls.drawHiddenMessagePane(a);else if(b.pollDetails[0].options.length>9||b.pollDetails.length>1)b.running&&!b.playerAlreadyVoted&&b.canPlayerVote?window.location=pollUrl+"/vote.ws?id="+a:window.location=pollUrl+"/results.ws?id="+a;else{var c=RS3.polls.generateResultsPane(b,a),d=RS3.polls.generateDetailsPane(b,a),e="
"+d+"
";e+="
"+c+"
", //Add the poll details to the DOM $("#pollTab"+a).append(e), //This is necessary so that the animation will not play till the article is drawn setTimeout(function(){$("#pollDetails"+a).addClass("showElement")},1), //Re-listen for clicked forms RS3.polls.onPageSubmit()}},failure:function(){RS3.polls.drawErrorPane(a,-1)},error:function(){RS3.polls.drawErrorPane(a,-1)}})}, //Build the description panel based on the poll state generateDetailsPane:function(a,b){var c="
"+pollLoc_description+"

"+a.pollDetails[0].questionText+"

"; //Check the poll states to see what to add to the description box return a.playerAlreadyVoted>0&&(c+="

"+pollLoc_totalvotes+": "+a.totalNumberofVotes+"

"+pollLoc_haveVoted+"

"),a.secondsRemaining>0&&(c+="
"+RS3.polls.calculateReturnString(a.secondsRemaining)+" "+pollLoc_remaining+"
"),a.playerAlreadyVoted&&(c+="

= "+pollLoc_yourVote,a.canPlayerVote&&(c+=" ("+pollLoc_change+")"),c+="

"),c}, //Build the answers panel based on whether or not the player has voted and if the poll is active generateResultsPane:function(a,b){var c=a.pollDetails[0].options.length,d="",e=0; //If the player already voted, the poll is closed or they cannot vote show results--> if(a.playerAlreadyVoted||0==a.status||!a.canPlayerVote){d+="
"+pollLoc_results+"
"}else{d+="
"+pollLoc_options+"
'}return d},drawErrorPane:function(a,b){if($(".pollError").removeClass("showElement"),$("#pollDetails"+a).length>0)$("#pollDetails"+a).addClass("showElement");else{var c="

";switch(b){case 0:c+=pollLoc_alreadyVoted+" "+pollLoc_viewCurrent+"";break;case 1:c+=pollLoc_sorryMember+" "+pollLoc_becomeMember+" "+pollLoc_toCast;break;case 2:case 9:case 10:case 11:c+=pollLoc_sorryNotEligible;break;case 3:c+=pollLoc_sorryExperienced;break;case 5:c+=pollLoc_sorryClosed+" "+pollLoc_viewCurrent+".";break;case 12:c+=pollLoc_sorryExperienced;break;case 20:c+=pollLoc_sorryLanguage;break;default:c+=pollLoc_sorryError}c+="

",$("#pollTab"+a).append(c),setTimeout(function(){$("#pollDetails"+a).addClass("showElement")},1)}},drawHiddenMessagePane:function(a){var b="

"+pollLoc_resultsHidden+"

";$("#pollTab"+a).append(b),setTimeout(function(){$("#pollDetails"+a).addClass("showElement")},1)}, //If the user votes on the landing page onPageSubmit:function(){ //Check if a vote button is clicked $(".voteForm").submit(function(a){a.preventDefault();var b=$(this),c=b.find("input[name='id']").val(),d=b.serialize();$("input[name='question0']:checked").length>0&&$.ajax({dataType:"jsonp",url:pollUrl+"/postPollVote.json?"+d,timeout:3e3,success:function(a){$("#pollTab"+a.pollID).addClass("pollTab--voted");var b=$("#pollDetails"+a.pollID+" .pollDetailsRight"),d=$("#pollDetails"+a.pollID+" .pollDetailsLeft");b.html("

loading...

"),$.ajax({dataType:"jsonp",url:pollUrl+"/pollResults.json?id="+a.pollID,timeout:3e3,success:function(e){ //If results are hidden draw the hidden pane if(e.pollDetails[0].options[0].hidden&&e.playerAlreadyVoted)$("#pollDetails"+a.pollID).remove(),RS3.polls.drawHiddenMessagePane(c);else{var f=RS3.polls.generateResultsPane(e,a.pollID),g=RS3.polls.generateDetailsPane(e,a.pollID);b.html(f),d.html(g)}},fail:function(){RS3.polls.drawErrorPane(c,-1)},error:function(){RS3.polls.drawErrorPane(c,-1)}})},fail:function(){RS3.polls.drawErrorPane(c,-1)},error:function(){RS3.polls.drawErrorPane(c,-1)}})})},init:function(){ //When clicking a poll show details or force login $(".pollExpand").on("click",function(a){if(loggedIn>0){a.preventDefault();var b=this.getAttribute("data-pollid");RS3.polls.drawPollResults(b)}})}},RS3.offerwall={callSonic:function(){$("#offerwallBox").append('')},callPeanut:function(){$("#offerwallBox").append('')},callSuperRewards:function(){$("#offerwallBox").append('')},drawError:function(){$("#offerwallBox").append("

"+offerwallErrorMessage+"

")},init:function(){switch("game"==wallOrigin?$("#closeWall").on("click",function(a){a.preventDefault(),document.location=unshim+"?closeBilling=1"}):"store"==wallOrigin&&$("#closeWall").on("click",function(a){a.preventDefault(),document.domain="runescape.com",window.parent.$("#closeBillingWindow").click()}),wallProvider){case supersonicWallId:""==supersonicButton?this.drawError():this.callSonic();break;case peanutLabsWallId:this.callPeanut();break;case superRewardsWallId:this.callSuperRewards();break;default: //unknown wall type this.drawError()}}},RS3.support={init:function(){function a(){var a=!!navigator.cookieEnabled;return"undefined"!=typeof navigator.cookieEnabled||a||(document.cookie="testcookie",a=document.cookie.indexOf("testcookie")!=-1),a}function b(a,b,c,d,e){try{var f=b.value.replace(/\r/g,"");e&&f.length>d&&(e.disabled=!0),f.length>d&&(1==a&&0==g&&(alert("{#alerttext}"),g=!0),b.value=f=f.substring(0,d)),c.childNodes[0].nodeValue=d-f.length}catch(h){}}function c(a,c,d,e,f,g,h){try{c.onkeyup=function(){b(a,c,d,e,g)},c.onkeydown=function(){b(a,c,d,e,g)},c.onkeypress=function(){b(a,c,d,e,g)},c.onmousemove=function(){b(a,c,d,e,g)},c.onchange=function(){b(!1,c,d,e,g)},f&&(f.onsubmit=function(){b(a,c,d,e,g)}),h&&f&&(h.onclick=function(){f.reset(),b(a,c,d,e,g)}),b(!1,c,d,e,g)}catch(i){}}function d(){if(!h){h=!0;try{for(var a=document.getElementsByTagName("textarea"),b=0;b=b){var e=d.substr(b),f=document.getElementById("charlimit_info"+e),g=document.getElementById("charlimit_count"+e),h=document.getElementById("charlimit_form"+e),i=document.getElementById("charlimit_submit"+e),j=document.getElementById("charlimit_reset"+e);if(f&&g){var k=!1;e.match(/^_msg/i)&&(k=!0);var l=parseInt(g.childNodes[0].nodeValue);c(k,a,g,l,h,i,j),f.style.display="inline"}}}$("#internet_type").change(function(){var a=$(this),b=a.parents(".formPartPair").find(".formAdditional");"0"===a.val()?(b.show(),$("#internet_type_other").attr("required","required")):(b.val("").hide(),$("#internet_type_other").removeAttr("required"))}),$('input[type="number"]').keydown(function(){"undefined"!=typeof $(this).attr("maxlength")&&this.value>=parseInt($(this).attr("maxlength"))&&(this.value=this.value.slice(0,parseInt($(this).attr("maxlength"))-1))});var f={init:function(){this.browser=this.searchString(this.dataBrowser)||"An unknown browser",this.version=this.searchVersion(navigator.userAgent)||this.searchVersion(navigator.appVersion)||"an unknown version",this.OS=this.searchString(this.dataOS)||"an unknown OS"},searchString:function(a){for(var b=0;b999,e.invalid=b,b&&(e.error=a),e}}, // Switch statement run by keyup and submit for testing validation switchType:function(a){var b;switch(a){case"email":b=RS3.accountcreation.validationTest.email();break;case"password":case"text":b=RS3.accountcreation.validationTest.password();break;case"number":b=RS3.accountcreation.validationTest.age()}return b},events:{ // Keyup event used to show on the fly valid input (input goes green) keyup:function(){RS3.accountcreation.validationElements.inputs.on("input",function(a){var b=$(this);if(RS3.accountcreation.validationTest.browser()){var c=RS3.accountcreation.switchType(this.type);c.invalid?(b.removeClass("valid"),b[0].setCustomValidity(c.error)):(b.addClass("valid").removeClass("invalid"),b.siblings(".error").remove(),b[0].setCustomValidity(""))}else b.removeClass("invalid").siblings(".error").remove()})}, // Submit used to capture front-end validation before submitting to server submit:function(){var a=RS3.accountcreation.validationElements.form;a.on("submit",function(a){var b=a,c=$(".g-recaptcha"); //Check Captcha c.length&&"undefined"!=typeof grecaptcha&&(""==grecaptcha.getResponse()?(b.preventDefault(),c.addClass("g-recaptcha--error")):c.removeClass("g-recaptcha--error")),RS3.accountcreation.validationElements.inputs.each(function(a){var c=$(this),d=c.parent(),e=validation.switchType(this.type),f=$("

").addClass("error"),g=d.find(".error"); // If validation fails, prevent form submission and add error e.invalid?(b.preventDefault(),1!=g.length&&(c.addClass("invalid"),f.text(e.error),d.prepend(f))):(c.removeClass("invalid"),g.remove())})})},password:function(){ // Change input type function for Show/Hide password RS3.accountcreation.validationElements.toggle.on("change",function(a){var b=$(this),c=RS3.accountcreation.validationElements.password;b.prop("checked")?c.attr("type","text"):c.attr("type","password")})}},setupValidation:function(){ // Capture keyup for on the fly validation this.events.keyup(), // Capture form submit for front-end validation RS3.accountcreation.validationTest.browser()&&this.events.submit(), // Show and hide password with link this.events.password()},/* * Game options used for Java checking and Pixel tracking on account creation */ gameOptionsTracking:function(){var a,b=new Image,c=new Image,d=$.cookie("JXFRONTUID");switch(b.src="https://www.googleadservices.com/pagead/conversion/1031096559/?value=0&label=LBGlCLm0lQcQ75HV6wM&guid=ON&script=1",affiliate){case"451":c.src="https://www.facebook.com/offsite_event.php?id=6013952264290&value=0&currency=USD";break;case"907":case"908":case"909":c.src="http://ad2games.com/convert/13140";break;case"934":a=$.cookie("bidalgouid"),c.src="http://www.massoftraffic.com/maca-webapp/app/biz/lead?channel=JagexRuneScape&appUniqueIdentifier="+d+"&uid="+a;break;case"935":a=$.cookie("dauupid"),c.src="https://srv.ministerial5.com/convnew/?t=6&p=1456&l=0&aid="+d+"&uid="+a;break;case"936":c.src="https://track.popmog.com/games/643/campaign_tracking?reg_id="+d}affiliate>=923&&affiliate<=932&&(c.src="https://www.facebook.com/offsite_event.php?id=6014296706039&value=0&currency=GBP")},gameOptions:function(){var a=$("#downloadBtn"),b=JXGLOBAL.user.os();if(a.length>0){if(b.isMac){var c=_.filter(JXGLOBAL.client,function(a){return a.platform.indexOf("OSX")>-1});$("#downloadBtn, #downloadBtnImage").attr("href",baseURL+"/downloads/"+c[0].filename+"?"+c[0].version),$("#downloadSize").html("0.3")}setTimeout(function(){window.location=a.attr("href")},2e3)}$("#accountCreated").length>0&&this.gameOptionsTracking()},init:function(a){switch(a){case"account-creation--create-account":this.setupValidation(),RS3.global.facebook.loadFacebookAPI(RS3.global.facebook.setUpEvents);// Load FB Api for FB login and FB like button break;case"account-creation--download":this.gameOptions()}}},RS3.downloadNxt={binaryPrefixUnits:[" B"," KiB"," MiB"," GiB"," TiB"," PiB"," EiB"],intToLocalisedString:function(a,b,c,d){var e="",f=",",g=".";//no-break space if(0===d&&(f=".",g=","),2===d&&(g=" "),b>0){var h=Math.pow(10,b);e=f+a%h,a=Math.floor(a/h)}for(;a>1e3;)e=a%1e3+e,a%1e3<10?e="00"+e:a%1e3<100&&(e="0"+e),e=g+e,a=Math.floor(a/1e3);return e=a+e},toBinaryPrefixFormat:function(a,b,c,d){for(var e=0,f=null;a>=1024&&e0?(a*=Math.pow(10,b),a=Math.floor(a/1024),f=this.intToLocalisedString(a,b,c,d)+this.binaryPrefixUnits[e]):f=this.intToLocalisedString(a,0,c,d)+this.binaryPrefixUnits[e],f},init:function(){ //Get Windows details $.getJSON(baseContentUrl+"/downloads-info/windows/RuneScape-Setup.exe.json",function(a){$("#download-nxt__size-win").append(RS3.downloadNxt.toBinaryPrefixFormat(a.size,2,!0,currentLang)),$("#download-win a").attr("href",baseContentUrl+"/downloads/windows/RuneScape-Setup.exe?crc="+a.crc),$("#method-logo-win").attr("href",baseContentUrl+"/downloads/windows/RuneScape-Setup.exe?crc="+a.crc)}), //Get MAC details $.getJSON(baseContentUrl+"/downloads-info/osx/RuneScape.dmg.json",function(a){$("#download-nxt__size-mac").append(RS3.downloadNxt.toBinaryPrefixFormat(a.size,2,!0,currentLang)),$("#download-mac a").attr("href",baseContentUrl+"/downloads/osx/RuneScape.dmg?crc="+a.crc),$("#method-logo-mac").attr("href",baseContentUrl+"/downloads/osx/RuneScape.dmg?crc="+a.crc)}), //Get version and change log details $.getJSON(baseContentUrl+"/downloads/changelog.json",function(a){var b="";if(a.length>0){var c=0,d="";$("#download-version").append(a[0].version+" ("+$.datepicker.formatDate("dd M yy",new Date(a[0].date))+")"),b+="

",$.each(a,function(a,e){3==c&&(d="nxt-client-updates__hidden-item"),b+="
"+e.version+" ("+$.datepicker.formatDate("dd M yy",new Date(e.date))+")
",e.changes.length>0&&(b+="
    ",$.each(e.changes,function(a,c){b+="
  • "+c+"
  • "}),b+="
"),c++}),b+="
", //Only render the change log for english as we cannot translate it 0===currentLang&&$("#change-log").html(b)}}), //Listen for linux click then show instructions $("#download-lin a").on("click",function(a){a.preventDefault(),$("#linux-instructions").toggleClass("download-nxt__linux-instr--show")}),$("#method-logo-lin").on("click",function(a){a.preventDefault(),$("#linux-instructions").toggleClass("download-nxt__linux-instr--show")});var a=$("#earlier-updates");a.on("click",function(b){b.preventDefault();var c=$(".nxt-client-updates__hidden-item"),d=6;c.length