napisy24.pl helper

Dodaje kilka ciekawych funkcji na stronie napisy24.pl

  1. // ==UserScript==
  2. // @name napisy24.pl helper
  3. // @version 1.6.3
  4. // @author KO
  5. // @description Dodaje kilka ciekawych funkcji na stronie napisy24.pl
  6. // @namespace KO/napisy24_helper
  7. // @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH3wEDDSUqO/kIZgAAB3RJREFUeNrtm1tsHFcZx39nbnubXe/6trabxDElJHGaVoSoXAoNClGJeAgRPDYICQkkkBAKqlBJH0IJjRCtKEgVUkCqFCEhxEtFpCJaBG2VthQqW7JFFGhMSOI0sRN7veu9zs6NB6/Xu95Ze5w6SVvPefFeZo7O9zv/73Z2LFzXZSMPiQ0+AgABgABAACAAEAAIAAQAAgAbdSiLL06ePPlH13V3bQSjhRDnjh079uUmAKZpHtqzZw/hcPhDbXylUmF0dPTeFgUApNNpYrHYhxpAsVi8MzFAiOot36vK14mF/o4kSi3fWZZFoVBY85ymaa4cA9ZjRLQxumKniYX+gSzlsJ0Uper9zBS+Rbn6gK85ktEXGEgeBxyypa9wLfvjpu/Pnj3L7Ows+/fvp7Oz09ecExMTjI+Pc+DAAWRZvh0KcOmOn2Ko+2skIi8jSzkAZGmOePg1hrofJRX7w+oA1XP0J38EODUlXG25Zm5uzlPK7YbjOIyNjeE4DoZhrL8ChDDZlDpKPPwqAFV7E/nyAcrm/cS0t+iIvogkivR3/ISKuZNydXebeQwGUj9EYLfH7Lo4zgIcRfG39Hw+z+Kpl67r9fvXDUA8/Ne68bOFr3Nj/vu4LMhsvvwIBeMhNnd+D3DQQ6+1BdAb/yUh5SKOG6FU/Th66E1P/68v3CeASqVSfy3L8voDKFU/QaZ4hELlYQrGZ1p3oPIFTDuNKk+jSHOec8RCb9Ol/xaAm/nvoin/87zuVgA0Grzc+LYx4E//muZ3/7xK43FptmTyxn8zTM6Vmz637B6mco97Gg+gyDdR5WkADGtr6wJEkYHkE4BL2byP2cKRtsbYtt20m2sF4CsLlKo2vz57CdeFvYNJNndGePrlCUavZFk8QP7irl6+s2/I1wLS8Wfrr8vVPS3f93X8FFW+hovM9eyTK8bl9wpA0zTK5fLKCpAEdUMvzpQ4fubfjFxeMh7gpXM3GL2SXSU4WvR3nKAjeqYeD8rmrmXx41WS0Rdq8eMbVMztq5Wwa3bRRQCSJCFJ0uoKUOWli55/4zKG5aCHFL75uUGGuqOcePEdbuYN3r6UZc+WpLespAybOo8S1UYWMoM1yNT8403XyNIc/cnjNdf4KDfz3169c2swYLm0TdMkl8uRz+fJ5/MUi0UMw6inS03T/LmA5SxttWE5RDWZpw7vZGtXFID7BuK88h+D6XnDc8KoNsqm1GMo8o2FfG18infnfobldDbVDQPJ4yjSLC4y1+aewnW1NQGYmppicnKSbDZLLpdbtS5QVdUfgIrZnIcffXBT3XiAzujCQucrVstkXfppehM/R2DjuhrT80fJFI8AzdLtiZ8iHv5bDdCnkaQCUW0EFwVcBVnK1tzRQJay2E6yxQXGxsbaGhqPx4lGo2iaRiaTIZvNrgWA07DQEF/anV7miLWA1CBBgc09nY+RCP+lppwh3p17xtOnFSlDt/6b+ns99Dp66PW2pfX2vs9iOd1cmjlNwe5qVls0SiqVIplM1v8u72ZHRkbWCmBJAfu3dyMtCzym7dR8eEmOqdjv68ZnS4eZyj2B40a8g5KrkTceRg+9WWt2Vv9tUlAF3KY6YN++ffT09KxepNeid7us4ZkGF8eDW1MeOyhqu2zX83hP/LnavXu5lj3RIvlmADpXM8/WY4EkDIQwEZj1v72JX5CI/JmKOcy17JNYdg+W041lzSypIxLxlQUWDffdDZYaFNCtax5BbuGW2eJCuxtW30GW8guBKfeDFY332lvHDYPbLFvbjdfcTKdi7vSsBNtF9RYDaxWjbwCNMSCqtcpGD8m14GVTMR2S0Ys1qSkY1sfqZwGSqCBEBUkY2E4C2+l4zz3nohFCiLY+3Q5AI7wVAWjy0g5WbQdNkZY1LaGl1rRU5Z5Urv7+3p7DKPIMkmg9sKham5nM/ArDGvKhC3NFAKqq+i6KFkG1AyC1dndqQyPTelM60QjAxDC3AxJCWGjKJU/jATRlknTiaV+LtpzF4CZ7AvAr/0YAjWX0igr4SE+U3ngIRRZNu71Uu4eJhxXyFYt4WKFgPMSlmeeJhd7CcRNYdhe2k8Rxw7huCMcNocgZwup58pXP+1p0rnSIkHKBXPmQp5x1XfcNoLe3F13X6evr8+sCEqeOPIBA4KUyRRI889VdlEybzalIPfqXqnvbLsKwoGh80veiDWuIycxzLZ8PDg4iSRLpdNr/MV0kwsGDB/13gwupbWX/6uu4O0fniqIwNDS0vnPe6o2WZXH9+vX3xVF3f3+/7wOSdQNw/vx5Lly44Nli3snhOA7btm1j9+7ddxaA4zi4rts2vdypIYRY9dRnxQ6TDT5uWQGLufhuu4DrumuqC9YNwI4dOxgYGOBuP2kqhCCRSNx5AEIIOjq86/vLly9z5cqVdTV0y5YtDA4Ovn9cYKUxMTFR/wlrvUa1Wr0tAIJHZIIscJsqs8bf5NZrzg8MgOHhYYaHhwMX+MC5wPT09IZ4SMoTgKqqZ8bHxzfEY3Kqqp6r1zPB/wwFdUAAIAAQAAgABAACAAGAAEAAYEOO/wNzY+aLYxIEkAAAAABJRU5ErkJggg==
  8. // @match https://napisy24.pl/*
  9. // @homepage https://github.com/olodev/n24h
  10. // @grant GM_registerMenuCommand
  11. // @grant GM_setValue
  12. // @grant GM_getValue
  13. // @grant GM_deleteValue
  14. // @run-at document-start
  15. // ==/UserScript==
  16.  
  17. (function() {
  18. 'use strict';
  19.  
  20. var icons = {
  21. staroff: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAYAAABb0P4QAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH3gwUDR0hRbYVJwAAAjtJREFUOMudlM+rElEUx8+8lOGqE6PjzLyXGzczbhSVAqOyRYt2QYu3q7eqhehCJmwXiW8hSgvxByK0qFX/QIKLlsILIRI0uXlHQmgR+QZFEEZUnFaGr17O6x24i3vuuZ/DOed7L2UYBphZtVp9AAAQj8ffm8Va4ALGcVzKMAwKAEyBYBjGzlUulx9jjOcY43mlUjkyi98zyUeJopjgeZ7meZ4WBCEBANSuCzuBtVotFg6Hb2z2oVDoeq1Wi10KmMvlnKIoPnE6nb/77HK5LIIgPM1kMuw/S8rn8zcZhrlltVp9NpvNbbVa3TRNc3a73enz+fYRQmeS6rq+JoT8mM1m4+Vyqc3n85Gu6yNd1/F4PP5oYRjGL8vy81AotH+RiSOE9oLBoAcAPNv+drutEUIyV+r1+udGozFYr9cRURSdcAnrdDrfMcZKIpF4Q22EXSwW70qS9DoSicj/A2u1Wt9UVY0lk8kPAADU9kspFAoBr9f7LhqN+imKMtVvs9n8OhwOjxRF+XTulBVF6fZ6vcNut/vzAmWOCCGH27BzZWMYho1l2atmQJZlHYvFwmKqQ5fLdZ/neWQGFATBxnHcPVMgQiiA0Flev9/XVFXV/ogDhFDA9LdxOBwHm6YTQk4JISfT6fQlAAAh5FiW5duSJLm3Y3cCaZq+hjE+HQwGJ5qmvUilUl+2jh8WCoWAqqrHkiTdoWna89fT25ZNNps9YBjm7Wq1eqYoSm9XD0ulkh8AXk0mk0fpdHq88f8CflYIlVvjW0cAAAAASUVORK5CYII='
  22. ,staron: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAYAAABb0P4QAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH3gwUDR8nnuPSkAAAAsZJREFUOMulk0tvG1UUx//n3Jm5M2NnUjueOnYCoptmQYNUSKEqFYss2CGqloeQ6AoWkbJtdhVS8wX4ALBAoq14NGXBAqFu2oqmFSgEUKqySRcNIbUzcRw7bTyx554unGeBuApHOrpX5179dF5/EhF0sj8mgrcA4KUzte87/bXwDOYGqXMiIAAdgdzpw68T6Q97+sPXcs+Fr05fTZ/9n0AiP3BHPV9pz1faTbujANG+gdMT/khYzA6ZJIZJYoR9mVemJ/yRfQF/ukwZL3A+sl2xEhMjMQ042lhe2v74+hd04D9runPRPu767glWPGA5Vo6YckpJj+Vwpjvn9bISFkk2OwDTIrMSNRZaTVORhCKTSLnVMuXWeuveWn31tqU990i2WBjL9x/sNSZGksQwZh3GbJ5NiCSACEAMVjZnC34fs+5jdqCUBrNG+UE5qii+QCKC374L3s4Wcp+GxeyhLWgSb0HFNCEQECkwO21XGopdsNKI5qtz0cNo7OXT9a9pc7Gnv/HeCPKZz/LPZw+bpIHtbBswSQwRsw1SLpg1WGmU5qr3q+XqyNC7jWu7hnL0vbWb1b+W3pmfXZjZvRkEgEBE7esO+3u2/Gc9qr+/CQMAelp6ty7SQPGF8EYm7+VNst4uWZqAtEsmdsDKwfLDuLw0Xxs+9kF8d0/psYHvem7AZAFsAAhEeGPIDCILTBZcX9Jxsm511LLb5b3pBymPWNr9IAYkgQAg8EaWFvxA+77nDQP4fU+gpfSg7XgQacKAwKKwUqpFYKA77MoRGMQWLGXD1s5gxwwdTxeYHYghVKOVxUqpOtlcjT8BgOrS4/FMeOD1bL4nR2zDcXShI1DZdrFSWl5cLi1OrlUenR86G8/seD41dUkP1qLV8Uw+PGk7uu8f2hORLb/5JQpTV1I//nzFeXFn/N/8l6/SR6a+Tf0w+TmyO+NPAC36SwTUSJYTAAAAAElFTkSuQmCC'
  23. ,starign: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAYAAABb0P4QAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH3wgOBzkLYwp6HwAAAvZJREFUOMuNlEtIG1EUhv+ZPEYnajSJxQQsSgjNqjZGW2uhoCioRdHSrgpCsZvErkKlpIRiKQhBJUFFI7RSxZ0GDHGjG9sKpRTJxkElPhc11mQmpfiIGZXbhQ/U+MiBu7jnnvNx/nvOvUAS1t3dXdfV1fU0mVg6mSC1Wv1GrVbbAFBn/QSgCfCWAEokay6X6wXHcTsLCwt7Ho+n8QJsgACEAO5kK6R0Ot3rnJwcVqPRMJmZmdbW1laaABIAAwBeAvgOwHGSIL2O1tPTYzWZTIUne7PZXLjF8xYA9wE0AvgG4AkF7Nwotb29XTEyMjLD8zw5XZub5HdxsXAsc4IAqQmS2traHiiVyhK5XG5kWVbNMIxGKpVqWJbNMhqNWpZlJQCAw0OkNTeDGR1F1GTa+2G3B+M0HYnFYkIsFuNFUeSi0ehPqUqlMuXn578zm823riz38BBpVisYrxf7FRXA4GDKQ4a5e9ogQhAIBITV1dWPkvHx8ZnS0tIlURQfabXaxPbv7yO9qQmMzwexogLbQ0MgDHMuhOO49WAwaLNYLJ9OnW63+7Hf7w+eu7NQiMRraggBSLyykgihEDl3zvNkcnJypbe3t/pSZZ2dnQVer5eLRCJHsOrqI1htLeE3Ns6BIpEIGRsbm3O73cXXdrejo8P4dWIiHK+qOoLV1SXAeJ4nU1NTf5xO552L+QlzKA+FMgt9PpV8ehpifT22PB5AmjiuGRkZ6fF4XH4tkACp/4aHh9LDYYnY0ICtvr5LYQCQnZ3NZmVllQOYvRRIABaATxkOG+INDdg+hhFCsLS0JFAURen1ehVFHf0PLMtCoVAUXFrhMcwPoHy9qCiU0t+vIxSF1ZUVfm5ubkYQhA80Te8tLi469Hp9mcFgUFEUBYVCob1KsgdAOYDPAYejJGdtTTY/Px8QBOG9zWb7dSb+mcvlure8vOzIy8srk8lkuoSnd1zhbQCv2ltaelNyc78cHBy02Gy22RumwSyTyZy7u7vP7Xb73xP/f4cxclaSnWDmAAAAAElFTkSuQmCC'
  24. ,search: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAYAAABy6+R8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAABJdEVYdENvcHlyaWdodABQdWJsaWMgRG9tYWluIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL3B1YmxpY2RvbWFpbi9Zw/7KAAABTklEQVQokY2PP0hCYRTFf/eZFThULhG0F0UQ4djgZsaHS0FBUK7NTkFNRVNbGER/oEVoCnyfgptbNAdRYwQ5BqJS6Ou2fMoriTrbvef+uOeIqgJQLpfngyDYFpElYAh4E5GTWCx2lkwm3wlJVBXf97MicgoM0q/7SCSymE6n692FZ61dEJELB+RFJNHpdMZUdQ2oA3NBEFx9++T7fglYBm6MMSuAds1isTjled4j8BmNRidTqVQNwANm3U0+DABkMpknoAl47XY70YvnSiMiEz/LVKvVAaDh/NcwZAFUNVupVOJhqNFoHAPjQK3Vaj2EO00Dt8Ao8AIcAXEXe9Xd7RljDnqQqmKtTQIFoC+iUwfYMsYUepDLP9xsNjdVdUZERlT1DvgALh0YABvGmOse9JustTvAYfejqq7/CTlwF9h34/O/IIBSqZRT1Rxw/gU4l4oisfSMMQAAAABJRU5ErkJggg=='
  25. ,gear: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH3gwZCB0WCaqqHgAAA3FJREFUOMulVN1LI1cUP2fuHchmQ12jMRKNRIwFG1jb3ARhxIbp0vSh6EP70AUpeWj/o1LYV5XtUx8Ka0ultKDJiB9MaAyCYASt+dB80padWZmZe/vQzDYyrvvQ83Tvub/7Ox+/cy8KIeA+SyaTHyLiAgAAIUQ7ODjYvQ9P4S0my/LPc3NzFADg5OTkFQC8cx9eGtyoqupTFOUZY2wZAIAx9phSKhRFkRVFkSVJkpPJ5Hv9s88URXmmqqpvkAPdkhVFeSCE+CUcDrNOp8Mdx6lxzkOZTGZoZmYGAQBOT095Pp//S5KkNiEkEgwGpWazqSPix7u7u+atkoUQ30YiEZbNZn2O40C3250lhMDIyMjr6LOzs9Lw8PAjzvmjYDAIhBDY2tpiV1dX3wDA17cIbdv+qdVqfeE4DlBKYWxs7M4ejY6OwsAd6HQ69s3NzQ+eHh4eHn5v23a92+16SGq1GtRqNY+/2WyCZVl/6Lq+6VGZMfZYluWQJP2n08XFhSgUCoZlWfW+4pGlpSX/1NQUAgBQSoFzPskYY7qu6wAAmEwmP6KU/kgp5YuLiw/i8Tj2ewobGxuGaZpPdV1/0Q+6HAgEvltdXQ24QSuVitA0zbRtW7Jt+1MJEdOJRILmcjm/SwYAcHl5CY7jVF0yAABd119YltUYLD8ej2Mul/MnEgmKiGkJAAAR7xQAEfkdPvEG7L+iIGKxXC6L9fV1o1KpvAZHo1EghERTqVTW9aVSqSwhJDIxMQGDJa+trRnlclkgYhGFEICIyBj7gFL628rKypA7Gufn57xQKJiO49T6bzmSyWT80WhUclXe3Nz807KsJ8VisSiEELQvgACAoqIoTc75kBs9FotJsVjsYbVafRcRYTAzdw4JIdW9vT3dM4fpdHqFEDIRDAY9/ZmcnPSQuUOOiNOMsU88hLIsfx4OhwkhBGzbhlarBb1ez0PS6/Wg1WqBbdsgyzKEQiHq8/meej6H+fn5h36//9fx8fH32+22wzlvOI4zpqpqYHp6GgEAzs7OxPb29t+EkDYhZDwUCpF6vf67YRhPSqXSy1sZlkqll4ioXl9fPzcM40tN0+KWZak7Ozumi8nn868sy1rSNG3GNM2vGo3Gc0RUXbJbGb7JFhYWzEQiQQEAjo+Pb/b39wP/68cWQiwfHR2x/vrwbfh/AK2fjH9FpXiPAAAAAElFTkSuQmCC'
  26. };
  27.  
  28. var options_db = 'n24h_options';
  29. var shows_db = 'n24h_shows';
  30. var au_ignore_db = 'n24h_authors_ignore';
  31. var tr_ignore_db = 'n24h_translations_ignore';
  32.  
  33. var utils = {
  34. /**
  35. Dodaj dodatkowego CSS'a do strony
  36. */
  37. insertcss: function(css) {
  38. let style = document.createElement('style');
  39. style.setAttribute('type', 'text/css');
  40. if (style.styleSheet) {
  41. style.styleSheet.cssText = css;
  42. } else {
  43. style.appendChild(document.createTextNode(css));
  44. }
  45. document.head.appendChild(style);
  46. },
  47. getSkin: function() {
  48. if (document.querySelector('ul.menu.avatar-main-menu.avatar-menu-icons.white')) {
  49. return 1;
  50. }
  51. if (document.querySelector('div.rt-social-buttons')) {
  52. return 2;
  53. }
  54. return 0;
  55. }
  56. };
  57.  
  58. /**
  59. */
  60. var ls = {
  61. setItem: function(name, value) {
  62. if (typeof GM_setValue !== 'undefined') {
  63. GM_setValue(name, value);
  64. } else {
  65. localStorage.setItem(name, value);
  66. }
  67. },
  68. getItem: function(name, defaultValue) {
  69. let value;
  70. if (typeof GM_getValue !== 'undefined') {
  71. value=GM_getValue(name, defaultValue);
  72. } else {
  73. value=localStorage.getItem(name);
  74. if (!value) {
  75. value=defaultValue;
  76. }
  77. }
  78. return value;
  79. },
  80. removeItem: function(name) {
  81. if (typeof GM_deleteValue !== 'undefined') {
  82. GM_deleteValue(name);
  83. } else {
  84. localStorage.removeItem(name);
  85. }
  86. }
  87. };
  88.  
  89. /**
  90. Obsługa opcji
  91. */
  92. var options = {
  93. /**
  94. Zapisz wartość
  95. */
  96. setValue: function(name, value) {
  97. let optdb=ls.getItem(options_db, '{}');
  98. let o=JSON.parse(optdb);
  99. o[name]=value;
  100. ls.setItem(options_db, JSON.stringify(o));
  101. },
  102. /**
  103. Pobierz wartość
  104. */
  105. getValue: function(name, def) {
  106. let optdb=ls.getItem(options_db, '{}');
  107. let o=JSON.parse(optdb);
  108. let value=o[name];
  109. if (value==null) {
  110. value=def;
  111. }
  112. return value;
  113. },
  114. /**
  115. Usuń klucz z opcji
  116. */
  117. remove: function(name) {
  118. let optdb=ls.getItem(options_db,'{}');
  119. let o=JSON.parse(optdb);
  120. delete o[name];
  121. ls.setItem(options_db, JSON.stringify(o));
  122. },
  123. /**
  124. Pokaż/ukryj checkboxy w zależności od innych opcji
  125. */
  126. showHideCheckboxs: function() {
  127. let n24info=document.querySelector('input[data-n24h-checkbox="shown24info"]');
  128. let useimdb=document.querySelector('input[data-n24h-checkbox="useimdbinfo"]');
  129. if (n24info.checked) {
  130. useimdb.parentNode.setAttribute('style', 'display:block');
  131. } else {
  132. useimdb.parentNode.setAttribute('style', 'display:none');
  133. }
  134. let altskins=document.querySelectorAll('input[data-n24h-radio="altskinid"]');
  135. let usealtskin=document.querySelector('input[data-n24h-checkbox="usealtskin"]');
  136. for (let i=0;i<altskins.length;i++) {
  137. altskins[i].parentNode.setAttribute('style', usealtskin.checked?'display:block':'display:none');
  138. }
  139. },
  140. /**
  141. Wypełnij panele aktualnymi ustawieniami, serialami, itp.
  142. */
  143. fillPanels: function() {
  144. //checkboxy
  145. let checkboxs=document.querySelectorAll('input[data-n24h-checkbox]');
  146. for (let i=0;i<checkboxs.length;i++) {
  147. checkboxs[i].checked=options.getValue(checkboxs[i].getAttribute('data-n24h-checkbox'), false);
  148. }
  149. //seriale
  150. let keywords=db.getAll(shows_db);
  151. let areashows=document.getElementById('n24h_opt_areashows');
  152. let showtext='';
  153. for (let i=0;i<keywords.length;i++) {
  154. if (showtext!='') {
  155. showtext+='\n';
  156. }
  157. showtext+=keywords[i];
  158. }
  159. areashows.value=showtext;
  160. //pomijani autorzy
  161. let authors=db.getAll(au_ignore_db);
  162. let areaauthors=document.getElementById('n24h_opt_areaignore');
  163. let authorstext='';
  164. for (let i=0;i<authors.length;i++) {
  165. if (authorstext!='') {
  166. authorstext+='\n';
  167. }
  168. authorstext+=authors[i];
  169. }
  170. areaauthors.value=authorstext;
  171. //debug
  172. let areadebug=document.getElementById('n24h_opt_areadebug');
  173. let debugtext='/**opcje**/\n';
  174. debugtext+=ls.getItem(options_db, null);
  175. debugtext+='\n\n/**seriale**/\n';
  176. debugtext+=ls.getItem(shows_db, null);
  177. debugtext+='\n\n/**pomijani autorzy**/\n';
  178. debugtext+=ls.getItem(au_ignore_db, null);
  179. debugtext+='\n\n/**pomijane tłumaczenia**/\n';
  180. debugtext+=ls.getItem(tr_ignore_db, null);
  181. areadebug.value=debugtext;
  182. let radios=document.querySelectorAll('input[data-n24h-radio]');
  183. for (let i=0;i<radios.length;i++) {
  184. radios[i].checked=radios[i].getAttribute('data-n24h-radio_id')===options.getValue(radios[i].getAttribute('data-n24h-radio'), '1');
  185. }
  186. options.showHideCheckboxs();
  187. },
  188. /**
  189. Pokaż panel opcji
  190. */
  191. show: function() {
  192. options.fillPanels();
  193. let body=document.querySelector('body');
  194. let bstyle=body.getAttribute('style');
  195. if ((bstyle!=null)&&(bstyle!="")) {
  196. bstyle='overflow-y: hidden;'+bstyle
  197. } else {
  198. bstyle='overflow-y: hidden;';
  199. }
  200. body.setAttribute('style', bstyle);
  201. let panel=document.querySelector('div.n24h_options_background');
  202. panel.setAttribute('style', 'display:block');
  203. },
  204. /**
  205. Ukryj panel opcji
  206. */
  207. hide: function() {
  208. let body=document.querySelector('body');
  209. let bstyle=body.getAttribute('style');
  210. bstyle=bstyle.replace(/overflow-y: hidden;/g, '');
  211. body.setAttribute('style', bstyle);
  212. let panel=document.querySelector('div.n24h_options_background');
  213. panel.setAttribute('style', 'display:none');
  214. },
  215. /**
  216. Obsługa kliknięcia checkboxa
  217. */
  218. checkboxClick: function(e) {
  219. e = e || window.event;
  220. let target = e.target || e.srcElement;
  221. options.setValue(target.getAttribute('data-n24h-checkbox'), target.checked);
  222. options.showHideCheckboxs();
  223. options.showSaveInfo();
  224. },
  225. /**
  226. Obsługa kliknięcia radiobuttona
  227. */
  228. radioClick: function(e) {
  229. e = e || window.event;
  230. let target = e.target || e.srcElement;
  231. options.setValue(target.getAttribute('data-n24h-radio'), target.getAttribute('data-n24h-radio_id'));
  232. options.showSaveInfo();
  233. },
  234. /**
  235. Obsługa kliknięcia przycisku sekcji
  236. */
  237. typeButtonClick: function(e) {
  238. e = e || window.event;
  239. let target = e.target || e.srcElement;
  240. let panel = target.getAttribute('data-n24h-optiontype');
  241. let opt_panels=document.querySelectorAll('div[data-n24h-optionpanel]');
  242. for (let i=0;i<opt_panels.length;i++) {
  243. opt_panels[i].setAttribute('style', panel==opt_panels[i].getAttribute('data-n24h-optionpanel')?'display:block':'display:none');
  244. }
  245. let opt_buttons=document.querySelectorAll('div[data-n24h-optiontype]');
  246. for (let i=0;i<opt_buttons.length;i++) {
  247. opt_buttons[i].setAttribute('class', panel==opt_buttons[i].getAttribute('data-n24h-optiontype')?'n24h_options_panel_button n24h_options_panel_button_selected':'n24h_options_panel_button');
  248. }
  249. options.fillPanels();
  250. },
  251. /**
  252. Obsługa przycisku zapisz
  253. */
  254. btnSaveClick: function() {
  255. let areashows=document.getElementById('n24h_opt_areashows');
  256. let shows = areashows.value.split('\n');
  257. let title;
  258. ls.removeItem(shows_db);
  259. for (let i=0;i<shows.length;i++)
  260. {
  261. title=shows[i];
  262. if (options.getValue('titleremoveyear', false)) {
  263. title=title.trim().replace(/\(\d{4}\)/g, '');
  264. }
  265. if (options.getValue('titleremoveapostrophe', false)) {
  266. title=title.trim().replace(/'|’|`/g, '');
  267. }
  268. title=title.trim();
  269. console.log(title);
  270. if (title != null && title != '' && !db.exists(shows_db, title)) {
  271. db.add(shows_db, title);
  272. }
  273. }
  274. options.fillPanels();
  275. options.showSaveInfo();
  276. },
  277. btnAuthorsSaveClick: function() {
  278. let areaauthors=document.getElementById('n24h_opt_areaignore');
  279. let authors = areaauthors.value.split('\n');
  280. let author;
  281. ls.removeItem(au_ignore_db);
  282. for (let i=0;i<authors.length;i++)
  283. {
  284. author=authors[i].trim();
  285. if (author != null && author != '' && !db.exists(au_ignore_db, author)) {
  286. db.add(au_ignore_db, author);
  287. }
  288. }
  289. options.fillPanels();
  290. options.showSaveInfo();
  291. },
  292. /**
  293. Obsługa przycisku usuwania opcji
  294. */
  295. btnKillOptClick: function() {
  296. if (confirm('Czy na pewno chcesz usunąć wszystkie ustawienia?\nNie będzie można tego cofnąć.')) {
  297. ls.removeItem(options_db);
  298. options.showSaveInfo();
  299. }
  300. options.fillPanels();
  301. },
  302. /**
  303. Obsługa przycisku usuwania seriali
  304. */
  305. btnKillShowsClick: function() {
  306. if (confirm('Czy na pewno chcesz usunąć wszystkie ulubione filmy/seriale?\nNie będzie można tego cofnąć.')) {
  307. ls.removeItem(shows_db);
  308. options.showSaveInfo();
  309. }
  310. options.fillPanels();
  311. },
  312. btnKillIgnAu: function() {
  313. if (confirm('Czy na pewno chcesz usunąć wszystkich pomijanych autorów?\nNie będzie można tego cofnąć.')) {
  314. ls.removeItem(au_ignore_db);
  315. options.showSaveInfo();
  316. }
  317. options.fillPanels();
  318. },
  319. btnKillIgnTr: function() {
  320. if (confirm('Czy na pewno chcesz usunąć wszystkie pomijane tłumaczenia?\nNie będzie można tego cofnąć.')) {
  321. ls.removeItem(tr_ignore_db);
  322. options.showSaveInfo();
  323. }
  324. options.fillPanels();
  325. },
  326. savetimeout: null,
  327. showSaveInfo: function() {
  328. let saveinfo=document.querySelector('#n24h_options_saved');
  329. if (saveinfo) {
  330. clearTimeout(options.savetimeout);
  331. saveinfo.style.display='block';
  332. options.savetimeout=setTimeout(options.hideSaveInfo,1000);
  333. }
  334. },
  335. hideSaveInfo: function() {
  336. let saveinfo=document.querySelector('#n24h_options_saved');
  337. if (saveinfo) {
  338. saveinfo.style.display='none';
  339. }
  340. },
  341. init: function() {
  342. let css='#n24h_options_gear{'+
  343. 'cursor:pointer;'+
  344. '}'+
  345. '.n24h_options_background{'+
  346. 'position:fixed;'+
  347. 'top:0;'+
  348. 'left:0;'+
  349. 'width:100%;'+
  350. 'height:100%;'+
  351. 'background:rgba(0,0,0,0.6);'+
  352. 'text-align:center;'+
  353. 'z-index:9999;'+
  354. '}'+
  355. '.n24h_options_dialog{'+
  356. 'margin: 0px auto;'+
  357. 'padding: 50px 0px;'+
  358. 'width: 900px;'+
  359. 'height: 100%;'+
  360. 'transition: none 0s ease 0s;'+
  361. 'transform: none;'+
  362. 'position: relative;'+
  363. 'box-sizing: border-box;'+
  364. '}'+
  365. '.n24h_options_content{'+
  366. 'max-height: 100%;'+
  367. 'overflow-y: auto;'+
  368. 'border: 4px solid rgba(85, 85, 85, 0.5);'+
  369. 'background-clip: padding-box;'+
  370. 'box-shadow: 0px 3px 7px rgba(0, 0, 0, 0.3);'+
  371. 'border-radius: 13px;'+
  372. 'position: relative;'+
  373. 'outline: 0px none;'+
  374. 'background-color: #FFF;'+
  375. 'box-sizing: border-box;'+
  376. 'color: #303030;'+
  377. 'font-family: Arial,Helvetica,sans-serif;'+
  378. 'text-align:left;'+
  379. 'display: block;'+
  380. '}'+
  381. '.n24h_options_header{'+
  382. 'margin: 0px;'+
  383. 'border-bottom: 1px solid #A0A0A0;'+
  384. 'padding: 10px 10px 0px 10px;'+
  385. '}'+
  386. '.n24h_options_body{'+
  387. 'display: table;'+
  388. 'min-height: 150px;'+
  389. '}'+
  390. '.n24h_options_body>input{'+
  391. 'margin: 0px;'+
  392. '}'+
  393. '.n24h_options_close{'+
  394. 'float:right;'+
  395. 'padding: 0px;'+
  396. 'border: 1px solid;'+
  397. 'cursor:pointer;'+
  398. 'margin-top: -25px;'+
  399. 'padding: 1px 3px 1px 3px;'+
  400. 'border-radius: 5px;'+
  401. 'background: linear-gradient(#EDEEEE, #E2E3E3);'+
  402. '}'+
  403. '.n24h_options_close:hover{'+
  404. 'background-color: #D0D0D0;'+
  405. 'border-color: #646F7C;'+
  406. '}'+
  407. '.n24h_options_panel_l{'+
  408. 'padding: 10px;'+
  409. 'border-right: 1px solid #A0A0A0;'+
  410. 'display: table-cell;'+
  411. 'position: relative;'+
  412. '}'+
  413. '.n24h_options_panel_r{'+
  414. 'padding: 10px;'+
  415. 'width: 750px;'+
  416. '}'+
  417. '.n24h_options_panel_button{'+
  418. 'cursor: pointer;'+
  419. 'background-color: #D5D5D5;'+
  420. 'border: 1px solid #000000;'+
  421. 'border-bottom: 3px solid #000000;'+
  422. 'padding: 5px 10px 5px 10px;'+
  423. 'margin-bottom: 2px;'+
  424. '}'+
  425. '.n24h_options_panel_button:hover{'+
  426. 'background-color: #E0E0E0;'+
  427. 'border-radius: 0px 0px 3px 3px;'+
  428. 'border-bottom: 3px solid #D26911;'+
  429. '}'+
  430. '.n24h_options_panel_button_selected{'+
  431. 'border-radius: 0px 0px 3px 3px;'+
  432. 'border-bottom: 3px solid #F21911;'+
  433. '}'+
  434. '.n24h_opt_button{'+
  435. 'background-color: #D5D5D5;'+
  436. 'border: 1px solid #000000;'+
  437. 'border-bottom: 3px solid #000000;'+
  438. 'padding: 3px 5px 3px 5px;'+
  439. 'margin-top: 5px;'+
  440. 'margin-right: 5px;'+
  441. '}'+
  442. '.n24h_opt_button:hover{'+
  443. 'background-color: #E0E0E0;'+
  444. 'border-radius: 0px 0px 3px 3px;'+
  445. 'border-bottom: 3px solid #D26911;'+
  446. '}'+
  447. '.n24h_opt_area{'+
  448. 'width: 100% !important;'+
  449. 'height: auto !important;'+
  450. 'cursor: auto !important;'+
  451. 'margin-bottom: 0px;'+
  452. 'background-color: #EEEEEE;'+
  453. 'color: #555555;'+
  454. 'border: 1px solid #CCCCCC;'+
  455. 'margin-left: 0px;'+
  456. 'padding: 5px;'+
  457. '}'+
  458. '.n24h_opt_area:focus{'+
  459. 'color: #555555;'+
  460. '}'+
  461. '.n24h_options_panel_r > label{'+
  462. 'margin-bottom: 0px;'+
  463. 'cursor:pointer;'+
  464. '}'+
  465. '.n24h_options_panel_r > label > input{'+
  466. 'margin: 0px;'+
  467. 'margin-top: -4px;'+
  468. 'display: inline !important;'+
  469. '}'+
  470. '.n24_option_level2{'+
  471. 'margin-left:30px;'+
  472. '}';
  473. let css1='#n24h_options_gear{'+
  474. 'width:20px;'+
  475. 'line-height: 26px;'+
  476. '}';
  477. let css2='.n24h-gear-social {'+
  478. 'transition-delay: 0s;'+
  479. 'transition-duration: 0.2s;'+
  480. 'transition-property: all;'+
  481. 'transition-timing-function: ease-out;'+
  482. '}'+
  483. '.n24h-gear-social:hover {'+
  484. 'background: #007E00;'+
  485. '}'+
  486. '.n24h-icon-gear {'+
  487. 'display: inline;'+
  488. 'min-width: 18px;'+
  489. 'min-height: 18px;'+
  490. 'background-image: url('+icons.gear+');'+
  491. 'background-repeat: no-repeat;'+
  492. 'background-position: center;'+
  493. 'padding-left: 18px;'+
  494. '}'+
  495. '#n24h_options_gear .social-button-text {'+
  496. 'margin-left: 5px;'+
  497. '}';
  498. utils.insertcss(css);
  499. let skin_id=utils.getSkin();
  500. let li, ul, img, div, span1, span2, clear;
  501. switch (skin_id) {
  502. case 1:
  503. ul=document.querySelector('ul.menu.avatar-main-menu.avatar-menu-icons.white');
  504. if (!ul) {
  505. return;
  506. }
  507. utils.insertcss(css1);
  508. li=document.createElement('li'); //panel z opcjami
  509. li.setAttribute('id', 'n24h_options_gear');
  510. li.setAttribute('title', 'napisy24.pl helper opcje');
  511. li.addEventListener('click', options.show, false);
  512. img=document.createElement('img');
  513. img.setAttribute('src', icons.gear);
  514. img.setAttribute('style', 'margin-top: -5px;');
  515. li.appendChild(img);
  516. ul.appendChild(li);
  517. break;
  518. case 2:
  519. div=document.querySelector('div.rt-social-buttons');
  520. if (!div) {
  521. return;
  522. }
  523. utils.insertcss(css2);
  524. li=document.createElement('div'); //panel z opcjami
  525. li.setAttribute('id', 'n24h_options_gear');
  526. li.setAttribute('class', 'social-button n24h-gear-social');
  527. li.addEventListener('click', options.show, false);
  528. span1=document.createElement('span');
  529. span1.setAttribute('class', 'n24h-icon-gear');
  530. li.appendChild(span1);
  531. span2=document.createElement('span');
  532. span2.setAttribute('class', 'social-button-text');
  533. span2.appendChild(document.createTextNode('n24h opcje'));
  534. li.appendChild(span2);
  535. clear=div.querySelector('div.clear');
  536. div.insertBefore(li, clear);
  537. break;
  538. default:
  539. console.log('Błędny skin "utils.getSkin()": '+skin_id);
  540. }
  541. let panel = document.createElement('div');
  542. panel.innerHTML='<div class="n24h_options_background" style="display:none">'+
  543. '<div class="n24h_options_dialog">'+
  544. '<div class="n24h_options_content">'+
  545. '<div class="n24h_options_header">'+
  546. '<img src="'+icons.gear+'" style="margin-top: -5px;padding-right: 5px;">Opcje:<br/>'+
  547. '<span style="color:red;font-size:small;">Zmiana opcji wymaga przeładowania strony.</span>'+
  548. '<div class="n24h_options_close">X</div>'+
  549. '<span id="n24h_options_saved" style="color:green;font-size:small;float:right;display:none;">Zapisane</span>'+
  550. '</div>'+
  551. '<div class="n24h_options_body">'+
  552. '<div class="n24h_options_panel_l">'+
  553. '<div class="n24h_options_panel_button n24h_options_panel_button_selected" data-n24h-optiontype="general">Ogólne</div>'+
  554. '<div class="n24h_options_panel_button" data-n24h-optiontype="shows">Seriale</div>'+
  555. '<div class="n24h_options_panel_button" data-n24h-optiontype="ignore">Pomijane</div>'+
  556. '<div class="n24h_options_panel_button" data-n24h-optiontype="debug">Debug</div>'+
  557. '</div>'+
  558. '<div class="n24h_options_panel_r" data-n24h-optionpanel="general">'+
  559. '<label><input type="checkbox" data-n24h-checkbox="fixsearch"> Zapamiętaj tekst w wyszukiwarce</label>'+
  560. '<label><input type="checkbox" data-n24h-checkbox="killcover"> Usuń okładki filmów/seriali</label>'+
  561. '<label><input type="checkbox" data-n24h-checkbox="killimdbinfo"> Usuń info o serialu/ocenę IMDB</label>'+
  562. '<label><input type="checkbox" data-n24h-checkbox="hideemotspanel"> Ukrywaj panel z emotikonami i dodawaniem komentarza</label>'+
  563. '<label><input type="checkbox" data-n24h-checkbox="fixcomments"> W komentarzach propozycję poprawek wyświetlaj czcionką o stałej szerokości</label>'+
  564. '<label><input type="checkbox" data-n24h-checkbox="shown24info"> Na stronie z tłumaczeniami pokaż info N24/IMDB</label>'+
  565. '<label class="n24_option_level2" style="display:none"><input type="checkbox" data-n24h-checkbox="useimdbinfo"> Zastąp info N24 linkiem do IMDB</label>'+
  566. '<label><input type="checkbox" data-n24h-checkbox="usealtskin"> Używaj alternatywnej skórki <div style="color:blue;font-size:small;display: inline;">najlepiej działa z domyślnym <i>(ciemnym)</i> stylem strony</div></label>'+
  567. '<label class="n24_option_level2" style="display:none"><input type="radio" name="n24h_altskinid" data-n24h-radio="altskinid" data-n24h-radio_id="1"> szara</label>'+
  568. '<label class="n24_option_level2" style="display:none"><input type="radio" name="n24h_altskinid" data-n24h-radio="altskinid" data-n24h-radio_id="2"> n24 classic</label>'+
  569. '<label><input type="checkbox" data-n24h-checkbox="usesmallmenubuttons"> Zmniejsz rozmiar przycisków menu</label>'+
  570. '<label><input type="checkbox" data-n24h-checkbox="removetargetblank"> Usuń target="_blank" ze wszystkich odnośników (nie otwieraj w nowej karcie)</label>'+
  571. '<label><input type="checkbox" data-n24h-checkbox="addemptyrow"> Dodaj pusty wiersz po ostatnim ulubionym filmie/serialu</label>'+
  572. '<label><input type="checkbox" data-n24h-checkbox="turnofffavpanel"> Wyłącz panel ulubionych</label>'+
  573. '<label><input type="checkbox" data-n24h-checkbox="turnoffallfav"> Wyłącz wszystkie opcje ulubionych filmów/seriali</label>'+
  574. '<label><input type="checkbox" data-n24h-checkbox="removeconnectbuttons"> Usuń przyciski "Dołącz..."</label>'+
  575. '</div>'+
  576. '<div style="display:none" class="n24h_options_panel_r" data-n24h-optionpanel="shows">'+
  577. '<span>Ulubione filmy/seriale (jeden film/serial na linię)</span>'+
  578. '<textarea id="n24h_opt_areashows" class="n24h_opt_area" rows="15" ></textarea>'+
  579. '<label><input type="checkbox" data-n24h-checkbox="titleremoveyear"> Usuń rok (RRRR) z nazwy filmu/serialu</label>'+
  580. '<label><input type="checkbox" data-n24h-checkbox="titleremoveapostrophe"> Usuń apostrofy ( \' ’ ` ) z nazwy filmu/serialu</label>'+
  581. '<button id="n24h_opt_btn_save" class="n24h_opt_button">Zapisz</button>'+
  582. '</div>'+
  583. '<div style="display:none" class="n24h_options_panel_r" data-n24h-optionpanel="ignore">'+
  584. '<span>Tłumaczenia tych autorów są pomijane na liście ulubionych (jeden autor/autor(tytuł) na linię)</span>'+
  585. '<textarea id="n24h_opt_areaignore" class="n24h_opt_area" rows="15" ></textarea>'+
  586. '<label><input type="checkbox" data-n24h-checkbox="autokillignoretranslations"> Automatycznie usuwaj pomijane tłumaczenia jeżeli nie ma ich w tabelce z tłumaczeniami</label>'+
  587. '<button id="n24h_opt_btn_ignoresave" class="n24h_opt_button">Zapisz</button>'+
  588. '</div>'+
  589. '<div style="display:none" class="n24h_options_panel_r" data-n24h-optionpanel="debug">'+
  590. '<span>Informacje do debugowania</span>'+
  591. '<textarea id="n24h_opt_areadebug" rows="10" class="n24h_opt_area" readOnly></textarea>'+
  592. '<button id="n24h_opt_btn_killshows" class="n24h_opt_button">Usuń wszystkie ulubione filmy/seriale</button>'+
  593. '<button id="n24h_opt_btn_ignoreaukill" class="n24h_opt_button">Usuń wszystkich pomijanych autorów</button>'+
  594. '<button id="n24h_opt_btn_ignorekill" class="n24h_opt_button">Usuń wszystkie pomijane tłumaczenia (bez autorów)</button>'+
  595. '<button id="n24h_opt_btn_killopt" class="n24h_opt_button">Usuń wszystkie ustawienia (bez filmów/seriali i opcji pomijania)</button>'+
  596. '</div>'+
  597. '</div>'+
  598. '</div>'+
  599. '</div>'+
  600. '</div>';
  601. document.body.appendChild(panel);
  602. //przycisk zapisz
  603. let close=document.querySelector('div.n24h_options_close');
  604. close.addEventListener('click', options.hide, false);
  605. //checkboxy
  606. let opt_checkboxs=document.querySelectorAll('input[data-n24h-checkbox]');
  607. for (let i=0;i<opt_checkboxs.length;i++) {
  608. opt_checkboxs[i].addEventListener('change', options.checkboxClick, false);
  609. }
  610. //radio
  611. let opt_radios=document.querySelectorAll('input[data-n24h-radio]');
  612. for (let i=0;i<opt_radios.length;i++) {
  613. opt_radios[i].addEventListener('change', options.radioClick, false);
  614. }
  615. //sekcje
  616. let opt_types=document.querySelectorAll('div[data-n24h-optiontype]');
  617. for (let i=0;i<opt_types.length;i++) {
  618. opt_types[i].addEventListener('click', options.typeButtonClick, false);
  619. }
  620. //przycisk zapisz
  621. let opt_btn_save=document.getElementById('n24h_opt_btn_save');
  622. opt_btn_save.addEventListener('click', options.btnSaveClick, false);
  623. let opt_btn_authorsave=document.getElementById('n24h_opt_btn_ignoresave');
  624. opt_btn_authorsave.addEventListener('click', options.btnAuthorsSaveClick, false);
  625. //usuń opcje
  626. let opt_btn_killopt=document.getElementById('n24h_opt_btn_killopt');
  627. opt_btn_killopt.addEventListener('click', options.btnKillOptClick, false);
  628. //usuń seriale
  629. let opt_btn_killshows=document.getElementById('n24h_opt_btn_killshows');
  630. opt_btn_killshows.addEventListener('click', options.btnKillShowsClick, false);
  631. //usuń pomijanych autorów
  632. let opt_btn_killignau=document.getElementById('n24h_opt_btn_ignoreaukill');
  633. opt_btn_killignau.addEventListener('click', options.btnKillIgnAu, false);
  634. //usuń pomijane tłumaczenia
  635. let opt_btn_killigntr=document.getElementById('n24h_opt_btn_ignorekill');
  636. opt_btn_killigntr.addEventListener('click', options.btnKillIgnTr, false);
  637.  
  638. if (typeof GM_registerMenuCommand !== "undefined") {
  639. GM_registerMenuCommand("napisy24.pl helper opcje", options.show);
  640. }
  641. }
  642. };
  643.  
  644. var db = {
  645. all: null,
  646. upper: null,
  647. /**
  648. Pobiera tablicę fraz-kluczy.
  649. */
  650. getAll: function(db_name) {
  651. let keywords = ls.getItem(db_name, null);
  652. this.all = (keywords != null && keywords != '') ? JSON.parse(keywords) : [];
  653. return this.all;
  654. },
  655. /**
  656. Pobiera tablicę fraz-kluczy.
  657. */
  658. exists: function(db_name, keyword) {
  659. let keywords = ls.getItem(db_name, null);
  660. this.upper = (keywords != null && keywords != '') ? JSON.parse(keywords.toUpperCase()) : [];
  661. return this.upper.indexOf(keyword.toUpperCase()) < 0 ? false : true;
  662. },
  663. /**
  664. Dodaje keyword do tablicy fraz-kluczy.
  665. */
  666. add: function(db_name, keyword) {
  667. if (!this.exists(db_name, keyword)) {
  668. this.getAll(db_name);
  669. this.all = this.all.concat([keyword]);
  670. ls.setItem(db_name, JSON.stringify(this.all));
  671. return 1;
  672. }
  673. return 0;
  674. },
  675. /**
  676. Usuwa keyword z tablicy fraz-kluczy.
  677. */
  678. remove: function(db_name, keyword) {
  679. if (this.exists(db_name, keyword)) {
  680. this.getAll(db_name);
  681. this.all.splice(this.upper.indexOf(keyword.toUpperCase()), 1);
  682. ls.setItem(db_name, JSON.stringify(this.all));
  683. return 1;
  684. }
  685. return 0;
  686. }
  687. };
  688.  
  689. /**
  690. Strona z tłumaczeniami
  691. */
  692. var tlumaczenia = {
  693. /**
  694. Pobierz nazwę filmu/serialu bez numeru sezonu i odcinka/odcinków
  695. */
  696. getTitle: function(row) {
  697. let title=row.getAttribute('data-head');
  698. //oczyść tytuł ze wszystkich śmieci i numeru serii oraz odcinka/odcinków
  699. title=title.trim().replace(/\d+x\d+.*/, '');
  700. //usuń rok
  701. if (options.getValue('titleremoveyear', false)) {
  702. title=title.trim().replace(/\(\d{4}\)/g, '');
  703. }
  704. //usuń apostrofy
  705. if (options.getValue('titleremoveapostrophe', false)) {
  706. title=title.trim().replace(/'|’|`/g, '');
  707. }
  708. //usuń spacje na końcu która pozostała po wywaleniu numeru serii i odcina
  709. title=title.trim();
  710. return title;
  711. },
  712. /**
  713. Pobierz autora napisów
  714. */
  715. getAuthor: function(row) {
  716. return row.querySelector('a[href*="profile/userprofile/"]').textContent.trim();
  717. },
  718. /**
  719. Pobierz ID tłumaczenia
  720. */
  721. getTID: function(row) {
  722. return row.querySelector('input[data-tid]').getAttribute('data-tid').trim();
  723. },
  724. /**
  725. Zrób zebrę od nowa
  726. */
  727. restyleRows: function() {
  728. let rows=document.querySelectorAll('table#translationsTable > tbody > tr:not([style*="none"])');
  729. for (let i=0;i<rows.length;i++) {
  730. let trcl=rows[i].getAttribute('class');
  731. trcl=trcl.replace(/(odd|even)/, '');
  732. if (i%2) {
  733. rows[i].setAttribute('class', trcl+' odd');
  734. } else {
  735. rows[i].setAttribute('class', trcl+' even');
  736. }
  737. }
  738. },
  739. /**
  740. Przenieś wiersz na szczyt listy
  741. */
  742. moveTop: function(row) {
  743. //znajdź tabelkę z tłumaczeniami
  744. let table=document.querySelector('table#translationsTable > tbody');
  745. //znajdź pierwszy wiersz tabelki
  746. let first_line=table.querySelector('tr');
  747. //wstaw przed pierwszy wiersz nasz wiersz
  748. table.insertBefore(row,first_line);
  749. let td=row.querySelector('td[data-n24h-star]');
  750. td.setAttribute('data-n24h-star', 'on');
  751. },
  752. /**
  753. Umieść ulubione filmy/seriale na szczycie listy
  754. */
  755. FavoriteOnTop: function() {
  756. /**
  757. Dla każdego wiersza w tabeli...
  758. Od końca do początku, żeby zachować kolejność sortowania
  759. */
  760. tlumaczenia.RemoveEmptyRow();
  761. let rows=document.querySelectorAll('table#translationsTable > tbody > tr');
  762. for (let i=rows.length-1;i>=0;i--) {
  763. let row=rows[i];
  764. /**
  765. Wyciąga tytuł i oczyszcza go ze zbędnych znaków.
  766. */
  767. let title=tlumaczenia.getTitle(row);
  768. let star=row.querySelector('td[data-n24h-star]');
  769. if (db.exists(shows_db, title)) {
  770. //Znaleziono dopasowanie.
  771. if (db.exists(au_ignore_db, tlumaczenia.getAuthor(row))) {
  772. //autor jest na liście pomijanych nie przenosimy na górę
  773. star.setAttribute('data-n24h-star', 'auign');
  774. } else if (db.exists(au_ignore_db, tlumaczenia.getAuthor(row)+'('+tlumaczenia.getTitle(row)+')')) {
  775. //tłumaczenie jest na liście pomijanych nie przenosimy na górę
  776. star.setAttribute('data-n24h-star', 'autit');
  777. } else if (db.exists(tr_ignore_db, tlumaczenia.getTID(row))) {
  778. //tłumaczenie jest na liście pomijanych nie przenosimy na górę
  779. star.setAttribute('data-n24h-star', 'trign');
  780. } else {
  781. tlumaczenia.moveTop(row);
  782. }
  783. } else {
  784. //Nie ma dopasowania
  785. //Wyczyść na wszelki wypadek gwiazdkę
  786. star.setAttribute('data-n24h-star', 'off');
  787. }
  788. }
  789. if (options.getValue('addemptyrow', false)) {
  790. let stars=document.querySelectorAll('table#translationsTable>tbody>tr>td[data-n24h-star="on"]');
  791. if (stars.length > 0) {
  792. let table=document.querySelector('table#translationsTable > tbody');
  793. let star=stars[stars.length-1];
  794. if (star) {
  795. let staroff=star.parentNode.nextSibling;
  796. let emptyrow=document.createElement('tr');
  797. emptyrow.setAttribute('id', 'n24h_emptyrow');
  798. emptyrow.setAttribute('class', 'hoverable');
  799. emptyrow.innerHTML='<td colspan="7"><div>&nbsp;</div></td>';
  800. table.insertBefore(emptyrow,staroff);
  801. }
  802. }
  803. }
  804. tlumaczenia.restyleRows();
  805. },
  806. /**
  807. Ustaw informację o kierunku sortowania w nagłówku tabelki
  808. */
  809. SetColumnHeader: function(col, reverse) {
  810. let header=document.querySelectorAll('table#translationsTable>thead>tr>th.header');
  811. for (let i=0;i<header.length;i++) {
  812. if ((i==col)&&(reverse==1)) {
  813. header[i].setAttribute('class', 'header n24h_sort_asc')
  814. } else if ((i==col)&&(reverse==-1)) {
  815. header[i].setAttribute('class', 'header n24h_sort_desc')
  816. } else {
  817. let thcl=header[i].getAttribute('class');
  818. thcl=thcl.replace(/(n24h_sort_asc|n24h_sort_desc)/, '');
  819. header[i].setAttribute('class', thcl);
  820. }
  821. }
  822. },
  823. /**
  824. Sortowanie tabelki z tłumaczeniami
  825. */
  826. sortTable: function(col, reverse) {
  827. tlumaczenia.RemoveEmptyRow();
  828. let table=document.querySelector('table#translationsTable');
  829. col = typeof col !== 'undefined' ? col : options.getValue('column', 4);
  830. reverse = typeof reverse !== 'undefined' ? reverse : options.getValue('reverse', 1);
  831. let tb = table.tBodies[0];
  832. let tr = Array.prototype.slice.call(tb.rows, 0);
  833. reverse = -((+reverse) || -1);
  834. tr = tr.sort(function (a, b) { // sort rows
  835. let atext=a.cells[col].textContent.trim();
  836. let btext=b.cells[col].textContent.trim();
  837. if ((col==3)||(col==4)) {
  838. //Kolumna 3: "Postęp"
  839. //Kolumna 4: "Oczekujący"
  840. //trzeba usunąć znaki: procentu, plus i minus oraz zamienić na numerek
  841. let avalue=Number(atext.replace(/[\+\-\%]/g, ''));
  842. let bvalue=Number(btext.replace(/[\+\-\%]/g, ''));
  843. return reverse==1?avalue-bvalue:bvalue-avalue;
  844. } else {
  845. return reverse * (atext.localeCompare(btext));
  846. }
  847. });
  848. for(let i = 0; i < tr.length; ++i) {
  849. tb.appendChild(tr[i]);
  850. }
  851.  
  852. //zapisz ustawienia sortowania
  853. options.setValue('column', col);
  854. options.setValue('reverse', -((+reverse) || -1));
  855. //ustaw nagłówek
  856. tlumaczenia.SetColumnHeader(col, reverse);
  857. //przesuń ulubione na samą górę
  858. if (!options.getValue('turnoffallfav', false)) {
  859. tlumaczenia.FavoriteOnTop();
  860. } else {
  861. tlumaczenia.restyleRows();
  862. }
  863. },
  864. /**
  865. Obsługa kliknięcia w gwiazdkę
  866. */
  867. StarClickHandler: function(e) {
  868. e = e || window.event;
  869. let target = e.target || e.srcElement;
  870. let row=target.parentNode;
  871. let title=tlumaczenia.getTitle(row);
  872. if (this.getAttribute('data-n24h-star')==='on') {
  873. //Przestań śledzić...
  874. tlumaczenia.RemoveTitle(title);
  875. } else if (this.getAttribute('data-n24h-star')==='off') {
  876. //Zacznij śledzić...
  877. let keyword = prompt('Podaj tytuł filmu lub serialu\nbez numeracji sezonu/odcinka:', tlumaczenia.getTitle(row));
  878. tlumaczenia.AddTitle(keyword);
  879. }
  880. },
  881. /**
  882. Menu pomijania
  883. */
  884. IgnoreMenuHandler: function(e) {
  885. if (this.getAttribute('data-n24h-star')!='off') {
  886. e.preventDefault();
  887. e.stopPropagation();
  888. e = e || window.event;
  889. let target = e.target || e.srcElement;
  890. let row=target.parentNode;
  891. let rmenubg=document.querySelector('div.n24h_menu_background');
  892. rmenubg.setAttribute('style', 'display:block');
  893. let rmenu=document.querySelector('div#n24h_rmenu');
  894. rmenu.setAttribute('data-n24h-ign-tid', tlumaczenia.getTID(row));
  895. rmenu.setAttribute('data-n24h-ign-aut', tlumaczenia.getAuthor(row));
  896. rmenu.setAttribute('data-n24h-ign-ati', tlumaczenia.getAuthor(row)+'('+tlumaczenia.getTitle(row)+')');
  897. if (this.getAttribute('data-n24h-star')=='on') {
  898. document.getElementById("n24h_start_auign").style.display = 'block';
  899. document.getElementById("n24h_start_atign").style.display = 'block';
  900. document.getElementById("n24h_start_trign").style.display = 'block';
  901. document.getElementById("n24h_stop_auign").style.display = 'none';
  902. document.getElementById("n24h_stop_atign").style.display = 'none';
  903. document.getElementById("n24h_stop_trign").style.display = 'none';
  904. } else if(this.getAttribute('data-n24h-star')=='auign') {
  905. document.getElementById("n24h_start_auign").style.display = 'none';
  906. document.getElementById("n24h_start_atign").style.display = 'none';
  907. document.getElementById("n24h_start_trign").style.display = 'none';
  908. document.getElementById("n24h_stop_auign").style.display = 'block';
  909. document.getElementById("n24h_stop_atign").style.display = 'none';
  910. document.getElementById("n24h_stop_trign").style.display = 'none';
  911. } else if(this.getAttribute('data-n24h-star')=='autit') {
  912. document.getElementById("n24h_start_auign").style.display = 'none';
  913. document.getElementById("n24h_start_atign").style.display = 'none';
  914. document.getElementById("n24h_start_trign").style.display = 'none';
  915. document.getElementById("n24h_stop_auign").style.display = 'none';
  916. document.getElementById("n24h_stop_atign").style.display = 'block';
  917. document.getElementById("n24h_stop_trign").style.display = 'none';
  918. } else if(this.getAttribute('data-n24h-star')=='trign') {
  919. document.getElementById("n24h_start_auign").style.display = 'none';
  920. document.getElementById("n24h_start_atign").style.display = 'none';
  921. document.getElementById("n24h_start_trign").style.display = 'none';
  922. document.getElementById("n24h_stop_auign").style.display = 'none';
  923. document.getElementById("n24h_stop_atign").style.display = 'none';
  924. document.getElementById("n24h_stop_trign").style.display = 'block';
  925. }
  926. rmenu.style.top = e.clientY + 'px';
  927. //sprawdź czy zmieścimy się po prawej stronie
  928. if (window.innerWidth>e.clientX+rmenu.offsetWidth+20) {
  929. rmenu.style.left = (e.clientX + 20) + 'px';
  930. } else {
  931. //niestety nie, narysuj menu w lewo
  932. rmenu.style.left = (e.clientX - rmenu.offsetWidth) + 'px';
  933. }
  934. }
  935. },
  936. IgnoreMenuClick: function(e) {
  937. e = e || window.event;
  938. let target = e.target || e.srcElement;
  939. let author=target.parentNode.parentNode.getAttribute('data-n24h-ign-aut');
  940. let tid=target.parentNode.parentNode.getAttribute('data-n24h-ign-tid');
  941. let autitle=target.parentNode.parentNode.getAttribute('data-n24h-ign-ati');
  942. let event=target.getAttribute('id');
  943. if (event=='n24h_start_auign') {
  944. db.add(au_ignore_db, author);
  945. }
  946. if (event=='n24h_start_atign') {
  947. db.add(au_ignore_db, autitle);
  948. }
  949. if (event=='n24h_start_trign') {
  950. db.add(tr_ignore_db, tid);
  951. }
  952. if (event=='n24h_stop_auign') {
  953. db.remove(au_ignore_db, author);
  954. }
  955. if (event=='n24h_stop_atign') {
  956. db.remove(au_ignore_db, autitle);
  957. }
  958. if (event=='n24h_stop_trign') {
  959. db.remove(tr_ignore_db, tid);
  960. }
  961. tlumaczenia.HideRMenu();
  962. tlumaczenia.sortTable();
  963. },
  964. /**
  965. Szukanie filmu/serialu na liście tłumaczonych
  966. */
  967. DoSearch: function() {
  968. let keyword = document.querySelector('input#n24h_tr_input_search').value.toUpperCase();
  969. let rows=document.querySelectorAll('table#translationsTable > tbody > tr:not(#n24h_emptyrow)');
  970. for (let i=0;i<rows.length;i++) {
  971. let row=rows[i];
  972. let title=tlumaczenia.getTitle(row).toUpperCase();
  973. if (keyword == null || keyword == '') {
  974. //pokazujemy wszystkie rekordy
  975. row.style.display='table-row';
  976. } else if (title.indexOf(keyword)!=-1) {
  977. row.style.display='table-row';
  978. } else {
  979. row.style.display='none';
  980. }
  981. }
  982. tlumaczenia.restyleRows();
  983. },
  984. /**
  985. Przycisk wyczyść / ESC
  986. */
  987. ClearHandler: function(e) {
  988. e = e || window.event;
  989. let isEscape = false;
  990. if (e.type == "keydown") {
  991. if ("key" in e) {
  992. isEscape = (e.key == "Escape" || e.key == "Esc");
  993. } else {
  994. isEscape = (e.keyCode == 27);
  995. }
  996. }
  997. if (isEscape || e.type == "click") {
  998. document.getElementById('n24h_tr_input_search').value='';
  999. tlumaczenia.DoSearch();
  1000. }
  1001. },
  1002. /**
  1003. Dodaj film/serial do listy ulubionych
  1004. */
  1005. AddTitle: function(title) {
  1006. if (title != null && title != '' && !db.exists(shows_db, title)) {
  1007. if (db.add(shows_db, title)) {
  1008. if (!options.getValue('turnofffavpanel', false)) {
  1009. document.querySelector('input#n24h_tr_input_new').value='';
  1010. let select=document.querySelector('select#n24h_tr_shows_list');
  1011. let option=document.createElement('option');
  1012. option.text=title;
  1013. option.setAttribute('class', 'n24h_tr_option');
  1014. select.add(option);
  1015. }
  1016. tlumaczenia.sortTable();
  1017. }
  1018. }
  1019. },
  1020. /**
  1021. Przycisk dodaj
  1022. */
  1023. AddNewHandler: function() {
  1024. let keyword = document.querySelector('input#n24h_tr_input_new').value.trim();
  1025. tlumaczenia.AddTitle(keyword);
  1026. },
  1027. /**
  1028. Usuń film/serial z listy ulubionych
  1029. */
  1030. RemoveTitle: function(title) {
  1031. if (db.exists(shows_db, title)) {
  1032. if (db.remove(shows_db, title)) {
  1033. if (!options.getValue('turnofffavpanel', false)) {
  1034. let select=document.querySelector('select#n24h_tr_shows_list');
  1035. for (let i=0;i<select.length;i++) {
  1036. if (select[i].value.toUpperCase()==title.toUpperCase()) {
  1037. select.remove(i);
  1038. break;
  1039. }
  1040. }
  1041. }
  1042. }
  1043. tlumaczenia.sortTable();
  1044. }
  1045. },
  1046. /**
  1047. Przycisk usuń
  1048. */
  1049. RemoveHandler: function() {
  1050. let keyword = document.querySelector('select#n24h_tr_shows_list').value;
  1051. tlumaczenia.RemoveTitle(keyword);
  1052. },
  1053. /**
  1054. Dodaj panel na górze tabelki z tłumaczeniami
  1055. */
  1056. AddPanel: function() {
  1057. let css='#tlumaczenia #n24h_tr_input_search{'+ //wyszukiwanie
  1058. 'margin-right: 5px;'+
  1059. 'padding: 0px 0px 0px 22px;'+
  1060. 'border-radius: 4px;'+
  1061. 'height: 25px;'+
  1062. 'margin-bottom: 0px;'+
  1063. 'width: 150px;'+
  1064. 'background-repeat: no-repeat;'+
  1065. 'background-position: 5px center;'+
  1066. 'background-image: url('+icons.search+');'+
  1067. '}'+
  1068. '#tlumaczenia #n24h_tr_input_new{'+
  1069. 'margin-right: 5px;'+
  1070. 'padding: 0px 0px 0px 27px;'+
  1071. 'border-radius: 4px;'+
  1072. 'height: 25px;'+
  1073. 'margin-bottom: 0px;'+
  1074. 'width: 150px;'+
  1075. 'background-repeat: no-repeat;'+
  1076. 'background-position: 5px center;'+
  1077. 'background-image: url('+icons.staroff+');'+
  1078. '}'+
  1079. '#tlumaczenia #n24h_tr_input_clear,#tlumaczenia #n24h_tr_input_add,#tlumaczenia #n24h_tr_input_remove{'+
  1080. 'border: 1px solid #32383E;'+
  1081. 'border-radius: 4px;'+
  1082. 'cursor: pointer;'+
  1083. 'width: 80px;'+
  1084. 'height: 25px;'+
  1085. '}'+
  1086. '#tlumaczenia #n24h_tr_input_clear:hover,#tlumaczenia #n24h_tr_input_add:hover,#tlumaczenia #n24h_tr_input_remove:hover{'+
  1087. 'border-color:rgba(82, 168, 236, 0.8);outline:0;outline:thin dotted 9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);'+
  1088. '}'+
  1089. '#tlumaczenia #n24h_tr_shows_list{'+
  1090. 'width: auto;'+
  1091. 'margin-right: 5px;'+
  1092. 'height: 25px;'+
  1093. 'margin-bottom: 0px;'+
  1094. 'margin-left: 30px;'+
  1095. 'border: 1px solid #32383E'+
  1096. 'background-color: #1B1F23;'+
  1097. 'color: #7A878C;'+
  1098. 'max-width: 200px;'+
  1099. '}'
  1100. let css1='#tlumaczenia #n24h_tr_input_clear,#tlumaczenia #n24h_tr_input_add,#tlumaczenia #n24h_tr_input_remove{'+
  1101. 'background-color: #1B1F23;'+
  1102. 'color: #7A878C;'+
  1103. '}'+
  1104. '#tlumaczenia .n24h_tr_option{'+
  1105. 'background-color: #1B1F23;'+
  1106. 'color: #7A878C;'+
  1107. '}';
  1108. let css2='#tlumaczenia #n24h_tr_input_clear,#tlumaczenia #n24h_tr_input_add,#tlumaczenia #n24h_tr_input_remove{'+
  1109. 'background-color: #F8F8F8;'+
  1110. 'color: #2e2e2e;'+
  1111. '}'+
  1112. '#tlumaczenia .n24h_tr_option{'+
  1113. 'background-color: #efefef;'+
  1114. 'color: #585858;'+
  1115. '}';
  1116.  
  1117. let trtable=document.querySelector('table#translationsTable');
  1118. if (!trtable) {
  1119. return;
  1120. }
  1121. utils.insertcss(css);
  1122. let skin_id=utils.getSkin();
  1123. switch (skin_id) {
  1124. case 1:
  1125. utils.insertcss(css1);
  1126. break;
  1127. case 2:
  1128. utils.insertcss(css2);
  1129. break;
  1130. default:
  1131. console.log('Błędny skin "utils.getSkin()": '+skin_id);
  1132. }
  1133.  
  1134. let panel=document.createElement('div'); //panel z opcjami
  1135. panel.setAttribute('id', 'n24h_tr_panel');
  1136. panel.setAttribute('class', 'tbl_top');
  1137. panel.setAttribute('style', 'margin: 0px;');
  1138.  
  1139. let div=document.createElement('div'); //ogólny div ze wszystkim
  1140. div.setAttribute('style', 'float:none;padding: 10px; margin-top: -15px; margin-bottom: 15px;');
  1141.  
  1142. let left_div=document.createElement('div'); //lewa część opcji
  1143. left_div.setAttribute('style', 'float:left')
  1144.  
  1145. let input_search=document.createElement('input'); //okienko do szukania
  1146. input_search.setAttribute('id', 'n24h_tr_input_search');
  1147. input_search.setAttribute('type', 'text');
  1148. input_search.setAttribute('placeholder', 'Szukaj...');
  1149. input_search.addEventListener('keyup', tlumaczenia.DoSearch, false);
  1150. input_search.addEventListener('keydown', tlumaczenia.ClearHandler, false);
  1151.  
  1152. let input_clear=document.createElement('input'); //przycisk wyczyść
  1153. input_clear.setAttribute('id', 'n24h_tr_input_clear');
  1154. input_clear.setAttribute('type', 'button');
  1155. input_clear.setAttribute('value', 'Wyczyść');
  1156. input_clear.addEventListener('click', tlumaczenia.ClearHandler, false);
  1157.  
  1158. //dodaj do lewego diva
  1159. left_div.appendChild(input_search); //okienko szukania
  1160. left_div.appendChild(input_clear); //i przycisk wyczyść
  1161.  
  1162. let right_div=document.createElement('div'); //prawa część opcji
  1163. right_div.setAttribute('style', 'float:right')
  1164.  
  1165. let input_new=document.createElement('input'); //okienko do dodawania nowego serialu/filmu
  1166. input_new.setAttribute('id', 'n24h_tr_input_new');
  1167. input_new.setAttribute('type', 'text');
  1168.  
  1169. let input_add=document.createElement('input'); //przycisk dodaj
  1170. input_add.setAttribute('id', 'n24h_tr_input_add');
  1171. input_add.setAttribute('type', 'button');
  1172. input_add.setAttribute('value', 'Dodaj');
  1173. input_add.addEventListener('click', tlumaczenia.AddNewHandler, false);
  1174.  
  1175. let select=document.createElement('select'); //selekt z listą seriali/filmów
  1176. select.setAttribute('id', 'n24h_tr_shows_list');
  1177. select.setAttribute('size', '1');
  1178.  
  1179. //wypełnij selekta listą seriali/filmów
  1180. let keywords = db.getAll(shows_db);
  1181. for (let i=0;i<keywords.length;i++) {
  1182. let option=document.createElement('option');
  1183. option.text=keywords[i];
  1184. option.setAttribute('class', 'n24h_tr_option');
  1185. select.add(option);
  1186. }
  1187.  
  1188. let input_remove=document.createElement('input'); //przycisk usuń
  1189. input_remove.setAttribute('id', 'n24h_tr_input_remove');
  1190. input_remove.setAttribute('type', 'button');
  1191. input_remove.setAttribute('value', 'Usuń');
  1192. input_remove.addEventListener('click', tlumaczenia.RemoveHandler, false);
  1193.  
  1194. //dodaj do prawego diva
  1195. right_div.appendChild(input_new); //okienko do dodawania nowego serialu/filmu
  1196. right_div.appendChild(input_add); //przycisk dodaj
  1197. right_div.appendChild(select); //lista seriali/filmów
  1198. right_div.appendChild(input_remove); //i przycisk usuń
  1199.  
  1200. //dodaj do ogólnego diva
  1201. div.appendChild(left_div); //lewego diva
  1202. div.appendChild(right_div); //i prawego diva
  1203.  
  1204. //dodaj ogólnego diva do panelu
  1205. panel.appendChild(div);
  1206. trtable.parentNode.insertBefore(panel,trtable);
  1207. },
  1208. /**
  1209. Dodaj dodatkową kolumnę z gwiazdkami
  1210. */
  1211. AddStars: function() {
  1212. let css='td[data-n24h-star]{'+
  1213. 'background-image: url('+icons.staroff+');'+
  1214. 'background-repeat: no-repeat;'+
  1215. 'background-position: center;'+
  1216. 'background-color: transparent !important;'+
  1217. 'cursor:pointer !important;'+
  1218. '}'+
  1219. 'td[data-n24h-star="on"]{'+
  1220. 'background-image: url('+icons.staron+');'+
  1221. '}'+
  1222. 'td[data-n24h-star="auign"], td[data-n24h-star="trign"], td[data-n24h-star="autit"]{'+
  1223. 'background-image: url('+icons.starign+');'+
  1224. '}';
  1225. let trtable=document.querySelector('table#translationsTable');
  1226. if (!trtable) {
  1227. return;
  1228. }
  1229. utils.insertcss(css);
  1230. let trhead=trtable.querySelector('thead > tr');
  1231. let th=document.createElement('th');
  1232. th.setAttribute('id', 'n24h_tr_favhead');
  1233. th.setAttribute('class', 'nosort header');
  1234. th.setAttribute('style', 'background-image: url('+icons.staron+');background-repeat: no-repeat;background-position: center;width:10px;');
  1235. th.setAttribute('title', 'Ulubione filmy/seriale');
  1236. trhead.appendChild(th);
  1237. let trs=trtable.querySelectorAll('tbody>tr');
  1238. for (let i = 0; i < trs.length; i++) {
  1239. let td=document.createElement('td');
  1240. td.setAttribute('data-n24h-star', '');
  1241. td.addEventListener('click', tlumaczenia.StarClickHandler, false);
  1242. td.addEventListener('contextmenu', tlumaczenia.IgnoreMenuHandler, false);
  1243. trs[i].appendChild(td);
  1244. }
  1245.  
  1246. },
  1247. HideRMenu: function() {
  1248. let rmenubg=document.querySelector('div.n24h_menu_background');
  1249. rmenubg.setAttribute('style', 'display:none');
  1250. let rmenu=document.querySelector('div#n24h_rmenu');
  1251. rmenubg.setAttribute('data-n24h-ign-tid', '');
  1252. rmenubg.setAttribute('data-n24h-ign-aut', '');
  1253. rmenubg.setAttribute('data-n24h-ign-ati', '');
  1254. },
  1255. /**
  1256. Dodaj menu pomijania tłumaczeń
  1257. */
  1258. AddRMenu: function() {
  1259. let css='.n24h_menu_background{'+
  1260. 'position:fixed;'+
  1261. 'top:0;'+
  1262. 'left:0;'+
  1263. 'width:100%;'+
  1264. 'height:100%;'+
  1265. 'z-index:99999;'+
  1266. '}'+
  1267. '.n24h_rmenu{'+
  1268. 'z-index:999999;'+
  1269. 'position: absolute;'+
  1270. 'background-color:#FFFFFF;'+
  1271. 'color:#222222;'+
  1272. 'box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1);'+
  1273. 'border: 1px solid rgba(61, 70, 77, 0.1);'+
  1274. 'padding: 2px;'+
  1275. 'border-radius: 5px;'+
  1276. 'margin: 0;'+
  1277. 'list-style-type: none;'+
  1278. 'list-style: none;'+
  1279. '}'+
  1280. '.n24h_rmenu ul{'+
  1281. 'margin: 0;'+
  1282. '}'+
  1283. '.n24h_rmenu li{'+
  1284. 'cursor: pointer;'+
  1285. 'list-style: none;'+
  1286. 'text-decoration: none;'+
  1287. 'padding-top: 5px;'+
  1288. 'padding-bottom: 5px;'+
  1289. '}'+
  1290. '.n24h_rmenu li:hover{'+
  1291. 'background-color:#F0F0F0;'+
  1292. '}';
  1293. utils.insertcss(css);
  1294. let rmenu = document.createElement('div');
  1295. rmenu.setAttribute('class', 'n24h_menu_background');
  1296. rmenu.setAttribute('style', 'display:none');
  1297. rmenu.innerHTML='<div id="n24h_rmenu" class="n24h_rmenu"><ul>'+
  1298. '<li id="n24h_start_auign">Pomijaj&nbsp;tłumaczenia&nbsp;tego&nbsp;autora&nbsp;(wszystkie&nbsp;tytuły)</li>'+
  1299. '<li id="n24h_start_atign">Pomijaj&nbsp;tłumaczenia&nbsp;tego&nbsp;autora&nbsp;(tylko&nbsp;ten&nbsp;tytuł)</li>'+
  1300. '<li id="n24h_start_trign">Pomijaj&nbsp;to&nbsp;tłumaczenie</li>'+
  1301. '<li id="n24h_stop_auign">Przestań&nbsp;pomijać&nbsp;tłumaczenia&nbsp;tego&nbsp;autora&nbsp;(wszystkie&nbsp;tytuły)</li>'+
  1302. '<li id="n24h_stop_atign">Przestań&nbsp;pomijać&nbsp;tłumaczenia&nbsp;tego&nbsp;autora&nbsp;(tylko&nbsp;ten&nbsp;tytuł)</li>'+
  1303. '<li id="n24h_stop_trign">Przestań&nbsp;pomijać&nbsp;to&nbsp;tłumaczenie</li>'+
  1304. '</ul></div>';
  1305. rmenu.addEventListener('click', tlumaczenia.HideRMenu, false);
  1306. document.body.appendChild(rmenu);
  1307. let rmenus=rmenu.querySelectorAll('li');
  1308. for (let i = 0; i < rmenus.length; i++) {
  1309. rmenus[i].addEventListener('click', tlumaczenia.IgnoreMenuClick, false);
  1310. }
  1311. },
  1312. /**
  1313. Ustaw nagłówki tabelki tak żeby dało się ją sortować
  1314. */
  1315. makeSortable: function() {
  1316. let trtable=document.querySelector('table#translationsTable');
  1317. if (!trtable) {
  1318. return;
  1319. }
  1320. let th = trtable.tHead, i;
  1321. th && (th = th.rows[0]) && (th = th.cells);
  1322. if (th) {
  1323. i = th.length;
  1324. } else {
  1325. return;
  1326. }
  1327. while (--i >= 0) {
  1328. if (i<6) { //pomiń kolumnę ulubione
  1329. (function (i) {
  1330. let dir = 1;
  1331. th[i].addEventListener('click', function () {tlumaczenia.sortTable(i, (dir = 1 - dir))});
  1332. }(i));
  1333. }
  1334. }
  1335. },
  1336. /**
  1337. Skopiuj nagłówki tabelki, żeby wywalić oryginalną obsługę sortowania i dodać naszą
  1338. */
  1339. AddNewHeader: function() {
  1340. let css='#translationsTable th {cursor: pointer !important;}'+
  1341. '#translationsTable th.nosort {cursor: default !important;}'+
  1342. '.n24h_sort_asc{background-image: url(run/images/arrsh.png);background-repeat: no-repeat;background-position: right;}'+
  1343. '.n24h_sort_desc{background-image: url(run/images/arrs.png);background-repeat: no-repeat;background-position: right;}';
  1344. let trtable=document.querySelector('table#translationsTable');
  1345. if (!trtable) {
  1346. return;
  1347. }
  1348. utils.insertcss(css);
  1349. let header=trtable.querySelector('thead');
  1350. let new_header=document.createElement('thead');
  1351. new_header.innerHTML=header.innerHTML;
  1352. trtable.insertBefore(new_header, header);
  1353. trtable.removeChild(header);
  1354. tlumaczenia.makeSortable();
  1355. },
  1356. /**
  1357. Wywal kolumnę info i ewentualnie dodaj linki do tytułów seriali
  1358. */
  1359. FixInfo: function() {
  1360. let trtable=document.querySelector('table#translationsTable');
  1361. if (!trtable) {
  1362. return;
  1363. }
  1364. /**INFO START*/
  1365. if (options.getValue('shown24info', false)) {
  1366. let trs=trtable.querySelectorAll('tbody > tr');
  1367. for (let i = 0; i < trs.length; i++) {
  1368. let title=trs[i].querySelector('td:nth-child(1)>div');
  1369. let info=trs[i].querySelector('td:nth-child(2)>div>a[href*="serial/"], a[href*="title/tt"]');
  1370. if (info) {
  1371. if (options.getValue('useimdbinfo', false)) {
  1372. let imdbid=trs[i].getAttribute('data-oczekuja').replace(/(.*imdbid=)(\d+)(.*)/g, '$2');
  1373. title.innerHTML='<a href="http://www.imdb.com/title/tt'+imdbid+'/" target="_blank">'+title.textContent+'</a>';
  1374. } else {
  1375. let target=info.href.indexOf('imdb.com')!=-1?' target="_blank"':'';
  1376. title.innerHTML='<a href="'+info.href+'"'+target+'>'+title.textContent+'</a>';
  1377. }
  1378. }
  1379. }
  1380. }
  1381. /**INFO STOP*/
  1382. //usuń kolumnę Info
  1383. let th=document.querySelector('th:nth-child(2)');
  1384. th.parentNode.removeChild(th);
  1385. let tds=document.querySelectorAll('table#translationsTable>tbody>tr>td:nth-child(2)');
  1386. for (let i = 0; i < tds.length; i++) {
  1387. tds[i].parentNode.removeChild(tds[i]);
  1388. }
  1389. },
  1390. RemoveEmptyRow: function() {
  1391. //usuń pustą belkę jeżeli istnieje
  1392. let emptyrow=document.querySelector('#n24h_emptyrow');
  1393. if (emptyrow) {
  1394. let table=emptyrow.parentNode;
  1395. table.removeChild(emptyrow);
  1396. }
  1397. },
  1398. KillIgnoreTranslations: function() {
  1399. let tmp=[];
  1400. let ignoredb=db.getAll(tr_ignore_db);
  1401. if (ignoredb.length>0) {
  1402. let tid;
  1403. let selector;
  1404. for (let i=0;i<ignoredb.length;i++) {
  1405. selector='table#translationsTable input[data-tid="'+ignoredb[i]+'"]';
  1406. tid=document.querySelector(selector);
  1407. if (tid) {
  1408. tmp.push(ignoredb[i]);
  1409. }
  1410. }
  1411. ls.setItem(tr_ignore_db, JSON.stringify(tmp));
  1412. }
  1413. },
  1414. init: function() {
  1415. if (!(options.getValue('turnofffavpanel', false)||options.getValue('turnoffallfav', false))) {
  1416. tlumaczenia.AddPanel();
  1417. }
  1418. tlumaczenia.FixInfo();
  1419. if (!options.getValue('turnoffallfav', false)) {
  1420. tlumaczenia.AddStars();
  1421. }
  1422. tlumaczenia.AddNewHeader();
  1423. if (!options.getValue('turnoffallfav', false)) {
  1424. tlumaczenia.AddRMenu();
  1425. }
  1426. tlumaczenia.sortTable();
  1427. if (options.getValue('autokillignoretranslations', false)) {
  1428. tlumaczenia.KillIgnoreTranslations();
  1429. }
  1430. }
  1431. };
  1432.  
  1433. /**
  1434. Strona z komentarzami
  1435. */
  1436. var komentarze = {
  1437. /**
  1438. Zapisz poprawki za pomocą czcionki o stałej szerokości
  1439. */
  1440. fix_comments: function() {
  1441. let css='div.n24h_comment{'+
  1442. 'font-family: Consolas,Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace,serif;'+
  1443. 'font-size: 13px;'+
  1444. 'text-align: left;'+
  1445. '}';
  1446. utils.insertcss(css);
  1447.  
  1448. let comments=document.querySelectorAll('div.tresc2');
  1449. for (let i=0;i<comments.length;i++)
  1450. {
  1451. let text=comments[i].innerHTML;
  1452. let lines=text.split('<br>');
  1453. let line='';
  1454. text='';
  1455. for (let j=0;j<lines.length;j++)
  1456. {
  1457. line=lines[j].replace(/((\+|\-)?(.)?(\[|\{)\d+(\]|\})(\[|\{)\d+(\]|\}).*)/g, '<div class="n24h_comment">$1</div>');
  1458. text=text+line;
  1459. if (line.search('n24h_comment')==-1) {
  1460. text=text+'<br>';
  1461. }
  1462. }
  1463. comments[i].innerHTML=text;
  1464. }
  1465. },
  1466. /**
  1467. Pokaż/ukryj panel z emotkami i dodawaniem komentarza
  1468. */
  1469. ShowHideEmots: function() {
  1470. let emots=document.querySelector('.page > div:nth-child(2)');
  1471. let form=document.querySelector('form#userForm');
  1472. let opener=document.querySelector('div#n24h_comm_opener');
  1473. if ((!emots) || (!form)) {
  1474. return;
  1475. }
  1476. if (emots.style.display==='none')
  1477. {
  1478. emots.style.display='block';
  1479. form.style.display='block';
  1480. opener.setAttribute('class', 'n24h_comm_opener n24h_comm_opener_open');
  1481. } else {
  1482. emots.style.display='none';
  1483. form.style.display='none';
  1484. opener.setAttribute('class', 'n24h_comm_opener');
  1485. }
  1486. },
  1487. /**
  1488. Dodaj strzałkę otwierającą/zamykającą panel emotek i komentarza
  1489. */
  1490. addOpener: function() {
  1491. let css='div.n24h_comm_opener{'+
  1492. 'background-image: url(run/images/arrs.png);'+
  1493. 'background-repeat: no-repeat;'+
  1494. 'height: 20px;'+
  1495. 'width: 20px;'+
  1496. 'background-position: center;'+
  1497. 'cursor:pointer;'+
  1498. 'border: 1px solid;'+
  1499. 'border-color:#32383E;'+
  1500. 'padding: 3px;'+
  1501. 'margin-left: 10px;'+
  1502. 'float: left;'+
  1503. '}'+
  1504. 'div.n24h_comm_opener:hover{'+
  1505. 'background-color: #202428;'+
  1506. '}'+
  1507. 'div.n24h_comm_opener_open{'+
  1508. 'background-image: url(run/images/arrsh.png);'+
  1509. '}';
  1510. let footer=document.querySelector('div.moreInfo>div.infofooter');
  1511. if (!footer) {
  1512. return;
  1513. }
  1514. let footermain=footer.querySelector('#footerMain');
  1515. if (!footermain) {
  1516. return;
  1517. }
  1518. utils.insertcss(css);
  1519. let opener=document.createElement('div');
  1520. opener.setAttribute('id', 'n24h_comm_opener');
  1521. opener.setAttribute('class', options.getValue('hideemotspanel', false)?'n24h_comm_opener':'n24h_comm_opener n24h_comm_opener_open');
  1522. opener.setAttribute('title', 'Pokaż/ukryj dodawanie komentarza');
  1523. opener.addEventListener('click', komentarze.ShowHideEmots, false);
  1524. footer.insertBefore(opener,footermain);
  1525. footer.setAttribute('style', 'padding-bottom: 5px; padding-top: 5px;');
  1526. if (options.getValue('hideemotspanel', false)) {
  1527. komentarze.ShowHideEmots();
  1528. }
  1529. },
  1530. init: function() {
  1531. komentarze.addOpener();
  1532. if (options.getValue('fixcomments', false)) {
  1533. komentarze.fix_comments();
  1534. }
  1535. }
  1536. };
  1537.  
  1538. /**
  1539. Strona o serialu
  1540. */
  1541. var serial = {
  1542. /**
  1543. Dodaj linka do IMDB
  1544. */
  1545. addIMDBlink: function() {
  1546. let info=document.querySelector('.infoColumn2>div:last-child');
  1547. if (!info) {
  1548. return;
  1549. }
  1550. let link=document.createElement('a');
  1551. let imdbid=document.querySelector('#notify_napisy').getAttribute('data-imdb');
  1552. let href='http://www.imdb.com/title/'+imdbid+'/';
  1553. link.setAttribute('href', href);
  1554. link.setAttribute('target', '_blank');
  1555. link.innerHTML='IMDB';
  1556. info.appendChild(document.createTextNode(' / ')); //dodaj spację
  1557. info.appendChild(link);
  1558. },
  1559. setObserver: function() {
  1560. let observer = new MutationObserver(function(mutations) {
  1561. mutations.forEach(function(mutation) {
  1562. misc.killTargetBlank();
  1563. });
  1564. });
  1565.  
  1566. observer.observe(document, { childList: true, subtree: true });
  1567. },
  1568. init: function() {
  1569. serial.addIMDBlink();
  1570. if (options.getValue('removetargetblank', false)) {
  1571. serial.setObserver();
  1572. }
  1573. }
  1574. };
  1575.  
  1576. /**
  1577. Różności
  1578. */
  1579. var misc = {
  1580. /**
  1581. Obsługa zapamiętywania wyszukiwanych filmów/seriali między stronami
  1582. */
  1583. SearchHandler: function() {
  1584. let input=document.querySelector('input#phrase');
  1585. if (!input) {
  1586. return;
  1587. }
  1588. sessionStorage.setItem('n24h_search', input.value);
  1589. },
  1590. /**
  1591. Dodaj zapamiętywanie wyszukiwanych filmów/seriali
  1592. */
  1593. fixSearch: function() {
  1594. let input=document.querySelector('input#phrase');
  1595. if (!input) {
  1596. return;
  1597. }
  1598. let searchtext=sessionStorage.getItem('n24h_search');
  1599. if ((searchtext!==null)&&(searchtext!=='')) {
  1600. input.value=searchtext;
  1601. }
  1602. input.addEventListener('keyup', misc.SearchHandler, false);
  1603. },
  1604. /**
  1605. Usuń okładkę filmu/serialu
  1606. */
  1607. killCover: function() {
  1608. let css='div.subtitle{width: 675px !important;}';
  1609. utils.insertcss(css);
  1610. let divs=document.querySelectorAll('div.tbl');
  1611. for (let i=0;i<divs.length;i++) {
  1612. let poster=divs[i].querySelector('div.poster');
  1613. divs[i].removeChild(poster);
  1614. }
  1615. },
  1616. /**
  1617. Usuń ocenę z IMDB
  1618. */
  1619. killIMDBInfo: function() {
  1620. let divs=document.querySelectorAll('div[id^="toggleMe"]');
  1621. for (let i=0;i<divs.length;i++) {
  1622. let infocolumn=divs[i].querySelector('div.infoColumn0');
  1623. divs[i].removeChild(infocolumn);
  1624. }
  1625. },
  1626. /**
  1627. Alternatywne skórki
  1628. */
  1629. altSkin: function() {
  1630. /** Szara start*/
  1631. let altcss1='.avatar-menu-icons[class*="avatar-main-menu-szare"] > li {background-color: #2B68AB;border-right: 1px solid #5592D5;border-bottom: 4px solid #1B4A7E;}'+//menu: forum, irc, rss
  1632. '[class*="avatar-main-menu"] > li:hover {border-bottom: 4px solid #1B4A7E;line-height: 18px;height: 18px;}'+
  1633. '[class*="avatar-main-menu"] > li:hover > a {top:0px;}'+
  1634. '#oczekiwane .main_menu li a, #profile .main_menu li a, #szukaj .main_menu li a, #tlumaczenia .main_menu li a {color: #FFFFFF;}'+
  1635. '#oczekiwane .main_menu li a:hover, #profile .main_menu li a:hover, #szukaj .main_menu li a:hover, #tlumaczenia .main_menu li a:hover {color: #cccccc;}'+
  1636. 'nav{background-color: #2B68AB !important;}'+//pusta przestrzeń między menu a dodaj napisy
  1637. 'nav ul li.menu_add_napisy a{background-color: #2B68AB;border-bottom: 4px solid #1B4A7E;}'+//przycisk dodaj napisy
  1638. 'nav ul li.menu_add_napisy a:hover{background-color: #1B4A7E;color: #CCC;background-position: 21px 12px;}'+
  1639. 'nav ul li.menu_add_napisy a:active{color: #CCC;text-shadow: 0px -1px 1px rgba(0, 0, 0, 0.2);filter: dropshadow(color=#33000000, offx=0, offy=-1);border-top: 4px solid #2B68AB;border-bottom: 4px solid #1B4A7E;background-color: #1B4A7E;background-position: 21px 8px;}'+
  1640. 'body{background-color:#D5D5D5 !important;color: #272727;}'+//body
  1641. '#avatar-body-middle-block{background-color:#D5D5D5;}'+//środek
  1642. '#avatar-header-inside-block{background-color:#D5D5D5;}'+//górna belka body
  1643. '.logo .screen{border: 4px solid #5592D5 !important;}'+//logo
  1644. '.logo .screen .subline1{background-color: #5592D5 !important;}'+
  1645. '.logo .screen .subline2{background-color: #5592D5 !important;}'+
  1646. '.logo h1{color: #5592D5 !important;}'+
  1647. '.logo h2{color: #5592D5 !important;}'+
  1648. 'textarea, input[type="text"], input[type="password"], input[type="datetime"], input[type="datetime-local"], input[type="date"], input[type="month"], input[type="time"], input[type="week"], input[type="number"], input[type="email"], input[type="url"], input[type="search"], input[type="tel"], input[type="color"], .uneditable-input {background-color: #D5D5D5 !important;color: #000000 !important;}'+//pola tekstowe
  1649. '#search #phrase{color: #000000 !important;}'+//wyszukiwarka
  1650. 'section#content .tbl_top{background-color:#D5D5D5 !important;border-top: 1px solid #A0A0A0 !important;}'+ //tabelka nagłówek
  1651. '.tbl_top1, .tbl_top2{background-color:#D5D5D5 !important;border-top: 1px solid #A0A0A0 !important;}'+ //tabelka nagłówek
  1652. 'section#content .tbl_top .head_r label{color:#000000 !important;}'+
  1653. 'section#content .tbl_top .head_l{color:#000000 !important;}'+
  1654. 'section#content .tbl{background-color:#D5D5D5 !important;border-top: 1px solid #A0A0A0 !important;}'+
  1655. 'section#content .page{border-color:#A0A0A0 !important;}'+
  1656. 'section#content .tbl_out{border-bottom:1px solid #A0A0A0 !important;}'+
  1657. 'section#content .tbl .poster{border-right:1px solid #A0A0A0 !important;}'+
  1658. 'section#content .pagination{border: 1px solid #A0A0A0;background-color: #E0E0E0;}'+
  1659. 'section#content .pagination .page-start, section#content .pagination .page-prev, section#content .pagination .page-next{ color: #272829;background-color: #D5D5D5;}'+//start, poprzednia, następna
  1660. 'section#content .pagination .page-start:hover, section#content .pagination .page-prev:hover, section#content .pagination .page-next:hover{color: #272829;background-color: #E0E0E0;border-radius: 0px 0px 3px 3px;border-bottom: 3px solid #D26911;border-top:none;padding-bottom: 0px;line-height: 30px;}'+
  1661. 'section#content .pagination .page-prev:hover{background-position: 15px center;}'+
  1662. 'section#content .pagination .page-next:hover{background-position: 90px center;}'+
  1663. 'section#content .pagination .page-num{color: #272829 !important;background-color: #D5D5D5;}'+//numery stron
  1664. 'section#content .pagination .page-num:hover{background-color: #E0E0E0;border-top-width: 1px;margin-top: 0px;border-radius: 0px 0px 3px 3px;border-bottom: 3px solid #D26911;}'+
  1665. 'section#content .tbl.opened .subtitle .opener, section#content .tbl .subtitle:hover .opener, .page .closerSmall, .page .closerSmall:hover, .page .openerSmall, .page .openerSmall:hover, .page .closerSmall2, .page .openerSmall2:hover {background-color: #E0E0E0 !important;border-radius: 0px 0px 3px 3px;border-bottom: 3px solid #D26911;}'+
  1666. '.module_frame{border: 1px solid #A0A0A0;}'+
  1667. '.category-modulemodule_frame li a{color: #000000;}'+
  1668. '.category-modulemodule_frame li a:hover{color: #2F2F2F;background-color: #E0E0E0;}'+
  1669. 'aside .list li a{color: #000000 !important;}'+
  1670. 'aside .list li a:hover{color: #2F2F2F !important;background-color: #E0E0E0 !important;text-decoration: none !important;}'+
  1671. 'aside{width: inherit !important;}'+
  1672. '.avatar-module .st-module-heading{background-color: #A0A0A0;color: #2F2F2F;}'+
  1673. '.login-greeting{color: #272829;}'+
  1674. '.moreInfo{background-color:#D5D5D5 !important;color:#000000 !important; border-top: 1px solid #A0A0A0;}'+
  1675. '.page span{color: #272829 !important;}'+
  1676. '.infofooter{border-top: 1px solid #A0A0A0 !important;background-color: #D5D5D5 !important;}'+
  1677. '.infoColumn0{background-color: #D5D5D5 !important;border-right: 1px solid #A0A0A0 !important;border-bottom: 1px solid #A0A0A0 !important;border-top: 1px solid #A0A0A0 !important}'+
  1678. 'section#content .page{color: #272829 !important;}'+
  1679. 'section#content .tbl .subtitle .sub h2{color: #272829 !important;}'+
  1680. 'select {background-color: #C5C5C5 !important;}'+
  1681. 'a, a:link, a:visited {color: #1E519D;}'+
  1682. '.infoheader, .infoheader1{color: #000000 !important;}'+
  1683. '.row-fluid {border-bottom: none !important;}'+
  1684. /**tłumaczenia*/
  1685. '#tlumaczenia [class*="avatar-main-menu"] li a {color: #FFF;}'+
  1686. 'table.table-layout thead tr th{background-color: #D5D5D5 !important;color: #272829 !important;border-bottom: 1px solid #A0A0A0 !important;border-right: 1px solid #A0A0A0 !important;}'+
  1687. 'table.table-layout tbody tr.odd td:not([style*="background-color:#255180"]):not([style*="background-color:#DD7665"]):not([style*="background-color:#41d64b"]):not([style*="background-color:#3399ff"]){background-color: #C5C5C5 !important;}'+
  1688. 'table.table-layout tbody tr.even td:not([style*="background-color:#255180"]):not([style*="background-color:#DD7665"]):not([style*="background-color:#41d64b"]):not([style*="background-color:#3399ff"]){background-color: #B5B5B5 !important;}'+
  1689. 'table.table-layout tbody tr td{border-bottom: 1px solid #A0A0A0 !important;border-right: 1px solid #A0A0A0 !important;color: #000000 !important;}'+
  1690. 'table.table-layout {border: 1px solid #A0A0A0 !important;}'+
  1691. '.progress div{background-color: #A0A0A0 !important; background-image: none !important;}'+
  1692. '#tlumaczenia .progress {background-color: #676767 !important; background-image:none;}'+
  1693. '.progress2 {background-image: none !important;background-color: #676767 !important;bottom: 8px !important;top: 10px !important;height: 20px;overflow: hidden;border-radius: 4px;box-shadow: inset 0 1px 2px rgba(0,0,0,0.1);position: absolute;left: 8px;right: 8px;text-align: center;background-repeat: no-repeat;margin-bottom: 20px;}'+
  1694. '#profile .progress2 div, #szukaj .progress2 div, #tlumaczenia .progress2 div, #serial .progress2 div {background-color: #A0A0A0 !important; background-image: none !important;top: 0px !important;left: 0px !important;right: 0px !important;}'+
  1695. '#oczekiwane .progress2 > span, #profile .progress2 > span, #szukaj .progress2 > span, #tlumaczenia .progress2 > span{position: absolute;bottom: 0px;left: 0px;right: 0px;text-align: center;z-index: 3;font-size: 10px;letter-spacing: 1px;}'+
  1696. '#oczekiwane .progress2 > span > span, #profile .progress2 > span > span, #szukaj .progress2 > span > span, #tlumaczenia .progress2 > span > span {display: inline-block;text-align: center;font-weight: 700;font-size: 9px;width: 36px;letter-spacing: 1px;color: #FFFFFF !important;text-shadow: 0 0 3px #000, 0 0 3px #000;}'+
  1697. '.progress2 span{opacity: 1 !important;}'+
  1698. '#tlumaczenia nav ul li.menu_add_tlum a{background-color: #2B68AB;border-bottom: 4px solid #2B68AB;background-position: 21px 12px; color: #FFFFFF;}'+
  1699. 'nav ul li.menu_add_tlum a:hover{border-bottom: 4px solid #1B4A7E;color: #CCCCCC;background-color: #2B68AB;line-height: 44px;height: 42px;background-position: 21px 12px;}'+
  1700. 'nav ul li.menu_add_tlum a:active{border-bottom: 4px solid #1B4A7E;color: #CCCCCC;background-color: #2B68AB;line-height: 48px;height: 42px;background-position: 21px 12px;text-shadow:none;filter:none;border-top:none;}'+
  1701. 'table.table-layout tbody tr td[style*="background-color:#255180"], td[style*="background-color:#41d64b"], td[style*="background-color:#3399ff"]{background-color:#DFDFDF !important;}'+ //ostatnio zaktualizowane
  1702. 'table.table-layout tbody tr td div span[style*="color: white"], span[style*="color: #feee39"]{color: black !important;}'+ //ilość oczekujących
  1703. 'table.table-layout tbody tr td div a[style*="color: rgb(0,200,0)"]{color: rgb(0,150,0) !important;}'+ //moderator
  1704. '.translation {cursor: pointer !important;}'+
  1705. '.headerSortUp{background-image: url(run/images/arrs.png);background-repeat: no-repeat;background-position: right;}'+
  1706. '.headerSortDown{background-image: url(run/images/arrsh.png);background-repeat: no-repeat;background-position: right;}'+
  1707. '.progress > span > span {color: #FFFFFF !important;}'+ //procenty ukończenia
  1708. '#tlumaczenia table.table-layout tbody tr a {color: #1E519D;}'+
  1709. /**komentarze*/
  1710. '.moreInfo2{background-color:#D5D5D5 !important;color:#000000 !important;}'+
  1711. 'section#content .tbl .avatar{border-right: 1px solid #A0A0A0 !important;}'+
  1712. '#komentarze section#content .tbl .subtitle .sub h3{color: #000000;}'+
  1713. '#komentarze section#content .tbl .mark{color: #000000;}'+
  1714. 'textarea{background-color: #B5B5B5 !important;color: #272829 !important;}'+
  1715. '#komentowane-header{background-color: #ADADAD !important;}'+ //górna belka z datą i oceną
  1716. '.tresc2 div[style*="background-color: #292f35"]{background-color: #E9E9E9 !important;}'+ //cytat
  1717. '#komentarze .sortComments{color: #000000;}'+
  1718. /**artykuły*/
  1719. '#jc{background: none repeat scroll 0px 0px #B5B5B5;}'+
  1720. '#jc h4{color: #272829;background-color: #C5C5C5;}'+
  1721. '#jc .rbox{background-color: #B5B5B5;}'+
  1722. '#comments .comment-author, #comments .author-homepage, #comments .author-email{color: #4B3F37;}'+
  1723. '#comments .comment-date{color: #4B3F37;}'+
  1724. '#comments .comment-body{color: #4B3F37;}'+
  1725. '#comments .quote{color: #4B3F37;}'+
  1726. '#comments blockquote, #comments .hidden, #comments code, #comments pre{color: #1B6A6A;}'+
  1727. '#comments a{color: #174B54;}'+
  1728. '#comments-form input{color: #2D3335;}'+
  1729. /**profil*/
  1730. '#uddeim-overview .sectiontableentry1 {background-color: #C5C5C5 !important;}'+
  1731. '#uddeim-overview .sectiontableentry2 {background-color: #B5B5B5 !important;}'+
  1732. '#uddeim-overview>table {border-collapse: initial !important;}'+
  1733. '#uddeim-writeform input {background-color: #D5D5D5 !important;}'+
  1734. /**seriale*/
  1735. '#seriale span.yellowfont {color: #000000 !important;}'+
  1736. /**serial*/
  1737. 'section#content .tbl_top_powiadomienia {background-color:#D5D5D5 !important;border-top: 1px solid #A0A0A0 !important;}'+
  1738. 'section#content .tbl_top_powiadomienia .head_l {color: #414141 !important;}'+
  1739. 'section#content .tbl_top_powiadomienia .head_r label {color: #414141 !important;}'+
  1740. '.serialNapisy .infofootertab {color: #000000 !important; background-color: #DEE0E2 !important; border-top: 1px solid #BBBBBB !important;}'+
  1741. '#serial section#content span[style*="color:#5d93d3"] {color: transparent !important;}'+
  1742. /**n24 helper*/
  1743. '#n24h_tr_input_search, #n24h_tr_input_new{color: #000000 !important;}'+
  1744. '#n24h_tr_input_clear, #n24h_tr_input_add, #n24h_tr_input_remove {background-color: #C5C5C5 !important;color: #000000 !important;}'+
  1745. '#n24h_tr_shows_list {background-color: #C5C5C5 !important;color: #000000 !important;}'+
  1746. '.n24h_tr_option {background-color: #C5C5C5 !important;color: #000000 !important;}'+
  1747. 'div.n24h_comm_opener:hover {background-color: #C5C5C5 !important;}';
  1748. /** Szara stop*/
  1749. /** n24 classic start*/
  1750. let altcss2='body{background-color:#DEE0E2 !important;color: #272727;}'+//body
  1751. '#avatar-body-middle-block{background-color:#DEE0E2;}'+//środek
  1752. '#avatar-header-inside-block{background-color:#DEE0E2;}'+//górna belka body
  1753. '#avatar-tool-block{background-color:#DEE0E2;}'+
  1754. '#oczekiwane .main_menu li a, #profile .main_menu li a, #szukaj .main_menu li a, #tlumaczenia .main_menu li a {color: #FFFFFF;}'+
  1755. '#oczekiwane .main_menu li a:hover, #profile .main_menu li a:hover, #szukaj .main_menu li a:hover, #tlumaczenia .main_menu li a:hover {color: #cccccc;}'+
  1756. '.logo .screen{border: 4px solid #5592D5 !important;}'+//logo
  1757. '.logo .screen .subline1{background-color: #5592D5 !important;}'+
  1758. '.logo .screen .subline2{background-color: #5592D5 !important;}'+
  1759. '.logo h1{color: #5592D5 !important;}'+
  1760. '.logo h2{color: #5592D5 !important;}'+
  1761. '.avatar-menu-icons[class*="avatar-main-menu-szare"] > li {background-color: #2B68AB;border-right: 1px solid #5592D5;border-bottom: 4px solid #1B4A7E;}'+//menu: forum, irc, rss
  1762. '[class*="avatar-main-menu"] > li:hover {border-bottom: 4px solid #1B4A7E;line-height: 18px;height: 18px;}'+
  1763. '[class*="avatar-main-menu"] > li:hover > a {top:0px;}'+
  1764. 'nav{background-color: #2B68AB !important;}'+//pusta przestrzeń między menu a dodaj napisy
  1765. 'nav ul li.menu_add_napisy a{background-color: #2B68AB;border-bottom: 4px solid #1B4A7E;}'+//przycisk dodaj napisy
  1766. 'nav ul li.menu_add_napisy a:hover{background-color: #1B4A7E;color: #CCC;background-position: 21px 12px;}'+
  1767. 'nav ul li.menu_add_napisy a:active{color: #CCC;text-shadow: 0px -1px 1px rgba(0, 0, 0, 0.2);filter: dropshadow(color=#33000000, offx=0, offy=-1);border-top: 4px solid #2B68AB;border-bottom: 4px solid #1B4A7E;background-color: #1B4A7E;background-position: 21px 8px;}'+
  1768. 'textarea, input[type="text"], input[type="password"], input[type="datetime"], input[type="datetime-local"], input[type="date"], input[type="month"], input[type="time"], input[type="week"], input[type="number"], input[type="email"], input[type="url"], input[type="search"], input[type="tel"], input[type="color"], .uneditable-input {background-color: #FFFFFF !important;color: #000000 !important;}'+//pola tekstowe
  1769. '#search #phrase{color: #000000 !important;}'+//wyszukiwarka
  1770. 'section#content .tbl_top, section#content .tbl_top1, section#content .tbl_top2{background: linear-gradient(#EDEEEE, #E2E3E3) !important;border-top: none !important;border-radius:5px;border-bottom:1px solid #B6B7B7 !important;}'+ //tabelka nagłówek
  1771. 'section#content .tbl {width: inherit !important;}'+
  1772. 'section#content .tbl_top .head_l{color:#000000 !important;}'+
  1773. 'section#content .tbl{background-color:#F7F8F8 !important;border-top:none !important;border-bottom: 1px solid #DBDCDC;border-right: 1px solid #DBDCDC;}'+
  1774. 'section#content .page{border:none !important;}'+
  1775. 'section#content .tbl_out{border-bottom:none !important;}'+
  1776. 'section#content .pagination{background: linear-gradient(#EDEEEE, #E2E3E3);border:none;border-radius:5px;}'+
  1777. 'section#content .tbl .subtitle .sub h2{color:#004896 !important;}'+
  1778. 'section#content .tbl .subtitle .sub h3{color:#5D5D5D !important;}'+
  1779. 'section#content .pagination .page-start, section#content .pagination .page-prev, section#content .pagination .page-next{ color: #2C2C2C;background-color: #F9F9F9;border: 1px solid #CECFCF;border-radius: 4px;margin: 4px 2px 0px;line-height: 20px;background-image:none;}'+//start, poprzednia, następna
  1780. 'section#content .pagination .page-start:hover, section#content .pagination .page-prev:hover, section#content .pagination .page-next:hover{color: #2C2C2C;background-color: #F9F9F9;border: 1px solid #CECFCF;border-radius: 4px;padding-bottom: 0px;line-height: 30px;text-decoration:underline;line-height: 20px;background-image:none;}'+
  1781. 'section#content .pagination .page-start, section#content .pagination .page-prev {padding-left:15px;}'+
  1782. 'section#content .pagination .page-next {padding-right:15px;}'+
  1783. 'section#content .pagination a.page-num{color: #2C2C2C;background-color: #F9F9F9;border: 1px solid #CECFCF;border-radius: 4px;}'+//numery stron
  1784. 'section#content .pagination a.page-num:hover{background-color: #F9F9F9;border: 1px solid #CECFCF;margin-top: 0px; border-radius: 4px;text-decoration:underline;}'+
  1785. 'section#content .pagination span.page-num{color: #FFFFFF !important;background-color: #2A5EA1;border: 1px solid #CECFCF;border-radius: 4px;}'+//numery stron
  1786. 'section#content .pagination span.page-num:hover{background-color: #2A5EA1;border: 1px solid #CECFCF;margin-top: 0px; border-radius: 4px;text-decoration:underline;}'+
  1787. 'section#content .tbl.opened .subtitle .opener, section#content .tbl .subtitle:hover .opener {background-color: #F7F8F8 !important;}'+
  1788. '.page .closerSmall, .page .closerSmall:hover, .page .openerSmall, .page .openerSmall:hover, .page .closerSmall2, .page .openerSmall2:hover {background-color: #DEE0E2 !important;}'+
  1789. '.module_frame{border: none;}'+
  1790. '.avatar-module .st-module-heading{background: linear-gradient(#266CB3, #0E418E);border-bottom: 1px solid #0B3372;border-radius:5px;box-shadow: -5px 5px 1px #FFFFFF;margin-bottom:10px;}'+
  1791. '.category-modulemodule_frame li a,aside .list li a{background-color: #1758A5 !important;border-bottom:1px solid #0D3A6F;margin-bottom:1px;font-weight: bold;}'+
  1792. '.category-modulemodule_frame li a:hover,aside .list li a:hover{color: #E8EEF0 !important;background-color: #1758A5 !important;text-decoration:underline;}'+
  1793. 'aside{width: inherit !important;}'+
  1794. 'aside .list{border: none !important;}'+
  1795. '.moreInfo{background-color:#F7F8F8 !important;color:#252525 !important;}'+
  1796. '.page span{color: #252525 !important;}'+
  1797. '.infofooter{border-top: 1px solid #DBDCDC !important;background-color: #F7F8F8 !important;color:#252525 !important;}'+
  1798. '.infoColumn0{background-color: #F7F8F8 !important;border-right: 1px solid #DBDCDC !important;border-bottom: 1px solid #DBDCDC !important;border-top: 1px solid #DBDCDC !important}'+
  1799. 'section#content .tbl .poster{border-right: 1px solid #DBDCDC !important}'+
  1800. 'section#content .page{color: #252525 !important;}'+
  1801. '.head_r input[type="radio"]:checked + label{background-image: none !important;color: #FFFFFF !important;background-color: #2A5EA1;border: 1px solid #CECFCF;border-radius: 4px;}'+
  1802. '.head_r input[type="radio"] + label{background-image: none !important;color: #2C2C2C !important;background-color: #F9F9F9;border: 1px solid #CECFCF;border-radius: 4px;padding: 0px 10px 0px 10px !important;}'+
  1803. '.head_r input[type="radio"] + label:hover{text-decoration:underline;}'+
  1804. '.head_r > label{color: #2C2C2C !important;}'+
  1805. 'select {background-color: #FFFFFF !important;}'+
  1806. '.infoheader, .infoheader1{color: #20487F !important;}'+
  1807. 'section#content .tbl div.mark:nth-child(3) {color: #545D62 !important;}'+
  1808. '.row-fluid {border-bottom: none !important;}'+
  1809. /**tłumaczenia*/
  1810. '#tlumaczenia [class*="avatar-main-menu"] li a {color: #FFF;}'+
  1811. '.checkbox_outer input[type="checkbox"] + span, .checkbox_series input[type="checkbox"] + span, input[type="checkbox"]:not([id="comments-form-subscribe"]) + label{background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAARCAYAAAA/mJfHAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3wEMETc09F0PlAAAAGRJREFUOMtj/Pnz538GKoCr164xMDFQEQxZw+4wTJzDzsDensGwY0h7kxFb0rhz2IpB+8hZ7Do0NzL8DPCgfdJgxJ9o7zBMnKPNUPY6kWFj5QwGjyGbaBlH8ybJgOXqtWtUMwwAJg4sDO+yKkcAAAAASUVORK5CYII=) !important;}'+
  1812. '.checkbox_outer input[type="checkbox"] + span,.checkbox_series input[type="checkbox"] + span{width:19px;height:17px;}'+
  1813. '.checkbox_outer input[type="checkbox"]:checked + span, .checkbox_series input[type="checkbox"]:checked + span, input[type="checkbox"]:checked:not([id="comments-form-subscribe"]) + label{background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAARCAYAAAA/mJfHAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3wEMETcCO+eaDQAAADxJREFUOMtj/Pnz538GKoCr164xMDFQEYwaNjIMuzORgZWdnYENhq0mMjDS02WMozlgGBnGcvXaNaoZBgBLTBH0qX8ljgAAAABJRU5ErkJggg==) !important;}'+
  1814. '.checkbox_outer input[type="checkbox"]:hover + span, .checkbox_series input[type="checkbox"]:hover + span{border-bottom: 1px solid #FCB622;border-right: 1px solid #FCB622;border-radius: 5px;}'+
  1815. '.checkbox_outer{margin-top: 0px !important;top: 4px !important;}'+
  1816. 'table.table-layout {border: none !important;}'+
  1817. 'table.table-layout thead tr th{background: linear-gradient(#2369B0, #104694, #2167AF) !important;color: #DDDDDD !important;border: solid 1px white !important;line-height: inherit !important;}'+ //nagłówek tabelki
  1818. 'table.table-layout tbody tr.odd td:not([style*="background-color:#255180"]):not([style*="background-color:#DD7665"]):not([style*="background-color:#41d64b"]):not([style*="background-color:#3399ff"]):not([data-n24h-star]){background: linear-gradient(#FFFFFF, #DEE0E2) !important;}'+//nie nadpisuj aktualizacji
  1819. 'table.table-layout tbody tr.even td:not([style*="background-color:#255180"]):not([style*="background-color:#DD7665"]):not([style*="background-color:#41d64b"]):not([style*="background-color:#3399ff"]):not([data-n24h-star]){background: linear-gradient(#E1E1E1, #ECECEC) !important;}'+
  1820. '.progress div {background-color: #E7BA63 !important; background-image: none !important;}'+
  1821. '#profile .progress, #szukaj .progress, #tlumaczenia .progress, #serial .progress, #oczekiwane .progress {background-image: linear-gradient(#FFFFFF, #DEE0E2) !important;background-color: #DEE0E2 !important; border-right: 1px solid #D3D6D7 !important;border-bottom: 1px solid #D3D6D7 !important;bottom: 0px !important;top: 0px !important;margin: auto;}'+
  1822. '.progress2 {background-image: linear-gradient(#FFFFFF, #DEE0E2) !important;background-color: #DEE0E2 !important; border-right: 1px solid #D3D6D7 !important;border-bottom: 1px solid #D3D6D7 !important;bottom: 0px !important;top: 0px !important;margin: auto;height: 20px;overflow: hidden;border-radius: 4px;box-shadow: inset 0 1px 2px rgba(0,0,0,0.1);position: absolute;left: 8px;right: 8px;text-align: center;background-repeat: no-repeat;}'+
  1823. '#profile .progress2 div, #szukaj .progress2 div, #tlumaczenia .progress2 div, #serial .progress2 div {background-color: #E7BA63 !important; background-image: none !important;top: 0px !important;left: 0px !important;right: 0px !important;}'+
  1824. '#oczekiwane .progress2 > span, #profile .progress2 > span, #szukaj .progress2 > span, #tlumaczenia .progress2 > span{position: absolute;bottom: 0px;left: 0px;right: 0px;text-align: center;z-index: 3;text-shadow: rgb(0, 0, 0) 0px 0px 3px, rgb(0, 0, 0) 0px 0px 3px;font-size: 10px;letter-spacing: 1px;color: #fff !important;}'+
  1825. '#oczekiwane .progress2 > span > span, #profile .progress2 > span > span, #szukaj .progress2 > span > span, #tlumaczenia .progress2 > span > span {display: inline-block;text-align: center;font-weight: 700;font-size: 9px;width: 36px;letter-spacing: 1px;}'+
  1826. '.progress2 span{opacity: 1 !important;}'+
  1827. 'table.table-layout tbody tr td{color: #252525 !important;}'+
  1828. 'table.table-layout tbody tr td[style*="background-color:#255180"],td[style*="background-color:#41d64b"],td[style*="background-color:#3399ff"] {background-color: #E7BA63 !important;}'+ //ostatnio zaktualizowane
  1829. 'table.table-layout tbody tr td div span[style*="color: white"], span[style*="color: #feee39"]{color: #252525 !important;}'+ //ilość oczekujących
  1830. '.progress > span > span, .progress2 > span > span {color: #252525 !important; text-shadow: none !important;}'+ //procenty ukończenia
  1831. '.progress > span, .progress2 > span {top: -3px !important;}'+
  1832. 'table.table-layout tbody tr td{border-top: 1px solid #ffffff !important;border-left: 1px solid #ffffff !important;border-right: 1px solid #ffffff !important;border-bottom: 1px solid #bbbbbb !important;padding-top: 2px !important;padding-bottom: 2px !important;}'+
  1833. 'table.table-layout tbody tr:not(.serialNapisy):not(#n24h_emptyrow):hover td{border-top: solid 2px #E7BA63 !important;border-bottom: solid 2px #E7BA63 !important;border-left: solid 1px #E7BA63 !important;border-right: solid 1px #E7BA63 !important;padding-top: 1px !important;padding-bottom: 1px !important;}'+
  1834. 'table.table-layout {border-collapse: initial !important;}'+
  1835. '.translation {cursor: pointer !important;}'+
  1836. '#tlumaczenia nav ul li.menu_add_tlum a{background-color: #2B68AB;border-bottom: 4px solid #2B68AB;background-position: 21px 12px; color: #FFFFFF;}'+
  1837. 'nav ul li.menu_add_tlum a:hover{border-bottom: 4px solid #1B4A7E;color: #CCCCCC;background-color: #2B68AB;line-height: 44px;height: 42px;background-position: 21px 12px;}'+
  1838. 'nav ul li.menu_add_tlum a:active{border-bottom: 4px solid #1B4A7E;color: #CCCCCC;background-color: #2B68AB;line-height: 48px;height: 42px;background-position: 21px 12px;text-shadow:none;filter:none;border-top:none;}'+
  1839. 'table.table-layout thead tr th.headerSortUp{background-image: url(run/images/arrs.png) ,linear-gradient(#2369B0, #104694, #2167AF) !important; !important;background-repeat: no-repeat !important;background-position: right !important;}'+
  1840. 'table.table-layout thead tr th.headerSortDown{background-image: url(run/images/arrsh.png) ,linear-gradient(#2369B0, #104694, #2167AF) !important; !important;background-repeat: no-repeat !important;background-position: right !important;}'+
  1841. '#tlumaczenia table.table-layout tbody tr a {color: #2B68AB;}'+
  1842. /**komentarze*/
  1843. '.moreInfo2{background-color:#DFE2E5 !important;color:#000000 !important;}'+
  1844. 'section#content .clear ~ .tbl{background-color:#DFE2E5 !important;border-bottom: 1px solid #BBBBBB !important;margin-bottom:2px !important;}'+
  1845. 'section#content .clear ~ .tbl .infoColumn0{background-color:#DFE2E5 !important;}'+
  1846. 'section#content .clear ~ .tbl .infofooter{background-color:#ECEEEF !important;color:#000000 !important;border-top: 1px solid #BBBBBB !important;}'+
  1847. 'section#content .tbl .avatar{border-right: 1px solid #BBBBBB !important;}'+
  1848. '#komentarze section#content .tbl .subtitle .sub h3{color: #FFFFFF !important;}'+
  1849. '#komentarze section#content .tbl .mark{color: #FFFFFF;}'+
  1850. 'textarea{background-color: #FFFFFF !important;color: #000000 !important;}'+
  1851. '#komentowane-header{background: linear-gradient(#2369B0, #104694, #2167AF) !important;color: #DDDDDD !important;line-height: inherit !important;}'+ //górna belka z datą i oceną
  1852. 'section#content>.page>div[style*="margin-left:"]{border-left:1px solid #000000; border-top:1px solid #000000; border-right:1px solid #000000; background-color: #FFFFFF;margin-left:0px !important;padding-left: 15px;}'+
  1853. 'form#userForm{border-left:1px solid #000000; border-bottom:1px solid #000000; border-right:1px solid #000000; background-color: #FFFFFF;}'+
  1854. '.tresc2 div[style*="background-color: #292f35"]{background-color: #FFFFFF !important;}'+ //cytat
  1855. '#komentarze section#content .tbl_out .mark, #komentarze section#content .tbl_out .subtitle .sub h3 {color: #545d62 !important;}'+ //ocena całości, releasy
  1856. /**artykuły*/
  1857. '#jc{background: none repeat scroll 0px 0px #DFE2E5; border: 1px solid #000000;}'+
  1858. '#jc .rbox{background-color: #DFE2E5;}'+
  1859. '#comments .comment-date{color: #252525;}'+
  1860. '#comments .comment-body{color: #252525;}'+
  1861. '#comments blockquote, #comments .hidden, #comments code, #comments pre{color: #252525;}'+
  1862. '#comments a{color: #174B54;}'+
  1863. /**profil*/
  1864. 'section#content .page > h2 {background: linear-gradient(#EDEEEE, #E2E3E3) !important;border-top: none !important;border-radius:5px;border-bottom:1px solid #B6B7B7 !important; color:#252525 !important;}'+
  1865. '#uddeim-overview .sectiontableentry1 {background-color: #ECECEC !important;}'+
  1866. '#uddeim-overview .sectiontableentry2 {background-color: #DEE0E2 !important;}'+
  1867. '#uddeim-overview>table {border-collapse: initial !important;}'+
  1868. '#uddeim-writeform input {background-color: #FFFFFF !important;}'+
  1869. /**seriale*/
  1870. '#seriale span.yellowfont {color: #000000 !important;}'+
  1871. /**serial*/
  1872. 'section#content .tbl_top_powiadomienia {background: linear-gradient(#EDEEEE, #E2E3E3) !important;border-top: none !important;border-radius:5px;}'+
  1873. 'section#content .tbl_top_powiadomienia .head_l {color: #414141 !important;}'+
  1874. 'section#content .tbl_top_powiadomienia .head_r label {color: #414141 !important;}'+
  1875. '.serialNapisy .moreInfo {background-color: #DEE0E2 !important;}'+
  1876. '.serialNapisy .infofootertab {color: #000000 !important; background-color: #DEE0E2 !important; border-top: 1px solid #BBBBBB !important;}'+
  1877. '#serial section#content .tbl_top_powiadomienia .head_r label[style*="background-image:none"] {background-image:none !important;}'+
  1878. '#serial section#content span[style*="color:#5d93d3"] {color: transparent !important;}'+
  1879. /**n24 helper*/
  1880. 'table.table-layout tbody tr.odd td[data-n24h-star]{background-image: url('+icons.staroff+'), linear-gradient(#FFFFFF, #DEE0E2) !important;background-repeat: no-repeat !important;background-position: center !important;}'+
  1881. 'table.table-layout tbody tr.even td[data-n24h-star]{background-image: url('+icons.staroff+'), linear-gradient(#E1E1E1, #ECECEC) !important;background-repeat: no-repeat !important;background-position: center !important;}'+
  1882. 'table.table-layout tbody tr.odd td[data-n24h-star="on"]{background-image: url('+icons.staron+'), linear-gradient(#FFFFFF, #DEE0E2) !important;}'+
  1883. 'table.table-layout tbody tr.even td[data-n24h-star="on"]{background-image: url('+icons.staron+'), linear-gradient(#E1E1E1, #ECECEC) !important;}'+
  1884. 'table.table-layout tbody tr.odd td[data-n24h-star="auign"], table.table-layout tbody tr.odd td[data-n24h-star="trign"], table.table-layout tbody tr.odd td[data-n24h-star="autit"]{background-image: url('+icons.starign+'), linear-gradient(#FFFFFF, #DEE0E2) !important;}'+
  1885. 'table.table-layout tbody tr.even td[data-n24h-star="auign"], table.table-layout tbody tr.even td[data-n24h-star="trign"], table.table-layout tbody tr.even td[data-n24h-star="autit"]{background-image: url('+icons.starign+'), linear-gradient(#E1E1E1, #ECECEC) !important;}'+
  1886. 'th#n24h_tr_favhead{background-image: url('+icons.staron+'), linear-gradient(#2369B0, #104694, #2167AF) !important;background-repeat: no-repeat !important;background-position: center !important;}'+
  1887. '#n24h_tr_input_search, #n24h_tr_input_new{color: #000000 !important; border: 1px solid #CECFCF !important;}'+
  1888. '#n24h_tr_input_clear, #n24h_tr_input_add, #n24h_tr_input_remove {background-color: #F9F9F9 !important;color: #000000 !important; border: 1px solid #CECFCF !important;}'+
  1889. '#n24h_tr_shows_list {background-color: #FFFFFF !important;color: #000000 !important;border: 1px solid #CECFCF !important;}'+
  1890. '.n24h_tr_option {background-color: #FFFFFF !important;color: #000000 !important;}'+
  1891. 'div.n24h_comm_opener:hover {background-color: #F0F0F0 !important;}'+
  1892. 'table.table-layout thead tr th.n24h_sort_asc{background-image: url(run/images/arrsh.png) ,linear-gradient(#2369B0, #104694, #2167AF) !important; !important;background-repeat: no-repeat !important;background-position: right !important;}'+
  1893. 'table.table-layout thead tr th.n24h_sort_desc{background-image: url(run/images/arrs.png) ,linear-gradient(#2369B0, #104694, #2167AF) !important; !important;background-repeat: no-repeat !important;background-position: right !important;}';
  1894. /** n24 classic stop*/
  1895. switch (options.getValue('altskinid', '1')) {
  1896. case '1':
  1897. utils.insertcss(altcss1);
  1898. break;
  1899. case '2':
  1900. utils.insertcss(altcss2);
  1901. break;
  1902. default:
  1903. console.log('Błędny parametr "altskinid": '+options.getValue('altskinid', 'Err'));
  1904. }
  1905. },
  1906. shrinkButtons: function() {
  1907. let css='.avatar-menu-icons[class*="avatar-main-menu"] > li {padding-left: 5px; padding-right: 5px;}';
  1908. utils.insertcss(css);
  1909. },
  1910. /**
  1911. Usuń target="_blank" ze wszystkich odnośników
  1912. */
  1913. killTargetBlank: function() {
  1914. let targets=document.querySelectorAll('a[target="_blank"]');
  1915. for (let i=0;i<targets.length;i++) {
  1916. targets[i].removeAttribute('target');
  1917. }
  1918. },
  1919. /**
  1920. Usuń przyciski "Dołącz..."
  1921. */
  1922. killConnectButtons: function() {
  1923. let divs=document.querySelectorAll('div.cbConnectButtons');
  1924. for (let i=0;i<divs.length;i++) {
  1925. divs[i].parentNode.removeChild(divs[i]);
  1926. }
  1927. },
  1928. fixThings: function() {
  1929. if(location.pathname.toLowerCase() === '/napisy-podglad') {
  1930. let li=document.querySelector('div.list li>a[href*="/napisy-podglad?"]');
  1931. if (li) {
  1932. li.setAttribute('href', li.getAttribute('href').replace(/napisy-podglad/, 'komentarze'));
  1933. li.textContent='Skomentuj';
  1934. }
  1935. }
  1936. },
  1937. init: function() {
  1938. if (options.getValue('fixsearch', false)) {
  1939. misc.fixSearch();
  1940. }
  1941. if (options.getValue('killcover', false)) {
  1942. misc.killCover();
  1943. }
  1944. if (options.getValue('killimdbinfo', false)) {
  1945. misc.killIMDBInfo();
  1946. }
  1947. if (options.getValue('usesmallmenubuttons', false)) {
  1948. misc.shrinkButtons();
  1949. }
  1950. if (options.getValue('removeconnectbuttons', false)) {
  1951. misc.killConnectButtons();
  1952. }
  1953. misc.fixThings();
  1954. }
  1955. };
  1956.  
  1957. var n24h = {
  1958. /**
  1959. */
  1960. onLoad: function() {
  1961. options.init();
  1962. misc.init();
  1963. if(location.pathname.toLowerCase() === '/tlumaczenia') {
  1964. tlumaczenia.init();
  1965. }
  1966. if(location.pathname.toLowerCase() === '/komentarze') {
  1967. komentarze.init();
  1968. }
  1969. if((location.pathname.toLowerCase() === '/serial')||(location.pathname.toLowerCase().indexOf('/serial/')>-1)) {
  1970. serial.init();
  1971. }
  1972. if (options.getValue('removetargetblank', false)) {
  1973. misc.killTargetBlank();
  1974. }
  1975. },
  1976. setAltSkin: function() {
  1977. if (options.getValue('usealtskin', false))
  1978. {
  1979. let head=document.querySelector('head');
  1980. let body=document.querySelector('body');
  1981. if ((!head)||(!body))
  1982. {
  1983. //upewnij się że mamy załadowane head i body
  1984. setTimeout(n24h.setAltSkin,1);
  1985. } else {
  1986. misc.altSkin();
  1987. }
  1988. }
  1989. },
  1990. /**
  1991. */
  1992. init: function()
  1993. {
  1994. if ( document.readyState === 'interactive' || document.readyState === 'complete' ) {
  1995. n24h.onLoad();
  1996. } else {
  1997. addEventListener('DOMContentLoaded', n24h.onLoad);
  1998. }
  1999. n24h.setAltSkin();
  2000. }
  2001. };
  2002.  
  2003. n24h.init();
  2004.  
  2005. })();