Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const SETTINGS_COOKIE_NAME = "sitePrefs";
- var settings = getSettings();
- var friendsArray;
- var myPermissions = null;
- (function(A) {
- A.fn.votesCounterBar = function(B) {
- this.each(function() {
- var C = A(this).find(".votesCounterBar");
- var D = parseInt(A(this).find("div.votesNumber").text());
- C.width((((B - D) / B) * 100) + "%")
- });
- return this
- }
- }(jQuery));
- (function(A) {
- A.fn.animateNumbers = function(B, C) {
- return this.each(function() {
- var E = A(this);
- var D = parseInt(E.text());
- A({
- value: 0
- }).animate({
- value: D
- }, {
- duration: B === undefined ? 1000 : B,
- easing: C === undefined ? "swing" : C,
- step: function() {
- E.text(Math.floor(this.value))
- },
- complete: function() {
- if (parseInt(E.text()) !== D) {
- E.text(D)
- }
- }
- })
- })
- }
- }(jQuery));
- $(document).ready(function() {
- initGlobals();
- p();
- $(".playerTopMenu .trigger").click(function() {
- $(this).toggleClass("active");
- if ($(this).is(".active")) {
- $(".playerTopMenu .icons.carrot.grey").removeClass("down").addClass("up");
- $(".speechBubble").css("z-index", 0);
- $(".playerTopMenu").animate({
- height: advancedLobbiesReleased ? "137px" : "108px"
- }, 200)
- } else {
- $(".playerTopMenu .icons.carrot.grey").removeClass("up").addClass("down");
- $(".playerTopMenu").animate({
- height: "45px"
- }, 200, function() {
- $(".speechBubble").css("z-index", 200)
- })
- }
- });
- if (advancedLobbiesReleased) {
- $("#trigg_menu1").click(function() {
- var A = function() {
- $("#trigg_menu1 .icons.carrot.micro").removeClass("up").addClass("down");
- $("#wrap_menu1 #drop_menu1").slideUp(200, function() {
- $("#trigg_menu1").removeClass("active");
- $(this).removeClass("active")
- })
- };
- $(this).toggleClass("active");
- if ($(this).is(".active")) {
- $("#trigg_menu1 .icons.carrot.micro").removeClass("down").addClass("up");
- $("#wrap_menu1 #drop_menu1").addClass("active").slideDown(200)
- } else {
- A()
- }
- $("#trigg_menu1, #wrap_menu1, #drop_menu1").each(function(B, C) {
- if (typeof C !== "boolean") {
- $(C).click(function(D) {
- D.stopPropagation ? D.stopPropagation() : (D.cancelBubble = true)
- })
- }
- });
- $("html").click(function() {
- A()
- });
- $("#drop_menu1 a").click(function() {
- A()
- });
- return false
- })
- }
- $("#info-bar .lobbySort").click(function() {
- if ($(this).is(".active")) {
- $(".carrot", this).removeClass("up").addClass("down");
- $(this).removeClass("active")
- } else {
- $("#info-bar .lobbySort").removeClass("active");
- $("#info-bar .lobbySort .carrot").removeClass("up").addClass("down");
- $(".carrot", this).removeClass("down").addClass("up");
- $(this).addClass("active")
- }
- });
- $(".content-requirements input[type='radio']").change(function() {
- update_restrictions($(this).val())
- });
- $("#game-type").change(function() {
- $(".class-reservations").html($("#class-reservations-" + $(this).val()).html());
- $(".class-reservations .class-row .slot").click(function() {
- if ($(this).hasClass("reserved")) {
- $(this).removeClass("reserved");
- $(this).children(".reserve").removeClass("lock");
- $(this).children(".reserve").addClass("unlock");
- $(this).children("label").text("Reserve slot")
- } else {
- $(this).addClass("reserved");
- $(this).children(".reserve").removeClass("unlock");
- $(this).children(".reserve").addClass("lock");
- $(this).children("label").text("Reserved")
- }
- });
- selected_requirements = $(".content-requirements input[type='radio']:checked").val();
- if (selected_requirements == "some-classes-requirements") {
- update_restrictions(selected_requirements)
- }
- });
- $("#advancedSettingsLink").click(function() {
- if ($(".content-advanced").hasClass("hidden")) {
- $("#advancedSettingsLink .carrot").removeClass("right");
- $("#advancedSettingsLink .carrot").addClass("left");
- $("#_wicket_window_0").animate({
- width: [967, "swing"]
- }, 200, function() {
- $(".content-advanced").removeClass("hidden")
- })
- } else {
- $(".content-advanced").addClass("hidden");
- $("#_wicket_window_0").animate({
- width: [474, "swing"]
- }, 200);
- $("#advancedSettingsLink .carrot").removeClass("left");
- $("#advancedSettingsLink .carrot").addClass("right")
- }
- });
- $("#shareLinkBtn").click(function() {
- $("#linkInput").addClass("selected green");
- $("#linkText").removeClass("invisible");
- return false
- });
- $("#enterPasswordBtn").click(function() {
- $("#enterPasswordInput").addClass("selected red");
- $("#wrongPasswordText").removeClass("invisible");
- return false
- });
- if ($(".wicket-modal input:radio").length) {
- $(".wicket-modal input:radio").transformRadio({
- base: "image",
- checked: "../assets/images/box_checked_dark.png",
- unchecked: "../assets/images/box_unchecked_dark.png"
- });
- $(".wicket-modal input:radio").each(function() {
- var A = this;
- $("label[for='" + A.id + "']").click(function() {
- $("#" + A.id + " + img").click()
- })
- })
- }
- $(".playerScrollContainerLoading").addClass("hidden");
- $(".playerScrollContainer").removeClass("hidden");
- if ($(".scrollable").length) {
- $(".scrollable").jScrollPane()
- }
- initConnectionPanelHeader();
- $("textArea#chatInput").keypress(function(A) {
- if (A.keyCode == 13) {
- A.preventDefault(A)
- }
- });
- $("#FAQmenu h3").click(function() {
- $("#FAQmenu ul ul").slideUp();
- if (!$(this).next().is(":visible")) {
- $(this).next().slideDown()
- }
- });
- $("#info-bar .playersOnline.hideable").click(function() {
- if ($(this).is(".active")) {
- $(".carrot", this).removeClass("up").addClass("down");
- $(this).removeClass("active");
- $("#players-online").stop().slideUp(300);
- toggleChatSize()
- } else {
- $("#info-bar .infoPanel").removeClass("active");
- $("#info-bar .infoPanel .carrot").removeClass("up").addClass("down");
- $(".carrot", this).removeClass("down").addClass("up");
- $(this).addClass("active");
- $("#players-online").stop().slideDown(300);
- toggleChatSize()
- }
- });
- $("#achvFullBtn").click(function() {
- if ($(this).hasClass("off")) {
- $(this).removeClass("off").addClass("on");
- $("#achvCompBtn").removeClass("on").addClass("off");
- $(this).parent().removeClass("active");
- $(".achvItem").removeClass("ym-g1220-3").addClass("ym-g1220-6");
- $(".achvDesc, .achvGrades").show(200)
- } else {
- return
- }
- });
- $("#achvCompBtn").click(function() {
- if ($(this).hasClass("off")) {
- $(this).removeClass("off").addClass("on");
- $("#achvFullBtn").removeClass("on").addClass("off");
- $(this).parent().removeClass("active");
- $(".achvItem").removeClass("ym-g1220-6").addClass("ym-g1220-3");
- $(".achvDesc, .achvGrades").hide(200)
- } else {
- return
- }
- });
- $("#achvCompBtn, #achvFullBtn").hover(function() {
- if ($(this).hasClass("off")) {
- $(this).parent().addClass("active")
- }
- }, function() {
- if ($(this).hasClass("off")) {
- $(this).parent().removeClass("active")
- }
- });
- $(".userBansHeader").click(function() {
- $(".userBansList").slideToggle(400);
- $(".userBansHeader .arrow").toggleClass("down")
- });
- if (location.pathname.indexOf("/profile") == 0 && location.href.indexOf("#bans") > 0) {
- console.log("before click");
- $(".userBansHeader").trigger("click")
- }
- ranksChartAnimation();
- if (!advancedLobbiesReleased) {
- showALcountDown()
- }
- });
- function showALcountDown() {
- try {
- var E = countdown(new Date(), 1467482400680, countdown.HOURS | countdown.MINUTES | countdown.SECONDS, 0, 0).toString();
- if (Date.now() < 1467482400680) {
- var B = /(\d+).+?(\d+).+?(\d+)/g.exec(E);
- var A = leadZero(B[1]);
- var D = leadZero(B[2]);
- var C = leadZero(B[3]);
- $("#alCountdownTimer").text(A + ":" + D + ":" + C)
- }
- } catch (F) {}
- setTimeout(showALcountDown, 1000)
- }
- function leadZero(A) {
- return A < 10 ? "0" + A : A
- }
- function initGlobals() {
- myPermissions = $.parseJSON(permissions)
- }
- function hasPermission(A) {
- if (!myPermissions) {
- initGlobals()
- }
- return myPermissions.indexOf(A) > -1
- }
- function closeMenu() {
- $(".playerTopMenu .trigger").click()
- }
- function update_restrictions(A) {
- if (A == "some-classes-requirements") {
- $(".class-requirements").html($("#" + A + "-" + $("#game-type").val()).html())
- } else {
- $(".class-requirements").html($("#" + A).html())
- }
- }
- function checkAndAddDefaultPort() {
- var A = $("#hostAndPort").val();
- if (A != "" && A.indexOf(":") == -1) {
- $("#hostAndPort").val(A + ":27015")
- }
- }
- function setPreReadyTimer(C, A) {
- if ($(document).ready) {
- var D = "#pre-ready-timer";
- var B = "#pre-ready-button";
- $(D).buildCounter({
- now_timestamp: A - C,
- stardate_timestamp: 0,
- enddate_timestamp: A,
- color: "#213438",
- backgroundcolor: "#3f5a61",
- backgroundwidth: "4",
- frontwidth: "6",
- size: "36",
- countsize: "8",
- countcolor: "#5f94a2",
- callback: function() {
- $(D).trigger("click")
- },
- });
- $(B).hide();
- $(D).show()
- } else {
- return
- }
- }
- function isMySteamId(A) {
- return (typeof mySteamId != "undefined") && (mySteamId == A)
- }
- function initConnectionPanelHeader() {
- $("#connectionPanel .connectionHeader span").click(function() {
- $(this).toggleClass("active");
- if ($(this).is(".active")) {
- $("#connectionPanel .connectionHeader .icons.carrot.grey").removeClass("down").addClass("up");
- $("#connectionPanel .connectionDetails").stop().slideDown(200, "swing", function() {
- $(this).css("display", "table")
- })
- } else {
- $("#connectionPanel .connectionHeader .icons.carrot.grey").removeClass("up").addClass("down");
- $("#connectionPanel .connectionDetails").css("display", "block");
- $("#connectionPanel .connectionDetails").stop().slideUp(200, "swing")
- }
- })
- }
- function meetsHoursRestriction(A) {
- return typeof A === "undefined" || myTotalHoursPlayed >= A
- }
- function meetsMinimumLobbiesRestriction(A) {
- return typeof A === "undefined" || myLobbiesPlayed >= A
- }
- function meetsReliabilityRestriction(A) {
- return typeof A === "undefined" || myReliability >= A
- }
- function isHostUp(A) {
- result = false;
- jQuery.ajax({
- url: "http://" + A + "/about",
- async: false,
- success: function() {
- result = true
- }
- });
- return result
- }
- function ranksChartAnimation() {
- var C = $(".ranksChartCol").toArray(), A, B = 0;
- A = setInterval(function() {
- $(C[B]).slideDown(500, "easeOutBounce");
- ++B;
- if (C[B] === undefined) {
- clearInterval(A);
- return
- }
- }, 50)
- }
- function isSteamFriend(A) {
- if (friendsArray == undefined) {
- if (friendsJsonStr == undefined || friendsJsonStr == null) {
- return false
- }
- friendsArray = $.parseJSON(friendsJsonStr)
- }
- return friendsArray.indexOf(A) !== -1
- }
- function isMe(A) {
- return A == mySteamId
- }
- function initServerFieldsFromSettings() {
- if ($("#hostAndPort").val().length == 0) {
- $("#hostAndPort").val(settings.serverHost);
- $("#rcon").val(settings.serverRcon)
- }
- }
- function getSettings() {
- var A = loadFromCookie();
- if (A == null) {
- A = getDefaultSettings()
- }
- return A
- }
- function getDefaultSettings() {
- return {
- soundVolume: 75,
- enableDesktopNotifications: false,
- enableSoundNotifications: true,
- serverHost: null,
- serverRcon: null
- }
- }
- function loadFromCookie() {
- return Cookies.getJSON(SETTINGS_COOKIE_NAME)
- }
- function saveSettings(A) {
- Cookies.set(SETTINGS_COOKIE_NAME, A, {
- expires: 1000
- })
- }
- if (navigator.userAgent.indexOf("Googlebot") == -1) {
- if (!("WebSocket"in window) || navigator.userAgent.indexOf("MSIE") > -1 || navigator.userAgent.indexOf("Valve Steam GameOverlay") > -1) {
- window.location = "/unsupported"
- }
- }
- const VALID_AD_INS_COUNT = 3;
- $(document).ready(function() {
- if(Notification.permission !== "granted") {
- Notification.requestPermission();
- }
- var D = $(".join-steam-group").length;
- var E = $(".joinALs").length;
- if (D) {
- $(".join-steam-group").show();
- $(".join-steam-group").animate({
- height: "26px"
- }, 250, "swing")
- }
- if (E) {
- $(".joinALs").show();
- $(".joinALs").animate({
- height: "26px"
- }, 250, "swing")
- }
- if (D || E) {
- $(".youShallNotPassEnabled").animate({
- marginTop: "29px"
- }, 300, "swing")
- } else {
- $(".youShallNotPassEnabled").removeClass("youShallNotPassEnabled")
- }
- function C() {
- if (noAds || mySteamId == "" || myLobbiesPlayed < 50) {
- return false
- }
- var H = window.location.pathname;
- if (H.indexOf("/lobbies") == 0 || H.indexOf("/profile") == 0) {
- var G = $("._containerVer ins").length;
- var F = $("._containerVerRight ins").length;
- if (G < VALID_AD_INS_COUNT || F < VALID_AD_INS_COUNT || !A(H)) {
- return true
- }
- }
- return false
- }
- function A(F) {
- return $("#aswift_0_anchor > iframe")[0].isVisible(160, 600) && $("#aswift_1_anchor > iframe")[0].isVisible(160, 600) && (F != "/lobbies" || $("#aswift_2_anchor > iframe")[0].isVisible(718, 90))
- }
- });
- function isBlocked2(A) {
- return !A || A.closed || typeof A.closed == "undefined" || A.outerHeight === 0
- }
- function openWindow(B, A) {
- var C = window.open(B, A);
- setTimeout(function() {
- if (isBlocked2(C)) {
- alert("Your browser is blocking a new window! Please adjust popup settings for this domain.")
- }
- }, 1000)
- }
- function playReadySoundHeavy() {
- playSound(settings, "/assets/sounds/ready_heavy.wav", "Lobby is ready!")
- }
- function playSteamMsg() {
- playSound({
- enableSoundNotifications: true,
- soundVolume: 100,
- enableDesktopNotifications: settings.enableDesktopNotifications
- }, "/assets/sounds/steam_msg.mp3", "A moderator has pinged you!")
- }
- function playBanPing() {
- playSound({
- enableSoundNotifications: true,
- soundVolume: 100,
- enableDesktopNotifications: settings.enableDesktopNotifications
- }, "/assets/sounds/steam_msg.mp3", "You have banned or received a cooldown!")
- }
- function playLaunchSoundAnnouncer() {
- playSound(settings, "/assets/sounds/announcer_am_gamestarting.mp3", "Lobby has launched!")
- }
- function playIncomingSoundHeavy() {
- playSound(settings, "/assets/sounds/incoming_heavy.ogg", "Critical notification received!")
- }
- function playPrematureLobbyEnding() {
- playSound(settings, "/assets/sounds/heavy_premature_ending.wav", "Lobby closed or you were kicked!")
- }
- function playAchievementUnlocked() {
- new Audio("/assets/sounds/achievement-unlocked.mp3").play()
- }
- function playTeamsBalanced() {
- playSound(settings, "/assets/sounds/gong.mp3", "Lobby balanced!")
- }
- function p() {
- new Audio("/assets/sounds/v.wav").play()
- }
- function playSound(A, C, D) {
- if (A.enableSoundNotifications) {
- var B = new Audio(C);
- B.volume = A.soundVolume / 100;
- B.play()
- }
- showDesktopNotification(A, D)
- }
- function showDesktopNotification(A, B) {
- if (A.enableDesktopNotifications) {
- var C = new Notification("TF2Center",{
- body: B,
- icon: "/assets/images/tf2center_logo_archimedes.png"
- });
- C.onclick = function(D) {
- window.focus();
- C.close()
- }
- ;
- setTimeout(function() {
- C.close()
- }, 8000)
- }
- }
- function delayedReload(A) {
- setTimeout("location.href='" + A + "'", 2000)
- }
- function advancedLobbyClearAnimation() {
- var A = 0;
- players = shufflePlayers($(".blue-team div.playerSlot.lobbySlot, .red-team div.playerSlot.lobbySlot").toArray());
- $("#balanceLogo").addClass("balanceProgress");
- setInterval(function() {
- $(players[A]).children(".showOnHover").hide();
- $(players[A]).children(":not(.showOnHover)").fadeToggle(200, function() {
- if ($(this).is(":last-child")) {
- $(this).parent().css({
- "border-bottom": "1px solid #1b1b1b"
- }).animate({
- "background-color": "#2c2b2b"
- }, 200)
- }
- });
- ++A
- }, 100)
- }
- function advancedLobbyFillAnimation() {
- var A = $(".blue-team div.playerSlot.lobbySlot").toArray()
- , C = $(".red-team div.playerSlot.lobbySlot").toArray()
- , B = 0;
- $("#lobbyPanel").addClass("balanced");
- $("#balanceLogo").removeClass("balanceProgress").addClass("balanceDone");
- playTeamsBalanced();
- $(".blue-team .playerSlot.header.advanced").animate({
- "background-color": "#48707d",
- "border-bottom-color": "#2e4952"
- }, 200, function() {
- $(this).removeClass("advanced").addClass("blue")
- });
- $(".red-team .playerSlot.header.advanced").animate({
- "background-color": "#9e403d",
- "border-bottom-color": "#66302e"
- }, 200, function() {
- $(this).removeClass("advanced").addClass("red")
- });
- setInterval(function() {
- $(C[B]).removeClass("balanced-hidden").css({
- "border-bottom": "1px solid #2c2b2b"
- }).animate({
- "background-color": "#1b1b1b"
- }, 200);
- $(A[B]).removeClass("balanced-hidden").css({
- "border-bottom": "1px solid #2c2b2b"
- }).animate({
- "background-color": "#1b1b1b"
- }, 200);
- ++B
- }, 600)
- }
- function shufflePlayers(A) {
- for (var C = A.length - 1; C > 0; C--) {
- var B = Math.floor(Math.random() * (C + 1));
- var D = A[B];
- A[B] = A[C];
- A[C] = D
- }
- return A
- }
- $(document).ready(function() {
- setupChatScrollPane(true);
- setupChatHandling()
- });
- function addChatMsg(A, B) {
- if (!checkLobbyFilter(B)) {
- return
- }
- var C = $(".chatLinePanel.templateHolder li").clone();
- var F = "/profile/" + A.authorSteamId;
- var E = new Date(A.created).toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/, "$1");
- C.find(".date").text(E);
- C.find(".author").attr("href", F);
- if (A.admin) {
- C.find(".author .name").addClass("admin");
- C.find(".message").addClass("admin")
- }
- if (A.donator) {
- C.find(".author .name").addClass("donator")
- } else {
- C.find(".donateLink").hide()
- }
- if (A.freemium) {
- C.find(".author .name").addClass("freemium")
- } else {
- C.find(".freemiumLink").hide()
- }
- if (!A.advanced) {
- C.find(".icons.playerRank.blue").hide()
- }
- if (isMySteamId(A.authorSteamId)) {
- C.find(".author").addClass("me")
- }
- if (isSteamFriend(A.authorSteamId)) {
- C.find(".author").addClass("friend");
- C.find(".author .icons.person").addClass("friend")
- }
- C.find(".author .name").text(A.authorName);
- C.find(".message").html(A.message);
- var D = $(".chatScrollContainer").jScrollPane().data("jsp").getIsScrollableV() == false || $(".chatScrollContainer").jScrollPane().data("jsp").getPercentScrolledY() == 1;
- $("#chat .chatContainer").append(C);
- if ($("#chat .chatContainer > li").size() > 250) {
- $("#chat .chatContainer > li").slice(0, -250).remove()
- }
- setupChatScrollPane(D)
- }
- function checkLobbyFilter(A) {
- try {
- if (A != null && !lobbyMatchesFilter1(A)) {
- return false
- }
- } catch (B) {}
- return true
- }
- function setupChatScrollPane(B) {
- if (!$(".chatScrollContainer").length) {
- return
- }
- var A = $(".chatScrollContainer").jScrollPane().data("jsp");
- if (B == true || A != null && A.getPercentScrolledY() == 1) {
- A.scrollToPercentY(100)
- } else {
- $(".chatScrollContainer").jScrollPane({
- maintainPosition: true
- })
- }
- }
- function setupChatHandling() {
- var A = function() {
- var C = $("#chatInput").val();
- if (C.trim().length > 0) {
- var B = $.post("/rest/chat", {
- msg: C
- });
- B.always(function(D) {
- if (D.blocked) {
- D.message = "BLOCKED: " + D.message;
- addChatMsg(D, null)
- }
- });
- $("#chatInput").val("")
- }
- };
- $("#chatInput").keyup(function(B) {
- if (B.keyCode == 13) {
- A()
- }
- });
- $("#chatSayBtn").on("click", A)
- }
- function toggleChatSize() {
- var A = 535;
- if ($(".chatScrollContainer").height() == 535) {
- A = 250
- }
- $(".chatScrollContainer").animate({
- height: A
- }, {
- duration: 300,
- queue: false
- });
- $("#chat .scrollable").animate({
- height: A
- }, {
- duration: 300,
- queue: false
- });
- setTimeout(function() {
- $(".chatScrollContainer").jScrollPane().data("jsp").scrollToPercentY(100)
- }, 450);
- $(".chatPanel").animate({
- height: A + 150
- }, {
- duration: 300,
- queue: false
- })
- }
- var displayedNotifications = [];
- function createLobbyOverviewItemElement(E) {
- var B = $(".lobby.templateHolder div.lobbyOverviewPanel").clone();
- var F = E.no;
- B.attr("id", "lobbyOverview-" + F);
- B.find("a.lobbyLink").attr("href", "/lobbies/" + F);
- B.find(".lobbyID").text("#" + F);
- B.find(".icons.flags").addClass(E.region.toLowerCase());
- B.find(".mapName").text(E.map);
- B.find(".mapThumb img").attr("src", E.thumbnailUrl);
- B.find(".gameType").text(E.gameType);
- B.find(".restrictionText").text(E.restrictionsText);
- B.find(".lobbyPlayerCount").text(E.playersInLobby);
- B.find(".lobbySize").text(E.playersForGame);
- B.addClass(E.advanced ? "advanced" : "manual");
- if (E.mumbleRequired == false) {
- B.find(".mumbleReq").remove()
- }
- if (E.useBalancer == false) {
- B.find(".balanced").remove()
- }
- if (E.inReadyUpMode == false) {
- B.find(".icons.lobbyReady").remove()
- }
- var A = userCanOverrideRestrictedSlots(E.leaderSteamId);
- for (var C = 0; C < E.slots.length; C++) {
- var D = createClassSlotElement(F, E.slots[C], A);
- B.find(".lobbyClassContainer").append(D)
- }
- if(displayedNotifications.indexOf(F) === -1) {
- var notification = new Notification(E.map,{
- tag: F,
- icon:E.thumbnailUrl,
- body:"Game Type: " + E.gameType + "\r\nPlayers: " + E.playersInLobby + " of " + E.playersForGame + "\r\nCountry: " + E.region
- });
- notification.onclick = function() {
- window.open("/lobbies/" + F, '_blank');
- };
- notification.onshow = function () { setTimeout(notification.close.bind(notification), 5000); };
- displayedNotifications.push(F);
- }
- return B
- }
- function userCanOverrideRestrictedSlots(A) {
- return (typeof canOverrideRestrictedSlots !== "undefined" && canOverrideRestrictedSlots == true) || isMySteamId(A)
- }
- function createClassSlotElement(F, C, B) {
- var E = $(".classSlot.templateHolder div").clone();
- var G = C.tf2Class;
- if (C.availableSlots.length > 0) {
- var D = C.availableSlots[0].team;
- var A = "/join/lobby/" + F + "/" + D + "/" + G;
- E.find(".link").attr("href", A);
- if (C.availableSlots.length == 1) {
- E.append('<span class="icons available ' + D + '"></span>')
- } else {
- E.append('<span class="icons available blue"></span>');
- E.append('<span class="icons available red"></span>')
- }
- if (allSlotsHaveRestrictions(C)) {
- E.addClass(B || meetsRestrictionsForAnySlot(C) ? "green" : "red")
- }
- }
- if (C.availableReservedSlots.length > 0) {
- if (C.availableReservedSlots.length == 1) {
- E.append('<span class="icons available reserved-' + C.availableReservedSlots[0].team + '"></span>')
- } else {
- E.append('<span class="icons available reserved-blue"></span>');
- E.append('<span class="icons available reserved-red"></span>')
- }
- }
- if (C.availableSlots.length + C.availableReservedSlots.length == 0) {
- E.find(".icons.classes").addClass("unavailable")
- }
- E.find(".icons.classes").addClass(getCssClassForTf2Class(G));
- return E
- }
- function getCssClassForTf2Class(A) {
- switch (A) {
- case "solly":
- return "soldier";
- case "demo":
- return "demoman";
- case "med":
- return "medic";
- case "engie":
- return "engineer";
- case "roamer":
- return "soldier classextra roamer";
- case "pocket":
- return "soldier classextra pocket";
- default:
- return A
- }
- }
- function allSlotsHaveRestrictions(B) {
- for (var A = 0; A < B.availableSlots.length; A++) {
- if ($.isEmptyObject(B.availableSlots[A].restrictions)) {
- return false
- }
- }
- return true
- }
- function meetsRestrictionsForAnySlot(C) {
- for (var A = 0; A < C.availableSlots.length; A++) {
- var B = C.availableSlots[A].restrictions;
- if ($.isEmptyObject(B)) {
- continue
- }
- if (!meetsRestrictions(B)) {
- continue
- }
- return true
- }
- return false
- }
- function meetsRestrictions(A) {
- if ($.isEmptyObject(A)) {
- return true
- }
- if (!(meetsHoursRestriction(A.hours))) {
- return false
- }
- if (!(meetsReliabilityRestriction(A.reliability))) {
- return false
- }
- if (!(meetsMinimumLobbiesRestriction(A.games))) {
- return false
- }
- return true
- }
- function replaceAllLobbies(B) {
- B = filterLobbies(B);
- $("#lobbyContainer").children().remove();
- for (var A = 0; A < B.length; A++) {
- $("#lobbyContainer").append(createLobbyOverviewItemElement(B[A]))
- }
- }
- function replaceSingleLobby(B) {
- if ($.cookie("filter") != undefined) {
- var A = JSON.parse($.cookie("filter"));
- if (A.filterEnabled == true && !lobbyMatchesFilter(B, A)) {
- return
- }
- }
- var C = B.no;
- $("#lobbyContainer").find("#lobbyOverview-" + C).replaceWith(createLobbyOverviewItemElement(B))
- }
- function filterLobbies(E) {
- E = filterRegionLocked(E);
- if ($.cookie("filter") == undefined) {
- return E
- }
- var C = JSON.parse($.cookie("filter"));
- var A = [];
- if (C.filterEnabled) {
- for (var B = 0; B < E.length; B++) {
- var D = E[B];
- if (lobbyMatchesFilter(D, C)) {
- A.push(D)
- }
- }
- } else {
- A = E
- }
- A = sortLobbiesByKey(A, C.sortField, C.sortAscending);
- return A
- }
- function filterRegionLocked(A) {
- return A.filter(function(B) {
- return !B.regionLock || B.region == myRegion || hasPermission("JOIN_REGION_LOCKED_SLOT")
- })
- }
- function lobbyMatchesFilter1(B) {
- if ($.cookie("filter") == undefined) {
- return true
- }
- var A = JSON.parse($.cookie("filter"));
- if (A.filterEnabled) {
- return lobbyMatchesFilter(B, A)
- }
- return true
- }
- function lobbyMatchesFilter(B, A) {
- if (A.mumbleRequired == true && !B.mumbleRequired == true) {
- return false
- }
- if (A.advancedOnly == true && !B.advanced == true) {
- return false
- }
- if (!arrayContainsGameType(A.gameTypes, B.gameType)) {
- return false
- }
- if (!arrayContainsRegion(A.locations, B.region)) {
- return false
- }
- if (!arrayContainsMapType(A.mapTypes, B.map)) {
- return false
- }
- return true
- }
- function arrayContainsGameType(C, A) {
- if (C.length == 0) {
- return true
- }
- switch (A) {
- case "Highlander":
- A = "HIGHLANDER";
- break;
- case "6v6":
- A = "_6VS6";
- break;
- case "4v4":
- A = "_4VS4";
- break;
- case "Ultiduo":
- A = "ULTIDUO";
- break;
- case "BBall":
- A = "BBALL";
- break;
- case "Test 1v1":
- A = "TEST2";
- break;
- case "NoobParty":
- A = "NOOBPARTY";
- break
- }
- for (var B = 0; B < C.length; B++) {
- if (A == C[B]) {
- return true
- }
- }
- return false
- }
- function arrayContainsRegion(C, D) {
- if (C.length == 0) {
- return true
- }
- var A;
- switch (D) {
- case "EU":
- A = "EUROPE";
- break;
- case "NA":
- A = "NORTH_AMERICA";
- break;
- case "SA":
- A = "SOUTH_AMERICA";
- break;
- case "RU":
- A = "RUSSIA";
- break;
- case "AS":
- A = "ASIA";
- break;
- case "AF":
- A = "AFRICA";
- break;
- case "AU":
- A = "OCEANIA";
- break
- }
- for (var B = 0; B < C.length; B++) {
- if (A == C[B]) {
- return true
- }
- }
- return false
- }
- function arrayContainsMapType(B, C) {
- if (B.length == 0) {
- return true
- }
- var E = C.split("_")[0];
- var D;
- switch (E) {
- case "cp":
- D = "CONTROL_POINT";
- break;
- case "pl":
- D = "PAYLOAD";
- break;
- case "koth":
- D = "KOTH";
- break;
- case "ctf":
- D = "CTF";
- break;
- case "sd":
- D = "SPECIAL_DELIVERY";
- break;
- case "mvm":
- D = "MVM";
- break
- }
- for (var A = 0; A < B.length; A++) {
- if (D == B[A]) {
- return true
- }
- }
- return false
- }
- function sortLobbiesByKey(A, C, D) {
- var E;
- switch (C) {
- case "map.name":
- E = "map";
- break;
- case "restriction":
- E = "restrictionsText";
- break;
- case "location":
- E = "region";
- break;
- case "gameType":
- E = "gameType";
- break;
- default:
- E = "no"
- }
- var B = A.sort(function(H, G) {
- if (H.advanced && !G.advanced) {
- return -1
- }
- if (!H.advanced && G.advanced) {
- return 1
- }
- var F = sort(H, G, E);
- return D ? F : 1 - F
- });
- return B
- }
- function sort(C, B, D) {
- var A = C[D];
- var E = B[D];
- if (A == E) {
- return C.no < B.no ? -1 : 1
- }
- return ((A < E) ? -1 : 1)
- }
- $(document).ready(function() {
- $(document).bind("tf2center.overview.refresh-substitutes", function(E, D) {
- $("#substituteRequests").children().remove();
- if (myLobbiesPlayed < 20) {
- return
- }
- var C = 0;
- for (var B = 0; B < D.data.length && C < maxSubsToDisplay; B++) {
- var A = createSubstituteRequest(D.data[B]);
- if (typeof A !== undefined) {
- $("#substituteRequests").append(A);
- C++
- }
- }
- })
- });
- function createSubstituteRequest(B) {
- if (!($.isEmptyObject(B.restrictions)) && !(userCanOverrideRestrictedSlots(B.leaderSteamId)) && !(meetsRestrictions(B.restrictions))) {
- return
- }
- if (!substituteRequestMatchesFilter(B)) {
- return
- }
- var D = $(".substituteRequest.templateHolder div.lobbySubPanel").clone();
- var C = generateRequestId(B);
- D.attr("id", C);
- D.find("a.joinLink").attr("href", B.joinLink);
- D.find("a.joinLink").attr("onClick", 'if (!confirm("' + getConfirmText(B) + '"))return false;');
- D.find(".icons.flags").addClass(B.region.toLowerCase());
- D.find(".lobbySubClass").addClass(B.team);
- D.find(".subName .icons.classes").addClass(getCssClassForTf2Class(B.tf2Class));
- D.find(".subName .displayName").text(B.className);
- D.find(".mapName").text(B.map);
- D.find(".gameType").text(B.gameType);
- D.addClass(B.advanced ? "advanced" : "manual");
- if (B.mumbleRequired == false) {
- D.find(".mumbleReq").addClass("hidden")
- }
- if ($.isEmptyObject(B.restrictions)) {
- D.find(".requirements").text("None")
- } else {
- var A = createStatsPanel(B.restrictions, B.leaderSteamId);
- D.find(".requirements").html(A)
- }
- var notification = new Notification(B.map,{
- tag: C,
- icon:"", //TODO: Think of way to use icons since we aren't given information, maybe a switch statement ick
- body:"Team: " + B.team.charAt(0).toUpperCase() + B.team.substring(1) + "\r\nClass: " + B.className + "\r\nGame Type: " + B.gameType + "\r\nCountry: " + B.region
- });
- notification.onclick = function() {
- window.open(B.joinLink, '_blank');
- };
- notification.onshow = function () { setTimeout(notification.close.bind(notification), 5000); };
- return D
- }
- function getConfirmText(A) {
- return "Are you sure you wish to take this sub as " + A.region + " " + A.team.toUpperCase() + " " + A.tf2Class.toUpperCase() + "?"
- }
- function generateRequestId(A) {
- return "subRequest-" + A.lobbyNo + "-" + A.slotIndex
- }
- function substituteRequestMatchesFilter(B, A) {
- if (B.regionLock && B.region != myRegion) {
- return false
- }
- if ($.cookie("filter") == undefined) {
- return true
- }
- var A = JSON.parse($.cookie("filter"));
- if (A.filterEnabled != true) {
- return true
- }
- if (A.mumbleRequired == true && !B.mumbleRequired == true) {
- return false
- }
- if (A.advancedOnly == true && !B.advanced == true) {
- return false
- }
- if (!arrayContainsGameType(A.gameTypes, B.gameType)) {
- return false
- }
- if (!arrayContainsRegion(A.locations, B.region)) {
- return false
- }
- if (!arrayContainsMapType(A.mapTypes, B.map)) {
- return false
- }
- return true
- }
- function testSubstituteRequestPanel() {
- var A = {
- lobbyNo: "1234",
- leaderSteamId: "76561197985830365",
- joinLink: "/join/lobby/1234/red/scout",
- slotIndex: 5,
- region: "EU",
- mumbleRequired: false,
- map: "koth_lakeside_final",
- gameType: "Highlander",
- team: "red",
- tf2Class: "roamer",
- className: "Soldier",
- advanced: true,
- restrictions: {
- hours: 1500,
- reliability: 85
- }
- };
- console.log(A);
- $("#substituteRequests").append(createSubstituteRequest(A));
- A = {
- lobbyNo: "1235",
- leaderSteamId: "76561197985822365",
- joinLink: "/join/lobby/1234/red/scout",
- slotIndex: 5,
- region: "EU",
- mumbleRequired: false,
- map: "koth_pro_viaduct_rc4",
- gameType: "Highlander",
- team: "red",
- tf2Class: "demoman",
- className: "Demoman",
- advanced: false,
- restrictions: {}
- };
- $("#substituteRequests").append(createSubstituteRequest(A));
- A = {
- lobbyNo: "1236",
- leaderSteamId: "76561197985822365",
- joinLink: "/join/lobby/1234/red/scout",
- slotIndex: 5,
- region: "NA",
- regionLock: true,
- mumbleRequired: false,
- map: "pl_badwater",
- gameType: "Highlander",
- team: "blue",
- tf2Class: "scout",
- className: "Scout",
- restrictions: {
- hours: 750,
- games: 150,
- reliability: 85
- }
- };
- $("#substituteRequests").append(createSubstituteRequest(A))
- }
- function createStatsPanel(E, D) {
- var C = $(".restrictedSlotStats.templateHolder div.statsContainer").clone();
- var G;
- var A;
- var B;
- var F = canOverrideRestrictedSlots;
- if (!F && typeof D !== "undefined") {
- F = userCanOverrideRestrictedSlots(D)
- }
- if (F) {
- G = "darkgrey";
- A = "darkgrey";
- B = "darkgrey"
- } else {
- if (meetsHoursRestriction(E.hours)) {
- G = "green"
- } else {
- G = "red"
- }
- if (meetsMinimumLobbiesRestriction(E.games)) {
- A = "green"
- } else {
- A = "red"
- }
- if (meetsReliabilityRestriction(E.reliability)) {
- B = "green"
- } else {
- B = "red"
- }
- }
- C.find(".hours.value").text(E.hours > 0 ? E.hours : 0);
- C.find(".lobbies.value").text(E.games > 0 ? E.games : 0);
- C.find(".reliability.value").text(E.reliability > 0 ? E.reliability : 0);
- C.find(".hours").addClass(G);
- C.find(".lobbies").addClass(A);
- C.find(".reliability").addClass(B);
- return C
- }
- var friendsOnline = new Array();
- var diffSinceLastPlayersOnlineScrollGeneration = 0;
- $(document).ready(function() {
- setupPlayersOnlineScrollPane();
- $(document).bind("tf2center.refresh-players-online", function(B, C) {
- $(".playerScrollContainer .jspPane").children().remove();
- for (var A = 0; A < C.data.length; A++) {
- $(".playerScrollContainer .jspPane").append(createPlayerOnlineRow(C.data[A]))
- }
- playersOnlineCount = C.data.length;
- sortPlayersOnline();
- setupPlayersOnlineScrollPane();
- setupFriendsOnlineCount(C.data)
- });
- $(document).bind("tf2center.player-login", function(C, B) {
- for (var A = 0; A < B.data.length; A++) {
- if (isSteamFriend(B.data[A].steamId)) {
- incFriendsOnline(B.data[A].steamId)
- }
- addPlayerInLine(B.data[A]);
- diffSinceLastPlayersOnlineScrollGeneration = diffSinceLastPlayersOnlineScrollGeneration + 1
- }
- if (Math.abs(diffSinceLastPlayersOnlineScrollGeneration) >= 5) {
- setupPlayersOnlineScrollPane()
- }
- });
- $(document).bind("tf2center.player-logout", function(B, C) {
- for (var A = 0; A < C.data.length; A++) {
- if (isSteamFriend(C.data[A])) {
- decFriendsOnline(C.data[A])
- }
- removePlayerRow(C.data[A]);
- diffSinceLastPlayersOnlineScrollGeneration = diffSinceLastPlayersOnlineScrollGeneration - 1
- }
- if (Math.abs(diffSinceLastPlayersOnlineScrollGeneration) >= 5) {
- setupPlayersOnlineScrollPane()
- }
- });
- $(".playerScrollContainer").removeClass("hidden")
- });
- function setupFriendsOnlineCount(C) {
- for (var A = 0; A < C.length; A++) {
- var B = C[A].steamId;
- if (isSteamFriend(B)) {
- incFriendsOnline(B)
- }
- }
- showFriendsOnlineCounter()
- }
- function incFriendsOnline(A) {
- if ($.inArray(A, friendsOnline) == -1) {
- friendsOnline.push(A);
- showFriendsOnlineCounter()
- }
- }
- function decFriendsOnline(B) {
- var A = friendsOnline.indexOf(B);
- if (A > -1) {
- friendsOnline.splice(A, 1);
- showFriendsOnlineCounter()
- }
- }
- function showFriendsOnlineCounter() {
- $("#friendsOnline").text(friendsOnline.length)
- }
- function addPlayerInLine(D) {
- if ($('.friend-row[steamid="' + D.steamId + '"]').length) {
- return
- }
- var C = createPlayerOnlineRow(D);
- var A = isSteamFriend(D.steamId);
- var B = false;
- $("#players-online .friend-row").each(function() {
- var E = ($(this).attr("friend") == "true");
- if (E && !A) {
- return
- }
- if ((A && !E) || $(this).attr("steamname").localeCompare(D.playerName) === 1) {
- C.insertBefore($(this));
- B = true;
- return false
- }
- });
- if (!B) {
- $(".playerScrollContainer .jspPane").append(C)
- }
- }
- function createPlayerOnlineRow(B) {
- var A = $(".singleSpectatorRow.templateHolder div.friend-row").clone();
- if (isSteamFriend(B.steamId)) {
- A.attr("friend", "true");
- A.find(".friend-icon.icons.person").addClass("friend")
- }
- A.attr("steamname", B.playerName);
- A.attr("steamId", B.steamId);
- A.find(".name").text(B.playerName);
- A.find("a.profileLink").attr("href", "/profile/" + B.steamId);
- return A
- }
- function removePlayerRow(A) {
- $('.friend-row[steamid="' + A + '"]').remove()
- }
- function setupPlayersOnlineScrollPane() {
- if (!$(".playerScrollContainer.scrollable").length) {
- return
- }
- var A = $(".playerScrollContainer.scrollable").jScrollPane().data("jsp");
- if (A != null && A.getPercentScrolledY() == 1) {
- A.scrollToPercentY(100)
- } else {
- $(".playerScrollContainer.scrollable").jScrollPane({
- maintainPosition: true
- })
- }
- diffSinceLastPlayersOnlineScrollGeneration = 0
- }
- function sortPlayersOnline() {
- $(".playerScrollContainer .jspPane div.friend-row").sort(function(B, A) {
- try {
- var D = $(B).attr("friend") == "true";
- var C = $(A).attr("friend") == "true";
- if (D !== C) {
- return (D && !C) ? -1 : 1
- }
- return $(B).attr("steamname").localeCompare($(A).attr("steamname"))
- } catch (E) {
- return 0
- }
- }).appendTo(".playerScrollContainer .jspPane")
- }
- var slider;
- var notifications;
- var currentNotification;
- $(document).ready(function() {
- notifications = $.parseJSON(notificationsJsonStr);
- var D = 0;
- var C = false;
- var B = false;
- var E = true;
- for (var A = 0; A < notifications.length; A++) {
- $("#notificationSlider").append(createDOMNotification(notifications[A]));
- if (isLoggedIn()) {
- if (notifications[A].created > notificationLastRead) {
- C = true;
- if (notifications[A].level == "CRITICAL" || notifications[A].level == "BAN") {
- B = true;
- D = A
- }
- if (!B) {
- D = A
- }
- }
- }
- }
- $(document).bind("tf2center.notification-added", function(F, H) {
- notifications.unshift(H.data);
- $("#notificationSlider").prepend(createDOMNotification(H.data));
- var G = slider.getCurrentSlide();
- slider.reloadSlider();
- if (H.data.level == "CRITICAL") {
- playIncomingSoundHeavy();
- slider.goToSlide(getFirstUnreadIndex());
- openNotifications()
- } else {
- if (H.data.level == "BAN") {
- playBanPing();
- slider.goToSlide(getFirstUnreadIndex());
- openNotifications()
- } else {
- if ($(".notificationButton").is(".active")) {
- calSetToday();
- slider.goToSlide(G + 1);
- $("#notificationSlider, .bx-wrapper").hide().show();
- $("#notificationSlider .notificationBox").first().hide().prop("z-index", 0)
- } else {
- if (getUnreadCount() == 1) {
- slider.goToSlide(0)
- }
- }
- updateUnreadCounter(true)
- }
- }
- });
- if ($(".notificationButton.enabled").length) {
- setInterval(function() {
- if (!$(".notificationButton").is(".active")) {
- if (getUnreadCount() > 0) {
- $(".notificationButton .red").fadeTo(500, 0.1).fadeTo(900, 1)
- }
- }
- }, 500 + 900)
- }
- if ($("#notificationSlider").length) {
- slider = $("#notificationSlider").bxSlider({
- startSlide: D,
- slideWidth: 718,
- minSlides: 1,
- maxSlides: 1,
- slideMargin: 14,
- mode: "fade",
- speed: 300,
- pager: false,
- infiniteLoop: true,
- hideControlOnEnd: false,
- onSliderLoad: function(F) {
- if (E) {
- E = false;
- if (B && isLoggedIn()) {
- openNotifications()
- }
- }
- },
- onSlideNext: function(F) {
- showNotification(getNotificationById(+(F.find(".id").text())))
- },
- onSlidePrev: function(F) {
- showNotification(getNotificationById(+(F.find(".id").text())))
- }
- });
- $(".notificationCalendar").pickmeup({
- flat: true,
- format: "Y-m-d",
- render: function(G) {
- var F = getCssClassForDate(G);
- if (F != null) {
- return {
- class_name: F
- }
- }
- return {
- disabled: true
- }
- },
- change: function(F) {
- var G = getNotificationIndexByDate(new Date(F));
- slider.goToSlide(G);
- showNotification(notifications[G])
- }
- });
- $(".notificationToday a").click(function() {
- calSetToday()
- });
- $(".notificationButton.enabled").click(function() {
- toggleNotifications()
- });
- $(".notificationClose").click(function() {
- closeNotifications()
- });
- if (isLoggedIn()) {
- if (C) {
- updateUnreadCounter(true);
- if (B) {
- playIncomingSoundHeavy();
- openNotifications()
- }
- } else {
- clearUnreadCounter()
- }
- }
- } else {
- updateUnreadCounter(true)
- }
- if (!isLoggedIn()) {
- notificationLastRead = new Date().getTime();
- clearUnreadCounter()
- }
- });
- function preview(D, C, B) {
- playIncomingSoundHeavy = function() {}
- ;
- var A = {
- id: 1,
- created: new Date().getTime(),
- dateDay: "12",
- dateMonth: "DEC",
- level: D,
- title: $("<div/>").text(C).html(),
- message: $("<div/>").text(B).html(),
- author: "TF2Center"
- };
- $(document).trigger("tf2center.notification-added", {
- data: A
- });
- showNotification(A);
- openNotifications()
- }
- function isLoggedIn() {
- return mySteamId != ""
- }
- function showNotification(A) {
- currentNotification = A;
- updateNotificationLastRead(A);
- applyHeader(A.level == "REGULAR");
- calSetDate(A.created)
- }
- function createDOMNotification(B) {
- var A = $("#notificationTemplate").clone();
- A.find(".id").text(B.id);
- A.find(".date").text(B.dateDay);
- A.find(".month").text(B.dateMonth);
- A.find("h1").html($("<span />").html(B.title).text());
- A.find(".notificationText").html($("<span />").html(B.message).text());
- A.addClass(B.level == "CRITICAL" || B.level == "BAN" ? "critical" : "regular");
- A.removeAttr("style");
- A.removeAttr("id");
- return A
- }
- function applyHeader(C) {
- var A = C ? "regular" : "critical";
- var B = C ? "critical" : "regular";
- $("#mainHeader").removeClass(B).addClass(A);
- $("#mainHeader .backgroundMain").removeClass(B).addClass(A)
- }
- function showUnreadCounter(A) {
- $(".notificationButton .icons").removeClass("grey").addClass("red").text(A)
- }
- function clearUnreadCounter() {
- $(".notificationButton .icons").removeClass("red").addClass("grey").text("")
- }
- function calSetToday() {
- calSetDate(new Date())
- }
- function calSetDate(A) {
- $(".notificationCalendar").pickmeup("set_date", A)
- }
- function toggleNotifications() {
- if ($(".notificationButton").toggleClass("active").is(".active")) {
- openNotifications()
- } else {
- closeNotifications()
- }
- }
- function openNotifications() {
- var A = getCurrentNotification();
- if (A != null) {
- $(".notificationButton").addClass("active");
- $("#mainHeader .backgroundLeft").css("visibility", "hidden");
- $(".lobbyVoteCreate, .mostVotedMaps, .speechBubbleText, .lobbyHeader, .userProfile, .editProfile, .userProfileAdminButtons").hide();
- $(".notificationClose, #notificationSlider, .bx-wrapper, .notificationCalendar, .notificationToday").show();
- showNotification(getCurrentNotification())
- }
- }
- function getCurrentNotification() {
- var A = slider ? slider.getCurrentSlide() : 0;
- var B = $($("#notificationSlider .notificationBox").get(A));
- return getNotificationById(+(B.find(".id").text()))
- }
- function closeNotifications() {
- $(".notificationButton").removeClass("active");
- $("#mainHeader").removeClass("critical regular");
- $("#mainHeader .backgroundMain").removeClass("critical regular");
- $("#mainHeader .backgroundLeft").css("visibility", "visible");
- $(".bx-wrapper, .notificationClose, .notificationCalendar, .notificationToday").hide();
- $(".lobbyVoteCreate, .mostVotedMaps, .speechBubbleText, .lobbyHeader, .userProfile, .editProfile, .userProfileAdminButtons").show()
- }
- function updateNotificationLastRead(A) {
- if (A != null) {
- if (A.created > notificationLastRead) {
- notificationLastRead = A.created;
- $.get("/notifications/lastread/" + notificationLastRead)
- }
- updateUnreadCounter()
- }
- }
- function updateUnreadCounter(A) {
- var B = getUnreadCount();
- if (B > 0) {
- if (A) {
- showUnreadCounter(B)
- } else {
- $("#notificationUnreadCounter").text(B)
- }
- } else {
- clearUnreadCounter()
- }
- }
- function getFirstUnreadIndex() {
- for (var A = 0; A < notifications.length; A++) {
- if (notifications[A].created > notificationLastRead) {
- return A
- }
- }
- return 0
- }
- function getUnreadCount() {
- var B = 0;
- for (var A = 0; A < notifications.length; A++) {
- if (notifications[A].created > notificationLastRead) {
- B++
- }
- }
- return B
- }
- function getNotificationById(B) {
- for (var A = 0; A < notifications.length; A++) {
- if (notifications[A].id == B) {
- return notifications[A]
- }
- }
- return null
- }
- function getCssClassForDate(A) {
- var B = getNotificationByDate(A);
- var C = B != null && currentNotification && datesEqual(new Date(currentNotification.created), A) ? " active" : "";
- return B != null ? B.level == "CRITICAL" || B.level == "BAN" ? "critical" + C : "regular" + C : null
- }
- function getNotificationByDate(A) {
- for (var B = 0; B < notifications.length; B++) {
- if (datesEqual(new Date(notifications[B].created), A)) {
- return notifications[B]
- }
- }
- return null
- }
- function getNotificationIndexByDate(A) {
- for (var B = 0; B < notifications.length; B++) {
- if (datesEqual(new Date(notifications[B].created), A)) {
- return B
- }
- }
- return 0
- }
- function datesEqual(B, A) {
- B.setHours(0, 0, 0, 0);
- A.setHours(0, 0, 0, 0);
- return B.getTime() == A.getTime()
- }
- var ws;
- var wsOpened = false;
- var WS_CHECK_TIMEOUT_SEC = 7;
- var WS_CHECK_JUST_STARTED_TIMEOUT_SEC = 30;
- $(document).ready(function() {
- openWebSocket();
- scheduleCheck()
- });
- function openWebSocket() {
- console.info("openWebSocket()");
- try {
- ws = new WebSocket(getWebsocketPath());
- ws.onopen = function(event) {
- console.debug("websocket successfully established")
- }
- ;
- ws.onclose = function(event) {
- console.warn("websocket disconnected; reconnecting...");
- setTimeout(function() {
- window.location.reload()
- }, 40000 + Math.floor(Math.random() * 30000))
- }
- ;
- ws.onmessage = function(event) {
- wsOpened = true;
- console.debug(event.data);
- try {
- if (event.data.indexOf('<?xml version="1.0" encoding="UTF-8"?>') === 0) {
- Wicket.Ajax.process(event.data)
- } else {
- eval(event.data)
- }
- } catch (e) {
- console.error("failed to process websocket data: " + event.data + " | " + e)
- }
- }
- ;
- ws.onerror = function(event) {
- console.error("ws.onerror(): " + event)
- }
- } catch (e) {
- console.error(e)
- }
- }
- function scheduleCheck() {
- setTimeout(function() {
- var A = window.location;
- if (!wsOpened && A.pathname.indexOf("/lobbies") == 0) {
- if (A.host == "tf2center.com" && A.protocol === "http:") {
- window.location = "https://" + A.host + A.pathname
- } else {
- console.warn("failed to open websocket; reloading page...");
- window.location.reload()
- }
- }
- }, (hasJustStarted ? WS_CHECK_JUST_STARTED_TIMEOUT_SEC : WS_CHECK_TIMEOUT_SEC) * 1000)
- }
- function getWebsocketPath() {
- var B = window.location, A;
- if (B.protocol === "https:") {
- A = "wss:"
- } else {
- A = "ws:"
- }
- A += "//" + ((B.host === "tf2center.com" || B.host === "www.tf2center.com") ? "ws.tf2center.com" : B.host);
- A += "/ws" + B.pathname;
- return A
- }
- Element.prototype.isVisible = function(E, C) {
- function B(J, L, G, I) {
- var K = J.parentNode;
- if (!D(J)) {
- return false
- }
- if (K.nodeType == 9 || J.tagName == "BODY") {
- return true
- }
- var H = $(J);
- var F = (J === I);
- if (A(J, "opacity") < 1 || A(J, "display") == "none" || A(J, "visibility") == "hidden" || H.width() < L || H.height() < G || (F && (A(J, "left") != "0px" || A(J, "top") != "0px" || A(J, "margin-left") != "0px" || A(J, "padding-left") != "0px"))) {
- return false
- }
- if (K) {
- return B(K, L, G, J)
- }
- return true
- }
- function A(F, G) {
- if (window.getComputedStyle) {
- return document.defaultView.getComputedStyle(F, null)[G]
- }
- if (F.currentStyle) {
- return F.currentStyle[G]
- }
- }
- function D(F) {
- while (F = F.parentNode) {
- if (F == document) {
- return true
- }
- }
- return false
- }
- return B(this, E, C, this)
- }
- ;
Add Comment
Please, Sign In to add comment