napisy24.pl helper

Dodaje kilka ciekawych funkcji na stronie napisy24.pl

当前为 2015-04-02 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name napisy24.pl helper
  3. // @version 1.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. // @include http://napisy24.pl/*
  9. // @homepage https://github.com/olodev/n24h
  10. // @grant none
  11. // @run-at document-start
  12. // ==/UserScript==
  13.  
  14. /**
  15.  
  16. INFO:
  17.  
  18. Użytkownicy Opery 12.XX przed użyciem skryptu proszę zmienić nazwę usuwając z niej ".user", np. na "n24h.js"
  19.  
  20. */
  21.  
  22. var icons = {
  23. 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='
  24. ,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'
  25. ,search: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAYAAABy6+R8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAABJdEVYdENvcHlyaWdodABQdWJsaWMgRG9tYWluIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL3B1YmxpY2RvbWFpbi9Zw/7KAAABTklEQVQokY2PP0hCYRTFf/eZFThULhG0F0UQ4djgZsaHS0FBUK7NTkFNRVNbGER/oEVoCnyfgptbNAdRYwQ5BqJS6Ou2fMoriTrbvef+uOeIqgJQLpfngyDYFpElYAh4E5GTWCx2lkwm3wlJVBXf97MicgoM0q/7SCSymE6n692FZ61dEJELB+RFJNHpdMZUdQ2oA3NBEFx9++T7fglYBm6MMSuAds1isTjled4j8BmNRidTqVQNwANm3U0+DABkMpknoAl47XY70YvnSiMiEz/LVKvVAaDh/NcwZAFUNVupVOJhqNFoHAPjQK3Vaj2EO00Dt8Ao8AIcAXEXe9Xd7RljDnqQqmKtTQIFoC+iUwfYMsYUepDLP9xsNjdVdUZERlT1DvgALh0YABvGmOse9JustTvAYfejqq7/CTlwF9h34/O/IIBSqZRT1Rxw/gU4l4oisfSMMQAAAABJRU5ErkJggg=='
  26. ,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'
  27. };
  28.  
  29. var options_db = 'n24h_options';
  30. var shows_db = 'n24h_shows';
  31.  
  32. var utils = {
  33. /**
  34. Dodaj dodatkowego CSS'a do strony
  35. */
  36. insertcss: function(css) {
  37. var style = document.createElement('style');
  38. style.setAttribute('type', 'text/css');
  39. if (style.styleSheet)
  40. {
  41. style.styleSheet.cssText = css;
  42. } else {
  43. style.appendChild(document.createTextNode(css));
  44. }
  45. document.head.appendChild(style);
  46. }
  47. };
  48.  
  49. /**
  50. Obsługa opcji
  51. */
  52. var options = {
  53. /**
  54. Zapisz wartość
  55. */
  56. setValue: function(name, value) {
  57. var optdb=localStorage.getItem(options_db);
  58.  
  59. if (!optdb)
  60. optdb='{}';
  61. var o=JSON.parse(optdb);
  62.  
  63. o[name]=value;
  64. localStorage.setItem(options_db, JSON.stringify(o));
  65. },
  66. /**
  67. Pobierz wartość
  68. */
  69. getValue: function(name, def) {
  70. var optdb=localStorage.getItem(options_db);
  71.  
  72. if (!optdb)
  73. optdb='{}';
  74. var o=JSON.parse(optdb);
  75.  
  76. var value=o[name];
  77. if (value==null)
  78. value=def;
  79.  
  80. return value;
  81. },
  82. /**
  83. Usuń klucz z opcji
  84. */
  85. remove: function(name) {
  86. var optdb=localStorage.getItem(options_db);
  87.  
  88. if (!optdb)
  89. optdb='{}';
  90. var o=JSON.parse(optdb);
  91.  
  92. delete o[name];
  93. localStorage.setItem(options_db, JSON.stringify(o));
  94.  
  95. },
  96. /**
  97. Pokaż/ukryj checkboxy w zależności od innych opcji
  98. */
  99. showHideCheckboxs: function() {
  100. var n24info=document.querySelector('input[data-n24h-checkbox="shown24info"]');
  101. var useimdb=document.querySelector('input[data-n24h-checkbox="useimdbinfo"]');
  102. if (n24info.checked)
  103. useimdb.parentNode.setAttribute('style', 'display:block');
  104. else
  105. useimdb.parentNode.setAttribute('style', 'display:none');
  106. var altskins=document.querySelectorAll('input[data-n24h-radio="altskinid"]');
  107. var usealtskin=document.querySelector('input[data-n24h-checkbox="usealtskin"]');
  108. for (var i=0;i<altskins.length;i++)
  109. altskins[i].parentNode.setAttribute('style', usealtskin.checked?'display:block':'display:none');
  110. },
  111. /**
  112. Wypełnij panele aktualnymi ustawieniami, serialami, itp.
  113. */
  114. fillPanels: function() {
  115. var checkboxs=document.querySelectorAll('input[data-n24h-checkbox]');
  116. for (var i=0;i<checkboxs.length;i++)
  117. {
  118. checkboxs[i].checked=options.getValue(checkboxs[i].getAttribute('data-n24h-checkbox'), false);
  119. }
  120. var keywords=showsdb.getAll();
  121. var areashows=document.getElementById('n24h_opt_areashows');
  122. var showtext='';
  123. for (var i=0;i<keywords.length;i++)
  124. {
  125. if (showtext!='')
  126. showtext+='\n';
  127. showtext+=keywords[i];
  128. }
  129. areashows.value=showtext;
  130. var areadebug=document.getElementById('n24h_opt_areadebug');
  131. var debugtext='/**opcje**/\n';
  132. debugtext+=localStorage.getItem(options_db);
  133. debugtext+='\n\n/**seriale**/\n';
  134. debugtext+=localStorage.getItem(shows_db);
  135. areadebug.value=debugtext;
  136. var radios=document.querySelectorAll('input[data-n24h-radio]');
  137. for (var i=0;i<radios.length;i++)
  138. radios[i].checked=radios[i].getAttribute('data-n24h-radio_id')===options.getValue(radios[i].getAttribute('data-n24h-radio'), '1');
  139. options.showHideCheckboxs();
  140. },
  141. /**
  142. Pokaż panel opcji
  143. */
  144. show: function() {
  145. options.fillPanels();
  146. var panel=document.querySelector('div.n24h_options_background');
  147. panel.setAttribute('style', 'display:block');
  148. },
  149. /**
  150. Ukryj panel opcji
  151. */
  152. hide: function() {
  153. var panel=document.querySelector('div.n24h_options_background');
  154. panel.setAttribute('style', 'display:none');
  155. },
  156. /**
  157. Obsługa kliknięcia checkboxa
  158. */
  159. checkboxClick: function(e) {
  160. e = e || window.event;
  161. var target = e.target || e.srcElement;
  162. options.setValue(target.getAttribute('data-n24h-checkbox'), target.checked);
  163. options.showHideCheckboxs();
  164. },
  165. /**
  166. Obsługa kliknięcia radiobuttona
  167. */
  168. radioClick: function(e) {
  169. e = e || window.event;
  170. var target = e.target || e.srcElement;
  171. options.setValue(target.getAttribute('data-n24h-radio'), target.getAttribute('data-n24h-radio_id'));
  172. },
  173. /**
  174. Obsługa kliknięcia przycisku sekcji
  175. */
  176. typeButtonClick: function(e) {
  177. e = e || window.event;
  178. var target = e.target || e.srcElement;
  179. var panel = target.getAttribute('data-n24h-optiontype');
  180. var opt_panels=document.querySelectorAll('div[data-n24h-optionpanel]');
  181. for (var i=0;i<opt_panels.length;i++)
  182. {
  183. opt_panels[i].setAttribute('style', panel==opt_panels[i].getAttribute('data-n24h-optionpanel')?'display:block':'display:none');
  184. }
  185. var opt_buttons=document.querySelectorAll('div[data-n24h-optiontype]');
  186. for (var i=0;i<opt_buttons.length;i++)
  187. {
  188. 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');
  189. }
  190. options.fillPanels();
  191. },
  192. /**
  193. Obsługa przycisku zapisz
  194. */
  195. btnSaveClick: function() {
  196. var areashows=document.getElementById('n24h_opt_areashows');
  197. var shows = areashows.value.split('\n');
  198. localStorage.removeItem(shows_db);
  199. for (var i=0;i<shows.length;i++)
  200. {
  201. console.log(shows[i]);
  202. if (shows[i] != null && shows[i] != '' && !showsdb.exists(shows[i].trim()))
  203. showsdb.add(shows[i].trim());
  204. }
  205. options.fillPanels();
  206. },
  207. /**
  208. Obsługa przycisku usuwania opcji
  209. */
  210. btnKillOptClick: function() {
  211. if (confirm('Czy napewno chcesz usunąć wszystkie ustawienia?\nNie będzie można tego cofnąć.'))
  212. localStorage.removeItem(options_db);
  213. options.fillPanels();
  214. },
  215. /**
  216. Obsługa przycisku usuwania seriali
  217. */
  218. btnKillShowsClick: function() {
  219. if (confirm('Czy napewno chcesz usunąć wszystkie ulubione filmy/seriale?\nNie będzie można tego cofnąć.'))
  220. localStorage.removeItem(shows_db);
  221. options.fillPanels();
  222. },
  223. init: function() {
  224. var css='#n24h_options_gear{'+
  225. 'cursor:pointer;'+
  226. 'width:20px;'+
  227. 'line-height: 26px;'+
  228. '}'+
  229. '.n24h_options_background{'+
  230. 'position:fixed;'+
  231. 'top:0;'+
  232. 'left:0;'+
  233. 'width:100%;'+
  234. 'height:100%;'+
  235. 'background:rgba(0,0,0,0.6);'+
  236. 'text-align:center;'+
  237. 'z-index:9999;'+
  238. '}'+
  239. '.n24h_options_dialog{'+
  240. 'margin: 0px auto;'+
  241. 'padding: 50px 0px;'+
  242. 'width: 900px;'+
  243. 'height: 100%;'+
  244. 'transition: none 0s ease 0s;'+
  245. 'transform: none;'+
  246. 'position: relative;'+
  247. 'box-sizing: border-box;'+
  248. '}'+
  249. '.n24h_options_content{'+
  250. 'max-height: 100%;'+
  251. 'overflow-y: auto;'+
  252. 'border: 4px solid rgba(85, 85, 85, 0.5);'+
  253. 'background-clip: padding-box;'+
  254. 'box-shadow: 0px 3px 7px rgba(0, 0, 0, 0.3);'+
  255. 'border-radius: 13px;'+
  256. 'position: relative;'+
  257. 'outline: 0px none;'+
  258. 'background-color: #FFF;'+
  259. 'box-sizing: border-box;'+
  260. 'color: #303030;'+
  261. 'font-family: Arial,Helvetica,sans-serif;'+
  262. 'text-align:left;'+
  263. 'display: block;'+
  264. '}'+
  265. '.n24h_options_header{'+
  266. 'margin: 0px;'+
  267. 'border-bottom: 1px solid #A0A0A0;'+
  268. 'padding: 10px 10px 0px 10px;'+
  269. '}'+
  270. '.n24h_options_body{'+
  271. 'display: table;'+
  272. 'min-height: 150px;'+
  273. '}'+
  274. '.n24h_options_body>input{'+
  275. 'margin: 0px;'+
  276. '}'+
  277. '.n24h_options_close{'+
  278. 'float:right;'+
  279. 'padding: 0px;'+
  280. 'border: 1px solid;'+
  281. 'cursor:pointer;'+
  282. 'margin-top: -25px;'+
  283. 'padding: 1px 3px 1px 3px;'+
  284. 'border-radius: 5px;'+
  285. 'background: linear-gradient(#EDEEEE, #E2E3E3);'+
  286. '}'+
  287. '.n24h_options_close:hover{'+
  288. 'background-color: #D0D0D0;'+
  289. 'border-color: #646F7C;'+
  290. '}'+
  291. '.n24h_options_panel_l{'+
  292. 'padding: 10px;'+
  293. 'border-right: 1px solid #A0A0A0;'+
  294. 'display: table-cell;'+
  295. 'position: relative;'+
  296. '}'+
  297. '.n24h_options_panel_r{'+
  298. 'padding: 10px;'+
  299. 'width: 750px;'+
  300. '}'+
  301. '.n24h_options_panel_button{'+
  302. 'cursor: pointer;'+
  303. 'background-color: #D5D5D5;'+
  304. 'border: 1px solid #000000;'+
  305. 'border-bottom: 3px solid #000000;'+
  306. 'padding: 5px 10px 5px 10px;'+
  307. 'margin-bottom: 2px;'+
  308. '}'+
  309. '.n24h_options_panel_button:hover{'+
  310. 'background-color: #E0E0E0;'+
  311. 'border-radius: 0px 0px 3px 3px;'+
  312. 'border-bottom: 3px solid #D26911;'+
  313. '}'+
  314. '.n24h_options_panel_button_selected{'+
  315. 'border-radius: 0px 0px 3px 3px;'+
  316. 'border-bottom: 3px solid #F21911;'+
  317. '}'+
  318. '.n24h_opt_button{'+
  319. 'background-color: #D5D5D5;'+
  320. 'border: 1px solid #000000;'+
  321. 'border-bottom: 3px solid #000000;'+
  322. 'padding: 3px 5px 3px 5px;'+
  323. 'margin-top: 5px;'+
  324. 'margin-right: 5px;'+
  325. '}'+
  326. '.n24h_opt_button:hover{'+
  327. 'background-color: #E0E0E0;'+
  328. 'border-radius: 0px 0px 3px 3px;'+
  329. 'border-bottom: 3px solid #D26911;'+
  330. '}'+
  331. '.n24h_opt_area{'+
  332. 'width: 100%;'+
  333. 'height: auto;'+
  334. 'cursor: auto !important;'+
  335. 'margin-bottom: 0px;'+
  336. 'background-color: #EEEEEE;'+
  337. 'color: #555555;'+
  338. 'border: 1px solid #CCCCCC;'+
  339. 'margin-left: 0px;'+
  340. 'padding: 5px;'+
  341. '}'+
  342. '.n24h_opt_area:focus{'+
  343. 'color: #555555;'+
  344. '}'+
  345. '.n24h_options_panel_r > label{'+
  346. 'margin-bottom: 0px;'+
  347. '}'+
  348. '.n24h_options_panel_r > label > input{'+
  349. 'margin: 0px;'+
  350. 'margin-top: -4px;'+
  351. 'display: inline;'+
  352. '}'+
  353. '.n24_option_level2{'+
  354. 'margin-left:30px;'+
  355. '}';
  356.  
  357. var ul=document.querySelector('ul.avatar-main-menu-szare');
  358. if (!ul)
  359. return;
  360. utils.insertcss(css);
  361. var li=document.createElement('li'); //panel z opcjami
  362. li.setAttribute('id', 'n24h_options_gear');
  363. li.setAttribute('title', 'napisy24.pl helper opcje');
  364. li.addEventListener('click', options.show, false);
  365. var img=document.createElement('img');
  366. img.setAttribute('src', icons.gear);
  367. img.setAttribute('style', 'margin-top: -5px;');
  368. li.appendChild(img);
  369. ul.appendChild(li);
  370. var panel = document.createElement('div');
  371. panel.innerHTML='<div class="n24h_options_background" style="display:none">'+
  372. '<div class="n24h_options_dialog">'+
  373. '<div class="n24h_options_content">'+
  374. '<div class="n24h_options_header">'+
  375. '<img src="'+icons.gear+'" style="margin-top: -5px;padding-right: 5px;">Opcje:<br/>'+
  376. '<span style="color:red;font-size:small;">Zmiana opcji wymaga przeładowania strony.</span>'+
  377. '<div class="n24h_options_close">X</div>'+
  378. '</div>'+
  379. '<div class="n24h_options_body">'+
  380. '<div class="n24h_options_panel_l">'+
  381. '<div class="n24h_options_panel_button n24h_options_panel_button_selected" data-n24h-optiontype="general">Ogólne</div>'+
  382. '<div class="n24h_options_panel_button" data-n24h-optiontype="shows">Seriale</div>'+
  383. '<div class="n24h_options_panel_button" data-n24h-optiontype="debug">Debug</div>'+
  384. '</div>'+
  385. '<div class="n24h_options_panel_r" data-n24h-optionpanel="general">'+
  386. '<label><input type="checkbox" data-n24h-checkbox="fixsearch"> Zapamiętaj tekst w wyszukiwarce</label>'+
  387. '<label><input type="checkbox" data-n24h-checkbox="killcover"> Usuń okładki filmów/seriali</label>'+
  388. '<label><input type="checkbox" data-n24h-checkbox="killimdbinfo"> Usuń info o serialu/ocenę IMDB</label>'+
  389. '<label><input type="checkbox" data-n24h-checkbox="hideemotspanel"> Ukrywaj panel z emotikonami i dodawaniem komentarza</label>'+
  390. '<label><input type="checkbox" data-n24h-checkbox="fixcomments"> W komentarzach propozycję poprawek wyświetlaj czcionką o stałej szerokości</label>'+
  391. '<label><input type="checkbox" data-n24h-checkbox="shown24info"> Na stronie z tłumaczeniami pokaż info N24/IMDB</label>'+
  392. '<label class="n24_option_level2" style="display:none"><input type="checkbox" data-n24h-checkbox="useimdbinfo"> Zastąp info N24 linkiem do IMDB</label>'+
  393. '<label><input type="checkbox" data-n24h-checkbox="usealtskin"> Używaj alternatywnej skórki</label>'+
  394. '<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>'+
  395. '<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>'+
  396. '<label><input type="checkbox" data-n24h-checkbox="usesmallmenubuttons"> Zmniejsz rozmiar przycisków menu</label>'+
  397. '<label><input type="checkbox" data-n24h-checkbox="removetargetblank"> Usuń target="_blank" ze wszystkich odnośników (nie otwieraj w nowej karcie)</label>'+
  398. '</div>'+
  399. '<div style="display:none" class="n24h_options_panel_r" data-n24h-optionpanel="shows">'+
  400. '<span>Ulubione filmy/seriale (jeden film/serial na linię)</span>'+
  401. '<textarea id="n24h_opt_areashows" class="n24h_opt_area" rows="10" ></textarea>'+
  402. '<button id="n24h_opt_btn_save" class="n24h_opt_button">Zapisz</button>'+
  403. '</div>'+
  404. '<div style="display:none" class="n24h_options_panel_r" data-n24h-optionpanel="debug">'+
  405. '<span>Informacje do debugowania</span>'+
  406. '<textarea id="n24h_opt_areadebug" rows="10" class="n24h_opt_area" readOnly></textarea>'+
  407. '<button id="n24h_opt_btn_killshows" class="n24h_opt_button">Usuń wszystkie ulubione filmy/seriale</button>'+
  408. '<button id="n24h_opt_btn_killopt" class="n24h_opt_button">Usuń wszystkie ustawienia (bez filmów/seriali)</button>'+
  409. '</div>'+
  410. '</div>'+
  411. '</div>'+
  412. '</div>'+
  413. '</div>';
  414. document.body.appendChild(panel);
  415. //przycisk zapisz
  416. var close=document.querySelector('div.n24h_options_close');
  417. close.addEventListener('click', options.hide, false);
  418. //checkboxy
  419. var opt_checkboxs=document.querySelectorAll('input[data-n24h-checkbox]');
  420. for (var i=0;i<opt_checkboxs.length;i++)
  421. opt_checkboxs[i].addEventListener('change', options.checkboxClick, false);
  422. //radio
  423. var opt_radios=document.querySelectorAll('input[data-n24h-radio]');
  424. for (var i=0;i<opt_radios.length;i++)
  425. opt_radios[i].addEventListener('change', options.radioClick, false);
  426. //sekcje
  427. var opt_types=document.querySelectorAll('div[data-n24h-optiontype]');
  428. for (var i=0;i<opt_types.length;i++)
  429. opt_types[i].addEventListener('click', options.typeButtonClick, false);
  430. //przycisk zapisz
  431. var opt_btn_save=document.getElementById('n24h_opt_btn_save');
  432. opt_btn_save.addEventListener('click', options.btnSaveClick, false);
  433. //usuń opcje
  434. var opt_btn_killopt=document.getElementById('n24h_opt_btn_killopt');
  435. opt_btn_killopt.addEventListener('click', options.btnKillOptClick, false);
  436. //usuń seriale
  437. var opt_btn_killshows=document.getElementById('n24h_opt_btn_killshows');
  438. opt_btn_killshows.addEventListener('click', options.btnKillShowsClick, false);
  439. }
  440. };
  441.  
  442. var showsdb = {
  443. all: null,
  444. upper: null,
  445. /**
  446. Pobiera tablicę fraz-kluczy.
  447. */
  448. getAll: function() {
  449. var keywords = localStorage.getItem(shows_db);
  450. this.all = (keywords != null && keywords != '') ? JSON.parse(keywords) : [];
  451. return this.all;
  452. },
  453. /**
  454. Pobiera tablicę fraz-kluczy.
  455. */
  456. exists: function(keyword) {
  457. var keywords = localStorage.getItem(shows_db);
  458. this.upper = (keywords != null && keywords != '') ? JSON.parse(keywords.toUpperCase()) : [];
  459. return this.upper.indexOf(keyword.toUpperCase()) < 0 ? false : true;
  460. },
  461. /**
  462. Dodaje keyword do tablicy fraz-kluczy.
  463. */
  464. add: function(keyword) {
  465. if (!this.exists(keyword))
  466. {
  467. this.getAll();
  468. this.all = this.all.concat([keyword]);
  469. localStorage.setItem(shows_db, JSON.stringify(this.all));
  470. return 1;
  471. }
  472. return 0;
  473. },
  474. /**
  475. Usuwa keyword z tablicy fraz-kluczy.
  476. */
  477. remove: function(keyword) {
  478. if (this.exists(keyword))
  479. {
  480. this.getAll();
  481. this.all.splice(this.upper.indexOf(keyword.toUpperCase()), 1);
  482. localStorage.setItem(shows_db, JSON.stringify(this.all));
  483. return 1;
  484. }
  485. return 0;
  486. }
  487. };
  488.  
  489. /**
  490. Strona z tłumaczeniami
  491. */
  492. var tlumaczenia = {
  493. /**
  494. Pobierz nazwę filmu/serialu bez numeru sezonu i odcinka/odcinków
  495. */
  496. getTitle: function(row) {
  497. var title=row.getAttribute('data-head');
  498. //oczyść tytuł ze wszystkich śmieci i numeru serii oraz odcinka/odcinków
  499. title=title.trim().replace(/\d+x\d+.*/, '');
  500. //usuń spacje na końcu która pozostała po wywaleniu numeru serii i odcina
  501. title=title.trim();
  502. return title;
  503. },
  504. /**
  505. Zrób zebrę od nowa
  506. */
  507. restyleRows: function() {
  508. var rows=document.querySelectorAll('table#translationsTable > tbody > tr:not([style*="none"])');
  509. for (var i=0;i<rows.length;i++) {
  510. var trcl=rows[i].getAttribute('class');
  511. trcl=trcl.replace(/(odd|even)/, '');
  512. if (i%2)
  513. {
  514. rows[i].setAttribute('class', trcl+' odd');
  515. } else {
  516. rows[i].setAttribute('class', trcl+' even');
  517. }
  518. }
  519. },
  520. /**
  521. Przenieś wiersz na szczyt listy
  522. */
  523. moveTop: function(row) {
  524. //znajdź tabelkę z tłumaczeniami
  525. var table=document.querySelector('table#translationsTable > tbody');
  526. //znajdź pierwszy wiersz tabelki
  527. var first_line=table.querySelector('tr');
  528. //wstaw przed pierwszy wiersz nasz wiersz
  529. table.insertBefore(row,first_line);
  530. var td=row.querySelector('td[data-n24h-star]');
  531. td.setAttribute('data-n24h-star', 'on');
  532. },
  533. /**
  534. Umieść ulubione filmy/seriale na szczycie listy
  535. */
  536. FavoriteOnTop: function() {
  537. /**
  538. Dla każdego wiersza w tabeli...
  539. Od końca do początku, żeby zachować kolejność sortowania
  540. */
  541. var rows=document.querySelectorAll('table#translationsTable > tbody > tr');
  542. for (var i=rows.length-1;i>=0;i--)
  543. {
  544. var row=rows[i];
  545. /**
  546. Wyciąga tytuł i oczyszcza go ze zbędnych znaków.
  547. */
  548. var title=tlumaczenia.getTitle(row);
  549. if (showsdb.exists(title))
  550. {
  551. //Znaleziono dopasowanie.
  552. tlumaczenia.moveTop(row);
  553. } else {
  554. //Nie ma dopasowania
  555. //Wyczyść na wszelki wypadek gwiazdkę
  556. var td=row.querySelector('td[data-n24h-star]');
  557. td.setAttribute('data-n24h-star', 'off');
  558. }
  559. }
  560. tlumaczenia.restyleRows();
  561. },
  562. /**
  563. Ustaw informację o kierunku sortowania w nagłówku tabelki
  564. */
  565. SetColumnHeader: function(col, reverse) {
  566. var header=document.querySelectorAll('table#translationsTable>thead>tr>th.header');
  567. for (var i=0;i<header.length;i++)
  568. {
  569. if ((i==col)&&(reverse==1))
  570. header[i].setAttribute('class', 'header n24h_sort_asc')
  571. else if ((i==col)&&(reverse==-1))
  572. header[i].setAttribute('class', 'header n24h_sort_desc')
  573. else {
  574. var thcl=header[i].getAttribute('class');
  575. thcl=thcl.replace(/(n24h_sort_asc|n24h_sort_desc)/, '');
  576. header[i].setAttribute('class', thcl);
  577. }
  578. }
  579. },
  580. /**
  581. Sortowanie tabelki z tłumaczeniami
  582. */
  583. sortTable: function(col, reverse) {
  584. var table=document.querySelector('table#translationsTable');
  585. col = typeof col !== 'undefined' ? col : options.getValue('column', 4);
  586. reverse = typeof reverse !== 'undefined' ? reverse : options.getValue('reverse', 1);
  587. var tb = table.tBodies[0], // use `<tbody>` to ignore `<thead>` and `<tfoot>` rows
  588. tr = Array.prototype.slice.call(tb.rows, 0), // put rows into array
  589. i;
  590. reverse = -((+reverse) || -1);
  591. tr = tr.sort(function (a, b) { // sort rows
  592. var atext=a.cells[col].textContent.trim();
  593. var btext=b.cells[col].textContent.trim();
  594. if ((col==3)||(col==4))
  595. {
  596. //Kolumna 3: "Postęp"
  597. //Kolumna 4: "Oczekujący"
  598. //trzeba usunąć znaki: procentu, plus i minus oraz zamienić na numerek
  599. avalue=Number(atext.replace(/[\+\-\%]/g, ''));
  600. bvalue=Number(btext.replace(/[\+\-\%]/g, ''));
  601. return reverse==1?avalue-bvalue:bvalue-avalue;
  602. } else {
  603. return reverse * (atext.localeCompare(btext));
  604. }
  605. });
  606. for(i = 0; i < tr.length; ++i)
  607. {
  608. tb.appendChild(tr[i]); // append each row in order
  609. }
  610.  
  611. //zapisz ustawienia sortowania
  612. options.setValue('column', col);
  613. options.setValue('reverse', -((+reverse) || -1));
  614. //ustaw nagłówek
  615. tlumaczenia.SetColumnHeader(col, reverse);
  616. //przesuń ulubione na samą górę
  617. tlumaczenia.FavoriteOnTop();
  618. },
  619. /**
  620. Obsługa kliknięcia w gwiazdkę
  621. */
  622. StarClickHandler: function(e) {
  623. e = e || window.event;
  624. var target = e.target || e.srcElement;
  625. var row=target.parentNode;
  626. var title=tlumaczenia.getTitle(row);
  627. if (this.getAttribute('data-n24h-star')!='on')
  628. {
  629. //Zacznij śledzić...
  630. var keyword = prompt('Podaj tytuł filmu lub serialu\nbez numeracji sezonu/odcinka:', tlumaczenia.getTitle(row));
  631. tlumaczenia.AddTitle(keyword);
  632. } else {
  633. //Przestań śledzić...
  634. tlumaczenia.RemoveTitle(title);
  635. }
  636. },
  637. /**
  638. Szukanie filmu/serialu na liście tłumaczonych
  639. */
  640. DoSearch: function() {
  641. var keyword = document.querySelector('input#n24h_tr_input_search').value.trim().toUpperCase();
  642. var rows=document.querySelectorAll('table#translationsTable > tbody > tr');
  643. for (var i=0;i<rows.length;i++)
  644. {
  645. var row=rows[i];
  646. var title=tlumaczenia.getTitle(row).toUpperCase();
  647. if (keyword == null || keyword == '')
  648. {
  649. //pokazujemy wszystkie rekordy
  650. row.style.display='table-row';
  651. } else if (title.indexOf(keyword)!=-1)
  652. {
  653. row.style.display='table-row';
  654. } else {
  655. row.style.display='none';
  656. }
  657. }
  658. tlumaczenia.restyleRows();
  659. },
  660. /**
  661. Obsługa szukania z uwzględnieniem przycisku ESC
  662. */
  663. SearchHandler: function(e) {
  664. e = e || window.event;
  665. if (e.keyCode==27)
  666. document.getElementById('n24h_tr_input_search').value='';
  667. tlumaczenia.DoSearch();
  668. },
  669. /**
  670. Przycisk wyczyść
  671. */
  672. ClearHandler: function() {
  673. document.getElementById('n24h_tr_input_search').value='';
  674. tlumaczenia.DoSearch();
  675. },
  676. /**
  677. Dodaj film/serial do listy ulubionych
  678. */
  679. AddTitle: function(title) {
  680. if (title != null && title != '' && !showsdb.exists(title))
  681. {
  682. if (showsdb.add(title))
  683. {
  684. document.querySelector('input#n24h_tr_input_new').value='';
  685. var select=document.querySelector('select#n24h_tr_shows_list');
  686. var option=document.createElement('option');
  687. option.text=title;
  688. option.setAttribute('class', 'n24h_tr_option');
  689. select.add(option);
  690. tlumaczenia.sortTable();
  691. }
  692. }
  693. },
  694. /**
  695. Przycisk dodaj
  696. */
  697. AddNewHandler: function() {
  698. var keyword = document.querySelector('input#n24h_tr_input_new').value.trim();
  699. tlumaczenia.AddTitle(keyword);
  700. },
  701. /**
  702. Usuń film/serial z listy ulubionych
  703. */
  704. RemoveTitle: function(title) {
  705. if (showsdb.exists(title))
  706. {
  707. if (showsdb.remove(title))
  708. {
  709. var select=document.querySelector('select#n24h_tr_shows_list');
  710. for (var i=0;i<select.length;i++)
  711. if (select[i].value.toUpperCase()==title.toUpperCase())
  712. {
  713. select.remove(i);
  714. break;
  715. }
  716. }
  717. tlumaczenia.sortTable();
  718. }
  719. },
  720. /**
  721. Przycisk usuń
  722. */
  723. RemoveHandler: function() {
  724. var keyword = document.querySelector('select#n24h_tr_shows_list').value;
  725. tlumaczenia.RemoveTitle(keyword);
  726. },
  727. /**
  728. Dodaj panel na górze tabelki z tłumaczeniami
  729. */
  730. AddPanel: function() {
  731. var css='#n24h_tr_input_search{'+ //wyszukiwanie
  732. 'margin-right: 5px;'+
  733. 'padding-left: 22px;'+
  734. 'border-radius: 4px;'+
  735. 'height: 25px;'+
  736. 'margin-bottom: 0px;'+
  737. 'width: 150px;'+
  738. 'background-repeat: no-repeat;'+
  739. 'background-position: 5px center;'+
  740. 'background-image: url('+icons.search+');'+
  741. '}'+
  742. '#n24h_tr_input_new{'+
  743. 'margin-right: 5px;'+
  744. 'padding-left: 27px;'+
  745. 'border-radius: 4px;'+
  746. 'height: 25px;'+
  747. 'margin-bottom: 0px;'+
  748. 'width: 150px;'+
  749. 'background-repeat: no-repeat;'+
  750. 'background-position: 5px center;'+
  751. 'background-image: url('+icons.staroff+');'+
  752. '}'+
  753. '#n24h_tr_input_clear,#n24h_tr_input_add,#n24h_tr_input_remove{'+
  754. 'border: 1px solid #32383E;'+
  755. 'background-color: #1B1F23;'+
  756. 'color: #7A878C;'+
  757. 'border-radius: 4px;'+
  758. 'cursor: pointer;'+
  759. 'width: 80px;'+
  760. 'height: 25px;'+
  761. '}'+
  762. '#n24h_tr_input_clear:hover,#n24h_tr_input_add:hover,#n24h_tr_input_remove:hover{'+
  763. '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);'+
  764. '}'+
  765. '#n24h_tr_shows_list{'+
  766. 'width: auto;'+
  767. 'margin-right: 5px;'+
  768. 'height: 25px;'+
  769. 'margin-bottom: 0px;'+
  770. 'margin-left: 30px;'+
  771. 'border: 1px solid #32383E'+
  772. 'background-color: #1B1F23;'+
  773. 'color: #7A878C;'+
  774. 'max-width: 200px;'+
  775. '}'+
  776. '.n24h_tr_option{'+
  777. 'background-color: #1B1F23;'+
  778. 'color: #7A878C;'+
  779. '}';
  780. var trtable=document.querySelector('table#translationsTable');
  781. if (!trtable)
  782. return;
  783. utils.insertcss(css);
  784. var panel=document.createElement('div'); //panel z opcjami
  785. panel.setAttribute('id', 'n24h_tr_panel');
  786. panel.setAttribute('class', 'tbl_top');
  787. panel.setAttribute('style', 'margin: 0px;');
  788.  
  789. var div=document.createElement('div'); //ogólny div ze wszystkim
  790. div.setAttribute('style', 'float:none;padding: 10px; margin-top: -15px; margin-bottom: 15px;');
  791.  
  792. var left_div=document.createElement('div'); //lewa część opcji
  793. left_div.setAttribute('style', 'float:left')
  794.  
  795. var input_search=document.createElement('input'); //okienko do szukania
  796. input_search.setAttribute('id', 'n24h_tr_input_search');
  797. input_search.setAttribute('type', 'text');
  798. input_search.setAttribute('placeholder', 'Szukaj...');
  799. input_search.addEventListener('keyup', tlumaczenia.SearchHandler, false);
  800.  
  801. var input_clear=document.createElement('input'); //przycisk wyczyść
  802. input_clear.setAttribute('id', 'n24h_tr_input_clear');
  803. input_clear.setAttribute('type', 'button');
  804. input_clear.setAttribute('value', 'Wyczyść');
  805. input_clear.addEventListener('click', tlumaczenia.ClearHandler, false);
  806.  
  807. //dodaj do lewego diva
  808. left_div.appendChild(input_search); //okienko szukania
  809. left_div.appendChild(input_clear); //i przycisk wyczyść
  810. var right_div=document.createElement('div'); //prawa część opcji
  811. right_div.setAttribute('style', 'float:right')
  812.  
  813. var input_new=document.createElement('input'); //okienko do dodawania nowego serialu/filmu
  814. input_new.setAttribute('id', 'n24h_tr_input_new');
  815. input_new.setAttribute('type', 'text');
  816.  
  817. var input_add=document.createElement('input'); //przycisk dodaj
  818. input_add.setAttribute('id', 'n24h_tr_input_add');
  819. input_add.setAttribute('type', 'button');
  820. input_add.setAttribute('value', 'Dodaj');
  821. input_add.addEventListener('click', tlumaczenia.AddNewHandler, false);
  822.  
  823. var select=document.createElement('select'); //selekt z listą seriali/filmów
  824. select.setAttribute('id', 'n24h_tr_shows_list');
  825. select.setAttribute('size', '1');
  826.  
  827. //wypełnij selekta listą seriali/filmów
  828. var keywords = showsdb.getAll();
  829. for (var i=0;i<keywords.length;i++)
  830. {
  831. var option=document.createElement('option');
  832. option.text=keywords[i];
  833. option.setAttribute('class', 'n24h_tr_option');
  834. select.add(option);
  835. }
  836.  
  837.  
  838. var input_remove=document.createElement('input'); //przycisk usuń
  839. input_remove.setAttribute('id', 'n24h_tr_input_remove');
  840. input_remove.setAttribute('type', 'button');
  841. input_remove.setAttribute('value', 'Usuń');
  842. input_remove.addEventListener('click', tlumaczenia.RemoveHandler, false);
  843.  
  844. //dodaj do prawego diva
  845. right_div.appendChild(input_new); //okienko do dodawania nowego serialu/filmu
  846. right_div.appendChild(input_add); //przycisk dodaj
  847. right_div.appendChild(select); //lista seriali/filmów
  848. right_div.appendChild(input_remove); //i przycisk usuń
  849.  
  850. //dodaj do ogólnego diva
  851. div.appendChild(left_div); //lewego diva
  852. div.appendChild(right_div); //i prawego diva
  853.  
  854. //dodaj ogólnego diva do panelu
  855. panel.appendChild(div);
  856. trtable.parentNode.insertBefore(panel,trtable);
  857. },
  858. /**
  859. Dodaj dodatkową kolumnę z gwiazdkami
  860. */
  861. AddStars: function() {
  862. var css='td[data-n24h-star]{'+
  863. 'background-image: url('+icons.staroff+');'+
  864. 'background-repeat: no-repeat;'+
  865. 'background-position: center;'+
  866. 'cursor:pointer !important;'+
  867. '}'+
  868. 'td[data-n24h-star="on"]{'+
  869. 'background-image: url('+icons.staron+');'+
  870. '}';
  871. var trtable=document.querySelector('table#translationsTable');
  872. if (!trtable)
  873. return;
  874. utils.insertcss(css);
  875. var trhead=trtable.querySelector('thead > tr');
  876. var th=document.createElement('th');
  877. th.setAttribute('id', 'n24h_tr_favhead');
  878. th.setAttribute('class', 'nosort header');
  879. th.setAttribute('style', 'background-image: url('+icons.staron+');background-repeat: no-repeat;background-position: center;');
  880. th.setAttribute('title', 'Ulubione filmy/seriale');
  881. trhead.appendChild(th);
  882. var trs=trtable.querySelectorAll('tbody>tr');
  883. for (var i = 0; i < trs.length; i++)
  884. {
  885. var td=document.createElement('td');
  886. td.setAttribute('data-n24h-star', '');
  887. td.addEventListener('click', tlumaczenia.StarClickHandler, false);
  888. trs[i].appendChild(td);
  889. }
  890.  
  891. },
  892. /**
  893. Ustaw nagłówki tabelki tak żeby dało się ją sortować
  894. */
  895. makeSortable: function() {
  896. var trtable=document.querySelector('table#translationsTable');
  897. if (!trtable)
  898. return;
  899. var th = trtable.tHead, i;
  900. th && (th = th.rows[0]) && (th = th.cells);
  901. if (th) i = th.length;
  902. else return; // if no `<thead>` then do nothing
  903. while (--i >= 0)
  904. if (i<6) //pomiń kolumnę ulubione
  905. (function (i) {
  906. var dir = 1;
  907. th[i].addEventListener('click', function () {tlumaczenia.sortTable(i, (dir = 1 - dir))});
  908. }(i));
  909. },
  910. /**
  911. Skopiuj nagłówki tabelki, żeby wywalić oryginalną obsługę sortowania i dodać naszą
  912. */
  913. AddNewHeader: function() {
  914. var css='#translationsTable th {cursor: pointer !important;}'+
  915. '#translationsTable th.nosort {cursor: default !important;}'+
  916. '.n24h_sort_asc{background-image: url(run/images/arrsh.png);background-repeat: no-repeat;background-position: right;}'+
  917. '.n24h_sort_desc{background-image: url(run/images/arrs.png);background-repeat: no-repeat;background-position: right;}';
  918. var trtable=document.querySelector('table#translationsTable');
  919. if (!trtable)
  920. return;
  921. utils.insertcss(css);
  922. var header=trtable.querySelector('thead');
  923. var new_header=document.createElement('thead');
  924. new_header.innerHTML=header.innerHTML;
  925. trtable.insertBefore(new_header, header);
  926. trtable.removeChild(header);
  927. tlumaczenia.makeSortable();
  928. },
  929. /**
  930. Wywal kolumnę info i ewentualnie dodaj linki do tytułów seriali
  931. */
  932. FixInfo: function() {
  933. var trtable=document.querySelector('table#translationsTable');
  934. if (!trtable)
  935. return;
  936. /**INFO START*/
  937. if (options.getValue('shown24info', false))
  938. {
  939. var trs=trtable.querySelectorAll('tbody > tr');
  940. for (var i = 0; i < trs.length; i++)
  941. {
  942. var title=trs[i].querySelector('td:nth-child(1)>div');
  943. var info=trs[i].querySelector('td:nth-child(2)>div>a[href*="imid=tt"], a[href*="title/tt"]');
  944. if (info)
  945. if (options.getValue('useimdbinfo', false))
  946. title.innerHTML='<a href="'+info.href.replace(/http:\/\/napisy24.pl\/serial\?imid=/, 'http://www.imdb.com/title/')+'/" target="_blank">'+title.textContent+'</a>';
  947. else
  948. {
  949. var target=info.href.indexOf('imdb.com')!=-1?' target="_blank"':'';
  950. title.innerHTML='<a href="'+info.href+'"'+target+'>'+title.textContent+'</a>';
  951. }
  952. }
  953. }
  954. /**INFO STOP*/
  955. //usuń kolumnę Info
  956. var th=document.querySelector('th.header:nth-child(2)');
  957. th.parentNode.removeChild(th);
  958. var tds=document.querySelectorAll('table#translationsTable>tbody>tr>td:nth-child(2)');
  959. for (var i = 0; i < tds.length; i++)
  960. {
  961. tds[i].parentNode.removeChild(tds[i]);
  962. }
  963. },
  964. init: function() {
  965. tlumaczenia.AddPanel();
  966. tlumaczenia.FixInfo();
  967. tlumaczenia.AddStars();
  968. tlumaczenia.AddNewHeader();
  969. tlumaczenia.sortTable();
  970. }
  971. };
  972.  
  973. /**
  974. Strona z komentarzami
  975. */
  976. var komentarze = {
  977. /**
  978. Zapisz poprawki za pomocą czcionki o stałej szerokości
  979. */
  980. fix_comments: function() {
  981. var css='div.n24h_comment{'+
  982. 'font-family: Consolas,Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace,serif;'+
  983. 'font-size: 13px;'+
  984. 'text-align: left;'+
  985. '}';
  986. utils.insertcss(css);
  987.  
  988. var comments=document.querySelectorAll('div.tresc2');
  989. for (var i=0;i<comments.length;i++)
  990. {
  991. var text=comments[i].innerHTML;
  992. var lines=text.split('<br>');
  993. var line='';
  994. text='';
  995. for (var j=0;j<lines.length;j++)
  996. {
  997. line=lines[j].replace(/((\+|\-)?(.)?(\[|\{)\d+(\]|\})(\[|\{)\d+(\]|\}).*)/g, '<div class="n24h_comment">$1</div>');
  998. text=text+line;
  999. if (line.search('n24h_comment')==-1)
  1000. text=text+'<br>';
  1001. }
  1002. comments[i].innerHTML=text;
  1003. }
  1004. },
  1005. /**
  1006. Pokaż/ukryj panel z emotkami i dodawaniem komentarza
  1007. */
  1008. ShowHideEmots: function() {
  1009. var emots=document.querySelector('.page > div:nth-child(2)');
  1010. var form=document.querySelector('form#userForm');
  1011. var opener=document.querySelector('div#n24h_comm_opener');
  1012. if ((!emots) || (!form))
  1013. return;
  1014. if (emots.style.display==='none')
  1015. {
  1016. emots.style.display='block';
  1017. form.style.display='block';
  1018. opener.setAttribute('class', 'n24h_comm_opener n24h_comm_opener_open');
  1019. } else {
  1020. emots.style.display='none';
  1021. form.style.display='none';
  1022. opener.setAttribute('class', 'n24h_comm_opener');
  1023. }
  1024. },
  1025. /**
  1026. Dodaj strzałkę otwierającą/zamykającą panel emotek i komentarza
  1027. */
  1028. addOpener: function() {
  1029. var css='div.n24h_comm_opener{'+
  1030. 'background-image: url(run/images/arrs.png);'+
  1031. 'background-repeat: no-repeat;'+
  1032. 'height: 20px;'+
  1033. 'width: 20px;'+
  1034. 'background-position: center;'+
  1035. 'cursor:pointer;'+
  1036. 'border: 1px solid;'+
  1037. 'border-color:#32383E;'+
  1038. 'padding: 3px;'+
  1039. 'margin-left: 10px;'+
  1040. 'margin-top: -25px;'+
  1041. '}'+
  1042. 'div.n24h_comm_opener:hover{'+
  1043. 'background-color: #202428;'+
  1044. '}'+
  1045. 'div.n24h_comm_opener_open{'+
  1046. 'background-image: url(run/images/arrsh.png);'+
  1047. '}';
  1048. var footer=document.querySelector('div.moreInfo>div.infofooter');
  1049. if (!footer)
  1050. return;
  1051. utils.insertcss(css);
  1052. var opener=document.createElement('div');
  1053. opener.setAttribute('id', 'n24h_comm_opener');
  1054. opener.setAttribute('class', options.getValue('hideemotspanel', false)?'n24h_comm_opener':'n24h_comm_opener n24h_comm_opener_open');
  1055. opener.setAttribute('title', 'Pokaż/ukryj dodawanie komentarza');
  1056. opener.addEventListener('click', komentarze.ShowHideEmots, false);
  1057. footer.appendChild(opener);
  1058. footer.setAttribute('style', 'padding-bottom: 5px; padding-top: 5px;');
  1059. if (options.getValue('hideemotspanel', false))
  1060. komentarze.ShowHideEmots();
  1061. },
  1062. init: function() {
  1063. komentarze.addOpener();
  1064. if (options.getValue('fixcomments', false))
  1065. komentarze.fix_comments();
  1066. }
  1067. };
  1068.  
  1069. /**
  1070. Strona o serialu
  1071. */
  1072. var serial = {
  1073. /**
  1074. Dodaj linka do IMDB
  1075. */
  1076. addIMDBlink: function() {
  1077. var info=document.querySelector('.infoColumn2>div:last-child');
  1078. if (!info)
  1079. return;
  1080. var link=document.createElement('a');
  1081. var href=document.URL.toLowerCase().replace(/.*(tt\d+).*/g, 'http://www.imdb.com/title/$1/');
  1082. link.setAttribute('href', href);
  1083. link.setAttribute('target', '_blank');
  1084. link.innerHTML='IMDB';
  1085. info.appendChild(document.createTextNode(' ')); //dodaj spację
  1086. info.appendChild(link);
  1087. },
  1088. init: function() {
  1089. serial.addIMDBlink();
  1090. }
  1091. };
  1092.  
  1093.  
  1094. /**
  1095. Różności
  1096. */
  1097. var misc = {
  1098. /**
  1099. Obsługa zapamiętywania wyszukiwanych filmów/seriali między stronami
  1100. */
  1101. SearchHandler: function(e) {
  1102. var input=document.querySelector('input#phrase');
  1103. if (!input)
  1104. return;
  1105. e = e || window.event;
  1106. if (e.keyCode==27)
  1107. input.value='';
  1108. sessionStorage.setItem('n24h_search', input.value);
  1109. },
  1110. /**
  1111. Dodaj zapamiętywanie wyszukiwanych filmów/seriali
  1112. */
  1113. fixSearch: function() {
  1114. var input=document.querySelector('input#phrase');
  1115. if (!input)
  1116. return;
  1117. var searchtext=sessionStorage.getItem('n24h_search');
  1118. if ((searchtext!==null)&&(searchtext!==''))
  1119. {
  1120. input.value=searchtext;
  1121. console.log('searchtext: '+searchtext);
  1122. }
  1123. input.addEventListener('keyup', misc.SearchHandler, false);
  1124. },
  1125. /**
  1126. Usuń okładkę filmu/serialu
  1127. */
  1128. killCover: function() {
  1129. var css='div.subtitle{width: 675px !important;}';
  1130. utils.insertcss(css);
  1131. var divs=document.querySelectorAll('div.tbl');
  1132. for (var i=0;i<divs.length;i++)
  1133. {
  1134. var poster=divs[i].querySelector('div.poster');
  1135. divs[i].removeChild(poster);
  1136. }
  1137. },
  1138. /**
  1139. Usuń ocenę z IMDB
  1140. */
  1141. killIMDBInfo: function() {
  1142. var divs=document.querySelectorAll('div[id^="toggleMe"]');
  1143. for (var i=0;i<divs.length;i++)
  1144. {
  1145. var infocolumn=divs[i].querySelector('div.infoColumn0');
  1146. divs[i].removeChild(infocolumn);
  1147. }
  1148. },
  1149. /**
  1150. Alternatywne skórki
  1151. */
  1152. altSkin: function() {
  1153. /** Szara start*/
  1154. var altcss1='.avatar-menu-icons[class*="avatar-main-menu-szare"] > li {background-color: #2B68AB;border-right: 1px solid #5592D5;}'+//menu: forum, irc, rss
  1155. '[class*="avatar-main-menu-szare"] > li:hover {border-bottom: 4px solid #1B4A7E;}'+
  1156. 'nav{background-color: #2B68AB !important;}'+//pusta przestrzeń między menu a dodaj napisy
  1157. 'nav ul li.menu_add_napisy a{background-color: #2B68AB;border-bottom: 4px solid #1B4A7E;}'+//przycisk dodaj napisy
  1158. 'nav ul li.menu_add_napisy a:hover{background-color: #1B4A7E;color: #CCC;background-position: 21px 12px;}'+
  1159. '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;}'+
  1160. 'body{background-color:#D5D5D5 !important;color: #272727;}'+//body
  1161. '#avatar-body-middle-block{background-color:#D5D5D5;}'+//środek
  1162. '#avatar-header-inside-block{background-color:#D5D5D5;}'+//górna belka body
  1163. '.logo .screen{border: 4px solid #5592D5 !important;}'+//logo
  1164. '.logo .screen .subline1{background-color: #5592D5 !important;}'+
  1165. '.logo .screen .subline2{background-color: #5592D5 !important;}'+
  1166. '.logo h1{color: #5592D5 !important;}'+
  1167. '.logo h2{color: #5592D5 !important;}'+
  1168. '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
  1169. '#search #phrase{color: #000000 !important;}'+//wyszukiwarka
  1170. 'section#content .tbl_top{background-color:#D5D5D5 !important;border-top: 1px solid #A0A0A0 !important;}'+ //tabelka nagłówek
  1171. '.tbl_top1, .tbl_top2{background-color:#D5D5D5 !important;border-top: 1px solid #A0A0A0 !important;}'+ //tabelka nagłówek
  1172. 'section#content .tbl_top .head_r label{color:#000000 !important;}'+
  1173. 'section#content .tbl_top .head_l{color:#000000 !important;}'+
  1174. 'section#content .tbl{background-color:#D5D5D5 !important;border-top: 1px solid #A0A0A0 !important;}'+
  1175. 'section#content .page{border-color:#A0A0A0 !important;}'+
  1176. 'section#content .tbl_out{border-bottom:1px solid #A0A0A0 !important;}'+
  1177. 'section#content .tbl .poster{border-right:1px solid #A0A0A0 !important;}'+
  1178. 'section#content .pagination{border: 1px solid #A0A0A0;background-color: #E0E0E0;}'+
  1179. 'section#content .pagination .page-start, section#content .pagination .page-prev, section#content .pagination .page-next{ color: #272829;background-color: #D5D5D5;}'+//strart, poprzednia, następna
  1180. '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;}'+
  1181. 'section#content .pagination .page-prev:hover{background-position: 15px center;}'+
  1182. 'section#content .pagination .page-next:hover{background-position: 90px center;}'+
  1183. 'section#content .pagination .page-num{color: #272829 !important;background-color: #D5D5D5;}'+//numery stron
  1184. '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;}'+
  1185. 'section#content .tbl.opened .subtitle .opener, section#content .tbl .subtitle:hover .opener, .page .closerSmall2:hover {background-color: #E0E0E0 !important;border-radius: 0px 0px 3px 3px;border-bottom: 3px solid #D26911;}'+
  1186. '.module_frame{border: 1px solid #A0A0A0;}'+
  1187. '.category-modulemodule_frame li a{color: #000000;}'+
  1188. '.category-modulemodule_frame li a:hover{color: #2F2F2F;background-color: #E0E0E0;}'+
  1189. 'aside .list li a{color: #000000 !important;}'+
  1190. 'aside .list li a:hover{color: #2F2F2F !important;background-color: #E0E0E0 !important;text-decoration: none !important;}'+
  1191. 'aside{width: inherit !important;}'+
  1192. '.avatar-module .st-module-heading{background-color: #A0A0A0;color: #2F2F2F;}'+
  1193. '.login-greeting{color: #272829;}'+
  1194. '.moreInfo{background-color:#D5D5D5 !important;color:#000000 !important; border-top: 1px solid #A0A0A0;}'+
  1195. '.page span{color: #272829 !important;}'+
  1196. '.infofooter{border-top: 1px solid #A0A0A0 !important;background-color: #D5D5D5 !important;}'+
  1197. '.infoColumn0{background-color: #D5D5D5 !important;border-right: 1px solid #A0A0A0 !important;border-bottom: 1px solid #A0A0A0 !important;border-top: 1px solid #A0A0A0 !important}'+
  1198. 'section#content .page{color: #272829 !important;}'+
  1199. 'section#content .tbl .subtitle .sub h2{color: #272829 !important;}'+
  1200. 'select {background-color: #C5C5C5 !important;}'+
  1201. 'a, a:link, a:visited {color: #1E519D;}'+
  1202. '.infoheader, .infoheader1{color: #000000 !important;}'+
  1203. '.row-fluid {border-bottom: none !important;}'+
  1204. /**tłumaczenia*/
  1205. '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;}'+
  1206. 'table.table-layout tbody tr.odd td:not([style*="background-color:#255180"]):not([style*="background-color:#DD7665"]):not([style*="background-color:#41d64b"]){background-color: #C5C5C5 !important;}'+
  1207. 'table.table-layout tbody tr.even td:not([style*="background-color:#255180"]):not([style*="background-color:#DD7665"]):not([style*="background-color:#41d64b"]){background-color: #B5B5B5 !important;}'+
  1208. 'table.table-layout tbody tr td{border-bottom: 1px solid #A0A0A0 !important;border-right: 1px solid #A0A0A0 !important;color: #000000 !important;}'+
  1209. 'table.table-layout{border-top: 1px solid #A0A0A0 !important;}'+
  1210. '.progress div{background-color: #A0A0A0 !important;}'+
  1211. 'nav ul li.menu_add_tlum a{background-color: #2B68AB;border-bottom: 4px solid #2B68AB;background-position: 21px 12px;}'+
  1212. '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;}'+
  1213. '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;}'+
  1214. 'table.table-layout tbody tr td[style*="background-color:#255180"], td[style*="background-color:#41d64b"]{background-color:#DFDFDF !important;}'+ //ostatnio zaktualizowane
  1215. 'table.table-layout tbody tr td div span[style*="color: white"], span[style*="color: #feee39"]{color: black !important;}'+ //ilość oczekujących
  1216. 'table.table-layout tbody tr td div a[style*="color: rgb(0,200,0)"]{color: rgb(0,150,0) !important;}'+ //moderator
  1217. '.translation {cursor: pointer !important;}'+
  1218. '.headerSortUp{background-image: url(run/images/arrs.png);background-repeat: no-repeat;background-position: right;}'+
  1219. '.headerSortDown{background-image: url(run/images/arrsh.png);background-repeat: no-repeat;background-position: right;}'+
  1220. '.progress > span > span {color: #FFFFFF !important;}'+ //procenty ukończenia
  1221. /**komentarze*/
  1222. '.moreInfo2{background-color:#D5D5D5 !important;color:#000000 !important;}'+
  1223. 'section#content .tbl .avatar{border-right: 1px solid #A0A0A0 !important;}'+
  1224. 'section#content .tbl .subtitle .sub h3{color: #000000 !important;}'+
  1225. 'section#content .tbl .mark{color: #000000 !important;}'+
  1226. 'textarea{background-color: #B5B5B5 !important;color: #272829 !important;}'+
  1227. 'div[style*="background-color: #21262b"]{background-color: #ADADAD !important;}'+ //górna belka z datą i oceną
  1228. '.tresc2 div[style*="background-color: #292f35"]{background-color: #E9E9E9 !important;}'+ //cytat
  1229. /**artykuły*/
  1230. '#jc{background: none repeat scroll 0px 0px #B5B5B5;}'+
  1231. '#jc h4{color: #272829;background-color: #C5C5C5;}'+
  1232. '#jc .rbox{background-color: #B5B5B5;}'+
  1233. '#comments .comment-author, #comments .author-homepage, #comments .author-email{color: #4B3F37;}'+
  1234. '#comments .comment-date{color: #4B3F37;}'+
  1235. '#comments .comment-body{color: #4B3F37;}'+
  1236. '#comments .quote{color: #4B3F37;}'+
  1237. '#comments blockquote, #comments .hidden, #comments code, #comments pre{color: #1B6A6A;}'+
  1238. '#comments a{color: #174B54;}'+
  1239. '#comments-form input{color: #2D3335;}'+
  1240. /**profil*/
  1241. '#uddeim-overview .sectiontableentry1 {background-color: #C5C5C5 !important;}'+
  1242. '#uddeim-overview .sectiontableentry2 {background-color: #B5B5B5 !important;}'+
  1243. '#uddeim-overview>table {border-collapse: initial !important;}'+
  1244. '#uddeim-writeform input {background-color: #D5D5D5 !important;}'+
  1245. /**seriale*/
  1246. 'span.yellowfont {color: #000000 !important;}'+
  1247. /**serial*/
  1248. 'section#content .tbl_top_powiadomienia {background-color:#D5D5D5 !important;border-top: 1px solid #A0A0A0 !important;}'+
  1249. 'section#content .tbl_top_powiadomienia .head_l {color: #414141 !important;}'+
  1250. 'section#content .tbl_top_powiadomienia .head_r label {color: #414141 !important;}'+
  1251. /**n24 helper*/
  1252. '#n24h_tr_input_search, #n24h_tr_input_new{color: #000000 !important;}'+
  1253. '#n24h_tr_input_clear, #n24h_tr_input_add, #n24h_tr_input_remove {background-color: #C5C5C5 !important;color: #000000 !important;}'+
  1254. '#n24h_tr_shows_list {background-color: #C5C5C5 !important;color: #000000 !important;}'+
  1255. '.n24h_tr_option {background-color: #C5C5C5 !important;color: #000000 !important;}'+
  1256. 'div.n24h_comm_opener:hover {background-color: #C5C5C5 !important;}';
  1257. /** Szara stop*/
  1258. /** n24 classic start*/
  1259. var altcss2='body{background-color:#DEE0E2 !important;color: #272727;}'+//body
  1260. '#avatar-body-middle-block{background-color:#DEE0E2;}'+//środek
  1261. '#avatar-header-inside-block{background-color:#DEE0E2;}'+//górna belka body
  1262. '#avatar-tool-block{background-color:#DEE0E2;}'+
  1263. '.logo .screen{border: 4px solid #5592D5 !important;}'+//logo
  1264. '.logo .screen .subline1{background-color: #5592D5 !important;}'+
  1265. '.logo .screen .subline2{background-color: #5592D5 !important;}'+
  1266. '.logo h1{color: #5592D5 !important;}'+
  1267. '.logo h2{color: #5592D5 !important;}'+
  1268. '.avatar-menu-icons[class*="avatar-main-menu-szare"] > li {background-color: #2B68AB;border-right: 1px solid #5592D5;}'+//menu: forum, irc, rss
  1269. '[class*="avatar-main-menu-szare"] > li:hover {border-bottom: 4px solid #1B4A7E;}'+
  1270. 'nav{background-color: #2B68AB !important;}'+//pusta przestrzeń między menu a dodaj napisy
  1271. 'nav ul li.menu_add_napisy a{background-color: #2B68AB;border-bottom: 4px solid #1B4A7E;}'+//przycisk dodaj napisy
  1272. 'nav ul li.menu_add_napisy a:hover{background-color: #1B4A7E;color: #CCC;background-position: 21px 12px;}'+
  1273. '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;}'+
  1274. '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
  1275. '#search #phrase{color: #000000 !important;}'+//wyszukiwarka
  1276. '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
  1277. 'section#content .tbl {width: inherit !important;}'+
  1278. 'section#content .tbl_top .head_l{color:#000000 !important;}'+
  1279. 'section#content .tbl{background-color:#F7F8F8 !important;border-top:none !important;border-bottom: 1px solid #DBDCDC;border-right: 1px solid #DBDCDC;}'+
  1280. 'section#content .page{border:none !important;}'+
  1281. 'section#content .tbl_out{border-bottom:none !important;}'+
  1282. 'section#content .pagination{background: linear-gradient(#EDEEEE, #E2E3E3);border:none;border-radius:5px;}'+
  1283. 'section#content .tbl .subtitle .sub h2{color:#004896 !important;}'+
  1284. 'section#content .tbl .subtitle .sub h3{color:#5D5D5D !important;}'+
  1285. '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;}'+//strart, poprzednia, następna
  1286. '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;}'+
  1287. 'section#content .pagination .page-start, section#content .pagination .page-prev {padding-left:15px;}'+
  1288. 'section#content .pagination .page-next {padding-right:15px;}'+
  1289. 'section#content .pagination a.page-num{color: #2C2C2C;background-color: #F9F9F9;border: 1px solid #CECFCF;border-radius: 4px;}'+//numery stron
  1290. 'section#content .pagination a.page-num:hover{background-color: #F9F9F9;border: 1px solid #CECFCF;margin-top: 0px; border-radius: 4px;text-decoration:underline;}'+
  1291. 'section#content .pagination span.page-num{color: #FFFFFF !important;background-color: #2A5EA1;border: 1px solid #CECFCF;border-radius: 4px;}'+//numery stron
  1292. 'section#content .pagination span.page-num:hover{background-color: #2A5EA1;border: 1px solid #CECFCF;margin-top: 0px; border-radius: 4px;text-decoration:underline;}'+
  1293. 'section#content .tbl.opened .subtitle .opener, section#content .tbl .subtitle:hover .opener, .page .closerSmall2 {background-color: #F7F8F8 !important;}'+
  1294. '.module_frame{border: none;}'+
  1295. '.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;}'+
  1296. '.category-modulemodule_frame li a,aside .list li a{background-color: #1758A5 !important;border-bottom:1px solid #0D3A6F;margin-bottom:1px;font-weight: bold;}'+
  1297. '.category-modulemodule_frame li a:hover,aside .list li a:hover{color: #E8EEF0 !important;background-color: #1758A5 !important;text-decoration:underline;}'+
  1298. 'aside{width: inherit !important;}'+
  1299. 'aside .list{border: none !important;}'+
  1300. '.moreInfo{background-color:#F7F8F8 !important;color:#252525 !important;}'+
  1301. '.page span{color: #252525 !important;}'+
  1302. '.infofooter{border-top: 1px solid #DBDCDC !important;background-color: #F7F8F8 !important;color:#252525 !important;}'+
  1303. '.infoColumn0{background-color: #F7F8F8 !important;border-right: 1px solid #DBDCDC !important;border-bottom: 1px solid #DBDCDC !important;border-top: 1px solid #DBDCDC !important}'+
  1304. 'section#content .tbl .poster{border-right: 1px solid #DBDCDC !important}'+
  1305. 'section#content .page{color: #252525 !important;}'+
  1306. '.head_r input[type="radio"]:checked + label{background-image: none !important;color: #FFFFFF !important;background-color: #2A5EA1;border: 1px solid #CECFCF;border-radius: 4px;}'+
  1307. '.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;}'+
  1308. '.head_r input[type="radio"] + label:hover{text-decoration:underline;}'+
  1309. '.head_r > label{color: #2C2C2C !important;}'+
  1310. 'select {background-color: #FFFFFF !important;}'+
  1311. '.infoheader, .infoheader1{color: #20487F !important;}'+
  1312. 'section#content .tbl div.mark:nth-child(3) {color: #545D62 !important;}'+
  1313. '.row-fluid {border-bottom: none !important;}'+
  1314. /**tłumaczenia*/
  1315. '.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;}'+
  1316. '.checkbox_outer input[type="checkbox"] + span,.checkbox_series input[type="checkbox"] + span{width:19px;height:17px;}'+
  1317. '.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;}'+
  1318. '.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;}'+
  1319. '.checkbox_outer{margin-top: 0px !important;top: 4px !important;}'+
  1320. 'table.table-layout{border-top: none !important;}'+
  1321. '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
  1322. 'table.table-layout tbody tr.odd td:not([style*="background-color:#255180"]):not([style*="background-color:#DD7665"]):not([style*="background-color:#41d64b"]):not([data-n24h-star]){background: linear-gradient(#FFFFFF, #DEE0E2) !important;}'+//nie nadpisuj aktualizacji
  1323. 'table.table-layout tbody tr.even td:not([style*="background-color:#255180"]):not([style*="background-color:#DD7665"]):not([style*="background-color:#41d64b"]):not([data-n24h-star]){background: linear-gradient(#E1E1E1, #ECECEC) !important;}'+
  1324. '.progress div{background-color: #E7BA63 !important;}'+
  1325. 'td.progressx>div.progress {background-image: linear-gradient(#FFFFFF, #DEE0E2) !important; border-right: 1px solid #D3D6D7 !important;border-bottom: 1px solid #D3D6D7 !important;bottom: 0px !important;top: 0px !important;margin: auto;}'+
  1326. 'table.table-layout tbody tr td{color: #252525 !important;}'+
  1327. 'table.table-layout tbody tr td[style*="background-color:#255180"],td[style*="background-color:#41d64b"] {background-color: #E7BA63 !important;}'+ //ostatnio zaktualizowane
  1328. 'table.table-layout tbody tr td div span[style*="color: white"], span[style*="color: #feee39"]{color: #252525 !important;}'+ //ilość oczekujących
  1329. '.progress > span > span {color: #252525 !important;}'+ //procenty ukończenia
  1330. '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;}'+
  1331. 'table.table-layout tbody tr: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;}'+
  1332. 'table.table-layout {border-collapse: initial !important;}'+
  1333. '.translation {cursor: pointer !important;}'+
  1334. 'nav ul li.menu_add_tlum a{background-color: #2B68AB;border-bottom: 4px solid #2B68AB;background-position: 21px 12px;}'+
  1335. '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;}'+
  1336. '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;}'+
  1337. '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;}'+
  1338. '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;}'+
  1339. /**komentarze*/
  1340. '.moreInfo2{background-color:#DFE2E5 !important;color:#000000 !important;}'+
  1341. 'section#content .clear ~ .tbl{background-color:#DFE2E5 !important;border-bottom: 1px solid #BBBBBB !important;margin-bottom:2px !important;}'+
  1342. 'section#content .clear ~ .tbl .infoColumn0{background-color:#DFE2E5 !important;}'+
  1343. 'section#content .clear ~ .tbl .infofooter{background-color:#ECEEEF !important;color:#000000 !important;border-top: 1px solid #BBBBBB !important;}'+
  1344. 'section#content .tbl .avatar{border-right: 1px solid #BBBBBB !important;}'+
  1345. 'section#content .tbl div[style*="background-color: #21262b"] .subtitle .sub h3{color: #FFFFFF !important;}'+
  1346. 'section#content .tbl .mark{color: #FFFFFF !important;}'+
  1347. 'textarea{background-color: #FFFFFF !important;color: #000000 !important;}'+
  1348. 'div[style*="background-color: #21262b"]{background: linear-gradient(#2369B0, #104694, #2167AF) !important;color: #DDDDDD !important;line-height: inherit !important;}'+ //górna belka z datą i oceną
  1349. '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;}'+
  1350. 'form#userForm{border-left:1px solid #000000; border-bottom:1px solid #000000; border-right:1px solid #000000; background-color: #FFFFFF;}'+
  1351. '.tresc2 div[style*="background-color: #292f35"]{background-color: #FFFFFF !important;}'+ //cytat
  1352. /**artykuły*/
  1353. '#jc{background: none repeat scroll 0px 0px #DFE2E5; border: 1px solid #000000;}'+
  1354. '#jc .rbox{background-color: #DFE2E5;}'+
  1355. '#comments .comment-date{color: #252525;}'+
  1356. '#comments .comment-body{color: #252525;}'+
  1357. '#comments blockquote, #comments .hidden, #comments code, #comments pre{color: #252525;}'+
  1358. '#comments a{color: #174B54;}'+
  1359. /**profil*/
  1360. '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;}'+
  1361. '#uddeim-overview .sectiontableentry1 {background-color: #ECECEC !important;}'+
  1362. '#uddeim-overview .sectiontableentry2 {background-color: #DEE0E2 !important;}'+
  1363. '#uddeim-overview>table {border-collapse: initial !important;}'+
  1364. '#uddeim-writeform input {background-color: #FFFFFF !important;}'+
  1365. /**seriale*/
  1366. 'span.yellowfont {color: #000000 !important;}'+
  1367. /**serial*/
  1368. 'section#content .tbl_top_powiadomienia {background: linear-gradient(#EDEEEE, #E2E3E3) !important;border-top: none !important;border-radius:5px;}'+
  1369. 'section#content .tbl_top_powiadomienia .head_l {color: #414141 !important;}'+
  1370. 'section#content .tbl_top_powiadomienia .head_r label {color: #414141 !important;}'+
  1371. /**n24 helper*/
  1372. '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;}'+
  1373. '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;}'+
  1374. 'table.table-layout tbody tr.odd td[data-n24h-star="on"]{background-image: url('+icons.staron+'), linear-gradient(#FFFFFF, #DEE0E2) !important;}'+
  1375. 'table.table-layout tbody tr.even td[data-n24h-star="on"]{background-image: url('+icons.staron+'), linear-gradient(#E1E1E1, #ECECEC) !important;}'+
  1376. 'th#n24h_tr_favhead{background-image: url('+icons.staron+'), linear-gradient(#2369B0, #104694, #2167AF) !important;background-repeat: no-repeat !important;background-position: center !important;}'+
  1377. /**TU*/
  1378. '#n24h_tr_input_search, #n24h_tr_input_new{color: #000000 !important; border: 1px solid #CECFCF !important;}'+
  1379. '#n24h_tr_input_clear, #n24h_tr_input_add, #n24h_tr_input_remove {background-color: #F9F9F9 !important;color: #000000 !important; border: 1px solid #CECFCF !important;}'+
  1380. '#n24h_tr_shows_list {background-color: #FFFFFF !important;color: #000000 !important;border: 1px solid #CECFCF !important;}'+
  1381. '.n24h_tr_option {background-color: #FFFFFF !important;color: #000000 !important;}'+
  1382. 'div.n24h_comm_opener:hover {background-color: #F0F0F0 !important;}'+
  1383. '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;}'+
  1384. '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;}';
  1385. /** n24 classic stop*/
  1386. switch (options.getValue('altskinid', '1')) {
  1387. case '1':
  1388. utils.insertcss(altcss1);
  1389. break;
  1390. case '2':
  1391. utils.insertcss(altcss2);
  1392. break;
  1393. default:
  1394. console.log('Błędny parametr "altskinid": '+options.getValue('altskinid', 'Err'));
  1395. }
  1396. },
  1397. shrinkButtons: function() {
  1398. var css='.avatar-menu-icons[class*="avatar-main-menu"] > li {padding-left: 5px; padding-right: 5px;}';
  1399. utils.insertcss(css);
  1400. },
  1401. /**
  1402. Usuń target="_blank" ze wszystkich odnośników
  1403. */
  1404. killTargetBlank: function()
  1405. {
  1406. var targets=document.querySelectorAll('a[target="_blank"]');
  1407. for (var i=0;i<targets.length;i++)
  1408. {
  1409. targets[i].removeAttribute('target');
  1410. }
  1411. },
  1412. init: function() {
  1413. if (options.getValue('fixsearch', false))
  1414. misc.fixSearch();
  1415. if (options.getValue('killcover', false))
  1416. misc.killCover();
  1417. if (options.getValue('killimdbinfo', false))
  1418. misc.killIMDBInfo();
  1419. if (options.getValue('usesmallmenubuttons', false))
  1420. misc.shrinkButtons();
  1421. }
  1422. };
  1423.  
  1424. var n24h = {
  1425. /**
  1426. */
  1427. onLoad: function() {
  1428. options.init();
  1429. misc.init();
  1430. if(location.pathname.toLowerCase() === '/tlumaczenia')
  1431. {
  1432. tlumaczenia.init();
  1433. }
  1434. if(location.pathname.toLowerCase() === '/komentarze')
  1435. {
  1436. komentarze.init();
  1437. }
  1438. if(location.pathname.toLowerCase() === '/serial')
  1439. {
  1440. serial.init();
  1441. }
  1442. if (options.getValue('removetargetblank', false))
  1443. misc.killTargetBlank();
  1444. },
  1445. setAltSkin: function() {
  1446. if (options.getValue('usealtskin', false))
  1447. {
  1448. var head=document.querySelector('head');
  1449. var body=document.querySelector('body');
  1450. if ((!head)||(!body))
  1451. {
  1452. //upewnij się że mamy załadowane head i body
  1453. setTimeout(n24h.setAltSkin,1);
  1454. } else {
  1455. misc.altSkin();
  1456. }
  1457. }
  1458. },
  1459. /**
  1460. */
  1461. init: function()
  1462. {
  1463. window.addEventListener('DOMContentLoaded', n24h.onLoad, false);
  1464. n24h.setAltSkin();
  1465. }
  1466. };
  1467.  
  1468. n24h.init();