MH King's Crowns+

Platinum Crowns, Locked Favorites, and More!

当前为 2019-04-13 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name MH King's Crowns+
  3. // @author Ben Loll - Warden Slayer#2302
  4. // @namespace https://greasyfork.org/en/users/227259-wardenslayer
  5. // @version 1.5.4
  6. // @description Platinum Crowns, Locked Favorites, and More!
  7. // @include https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js
  8. // @include http://www.mousehuntgame.com/*
  9. // @include https://www.mousehuntgame.com/*
  10. // ==/UserScript==
  11. //===================================================================================
  12. $(document).ready(function() {
  13. var observer = new MutationObserver(callback);
  14. var observerOptions = {
  15. childList: true,
  16. attributes: false,
  17. subtree: false,
  18. };
  19. observer.observe($("#tabbarContent_page_2").get(0), observerOptions);
  20. });
  21. //
  22. function callback(mutationList, observer) {
  23. mutationList.forEach((mutation) => {
  24. switch(mutation.type) {
  25. case 'childList':
  26. console.log("Mutation",localStorage.getItem('haltCode'))
  27. if (localStorage.getItem('haltCode') == "Y") {
  28. localStorage.setItem('haltCode', "N")
  29. break;
  30. }
  31. buildToolbar()
  32. if (localStorage.getItem('ShowAllCrowns') == "Y") {
  33. buildCrownHeaders();
  34. sortCrowns();
  35. }
  36. if (localStorage.getItem('ShowCommunityRanks') == "Y") {
  37. showCommunityRanks()
  38. }
  39. if (localStorage.getItem('Lock Favorites') == "Y" && $(".favoriteCrownToggle.crownAction").length > 0 ) {
  40. lockFavorites();
  41. } else {
  42. $(".crownheader.crownheadertop").css("background","url('https://image.flaticon.com/icons/svg/189/189671.svg') no-repeat left top")
  43. }
  44. localStorage.setItem('haltCode', "Y");
  45. break;
  46. }
  47. })
  48. };
  49. //
  50. function buildToolbar(){
  51. if ($('.toolBar').length > 0)
  52. return;
  53. var toolBar = document.createElement("div");
  54. toolBar.classList.add('toolBar')
  55. //Lock Favs Cb
  56. var lockFavs = document.createElement('input');
  57. lockFavs.type = "checkbox";
  58. lockFavs.name = "lockFavs";
  59. lockFavs.value = "";
  60. lockFavs.id = "lockFavs";
  61. if (localStorage.getItem('LockFavs') == "Y") {
  62. lockFavs.checked = "Yes";
  63. } else {
  64. lockFavs.checked = "";
  65. }
  66. var lockFavsLabel = document.createElement('label')
  67. lockFavsLabel.htmlFor = "lockFavsLabel";
  68. lockFavsLabel.appendChild(document.createTextNode('Lock Favorites'));
  69. if($(".favoriteCrownToggle.crownAction").length > 0 ) {
  70. toolBar.appendChild(lockFavs);
  71. toolBar.appendChild(lockFavsLabel);
  72. }
  73. //All Crowns Cb
  74. var showAllCrowns = document.createElement('input');
  75. showAllCrowns.type = "checkbox";
  76. showAllCrowns.name = "showAllCrowns";
  77. showAllCrowns.value = "";
  78. showAllCrowns.id = "showAllCrowns";
  79. showAllCrowns.checked = "";
  80. if (localStorage.getItem('ShowAllCrowns') == "Y") {
  81. showAllCrowns.checked = "Yes";
  82. } else {
  83. showAllCrowns.checked = "";
  84. }
  85. var showAllCrownsLabel = document.createElement('label')
  86. showAllCrownsLabel.htmlFor = "showAllCrownsLabel";
  87. showAllCrownsLabel.appendChild(document.createTextNode('Show Community Crowns'));
  88. toolBar.appendChild(showAllCrowns);
  89. toolBar.appendChild(showAllCrownsLabel);
  90. //Comminity Ranks Cb
  91. var communityRanks = document.createElement('input');
  92. communityRanks.type = "checkbox";
  93. communityRanks.name = "communityRanks";
  94. communityRanks.value = "";
  95. communityRanks.id = "communityRanks";
  96. communityRanks.checked = "";
  97. if (localStorage.getItem('ShowCommunityRanks') == "Y") {
  98. communityRanks.checked = "Yes";
  99. } else {
  100. communityRanks.checked = "";
  101. }
  102. var communityRanksLabel = document.createElement('label')
  103. communityRanksLabel.htmlFor = "communityRanksLabel";
  104. communityRanksLabel.appendChild(document.createTextNode('Show Community Ranks'));
  105. toolBar.appendChild(communityRanks);
  106. toolBar.appendChild(communityRanksLabel);
  107. //last
  108. var crownBreak = $(".crownbreak").first();
  109. if ($(".crownheader.crownheadertop").length < 1) {
  110. var header = $(".crownbreak").last().clone();
  111. header.insertBefore($(".crownheader.crownheadergold"))
  112. crownBreak = $(header);
  113. }
  114. crownBreak.append(toolBar)
  115. $(".toolBar").css({"float":"right"})
  116. };
  117. //================================= Lock Favs ====================================
  118. //
  119. $(document).on('change', '#lockFavs', function() {
  120. if ((window.location.href).includes("profile.php")&&$("#tabbarContent_page_2").hasClass("active")) {
  121. //
  122. //check to see if the cb was JUST checked
  123. if(this.checked) {
  124. // Put the checked value into storage
  125. localStorage.setItem('LockFavs', "Y");
  126. lockFavs.checked = "Yes";
  127. lockFavorites();
  128. } else {
  129. // Put the checked value into storage
  130. localStorage.setItem('LockFavs', "N");
  131. lockFavs.checked = "";
  132. unlockFavorites();
  133. }
  134. }
  135. });
  136. //
  137. function lockFavorites(){
  138. localStorage.setItem('Lock Favorites',"Y")
  139. if($(".mousebox.favorite").length < 0) {
  140. localStorage.setItem('LockFavs', "N");
  141. lockFavs.checked = "";
  142. return;
  143. }
  144. var allMice = $(".favoriteCrownToggle.crownAction");
  145. allMice.css( 'pointer-events', 'none' );
  146. $(".nocrowns.crownAction").css( 'pointer-events', 'none' );
  147. $(".crownheader.crownheadertop").css("background","url('https://image.flaticon.com/icons/svg/204/204310.svg') no-repeat left top");
  148. }
  149. function unlockFavorites(){
  150. localStorage.setItem('Lock Favorites',"N")
  151. var allMice = $(".favoriteCrownToggle.crownAction");
  152. allMice.css('pointer-events', 'auto');
  153. $(".nocrowns.crownAction").css( 'pointer-events', 'auto' );
  154. $(".crownheader.crownheadertop").css("background","url('https://image.flaticon.com/icons/svg/189/189671.svg') no-repeat left top");
  155. }
  156. //================================== Crowns =====================================
  157. //
  158. $(document).on('change', '#showAllCrowns', function() {
  159. if ((window.location.href).includes("profile.php")&&$("#tabbarContent_page_2").hasClass("active")) {
  160. //
  161. //check to see if the cb was JUST checked
  162. if(this.checked) {
  163. // Put the checked value into storage
  164. localStorage.setItem('ShowAllCrowns', "Y");
  165. showAllCrowns.checked = "Yes";
  166. buildCrownHeaders();
  167. sortCrowns();
  168. } else {
  169. // Put the checked value into storage
  170. localStorage.setItem('ShowAllCrowns', "N");
  171. showAllCrowns.checked = "";
  172. hideCrowns();
  173. }
  174. }
  175. });
  176. //
  177. function buildCrownHeaders () {
  178. var crownBreak = $(".crownbreak").first();
  179. var spacer1 = $(".crownbreak").last().clone().attr('id', 'spacer1');
  180. var spacer2 = spacer1.clone().attr('id', 'spacer2');
  181. var spacer3 = spacer1.clone().attr('id', 'spacer3');
  182. var platinumHeader = $("<div class='crownheader crownheaderplatinum'>Platinum Crowns <span class='crownquantity'></span> <div class='crownnote'>Earned at 1000 catches</div></div>")
  183. var diamondHeader = $("<div class='crownheader crownheaderdiamond'>Diamond Crowns <span class='crownquantity'></span> <div class='crownnote'>Earned at 2500 catches</div></div>")
  184. var masterHeader = $("<div class='crownheader crownheadermaster'>Master Crowns <span class='crownquantity'></span> <div class='crownnote'>Earned at 5000 catches</div></div>")
  185. //Add Larry Later <10
  186. //
  187. //Plat
  188. var allMice = $(".mousebox");
  189. var allGold = allMice.find(".numcatches.gold");
  190. if (allGold.filter(function(index){
  191. if($(this).text() >= 1000){
  192. return true;
  193. } else {
  194. return false;
  195. }
  196. }).length > 0 && $(".crownheader.crownheaderplatinum").length < 1) {
  197. platinumHeader.insertAfter(crownBreak);
  198. spacer3.insertAfter(platinumHeader);
  199. }
  200. //Diamond
  201. if (allGold.filter(function(index){
  202. if($(this).text() >= 2500){
  203. return true;
  204. } else {
  205. return false;
  206. }
  207. }).length > 0 && $(".crownheader.crownheaderdiamond").length < 1) {
  208. diamondHeader.insertAfter(crownBreak);
  209. spacer1.insertAfter(diamondHeader);
  210. }
  211. //Master
  212. if (allGold.filter(function(index){
  213. if($(this).text() >= 5000){
  214. return true;
  215. } else {
  216. return false;
  217. }
  218. }).length > 0 && $(".crownheader.crownheadermaster").length < 1) {
  219. masterHeader.insertAfter(crownBreak);
  220. spacer2.insertAfter(masterHeader);
  221. }
  222.  
  223. }
  224. function sortCrowns() {
  225. //Plat
  226. var boolean = false;
  227. if ($(".crownheader.crownheaderplatinum").length > 0) {
  228. sortPlatinum()
  229. boolean = true;
  230. }
  231. //Diamond
  232. if ($(".crownheader.crownheaderdiamond").length > 0) {
  233. sortDiamond()
  234. boolean = true;
  235. }
  236. //Master
  237. if ($(".crownheader.crownheadermaster").length > 0) {
  238. sortMaster()
  239. boolean = true;
  240. }
  241. //Favorites
  242. if ($(".crownheader.crownheadertop").length > 0) {
  243. sortFavotitesAfterSort()
  244. }
  245. if (boolean == true) {
  246. if ($(".mousebox").find(".numcatches.diamond").length < 1){
  247. $(".crownheader.crownheaderdiamond").remove();
  248. } else if ($(".mousebox").find(".numcatches.plat").length < 1){
  249. $(".crownheader.crownheaderplatinum").remove();
  250. } else if ($(".mousebox").find(".numcatches.gold").length < 1) {
  251. $(".crownheader.crownheadergold").remove();
  252. }
  253. }
  254. if ($(".crownheader.crownheadercommunity").length > 0 ) {
  255. var crownBreak = $(".crownbreak").first();
  256. $(".crownheader.crownheadercommunity").insertAfter(crownBreak);
  257. $("#spacer4").insertAfter($(".crownheader.crownheadercommunity"));
  258. $(".rank.summary").insertAfter($(".crownheader.crownheadercommunity"))
  259. }
  260. }
  261. function sortPlatinum() {
  262. var allMice = $(".mousebox");
  263. var allGold = allMice.find(".numcatches.gold");
  264. var allPlatinum = allGold.filter(function(index) {
  265. if ($(this).text() >= 1000 && $(".mousebox").length > 0) {
  266. return true;
  267. } else {
  268. return false;
  269. }
  270. })
  271. if($(".favoriteCrownToggle.crownAction").length > 0 ) {
  272. allPlatinum = allPlatinum.parent().parent().not(".mousebox.favorite").parent();
  273. } else {
  274. allPlatinum = allPlatinum.parent().parent().not(".mousebox.favorite");
  275. }
  276. var platinumHeader = $(".crownheader.crownheaderplatinum")
  277. var goldHeader = $(".crownheader.crownheadergold")
  278. allPlatinum.insertAfter(platinumHeader);
  279. allPlatinum.find(".numcatches.gold").removeClass("numcatches gold").addClass("numcatches plat");
  280. localStorage.setItem('PlatCrownCount', allPlatinum.length);
  281. var goldQuantity = goldHeader.find(".crownquantity").text().replace(/[{()}]/g, '');
  282. goldHeader.find(".crownquantity").text("("+(parseInt(goldQuantity,10)-localStorage.getItem('PlatCrownCount'))+")")
  283. platinumHeader.find(".crownquantity").text("("+localStorage.getItem('PlatCrownCount')+")")
  284. platinumHeader.css("background","url('https://i.ibb.co/BfGw6Rj/crown-platinum.png') no-repeat left top");
  285. $(".numcatches.plat").css("background","url('https://i.ibb.co/BfGw6Rj/crown-platinum.png') no-repeat right top");
  286. }
  287. function sortDiamond() {
  288. var allMice = $(".mousebox");
  289. var allPlat = allMice.find(".numcatches.plat");
  290. var allDiamond = allPlat.filter(function(index) {
  291. if ($(this).text() >= 2500 && $(".mousebox").length > 0) {
  292. return true;
  293. } else {
  294. return false;
  295. }
  296. })
  297. if($(".favoriteCrownToggle.crownAction").length > 0 ) {
  298. allDiamond = allDiamond.parent().parent().not(".mousebox.favorite").parent();
  299. } else {
  300. allDiamond = allDiamond.parent().parent().not(".mousebox.favorite");
  301. }
  302. var diamondHeader = $(".crownheader.crownheaderdiamond")
  303. var platinumHeader = $(".crownheader.crownheaderplatinum")
  304. allDiamond.insertAfter(diamondHeader);
  305. allDiamond.find(".numcatches.plat").removeClass("numcatches plat").addClass("numcatches diamond");
  306. localStorage.setItem('DiamondCrownCount', allDiamond.length);
  307. localStorage.setItem('PlatCrownCount',parseInt(localStorage.getItem('PlatCrownCount'),10)-allDiamond.length);
  308. platinumHeader.find(".crownquantity").text("("+parseInt(localStorage.getItem('PlatCrownCount'),10)+")")
  309. diamondHeader.find(".crownquantity").text("("+parseInt(localStorage.getItem('DiamondCrownCount'),10)+")")
  310. diamondHeader.css("background","url('http://www.simpleimageresizer.com/_uploads/photos/5ad3f9dc/diamond_30x30.png') no-repeat left top");
  311. $(".numcatches.diamond").css("background","url('http://www.simpleimageresizer.com/_uploads/photos/5ad3f9dc/diamond_30x30.png') no-repeat right top");
  312. }
  313. function sortMaster() {
  314. var allMice = $(".mousebox");
  315. var allDiamond = allMice.find(".numcatches.diamond");
  316. var allMaster = allDiamond.filter(function(index) {
  317. if ($(this).text() >= 5000 && $(".mousebox").length > 0) {
  318. return true;
  319. } else {
  320. return false;
  321. }
  322. });
  323. if($(".favoriteCrownToggle.crownAction").length > 0 ) {
  324. allMaster = allMaster.parent().parent().not(".mousebox.favorite").parent();
  325. } else {
  326. allMaster = allMaster.parent().parent().not(".mousebox.favorite");
  327. }
  328. var masterHeader = $(".crownheader.crownheadermaster")
  329. var diamondHeader = $(".crownheader.crownheaderdiamond")
  330. allMaster.insertAfter(masterHeader);
  331. allMaster.find(".numcatches.diamond").removeClass("numcatches diamond").addClass("numcatches master");
  332. localStorage.setItem('MasterCrownCount', allMaster.length);
  333. localStorage.setItem('DiamondCrownCount',parseInt(localStorage.getItem('DiamondCrownCount'),10)-allMaster.length);
  334. diamondHeader.find(".crownquantity").text("("+parseInt(localStorage.getItem('DiamondCrownCount'),10)+")")
  335. masterHeader.find(".crownquantity").text("("+parseInt(localStorage.getItem('MasterCrownCount'),10)+")")
  336. masterHeader.css("background","url('http://www.simpleimageresizer.com/_uploads/photos/5ad3f9dc/skull_30x30.png') no-repeat left top");
  337. $(".numcatches.master").css("background","url('http://www.simpleimageresizer.com/_uploads/photos/5ad3f9dc/skull_30x30.png') no-repeat right top");
  338. }
  339. function sortFavotitesAfterSort() {
  340. var topHeader = $(".crownheader.crownheadertop")
  341. var allMice = $(".mousebox.favorite");
  342. var allFavorites = allMice.find(".numcatches.gold");
  343. var nonFavs = $(".mousebox").not(".mousebox favorite");
  344. var goldHeader = $(".crownheader.crownheadergold")
  345. var platinumHeader = $(".crownheader.crownheaderplatinum")
  346. var diamondHeader = $(".crownheader.crownheaderdiamond")
  347. var masterHeader = $(".crownheader.crownheadermaster")
  348. var seen = {};
  349. allFavorites.each(function() {
  350. var txt = $(this).text();
  351. if (seen[txt]) {
  352. //move fav to new crown class
  353. if (txt >= 5000) {
  354. if($(".favoriteCrownToggle.crownAction").length > 0 ) {
  355. $(this).parent().parent().parent().insertAfter(masterHeader);
  356. } else {
  357. $(this).parent().parent().insertAfter(masterHeader);
  358. }
  359. $(this).removeClass("numcatches gold").addClass("numcatches master")
  360. localStorage.setItem('MasterCrownCount', parseInt(localStorage.getItem('MasterCrownCount'),10)+1);
  361. var goldQuantity = goldHeader.find(".crownquantity").text().replace(/[{()}]/g, '');
  362. goldHeader.find(".crownquantity").text("("+(parseInt(goldQuantity,10)-1)+")")
  363. masterHeader.find(".crownquantity").text("("+localStorage.getItem('MasterCrownCount')+")");
  364. $(".numcatches.master").css("background","url('http://www.simpleimageresizer.com/_uploads/photos/5ad3f9dc/skull_30x30.png') no-repeat right top");
  365. var masterResult = filterOutTopFavs($(".numcatches.master").parent().find(".name"))
  366. masterResult = masterResult.parent().find(".numcatches.master")
  367. var masterArray = sortAcsending(masterResult);
  368. masterArray.every(function(cell) {
  369. if($(".favoriteCrownToggle.crownAction").length > 0 ) {
  370. $(cell).parent().parent().parent().detach().insertAfter(masterHeader);
  371. } else {
  372. $(cell).parent().parent().detach().insertAfter(masterHeader);
  373. }
  374. return true;
  375. })
  376. } else if (txt >= 2500) {
  377. if($(".favoriteCrownToggle.crownAction").length > 0 ) {
  378. $(this).parent().parent().parent().insertAfter(diamondHeader);
  379. } else {
  380. $(this).parent().parent().insertAfter(diamondHeader);
  381. }
  382. $(this).removeClass("numcatches gold").addClass("numcatches diamond")
  383. localStorage.setItem('DiamondCrownCount', parseInt(localStorage.getItem('DiamondCrownCount'),10)+1);
  384. var goldQuantity = goldHeader.find(".crownquantity").text().replace(/[{()}]/g, '');
  385. goldHeader.find(".crownquantity").text("("+(parseInt(goldQuantity,10)-1)+")")
  386. diamondHeader.find(".crownquantity").text("("+localStorage.getItem('DiamondCrownCount')+")");
  387. $(".numcatches.diamond").css("background","url('http://www.simpleimageresizer.com/_uploads/photos/5ad3f9dc/diamond_30x30.png') no-repeat right top");
  388. var diamondResult = filterOutTopFavs($(".numcatches.diamond").parent().find(".name"))
  389. diamondResult = diamondResult.parent().find(".numcatches.diamond")
  390. var diamondArray = sortAcsending(diamondResult);
  391. diamondArray.every(function(cell) {
  392. if($(".favoriteCrownToggle.crownAction").length > 0 ) {
  393. $(cell).parent().parent().parent().detach().insertAfter(diamondHeader);
  394. } else {
  395. $(cell).parent().parent().detach().insertAfter(diamondHeader);
  396. }
  397. return true;
  398. })
  399. } else if (txt >= 1000) {
  400. if($(".favoriteCrownToggle.crownAction").length > 0 ) {
  401. $(this).parent().parent().parent().insertAfter(platinumHeader)
  402. } else {
  403. $(this).parent().parent().insertAfter(platinumHeader)
  404. }
  405. $(this).removeClass("numcatches gold").addClass("numcatches plat")
  406. localStorage.setItem('PlatCrownCount', parseInt(localStorage.getItem('PlatCrownCount'),10)+1);
  407. var goldQuantity = goldHeader.find(".crownquantity").text().replace(/[{()}]/g, '');
  408. goldHeader.find(".crownquantity").text("("+(parseInt(goldQuantity,10)-1)+")")
  409. platinumHeader.find(".crownquantity").text("("+localStorage.getItem('PlatCrownCount')+")");
  410. $(".numcatches.plat").css("background","url('https://i.ibb.co/BfGw6Rj/crown-platinum.png') no-repeat right top");
  411. var platResult = filterOutTopFavs($(".numcatches.plat").parent().find(".name"))
  412. platResult = platResult.parent().find(".numcatches.plat")
  413. var platArray = sortAcsending(platResult);
  414. platArray.every(function(cell) {
  415. if($(".favoriteCrownToggle.crownAction").length > 0 ) {
  416. $(cell).parent().parent().parent().detach().insertAfter(platinumHeader)
  417. } else {
  418. $(cell).parent().parent().detach().insertAfter(platinumHeader)
  419. }
  420. return true;
  421. })
  422. }
  423. } else {
  424. //change top fav to new crown class only
  425. if (txt >= 5000) {
  426. $(this).removeClass("numcatches gold").addClass("numcatches master")
  427. $(".numcatches.master").css("background","url('http://www.simpleimageresizer.com/_uploads/photos/5ad3f9dc/skull_30x30.png') no-repeat right top");
  428. } else if (txt >= 2500) {
  429. $(this).removeClass("numcatches gold").addClass("numcatches diamond")
  430. $(".numcatches.diamond").css("background","url('http://www.simpleimageresizer.com/_uploads/photos/5ad3f9dc/diamond_30x30.png') no-repeat right top");
  431. } else if (txt >= 1000) {
  432. $(this).removeClass("numcatches gold").addClass("numcatches plat")
  433. $(".numcatches.plat").css("background","url('https://i.ibb.co/ygLdRBN/1232280.png') no-repeat right top")
  434. }
  435. seen[txt] = true;
  436. }
  437. });
  438. }
  439. //================================================================ HIDE
  440. function hideCrowns() {
  441. var allMice = $(".mousebox");
  442. var allPlat = allMice.find(".numcatches.plat");
  443. var allDiamond = allMice.find(".numcatches.diamond");
  444. var allMaster = allMice.find(".numcatches.master");
  445. var goldHeader = $(".crownheader.crownheadergold")
  446. var platinumHeader = $(".crownheader.crownheaderplatinum")
  447. var diamondHeader = $(".crownheader.crownheaderdiamond")
  448. var masterHeader = $(".crownheader.crownheadermaster")
  449. removeTheseCrowns(allMaster);
  450. removeTheseCrowns(allDiamond);
  451. removeTheseCrowns(allPlat);
  452. allPlat.removeClass("numcatches plat").addClass("numcatches gold");
  453. allDiamond.removeClass("numcatches diamond").addClass("numcatches gold");
  454. allMaster.removeClass("numcatches master").addClass("numcatches gold");
  455. var result = filterOutTopFavs($(".numcatches.gold").parent().find(".name"))
  456. result = result.parent().find(".numcatches.gold")
  457. var array = sortAcsending(result);
  458. array.every(function(cell) {
  459. if($(".favoriteCrownToggle.crownAction").length > 0 ) {
  460. $(cell).parent().parent().parent().detach().insertAfter(goldHeader);
  461. } else {
  462. $(cell).parent().parent().detach().insertAfter(goldHeader);
  463. }
  464. return true;
  465. })
  466. $(".numcatches.gold").css("background","url('https://www.mousehuntgame.com/images/ui/badges/gold.png') no-repeat right top");
  467. goldHeader.find(".crownquantity").text("("+result.length+")")
  468. $(".crownheader.crownheaderplatinum").remove();
  469. $(".crownheader.crownheaderdiamond").remove();
  470. $(".crownheader.crownheadermaster").remove();
  471. $("#spacer1").remove();
  472. $("#spacer2").remove();
  473. $("#spacer3").remove();
  474. }
  475. function removeTheseCrowns(elements) {
  476. var goldHeader = $(".crownheader.crownheadergold")
  477. var crown = elements.attr("class")
  478. if (crown == "numcatches plat") {
  479. crown = ".numcatches.plat"
  480. } else if (crown == "numcatches diamond") {
  481. crown = ".numcatches.diamond"
  482. } else if (crown == "numcatches master") {
  483. crown = ".numcatches.master"
  484. }
  485. var result = filterOutTopFavs(elements.parent().find(".name"));
  486. result = result.parent().find(crown)
  487. if($(".favoriteCrownToggle.crownAction").length > 0 ) {
  488. result.parent().parent().parent().detach().insertAfter(goldHeader)
  489. } else {
  490. result.parent().parent().detach().insertAfter(goldHeader);
  491. }
  492.  
  493. }
  494. function filterOutTopFavs(elements) {
  495. var seen = {};
  496. var result = elements.filter(function() {
  497. var txt = $(this).text();
  498. if (seen[txt]) {
  499. return true;
  500. } else {
  501. seen[txt] = true;
  502. if ($(this).parent().parent().hasClass("mousebox favorite")) {
  503. return false;
  504. } else {
  505. return true;
  506. }
  507. }
  508. })
  509. return result;
  510. }
  511. function sortAcsending(result) {
  512. var array = result.toArray();
  513. array = array.sort(function(a,b) {
  514. a = parseInt($(a).text(),10)
  515. b = parseInt($(b).text(),10)
  516. return a-b;
  517. });
  518. return array;
  519. }
  520. //================================= Community Ranks ====================================
  521. //
  522. $(document).on('change', '#communityRanks', function() {
  523. if ((window.location.href).includes("profile.php")&&$("#tabbarContent_page_2").hasClass("active")) {
  524. //
  525. //check to see if the cb was JUST checked
  526. if(this.checked) {
  527. // Put the checked value into storage
  528. localStorage.setItem('ShowCommunityRanks', "Y");
  529. communityRanks.checked = "Yes";
  530. showCommunityRanks();
  531. } else {
  532. // Put the checked value into storage
  533. localStorage.setItem('ShowCommunityRanks', "N");
  534. communityRanks.checked = "";
  535. hideCommunityRanks()
  536. }
  537. }
  538. });
  539. function showCommunityRanks(){
  540. var totalMice = 958;
  541. if ($(".crownheader.crownheadercommunity").length >0 ){return;}
  542. var crownBreak = $(".crownbreak").first();
  543. var spacer4 = $(".crownbreak").last().clone().attr('id', 'spacer4');
  544. var communityCrownHeader = $("<div class='crownheader crownheadercommunity'>Community Ranks <div class='crownnote'>Set by the MH Community Groups</div></div>")
  545. communityCrownHeader.css("background","url('https://image.flaticon.com/icons/svg/478/478941.svg') no-repeat left top")
  546. communityCrownHeader.insertAfter(crownBreak);
  547. spacer4.insertAfter(communityCrownHeader);
  548. var allMice = $(".mousebox");
  549. var allBronze = allMice.find(".numcatches.bronze,.numcatches.silver,.numcatches.gold,.numcatches.plat,.numcatches.diamond,.numcatches.master");
  550. allBronze = filterOutTopFavs(allBronze)
  551. var allSilver = allMice.find(".numcatches.silver,.numcatches.gold,.numcatches.plat,.numcatches.diamond,.numcatches.master");
  552. allSilver= filterOutTopFavs(allSilver)
  553. var allGold = allMice.find(".numcatches.gold,.numcatches.plat,.numcatches.diamond,.numcatches.master");
  554. allGold = filterOutTopFavs(allGold)
  555. var bronzeHeader = $(".crownheader.crownheaderbronze")
  556. var silverHeader = $(".crownheader.crownheadersilver")
  557. var goldHeader = $(".crownheader.crownheadergold")
  558. var bronzeCrowns = allBronze.length;
  559. var silverCrowns = allSilver.length;
  560. var goldCrowns = allGold.length;
  561. var rankSummary = $("<div class='rank summary'></div>")
  562. rankSummary.insertAfter(communityCrownHeader);
  563. var goldtext = goldCrowns+" or "+(((goldCrowns / totalMice) * 100).toFixed(2))+"%";
  564. var rankText = "Bronze Crowns: "+getRankBronze(bronzeCrowns)+" | Silver Crowns: "+getRankSilver(silverCrowns)+" | Gold Crowns: "+goldtext;
  565. rankSummary.text(rankText)
  566. }
  567. function getRankBronze(crowns) {
  568. var totalMice = 958;
  569. var crownPrecent = (((crowns / totalMice) * 100).toFixed(2))+"%";
  570. var rank = "";
  571. if (crowns >= 958) {
  572. rank = "Hepatizon";
  573. } else if (crowns >= 949) {
  574. rank = "Electrum";
  575. } else if (crowns >= 939) {
  576. rank = "Palladium";
  577. } else if (crowns >= 911) {
  578. rank = "Cobalt";
  579. } else if (crowns >= 863) {
  580. rank = "Bronze (full)";
  581. } else if (crowns >= 815) {
  582. rank = "Titanium";
  583. } else if (crowns >= 767) {
  584. rank = "Pewter";
  585. } else if (crowns >= 719) {
  586. rank = "Brass";
  587. } else if (crowns >= 671) {
  588. rank = "Copper";
  589. } else if (crowns >= 623) {
  590. rank = "Tin";
  591. } else {
  592. rank = "Rust";
  593. }
  594. return rank+" ("+crowns+" or "+crownPrecent+")";
  595. }
  596. function getRankSilver(crowns) {
  597. var totalMice = 958;
  598. var crownPrecent = (((crowns / totalMice) * 100).toFixed(2))+"%";
  599. var rank = "";
  600. if (crowns >= 859) {
  601. rank = "Super Secret Squirrel";
  602. } else if (crowns >= 811) {
  603. rank = "Grizzled Squirrel";
  604. } else if (crowns >= 764) {
  605. rank = "Flying Squirrel";
  606. } else if (crowns >= 716) {
  607. rank = "Chinchilla";
  608. } else if (crowns >= 668) {
  609. rank = "Meerkat";
  610. } else if (crowns >= 620) {
  611. rank = "Ferret";
  612. } else if (crowns >= 573) {
  613. rank = "Prairie Dog";
  614. } else if (crowns >= 525) {
  615. rank = "Marmot";
  616. } else if (crowns >= 477) {
  617. rank = "Woodchuck";
  618. } else if (crowns >= 429) {
  619. rank = "Wombat";
  620. } else if (crowns >= 382) {
  621. rank = "Pine Marten";
  622. } else if (crowns >= 334) {
  623. rank = "Chipmunk";
  624. } else if (crowns >= 286) {
  625. rank = "Bandicoot";
  626. } else {
  627. rank = "Weasel"
  628. }
  629. return rank+" ("+crowns+" or "+crownPrecent+")";
  630. };
  631. function hideCommunityRanks() {
  632. if ($(".crownheader.crownheadercommunity").length > 0 ) {
  633. $(".crownheader.crownheadercommunity").remove();
  634. $("#spacer4").remove();
  635. $(".rank.summary").remove();
  636. }
  637. }
  638. //To do
  639. //Larry?