Vote Explosion Effect

Robi BUUUM.

当前为 2016-02-14 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Vote Explosion Effect
  3. // @namespace voteexplosion
  4. // @description Robi BUUUM.
  5. // @include http://*.wykop.pl/*
  6. // @version 2.3
  7. // ==/UserScript==
  8.  
  9. // 88
  10. // ""
  11. //
  12. // ,adPPYba, 8b,dPPYba, ,adPPYba, 88 ,adPPYba,
  13. // a8" "8a 88P' "8a a8" "" 88 a8P_____88
  14. // 8b d8 88 d8 8b 88 8PP"""""""
  15. // "8a, ,a8" 88b, ,a8" "8a, ,aa 88 "8b, ,aa
  16. // `"YbbdP"' 88`YbbdP"' `"Ybbd8"' 88 `"Ybbd8"'
  17. // 88 ,88
  18. // 88 888P"
  19.  
  20.  
  21. var options = {
  22. particleSpread: 150,
  23. particleCount: 20,
  24. version: '2.3',
  25. velocity: false
  26. },
  27. voteCount = {
  28. VOTEplus: 0,
  29. VOTEminus: 0,
  30. VOTEsub: 0,
  31. VOTEfav: 0,
  32. VOTEblock: 0,
  33. VOTEdigg: 0,
  34. VOTEbury: 0
  35. };
  36.  
  37. var head = document.getElementsByTagName('head')[0];
  38. var velocity = document.createElement('script');
  39. velocity.type = 'text/javascript';
  40. velocity.onload = function() {
  41. options.velocity = true;
  42. }
  43. velocity.src = 'https://cdnjs.cloudflare.com/ajax/libs/velocity/1.2.3/velocity.min.js';
  44. head.appendChild(velocity);
  45.  
  46. // ustawienia
  47.  
  48. if(localStorage.getItem("particleSpread")) {
  49. options.particleSpread = localStorage.getItem("particleSpread");
  50. }
  51.  
  52. if(localStorage.getItem("particleCount")) {
  53. options.particleCount = localStorage.getItem("particleCount");
  54. }
  55.  
  56. // liczba głosów
  57. function updateVoteCount() {
  58. if(localStorage.getItem("VOTEplus")) {
  59. voteCount.VOTEplus = localStorage.getItem("VOTEplus");
  60. } else {
  61. localStorage.setItem("VOTEplus", 0);
  62. }
  63.  
  64. if(localStorage.getItem("VOTEminus")) {
  65. voteCount.VOTEminus = localStorage.getItem("VOTEminus");
  66. } else {
  67. localStorage.setItem("VOTEminus", 0);
  68. }
  69.  
  70. if(localStorage.getItem("VOTEsub")) {
  71. voteCount.VOTEsub = localStorage.getItem("VOTEsub");
  72. } else {
  73. localStorage.setItem("VOTEsub", 0);
  74. }
  75.  
  76. if(localStorage.getItem("VOTEfav")) {
  77. voteCount.VOTEfav = localStorage.getItem("VOTEfav");
  78. } else {
  79. localStorage.setItem("VOTEfav", 0);
  80. }
  81.  
  82. if(localStorage.getItem("VOTEblock")) {
  83. voteCount.VOTEblock = localStorage.getItem("VOTEblock");
  84. } else {
  85. localStorage.setItem("VOTEblock", 0);
  86. }
  87.  
  88. if(localStorage.getItem("VOTEdigg")) {
  89. voteCount.VOTEdigg = localStorage.getItem("VOTEdigg");
  90. } else {
  91. localStorage.setItem("VOTEdigg", 0);
  92. }
  93.  
  94. if(localStorage.getItem("VOTEbury")) {
  95. voteCount.VOTEbury = localStorage.getItem("VOTEbury");
  96. } else {
  97. localStorage.setItem("VOTEbury", 0);
  98. }
  99. }
  100.  
  101. function incVoteCount(countName) {
  102. thisVoting = localStorage.getItem(countName);
  103. thisVoting++;
  104. localStorage.setItem(countName, thisVoting);
  105. }
  106.  
  107. function decVoteCount(countName) {
  108. thisVoting = localStorage.getItem(countName);
  109. thisVoting--;
  110. if(thisVoting < 0) {
  111. thisVoting = 0;
  112. }
  113. localStorage.setItem(countName, thisVoting);
  114. }
  115.  
  116.  
  117.  
  118. // 88
  119. // ,d 88
  120. // 88 88
  121. // ,adPPYba, MM88MMM 8b d8 88 ,adPPYba,
  122. // I8[ "" 88 `8b d8' 88 a8P_____88
  123. // `"Y8ba, 88 `8b d8' 88 8PP"""""""
  124. // aa ]8I 88, `8b,d8' 88 "8b, ,aa
  125. // `"YbbdP"' "Y888 Y88' 88 `"Ybbd8"'
  126. // d8'
  127. // d8'
  128.  
  129.  
  130. $('head').append('<style type="text/css">\
  131. .notificationTop {\
  132. color: white;\
  133. background-color: rgba(20,20,20,0.95);\
  134. padding: 30px;\
  135. text-align: center;\
  136. width: 50%;\
  137. position: fixed;\
  138. top: 0;\
  139. left: 0;\
  140. margin: 2% 25%;\
  141. z-index: 500;\
  142. }\
  143. .particleGreen {\
  144. color: #3b915f;\
  145. }\
  146. .particleGray {\
  147. color: #999;\
  148. }\
  149. .particleGold {\
  150. color: #c7a054;\
  151. }\
  152. .particleRed {\
  153. color: #c0392b;\
  154. }\
  155. .particle {\
  156. position: absolute;\
  157. pointer-events: none;\
  158. z-index: 999;\
  159. -webkit-transform: translateZ(0);\
  160. -moz-transform: translateZ(0);\
  161. -ms-transform: translateZ(0);\
  162. -o-transform: translateZ(0);\
  163. transform: translateZ(0);\
  164. }\
  165. .particle i.fa {\
  166. font-size: 1.5rem;\
  167. }\
  168. .votersContainer {\
  169. min-height: 18px;\
  170. margin-bottom: 6px;\
  171. }\
  172. .optionsHalf {\
  173. float:left;\
  174. }\
  175. body li.entry ul.responsive-menu b a.affect {\
  176. color: #c0392b !important;\
  177. }\
  178. body li.entry .lcontrast:hover ul.responsive-menu b a.affect {\
  179. color: #c0392b !important;\
  180. }\
  181. .voteCount {\
  182. margin-top: 10px;\
  183. display: inline-block;\
  184. font-size: 20px;\
  185. font-weight: 700;\
  186. }\
  187. .saveState.optionsActive {\
  188. text-shadow: 0 0 10px rgba(250,250,250, 0.5);\
  189. transform: scale(1);\
  190. }\
  191. .saveState {\
  192. transition: 0.2s all;\
  193. transform: scale(0.8);\
  194. cursor: pointer;\
  195. }\
  196. </style>');
  197.  
  198.  
  199.  
  200. // ad88 88 88
  201. // d8" 88 ""
  202. // 88 88
  203. // MM88MMM 88 88 8b,dPPYba, 88 ,d8 ,adPPYba, 88 ,adPPYba,
  204. // 88 88 88 88P' `"8a 88 ,a8" a8" "" 88 a8P_____88
  205. // 88 88 88 88 88 8888[ 8b 88 8PP"""""""
  206. // 88 "8a, ,a88 88 88 88`"Yba, "8a, ,aa 88 "8b, ,aa
  207. // 88 `"YbbdP'Y8 88 88 88 `Y8a `"Ybbd8"' 88 `"Ybbd8"'
  208. // ,88
  209. // 888P"
  210.  
  211.  
  212.  
  213. function getParticlePosition(x, y, direction) {
  214.  
  215. 'use strict';
  216.  
  217. var randomX = x - Math.floor((Math.random() * options.particleSpread) + 1 - (options.particleSpread / 2)),
  218. randomY = y - Math.floor((Math.random() * options.particleSpread) + 1 - (options.particleSpread / 2)),
  219. randomDirection = Math.floor((Math.random() * 200) + 1);
  220.  
  221. if(direction == 'down') {
  222. randomY = randomY + randomDirection;
  223. } else {
  224. randomY = randomY - randomDirection;
  225. }
  226.  
  227. return [randomX, randomY];
  228. }
  229.  
  230. function randomRotate() {
  231. return Math.floor((Math.random() * 360) + 1);
  232. }
  233.  
  234. function randomZoom() {
  235. return 2 - (Math.floor((Math.random() * 200) + 1) / 100);
  236. }
  237.  
  238. function particleExplode(iconClass, colorClass, direction, click) {
  239.  
  240. 'use strict';
  241.  
  242. var bodyElemsVote = document.getElementsByTagName("body"),
  243. bodyVote = bodyElemsVote[0],
  244. posX = click.pageX,
  245. posY = click.pageY,
  246. particleRandomClass = 'particle_' + Math.random().toString(36).substring(4),
  247. particlesArray = [],
  248. particle = '';
  249.  
  250. for (var i = 0; i < options.particleCount; i++) {
  251. var particleID = 'particle_' + Math.random().toString(36).substring(4),
  252. particleClass = 'particle ' + colorClass + ' ' + particleRandomClass,
  253. particleStyle = 'top: ' + posY + 'px; left: ' + posX + 'px;',
  254. particle = particle + '<div class="' + particleClass + '" style="' + particleStyle + '" id="' + particleID + '"><i class="fa ' + iconClass + '"></i></div>';
  255.  
  256. particlesArray[i] = particleID;
  257. }
  258.  
  259. document.body.insertAdjacentHTML('beforeend', particle);
  260.  
  261. for (var i = 0; i < options.particleCount; i++) {
  262. var particlePosition = getParticlePosition(posX, posY, direction),
  263. fadeOutTime = 500 + Math.floor((Math.random() * 500) + 1),
  264. animOptions = {
  265. easing: [0,.84,.25,.99],
  266. duration: fadeOutTime,
  267. queue: false
  268. };
  269.  
  270. $('#' + particlesArray[i]).velocity({ top: particlePosition[1],
  271. left: particlePosition[0],
  272. rotateZ: randomRotate(),
  273. scale: randomZoom() }, animOptions)
  274. .velocity('fadeOut', fadeOutTime, { queue: false })
  275. .velocity({function(){
  276. var thisParticle = document.getElementById($(this).attr('id'));
  277. thisParticle.remove();
  278. }}, {delay: fadeOutTime}, { queue: false });
  279. }
  280. }
  281.  
  282. function readNotification(version) {
  283. localStorage.setItem("VOTEnotificationRead", version);
  284. }
  285.  
  286. function checkNotification() {
  287. versionRead = localStorage.getItem('VOTEnotificationRead');
  288. if(versionRead !== options.version) {
  289. setNotification('Skrypt został zaktualizowany do wersji 2.3.');
  290. }
  291. }
  292.  
  293. function setNotification(mes) {
  294. $('body').prepend('<div class="notificationTop"><h3>VOTE EXPLOSION SCRIPT</h3><br>' + mes + '<br><a href="#" class="closeNotification">[zamknij to powiadomienie]</a> / <a href="http://www.wykop.pl/wpis/16564493/" class="closeNotification">[zobacz zmiany]</a></div>');
  295. }
  296.  
  297. $('body').on('click', '.closeNotification', function(){
  298. $('.notificationTop').remove();
  299. readNotification(options.version);
  300. });
  301.  
  302. function updateSettings() {
  303. $('.saveState').each(function(){
  304. var thisOptionName = $(this).attr('data-saveattr');
  305. if(localStorage['enabled_' + thisOptionName] == 'undefined') {
  306. localStorage['enabled_' + thisOptionName] = 'true';
  307. }
  308. if(localStorage['enabled_' + thisOptionName] == 'true') {
  309. $(this).addClass('optionsActive');
  310. }
  311. });
  312. }
  313.  
  314. $('body').on('click', '.saveState', function() {
  315. $(this).toggleClass('optionsActive');
  316. var thisOptionName = $(this).attr('data-saveattr');
  317. if(localStorage['enabled_' + thisOptionName] == 'true') {
  318. localStorage['enabled_' + thisOptionName] = false;
  319. } else {
  320. localStorage['enabled_' + thisOptionName] = true;
  321. }
  322. });
  323.  
  324. function checkOption(thisOptionName) {
  325. if(localStorage['enabled_' + thisOptionName] == 'false') {
  326. return false;
  327. } else {
  328. return true;
  329. }
  330. }
  331.  
  332. // ad88 88
  333. // d8" ""
  334. // 88
  335. // MM88MMM 88 8b, ,d8 8b d8
  336. // 88 88 `Y8, ,8P' `8b d8'
  337. // 88 88 )888( `8b d8'
  338. // 88 88 ,d8" "8b, `8b,d8'
  339. // 88 88 8P' `Y8 Y88'
  340. // d8'
  341. // d8'
  342.  
  343.  
  344. $(document).ready(function(){
  345. updateVoteCount();
  346. checkNotification();
  347. });
  348.  
  349.  
  350. // 88,dPYba,,adPYba, ,adPPYba, 8b,dPPYba, 88 88
  351. // 88P' "88" "8a a8P_____88 88P' `"8a 88 88
  352. // 88 88 88 8PP""""""" 88 88 88 88
  353. // 88 88 88 "8b, ,aa 88 88 "8a, ,a88
  354. // 88 88 88 `"Ybbd8"' 88 88 `"YbbdP'Y8
  355.  
  356.  
  357. $('.dropdown.right.m-hide div ul li:last').before('<li><a href="#" title="" id="openSettingsWindow"><i class="fa fa-wrench"></i> <span>opcje skryptu</span></a></li>');
  358.  
  359. $('body').on('click', '#openSettingsWindow', function(){
  360. updateVoteCount();
  361. var userNick = $('.dropdown-show.auto > img.avatar').attr('alt');
  362.  
  363. if(localStorage.getItem("particleSpread")) {
  364. var particleSpread = localStorage.getItem("particleSpread");
  365. } else {
  366. var particleSpread = options.particleSpread;
  367. }
  368.  
  369. if(localStorage.getItem("particleCount")) {
  370. var particleCount = localStorage.getItem("particleCount");
  371. } else {
  372. var particleCount = options.particleCount;
  373. }
  374.  
  375. var settingsForm = '<br>\
  376. <p><strong>Ustawienia skryptu</strong></p>\
  377. <p>Kliknij, by włączyć lub wyłączyć naliczanie oraz animacje po kliknięciu. Podświetlone = włączone.</p>\
  378. <div style=" margin: 10px"><br \>\
  379. <div style="margin: 10px; text-align: center;">\
  380. <div class="particleGreen saveState" data-saveattr="VOTEplus" data-value="0" style="display: inline-block; margin: 0 5px; padding: 10px 15px; border: 1px solid rgba(150,150,150,0.1);">\
  381. <p><i class="fa fa-plus" style="font-size: 40px;"></i></p>\
  382. <p class="voteCount">' + voteCount.VOTEplus + '</p>\
  383. </div>\
  384. <div class="particleRed saveState" data-saveattr="VOTEminus" data-value="0" style="display: inline-block; margin: 0 5px; padding: 10px 15px; border: 1px solid rgba(150,150,150,0.1);">\
  385. <p><i class="fa fa-minus" style="font-size: 40px;"></i></p>\
  386. <p class="voteCount">' + voteCount.VOTEminus + '</p>\
  387. </div>\
  388. <div class="particleGold saveState" data-saveattr="VOTEfav" data-value="0" style="display: inline-block; margin: 0 5px; padding: 10px 15px; border: 1px solid rgba(150,150,150,0.1);">\
  389. <p><i class="fa fa-star" style="font-size: 40px;"></i></p>\
  390. <p class="voteCount">' + voteCount.VOTEfav + '</p>\
  391. </div>\
  392. <div class="particleGreen saveState" data-saveattr="VOTEsub" data-value="0" style="display: inline-block; margin: 0 5px; padding: 10px 15px; border: 1px solid rgba(150,150,150,0.1);">\
  393. <p><i class="fa fa-eye" style="font-size: 40px;"></i></p>\
  394. <p class="voteCount">' + voteCount.VOTEsub + '</p>\
  395. </div>\
  396. <div class="particleRed saveState" data-saveattr="VOTEblock" data-value="0" style="display: inline-block; margin: 0 5px; padding: 10px 15px; border: 1px solid rgba(150,150,150,0.1);">\
  397. <p><i class="fa fa-lock" style="font-size: 40px;"></i></p>\
  398. <p class="voteCount">' + voteCount.VOTEblock + '</p>\
  399. </div>\
  400. <div class="particleGreen saveState" data-saveattr="VOTEdigg" data-value="0" style="display: inline-block; margin: 0 5px; padding: 10px 15px; border: 1px solid rgba(150,150,150,0.1);">\
  401. <p><i class="fa fa-thumbs-up" style="font-size: 40px;"></i></p>\
  402. <p class="voteCount">' + voteCount.VOTEdigg + '</p>\
  403. </div>\
  404. <div class="particleRed saveState" data-saveattr="VOTEbury" data-value="0" style="display: inline-block; margin: 0 5px; padding: 10px 15px; border: 1px solid rgba(150,150,150,0.1);">\
  405. <p><i class="fa fa-thumbs-down" style="font-size: 40px;"></i></p>\
  406. <p class="voteCount">' + voteCount.VOTEbury + '</p>\
  407. </div>\
  408. </div>\
  409. </div>\
  410. <br>\
  411. <div class="optionsHalf" style="width: 49%; margin: 0 1% 0 0;">\
  412. <label for="particleSpread">wielkość wybuchu (px)</label>\
  413. <input type="text" class="form-control" id="particleSpread" value="' + particleSpread + '">\
  414. </div>\
  415. <div class="optionsHalf" style="width: 49%; margin: 0 0 0 1%;">\
  416. <label for="particleCount">ilość cząsteczek</label>\
  417. <input type="text" class="form-control" id="particleCount" value="' + particleCount + '">\
  418. </div>\
  419. <br>\
  420. <div style="clear:both;"><br></div>\
  421. <div style=" margin: 10px">\
  422. <div style="margin: 15px; text-align: center;" id="msgContainer">Zmiany zapisują się automatycznie.</div>\
  423. </div>',
  424. settingsPropaganda = '<div style="clear:both;"><br></div>\
  425. <img src="http://xs.cdn03.imgwykop.pl/c3397992/Dreszczyk_sBtjObQZ5c,q48.jpg" style="float:left; margin-right: 10px;">Cześć ' + userNick + '. Tutaj twórca tego skryptu, @Dreszczyk. Jeżeli chcesz podziękować z ten skrypt, to wiedz, że bardzo lubie <a href="http://www.wykop.pl/ludzie/Dreszczyk/">subskrybowanie mojego profilu</a>.',
  426. settingsWindow = '<div id="violationContainer">\
  427. <div class="overlay" style="display: block;"></div>\
  428. <div id="zgloszenie" style="display: none;" class="normal m-set-fullwidth m-reset-top m-reset-margin m-reset-left">\
  429. <form id="scriptSettings">\
  430. <div class="header">\
  431. <a href="#" title="zamknij" class="fright close"><span class="icon inlblk mini closepreview"><i class="fa fa-times"></i></span></a>\
  432. <span class="title">Vote Explosion Script - ustawienia</span>\
  433. </div>\
  434. <div class="view" style="max-height: initial;">' + settingsForm + '' + settingsPropaganda + '</div>\
  435. </form>\
  436. </div>\
  437. </div>';
  438.  
  439. $('body').prepend(settingsWindow).find('#zgloszenie').fadeIn(250, function(){
  440. updateSettings();
  441. });
  442. });
  443.  
  444. $('body').on('click', 'div.overlay', function(){
  445. $('#violationContainer').remove();
  446. });
  447.  
  448. $('body').on('change', '#scriptSettings input', function(){
  449. localStorage.setItem($(this).attr('id'), $(this).val());
  450. options[$(this).attr('id')] = $(this).val();
  451. $('#msgContainer').html('Zmiany zapisują się automatycznie.<br><b>zapisane</b>.');
  452. });
  453.  
  454.  
  455. // 88
  456. // 88
  457. // 88
  458. // 8b,dPPYba, 88 88 88 ,adPPYba, 8b d8
  459. // 88P' "8a 88 88 88 I8[ "" `8b d8'
  460. // 88 d8 88 88 88 `"Y8ba, `8b d8'
  461. // 88b, ,a8" 88 "8a, ,a88 aa ]8I `8b,d8'
  462. // 88`YbbdP"' 88 `"YbbdP'Y8 `"YbbdP"' Y88'
  463. // 88 d8'
  464. // 88 d8'
  465.  
  466. $('body').on('click', 'a.button.mikro.ajax', function (click) {
  467. if($(this).parent().find('.fa-minus').length) { // komentarz ze znaleziska
  468. if($(this).find('.fa-plus').length) { // dajemy plusa
  469. if(checkOption('votePlus')) {
  470. particleExplode('fa-plus', 'particleGreen', 'up', click);
  471. if($(this).parent().find('.disabled').length) { // dajemy plusa, a już daliśmy minusa
  472. decVoteCount('VOTEminus');
  473. }
  474. incVoteCount('VOTEplus');
  475. }
  476. } else { // dajemy minusa
  477. if(checkOption('VOTEminus')) {
  478. particleExplode('fa-minus', 'particleRed', 'down', click);
  479. if($(this).parent().find('.disabled').length) { // dajemy minusa, a już daliśmy plusa
  480. decVoteCount('VOTEplus');
  481. }
  482. incVoteCount('VOTEminus');
  483. }
  484. }
  485. } else { // wpis na mikroblogu
  486. if($(this).parent().find('.voted').length) { // zabieramy plusa
  487. if(checkOption('VOTEminus')) {
  488. particleExplode('fa-minus', 'particleRed', 'down', click);
  489. decVoteCount('VOTEplus');
  490. }
  491. } else {
  492. if(checkOption('VOTEplus')) {
  493. particleExplode('fa-plus', 'particleGreen', 'up', click);
  494. incVoteCount('VOTEplus');
  495. }
  496. }
  497. }
  498. });
  499.  
  500.  
  501. // 88
  502. // 88
  503. // 88
  504. // ,adPPYba, 88 88 88,dPPYba,
  505. // I8[ "" 88 88 88P' "8a
  506. // `"Y8ba, 88 88 88 d8
  507. // aa ]8I "8a, ,a88 88b, ,a8"
  508. // `"YbbdP"' `"YbbdP'Y8 8Y"Ybbd8"'
  509.  
  510.  
  511. $('body').on('click', 'a[title="Dodaj do obserwowanych"]', function (click) {
  512. if(checkOption('VOTEsub')) {
  513. particleExplode('fa-eye', 'particleGreen', 'up', click);
  514. incVoteCount('VOTEsub');
  515. }
  516. });
  517.  
  518. $('body').on('click', 'a[title="Usuń z obserwowanych"]', function (click) {
  519. if(checkOption('VOTEsub')) {
  520. particleExplode('fa-eye-slash', 'particleGray', 'down', click);
  521. decVoteCount('VOTEsub');
  522. }
  523. });
  524.  
  525.  
  526. // 88 88
  527. // 88 ""
  528. // 88
  529. // ,adPPYb,88 88 ,adPPYb,d8
  530. // a8" `Y88 88 a8" `Y88
  531. // 8b 88 88 8b 88
  532. // "8a, ,d88 88 "8a, ,d88
  533. // `"8bbdP"Y8 88 `"YbbdP"Y8
  534. // aa, ,88
  535. // "Y8bbdP"
  536.  
  537. // niewykopany i niezakopany - wykopywanie i cofanie wykopu
  538. $('body').on('click', '.diggbox:not(.burried) span', function (click) {
  539. if($(this).parent().parent().hasClass('digout')) {
  540. if(checkOption('VOTEdigg')) {
  541. particleExplode('fa-thumbs-down', 'particleRed', 'down', click);
  542. decVoteCount('VOTEdigg');
  543. }
  544. } else {
  545. if(checkOption('VOTEdigg')) {
  546. particleExplode('fa-thumbs-up', 'particleGreen', 'up', click);
  547. incVoteCount('VOTEdigg');
  548. }
  549. }
  550. });
  551.  
  552. // niewykopany i niezakopany - zakopywanie
  553. $('body').on('click', '.diggbox .dropdown ul li a', function (click) {
  554. if(checkOption('VOTEbury')) {
  555. particleExplode('fa-thumbs-down', 'particleRed', 'down', click);
  556. incVoteCount('VOTEbury');
  557. }
  558. });
  559.  
  560. // zakopany - cofanie zakopu
  561. $('body').on('click', '.diggbox.burried span', function (click) {
  562. if(checkOption('VOTEbury')) {
  563. particleExplode('fa-thumbs-down', 'particleRed', 'down', click);
  564. decVoteCount('VOTEbury');
  565. }
  566. });
  567.  
  568. // ad88
  569. // d8"
  570. // 88
  571. // MM88MMM ,adPPYYba, 8b d8
  572. // 88 "" `Y8 `8b d8'
  573. // 88 ,adPPPPP88 `8b d8'
  574. // 88 88, ,88 `8b,d8'
  575. // 88 `"8bbdP"Y8 "8"
  576.  
  577. $('body').on('click', 'div.actions ul.responsive-menu a', function (click) {
  578. if($(this).text() == ' ulubiony') {
  579. if(checkOption('VOTEfav')) {
  580. if($(this).parent().is('b')) {
  581. particleExplode('fa-star-o', 'particleGray', 'down', click);
  582. decVoteCount('VOTEfav');
  583. } else {
  584. particleExplode('fa-star', 'particleGold', 'up', click);
  585. incVoteCount('VOTEfav');
  586. }
  587. }
  588. }
  589. });
  590.  
  591.  
  592. // 88 88 88
  593. // 88 88 88
  594. // 88 88 88
  595. // 88,dPPYba, 88 ,adPPYba, ,adPPYba, 88 ,d8
  596. // 88P' "8a 88 a8" "8a a8" "" 88 ,a8"
  597. // 88 d8 88 8b d8 8b 8888[
  598. // 88b, ,a8" 88 "8a, ,a8" "8a, ,aa 88`"Yba,
  599. // 8Y"Ybbd8"' 88 `"YbbdP"' `"Ybbd8"' 88 `Y8a
  600.  
  601.  
  602. $('body').on('click', 'a[title="zablokuj użytkownika"]', function (click) {
  603. if(checkOption('VOTEblock')) {
  604. particleExplode('fa-lock', 'particleRed', 'down', click);
  605. incVoteCount('VOTEblock');
  606. }
  607. });
  608.  
  609. $('body').on('click', 'a[title="odblokuj użytkownika"]', function (click) {
  610. if(checkOption('VOTEblock')) {
  611. particleExplode('fa-unlock', 'particleGray', 'up', click);
  612. decVoteCount('VOTEblock');
  613. }
  614. });