Hormold

VK Change (#1385479812)

Nov 26th, 2013
318
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 184.22 KB | None | 0 0
  1. Файл - retina.css (Старый размер - 31046 | Новый - 23992):
  2. 8.  -   background-image: url(/images/hatf_2x.gif?1);
  3. 9.  +   background-image: url(/images/hat_2x.gif);
  4. 16.  -   background-image: url(/images/hatf_vk_2x.gif?1);
  5. 17.  +   background-image: url(/images/hat_vk_2x.gif);
  6. 22.  -   background-image: url(/images/hatf_vk_rtl_2x.gif?1);
  7. 23.  +   background-image: url(/images/hat_vk_rtl_2x.gif);
  8. 34.  - }
  9. 35.  - .is_2x .feedback_expand {
  10. 36.  -   background-image: url(/images/fbgr_arrow_2x.png);
  11. 37.  -   background-size: 11px 12px;
  12. 62.  - .is_2x .tdd_search .tdd_control,
  13. 63.  - .is_2x #search_query,
  14. 65.  - .is_2x .choose_search_cont input,
  15. 66.  - .is_2x #exchange_search_input {
  16. 67.  + .is_2x #search_query {
  17. 69.  -   background-size: 11px 11px;
  18. 70.  - }
  19. 71.  - .is_2x .audio_friends_search_btn {
  20. 72.  -   background-image: url(/images/magglass_audio_blue_2x.png);
  21. 73.  -   background-size: 11px 11px;
  22. 74.  - }
  23. 75.  - .is_2x .audio_friends_search_input.text {
  24. 76.  -   background-image: url(/images/magglass_audio_2x.png);
  25. 83.  - .is_2x #search_query_reset,
  26. 84.  - .is_2x #friends_reset_search {
  27. 85.  + .is_2x #search_query_reset {
  28. 88.  - }
  29. 89.  - .is_2x .audio_friends_search_inp_wrap .reset {
  30. 90.  -   background-image: url(/images/clear_audio_2x.png);
  31. 91.  -   background-size: 9px 9px;
  32. 104.  - .is_2x #audio_tip_arrow,
  33. 111.  - .is_2x .page_gif_add_icon,
  34. 112.  - .is_2x .current_audio .label,
  35. 113.  - .is_2x .current_audio_cnt .label,
  36. 114.  - .is_2x .video_row_icon_add .video_row_icon,
  37. 115.  - .is_2x .docs_add_row {
  38. 116.  -   background-image: url(/images/icons/audio_icons_2x.png?5);
  39. 117.  + .is_2x .page_gif_add_icon{
  40. 118.  +   background-image: url(/images/icons/audio_icons_2x.png);
  41. 120.  - }
  42. 121.  - .is_2x #head_play_btn {
  43. 122.  -   background-image: url(/images/icons/audio_iconsf_2x.png);
  44. 129.  - .is_2x .fw_like_icon,
  45. 130.  - .is_2x .wall_module .post_share_icon {
  46. 131.  -   background-image: url(/images/icons/like_2x.png?2);
  47. 132.  -   background-size: 10px 32px;
  48. 133.  + .is_2x .fw_like_icon {
  49. 134.  +   background-image: url(/images/icons/like_2x.png);
  50. 135.  +   background-size: 10px 20px;
  51. 145.  - .is_2x .im_tab_selected .im_tabx_over,
  52. 146.  - .is_2x .summary_tab_x,
  53. 147.  - .is_2x .tdd_x_c {
  54. 148.  + .is_2x .im_tab_selected .im_tabx_over {
  55. 152.  - .is_2x .audio .play_new, .is_2x #audio.new .wall_module .audio.current .play_new {
  56. 153.  + .is_2x .audio .play_new {
  57. 164.  - .is_2x #im_docs_preview .im_media_x,
  58. 165.  - .is_2x #im_sdocs_preview .im_media_x,
  59. 169.  - .is_2x .wall_module .reply_delete_button,
  60. 170.  - .is_2x .fave_delete_link,
  61. 171.  - .is_2x #intr_hide,
  62. 172.  - .is_2x .wall_module .post_delete_button,
  63. 173.  - .is_2x .top_info_wrap .hide_button,
  64. 174.  - .is_2x .docs_delete_row {
  65. 175.  + .is_2x .wall_module .reply_delete_button {
  66. 178.  - }
  67. 179.  - .is_2x .im_to_end {
  68. 180.  -   background-image: url(/images/im_toend_2x.gif);
  69. 181.  -   background-size: 15px 13px;
  70. 182.  - }
  71. 183.  - .is_2x #im_log_fav_btn i,
  72. 184.  - .is_2x .im_important_toggler,
  73. 185.  - .is_2x .im_important_icon {
  74. 186.  -   background-image: url(/images/icons/im_actions_iconset2_2x.png?8);
  75. 187.  -   background-size: 20px 300px;
  76. 189.  -
  77. 200.  + .is_2x .current_audio,
  78. 206.  - .is_2x .im_attach_gift,
  79. 211.  - .is_2x .im_attach_link,
  80. 225.  - .is_2x .tickets_media_icon,
  81. 226.  - .is_2x .medadd_h,
  82. 227.  - .is_2x .group_share_club,
  83. 228.  - .is_2x .group_ad_post_stats,
  84. 229.  - .is_2x .group_ad_post_link,
  85. 230.  - .is_2x .exchange_ad_post_stats,
  86. 231.  - .is_2x .exchange_ad_post_link {
  87. 232.  -   background-image: url(/images/icons/mono_iconset_2x.png?2);
  88. 233.  -   background-size: 11px 360px;
  89. 234.  - }
  90. 235.  - .is_2x .ge_ad_box_fields {
  91. 236.  -   background-image: url(/images/join/adspost_2x.png);
  92. 237.  -   background-size: 160px 160px;
  93. 238.  - }
  94. 239.  - .is_2x .exchange_new_union_img {
  95. 240.  -   background-image: url(/images/join/ads_union_2x.png);
  96. 241.  -   background-size: 160px 160px;
  97. 242.  + .is_2x .medadd_h {
  98. 243.  +   background-image: url(/images/icons/mono_iconset_2x.png?1);
  99. 244.  +   background-size: 11px 346px;
  100. 247.  -   background: none;
  101. 248.  - }
  102. 249.  -
  103. 250.  - .is_2x .feed_tab_add_icon,
  104. 251.  - .is_2x .feed_filter_tabs_icon,
  105. 252.  - .is_2x .feed_filter_tabs_check {
  106. 253.  -   background-image: url(/images/icons/news_iconset_2x.png?2);
  107. 254.  -   background-size: 16px 176px;
  108. 255.  - }
  109. 256.  - .is_2x .feed_filter_lists_row .feed_filter_tabs_icon,
  110. 257.  - .is_2x .feed_icon_newlist {
  111. 262.  - .is_2x .page_verified,
  112. 263.  + .is_2x .profile_verified,
  113. 267.  - .is_2x .search_verified,
  114. 268.  - .is_2x .wall_post_source_icon,
  115. 269.  - .is_2x .page_fronly {
  116. 270.  -   background-image: url(/images/profile_icons_2x.png?10);
  117. 271.  -   background-size: 13px 241px;
  118. 272.  + .is_2x .search_verified {
  119. 273.  +   background-image: url(/images/profile_icons_2x.png);
  120. 274.  +   background-size: 13px 98px;
  121. 308.  - .is_2x #search_query_wrap.wide #search_query_progress,
  122. 309.  - .is_2x .docs_search_bar .docs_loading_bar {
  123. 310.  + .is_2x #search_query_wrap.wide #search_query_progress {
  124. 314.  - .is_2x .emoji_smile_icon_on,
  125. 315.  - .is_2x .emoji_smile_icon,
  126. 316.  - .is_2x .mbe_smile_icon_on,
  127. 317.  - .is_2x .mbe_smile_icon {
  128. 318.  + .is_2x .im_smile_icon_on,
  129. 319.  + .is_2x .im_smile_icon {
  130. 335.  - .is_2x .emoji_pointer {
  131. 336.  -   background-image: url(/images/icons/like_icons_bl_2x.png?2);
  132. 337.  + .is_2x #im_emoji_pointer {
  133. 338.  +   background-image: url(/images/like_icons_bl_2x.png?2);
  134. 356.  - .is_2x #photo_default_check,
  135. 357.  - .is_2x .join_fb_progress {
  136. 358.  + .is_2x #photo_default_check {
  137. 368.  - }
  138. 369.  - .is_2x .wk_post_stats .wk_posts_stats_info_row .like .img,
  139. 370.  - .is_2x .wk_post_stats .wk_posts_stats_info_row .share .img,
  140. 371.  - .is_2x .wk_post_stats .wk_posts_stats_info_row .comment .img {
  141. 372.  -   background-image: url(/images/icons/exchange_stats_icons_2x.png);
  142. 373.  -   background-size: 22px 66px;
  143. 375.  - .is_2x .post_upload_wrap div.post_upload,
  144. 376.  - .is_2x .im_upload_wrap div.im_upload {
  145. 377.  + .is_2x .post_upload_wrap div.post_upload {
  146. 385.  - .is_2x .mvs_header_text,
  147. 386.  - .is_2x .olist_dd_over {
  148. 387.  + .is_2x .mvs_header_text {
  149. 439.  - .is_2x .page_pics_preview .page_media_x,
  150. 440.  - .is_2x #im_media_preview .im_x,
  151. 441.  - .is_2x #im_media_dpreview .im_x,
  152. 442.  - .is_2x #im_media_mpreview .im_x,
  153. 443.  - .is_2x .owner_photo_bubble_delete,
  154. 444.  - .is_2x .app_delete_el {
  155. 445.  + .is_2x .page_pics_preview .page_media_x {
  156. 467.  - .is_2x .emoji_smile_shadow {
  157. 468.  + .is_2x .im_emoji_smile_cont {
  158. 504.  - .is_2x .video_module .video div.page_video_play_icon,
  159. 522.  + .is_2x .ads_edit_tt_pointer,
  160. 527.  - .is_2x .audio_status_tt .tail,
  161. 530.  - .is_2x .tickets_side_tt.time .tail,
  162. 531.  - .is_2x .apps_edit_side_tt_pointer,
  163. 532.  - .is_2x .ge_ad_hint_tt .tail,
  164. 533.  - .is_2x .exchange_hint_tt .tail {
  165. 534.  + .is_2x .tickets_side_tt.time .tail {
  166. 571.  + .is_2x .notes_checkbox,
  167. 586.  - .is_2x .side_filter.loading,
  168. 587.  - .is_2x .progress_inv_mini {
  169. 588.  + .is_2x .side_filter.loading {
  170. 606.  + }
  171. 607.  + .is_2x .selector_container td.selector_dropdown {
  172. 608.  +   background-image: url(/images/darr_dd_out_2x.gif);
  173. 609.  +   background-size: 7px 4px;
  174. 621.  - .is_2x .apps_featured_icon {
  175. 622.  -   background-image: url(/images/icons/apps_featured_arrow_2x.png);
  176. 623.  -   background-size: 26px 21px;
  177. 624.  + .is_2x .apps_featured_slide {
  178. 625.  +   background-image: url(/images/pics/apps_slide_2x.png);
  179. 626.  +   background-size: 6px 15px;
  180. 651.  -   background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAiCAYAAABFlhkzAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAARNJREFUeNrcltsJwjAUhpNapPgkCI7gBLqAuIFz6gRqB7BdQDcQBPVBxEviSWmld5P0L4IHwmlD8n1N2iTlp/NFMgo/3DMpJZvPJn26vVJ5MIMQQpTWO8mFgnMeXbrp+qaRAUnJ4OGwluMnAlXXQck/kOl4FOXFanug5FHpIiQZQEpypNRDSAqd0ZLSjkhJZSeUpLYDQvK1cSJZrgMriVZDJVF7lc1ItJ/EdrqM5tNGYvxV5CRevK1gNztu0NY1hW+CXZTp5BtQulF5wUaQg6tj9a5OS4jABq4t8EM7uNY7sH1yrRE0hdcKEPBKAQpeKkDCCwI0PCNIwYfxCm0Mr3oHIl7+jeH/++vYuuCJmn8VbwEGAGvuiUVvn8vPAAAAAElFTkSuQmCC);
  181. 652.  -   background-size: 12px 17px;
  182. 653.  +   background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAARCAYAAADpPU2iAAAArUlEQVR42pWSTQrCQAyFQ4eh4mz8A6uiKAgeXg8guHbjaeYGbQYivkkTxcK3e9880oRyzv31/uyJKAEBqD8QZsxCmDJRcIUVs2Y6kFqRQiUUbo9XkQ7CTqQEbaESQDozJyVNTAGkC3NkNjLbp0ULqmnPLKUlmg3GTCgEVwDprwY9A32bYQt/KbqCEW6rjRvhzgg33qZLcC6LGp+FuqX3GaTRq44Q4UU7bAjNL2EAU9kEmwVnt3EAAAAASUVORK5CYII%3D);
  183. 656.  -   background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAiCAYAAABFlhkzAAAAsUlEQVR42u2XQQ5AMBBFG4kQG0Lc/wZ6Ak7AXXCBmrEQEWGm7UwsNPnb9xqaP60x8VYKKbt+dHaY3LyseyLyTQZp7DA6lIgJEP4L7lYCKSCthADhOaS+wmMIHuGhgld4iIAE9xWQ4T4CFpwrOODYNRQ4R8DeOUfgDacIguAUAXZ85QtnCayQQPwTif9klWN6K8HZG1sgXhUqZadS1yoDR2Vkqgx9lWvLf3X8juB4gJwFG+W12jVqcG4VAAAAAElFTkSuQmCC);
  184. 657.  +   background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAiCAYAAABFlhkzAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAARNJREFUeNrcltsJwjAUhpNapPgkCI7gBLqAuIFz6gRqB7BdQDcQBPVBxEviSWmld5P0L4IHwmlD8n1N2iTlp/NFMgo/3DMpJZvPJn26vVJ5MIMQQpTWO8mFgnMeXbrp+qaRAUnJ4OGwluMnAlXXQck/kOl4FOXFanug5FHpIiQZQEpypNRDSAqd0ZLSjkhJZSeUpLYDQvK1cSJZrgMriVZDJVF7lc1ItJ/EdrqM5tNGYvxV5CRevK1gNztu0NY1hW+CXZTp5BtQulF5wUaQg6tj9a5OS4jABq4t8EM7uNY7sH1yrRE0hdcKEPBKAQpeKkDCCwI0PCNIwYfxCm0Mr3oHIl7+jeH/++vYuuCJmn8VbwEGAGvuiUVvn8vPAAAAAElFTkSuQmCC);
  185. 668.  - .is_2x .page_album_camera,
  186. 669.  - .is_2x .photos_choose_album_camera,
  187. 722.  + .is_2x #im_media_preview .im_media_x,
  188. 750.  + }
  189. 751.  + .is_2x .token span.x_hover,
  190. 752.  + .is_2x .token span.x,
  191. 753.  + {
  192. 754.  +   background-image: url('/images/blob_x.gif');
  193. 755.  +   background-size: 9px 10px;
  194. 767.  - .is_2x .button_blue button,
  195. 768.  - .is_2x .button_gray button {
  196. 769.  -   background-image: url(/images/button_bgf_2x.png?1);
  197. 770.  -   background-size: 1px 96px;
  198. 771.  + .is_2x .button_blue button {
  199. 772.  +   background-image: url('/images/button_vk_2x.png');
  200. 773.  +   background-size: 1px 84px;
  201. 774.  + }
  202. 775.  + .is_2x .button_blue button:active {
  203. 776.  +   background: #5e80a5;
  204. 793.  + }
  205. 794.  + .is_2x .mail_box_content img {
  206. 795.  +   max-width: 80px;
  207. 825.  - .is_2x .wall_module .reply_edit_button,
  208. 826.  - .is_2x .wall_module .post_edit_button,
  209. 827.  - .is_2x .docs_edit_row {
  210. 828.  + .is_2x .wall_module .reply_edit_button {
  211. 835.  - }
  212. 836.  - .is_2x .payments_box_wide .payments_getvotes_method_img {
  213. 837.  -   background-image: url(/images/icons/payments_w_2x.png);
  214. 838.  -   background-size: 41px 164px;
  215. 839.  - }
  216. 840.  - .is_2x .payments_logo_cards {
  217. 841.  -   background-image: url(/images/pics/cards_2x.png);
  218. 842.  -   background-size: 222px 52px;
  219. 843.  - }
  220. 844.  - .is_2x .payments_logo_webmoney {
  221. 845.  -   background-image: url(/images/ps/webmoney_2x.png);
  222. 846.  -   background-size: 126px 40px;
  223. 847.  - }
  224. 848.  - .is_2x .payments_logo_kiwipurse {
  225. 849.  -   background-image: url(/images/ps/qiwiwallet_2x.png);
  226. 850.  -   background-size: 110px 40px;
  227. 851.  - }
  228. 852.  - .is_2x .payments_logo_yandexmoney {
  229. 853.  -   background-image: url(/images/ps/yandexmoney_2x.png);
  230. 854.  -   background-size: 106px 45px;
  231. 855.  - }
  232. 856.  - .is_2x .payments_logo_checkout {
  233. 857.  -   background-image: url(/images/ps/googlewallet_2x.png);
  234. 858.  -   background-size: 190px 40px;
  235. 862.  + }
  236. 863.  + .is_2x .dev_sect_icon {
  237. 864.  +   background-image: url('/images/icons/dev_icons_2x.png');
  238. 865.  +   background-size: 95px 246px;
  239. 866.  + }
  240. 867.  + .is_2x .page_fronly {
  241. 868.  +   background-image: url(/images/private_post_2x.png);
  242. 869.  +   background-size: 8px 9px;
  243. 874.  - }
  244. 875.  - .is_2x #status_export.checkbox_pic, .is_2x #facebook_export.checkbox_pic, .is_2x #own_status_export.checkbox_pic, .is_2x #own_facebook_export.checkbox_pic, .is_2x .checkbox_status_export, .is_2x .checkbox_facebook_export {
  245. 876.  -   background-image: url(/images/icons/wall_export_2x.gif);
  246. 877.  -   background-size: 14px 112px;
  247. 878.  - }
  248. 879.  - .is_2x .flist_item_action, .is_2x #flist_sel_list .flist_item_action {
  249. 880.  -   background-image: url(/images/icons/lite_acts_12x12_2x.png);
  250. 881.  -   background-size: 12px 24px;
  251. 882.  - }
  252. 883.  - .is_2x .wdd_add_plus {
  253. 884.  -   background-image: url(/images/pics/im_plus_2x.gif);
  254. 885.  -   background-size: 11px 11px;
  255. 886.  - }
  256. 887.  - .is_2x #html5_player .play_button,
  257. 888.  - .is_2x #html5_player .pause_button,
  258. 889.  - .is_2x #html5_player .big_play,
  259. 890.  - .is_2x #html5_player .volume_button,
  260. 891.  - .is_2x #html5_player .quality_button .quality_val,
  261. 892.  - .is_2x #html5_player .quality_button #quality_label,
  262. 893.  - .is_2x #html5_player #video_actions .add,
  263. 894.  - .is_2x #html5_player #video_actions .rotate,
  264. 895.  - .is_2x #html5_player #video_actions .logo,
  265. 896.  - .is_2x #html5_player .vid_like_fg,
  266. 897.  - .is_2x #html5_player .vid_share_fg,
  267. 898.  - .is_2x #html5_player .vid_link_fg {
  268. 899.  -   background-image: url(/images/video/iconset_2x.png?2);
  269. 900.  -   background-size: 380px 54px;
  270. 901.  - }
  271. 902.  - .is_2x .wall_album_nocover,
  272. 903.  - .is_2x .pva_no_photos,
  273. 904.  - .is_2x #photos_albums_container .photo_row .img_link.no_photo,
  274. 905.  - .is_2x .photos_choose_album_link.no_photo {
  275. 906.  -   background-image: url(/images/camera_big_2x.png);
  276. 907.  -   background-size: 64px 48px;
  277. 908.  - }
  278. 909.  -
  279. 910.  - .is_2x .dropbox, .is_2x .dropbox.choose {
  280. 911.  -   background-image: url(/images/dropbox_arrow_2x.png);
  281. 912.  -   background-size: 63px 44px;
  282. 913.  - }
  283. 914.  - .is_2x .owner_photo_bubble_action_in {
  284. 915.  -   background-image: url(/images/edit_photo_icons_white_2x.png);
  285. 916.  -   background-size: 16px 88px;
  286. 917.  - }
  287. 918.  - .is_2x .owner_photo_bubble_action_in {
  288. 919.  -   background-image: url(/images/edit_photo_icons_white_2x.png);
  289. 920.  -   background-size: 16px 88px;
  290. 921.  - }
  291. 922.  - .is_2x #privacy_custom_box .minus_friends {
  292. 923.  -   background-image: url(/images/minus_2x.png);
  293. 924.  -   background-size: 16px 16px;
  294. 925.  - }
  295. 926.  - .is_2x #privacy_custom_box .plus_friends {
  296. 927.  -   background-image: url(/images/plus_2x.png);
  297. 928.  -   background-size: 15px 19px;
  298. 929.  - }
  299. 930.  - .is_2x .index_fb_logo {
  300. 931.  -   background-image: url(/images/icons/facebook_btn_icon_2x.png);
  301. 932.  -   background-size: 8px 16px;
  302. 933.  - }
  303. 934.  - .is_2x .index_fb_btn button {
  304. 935.  -   background-image: url(/images/fb_buttonf_2x.png);
  305. 936.  -   background-size: 1px 44px;
  306. 937.  - }
  307. 938.  - .is_2x .photos_choose_row_add .icon {
  308. 939.  -   background-image: url(/images/icons/check_white_2x.png);
  309. 940.  -   background-size: 14px 13px;
  310. 941.  - }
  311. 942.  - .is_2x .wdd_arr {
  312. 943.  -   background-image: url(/images/wide_dd_2x.png);
  313. 944.  -   background-size: 21px 24px;
  314. 945.  - }
  315. 946.  - .is_2x .video_share_icon {
  316. 947.  -   background-image: url(/images/icons/videoexporticons_2x.png);
  317. 948.  - }
  318. 949.  - .is_2x .olympics_bar_img {
  319. 950.  -   background-image: url(/images/olymp_mono_2x.png);
  320. 951.  -   background-size: 59px 28px;
  321. 952.  - }
  322. 953.  - .is_2x .olympics_bar_img.sochi {
  323. 954.  -   background-image: url(/images/sochi2014_2x.png);
  324. 955.  -   background-size: 50px 33px;
  325. 956.  - }
  326. 957.  - .is_2x .app_new_sticker {
  327. 958.  -   background-image: url(/images/icons/new_app_en_2x.png);
  328. 959.  -   background-size: 60px 60px;
  329. 960.  - }
  330. 961.  - .is_2x .apps_sticker_ru {
  331. 962.  -   background-image: url(/images/icons/new_app_ru_2x.png);
  332. 963.  - }
  333. 964.  - .is_2x .apps_sticker_ua {
  334. 965.  -   background-image: url(/images/icons/new_app_ua_2x.png);
  335. 966.  - }
  336. 967.  - .is_2x .audio_new_sticker {
  337. 968.  -   background-image: url(/images/icons/new_audio_en_2x.png);
  338. 969.  -   background-size: 58px 58px;
  339. 970.  - }
  340. 971.  - .is_2x .audio_sticker_ru {
  341. 972.  -   background-image: url(/images/icons/new_audio_ru_2x.png);
  342. 973.  - }
  343. 974.  - .is_2x .audio_sticker_ua {
  344. 975.  -   background-image: url(/images/icons/new_audio_ua_2x.png);
  345. 976.  - }
  346. 977.  - .is_2x .pv_filter_font_icon {
  347. 978.  -   background-image: url('/images/icons/switch_fonts_2x.png');
  348. 979.  -   background-size: 17px 25px;
  349. 980.  - }
  350. 981.  - .is_2x .checkin_big {
  351. 982.  -   background-image: url(/images/icons/checkin_big_2x.png);
  352. 983.  -   background-size: 17px 22px;
  353. ------
  354. Файл - feed.js (Старый размер - 102454 | Новый - 0):
  355. 0.  - var Feed = {
  356. 1.  -   update: function (afterPost) {
  357. 2.  -     if (cur.feedUpdateLoading) return;
  358. 3.  -     if (cur.add_queue && window.Notifier &&
  359. 4.  -         Notifier.addKey(cur.add_queue, feed.updated) &&
  360. 5.  -         cur.section != 'news') {
  361. 6.  -       return;
  362. 7.  -     }
  363. 8.  -     if (cur.subsection == 'top' || inArray(cur.section, ['search', 'photos_search', 'mentions', 'articles', 'articles_search', 'likes'])) {
  364. 9.  -       return;
  365. 10.  -     }
  366. 11.  -     var rnd = Math.random();
  367. 12.  -     if (cur.section != 'news' && cur.section != 'comments' && rnd > 0.3 ||
  368. 13.  -         cur.section == 'news' && (afterPost || rnd > 0.05)) {
  369. 14.  -       return;
  370. 15.  -     }
  371. 16.  -     cur.feedUpdateLoading = true;
  372. 17.  -     ajax.post('al_feed.php?au_' + cur.section, extend(feed.getSectionParams(cur.section), {timestamp: cur.timestamp, posted: afterPost ? 1 : '', queue: cur.add_queue ? 1 : 0}), {
  373. 18.  -       onDone: function (options, rows, updates_timestamp) {
  374. 19.  -         cur.feedUpdateLoading = false;
  375. 20.  -         if (afterPost == 1 &&
  376. 21.  -             (!rows || rows.indexOf(vk.id + '') == -1)) {
  377. 22.  -           setTimeout(feed.update.pbind(2), 2000);
  378. 23.  -           return;
  379. 24.  -         }
  380. 25.  -         if (options.section != cur.section ||
  381. 26.  -             options.timestamp < cur.timestamp ||
  382. 27.  -             updates_timestamp < cur.timestamp) {
  383. 28.  -           return;
  384. 29.  -         }
  385. 30.  -         options.count += cur.count;
  386. 31.  -         var feed_rows = cur.rowsCont, au = ce('div'), el, postEl, post_raw, startST, updH = 0;
  387. 32.  -         if (cur.section == 'news') {
  388. 33.  -           startST = scrollGetY()
  389. 34.  -           if (rows) {
  390. 35.  -             au.innerHTML = rows;
  391. 36.  -             while (au.lastChild) {
  392. 37.  -               feed_rows.insertBefore(au.lastChild, feed_rows.firstChild);
  393. 38.  -             }
  394. 39.  -             each(geByClass('ts' + updates_timestamp, feed_rows), function() {
  395. 40.  -               var self = this;
  396. 41.  -               updH += this.offsetHeight;
  397. 42.  -               self.style.backgroundColor = '#FEFAE4';
  398. 43.  -               animate(self, {backgroundColor: '#FFF'}, 6000);
  399. 44.  -               cur.feedUnreadCount++;
  400. 45.  -             });
  401. 46.  -           }
  402. 47.  -           if (updH && startST > 100) {
  403. 48.  -             scrollToY(startST + updH, 0);
  404. 49.  -           }
  405. 50.  -         } else {
  406. 51.  -           if (rows) {
  407. 52.  -             au.innerHTML = rows;
  408. 53.  -             while (el = au.lastChild) {
  409. 54.  -               if (el.tagName != 'DIV') {
  410. 55.  -                 au.removeChild(el);
  411. 56.  -                 continue;
  412. 57.  -               }
  413. 58.  -               post_raw = el.firstChild.id.substr(4);
  414. 59.  -               if (post_raw && cur.wallLayer == post_raw) {
  415. 60.  -                 continue;
  416. 61.  -               }
  417. 62.  -               if (!(postEl = ge('post' + post_raw))) {
  418. 63.  -                 startST = scrollGetY();
  419. 64.  -                 feed_rows.insertBefore(el, feed_rows.firstChild);
  420. 65.  -                 el.style.backgroundColor = '#FEFAE4';
  421. 66.  -                 animate(el, {backgroundColor: '#FFF'}, 6000);
  422. 67.  -                 updH = el.offsetHeight;
  423. 68.  -                 if (startST > 100) {
  424. 69.  -                   scrollToY(startST + updH, 0);
  425. 70.  -                 }
  426. 71.  -               } else {
  427. 72.  -                 if (!hasClass(postEl.parentNode, 'feed_row')) {
  428. 73.  -                   debugLog('insert fail', postEl.parentNode);
  429. 74.  -                   return;
  430. 75.  -                 }
  431. 76.  -                 var repliesCont = ge('replies' + post_raw), openEl = repliesCont.nextSibling, cnt = 0;
  432. 77.  -                 each ([].slice.call(geByClass('reply', el, 'div')), function () {
  433. 78.  -                   if (ge(this.id)) return;
  434. 79.  -                   addClass(this, 'new_reply');
  435. 80.  -                   repliesCont.appendChild(this);
  436. 81.  -                   cnt++;
  437. 82.  -                 });
  438. 83.  -                 if (cnt) {
  439. 84.  -                   var stDelta = postEl.parentNode.offsetHeight, newCnt = geByClass('new_reply', repliesCont, 'div').length;
  440. 85.  -                   if (!openEl || openEl.className != 'replies_open') {
  441. 86.  -                     openEl = ce('div', {className: 'replies_open', onclick: wall.openNewComments.pbind(post_raw)});
  442. 87.  -                     repliesCont.parentNode.insertBefore(openEl, repliesCont.nextSibling);
  443. 88.  -                   }
  444. 89.  -                   openEl.innerHTML = getLang('wall_x_new_replies_more', Math.min(100, newCnt));
  445. 90.  -                   openEl.newCnt = newCnt;
  446. 91.  -
  447. 92.  -                   var st = scrollGetY(),
  448. 93.  -                       ch = window.innerHeight || document.documentElement.clientHeight || bodyNode.clientHeight,
  449. 94.  -                       btnY = getXY(openEl)[1],
  450. 95.  -                       h = postEl.parentNode.offsetHeight;
  451. 96.  -
  452. 97.  -                   stDelta = h - stDelta;
  453. 98.  -
  454. 99.  -                   if (!inArray(post_raw, cur.feedUnread)) {
  455. 100.  -                     cur.feedUnread.unshift(post_raw);
  456. 101.  -                   }
  457. 102.  -                   if (!cur.idleManager.isIdle && btnY > st + 100 && btnY < st + ch + 100) {
  458. 103.  -                     debugLog('delaySorting');
  459. 104.  -                     feed_rows.insertBefore(ge('post_ph' + post_raw) || ce('div', {id: 'post_ph' + post_raw}), feed_rows.firstChild);
  460. 105.  -                     if (!inArray(post_raw, cur.feedToSort)) {
  461. 106.  -                       cur.feedToSort.push(post_raw);
  462. 107.  -                     }
  463. 108.  -                   } else {
  464. 109.  -                     debugLog('sort now', btnY, st + 100, st + ch + 100, stDelta);
  465. 110.  -                     // debugLog(postEl.parentNode, feed_rows);
  466. 111.  -                     re(postEl.parentNode);
  467. 112.  -                     // debugLog(postEl.parentNode, feed_rows);
  468. 113.  -                     feed_rows.insertBefore(postEl.parentNode, feed_rows.firstChild);
  469. 114.  -                     if (btnY > st + ch + 100) {
  470. 115.  -                       stDelta = h;
  471. 116.  -                     }
  472. 117.  -                     if (stDelta) {
  473. 118.  -                       debugLog('moving st', stDelta);
  474. 119.  -                       scrollToY(scrollGetY() + stDelta, 0);
  475. 120.  -                     }
  476. 121.  -                   }
  477. 122.  -                   cur.feedUnreadCount += cnt;
  478. 123.  -                 }
  479. 124.  -                 au.removeChild(el);
  480. 125.  -               }
  481. 126.  -             }
  482. 127.  -           }
  483. 128.  -         }
  484. 129.  -         feed.applyOptions(options);
  485. 130.  -         feed.updateTitle();
  486. 131.  -       },
  487. 132.  -       onFail: function () {
  488. 133.  -         cur.feedUpdateLoading = false;
  489. 134.  -         return false;
  490. 135.  -       },
  491. 136.  -       showProgress: function () {
  492. 137.  -         cur.feedUpdateLoading = true;
  493. 138.  -       },
  494. 139.  -       hideProgress: function () {
  495. 140.  -         cur.feedUpdateLoading = false;
  496. 141.  -       }
  497. 142.  -     });
  498. 143.  -   },
  499. 144.  -   getNewQKey: function (to) {
  500. 145.  -     var params = {
  501. 146.  -       act: 'a_get_key',
  502. 147.  -       only_update: cur.add_queue ? 1 : 0,
  503. 148.  -       need_ignore: !isArray(cur.ignore_owners) ? 1 : 0
  504. 149.  -     };
  505. 150.  -     var options = {onDone: onDone, local: 1};
  506. 151.  -     ajax.post('al_feed.php?queue', extend(feed.getSectionParams(cur.section), params), options);
  507. 152.  -     function onDone(key, ignore_owners) {
  508. 153.  -       if (key) {
  509. 154.  -         cur.add_queue = key;
  510. 155.  -         setTimeout(feed.update.pbind(0), 0);
  511. 156.  -       } else if (!params.only_update) {
  512. 157.  -         var ts = ignore_owners;
  513. 158.  -         cur.timestamp = (ts || (vkNow() / 1000)) - to;
  514. 159.  -         return;
  515. 160.  -       }
  516. 161.  -       if (isArray(ignore_owners)) {
  517. 162.  -         cur.ignore_owners = ignore_owners;
  518. 163.  -       }
  519. 164.  -     }
  520. 165.  -   },
  521. 166.  -   updated: function (key, data) {
  522. 167.  -     if ((cur.section != 'search' && cur.section != 'news' && cur.section) || !cur.add_queue || cur.add_queue.key != key) {
  523. 168.  -       return;
  524. 169.  -     }
  525. 170.  -     if (data.failed) {
  526. 171.  -       cur.add_queue = false;
  527. 172.  -       var timeout = curNotifier.error_timeout || 1;
  528. 173.  -       clearTimeout(cur.lp_error_to);
  529. 174.  -       cur.lp_error_to = setTimeout(feed.getNewQKey.bind(feed).pbind(timeout), timeout * 1000);
  530. 175.  -       return;
  531. 176.  -     }
  532. 177.  -     if (!isArray(data.events) || !data.events.length) {
  533. 178.  -       return;
  534. 179.  -     }
  535. 180.  - //    debugLog('feed updated', data);
  536. 181.  -     cur.add_queue.ts = data.ts;
  537. 182.  -     if (data.key) {
  538. 183.  -       cur.add_queue.key = data.key;
  539. 184.  -     }
  540. 185.  -     var startST = scrollGetY(),
  541. 186.  -         updH = 0;
  542. 187.  -
  543. 188.  -     each(data.events, function () {
  544. 189.  -       updH += feed.pushEvent(this.split('<!>'), startST);
  545. 190.  -     });
  546. 191.  -     var endST = scrollGetY();
  547. 192.  -     if (updH && startST > 100 && Math.abs(startST - endST) < 100) {
  548. 193.  -       scrollToY(endST + updH, 0);
  549. 194.  -     }
  550. 195.  -     feed.updateTitle();
  551. 196.  -   },
  552. 197.  -   pushEvent: function (ev, st) {
  553. 198.  -     var ev_ver = ev[0],
  554. 199.  -         ev_type = ev[1],
  555. 200.  -         post_id = ev[2],
  556. 201.  -         el = ge('post' + post_id),
  557. 202.  -         s = cur.section,
  558. 203.  -         flags = s != 'search' ? intval(ev.pop()) : 0,
  559. 204.  -         deltaH = 0;
  560. 205.  -
  561. 206.  -     if (!cur.options || ev_ver != cur.options.qversion) {
  562. 207.  -       // location.reload();
  563. 208.  -       return;
  564. 209.  -     }
  565. 210.  -     // debugLog(ev_type, post_id, el, ev[ev.length - 1]);
  566. 211.  -     switch (ev_type) {
  567. 212.  -       case 'new_post':
  568. 213.  -         if (el) break;
  569. 214.  -         var adminLevel = 0;
  570. 215.  -         if (intval(ev[11]) && intval(ev[11]) != vk.id) { // own reply owner
  571. 216.  -           ajax.post('al_feed.php', {act: 'a_need_own_reply', oid: intval(ev[11])}, {
  572. 217.  -             onDone: function(need) {
  573. 218.  -               if (need) {
  574. 219.  -                 ev[11] = 0;
  575. 220.  -                 feed.pushEvent(ev);
  576. 221.  -               }
  577. 222.  -             }
  578. 223.  -           });
  579. 224.  -           return;
  580. 225.  -         }
  581. 226.  -         if (s != 'search') {
  582. 227.  -           var oid = post_id.split('_')[0];
  583. 228.  -           ev[8] = (intval(ev[8]) > 0 && (flags & 4) == 4) ? 1 : 0;
  584. 229.  -           if (oid < 0) {
  585. 230.  -             adminLevel = (flags & 8) ? 2 : ((flags & 2) ? 1 : 0);
  586. 231.  -           }
  587. 232.  -           // debugLog(oid, flags, adminLevel, ev[8]);
  588. 233.  -         }
  589. 234.  -         var cont = cur.rowsCont,
  590. 235.  -             cnodes = cont.childNodes,
  591. 236.  -             postHTML = wall.getNewPostHTML(ev, adminLevel, feed.feedPostRepl),
  592. 237.  -             place = ev[12],
  593. 238.  -             newEl, grouped, first, others, moreLink, singleOthers;
  594. 239.  -
  595. 240.  -         if (place) { // Client-side grouping posts
  596. 241.  -           if (cur.ignore_owners.length && inArray(intval(place), cur.ignore_owners)) {
  597. 242.  -             break;
  598. 243.  -           }
  599. 244.  -           if (grouped = geByClass1('feed_reposts_wrap' + place, cont, 'div')) {
  600. 245.  -             first = geByClass1('feed_reposts_first', grouped, 'div').firstChild;
  601. 246.  -             others = geByClass1('feed_reposts_group', grouped, 'div');
  602. 247.  -             moreLink = geByClass1('feed_reposts_more_link', grouped, 'a');
  603. 248.  -             if (st > getXY(first)[1]) {
  604. 249.  -               deltaH -= first.offsetHeight;
  605. 250.  -             }
  606. 251.  -             first.parentNode.replaceChild(newEl = se(postHTML), first);
  607. 252.  -             others.insertBefore(first, others.firstChild);
  608. 253.  -             if (!isVisible(others)) {
  609. 254.  -               val(moreLink, getLang('news_show_X_reposts', others.childNodes.length));
  610. 255.  -             }
  611. 256.  -             grouped = grouped.parentNode;
  612. 257.  -             if (cont.firstChild != grouped) {
  613. 258.  -               cont.insertBefore(grouped, cont.firstChild);
  614. 259.  -             }
  615. 260.  -             if (st > getXY(grouped)[1]) {
  616. 261.  -               deltaH += grouped.offsetHeight;
  617. 262.  -             }
  618. 263.  -             grouped.bits = 0;
  619. 264.  -           } else if ((singleOthers = geByClass('feed_repost' + place, cont, 'div')) && singleOthers.length) {
  620. 265.  -             postHTML = rs(cur.wallTpl.grouped_posts, {
  621. 266.  -               place: place,
  622. 267.  -               random: irand(100000000, 200000000),
  623. 268.  -               first: postHTML,
  624. 269.  -               other: '',
  625. 270.  -               label: getLang('news_show_X_reposts', singleOthers.length)
  626. 271.  -             });
  627. 272.  -             var frow = se('<div class="feed_row">' + postHTML + '</div>');
  628. 273.  -             cont.insertBefore(frow, cont.firstChild);
  629. 274.  -             if (st > getXY(frow)[1]) {
  630. 275.  -               deltaH += frow.offsetHeight;
  631. 276.  -             }
  632. 277.  -             grouped = frow.firstChild;
  633. 278.  -             newEl = geByClass1('feed_reposts_first', grouped, 'div');
  634. 279.  -             others = geByClass1('feed_reposts_group', grouped, 'div');
  635. 280.  -             each(clone(singleOthers), function () {
  636. 281.  -               if (st > getXY(this)[1]) {
  637. 282.  -                 deltaH -= this.offsetHeight;
  638. 283.  -               }
  639. 284.  -               re(this.parentNode);
  640. 285.  -               others.appendChild(this.firstChild);
  641. 286.  -             });
  642. 287.  -           } else {
  643. 288.  -             newEl = se('<div class="feed_row"><div class="feed_repost' + place + '">' + postHTML + '</div></div>');
  644. 289.  -             cont.insertBefore(newEl, cont.firstChild);
  645. 290.  -             if (st > getXY(newEl)[1]) {
  646. 291.  -               deltaH += newEl.offsetHeight;
  647. 292.  -             }
  648. 293.  -           }
  649. 294.  -         } else {
  650. 295.  -           newEl = se('<div class="feed_row">' + postHTML + '</div>');
  651. 296.  -           cont.insertBefore(newEl, cont.firstChild);
  652. 297.  -           if (st > getXY(newEl)[1]) {
  653. 298.  -             deltaH += newEl.offsetHeight;
  654. 299.  -           }
  655. 300.  -         }
  656. 301.  -         if (ge('post_poll_id' + post_id)) {
  657. 302.  -           wall.updatePoll(post_id);
  658. 303.  -         }
  659. 304.  -         cur.feedUnreadCount++;
  660. 305.  -         if (s != 'search') {
  661. 306.  -           setStyle(newEl, {backgroundColor: '#FEFAE4'});
  662. 307.  -           animate(newEl, {backgroundColor: '#FFF'}, 6000);
  663. 308.  -         }
  664. 309.  -         if (cnodes.length > 300) {
  665. 310.  -           cont.removeChild(cnodes[300]);
  666. 311.  -         } else if (cnodes.length <= 1) {
  667. 312.  -           hide('feed_empty');
  668. 313.  -         }
  669. 314.  -         Wall.updateMentionsIndex();
  670. 315.  -         break;
  671. 316.  -
  672. 317.  -       case 'new_post_reply':
  673. 318.  -         if (el) break;
  674. 319.  -         var cont = cur.rowsCont,
  675. 320.  -             cnodes = cont.childNodes,
  676. 321.  -             postHTML = wall.getNewPostHTML(ev, false, feed.feedPostRepl),
  677. 322.  -             newEl = se('<div class="feed_row">' + postHTML + '</div>');
  678. 323.  -
  679. 324.  -         cont.insertBefore(newEl, cont.firstChild);
  680. 325.  -         if (st > getXY(newEl)[1]) {
  681. 326.  -           deltaH += newEl.offsetHeight;
  682. 327.  -         }
  683. 328.  -         cur.feedUnreadCount++;
  684. 329.  -         if (cnodes.length > 300) {
  685. 330.  -           cont.removeChild(cnodes[300]);
  686. 331.  -         } else if (cnodes.length <= 1) {
  687. 332.  -           hide('feed_empty');
  688. 333.  -         }
  689. 334.  -         break;
  690. 335.  -
  691. 336.  -       case 'edit_post':
  692. 337.  -         var editEl = ge('wpt' + post_id),
  693. 338.  -             stUnder;
  694. 339.  -         if (!isVisible(el) || !editEl) break;
  695. 340.  -
  696. 341.  -         var wasExpanded = geByClass1('wall_post_more', editEl);
  697. 342.  -         if (wasExpanded) wasExpanded = isVisible(domNS(wasExpanded));
  698. 343.  -
  699. 344.  -         if (stUnder = (st > getXY(editEl)[1])) {
  700. 345.  -           deltaH -= editEl.offsetHeight;
  701. 346.  -         }
  702. 347.  -         var text = psr(rs(ev[3], {
  703. 348.  -           poll_hash: cur.wallTpl.poll_hash
  704. 349.  -         }));
  705. 350.  -         val(editEl, text);
  706. 351.  -         if (wasExpanded) {
  707. 352.  -           wasExpanded = geByClass1('wall_post_more', editEl);
  708. 353.  -           if (wasExpanded) wasExpanded.onclick();
  709. 354.  -         }
  710. 355.  -         if (ge('post_poll_id' + post_id)) {
  711. 356.  -           wall.updatePoll(post_id);
  712. 357.  -         }
  713. 358.  -         if (stUnder) {
  714. 359.  -           deltaH += editEl.offsetHeight;
  715. 360.  -         }
  716. 361.  -
  717. 362.  -         setStyle(editEl, {backgroundColor: '#FEFAE4'});
  718. 363.  -         animate(editEl, {backgroundColor: '#FFF'}, 6000);
  719. 364.  -         break;
  720. 365.  -
  721. 366.  -       case 'edit_reply':
  722. 367.  -         var reply_id = ev[3],
  723. 368.  -             editEl = ge('wpt' + reply_id);
  724. 369.  -         if (!isVisible('post' + reply_id) || !editEl) break;
  725. 370.  -
  726. 371.  -         var wasExpanded = geByClass1('wall_reply_more', editEl);
  727. 372.  -         if (wasExpanded) wasExpanded = isVisible(domNS(wasExpanded));
  728. 373.  -
  729. 374.  -         updH = -editEl.offsetHeight;
  730. 375.  -         updY = getXY(editEl)[1];
  731. 376.  -         val(editEl, psr(ev[4]));
  732. 377.  -         if (wasExpanded) {
  733. 378.  -           wasExpanded = geByClass1('wall_reply_more', editEl);
  734. 379.  -           if (wasExpanded) wasExpanded.onclick();
  735. 380.  -         }
  736. 381.  -         updH += editEl.offsetHeight;
  737. 382.  -         setStyle(editEl, {backgroundColor: '#FEFAE4'});
  738. 383.  -         animate(editEl, {backgroundColor: '#FFF'}, 6000);
  739. 384.  -         break;
  740. 385.  -
  741. 386.  -       case 'post_parsed_link':
  742. 387.  -         if (!el) break;
  743. 388.  -         var btnWrap = geByClass1('wall_postlink_preview_btn_disabled', el);
  744. 389.  -         if (!btnWrap) break;
  745. 390.  -         if (intval(ev[3])) {
  746. 391.  -           removeClass(btnWrap, 'wall_postlink_preview_btn_disabled');
  747. 392.  -         } else {
  748. 393.  -           re(btnWrap);
  749. 394.  -         }
  750. 395.  -         break;
  751. 396.  -
  752. 397.  -       case 'del_post':
  753. 398.  -         if (el) {
  754. 399.  -           if (!cur.wallMyDeleted[post_id]) {
  755. 400.  -             if (st > getXY(el)[1]) {
  756. 401.  -               deltaH -= el.offsetHeight;
  757. 402.  -             }
  758. 403.  -             revertLastInlineVideo(el);
  759. 404.  -             hide(el);
  760. 405.  -           }
  761. 406.  -           cur.options.offset--;
  762. 407.  -         }
  763. 408.  -         break;
  764. 409.  -
  765. 410.  -       case 'res_post':
  766. 411.  -         el && cur.options.offset++;
  767. 412.  -         break;
  768. 413.  -
  769. 414.  -       case 'new_reply':
  770. 415.  -         if (!el || cur.wallMyReplied[post_id] || ge('post' + ev[3])) break;
  771. 416.  -
  772. 417.  -         var repliesEl = ge('replies' + post_id),
  773. 418.  -             repliesWrap = ge('replies_wrap' + post_id),
  774. 419.  -             startH = el.offsetHeight,
  775. 420.  -             oid = post_id.split('_')[0],
  776. 421.  -             adminLevel = (oid < 0) ? ((flags & 8) ? 2 : ((flags & 2) ? 1 : 0)) : 0,
  777. 422.  -             newEl = se(wall.getNewReplyHTML(ev, adminLevel)),
  778. 423.  -             highlight = false;
  779. 424.  -
  780. 425.  -         if (!isVisible(repliesEl) || !isVisible(repliesWrap) || isVisible('reply_link' + post_id)) {
  781. 426.  -           re('reply_link' + post_id);
  782. 427.  -           show(repliesWrap, repliesEl);
  783. 428.  -           highlight = true;
  784. 429.  -         } else {
  785. 430.  -           var openEl = repliesEl.nextSibling,
  786. 431.  -               newCnt = geByClass('new_reply', repliesEl, 'div').length + 1;
  787. 432.  -
  788. 433.  -           if (!cur.wallMyOpened[post_id]) {
  789. 434.  -             addClass(newEl, 'new_reply');
  790. 435.  -             if (!openEl || openEl.className != 'replies_open') {
  791. 436.  -               openEl = ce('div', {className: 'replies_open', onclick: wall.openNewComments.pbind(post_id)});
  792. 437.  -               repliesEl.parentNode.insertBefore(openEl, repliesEl.nextSibling);
  793. 438.  -             }
  794. 439.  -             openEl.innerHTML = getLang('wall_x_new_replies_more', Math.min(100, newCnt));
  795. 440.  -             openEl.newCnt = newCnt;
  796. 441.  -           } else {
  797. 442.  -             if (openEl && openEl.className == 'replies_open') re(openEl);
  798. 443.  -             highlight = true;
  799. 444.  -             var headerEl = geByClass1('wr_header', repliesEl, 'a'),
  800. 445.  -                 shown = geByClass('reply', repliesEl, 'div').length + 1,
  801. 446.  -                 total = shown;
  802. 447.  -             if (headerEl) {
  803. 448.  -               total = intval(headerEl.getAttribute('offs').split('/')[1]) + 1;
  804. 449.  -             }
  805. 450.  -             if (total > 5 || shown < total) {
  806. 451.  -               if (!headerEl) {
  807. 452.  -                 repliesEl.insertBefore(headerEl = ce('a', {className: 'wr_header'}), repliesEl.firstChild);
  808. 453.  -               }
  809. 454.  -               wall.updateRepliesHeader(post_id, headerEl, shown, total);
  810. 455.  -             }
  811. 456.  -           }
  812. 457.  -         }
  813. 458.  -         if (post_id.split('_')[0] == vk.id) {
  814. 459.  -           cur.feedUnreadCount++;
  815. 460.  -         }
  816. 461.  -         repliesEl.appendChild(newEl);
  817. 462.  -         if (st > getXY(highlight ? newEl : openEl)[1]) {
  818. 463.  -           deltaH += el.offsetHeight - startH;
  819. 464.  -         }
  820. 465.  -         if (highlight) {
  821. 466.  -           setStyle(newEl, {backgroundColor: '#FEFAE4'});
  822. 467.  -           animate(newEl, {backgroundColor: '#FFF'}, 6000);
  823. 468.  -         }
  824. 469.  -         Wall.repliesSideSetup(post_id);
  825. 470.  -         Wall.updateMentionsIndex();
  826. 471.  -         break;
  827. 472.  -
  828. 473.  -       case 'del_reply':
  829. 474.  -         if (!cur.wallMyDeleted[post_id] && el) {
  830. 475.  -           if (st > getXY(el)[1]) {
  831. 476.  -             deltaH -= el.offsetHeight;
  832. 477.  -           }
  833. 478.  -
  834. 479.  -           var post = el.parentNode.id.match(/replies(-?\d+_\d+)/);
  835. 480.  -           revertLastInlineVideo(el);
  836. 481.  -           re(el);
  837. 482.  -           if (post) {
  838. 483.  -             Wall.repliesSideSetup(post[1]);
  839. 484.  -           }
  840. 485.  -         }
  841. 486.  -         break;
  842. 487.  -
  843. 488.  -       case 'like_post':
  844. 489.  -       case 'like_reply':
  845. 490.  -         if (!el) break;
  846. 491.  -           var likePost = ev_type == 'like_reply' ? post_id.replace('_', '_wall_reply') : post_id,
  847. 492.  -               cntEl = ge('like_count' + likePost),
  848. 493.  -               iconEl = ge('like_icon' + likePost),
  849. 494.  -               ttEl = iconEl && iconEl.parentNode,
  850. 495.  -               cnum = intval(val(cntEl)),
  851. 496.  -               num = intval(ev[3]);
  852. 497.  -
  853. 498.  -         animateCount(cntEl, num);
  854. 499.  -         val('like_real_count_wall' + post_id, num);
  855. 500.  -         toggleClass(iconEl, 'no_likes', num <= 0);
  856. 501.  -         if (ttEl && ttEl.tt && !isVisible(ttEl.tt.container)) {
  857. 502.  -           ttEl && ttEl.tt && ttEl.tt.destroy();
  858. 503.  -         }
  859. 504.  -         setStyle(iconEl, {opacity: '', visibility: ''});
  860. 505.  -         break;
  861. 506.  -
  862. 507.  -       case 'vote_poll':
  863. 508.  -         if (!el) break;
  864. 509.  -         wall.updatePollResults(post_id, ev[3]);
  865. 510.  -         break;
  866. 511.  -
  867. 512.  -       case 'new_photos_private':
  868. 513.  -         break;
  869. 514.  -         ajax.post('al_feed.php', {act: 'a_get_private', oid: ev[2], key: ev[3], hash: ev[4], num: ev[5]}, {
  870. 515.  -           onDone: function (ev) {
  871. 516.  -             if (isArray(ev) && ev.length) {
  872. 517.  -               feed.pushEvent(ev);
  873. 518.  -             }
  874. 519.  -           }
  875. 520.  -         });
  876. 521.  -         break;
  877. 522.  -
  878. 523.  -
  879. 524.  -       case 'new_photos':
  880. 525.  -       case 'new_tagged':
  881. 526.  -         break;
  882. 527.  -         var cont = cur.rowsCont,
  883. 528.  -             cnodes = cont.childNodes,
  884. 529.  -             thumbs = ev.splice(7, ev.length - 7),
  885. 530.  -             place = ev[2].split('_')[1] + '_' + (ev_type == 'new_photos' ? 1 : 3),
  886. 531.  -             grouped, newEl;
  887. 532.  -
  888. 533.  -         if (grouped = geByClass1('post_photos' + place, cont, 'div')) {
  889. 534.  -           if (st > getXY(grouped)[1]) {
  890. 535.  -             deltaH -= grouped.offsetHeight;
  891. 536.  -           }
  892. 537.  -           var numEl = geByClass1('feed_photos_num', grouped, 'small'),
  893. 538.  -               thumbsEl = geByClass1('post_media', grouped, 'div'),
  894. 539.  -               num = intval(numEl.getAttribute('num')) + thumbs.length / 3,
  895. 540.  -               thumbs_html = [], i;
  896. 541.  -           val(numEl, getLang('news_x_photos', num) + ', ' + wall.getNowRelTime());
  897. 542.  -           numEl.setAttribute('num', num);
  898. 543.  -           for (i = 0; i < thumbs.length; i += 3) {
  899. 544.  -             thumbs_html.push(cur.wallTpl.photo_thumb.replace(/%photo_id%/g, thumbs[i]).replace(/%thumb%/g, thumbs[i+1]).replace(/%temp%/g, thumbs[i+2].replace(/"/g, '&quot;')).replace('%full_id%', ev[2]));
  900. 545.  -           }
  901. 546.  -           if (thumbs_html.length >= 8) {
  902. 547.  -             thumbs_html.splice(8, thumbs_html.length - 8);
  903. 548.  -             val(thumbsEl, thumbs_html.join(' '));
  904. 549.  -           } else {
  905. 550.  -             var t = ce('div', {innerHTML: thumbs_html});
  906. 551.  -             while (t.lastChild) {
  907. 552.  -               thumbsEl.insertBefore(t.lastChild, thumbsEl.firstChild);
  908. 553.  -               if (thumbsEl.childNodes.length > 8) {
  909. 554.  -                 re(thumbsEl.lastChild);
  910. 555.  -               }
  911. 556.  -             }
  912. 557.  -           }
  913. 558.  -           newEl = grouped.parentNode;
  914. 559.  -           if (cont.firstChild != newEl) {
  915. 560.  -             cont.insertBefore(newEl, cont.firstChild);
  916. 561.  -           }
  917. 562.  -           if (st > getXY(newEl)[1]) {
  918. 563.  -             deltaH += newEl.offsetHeight;
  919. 564.  -           }
  920. 565.  -         } else {
  921. 566.  -           newEl = se('<div class="feed_row">' + wall.getNewPostHTML(ev, false, feed.feedPhotoRepl.pbind(thumbs)) + '</div>');
  922. 567.  -           addClass(newEl.firstChild, 'post_photos post_photos' + place);
  923. 568.  -           cont.insertBefore(newEl, cont.firstChild);
  924. 569.  -           if (st > getXY(newEl)[1]) {
  925. 570.  -             deltaH += newEl.offsetHeight;
  926. 571.  -           }
  927. 572.  -         }
  928. 573.  -         if (s != 'search') {
  929. 574.  -           setStyle(newEl, {backgroundColor: '#FEFAE4'});
  930. 575.  -           animate(newEl, {backgroundColor: '#FFF'}, 6000);
  931. 576.  -         }
  932. 577.  -         if (cnodes.length > 300) {
  933. 578.  -           cont.removeChild(cnodes[300]);
  934. 579.  -         } else if (cnodes.length == 1) {
  935. 580.  -           hide('feed_empty');
  936. 581.  -         }
  937. 582.  -         break;
  938. 583.  -     }
  939. 584.  -     return deltaH;
  940. 585.  -   },
  941. 586.  -   feedPostRepl: function (repl, ev) {
  942. 587.  -     repl.replies = cur.wallTpl.post_replies;
  943. 588.  -     var ext = {
  944. 589.  -       full_id: ev[2],
  945. 590.  -       item_id: 'wall_' + ev[2],
  946. 591.  -       sec_name: stripHTML(ev[3]),
  947. 592.  -       date: wall.getNowRelTime(),
  948. 593.  -       del: /*ev[9] == vk.id ? cur.wallTpl.del : */cur.wallTpl.spam // always hiding from feed
  949. 594.  -     };
  950. 595.  -     if (cur.section == 'search' && cur.q) {
  951. 596.  -       var text = repl.text || '',
  952. 597.  -           q = cur.q, q_words = q.toLowerCase().split(/[\s.,:;!?()]/),
  953. 598.  -           links = [];
  954. 599.  -       text = text.replace(/<.+?>/g, function (tag) {
  955. 600.  -         links.push(tag);
  956. 601.  -         return "\x01";
  957. 602.  -       });
  958. 603.  -       var text_l = text.toLowerCase(), i, pos, word;
  959. 604.  -       for (i = q_words.length - 1; i >= 0; i--) {
  960. 605.  -         word = q_words[i];
  961. 606.  -         if (!trim(word)) continue;
  962. 607.  -         pos = 0;
  963. 608.  -         while ((pos = text_l.indexOf(word, pos)) != -1) {
  964. 609.  -           if (text.charAt(pos - 1) == String.fromCharCode(2)) {
  965. 610.  -             pos += 2;
  966. 611.  -             continue;
  967. 612.  -           }
  968. 613.  -           text = text.substr(0, pos) + "\x02" + i + "\x02" + text.substr(pos + word.length);
  969. 614.  -           text_l = text_l.substr(0, pos) + "\x02" + i + "\x02" + text_l.substr(pos + word.length);
  970. 615.  -         }
  971. 616.  -       }
  972. 617.  -       text = text.replace(/\x02(\d+)\x02/g, function (a, i) {
  973. 618.  -         return '<span class="match">' + q_words[i] + '</span>';
  974. 619.  -       });
  975. 620.  -       text = text.replace(/\x01/g, function () {
  976. 621.  -         return links.shift() || '';
  977. 622.  -       });
  978. 623.  -       ext.text = text;
  979. 624.  -       if (ev[1] == 'new_post_reply') {
  980. 625.  -         ext.date_postfix = ev[7];
  981. 626.  -       }
  982. 627.  -     }
  983. 628.  -     return ext;
  984. 629.  -   },
  985. 630.  -   feedPhotoRepl: function (thumbs, repl, ev) {
  986. 631.  -     var thumbs_html = [], i, ext, explain = '', cnt = 1;
  987. 632.  -
  988. 633.  -     for (i = 0; i < thumbs.length; i += 3) {
  989. 634.  -       thumbs_html.push(cur.wallTpl.photo_thumb.replace(/%photo_id%/g, thumbs[i]).replace(/%thumb%/g, thumbs[i+1]).replace(/%temp%/g, thumbs[i+2].replace(/"/g, '&quot;')));
  990. 635.  -     }
  991. 636.  -     if (ev[1] == 'new_tagged') {
  992. 637.  -       explain = cur.wallTpl.tagged_explain.replace('%explain_text%', langSex(ev[6], cur.lang.wall_user_was_tagged_on_photos));
  993. 638.  -     } else {
  994. 639.  -       cnt = ev[6];
  995. 640.  -     }
  996. 641.  -     ext = {
  997. 642.  -       text: cur.wallTpl.photos,
  998. 643.  -       reply_link: '',
  999. 644.  -       reply_box: '',
  1000. 645.  -       oid: ev[2].split('_')[1],
  1001. 646.  -       explain: explain,
  1002. 647.  -       photos: thumbs_html.join(' '),
  1003. 648.  -       replies: cur.wallTpl.photo_replies.replace('%date%', getLang('news_x_photos', cnt) + ', ' + wall.getNowRelTime()),
  1004. 649.  -       count: cnt,
  1005. 650.  -       full_id: ev[2],
  1006. 651.  -       item_id: ev[2].replace(/^1_/, 'photos_').replace(/^3_/, 'tagged_'),
  1007. 652.  -       sec_name: stripHTML(ev[3])
  1008. 653.  -     };
  1009. 654.  -     return ext;
  1010. 655.  -   },
  1011. 656.  -   reSortItems: function () {
  1012. 657.  -     debugLog('resort', cur.feedToSort);
  1013. 658.  -     if (!cur.feedToSort || !cur.feedToSort.length) return;
  1014. 659.  -     each (cur.feedToSort, function (k, v) {
  1015. 660.  -       var ph = ge('post_ph' + v), el = ge('post' + v).parentNode;
  1016. 661.  -       if (ph && el) {
  1017. 662.  -         ph.parentNode.insertBefore(el, ph);
  1018. 663.  -         re(ph);
  1019. 664.  -       }
  1020. 665.  -     });
  1021. 666.  -     cur.feedToSort = [];
  1022. 667.  -     scrollToY(0, 0);
  1023. 668.  -   },
  1024. 669.  -   updateTitle: function () {
  1025. 670.  -     if (!cur.idleManager) return;
  1026. 671.  -     if (!cur.idleManager.isIdle) {
  1027. 672.  -       cur.feedUnreadCount = 0;
  1028. 673.  -     }
  1029. 674.  -     document.title = (cur.feedUnreadCount ? '('+ cur.feedUnreadCount + ') ' : '') + cur.feedInitialTitle;
  1030. 675.  -   },
  1031. 676.  -   toggleTabsMenu: function (on) {
  1032. 677.  -     var feedMenu = ge('feed_tab_add_menu');
  1033. 678.  -     if (on === undefined) {
  1034. 679.  -       on = !isVisible(feedMenu);
  1035. 680.  -     }
  1036. 681.  -     if (browser.mozilla) {
  1037. 682.  -       setStyle('page_body', {overflow: on ? 'visible' : ''});
  1038. 683.  -     }
  1039. 684.  -     toggle(feedMenu, on);
  1040. 685.  -     if (on) {
  1041. 686.  -       addEvent(document, 'mousedown', function (e) {
  1042. 687.  -         Feed.toggleTabsMenu(0);
  1043. 688.  -         removeEvent(document, 'mousedown', arguments.callee);
  1044. 689.  -       });
  1045. 690.  -     }
  1046. 691.  -   },
  1047. 692.  -   toggleMenu: function (on) {
  1048. 693.  -     var feedMenu = ge('feed_menu');
  1049. 694.  -     if (on === undefined) {
  1050. 695.  -       on = !isVisible(feedMenu);
  1051. 696.  -     }
  1052. 697.  -     val('feed_menu_toggler', on ? getLang('news_hide_menu') : getLang('news_show_menu'));
  1053. 698.  -     toggle(feedMenu, on);
  1054. 699.  -     if (on) {
  1055. 700.  -       addEvent(document, 'mousedown', function (e) {
  1056. 701.  -         var target = e.target;
  1057. 702.  -         while (target) {
  1058. 703.  -           if (hasClass(target, 'dd_menu_header')) {
  1059. 704.  -             return true;
  1060. 705.  -           }
  1061. 706.  -           target = target.parentNode;
  1062. 707.  -         }
  1063. 708.  -         Feed.toggleMenu(0);
  1064. 709.  -         removeEvent(document, 'mousedown', arguments.callee);
  1065. 710.  -       });
  1066. 711.  -     }
  1067. 712.  -   },
  1068. 713.  -   getSectionParams: function(section) {
  1069. 714.  -     var params = {section: section};
  1070. 715.  -     switch (section) {
  1071. 716.  -       case 'news':
  1072. 717.  -       case 'recommended':
  1073. 718.  -         if ((params.subsection = cur.subsections[section]) === undefined) {
  1074. 719.  -           delete params.subsection;
  1075. 720.  -         }
  1076. 721.  -         break;
  1077. 722.  -
  1078. 723.  -       case 'owner':
  1079. 724.  -         if (!(params.owner = cur.owner)) {
  1080. 725.  -           delete params.section;
  1081. 726.  -         }
  1082. 727.  -         break;
  1083. 728.  -
  1084. 729.  -       case 'source':
  1085. 730.  -         if (!(params.source = cur.source)) {
  1086. 731.  -           delete params.source;
  1087. 732.  -         }
  1088. 733.  -         break;
  1089. 734.  -
  1090. 735.  -       case 'list':
  1091. 736.  -         if (!(params.list = cur.list)) {
  1092. 737.  -           delete params.list;
  1093. 738.  -         }
  1094. 739.  -         break;
  1095. 740.  -
  1096. 741.  -       case 'notifications':
  1097. 742.  -         if (!(params.source = cur.source)) {
  1098. 743.  -           delete params.source;
  1099. 744.  -         }
  1100. 745.  -         break;
  1101. 746.  -
  1102. 747.  -       case 'articles':
  1103. 748.  -         params.percent = cur.periodPercent;
  1104. 749.  -         if ((params.subsection = cur.subsections[section]) === undefined) {
  1105. 750.  -           delete params.subsection;
  1106. 751.  -         }
  1107. 752.  -         break;
  1108. 753.  -
  1109. 754.  -       case 'search':
  1110. 755.  -       case 'photos_search':
  1111. 756.  -         if (!(params.q = trim(val('feed_search')))) {
  1112. 757.  -           delete params.section;
  1113. 758.  -         }
  1114. 759.  -         if (!(params.sort = intval(cur.searchSortMenu && cur.searchSortMenu.val()))) {
  1115. 760.  -           delete params.sort;
  1116. 761.  -         }
  1117. 762.  -         break;
  1118. 763.  -
  1119. 764.  -       case 'articles_search':
  1120. 765.  -         if (!(params.q = trim(val('feed_search')))) {
  1121. 766.  -           params.section = 'articles';
  1122. 767.  -         }
  1123. 768.  -         break;
  1124. 769.  -
  1125. 770.  -       case 'comments':
  1126. 771.  -         if (cur.reposts) {
  1127. 772.  -           params.reposts = cur.reposts;
  1128. 773.  -         }
  1129. 774.  -         break;
  1130. 775.  -
  1131. 776.  -       case 'mentions':
  1132. 777.  -         if (cur.mentionObj && cur.mentionObj != vk.id) {
  1133. 778.  -           params.obj = cur.mentionObj;
  1134. 779.  -         }
  1135. 780.  -         break;
  1136. 781.  -     }
  1137. 782.  -     debugLog(params, section);
  1138. 783.  -     return params;
  1139. 784.  -   },
  1140. 785.  -   switchSection: function(newSection, e) {
  1141. 786.  -     if (e && checkEvent(e)) {
  1142. 787.  -       return true;
  1143. 788.  -     }
  1144. 789.  -     if (newSection == 'search' && !trim(val('feed_search'))) {
  1145. 790.  -       if (cur.section != 'search') return false;
  1146. 791.  -       newSection = 'news';
  1147. 792.  -     }
  1148. 793.  -     if (newSection == 'photos_search' && !trim(val('feed_search'))) {
  1149. 794.  -       if (cur.section != 'photos_search') return false;
  1150. 795.  -       newSection = 'photos';
  1151. 796.  -     }
  1152. 797.  -     if (newSection == 'comments') {
  1153. 798.  -       cur.reposts = cur.options.reposts = '';
  1154. 799.  -     }
  1155. 800.  -     feed.setSection(newSection, 1);
  1156. 801.  -     var params = feed.getSectionParams(newSection || 'news');
  1157. 802.  -     delete cur.feedUpdateLoading;
  1158. 803.  -     delete cur.isFeedLoading;
  1159. 804.  -     nav.go(extend(params || {}, {'0': 'feed'}));
  1160. 805.  -     return false;
  1161. 806.  -   },
  1162. 807.  -   setSection: function (newSection, from) {
  1163. 808.  -     from = from || 0;
  1164. 809.  -     cur.prevSection = cur.section;
  1165. 810.  -     if (newSection == cur.section && from < 2 || !newSection) return;
  1166. 811.  -
  1167. 812.  -     var splitt = !!ge('feedtab_updates') || !ge('feedtab_news');
  1168. 813.  -
  1169. 814.  -     hide('feed_progress');
  1170. 815.  -
  1171. 816.  -     var feedBar = ge('feed_bar'),
  1172. 817.  -         curSection = cur.section,
  1173. 818.  -         curTopTab = 'news',
  1174. 819.  -         newTopTab = 'news',
  1175. 820.  -         curTab, newTab;
  1176. 821.  -
  1177. 822.  -     if (from >= 2 && newSection == cur.section) {
  1178. 823.  -       curSection = cur.prevSection || cur.section;
  1179. 824.  -     }
  1180. 825.  -     if (curSection == 'articles_search') {
  1181. 826.  -       curTab = 'articles';
  1182. 827.  -     } else if (curSection == 'photos_search') {
  1183. 828.  -       curTab = 'photos';
  1184. 829.  -     } else if (curSection == 'list') {
  1185. 830.  -       curTab = 'list' + (newSection == 'list' ? cur.prevList : cur.list);
  1186. 831.  -     } else {
  1187. 832.  -       curTab = curSection || '';
  1188. 833.  -     }
  1189. 834.  -
  1190. 835.  -     if (newSection == 'articles_search') {
  1191. 836.  -       newTab = 'articles';
  1192. 837.  -     } else if (newSection == 'photos_search') {
  1193. 838.  -       newTab = 'photos';
  1194. 839.  -     } else if (newSection == 'list') {
  1195. 840.  -       newTab = 'list' + cur.list;
  1196. 841.  -     } else {
  1197. 842.  -       newTab = newSection || '';
  1198. 843.  -     }
  1199. 844.  -
  1200. 845.  -     switch (cur.section) {
  1201. 846.  -       // case 'groups':
  1202. 847.  -       // case 'mentions':
  1203. 848.  -       // case 'articles':
  1204. 849.  -       // case 'articles_search':
  1205. 850.  -       //   curTopTab = 'custom';
  1206. 851.  -       //   break
  1207. 852.  -       case 'notifications':
  1208. 853.  -         curTopTab = 'notifications';
  1209. 854.  -         break;
  1210. 855.  -
  1211. 856.  -       case 'updates':
  1212. 857.  -         if (splitt) {
  1213. 858.  -           curTopTab = 'updates';
  1214. 859.  -           break;
  1215. 860.  -         }
  1216. 861.  -       case 'comments':
  1217. 862.  -         curTopTab = 'comments';
  1218. 863.  -         break;
  1219. 864.  -
  1220. 865.  -       case 'owner': curTopTab = 'owner'; break;
  1221. 866.  -       case 'source': curTopTab = 'source'; break;
  1222. 867.  -     }
  1223. 868.  -     switch (newSection) {
  1224. 869.  -       // case 'groups':
  1225. 870.  -       // case 'mentions':
  1226. 871.  -       // case 'articles':
  1227. 872.  -       // case 'articles_search':
  1228. 873.  -       //   newTopTab = 'custom';
  1229. 874.  -       //   break
  1230. 875.  -
  1231. 876.  -       case 'notifications':
  1232. 877.  -         newTopTab = 'notifications';
  1233. 878.  -         break;
  1234. 879.  -
  1235. 880.  -       case 'updates':
  1236. 881.  -         if (splitt) {
  1237. 882.  -           newTopTab = 'updates';
  1238. 883.  -           break;
  1239. 884.  -         }
  1240. 885.  -       case 'comments':
  1241. 886.  -         newTopTab = 'comments';
  1242. 887.  -         break;
  1243. 888.  -
  1244. 889.  -       case 'owner':
  1245. 890.  -         newTopTab = 'owner';
  1246. 891.  -         break;
  1247. 892.  -
  1248. 893.  -       case 'source':
  1249. 894.  -         newTopTab = 'source';
  1250. 895.  -         break;
  1251. 896.  -     }
  1252. 897.  -
  1253. 898.  -     var curTabEl = curTab && curTab != newTab && geByClass1('feed_tab_' + curTab, feedBar, 'div');
  1254. 899.  -         newTabEl = newTab && geByClass1('feed_tab_' + newTab, feedBar, 'div');
  1255. 900.  -
  1256. 901.  -     // debugLog('replace old', curTab, curTabEl, debugEl(curTabEl));
  1257. 902.  -     curTabEl && replaceClass(curTabEl, 'summary_tab_sel', 'summary_tab');
  1258. 903.  -
  1259. 904.  -     // debugLog('replace new', newTab, newTabEl, debugEl(newTabEl));
  1260. 905.  -     if (newTabEl) {
  1261. 906.  -       var tabLink = geByTag1('a', newTabEl),
  1262. 907.  -           tween = data(tabLink, 'tween');
  1263. 908.  -
  1264. 909.  -       if (tween && tween.isTweening) {
  1265. 910.  -         tween.stop(false);
  1266. 911.  -       }
  1267. 912.  -       tabLink.style.backgroundColor = '';
  1268. 913.  -       replaceClass(newTabEl, 'summary_tab', 'summary_tab_sel');
  1269. 914.  -     }
  1270. 915.  -
  1271. 916.  -     // debugLog(curTopTab, newTopTab, from);
  1272. 917.  -     if (curTopTab != newTopTab || from > 1) {
  1273. 918.  -       removeClass(ge('feedtab_' + curTopTab), 'active_link');
  1274. 919.  -       addClass(ge('feedtab_' + newTopTab), 'active_link');
  1275. 920.  -       if (from < 2) {
  1276. 921.  -         if (cur.section != 'owner') {
  1277. 922.  -           hide(feed.getTypesSection() + '_filters');
  1278. 923.  -         } else {
  1279. 924.  -           hide('person_filters', 'group_filters');
  1280. 925.  -         }
  1281. 926.  -         if (curTopTab == 'news' || cur.section == 'articles') {
  1282. 927.  -           hide('feed_rate_slider_wrap');
  1283. 928.  -         }
  1284. 929.  -         cur.section = newSection;
  1285. 930.  -         return;
  1286. 931.  -       }
  1287. 932.  -
  1288. 933.  -       toggle('feed_news_bar', newTopTab == 'news');
  1289. 934.  -       toggle('feed_comments_bar', newTopTab == 'comments');
  1290. 935.  -       toggle('feed_search_bar', inArray(newSection, ['articles_search', 'articles', 'notifications', 'search', 'photos_search', 'photos']));
  1291. 936.  -       if (splitt) {
  1292. 937.  -         toggle('feed_bar', newTopTab != 'updates' && newTopTab != 'notifications' && newTopTab != 'comments' && newTopTab != 'source');
  1293. 938.  -       } else {
  1294. 939.  -         toggle('feed_bar', newTopTab != 'source');
  1295. 940.  -       }
  1296. 941.  -
  1297. 942.  -       toggleClass('feed_bar', 'feed_bar_extended_search', newSection == 'search');
  1298. 943.  -     }
  1299. 944.  -
  1300. 945.  -     if (from > 1 && newSection.indexOf('search') == -1 && val('feed_search')) {
  1301. 946.  -       Feed.searchReset();
  1302. 947.  -     }
  1303. 948.  -
  1304. 949.  -     var oldFilters = ge(feed.getTypesSection() + '_filters');
  1305. 950.  -     cur.section = newSection;
  1306. 951.  -     if (from == 4) {
  1307. 952.  -       Feed.searchUpdate();
  1308. 953.  -       return;
  1309. 954.  -     }
  1310. 955.  -
  1311. 956.  -     if (cur.section != 'owner') {
  1312. 957.  -       hide(oldFilters);
  1313. 958.  -     } else {
  1314. 959.  -       hide('person_filters', 'group_filters');
  1315. 960.  -     }
  1316. 961.  -
  1317. 962.  -     var newFilters = ge(feed.getTypesSection() + '_filters');
  1318. 963.  -     if (newFilters) {
  1319. 964.  -       show(newFilters, 'feed_menu_toggle');
  1320. 965.  -     } else {
  1321. 966.  -       hide('feed_menu_toggle');
  1322. 967.  -     }
  1323. 968.  -     toggle('feed_edit_hidden', newSection == 'news' || newSection == 'photos');
  1324. 969.  -     toggle('feed_search_sort', inArray(newSection, ['search'/*, 'photos_search'*/]));
  1325. 970.  -     toggle('feed_period_select', newSection == 'articles' && cur.subsection == 'top');
  1326. 971.  -     toggle('feed_rate_slider_wrap', newSection == 'articles' && cur.subsection == 'top');
  1327. 972.  -
  1328. 973.  -     cur.editingHide = newSection == 'notifications' ? feed.notifyCheckHideReply : false;
  1329. 974.  -
  1330. 975.  -     if (inArray(newSection, ['search', 'photos_search']) && !cur.searchSortMenu) {
  1331. 976.  -       stManager.add(['ui_controls.js', 'ui_controls.css'], feed.initUi);
  1332. 977.  -     }
  1333. 978.  -   },
  1334. 979.  -   applyOptions: function(options, from) {
  1335. 980.  -     from = from || 0;
  1336. 981.  -     if (options.owner) {
  1337. 982.  -       cur.owner = options.owner;
  1338. 983.  -     }
  1339. 984.  -     cur.subsection = options.subsection || '';
  1340. 985.  -     feed.setSection(options.section, from);
  1341. 986.  -     if (!cur.options) cur.options = {reply_names: {}};
  1342. 987.  -     extend(cur.options.reply_names, options.reply_names);
  1343. 988.  -     delete options.reply_names;
  1344. 989.  -     extend(cur, options);
  1345. 990.  -
  1346. 991.  -     cur.subsections[cur.section] = cur.subsection;
  1347. 992.  -
  1348. 993.  -     if (options.loc && from == 2) {
  1349. 994.  -       nav.setLoc(options.loc);
  1350. 995.  -     }
  1351. 996.  -     if (options.summary) {
  1352. 997.  -       val('feed_summary', options.summary);
  1353. 998.  -     }
  1354. 999.  -     if (options.owner_name) {
  1355. 1000.  -       val(geByTag1('nobr', ge('feedtab_owner')), options.owner_name);
  1356. 1001.  -     }
  1357. 1002.  -     if (options.source_name) {
  1358. 1003.  -       val(geByTag1('nobr', ge('feedtab_source')), options.source_name);
  1359. 1004.  -     }
  1360. 1005.  -     if (options.htitle) {
  1361. 1006.  -       cur.feedInitialTitle = document.title = replaceEntities(stripHTML(options.htitle));
  1362. 1007.  -     }
  1363. 1008.  -     if (options.add_queue !== undefined && options.add_queue !== null) {
  1364. 1009.  -       if (from) {
  1365. 1010.  -         if (options.add_queue === true) {
  1366. 1011.  -           cur.add_queue = options.add_queue = false;
  1367. 1012.  -         }
  1368. 1013.  -         feed.getNewQKey(0);
  1369. 1014.  -       }
  1370. 1015.  -       if (cur.add_queue = options.add_queue) {
  1371. 1016.  -         setTimeout(feed.update.pbind(0), 0);
  1372. 1017.  -       }
  1373. 1018.  -     } else if (from && cur.section != 'search' && cur.section != 'news' && cur.section) {
  1374. 1019.  -       cur.add_queue = false;
  1375. 1020.  -     }
  1376. 1021.  -     if (options.q) {
  1377. 1022.  -       val('feed_search', replaceEntities(options.q));
  1378. 1023.  -       var query = options.q;
  1379. 1024.  -       if (query.length > 30) {
  1380. 1025.  -         query = trim(query.substr(0, 30)) + '...';
  1381. 1026.  -       }
  1382. 1027.  -     }
  1383. 1028.  -     Feed.searchUpdate();
  1384. 1029.  -     if (cur.section == 'comments' && !cur.reposts) {
  1385. 1030.  -       toggle('comments_filters', !cur.reposts);
  1386. 1031.  -     }
  1387. 1032.  -     if (cur.all_shown_text) {
  1388. 1033.  -       val('all_shown', cur.all_shown_text);
  1389. 1034.  -     }
  1390. 1035.  -     if (cur.empty_text) {
  1391. 1036.  -       val('feed_empty', cur.empty_text);
  1392. 1037.  -     }
  1393. 1038.  -     if (cur.percent !== undefined && cur.percent !== null) {
  1394. 1039.  -       feed.sliderUpdate(cur.percent, true);
  1395. 1040.  -       delete cur.percent;
  1396. 1041.  -     }
  1397. 1042.  -     if (cur.count >= 0) {
  1398. 1043.  -       re('feed_error_wrap');
  1399. 1044.  -     }
  1400. 1045.  -     var hasNews = geByClass1('feed_row', cur.rowsCont, 'div') || false,
  1401. 1046.  -         isEmpty = !hasNews,
  1402. 1047.  -         nextRows = ge('feed_rows_next');
  1403. 1048.  -
  1404. 1049.  -     if (isEmpty) {
  1405. 1050.  -       toggle('feed_empty', !isVisible('feed_error_wrap'));
  1406. 1051.  -       hide('all_shown');
  1407. 1052.  -       toggle('show_more_link', cur.count > 0 && !cur.all_shown);
  1408. 1053.  -     } else if (cur.all_shown && (!nextRows || !nextRows.firstChild)) {
  1409. 1054.  -       hide('feed_empty', 'show_more_link');
  1410. 1055.  -       show('all_shown');
  1411. 1056.  -       re(nextRows);
  1412. 1057.  -     } else {
  1413. 1058.  -       hide('feed_empty', 'all_shown');
  1414. 1059.  -       show('show_more_link');
  1415. 1060.  -     }
  1416. 1061.  -
  1417. 1062.  -     if (cur.section == 'notifications' && cur.notify) {
  1418. 1063.  -       var el = ge('feedback_row_' + cur.notify);
  1419. 1064.  -       if (el) {
  1420. 1065.  -         setTimeout(function () {el.onclick()}, browser.msie ? 100 : 0);
  1421. 1066.  -         delete cur.notify;
  1422. 1067.  -       }
  1423. 1068.  -     }
  1424. 1069.  -     Feed.applyUi();
  1425. 1070.  -   },
  1426. 1071.  -   showMore: function() {
  1427. 1072.  -     if (cur.isFeedLoading) return;
  1428. 1073.  -     cur.disableAutoMore = false;
  1429. 1074.  -     var nextRows = ge('feed_rows_next');
  1430. 1075.  -     if (nextRows) {
  1431. 1076.  -       if (nextRows.firstChild) {
  1432. 1077.  -         while (nextRows.firstChild) {
  1433. 1078.  -           cur.rowsCont.insertBefore(nextRows.firstChild, nextRows);
  1434. 1079.  -         }
  1435. 1080.  -       }
  1436. 1081.  -       re(nextRows);
  1437. 1082.  -     }
  1438. 1083.  -     if (cur.all_shown) {
  1439. 1084.  -       hide('show_more_link');
  1440. 1085.  -       show('all_shown');
  1441. 1086.  -     }
  1442. 1087.  -     hide('show_more');
  1443. 1088.  -     show('show_more_progress');
  1444. 1089.  -     var escPressed = false;
  1445. 1090.  -     var tmp = function (e) { if (e.keyCode == KEY.ESC) { escPressed = true; } };
  1446. 1091.  -     addEvent(document, 'keyup', tmp);
  1447. 1092.  -     var params = feed.getSectionParams(cur.section || 'news');
  1448. 1093.  -     extend(params, {offset: cur.offset, from: cur.from, part: 1, more: 1});
  1449. 1094.  -     ajax.post('al_feed.php?sm_' + cur.section, params, {
  1450. 1095.  -       onDone: function (options, rows) {
  1451. 1096.  -         removeEvent(document, 'keyup', tmp);
  1452. 1097.  -         if (escPressed) {
  1453. 1098.  -           show('show_more');
  1454. 1099.  -           hide('show_more_progress');
  1455. 1100.  -           cur.disableAutoMore = true;
  1456. 1101.  -           return;
  1457. 1102.  -         }
  1458. 1103.  -         if (rows) {
  1459. 1104.  -           var au = ce('div'), row;
  1460. 1105.  -           au.innerHTML = rows;
  1461. 1106.  -           while (row = au.firstChild) {
  1462. 1107.  -             if (!row.firstChild || !row.firstChild.id || ge(row.firstChild.id)) {
  1463. 1108.  -               if (row.className != 'feed_row_fb_hider' && row.className != 'feed_row_fb_hidden') {
  1464. 1109.  -                 au.removeChild(row);
  1465. 1110.  -                 continue;
  1466. 1111.  -               }
  1467. 1112.  -             }
  1468. 1113.  -             cur.rowsCont.appendChild(row);
  1469. 1114.  -           }
  1470. 1115.  -         }
  1471. 1116.  -         show('show_more');
  1472. 1117.  -         hide('show_more_progress');
  1473. 1118.  -         feed.applyOptions(options);
  1474. 1119.  -         setTimeout(feed.scrollCheck, 200);
  1475. 1120.  -       },
  1476. 1121.  -       showProgress: function () {
  1477. 1122.  -         cur.isFeedLoading = true;
  1478. 1123.  -       },
  1479. 1124.  -       hideProgress: function () {
  1480. 1125.  -         cur.isFeedLoading = false;
  1481. 1126.  -       },
  1482. 1127.  -       cache: 1
  1483. 1128.  -     });
  1484. 1129.  -   },
  1485. 1130.  -   getTypesSection: function () {
  1486. 1131.  -     switch (cur.section) {
  1487. 1132.  -       case 'owner':
  1488. 1133.  -         return (cur.owner > 0 ? 'person' : 'group');
  1489. 1134.  -
  1490. 1135.  -       default:
  1491. 1136.  -         return cur.section;
  1492. 1137.  -     }
  1493. 1138.  -   },
  1494. 1139.  -   checkTabsFilter: function (option, option_id) {
  1495. 1140.  -     switch (option) {
  1496. 1141.  -       case 'news': return false;
  1497. 1142.  -       case 'newlist': return Feed.addList();
  1498. 1143.  -       default:
  1499. 1144.  -         if (listMatches = option.match(/list(\d+)/)) {
  1500. 1145.  -           return Feed.editList(listMatches[1]);
  1501. 1146.  -         }
  1502. 1147.  -     }
  1503. 1148.  -
  1504. 1149.  -     var cont = ge('tabs_type_filter'),
  1505. 1150.  -         filter_row = ge('filter_' + option_id),
  1506. 1151.  -         my_types = cur.my_feed_types.tabs,
  1507. 1152.  -         types = cur.feed_types.tabs,
  1508. 1153.  -         found, pos, listMatches;
  1509. 1154.  -
  1510. 1155.  -     found = (pos = indexOf(my_types, option)) != -1;
  1511. 1156.  -     toggleClass(filter_row, 'checked', !found);
  1512. 1157.  -     if (found) {
  1513. 1158.  -       my_types.splice(pos, 1);
  1514. 1159.  -       if (cur.section == option) {
  1515. 1160.  -         feed.switchSection('news');
  1516. 1161.  -       }
  1517. 1162.  -     } else {
  1518. 1163.  -       my_types.push(option);
  1519. 1164.  -     }
  1520. 1165.  -
  1521. 1166.  -     // Feed.toggleTabsMenu(0);
  1522. 1167.  -     cur.my_feed_types.tabs = my_types;
  1523. 1168.  -     var tabEl = geByClass1('feed_tab_' + option, ge('feed_news_bar'))
  1524. 1169.  -         tabLink = geByTag1('a', tabEl),
  1525. 1170.  -         vis = isVisible(tabEl);
  1526. 1171.  -     toggleClass(tabEl, 'feed_tab_hidden', found);
  1527. 1172.  -     var onComplete = function () {
  1528. 1173.  -       debugLog('oncomplete ', tabEl);
  1529. 1174.  -       tabLink.style.backgroundColor = '';
  1530. 1175.  -     };
  1531. 1176.  -     if (!vis && !found) {
  1532. 1177.  -       setStyle(tabLink, {backgroundColor: '#E1E7ED'});
  1533. 1178.  -       debugLog('animate ', tabEl);
  1534. 1179.  -       animate(tabLink, {backgroundColor: '#F7F7F7'}, 1000, onComplete);
  1535. 1180.  -       tabLink.oncompleteTO = setTimeout(onComplete, 1000);
  1536. 1181.  -     } else {
  1537. 1182.  -       onComplete();
  1538. 1183.  -     }
  1539. 1184.  -     clearTimeout(cur.saveTabsTO);
  1540. 1185.  -     cur.saveTabsTO = setTimeout(Feed.saveTabs, 500);
  1541. 1186.  -   },
  1542. 1187.  -   checkFilter: function(option, option_id) {
  1543. 1188.  -     var typesSection = feed.getTypesSection(),
  1544. 1189.  -         cont = ge(typesSection + '_type_filter'),
  1545. 1190.  -         filter_row = ge('filter_' + option_id),
  1546. 1191.  -         my_types = cur.my_feed_types[typesSection],
  1547. 1192.  -         types = cur.feed_types[typesSection],
  1548. 1193.  -         found, pos;
  1549. 1194.  -
  1550. 1195.  -     if (my_types === true) {
  1551. 1196.  -       my_types = clone(cur.feed_types[typesSection]);
  1552. 1197.  -     }
  1553. 1198.  -     // debugLog(typesSection, cont, filter_row, my_types, types);
  1554. 1199.  -     found = (pos = indexOf(my_types, option)) != -1;
  1555. 1200.  -     if (found) {
  1556. 1201.  -       my_types.splice(pos, 1);
  1557. 1202.  -       removeClass(filter_row, 'checked');
  1558. 1203.  -     } else {
  1559. 1204.  -       my_types.push(option);
  1560. 1205.  -       if (my_types.length == types.length) {
  1561. 1206.  -         my_types = true;
  1562. 1207.  -       }
  1563. 1208.  -       addClass(filter_row, 'checked');
  1564. 1209.  -     }
  1565. 1210.  -
  1566. 1211.  -     cur.my_feed_types[typesSection] = my_types;
  1567. 1212.  -     feed.updateTypesCookie();
  1568. 1213.  -     feed.switchSection(cur.section);
  1569. 1214.  -   },
  1570. 1215.  -   setFilter: function (option, option_id) {
  1571. 1216.  -     var typesSection = feed.getTypesSection(),
  1572. 1217.  -         cont = ge(typesSection + '_type_filter'),
  1573. 1218.  -         filter_row = ge('filter_' + option_id),
  1574. 1219.  -         my_types = cur.my_feed_types[typesSection],
  1575. 1220.  -         types = cur.feed_types[typesSection],
  1576. 1221.  -         pos,
  1577. 1222.  -         all_unchecked = true;
  1578. 1223.  -
  1579. 1224.  -     each (geByClass('checked', cont, 'div'), function () {
  1580. 1225.  -       if (this != filter_row) return (all_unchecked = false);
  1581. 1226.  -     });
  1582. 1227.  -     if (all_unchecked) {
  1583. 1228.  -       cur.my_feed_types[typesSection] = true;
  1584. 1229.  -       each(geByClass('feed_filter_row', cont, 'div'), function () {
  1585. 1230.  -         addClass(this, 'checked');
  1586. 1231.  -       });
  1587. 1232.  -     } else {
  1588. 1233.  -       each([].slice.apply(geByClass('checked', cont, 'div')), function () {
  1589. 1234.  -         removeClass(this, 'checked');
  1590. 1235.  -       });
  1591. 1236.  -       cur.my_feed_types[typesSection] = [option];
  1592. 1237.  -       addClass(filter_row, 'checked');
  1593. 1238.  -     }
  1594. 1239.  -
  1595. 1240.  -     feed.updateTypesCookie();
  1596. 1241.  -     feed.switchSection(cur.section);
  1597. 1242.  -   },
  1598. 1243.  -   updateTypesCookie: function () {
  1599. 1244.  -     var new_cookie = [];
  1600. 1245.  -     each(cur.my_feed_types, function (section, types) {
  1601. 1246.  -       if (section == 'tabs') return;
  1602. 1247.  -       new_cookie.push(
  1603. 1248.  -         types === true ? '*' : types.join(',')
  1604. 1249.  -       );
  1605. 1250.  -     });
  1606. 1251.  -     setCookie('remixfeed', new_cookie.join('.'), 365);
  1607. 1252.  -   },
  1608. 1253.  -   flistToggleReposts: function (value, hash) {
  1609. 1254.  -     ajax.post('al_feed.php', {act: 'a_toggle_reposts', value: value, hash: hash}, {
  1610. 1255.  -       onDone: function () {
  1611. 1256.  -         feed.getNewQKey(0);
  1612. 1257.  -       }
  1613. 1258.  -     });
  1614. 1259.  -   },
  1615. 1260.  -   switchPhotos: function (loc, el, event) {
  1616. 1261.  -     if (wall.checkPostClick(el, event)) {
  1617. 1262.  -       return nav.go(loc, event);
  1618. 1263.  -     }
  1619. 1264.  -   },
  1620. 1265.  -   switchOwner: function (owner_id, owner_name, el, event) {
  1621. 1266.  -     if (el && event && !wall.checkPostClick(el, event)) return;
  1622. 1267.  -     var ownerLabel = geByTag1('nobr', ge('feedtab_owner')),
  1623. 1268.  -         loadCb = inArray(cur.section, ['comments', 'photos']) ? false : feed.onLocalTabLoad;
  1624. 1269.  -     val(ownerLabel, owner_name);
  1625. 1270.  -     cur.owner = owner_id;
  1626. 1271.  -     feed.setSection('owner', 1);
  1627. 1272.  -     feed.go(feed.getSectionParams(cur.section), loadCb);
  1628. 1273.  -   },
  1629. 1274.  -   switchSearch: function () {
  1630. 1275.  -     Feed.setSection('search', 4);
  1631. 1276.  -     Feed.searchToggleExtended(true);
  1632. 1277.  -     setTimeout(elfocus.pbind('feed_search'), 10);
  1633. 1278.  -   },
  1634. 1279.  -   switchList: function (list_id) {
  1635. 1280.  -     cur.prevList = cur.list;
  1636. 1281.  -     cur.list = list_id;
  1637. 1282.  -     feed.setSection('list', 1);
  1638. 1283.  -     feed.go(feed.getSectionParams(cur.section));
  1639. 1284.  -   },
  1640. 1285.  -   submitSearch: function (query, section) {
  1641. 1286.  -     if (query === undefined) {
  1642. 1287.  -       query = trim(val('feed_search'));
  1643. 1288.  -     } else {
  1644. 1289.  -       val('feed_search', query);
  1645. 1290.  -       Feed.searchUpdate();
  1646. 1291.  -     }
  1647. 1292.  -     var section = (section === undefined ? cur.section : section) || '',
  1648. 1293.  -         switchTo = 'search',
  1649. 1294.  -         switchToBad = 'news';
  1650. 1295.  -     if (!section.indexOf('articles')) {
  1651. 1296.  -       switchTo = 'articles_search';
  1652. 1297.  -       switchToBad = 'articles';
  1653. 1298.  -     } else if (!section.indexOf('photos')) {
  1654. 1299.  -       switchTo = 'photos_search';
  1655. 1300.  -       switchToBad = 'photos';
  1656. 1301.  -     }
  1657. 1302.  -     if (!query) {
  1658. 1303.  -       feed.switchSection(switchToBad);
  1659. 1304.  -       return;
  1660. 1305.  -     }
  1661. 1306.  -     var loadCb = false; // inArray(cur.section, ['comments', 'photos', 'search', 'articles_search']) ? false : feed.onLocalTabLoad;
  1662. 1307.  -     feed.setSection(switchTo, 1);
  1663. 1308.  -     feed.go(feed.getSectionParams(cur.section), loadCb);
  1664. 1309.  -   },
  1665. 1310.  -   onLocalTabLoad: function (content) {
  1666. 1311.  -     // debugLog('local tab load', content);
  1667. 1312.  -     if (window.wall) wall.cancelEdit();
  1668. 1313.  -     var _back = cur._back, wNode = cur.rowsCont, cur_loc = hab.getLoc();
  1669. 1314.  -     var newW = ce('div', {id: 'feed_rows', innerHTML: content}), st = scrollGetY();
  1670. 1315.  -     cur._back_local = {
  1671. 1316.  -       content: wNode.parentNode.replaceChild(newW, wNode),
  1672. 1317.  -       section: cur.prevSection || cur.section || 'news',
  1673. 1318.  -       subsection: cur.subsection,
  1674. 1319.  -       percent: cur.percent,
  1675. 1320.  -       owner: cur.owner,
  1676. 1321.  -       source: cur.source,
  1677. 1322.  -       q: cur.q,
  1678. 1323.  -       reposts: cur.reposts,
  1679. 1324.  -       add_queue: cur.add_queue,
  1680. 1325.  -       loc: cur_loc,
  1681. 1326.  -       scrollTop: st,
  1682. 1327.  -       back: (window._tbLink && _tbLink.loc) ? [_tbLink.loc, val(_tbLink), _tbLink.fast] : false,
  1683. 1328.  -       count: cur.count,
  1684. 1329.  -       offset: cur.offset,
  1685. 1330.  -       from: cur.from,
  1686. 1331.  -       timestamp: cur.timestamp,
  1687. 1332.  -       summary: cur.summary,
  1688. 1333.  -       // options: cur.options,
  1689. 1334.  -       all_shown: cur.all_shown,
  1690. 1335.  -       all_shown_text: cur.all_shown_text,
  1691. 1336.  -       empty_text: cur.empty_text,
  1692. 1337.  -       htitle: cur.feedInitialTitle
  1693. 1338.  -     };
  1694. 1339.  -     cur.rowsCont = newW;
  1695. 1340.  -     // cur.options = {};
  1696. 1341.  -     scrollToY(0, 0);
  1697. 1342.  -     showBackLink(cur._back_local.loc, getLang('news_return_to_news'), true);
  1698. 1343.  -   },
  1699. 1344.  -   returnToFeed: function (params, back) {
  1700. 1345.  -     if (!cur._back_local) {
  1701. 1346.  -       return true;
  1702. 1347.  -     }
  1703. 1348.  -
  1704. 1349.  -     var hist = cur._back_local;
  1705. 1350.  -     if (params !== false) {
  1706. 1351.  -       var next_section = params.section || 'news';
  1707. 1352.  -       if (hist.section != next_section) {
  1708. 1353.  -         return true;
  1709. 1354.  -       }
  1710. 1355.  -     } else {
  1711. 1356.  -       params = {section: hist.section};
  1712. 1357.  -     }
  1713. 1358.  -     setTimeout(function() {
  1714. 1359.  -       cur._back_local = false;
  1715. 1360.  -       var _back = cur._back, wNode = cur.rowsCont;
  1716. 1361.  -       cur.rowsCont = wNode.parentNode.replaceChild(hist.content, wNode);
  1717. 1362.  -       feed.applyOptions({
  1718. 1363.  -         section: hist.section,
  1719. 1364.  -         subsection: hist.subsection,
  1720. 1365.  -         percent: hist.percent,
  1721. 1366.  -         owner: hist.owner,
  1722. 1367.  -         source: hist.source,
  1723. 1368.  -         q: hist.q,
  1724. 1369.  -         reposts: hist.reposts,
  1725. 1370.  -         add_queue: hist.add_queue,
  1726. 1371.  -         count: hist.count,
  1727. 1372.  -         offset: hist.offset,
  1728. 1373.  -         from: hist.from,
  1729. 1374.  -         timestamp: hist.timestamp,
  1730. 1375.  -         options: hist.options,
  1731. 1376.  -         all_shown: hist.all_shown,
  1732. 1377.  -         all_shown_text: hist.all_shown_text,
  1733. 1378.  -         empty_text: hist.empty_text,
  1734. 1379.  -         htitle: hist.htitle,
  1735. 1380.  -         summary: hist.summary
  1736. 1381.  -       }, 3);
  1737. 1382.  -       if (hist.back) {
  1738. 1383.  -         showBackLink(hist.back[0], hist.back[1], hist.back[2]);
  1739. 1384.  -       } else {
  1740. 1385.  -         showBackLink(false);
  1741. 1386.  -       }
  1742. 1387.  -       nav.setLoc(hist.loc);
  1743. 1388.  -       if (back) {
  1744. 1389.  -         scrollToY(hist.scrollTop, 0);
  1745. 1390.  -       } else {
  1746. 1391.  -         scrollToY(0, 0);
  1747. 1392.  -         feed.go(params);
  1748. 1393.  -       }
  1749. 1394.  -     }, 10);
  1750. 1395.  -     return false;
  1751. 1396.  -   },
  1752. 1397.  -   notifyShowEditReply: function (item, opts) {
  1753. 1398.  -     if (cur.editing && cur.notifyReplyData && cur.notifyReplyData[cur.editing].disabled) {
  1754. 1399.  -       feed.notifyCheckHideReply(cur.editing, (window.event || {}).target);
  1755. 1400.  -     }
  1756. 1401.  -     var replyWrap = ge(item + '_reply_wrap');
  1757. 1402.  -     if (replyWrap) {
  1758. 1403.  -       if (isVisible(replyWrap)) {
  1759. 1404.  -         feed.notifyCheckHideReply(item, false);
  1760. 1405.  -       } else {
  1761. 1406.  -         show(replyWrap);
  1762. 1407.  -         removeClass(ge('feedback_row_' + item).parentNode, 'feedback_row_clickable');
  1763. 1408.  -         if (opts.disabled) {
  1764. 1409.  -           setTimeout(function() { cur.editing = item; }, 0);
  1765. 1410.  -         } else {
  1766. 1411.  -           val(item + '_field', opts.greet);
  1767. 1412.  -           var ta = ge(item + '_field');
  1768. 1413.  -           ta && ta.autosize && ta.autosize.update();
  1769. 1414.  -           setTimeout(elfocus.pbind(item + '_field'), 0);
  1770. 1415.  -         }
  1771. 1416.  -         feed.notifyRowOver(item, 0);
  1772. 1417.  -       }
  1773. 1418.  -       return;
  1774. 1419.  -     }
  1775. 1420.  -
  1776. 1421.  -     var itemEl = ge('feedback_row_' + item),
  1777. 1422.  -         acts = '',
  1778. 1423.  -         repl = {
  1779. 1424.  -           hint: opts.hint || '',
  1780. 1425.  -           bighint: opts.bighint || '',
  1781. 1426.  -           placeholder: opts.ph,
  1782. 1427.  -           submit: opts.btn,
  1783. 1428.  -           greeting: opts.greet,
  1784. 1429.  -           item: item
  1785. 1430.  -         };
  1786. 1431.  -
  1787. 1432.  -     removeClass(itemEl.parentNode, 'feedback_row_clickable');
  1788. 1433.  -
  1789. 1434.  -     if (cur.notifyReplyData === undefined) {
  1790. 1435.  -       cur.notifyReplyData = {};
  1791. 1436.  -     }
  1792. 1437.  -     cur.notifyReplyData[item] = opts;
  1793. 1438.  -     if (opts.disabled) {
  1794. 1439.  -       itemEl.parentNode.appendChild(se(rs(cur.options.feedback_dis, {item: item, text: opts.disabled})));
  1795. 1440.  -       setTimeout(function() { cur.editing = item; }, 0);
  1796. 1441.  -     } else {
  1797. 1442.  -       itemEl.parentNode.appendChild(se(rs(cur.options.feedback_form, repl)));
  1798. 1443.  -       var ta = ge(item + '_field');
  1799. 1444.  -       ta.onfocus = function () {cur.editing = item};
  1800. 1445.  -       autosizeSetup(ta, {minHeight: 31});
  1801. 1446.  -       setTimeout(elfocus.pbind(ta), 0);
  1802. 1447.  -       Wall.initComposer(ta, {
  1803. 1448.  -         lang: {
  1804. 1449.  -           introText: getLang('profile_mention_start_typing'),
  1805. 1450.  -           noResult: getLang('profile_mention_not_found')
  1806. 1451.  -         }
  1807. 1452.  -       });
  1808. 1453.  -     }
  1809. 1454.  -     feed.notifyRowOver(item, 0);
  1810. 1455.  -   },
  1811. 1456.  -   onNotifyReplySubmit: function (item, e) {
  1812. 1457.  -     var rf = ge(item + '_field');
  1813. 1458.  -     if (e.keyCode == KEY.RETURN || e.keyCode == 10) {
  1814. 1459.  -       var composer = data(rf, 'composer'),
  1815. 1460.  -           isListVisible = composer && composer.wdd && composer.wdd.listWrap && isVisible(composer.wdd.listWrap);
  1816. 1461.  -
  1817. 1462.  -       if (cur.wallTpl.reply_multiline && (e.ctrlKey || browser.mac && e.metaKey) ||
  1818. 1463.  -           !cur.wallTpl.reply_multiline && !e.shiftKey && !(e.ctrlKey || browser.mac && e.metaKey) && !isListVisible) {
  1819. 1464.  -         feed.notifySendReply(item);
  1820. 1465.  -         return cancelEvent(e);
  1821. 1466.  -       }
  1822. 1467.  -     }
  1823. 1468.  -     if (e.ctrlKey && e.keyCode == KEY.RETURN) {
  1824. 1469.  -       var v = val(rf),
  1825. 1470.  -           pos = Composer.getCursorPosition(rf);
  1826. 1471.  -
  1827. 1472.  -       val(rf, v.substr(0, pos) + "\n" + v.substr(pos));
  1828. 1473.  -       elfocus(rf, pos + 1, pos + 1);
  1829. 1474.  -
  1830. 1475.  -       rf.autosize.update();
  1831. 1476.  -       setTimeout(function () {
  1832. 1477.  -         rf.autosize.update();
  1833. 1478.  -       }, 0);
  1834. 1479.  -       return cancelEvent(e);
  1835. 1480.  -     }
  1836. 1481.  -   },
  1837. 1482.  -   notifySendReply: function (item) {
  1838. 1483.  -     var opts = cur.notifyReplyData[item];
  1839. 1484.  -     if (!opts || opts.sending) return;
  1840. 1485.  -
  1841. 1486.  -     var ta = ge(item + '_field'),
  1842. 1487.  -         btn = ge(item + '_btn'),
  1843. 1488.  -       params = {
  1844. 1489.  -       act: 'post',
  1845. 1490.  -       message: trim(val(ta)),
  1846. 1491.  -       from: 'feedback',
  1847. 1492.  -       item: item
  1848. 1493.  -     };
  1849. 1494.  -     extend(params, opts.params || {});
  1850. 1495.  -     if (!params.message || opts.greet && !opts.greet.indexOf(params.message)) {
  1851. 1496.  -       notaBene(ta);
  1852. 1497.  -       return;
  1853. 1498.  -     }
  1854. 1499.  -     opts.sending = 1;
  1855. 1500.  -     ajax.post('al_wall.php', params, {
  1856. 1501.  -       onDone: function (text, answer) {
  1857. 1502.  -         delete opts.sending;
  1858. 1503.  -         feed.notifyHideReply(item);
  1859. 1504.  -         if (answer) {
  1860. 1505.  -           var answerWrap = ge(item + '_answer_wrap');
  1861. 1506.  -           val(answerWrap, answer);
  1862. 1507.  -           show(answerWrap);
  1863. 1508.  -         } else if (text) {
  1864. 1509.  -           showDoneBox(text);
  1865. 1510.  -         }
  1866. 1511.  -       },
  1867. 1512.  -       onFail: function () {
  1868. 1513.  -         delete opts.sending;
  1869. 1514.  -       },
  1870. 1515.  -       showProgress: lockButton.pbind(btn),
  1871. 1516.  -       hideProgress: unlockButton.pbind(btn)
  1872. 1517.  -     });
  1873. 1518.  -   },
  1874. 1519.  -   notifyCheckHideReply: function (item, target) {
  1875. 1520.  -     var opts = cur.notifyReplyData[item],
  1876. 1521.  -         toggled = target === false;
  1877. 1522.  -     if (!opts || opts.sending || !isVisible(item + '_reply_wrap')) return;
  1878. 1523.  -
  1879. 1524.  -     var i = 8, foundGood = false;
  1880. 1525.  -     do {
  1881. 1526.  -       if (!target || (foundGood = (target.id == (item + '_reply_wrap') || target.id == ('feedback_row_' + item)))) {
  1882. 1527.  -         break;
  1883. 1528.  -       }
  1884. 1529.  -     } while (i-- && (target = target.parentNode));
  1885. 1530.  -     if (foundGood) {
  1886. 1531.  -       return;
  1887. 1532.  -     }
  1888. 1533.  -     cur.editing = false;
  1889. 1534.  -     if (!opts.disabled) {
  1890. 1535.  -       var ta = ge(item + '_field'), msg = trim(val(ta));
  1891. 1536.  -       if (msg && !opts.greet || opts.greet.indexOf(msg)) {
  1892. 1537.  -         return;
  1893. 1538.  -       }
  1894. 1539.  -     }
  1895. 1540.  -     feed.notifyHideReply(item, toggled);
  1896. 1541.  -   },
  1897. 1542.  -   notifyHideReply: function (item, toggled) {
  1898. 1543.  -     if (cur.editing == item) {
  1899. 1544.  -       cur.editing = false;
  1900. 1545.  -     }
  1901. 1546.  -     addClass(ge('feedback_row_' + item).parentNode, 'feedback_row_clickable');
  1902. 1547.  -     hide(item + '_reply_wrap');
  1903. 1548.  -     if (toggled) {
  1904. 1549.  -       feed.notifyRowOver(item, 1);
  1905. 1550.  -     }
  1906. 1551.  -   },
  1907. 1552.  -
  1908. 1553.  -   notifyRowOver: function (item, state) {
  1909. 1554.  -     var el = ge('feedback_row_' + item).parentNode,
  1910. 1555.  -         prevRow = el.parentNode.previousSibling,
  1911. 1556.  -         over = 2,
  1912. 1557.  -         likeEl;
  1913. 1558.  -
  1914. 1559.  -     while (prevRow && prevRow.nodeType == 3) { // skipping text nodes
  1915. 1560.  -       prevRow = prevRow.previousSibling;
  1916. 1561.  -     }
  1917. 1562.  -
  1918. 1563.  -     if (state && hasClass(el, 'feedback_row_clickable')) {
  1919. 1564.  -       if (prevRow && prevRow.className == 'feed_row' && isVisible(geByClass1('feedback_reply_row_wrap', prevRow, 'div'))) {
  1920. 1565.  -         over = 2;
  1921. 1566.  -       } else if (!prevRow) {
  1922. 1567.  -         over = 3;
  1923. 1568.  -       }
  1924. 1569.  -       addClass(el, 'feedback_row_clickable_over' + over);
  1925. 1570.  -       addClass(el, 'feedback_row_clickable_over');
  1926. 1571.  -     } else {
  1927. 1572.  -       removeClass(el, 'feedback_row_clickable_over1');
  1928. 1573.  -       removeClass(el, 'feedback_row_clickable_over2');
  1929. 1574.  -       removeClass(el, 'feedback_row_clickable_over3');
  1930. 1575.  -       removeClass(el, 'feedback_row_clickable_over');
  1931. 1576.  -       if (likeEl = geByTag1('div', geByClass1('like_wrap', ge(el), 'div'))) {
  1932. 1577.  -         var to = data(likeEl, 'likeoutTO'), tween = data(likeEl, 'tween');
  1933. 1578.  -         to && clearTimeout(to);
  1934. 1579.  -         tween && tween.stop(true);
  1935. 1580.  -         setStyle(likeEl, {display: '', opacity: ''});
  1936. 1581.  -       }
  1937. 1582.  -     }
  1938. 1583.  -   },
  1939. 1584.  -   expandAppend: function(item, cont, data, right, onlyClient) {
  1940. 1585.  -     var langs = ['', val('fbgr_' + item + '_1'), val('fbgr_' + item + '_2')];
  1941. 1586.  -     if (data.date) {
  1942. 1587.  -       if (ge('feedback_grouped_' + item + '_' + data.mid)) {
  1943. 1588.  -         val(geByClass1('feedback_row_date', ge('feedback_grouped_' + item + '_' + data.mid)), data.date);
  1944. 1589.  -         return;
  1945. 1590.  -       }
  1946. 1591.  -       if (ge('feedback_grouped_' + item).getAttribute('data-mid') == data.mid) {
  1947. 1592.  -         return;
  1948. 1593.  -       }
  1949. 1594.  -     }
  1950. 1595.  -     if (onlyClient) return;
  1951. 1596.  -     cont.appendChild(domFC(ce('div', {innerHTML: '\
  1952. 1597.  - <div class="feedback_grouped_row_wrap" id="feedback_grouped_' + item + '_' + data.mid + '" data-mid="' + data.mid + '" data-sex="' + data.sex + '"' + (data.date ? '' : ' data-auto="1"') + '>\
  1953. 1598.  -   <div class="feedback_grouped_row">\
  1954. 1599.  -     <table class="feedback_row_t" cellpadding="0" cellspacing="0">\
  1955. 1600.  -       <tr>\
  1956. 1601.  -         <td class="feedback_row_photo">\
  1957. 1602.  -           <div class="feedback_row_photo" onclick="event.cancelBubble = true;">\
  1958. 1603.  -             <a class="feedback_row_photo_lnk" href="' + data.href + '" onclick="return nav.go(this, event);">\
  1959. 1604.  -               <img class="feedback_row_photo" src="' + data.img + '" />\
  1960. 1605.  -             </a>\
  1961. 1606.  -           </div>\
  1962. 1607.  -         </td>\
  1963. 1608.  -         <td class="feedback_row_content">\
  1964. 1609.  -           <div class="feedback_row_group_names">' + langSex(data.sex, langs).replace('{names}', data.lnk) + '</div>\
  1965. 1610.  -           <div class="feedback_row_group_photos clear_fix"></div>\
  1966. 1611.  -           <div class="feedback_row_date">' + (data.date || '&nbsp;') + '</div>\
  1967. 1612.  -         </td>\
  1968. 1613.  -         ' + right + '\
  1969. 1614.  -       </tr>\
  1970. 1615.  -     </table>\
  1971. 1616.  -   </div>\
  1972. 1617.  - </div>'})));
  1973. 1618.  -   },
  1974. 1619.  -   expanded: function(item, data, onlyClient) {
  1975. 1620.  -     var el = ge('feedback_grouped_' + item);
  1976. 1621.  -     if (!el) return;
  1977. 1622.  -
  1978. 1623.  -     var phs = geByClass1('feedback_row_group_photos', el), tmp = ce('div');
  1979. 1624.  -     if (domFC(phs)) return;
  1980. 1625.  -
  1981. 1626.  -     var exp = domNS(domPN(el));
  1982. 1627.  -     if (!hasClass(exp, 'feed_row_fb_expanded')) return;
  1983. 1628.  -
  1984. 1629.  -     var cls = geByClass1('feedback_row_t', el).rows[0].cells,
  1985. 1630.  -         right = (cls.length > 2) ? '<td class="' + cls[2].className + '">' + val(cls[2]) + '</td>' : '';
  1986. 1631.  -     for (var i in data) {
  1987. 1632.  -       feed.expandAppend(item, exp, data[i], right, onlyClient);
  1988. 1633.  -     }
  1989. 1634.  -   },
  1990. 1635.  -   expand: function(ev, item) {
  1991. 1636.  -     ev = ev || window.event;
  1992. 1637.  -     if (checkEvent(ev) || ev && ev.target && hasClass(ev.target, 'mem_link')) return;
  1993. 1638.  -
  1994. 1639.  -     var el = ge('feedback_grouped_' + item);
  1995. 1640.  -     if (!el) return;
  1996. 1641.  -
  1997. 1642.  -     var phs = geByClass1('feedback_row_group_photos', el), tmp = ce('div'), thumbs = !!domFC(phs);
  1998. 1643.  -     if (thumbs) {
  1999. 1644.  -       var exp = ce('div', {className: 'feed_row_fb_expanded'}),
  2000. 1645.  -           langs = ['', val('fbgr_' + item + '_1'), val('fbgr_' + item + '_2')],
  2001. 1646.  -           cls = geByClass1('feedback_row_t', el).rows[0].cells,
  2002. 1647.  -           right = (cls.length > 2) ? '<td class="' + cls[2].className + '">' + val(cls[2]) + '</td>' : '';
  2003. 1648.  -       domPN(domPN(el)).insertBefore(exp, domNS(domPN(el)));
  2004. 1649.  -       for (var e = domFC(phs); e; e = domFC(phs)) {
  2005. 1650.  -         if (hasClass(e, 'feedback_group_photo_wrap')) {
  2006. 1651.  -           var mid = e.getAttribute('data-mid'),
  2007. 1652.  -               sex = e.getAttribute('data-sex'),
  2008. 1653.  -               a = geByClass1('feedback_group_photo', e),
  2009. 1654.  -               name = (a || {}).title || 'DELETED',
  2010. 1655.  -               href = (a || {}).href || '/',
  2011. 1656.  -               lnk = '<a href="' + href + '" class="mem_link">' + replaceEntities(name) + '</a>',
  2012. 1657.  -               img = (domFC(a) || {}).src || '/images/camera_c.gif';
  2013. 1658.  -           feed.expandAppend(item, exp, {mid: mid, sex: sex, href: href, img: img, lnk: lnk}, right);
  2014. 1659.  -         }
  2015. 1660.  -         re(e);
  2016. 1661.  -       }
  2017. 1662.  -       ajax.post('al_feed.php', {act: 'expand', item: item}, {onDone: feed.expanded.pbind(item), cache: 1});
  2018. 1663.  -     } else {
  2019. 1664.  -       var exp = domNS(domPN(el));
  2020. 1665.  -       if (!hasClass(exp, 'feed_row_fb_expanded')) return;
  2021. 1666.  -       for (var e = domFC(exp); e; e = domFC(exp)) {
  2022. 1667.  -         if (hasClass(e, 'feedback_grouped_row_wrap') && e.getAttribute('data-auto')) {
  2023. 1668.  -           var name = geByClass1('mem_link', e) || {};
  2024. 1669.  -           phs.appendChild(domFC(ce('div', {innerHTML: '\
  2025. 1670.  - <div class="feedback_group_photo_wrap fl_l" data-mid="' + e.getAttribute('data-mid') + '" data-sex="' + e.getAttribute('data-sex') + '">\
  2026. 1671.  -   <a href="' + name.href + '" class="feedback_group_photo" title="' + replaceEntities(val(name)) + '"><img src="' + ((domFC(geByClass1('feedback_row_photo_lnk', e)) || {}).src || '/images/camera_c.gif') + '" class="feedback_group_photo" /></a>\
  2027. 1672.  - </div>'})));
  2028. 1673.  -         }
  2029. 1674.  -         re(e);
  2030. 1675.  -       }
  2031. 1676.  -       re(exp);
  2032. 1677.  -     }
  2033. 1678.  -     toggleClass(geByClass1('feedback_expand', el), 'feedback_expanded', thumbs);
  2034. 1679.  -     var names = geByClass1('feedback_row_group_names', el), tmp = val(names),
  2035. 1680.  -         name = ge('fbgr_' + item + '_this');
  2036. 1681.  -     val(names, val(name));
  2037. 1682.  -     val(name, tmp);
  2038. 1683.  -
  2039. 1684.  -     return cancelEvent(ev);
  2040. 1685.  -   },
  2041. 1686.  -   ungroup: function(ev, item) {
  2042. 1687.  -     ev = ev || window.event;
  2043. 1688.  -     if (checkEvent(ev) || ev && ev.target && hasClass(ev.target, 'mem_link')) return;
  2044. 1689.  -
  2045. 1690.  -     var el = ge('feedback_grouped_' + item + '_wrap');
  2046. 1691.  -     if (!el) return;
  2047. 1692.  -
  2048. 1693.  -     var hid = domNS(domPN(el)),
  2049. 1694.  -         names = geByClass1('feedback_row_group_names', el), tmp = val(names),
  2050. 1695.  -         name = ge('fbgr_' + item + '_that');
  2051. 1696.  -     toggle(hid);
  2052. 1697.  -     toggleClass(geByClass1('feedback_expand', el), 'feedback_expanded', isVisible(hid));
  2053. 1698.  -     val(names, val(name));
  2054. 1699.  -     val(name, tmp);
  2055. 1700.  -   },
  2056. 1701.  -
  2057. 1702.  -   notifyPostTooltip: function(el, post, opts) {
  2058. 1703.  -     var reply = (opts || {}).reply, url = 'al_wall.php';
  2059. 1704.  -
  2060. 1705.  -     if (!post.indexOf('topic_comment')) {
  2061. 1706.  -       url = 'al_board.php';
  2062. 1707.  -       post = post.replace('topic_comment', '');
  2063. 1708.  -     } else {
  2064. 1709.  -       post = post.replace('wall_reply', '').replace('wall', '');
  2065. 1710.  -     }
  2066. 1711.  -
  2067. 1712.  -     showTooltip(el, {
  2068. 1713.  -       url: url,
  2069. 1714.  -       params: extend({act: 'post_tt', post: post, self: 1, from: 'feedback'}, opts || {}),
  2070. 1715.  -       slide: 15,
  2071. 1716.  -       shift: [35, -3, 0],
  2072. 1717.  -       ajaxdt: 100,
  2073. 1718.  -       showdt: 400,
  2074. 1719.  -       hidedt: 200,
  2075. 1720.  -       className: 'rich wall_tt'
  2076. 1721.  -     });
  2077. 1722.  -   },
  2078. 1723.  -   notifyDeleteOver: function(item, el, label) {
  2079. 1724.  -     if (label) showTooltip(el, {text: label});
  2080. 1725.  -     wall && wall._animDelX(1, item);
  2081. 1726.  -   },
  2082. 1727.  -   notifyDeleteOut: function (item) {
  2083. 1728.  -     wall && wall._animDelX(0.6, item);
  2084. 1729.  -   },
  2085. 1730.  -   notifyDelete: function (item, types, hash, el, canDel) {
  2086. 1731.  -     el.tt && el.tt.el && el.tt.hide();
  2087. 1732.  -     ajax.post('al_feed.php', {act: 'a_feedback_delete', item: item, hash: hash, types: types, candel: canDel}, {
  2088. 1733.  -       onDone: function (html) {
  2089. 1734.  -         feed.notifyHideReply(item);
  2090. 1735.  -         var row = ge('feedback_row_' + item).parentNode;
  2091. 1736.  -         row.parentNode.replaceChild(se(html), row);
  2092. 1737.  -         cur.feedEntriesHTML['fb_' + item] = row;
  2093. 1738.  -       }
  2094. 1739.  -     })
  2095. 1740.  -   },
  2096. 1741.  -   notifyUndelete: function (item, types, hash) {
  2097. 1742.  -     ajax.post('al_feed.php', {act: 'a_feedback_undelete', item: item, hash: hash, types: types}, {
  2098. 1743.  -       onDone: function (text) {
  2099. 1744.  -         var row = ge('feedback_row_' + item);
  2100. 1745.  -         row.parentNode.replaceChild(cur.feedEntriesHTML['fb_' + item], row);
  2101. 1746.  -         delete cur.feedEntriesHTML['fb_' + item];
  2102. 1747.  -       }
  2103. 1748.  -     })
  2104. 1749.  -   },
  2105. 1750.  -   notifyDeleteAll: function (uid, hash, btn, item) {
  2106. 1751.  -     ajax.post('al_feed.php', {act: 'a_feedback_delete_all', uid: uid, item: item, hash: hash}, {
  2107. 1752.  -       onDone: function (text) {
  2108. 1753.  -         showDoneBox(text);
  2109. 1754.  -         // feed.go(feed.getSectionParams(cur.section), false, true);
  2110. 1755.  -         var rows = cur.rowsCont, row;
  2111. 1756.  -         if (rows && (row = rows.firstChild)) {
  2112. 1757.  -           var startY = false,
  2113. 1758.  -               st = scrollGetY(),
  2114. 1759.  -               h, y;
  2115. 1760.  -           do {
  2116. 1761.  -             if (row.className &&
  2117. 1762.  -                 hasClass(row, 'feed_row') &&
  2118. 1763.  -                 row.firstChild &&
  2119. 1764.  -                 uid == row.firstChild.getAttribute('author')) {
  2120. 1765.  -               h = row.offsetHeight;
  2121. 1766.  -               y = row.offsetTop;
  2122. 1767.  -               if (startY === false) {
  2123. 1768.  -                 startY = getXY(row.offsetParent)[1]
  2124. 1769.  -               }
  2125. 1770.  -               hide(row);
  2126. 1771.  -               if (y + startY < st) {
  2127. 1772.  -                 st -= h;
  2128. 1773.  -                 scrollToY(st, 0);
  2129. 1774.  -               }
  2130. 1775.  -             }
  2131. 1776.  -           } while (row = row.nextSibling);
  2132. 1777.  -
  2133. 1778.  -           if (cur.wasScroll === 0 || cur.wasScroll > 0) {
  2134. 1779.  -             cur.wasScroll = st;
  2135. 1780.  -           }
  2136. 1781.  -           feed.scrollCheck();
  2137. 1782.  -         }
  2138. 1783.  -       },
  2139. 1784.  -       showProgress: lockButton.pbind(btn),
  2140. 1785.  -       hideProgress: unlockButton.pbind(btn)
  2141. 1786.  -     })
  2142. 1787.  -   },
  2143. 1788.  -
  2144. 1789.  -
  2145. 1790.  -   ignoreItem: function (post_raw, feed_raw, hash) {
  2146. 1791.  -     triggerEvent(ge('post_delete' + post_raw), 'mouseout');
  2147. 1792.  -     revertLastInlineVideo('post' + post_raw);
  2148. 1793.  -     cur.feedEntriesHTML[post_raw] = val('post' + post_raw);
  2149. 1794.  -     ajax.post('/al_feed.php?misc', {act: 'a_ignore_item', post_raw: post_raw, feed_raw: feed_raw, hash: hash}, {
  2150. 1795.  -       onDone: function (html) {
  2151. 1796.  -         val('post' + post_raw, html);
  2152. 1797.  -       }
  2153. 1798.  -     });
  2154. 1799.  -   },
  2155. 1800.  -   unignoreItem: function (post_raw, feed_raw, hash) {
  2156. 1801.  -     ajax.post('/al_feed.php?misc', {act: 'a_unignore_item', post_raw: post_raw, feed_raw: feed_raw, hash: hash}, {
  2157. 1802.  -       onDone: function () {
  2158. 1803.  -         feed.restorePost(post_raw);
  2159. 1804.  -       }
  2160. 1805.  -     });
  2161. 1806.  -   },
  2162. 1807.  -   reportIgnoredItem: function (post, hash) {
  2163. 1808.  -     ajax.post('al_wall.php', {act: 'spam', post: post, hash: hash}, {
  2164. 1809.  -       onDone: function(msg) {
  2165. 1810.  -         var r = ge('post' + post), label = r && geByClass1('feed_post_report', r, 'div');
  2166. 1811.  -         val(label, msg);
  2167. 1812.  -       }
  2168. 1813.  -     });
  2169. 1814.  -   },
  2170. 1815.  -   ignoreOwner: function (post_raw, owner_id, hash, btn) {
  2171. 1816.  -     if (post_raw) {
  2172. 1817.  -       cur.feedEntriesHTML[post_raw + '_ignored'] = val('post' + post_raw);
  2173. 1818.  -     }
  2174. 1819.  -     ajax.post('/al_feed.php?misc', {act: 'a_ignore_owner', post_raw: post_raw, owner_id: owner_id, hash: hash, list: cur.section == 'list' && cur.list || 0}, {
  2175. 1820.  -       onDone:function(html) {
  2176. 1821.  -         val('post' + post_raw, html);
  2177. 1822.  -         each(geByClass('post', cur.rowsCont), function(i,v) {
  2178. 1823.  -           var ids = this.id.match(/post((-?\d+)_(-?\d+)(_\d+)?)/);
  2179. 1824.  -           if (ids[1] != post_raw && (!ids[4] && ids[2] == owner_id || ids[4] && ids[3] == owner_id)) {
  2180. 1825.  -             revertLastInlineVideo(this);
  2181. 1826.  -             hide(this.parentNode);
  2182. 1827.  -           }
  2183. 1828.  -         });
  2184. 1829.  -       },
  2185. 1830.  -       showProgress: btn && lockButton.pbind(btn),
  2186. 1831.  -       hideProgress: btn && unlockButton.pbind(btn)
  2187. 1832.  -     });
  2188. 1833.  -   },
  2189. 1834.  -   unignoreOwner: function (post_raw, owner_id, hash) {
  2190. 1835.  -     ajax.post('/al_feed.php?misc', {act: 'a_unignore_owner', post_raw: post_raw || '', owner_id: owner_id, hash: hash, list: cur.section == 'list' && cur.list || 0}, {
  2191. 1836.  -       onDone:function(html) {
  2192. 1837.  -         if (post_raw) {
  2193. 1838.  -           val('post' + post_raw, cur.feedEntriesHTML[post_raw + '_ignored']);
  2194. 1839.  -         } else {
  2195. 1840.  -           val('ignore_row' + owner_id, html);
  2196. 1841.  -         }
  2197. 1842.  -         each(geByClass('post', cur.rowsCont), function(i,v) {
  2198. 1843.  -           var ids = this.id.match(/post((-?\d+)_(-?\d+)(_\d+)?)/);
  2199. 1844.  -           if (!ids[4] && ids[2] == owner_id || ids[4] && ids[3] == owner_id) {
  2200. 1845.  -             show(this.parentNode);
  2201. 1846.  -           }
  2202. 1847.  -         });
  2203. 1848.  -       }
  2204. 1849.  -     });
  2205. 1850.  -   },
  2206. 1851.  -   unsubscribe: function (post_raw, hash) {
  2207. 1852.  -     triggerEvent(ge('post_delete' + post_raw), 'mouseout');
  2208. 1853.  -     cur.feedEntriesHTML[post_raw] = ge('post' + post_raw).innerHTML;
  2209. 1854.  -     var matches = post_raw.match(/(\-?\d+)_(photo|video|topic|note|)(\d+)/);
  2210. 1855.  -     if (!matches) return;
  2211. 1856.  -     ajax.post('al_feed.php', {act: 'unsubscribe', type: {'': 24, photo: 21, video: 22, topic: 20, note: 23}[matches[2]], owner_id: matches[1], place_id: matches[3], hash: hash, feed: 1}, {
  2212. 1857.  -       onDone: function(html) { ge('post' + post_raw).innerHTML = html.replace('%post_raw%', post_raw); }
  2213. 1858.  -     });
  2214. 1859.  -   },
  2215. 1860.  -   subscribe: function (post_raw, hash) {
  2216. 1861.  -     var matches = post_raw.match(/(\-?\d+)_(photo|video|topic|note|)(\d+)/);
  2217. 1862.  -     if (!matches) return;
  2218. 1863.  -     ajax.post('al_feed.php', {act: 'subscribe', type: {'': 24, photo: 21, video: 22, topic: 20, note: 23}[matches[2]], owner_id: matches[1], place_id: matches[3], hash: hash, feed: 1}, {
  2219. 1864.  -       onDone: feed.restorePost.pbind(post_raw)
  2220. 1865.  -     });
  2221. 1866.  -   },
  2222. 1867.  -   restorePost: function (post_raw) {
  2223. 1868.  -     ge('post' + post_raw).innerHTML = cur.feedEntriesHTML[post_raw];
  2224. 1869.  -     var ph_back = geByClass1('input_back', ge('post' + post_raw), 'div');
  2225. 1870.  -     var ta = geByTag1('textarea', ge('post' + post_raw));
  2226. 1871.  -     if (!ta) return;
  2227. 1872.  -     ta.placeholder = ph_back.innerHTML;
  2228. 1873.  -     ph_back.parentNode.removeChild(ph_back);
  2229. 1874.  -     placeholderSetup(ta);
  2230. 1875.  -   },
  2231. 1876.  -   toggleReposts: function (place, rand, e) {
  2232. 1877.  -     if (checkEvent(e)) return true;
  2233. 1878.  -
  2234. 1879.  -     var lnk = ge('feed_reposts_more' + place + '_' + rand),
  2235. 1880.  -         cont = ge('feed_reposts' + place + '_' + rand),
  2236. 1881.  -         h = 0,
  2237. 1882.  -         st = scrollGetY(),
  2238. 1883.  -         vis = isVisible(cont);
  2239. 1884.  -     if (!cont) {
  2240. 1885.  -       lnk && re(lnk.parentNode.parentNode);
  2241. 1886.  -       return;
  2242. 1887.  -     }
  2243. 1888.  -
  2244. 1889.  -     if (vis) {
  2245. 1890.  -       h -= cont.offsetHeight;
  2246. 1891.  -     } else {
  2247. 1892.  -       (domPN(domPN(cont)) || {}).bits = 0;
  2248. 1893.  -     }
  2249. 1894.  -     toggle(cont, !vis);
  2250. 1895.  -     val(lnk, !vis ? getLang('news_hide_reposts') : getLang('news_show_X_reposts', cont.childNodes.length));
  2251. 1896.  -     if (h) {
  2252. 1897.  -       scrollToY(st + h, 0);
  2253. 1898.  -     }
  2254. 1899.  -     return false;
  2255. 1900.  -   },
  2256. 1901.  -
  2257. 1902.  -   sliderScaleClick: function (e) {
  2258. 1903.  -     if (checkEvent(e)) return;
  2259. 1904.  -     var slider = ge('feed_rate_slider'),
  2260. 1905.  -         scale = slider.parentNode,
  2261. 1906.  -         maxX = (scale.clientWidth || 100) - slider.offsetWidth,
  2262. 1907.  -         margin = Math.max(0, Math.min(maxX, (e.offsetX || e.layerX) - slider.offsetWidth / 2)),
  2263. 1908.  -         percent = margin / maxX * 100;
  2264. 1909.  -
  2265. 1910.  -     setStyle('feed_rate_slider', 'marginLeft', margin);
  2266. 1911.  -     feed.sliderUpdate(percent);
  2267. 1912.  -     feed.sliderClick(e);
  2268. 1913.  -   },
  2269. 1914.  -   sliderClick: function (e) {
  2270. 1915.  -     if (checkEvent(e)) return;
  2271. 1916.  -     e.cancelBubble = true;
  2272. 1917.  -
  2273. 1918.  -     var startX = e.clientX || e.pageX,
  2274. 1919.  -         slider = ge('feed_rate_slider'),
  2275. 1920.  -         scale = slider.parentNode,
  2276. 1921.  -         startMargin = slider.offsetLeft || 0,
  2277. 1922.  -         maxX = (scale.clientWidth || 100) - slider.offsetWidth,
  2278. 1923.  -         selectEvent = 'mousedown selectstart',
  2279. 1924.  -         defPercent = intval(cur.default_percent),
  2280. 1925.  -         margin, percent;
  2281. 1926.  -
  2282. 1927.  -     var _temp = function (e) {
  2283. 1928.  -       margin = Math.max(0, Math.min(maxX, startMargin + (e.clientX || e.pageX)- startX));
  2284. 1929.  -       percent = margin / maxX * 100;
  2285. 1930.  -
  2286. 1931.  -       if (Math.abs(percent - 100) < 8) {
  2287. 1932.  -         percent = 100;
  2288. 1933.  -       }
  2289. 1934.  -       if (defPercent > 0 && Math.abs(percent - defPercent) < 3) {
  2290. 1935.  -         percent = defPercent;
  2291. 1936.  -       }
  2292. 1937.  -       percent = intval(percent);
  2293. 1938.  -       margin = maxX * percent / 100;
  2294. 1939.  -       slider.style.marginLeft = margin + 'px';
  2295. 1940.  -       feed.sliderUpdate(percent);
  2296. 1941.  -       return cancelEvent(e);
  2297. 1942.  -     }, _temp2 = function () {
  2298. 1943.  -       removeEvent(document, 'mousemove', _temp);
  2299. 1944.  -       removeEvent(document, 'mouseup', _temp2);
  2300. 1945.  -       removeEvent(document, selectEvent, cancelEvent);
  2301. 1946.  -       setStyle(bodyNode, 'cursor', '');
  2302. 1947.  -       setStyle(scale, 'cursor', '');
  2303. 1948.  -       feed.sliderApply();
  2304. 1949.  -     };
  2305. 1950.  -
  2306. 1951.  -     addEvent(document, 'mousemove', _temp);
  2307. 1952.  -     addEvent(document, 'mouseup', _temp2);
  2308. 1953.  -     addEvent(document, selectEvent, cancelEvent);
  2309. 1954.  -     setStyle(bodyNode, 'cursor', 'pointer');
  2310. 1955.  -     setStyle(scale, 'cursor', 'pointer');
  2311. 1956.  -     return false;
  2312. 1957.  -   },
  2313. 1958.  -   sliderSelectChanged: function (e) {
  2314. 1959.  -     var percent = ge(cur.section == 'articles' ? 'feed_period_select' : 'feed_rate_select').value;
  2315. 1960.  -     feed.sliderUpdate(percent);
  2316. 1961.  -     feed.sliderApply();
  2317. 1962.  -   },
  2318. 1963.  -   sliderUpdate: function (percent, upd) {
  2319. 1964.  -     percent = intval(percent);
  2320. 1965.  -     switch (cur.section) {
  2321. 1966.  -       case 'articles':
  2322. 1967.  -       case 'articles_search':
  2323. 1968.  -         cur.periodPercent = percent;
  2324. 1969.  -         var label = getLang('news_top_no_articles');
  2325. 1970.  -         each (cur.top_periods, function (p, key) {
  2326. 1971.  -           if (percent < p) {
  2327. 1972.  -             return false;
  2328. 1973.  -           }
  2329. 1974.  -           label = key;
  2330. 1975.  -         });
  2331. 1976.  -         val('feed_rate_slider_label', label);
  2332. 1977.  -         break;
  2333. 1978.  -     }
  2334. 1979.  -     if (upd) {
  2335. 1980.  -       if (isVisible('feed_rate_slider_wrap')) {
  2336. 1981.  -         var slider = ge('feed_rate_slider'),
  2337. 1982.  -             maxX = (slider.parentNode.clientWidth || 100) - slider.offsetWidth;
  2338. 1983.  -         setStyle('feed_rate_slider', 'marginLeft', maxX * percent / 100);
  2339. 1984.  -       }
  2340. 1985.  -       var wasSelected = false, select = ge('feed_period_select');
  2341. 1986.  -       each(select && select.childNodes || [], function () {
  2342. 1987.  -         if (this.tagName != 'OPTION') return;
  2343. 1988.  -         if (wasSelected === false && this.value >= percent) {
  2344. 1989.  -           this.setAttribute('selected', 'selected');
  2345. 1990.  -           select.value = this.value;
  2346. 1991.  -           wasSelected = true;
  2347. 1992.  -         } else {
  2348. 1993.  -           removeAttr(this, 'selected');
  2349. 1994.  -         }
  2350. 1995.  -       });
  2351. 1996.  -     }
  2352. 1997.  -   },
  2353. 1998.  -   sliderApply: function () {
  2354. 1999.  -     if (!cur.section.indexOf('articles')) {
  2355. 2000.  -       feed.switchSection(cur.section);
  2356. 2001.  -       return;
  2357. 2002.  -     }
  2358. 2003.  -   },
  2359. 2004.  -   sliderShowProgress: function () {
  2360. 2005.  -     addClass('feed_rate_slider_wrap', 'feed_rate_wait');
  2361. 2006.  -   },
  2362. 2007.  -   sliderHideProgress: function () {
  2363. 2008.  -     removeClass('feed_rate_slider_wrap', 'feed_rate_wait');
  2364. 2009.  -   },
  2365. 2010.  -
  2366. 2011.  -   editHidden: function () {
  2367. 2012.  -     showTabbedBox('al_settings.php', {act: 'a_edit_owners_list', list: 'feed', height: lastWindowHeight}, {stat: ['privacy.js', 'privacy.css', 'ui_controls.js', 'ui_controls.css', 'indexer.js']});
  2368. 2013.  -     cur.onOListSave = feed.onHiddenSave;
  2369. 2014.  -     return false;
  2370. 2015.  -   },
  2371. 2016.  -   onHiddenSave: function (white, black, list, options) {
  2372. 2017.  -     var box = curBox(), params = {act: 'a_ignore_olist', hash: options.hash};
  2373. 2018.  -     if (white.length < black.length) {
  2374. 2019.  -       params.White = white.join(',');
  2375. 2020.  -     } else {
  2376. 2021.  -       params.Black = black.join(',');
  2377. 2022.  -     }
  2378. 2023.  -     ajax.post('al_feed.php', params, {
  2379. 2024.  -       onDone: function(control, rules) {
  2380. 2025.  -         box.hide();
  2381. 2026.  -         feed.switchSection(cur.section == 'photos' ? 'photos' : 'news');
  2382. 2027.  -       },
  2383. 2028.  -       showProgress: box.showProgress,
  2384. 2029.  -       hiderogress: box.hideProgress
  2385. 2030.  -     });
  2386. 2031.  -     return false;
  2387. 2032.  -   },
  2388. 2033.  -
  2389. 2034.  -   addList: function () {
  2390. 2035.  -     Feed.toggleTabsMenu(0);
  2391. 2036.  -     showTabbedBox('al_settings.php', {act: 'a_edit_owners_list', list: 'feed', list_id: -1, height: lastWindowHeight}, {
  2392. 2037.  -       stat: ['privacy.js', 'privacy.css', 'ui_controls.js', 'ui_controls.css', 'indexer.js'],
  2393. 2038.  -       onFail: function (text) {
  2394. 2039.  -         setTimeout(showFastBox({title: getLang('global_error')}, text, getLang('global_close')).hide, 4500);
  2395. 2040.  -         return true;
  2396. 2041.  -       }
  2397. 2042.  -     });
  2398. 2043.  -     cur.onOListSave = feed.onListSave.pbind(-1);
  2399. 2044.  -     return false;
  2400. 2045.  -   },
  2401. 2046.  -   editList: function (list_id) {
  2402. 2047.  -     Feed.toggleTabsMenu(0);
  2403. 2048.  -     showTabbedBox('al_settings.php', {act: 'a_edit_owners_list', list: 'feed', list_id: list_id, height: lastWindowHeight}, {stat: ['privacy.js', 'privacy.css', 'ui_controls.js', 'ui_controls.css', 'indexer.js']});
  2404. 2049.  -     cur.onOListSave = feed.onListSave.pbind(list_id);
  2405. 2050.  -     return false;
  2406. 2051.  -   },
  2407. 2052.  -   onListSave: function (list_id, white, black, list, options) {
  2408. 2053.  -     var listName = val('feed_list_name');
  2409. 2054.  -     if (!trim(listName)) {
  2410. 2055.  -       notaBene('feed_list_name');
  2411. 2056.  -       return false;
  2412. 2057.  -     }
  2413. 2058.  -     if (!white.length) {
  2414. 2059.  -       return false;
  2415. 2060.  -     }
  2416. 2061.  -     var box = curBox();
  2417. 2062.  -     ajax.post('al_feed.php', {
  2418. 2063.  -       act: 'a_save_list',
  2419. 2064.  -       hash: cur.tabs_hash,
  2420. 2065.  -       White: white.join(','),
  2421. 2066.  -       title: listName,
  2422. 2067.  -       list_id: list_id,
  2423. 2068.  -       no_reposts: ge('feed_list_reposts') && !isChecked('feed_list_reposts') ? 1 : 0
  2424. 2069.  -     }, {
  2425. 2070.  -       onDone: function(new_list_id) {
  2426. 2071.  -         var topTab = geByClass1('feed_tab_list' + list_id, ge('feed_news_bar')),
  2427. 2072.  -             filterTab = ge('filter_t_list' + list_id);
  2428. 2073.  -         val(geByTag1('nobr', topTab), clean(listName));
  2429. 2074.  -         val(geByClass1('feed_filter_tabs_title', filterTab), clean(listName));
  2430. 2075.  -         box.hide();
  2431. 2076.  -         if (list_id > 0) {
  2432. 2077.  -           Feed.switchList(list_id);
  2433. 2078.  -         } else {
  2434. 2079.  -           nav.go({'0': 'feed', section: 'list', list: new_list_id}, null, {nocur: true});
  2435. 2080.  -         }
  2436. 2081.  -       },
  2437. 2082.  -       showProgress: box.showProgress,
  2438. 2083.  -       hiderogress: box.hideProgress
  2439. 2084.  -     });
  2440. 2085.  -     return false;
  2441. 2086.  -   },
  2442. 2087.  -   deleteList: function (list_id, force) {
  2443. 2088.  -     if (list_id <= 0) {
  2444. 2089.  -       return false;
  2445. 2090.  -     }
  2446. 2091.  -
  2447. 2092.  -     if (!force) {
  2448. 2093.  -       var box = showFastBox(getLang('news_delete_list_confirm_title'), getLang('news_delete_list_confirm'), getLang('box_yes'), function () {
  2449. 2094.  -         Feed.deleteList(list_id, true);
  2450. 2095.  -       }, getLang('box_no'), function () {
  2451. 2096.  -         box.hide();
  2452. 2097.  -       });
  2453. 2098.  -       return;
  2454. 2099.  -     }
  2455. 2100.  -     var box = curBox();
  2456. 2101.  -     ajax.post('al_feed.php', extend({act: 'a_delete_list', list_id: list_id, hash: cur.tabs_hash}), {
  2457. 2102.  -       onDone: function () {
  2458. 2103.  -         re(geByClass1('feed_tab_list' + list_id, ge('feed_news_bar')));
  2459. 2104.  -         re('filter_t_list' + list_id);
  2460. 2105.  -         boxQueue.hideAll();
  2461. 2106.  -         if (cur.section == 'list' && cur.list == list_id) {
  2462. 2107.  -           feed.switchSection('news');
  2463. 2108.  -         }
  2464. 2109.  -       },
  2465. 2110.  -       showProgress: box.showProgress,
  2466. 2111.  -       hideProgress: box.hideProgress
  2467. 2112.  -     });
  2468. 2113.  -   },
  2469. 2114.  -
  2470. 2115.  -   saveTabs: function () {
  2471. 2116.  -     ajax.post('al_feed.php', {act: 'a_save_tabs', hash: cur.tabs_hash, tabs: cur.my_feed_types.tabs.join(',')});
  2472. 2117.  -   },
  2473. 2118.  -
  2474. 2119.  -   statsShow: function (e, opts) {
  2475. 2120.  -     return showWiki({w: 'stats' + (cur.source || '')}, false, e);
  2476. 2121.  -   },
  2477. 2122.  -
  2478. 2123.  -   // scrollTop check
  2479. 2124.  -   scrollCheck: function() {
  2480. 2125.  -     if (!cur.idleManager || cur.isFeedLoading || cur.idleManager.isIdle || cur.disableAutoMore) return;
  2481. 2126.  -     var el = ge('show_more_link');
  2482. 2127.  -     if (!isVisible(el)) return;
  2483. 2128.  -
  2484. 2129.  -     var ch = window.innerHeight || document.documentElement.clientHeight || bodyNode.clientHeight,
  2485. 2130.  -         st = scrollGetY(), top, ntop = 0, el, nel, bits, posts = [];
  2486. 2131.  -
  2487. 2132.  -     if (st + ch + 1000 > el.offsetTop) {
  2488. 2133.  -       feed.showMore();
  2489. 2134.  -     }
  2490. 2135.  -
  2491. 2136.  -     if (
  2492. 2137.  -       domPN(cur.topRow) != cur.rowsCont ||
  2493. 2138.  -       (cur.topRow || {}).id == 'feed_rows_next'
  2494. 2139.  -     ) {
  2495. 2140.  -       cur.topRow = domFC(cur.rowsCont);
  2496. 2141.  -     }
  2497. 2142.  -     if (
  2498. 2143.  -       !vk.id ||
  2499. 2144.  -       !cur.topRow ||
  2500. 2145.  -       cur.topRow.id == 'feed_rows_next' ||
  2501. 2146.  -       cur.section != 'news' && cur.section != 'recommended' ||
  2502. 2147.  -       ((window.curNotifier || {}).idle_manager || {}).is_idle
  2503. 2148.  -     ) {
  2504. 2149.  -       return;
  2505. 2150.  -     }
  2506. 2151.  -     for (el = domPS(cur.topRow); el && cur.topRow.offsetTop > st; el = domPS(el)) cur.topRow = el;
  2507. 2152.  -     for (el = cur.topRow; el; el = nel) {
  2508. 2153.  -       top = ntop ? ntop : el.offsetTop;
  2509. 2154.  -       if (top >= st + ch) break;
  2510. 2155.  -
  2511. 2156.  -       nel = domNS(el);
  2512. 2157.  -       if ((nel || {}).id == 'feed_rows_next') nel = null;
  2513. 2158.  -
  2514. 2159.  -       ntop = nel ? nel.offsetTop : top + el.offsetHeight;
  2515. 2160.  -       if (ntop < st && nel) cur.topRow = nel;
  2516. 2161.  -
  2517. 2162.  -       bits = el.bits || 0;
  2518. 2163.  -       if (bits >= 3) continue;
  2519. 2164.  -
  2520. 2165.  -       bits |= ((top >= st && top < st + ch) ? 1 : 0) | ((ntop >= st && ntop < st + ch) ? 2 : 0);
  2521. 2166.  -       if (bits) {
  2522. 2167.  -         el.bits = bits;
  2523. 2168.  -         if (bits == 3) {
  2524. 2169.  -           posts.push(Feed.postsGetRaws(el));
  2525. 2170.  -         }
  2526. 2171.  -       }
  2527. 2172.  -     }
  2528. 2173.  -     Page.postsSeen(posts);
  2529. 2174.  -   },
  2530. 2175.  -
  2531. 2176.  -   postsGetRaws: function(el) {
  2532. 2177.  -     var f = domFC(el), c, m, p, r = /^post(-?\d+_\d+)$/, res = {};
  2533. 2178.  -     if (m = f.id.match(r)) {
  2534. 2179.  -       res[m[1]] = 1;
  2535. 2180.  -     } else {
  2536. 2181.  -       c = f.className;
  2537. 2182.  -       if (m = c.match(/feed_reposts_wrap(-?\d+_\d+)/)) {
  2538. 2183.  -         p = domFC(f);
  2539. 2184.  -         if (hasClass(domFC(p), 'post_copy')) {
  2540. 2185.  -           res[m[1]] = -1;
  2541. 2186.  -         }
  2542. 2187.  -         if (m = domFC(p).id.match(r)) {
  2543. 2188.  -           res[m[1]] = 1;
  2544. 2189.  -         }
  2545. 2190.  -         if (isVisible(p = domNS(p))) {
  2546. 2191.  -           for (p = domFC(p); p; p = domNS(p)) {
  2547. 2192.  -             if (m = p.id.match(r)) {
  2548. 2193.  -               res[m[1]] = 1;
  2549. 2194.  -             }
  2550. 2195.  -           }
  2551. 2196.  -         }
  2552. 2197.  -       } else if (m = c.match(/feed_repost(-?\d+_\d+)/)) {
  2553. 2198.  -         p = domFC(f);
  2554. 2199.  -         if (hasClass(p, 'post_copy')) {
  2555. 2200.  -           res[m[1]] = -1;
  2556. 2201.  -         }
  2557. 2202.  -         if (m = p.id.match(r)) {
  2558. 2203.  -           res[m[1]] = 1;
  2559. 2204.  -         }
  2560. 2205.  -       }
  2561. 2206.  -     }
  2562. 2207.  -     return res;
  2563. 2208.  -   },
  2564. 2209.  -   searchPreloadExtended: function () {
  2565. 2210.  -     if (cur.feedSearchExtendedLoaded || cur.feedSearchExtendedPreloaded) {
  2566. 2211.  -       return false;
  2567. 2212.  -     }
  2568. 2213.  -     cur.feedSearchExtendedPreloaded = true;
  2569. 2214.  -     ajax.post('al_feed.php', {act: 'a_get_search_extended'}, {cache: 1});
  2570. 2215.  -   },
  2571. 2216.  -   searchToggleExtended: function (enabled) {
  2572. 2217.  -     if (cur.feedSearchExtendedLoaded || !enabled) {
  2573. 2218.  -       toggle('feed_search_extform', enabled);
  2574. 2219.  -       return;
  2575. 2220.  -     }
  2576. 2221.  -     var visibleBefore = [isVisible('feed_menu_toggle'), isVisible('feed_edit_hidden'), isVisible('feed_search_sort')];
  2577. 2222.  -     ajax.post('al_feed.php', {act: 'a_get_search_extended'}, {
  2578. 2223.  -       stat: ['ui_controls.css', 'ui_controls.js'],
  2579. 2224.  -       showProgress: function () {
  2580. 2225.  -         show('feed_progress');
  2581. 2226.  -         hide('feed_menu_toggle', 'feed_edit_hidden', 'feed_search_sort');
  2582. 2227.  -       },
  2583. 2228.  -       hideProgress: function () {
  2584. 2229.  -         hide('feed_progress');
  2585. 2230.  -         toggle('feed_menu_toggle', visibleBefore[0]);
  2586. 2231.  -         toggle('feed_edit_hidden', visibleBefore[1]);
  2587. 2232.  -         toggle('feed_search_sort', visibleBefore[2]);
  2588. 2233.  -       },
  2589. 2234.  -       cache: 1,
  2590. 2235.  -       onDone: function (html, js) {
  2591. 2236.  -         cur.feedSearchExtendedLoaded = true;
  2592. 2237.  -         val('feed_search_extform', html);
  2593. 2238.  -         show('feed_search_extform');
  2594. 2239.  -         eval(js);
  2595. 2240.  -       }
  2596. 2241.  -     });
  2597. 2242.  -   },
  2598. 2243.  -   searchAppendTag: function (tag, pattern, nosubmit) {
  2599. 2244.  -     if (!trim(tag) && !pattern) {
  2600. 2245.  -       return;
  2601. 2246.  -     }
  2602. 2247.  -     var text = val('feed_search');
  2603. 2248.  -     try {
  2604. 2249.  -       text = text.replace(pattern || new RegExp('(^|\\s)' + tag + '(\\s|$)', 'i'), ' ');
  2605. 2250.  -     } catch (e) {};
  2606. 2251.  -     text += ' ' + tag + ' ';
  2607. 2252.  -     text = text.replace(/\s{2,}/g, ' ').replace(/^\s+/, '');
  2608. 2253.  -     val('feed_search', text);
  2609. 2254.  -     if (trim(text).length && !nosubmit) {
  2610. 2255.  -       Feed.submitSearch();
  2611. 2256.  -     }
  2612. 2257.  -     Feed.searchUpdate();
  2613. 2258.  -   },
  2614. 2259.  -   searchUnchooseGeoPoint: function () {
  2615. 2260.  -     var map = ge('feed_searchext_map'),
  2616. 2261.  -         x = ge('feed_searchext_map_delete_wrap');
  2617. 2262.  -
  2618. 2263.  -     removeClass(map, 'feed_searchext_map_selected');
  2619. 2264.  -     setStyle(map, {background: ''});
  2620. 2265.  -     x && x.tt && x.tt.hide && x.tt.hide();
  2621. 2266.  -     Feed.searchAppendTag('', /near:[0-9\.,\-\+]+/);
  2622. 2267.  -   },
  2623. 2268.  -   searchChooseGeoPoint: function () {
  2624. 2269.  -     var params = {act: 'a_choose_place_box', search: 1},
  2625. 2270.  -         text = val('feed_search'),
  2626. 2271.  -         currentPointMatches = text.match(/near\:(\-?\d{1,3}(?:\.\d+)?)\,(\-?\d{1,3}(?:\.\d+)?)(\+{0,4})/);
  2627. 2272.  -
  2628. 2273.  -     if (currentPointMatches) {
  2629. 2274.  -       params.lat = floatval(currentPointMatches[1]);
  2630. 2275.  -       params.lon = floatval(currentPointMatches[2]);
  2631. 2276.  -       params.zoom = [8, 11, 14, 17, 20][(currentPointMatches[3] || '').length]
  2632. 2277.  -     }
  2633. 2278.  -     showBox('al_places.php', params, {dark: 1});
  2634. 2279.  -     cur.chooseGeoPoint = function (lat, lon, zoom) {
  2635. 2280.  -       var num = 0;
  2636. 2281.  -       each([8, 11, 14, 17, 20], function (k, zoomLevel) {
  2637. 2282.  -         if (zoom <= zoomLevel) {
  2638. 2283.  -           return false;
  2639. 2284.  -         }
  2640. 2285.  -         num = k;
  2641. 2286.  -       });
  2642. 2287.  -       boxQueue.hideLast();
  2643. 2288.  -       var postfix = (new Array(num + 1)).join('+');
  2644. 2289.  -       var mult = Math.pow(10, 10);
  2645. 2290.  -       lat = Math.round(lat * mult) / mult;
  2646. 2291.  -       lon = Math.round(lon * mult) / mult;
  2647. 2292.  -
  2648. 2293.  -       var map = ge('feed_searchext_map');
  2649. 2294.  -       addClass(map, 'feed_searchext_map_selected');
  2650. 2295.  -       setStyle(map, {
  2651. 2296.  -         background: 'url(/maps?lat='+lat+'&lng='+lon+'&z='+zoom+'&'+(window.devicePixelRatio >= 2 ? 'w=260&h=160' : 'w=130&h=80')+')'
  2652. 2297.  -       });
  2653. 2298.  -       Feed.searchAppendTag('near:' + lat + ',' + lon + postfix, /near:[0-9\.,\-\+]+/);
  2654. 2299.  -     };
  2655. 2300.  -   },
  2656. 2301.  -   searchChooseFilter: function (filter, item) {
  2657. 2302.  -     var uiDropdown;
  2658. 2303.  -     switch (filter) {
  2659. 2304.  -       case 'type':
  2660. 2305.  -         uiDropdown = cur.uiSearchPostType; break;
  2661. 2306.  -       case 'has':
  2662. 2307.  -         uiDropdown = cur.uiSearchPostAttach; break;
  2663. 2308.  -       case 'likes':
  2664. 2309.  -         uiDropdown = cur.uiSearchPostLikes; break;
  2665. 2310.  -
  2666. 2311.  -       default: return false;
  2667. 2312.  -     }
  2668. 2313.  -     var sel = (uiDropdown.selectedItems() || [])[0];
  2669. 2314.  -
  2670. 2315.  -     Feed.searchAppendTag(sel && intval(sel[0]) ? (filter + ':' + (sel[3] || sel[0])) : '', new RegExp(filter + ':' + '[\\S]+', 'g'));
  2671. 2316.  -   },
  2672. 2317.  -   searchExcludeOnChange: function (input, nosubmit) {
  2673. 2318.  -     var exclude = trim(val(input));
  2674. 2319.  -     if (!exclude) {
  2675. 2320.  -       return false;
  2676. 2321.  -     }
  2677. 2322.  -     var words = trim(exclude).split(/[\s\,\.\/\!\@\#\$\%\^\&\*\(\)\-\=\:\~\;\'\"\|\}\{\+]+/),
  2678. 2323.  -         len = words.length,
  2679. 2324.  -         newTag = len > 0 && ('-' + words.join(' -')) || '';
  2680. 2325.  -
  2681. 2326.  -     Feed.searchAppendTag(newTag, /(?:\s|^)\-\S+/g, nosubmit);
  2682. 2327.  -   },
  2683. 2328.  -   searchUrlOnChange: function (fromTooltip) {
  2684. 2329.  -     var urlMatches = (val('feed_searchext_link') || '').match(urlInactiveExp),
  2685. 2330.  -         newTag = '';
  2686. 2331.  -
  2687. 2332.  -     if (urlMatches) {
  2688. 2333.  -       var url = urlMatches[4] + (urlMatches[5] || ''),
  2689. 2334.  -           domain = urlMatches[4],
  2690. 2335.  -           newTag = radioBtns.feed_searchext_domain.val ? ('domain:' + domain) : ('url:' + url);
  2691. 2336.  -     }
  2692. 2337.  -     Feed.searchAppendTag(newTag, cur.feedSearchPrevLinkTag);
  2693. 2338.  -     cur.feedSearchPrevLinkTag = newTag;
  2694. 2339.  -
  2695. 2340.  -     if (fromTooltip) {
  2696. 2341.  -       elfocus('feed_searchext_link');
  2697. 2342.  -     }
  2698. 2343.  -   },
  2699. 2344.  -   searchContentOnChange: function () {
  2700. 2345.  -     var urlMatches = (val('feed_searchext_content') || '').match(urlInactiveExp),
  2701. 2346.  -         domainMatches = urlMatches && urlMatches[4].match(/(^|\.|\/\/)vkontakte\.ru|vk\.com/),
  2702. 2347.  -         mediaMatches = domainMatches && urlMatches[5].match(/(?:#(photo)|^\/(photo|video|album|page|audio|wall)|z=(album|photo|video)|w=(page|wall))(-?\d+_)?(\d+)(?:\?reply=(\d+))?$/),
  2703. 2348.  -         newTag = '';
  2704. 2349.  -
  2705. 2350.  -     if (mediaMatches) {
  2706. 2351.  -       var mediaType = mediaMatches[1] || mediaMatches[2] || mediaMatches[3] || mediaMatches[4],
  2707. 2352.  -           mediaID = mediaMatches[5] + (mediaMatches[7] || mediaMatches[6]),
  2708. 2353.  -           newTag = 'copy:' + mediaType + mediaID;
  2709. 2354.  -     }
  2710. 2355.  -     Feed.searchAppendTag(newTag, /copy\:\S+/);
  2711. 2356.  -   },
  2712. 2357.  -   searchUpdate: function () {
  2713. 2358.  -     val(cur.searchPh, !cur.section.indexOf('photos') ? getLang('news_photo_search') : getLang('news_search'));
  2714. 2359.  -
  2715. 2360.  -     toggle('feed_query_reset', trim(val('feed_search')));
  2716. 2361.  -   },
  2717. 2362.  -   searchClickOutside: function (event) {
  2718. 2363.  -     if (val('feed_search') || !hasClass('feed_bar', 'feed_bar_extended_search') || isChecked('feed_search_extended_checkbox')) {
  2719. 2364.  -       return;
  2720. 2365.  -     }
  2721. 2366.  -     removeClass('feed_bar', 'feed_bar_extended_search');
  2722. 2367.  -   },
  2723. 2368.  -   searchReset: function (fire) {
  2724. 2369.  -     console.trace();
  2725. 2370.  -     val('feed_search', '');
  2726. 2371.  -     // removeClass('feed_bar', 'feed_bar_extended_search');
  2727. 2372.  -     each ([cur.uiSearchPostType, cur.uiSearchPostAttach, cur.uiSearchPostLikes], function () {
  2728. 2373.  -       this.val(0);
  2729. 2374.  -     });
  2730. 2375.  -     each(['feed_searchext_exclude', 'feed_searchext_link', 'feed_searchext_content'], function (k, input) {
  2731. 2376.  -       val(input, '');
  2732. 2377.  -     });
  2733. 2378.  -     Feed.searchUnchooseGeoPoint();
  2734. 2379.  -     Feed.searchUpdate();
  2735. 2380.  -     if (!fire) {
  2736. 2381.  -       return;
  2737. 2382.  -     }
  2738. 2383.  -
  2739. 2384.  -     var switchTo = 'news';
  2740. 2385.  -     switch (cur.section) {
  2741. 2386.  -       case 'articles':
  2742. 2387.  -       case 'articles_search':
  2743. 2388.  -         switchTo = 'articles';
  2744. 2389.  -         break;
  2745. 2390.  -
  2746. 2391.  -       case 'photos_search':
  2747. 2392.  -       case 'photos':
  2748. 2393.  -         switchTo = 'photos';
  2749. 2394.  -         break;
  2750. 2395.  -     }
  2751. 2396.  -     Feed.switchSection(switchTo);
  2752. 2397.  -   },
  2753. 2398.  -
  2754. 2399.  -   sinceOwnerOver: function (obj, oid, name) {
  2755. 2400.  -     if (!obj.nophoto) {
  2756. 2401.  -       Feed.sinceOwnerBigphOver(obj, oid);
  2757. 2402.  -     }
  2758. 2403.  -     showTooltip(obj, {
  2759. 2404.  -       text: name,
  2760. 2405.  -       showdt: 0,
  2761. 2406.  -       hidedt: 0,
  2762. 2407.  -       black: 1,
  2763. 2408.  -       shift: [12, 3, 3],
  2764. 2409.  -       forcetoup: true,
  2765. 2410.  -       // onCreate: function () {removeEvent(obj, 'mouseout');},
  2766. 2411.  -       className: 'feed_since_owner_tt'
  2767. 2412.  -     });
  2768. 2413.  -   },
  2769. 2414.  -   sinceOwnerBigphOver: function(obj, oid) {
  2770. 2415.  -     if (!cur.lang || !cur.lang.global_photo_full_size || browser.mobile) return;
  2771. 2416.  -     var o = obj.firstChild,
  2772. 2417.  -         ch = cur.phCache[oid];
  2773. 2418.  -     if (o.tagName != 'A' || o.className != 'feed_since_ownerph') {
  2774. 2419.  -       o = obj.insertBefore(ce('a', {className: 'feed_since_ownerph', href: ch && ch._id ? ('/photo' + ch._id + '?all=1') : ('/albums' + oid), innerHTML: '<span class="feed_since_ownerph_label">' + cur.lang.global_photo_full_size + '</span>'}), obj.firstChild);
  2775. 2420.  -       o.onclick = Feed.sinceOwnerBigphClick.pbind(oid, obj);
  2776. 2421.  -       o._oid = oid;
  2777. 2422.  -     }
  2778. 2423.  -
  2779. 2424.  -     clearTimeout(o.hideTO);
  2780. 2425.  -     animate(o, {marginTop: 65}, {duration: 200, transition: Fx.Transitions.easeOutCirc});
  2781. 2426.  -     cur.phShown[oid] = o;
  2782. 2427.  -
  2783. 2428.  -     if (!obj.onmouseout) obj.onmouseout = Feed.sinceOwnerBigphOut.pbind(obj);
  2784. 2429.  -   },
  2785. 2430.  -   sinceOwnerBigphOut: function(obj) {
  2786. 2431.  -     var o = obj.firstChild;
  2787. 2432.  -     if (!o || o.tagName != 'A' || o.className != 'feed_since_ownerph') return;
  2788. 2433.  -
  2789. 2434.  -     clearTimeout(o.hideTO);
  2790. 2435.  -     o.hideTO = setTimeout(function() {
  2791. 2436.  -       animate(o, {marginTop: 90}, 200);
  2792. 2437.  -       delete cur.phShown[o._oid];
  2793. 2438.  -     }, 150);
  2794. 2439.  -   },
  2795. 2440.  -   sinceOwnerBigphClick: function(oid, obj, ev) {
  2796. 2441.  -     if (checkEvent(ev) !== false) return;
  2797. 2442.  -
  2798. 2443.  -     obj && obj.tt && obj.tt.destroy();
  2799. 2444.  -     var ch = cur.phCache[oid]
  2800. 2445.  -         o = cur.phShown[oid],
  2801. 2446.  -         obj = domPN(o);
  2802. 2447.  -
  2803. 2448.  -     if (!o || !obj) return;
  2804. 2449.  -     if (ch === undefined) {
  2805. 2450.  -       ch = cur.phCache[oid] = 'show';
  2806. 2451.  -       ajax.post('al_photos.php', {act: 'fast_get_photo', oid: oid}, {onDone: function(res) {
  2807. 2452.  -         if (!res) {
  2808. 2453.  -           obj.onmouseover = function() {};
  2809. 2454.  -           re(o);
  2810. 2455.  -           return;
  2811. 2456.  -         }
  2812. 2457.  -         var sh = (cur.phCache[oid] == 'show');
  2813. 2458.  -         cur.phCache[oid] = res;
  2814. 2459.  -         o.href = '/photo' + res._id + '?all=1';
  2815. 2460.  -         if (sh) Feed.sinceOwnerBigphClick(oid, obj);
  2816. 2461.  -       }, onFail: function() {
  2817. 2462.  -         obj.nophoto = true;
  2818. 2463.  -         re(o);
  2819. 2464.  -         return true;
  2820. 2465.  -       }});
  2821. 2466.  -     }
  2822. 2467.  -     if (ch == 'show') {
  2823. 2468.  -       return cancelEvent(ev);
  2824. 2469.  -     }
  2825. 2470.  -     if (!ch) return;
  2826. 2471.  -     extend(ch, {
  2827. 2472.  -       jumpTo: {z: 'albums' + oid}
  2828. 2473.  -     });
  2829. 2474.  -     return showPhoto(ch._id, 'album' + oid + '_0/rev', ch, ev);
  2830. 2475.  -   },
  2831. 2476.  -
  2832. 2477.  -   go: function(params, onBeforeReplace, noscroll) {
  2833. 2478.  -     if (cur._back_local) {
  2834. 2479.  -       var hist = cur._back_local;
  2835. 2480.  -       if (hist.back) {
  2836. 2481.  -         showBackLink(hist.back[0], hist.back[1], hist.back[2]);
  2837. 2482.  -       } else {
  2838. 2483.  -         showBackLink(false);
  2839. 2484.  -       }
  2840. 2485.  -       cur._back_local = false;
  2841. 2486.  -     }
  2842. 2487.  -     if (cur.feedReq) {
  2843. 2488.  -       try {
  2844. 2489.  -         cur.feedReq.abort();
  2845. 2490.  -       } catch (e) {debugLog(e);}
  2846. 2491.  -     }
  2847. 2492.  -     var frame = 1, hideProgress = function () {
  2848. 2493.  -       cur.isFeedLoading = false;
  2849. 2494.  -     };
  2850. 2495.  -     if (browser.msie || noscroll) {
  2851. 2496.  -       frame = false;
  2852. 2497.  -       hideProgress = cur.onFrameBlocksDone;
  2853. 2498.  -     }
  2854. 2499.  -     cur.wasScroll = noscroll ? scrollGetY() : false;
  2855. 2500.  -     cur.feedReq = ajax.post('al_feed.php', extend(params, {part: 1}), {
  2856. 2501.  -       onDone: function (options, rows, js) {
  2857. 2502.  -         // debugLog(onBeforeReplace, options, rows.length, js);
  2858. 2503.  -         revertLastInlineVideo();
  2859. 2504.  -         if (window.tooltips) tooltips.destroyAll(ge('feed_rows'));
  2860. 2505.  -         boxQueue.hideAll();
  2861. 2506.  -         if (layers.fullhide) layers.fullhide(true);
  2862. 2507.  -
  2863. 2508.  -         if (frame) {
  2864. 2509.  -           ajax._framenext();
  2865. 2510.  -         }
  2866. 2511.  -         if (window.wall) wall.cancelEdit();
  2867. 2512.  -         boxQueue.hideAll();
  2868. 2513.  -         if (onBeforeReplace) {
  2869. 2514.  -           onBeforeReplace(rows || '');
  2870. 2515.  -         } else {
  2871. 2516.  -           val(cur.rowsCont, rows || '');
  2872. 2517.  -         }
  2873. 2518.  -         feed.applyOptions(options, 2);
  2874. 2519.  -         js && eval(js);
  2875. 2520.  -
  2876. 2521.  -         if (!params.norecom) {
  2877. 2522.  -           val('feed_recommends', options.recommends || '');
  2878. 2523.  -           var str = '/al_feed.php#' + ajx2q({act: 'recom'});
  2879. 2524.  -           if (ajaxCache[str]) delete(ajaxCache[str]);
  2880. 2525.  -           cur.recomPreload = false;
  2881. 2526.  -         }
  2882. 2527.  -         toggle('feed_recommends', cur.section == 'news' || cur.section == 'recommended');
  2883. 2528.  -
  2884. 2529.  -         // debugLog('init js:', js);
  2885. 2530.  -         var _a = window.audioPlayer, aid = currentAudioId();
  2886. 2531.  -         if (_a && aid && _a.showCurrentTrack) _a.showCurrentTrack();
  2887. 2532.  -         setTimeout(function () {
  2888. 2533.  -           var aid = currentAudioId();
  2889. 2534.  -           if (_a && aid && _a.showCurrentTrack) _a.showCurrentTrack();
  2890. 2535.  -         }, 100);
  2891. 2536.  -         setTimeout(feed.scrollCheck, 200);
  2892. 2537.  -       },
  2893. 2538.  -       onFail: function () {return false;},
  2894. 2539.  -       showProgress: function () {
  2895. 2540.  -         hide('feed_menu_toggle', 'feed_edit_hidden', 'feed_search_sort');
  2896. 2541.  -         if (cur.section == 'articles') {
  2897. 2542.  -           feed.sliderShowProgress();
  2898. 2543.  -         }
  2899. 2544.  -         show('feed_progress');
  2900. 2545.  -         cur.isFeedLoading = true;
  2901. 2546.  -       },
  2902. 2547.  -       frame: frame,
  2903. 2548.  -       ads: 1,
  2904. 2549.  -       hideProgress: hideProgress
  2905. 2550.  -     });
  2906. 2551.  -   },
  2907. 2552.  -
  2908. 2553.  -   init: function (options) {
  2909. 2554.  -     var searchEl = ge('feed_search');
  2910. 2555.  -     placeholderSetup(searchEl, {back: 1});
  2911. 2556.  -     cur.searchPh = geByClass1('input_back_content', ge('feed_isearch'));
  2912. 2557.  -
  2913. 2558.  -     FeedSearch.init(searchEl);
  2914. 2559.  -
  2915. 2560.  -     if (!window.Select) {
  2916. 2561.  -       addEvent(searchEl, 'focus', function (e) {
  2917. 2562.  -         stManager.add(['ui_controls.js', 'ui_controls.css'], feed.initUi);
  2918. 2563.  -         removeEvent(searchEl, 'focus', arguments.callee);
  2919. 2564.  -       });
  2920. 2565.  -     }
  2921. 2566.  -
  2922. 2567.  -     addEvent(searchEl, 'keydown focus', function (e) {
  2923. 2568.  -       if (e.type == 'focus') {
  2924. 2569.  -         if (cur.section.indexOf('articles') && cur.section.indexOf('photos')) {
  2925. 2570.  -           addClass('feed_bar', 'feed_bar_extended_search');
  2926. 2571.  -         }
  2927. 2572.  -         return;
  2928. 2573.  -       }
  2929. 2574.  -       if (e.keyCode == KEY.RETURN && (!FeedSearch.select || FeedSearch.select.active < 0)) {
  2930. 2575.  -         if (val(searchEl)) {
  2931. 2576.  -           feed.submitSearch();
  2932. 2577.  -         } else if (cur.section == 'search' || cur.section == 'articles_search') {
  2933. 2578.  -           if (feed.returnToFeed(false, false)) {
  2934. 2579.  -             feed.go(feed.getSectionParams(cur.section == 'search' ? 'news' : 'articles'));
  2935. 2580.  -           }
  2936. 2581.  -         }
  2937. 2582.  -         searchEl.blur();
  2938. 2583.  -         clearTimeout(cur.requestTimeout);
  2939. 2584.  -         return cancelEvent(e);
  2940. 2585.  -       }
  2941. 2586.  -       setTimeout(Feed.searchUpdate, 0);
  2942. 2587.  -     });
  2943. 2588.  -     setTimeout(function () {
  2944. 2589.  -       each(geByTag('textarea', cur.rowsCont), function() { placeholderSetup(this); });
  2945. 2590.  -     }, 200);
  2946. 2591.  -
  2947. 2592.  -     extend(cur, {
  2948. 2593.  -       oid: options.user_id,
  2949. 2594.  -       postTo: options.user_id,
  2950. 2595.  -       phCache: {},
  2951. 2596.  -       phShown: {},
  2952. 2597.  -       subsections: {},
  2953. 2598.  -       module: 'feed',
  2954. 2599.  -       isFeedLoading: false,
  2955. 2600.  -       wallPostCb: function () {
  2956. 2601.  -         if (cur.section == 'news') {
  2957. 2602.  -           setTimeout(feed.update.pbind(1), 1000);
  2958. 2603.  -         } else {
  2959. 2604.  -           setTimeout(feed.switchSection.pbind('news'), 1000);
  2960. 2605.  -         }
  2961. 2606.  -       },
  2962. 2607.  -       // Decomment
  2963. 2608.  -       // disableAutoMore: true,
  2964. 2609.  -
  2965. 2610.  -
  2966. 2611.  -       idleManager: (function () {
  2967. 2612.  -         var setIdleTo, checkIdleCb, checkIdleCbTo, onActive, onInActive, onFocusBlur, params = {
  2968. 2613.  -           isIdle: false,
  2969. 2614.  -           onIdle: null,
  2970. 2615.  -           onUnIdle: null,
  2971. 2616.  -           stop: function () {
  2972. 2617.  -             removeEvent(document, 'mousemove keydown', onActive);
  2973. 2618.  -             removeEvent(window, 'focus blur', onFocusBlur);
  2974. 2619.  -             // clearTimeout(setIdleTo);
  2975. 2620.  -             // clearTimeout(checkIdleCbTo);
  2976. 2621.  -           },
  2977. 2622.  -           start: function () {
  2978. 2623.  -             if (browser.mobile) return;
  2979. 2624.  -             // checkIdleCb = function () {
  2980. 2625.  -             //   if (!cur.idleManager) return;
  2981. 2626.  -             //   addEvent(document, 'mousemove keydown', onActive);
  2982. 2627.  -             //   clearTimeout(setIdleTo);
  2983. 2628.  -             //   setIdleTo = setTimeout(onBlur, 60000); // tab becomes idle in 30 secs without moving mouse or typing
  2984. 2629.  -             // };
  2985. 2630.  -             onActive = function () {
  2986. 2631.  -               if (!cur.idleManager) return;
  2987. 2632.  -               // clearTimeout(setIdleTo);
  2988. 2633.  -               if (params.isIdle) {
  2989. 2634.  -                 params.isIdle = false;
  2990. 2635.  -                 if (params.onUnIdle) params.onUnIdle();
  2991. 2636.  -                 debugLog('unidle');
  2992. 2637.  -               }
  2993. 2638.  -               // removeEvent(document, 'mousemove keydown', onAction);
  2994. 2639.  -               // clearTimeout(checkIdleCbTo);
  2995. 2640.  -               // checkIdleCbTo = setTimeout(checkIdleCb, 30000);
  2996. 2641.  -             };
  2997. 2642.  -             onInActive = function () {
  2998. 2643.  -               if (!cur.idleManager) return;
  2999. 2644.  -               params.isIdle = true;
  3000. 2645.  -               debugLog('idle');
  3001. 2646.  -               if (params.onIdle) params.onIdle();
  3002. 2647.  -             };
  3003. 2648.  -             onFocusBlur = function (e) {
  3004. 2649.  -               if (e.type == 'focus') {
  3005. 2650.  -                 onActive();
  3006. 2651.  -               } else {
  3007. 2652.  -                 onInActive();
  3008. 2653.  -               }
  3009. 2654.  -             };
  3010. 2655.  -             addEvent(window, 'focus blur', onFocusBlur);
  3011. 2656.  -             // clearTimeout(checkIdleCbTo);
  3012. 2657.  -             // checkIdleCbTo = setTimeout(checkIdleCb, 30000);
  3013. 2658.  -           }
  3014. 2659.  -         };
  3015. 2660.  -         return params;
  3016. 2661.  -       }()),
  3017. 2662.  -
  3018. 2663.  -       onFrameBlocksDone: /*vkLocal(*/function () {
  3019. 2664.  -         hide('feed_progress');
  3020. 2665.  -         feed.sliderHideProgress();
  3021. 2666.  -         toggle('feed_edit_hidden', cur.section == 'news' || cur.section == 'photos');
  3022. 2667.  -         toggle('feed_search_sort', cur.section == 'search'/* || cur.section == 'photos_search'*/);
  3023. 2668.  -         toggle('feed_menu_toggle', ge(feed.getTypesSection() + '_filters'));
  3024. 2669.  -         toggle('feed_rate_slider_wrap', cur.section == 'articles' && cur.subsection == 'top');
  3025. 2670.  -         cur.isFeedLoading = false;
  3026. 2671.  -         if (cur.wasScroll === 0 || cur.wasScroll > 0) {
  3027. 2672.  -           scrollToY(st, 0);
  3028. 2673.  -           cur.wasScroll = false;
  3029. 2674.  -         }
  3030. 2675.  -       }/*)*/,
  3031. 2676.  -
  3032. 2677.  -       // Cached entries' HTML
  3033. 2678.  -       feedEntriesHTML: {},
  3034. 2679.  -       feedUnreadCount: 0,
  3035. 2680.  -       feedInitialTitle: '',
  3036. 2681.  -       feedUnread: [],
  3037. 2682.  -       feedToSort: []
  3038. 2683.  -     });
  3039. 2684.  -
  3040. 2685.  -     cur.nav.push(function(changed, old, n, opts) {
  3041. 2686.  -       if (changed[0] !== undefined) return;
  3042. 2687.  -       var params = clone(n);
  3043. 2688.  -       delete(params[0]);
  3044. 2689.  -       var splitt = !!ge('feedtab_updates') || !ge('feedtab_news');
  3045. 2690.  -       if (splitt && changed.section !== undefined && ((cur.section == 'notifications' || cur.section == 'comments') &&changed.section != 'notifications' && changed.section != 'comments' || cur.section != 'notifications' && cur.section != 'comments' && (changed.section == 'notifications' || changed.section == 'comments'))) {
  3046. 2691.  -         return;
  3047. 2692.  -       }
  3048. 2693.  -       if ((cur.section == 'owner' || cur.section == 'search') && !feed.returnToFeed(params, opts.back || opts.hist)) {
  3049. 2694.  -         return false;
  3050. 2695.  -       }
  3051. 2696.  -       if (changed.q) {
  3052. 2697.  -         feed.submitSearch(changed.q, params.section || '');
  3053. 2698.  -         return false;
  3054. 2699.  -       }
  3055. 2700.  -       if (changed.list) {
  3056. 2701.  -         Feed.switchList(changed.list);
  3057. 2702.  -         return false;
  3058. 2703.  -       }
  3059. 2704.  -       feed.go(extend(params, opts.params || {}));
  3060. 2705.  -       return false;
  3061. 2706.  -     });
  3062. 2707.  -     cur.idleManager.onUnIdle = feed.updateTitle;
  3063. 2708.  -     cur.idleManager.onIdle = feed.reSortItems;
  3064. 2709.  -
  3065. 2710.  -     cur.options = cur.options || {};
  3066. 2711.  -     extend(cur.options, options);
  3067. 2712.  -     feed.applyOptions(options, 3);
  3068. 2713.  -
  3069. 2714.  -     // Extrnal static requred
  3070. 2715.  -     // page.js
  3071. 2716.  -     cur.rowsCont = options.wallCont = ge('feed_rows');
  3072. 2717.  -     wall.init(options);
  3073. 2718.  -
  3074. 2719.  -     // Scroll check routine
  3075. 2720.  -     feed.scrollNode = browser.msie6 ? pageNode : window;
  3076. 2721.  -
  3077. 2722.  -     cur._back = {
  3078. 2723.  -       text: getLang('news_return_to_news'),
  3079. 2724.  -       show: [feed.startEvents],
  3080. 2725.  -       hide: [function () {
  3081. 2726.  -         clearInterval(cur.updateInt);
  3082. 2727.  -         removeEvent(feed.scrollNode, 'scroll', feed.scrollCheck);
  3083. 2728.  -         removeEvent(window, 'resize', feed.scrollCheck);
  3084. 2729.  -         cur.idleManager.stop();
  3085. 2730.  -         clearTimeout(cur.lp_error_to);
  3086. 2731.  -         // removeEvent(document, 'click', Feed.searchClickOutside);
  3087. 2732.  -       }],
  3088. 2733.  -       loc: false
  3089. 2734.  -     };
  3090. 2735.  -     feed.startEvents();
  3091. 2736.  -     var _a = window.audioPlayer,
  3092. 2737.  -         aid = currentAudioId();
  3093. 2738.  -     if (_a && aid && _a.showCurrentTrack) _a.showCurrentTrack();
  3094. 2739.  -
  3095. 2740.  -     if (browser.mobile) {
  3096. 2741.  -       setStyle('feed_rate_slider_wrap', {width: 150});
  3097. 2742.  -       hide('feed_rate_full');
  3098. 2743.  -       show('feed_rate_mobile');
  3099. 2744.  -     }
  3100. 2745.  -
  3101. 2746.  -     setTimeout(feed.scrollCheck, 200);
  3102. 2747.  -   },
  3103. 2748.  -   startEvents: function () {
  3104. 2749.  -     // IDLE manager
  3105. 2750.  -     cur.idleManager.start();
  3106. 2751.  -
  3107. 2752.  -     // Feed update interval
  3108. 2753.  -     cur.updateInt = setInterval(function () {feed.update(0);}, 20000);
  3109. 2754.  -
  3110. 2755.  -     // Scroll check routine for auto preload next news
  3111. 2756.  -     addEvent(feed.scrollNode, 'scroll', feed.scrollCheck);
  3112. 2757.  -     addEvent(window, 'resize', feed.scrollCheck);
  3113. 2758.  -     // addEvent(document, 'click', Feed.searchClickOutside);
  3114. 2759.  -   },
  3115. 2760.  -   initUi: function () {
  3116. 2761.  -     cur.searchSortMenu = new DropdownMenu(cur.options.search_sorts, {
  3117. 2762.  -       target: ge('feed_search_sort_dd'),
  3118. 2763.  -       onSelect: function (e) {
  3119. 2764.  -         feed.submitSearch()
  3120. 2765.  -       },
  3121. 2766.  -       fadeSpeed: 0
  3122. 2767.  -     });
  3123. 2768.  -
  3124. 2769.  -     FeedSearch.initSelect();
  3125. 2770.  -     cur.destroy.push(function () {
  3126. 2771.  -       FeedSearch.destroy();
  3127. 2772.  -     });
  3128. 2773.  -   },
  3129. 2774.  -   applyUi: function () {
  3130. 2775.  -     // debugLog('apply ui');
  3131. 2776.  -     if (!cur.searchSortMenu) return;
  3132. 2777.  -     cur.searchSortMenu.setOptions({title: cur.search_sort[1]});
  3133. 2778.  -     cur.searchSortMenu.value = cur.search_sort[0];
  3134. 2779.  -     val('feed_search_sort_dd', cur.search_sort[1].replace(/\s+/g, '&nbsp;'));
  3135. 2780.  -   },
  3136. 2781.  -   mentionClick: function(el, ev) {
  3137. 2782.  -     var post = ((el.getAttribute('mention') || '').match(/^bp(-?\d+_\d+)$/) || {})[1];
  3138. 2783.  -     if (!post) return nav.go(el, ev);
  3139. 2784.  -
  3140. 2785.  -     post = post.split('_');
  3141. 2786.  -     for (; el; el = el.parentNode) {
  3142. 2787.  -       var m = (el.id || '').match(/^replies(-?\d+_topic\d+)$/);
  3143. 2788.  -       if (m) {
  3144. 2789.  -         var topic = m[1].split('_');
  3145. 2790.  -         if (topic[0] == post[0]) {
  3146. 2791.  -           return wall.showReply(m[1], post[0] + 'topic_' + post[1]);
  3147. 2792.  -         } else {
  3148. 2793.  -           break;
  3149. 2794.  -         }
  3150. 2795.  -       }
  3151. 2796.  -     }
  3152. 2797.  -     return nav.go(el, ev);
  3153. 2798.  -   },
  3154. 2799.  -
  3155. 2800.  -   recomPreload: function() {
  3156. 2801.  -     if (cur.recomPreload) return;
  3157. 2802.  -     cur.recomPreload = true;
  3158. 2803.  -     ajax.post('/al_feed.php', {act: 'recom'}, {cache: 1});
  3159. 2804.  -   },
  3160. 2805.  -   recomMore: function(ev) {
  3161. 2806.  -     if (checkEvent(ev) !== false) return;
  3162. 2807.  -     var cont = ge('feed_recom_rows'), lnk = ge('feed_recom_more');
  3163. 2808.  -     if (cont.childNodes.length > 2) {
  3164. 2809.  -       var old = getSize(cont)[1];
  3165. 2810.  -       while (cont.childNodes.length > 2) {
  3166. 2811.  -         cont.removeChild(cont.lastChild);
  3167. 2812.  -       }
  3168. 2813.  -       scrollToY(0, 0);
  3169. 2814.  -       hide(lnk.firstChild.nextSibling);
  3170. 2815.  -       show(lnk.firstChild);
  3171. 2816.  -       return cancelEvent(ev);
  3172. 2817.  -     }
  3173. 2818.  -
  3174. 2819.  -     ajax.post('/al_feed.php', {act: 'recom'}, {cache: 1, onDone: function(rows) {
  3175. 2820.  -       hide(lnk.firstChild);
  3176. 2821.  -       show(lnk.firstChild.nextSibling);
  3177. 2822.  -       var e = ce('div', {innerHTML: rows}), c = ge('feed_recom_rows'), el;
  3178. 2823.  -       while (el = e.firstChild) {
  3179. 2824.  -         if (ge(el.id)) {
  3180. 2825.  -           re(el);
  3181. 2826.  -         } else {
  3182. 2827.  -           c.appendChild(el);
  3183. 2828.  -         }
  3184. 2829.  -       }
  3185. 2830.  -       if (c.childNodes.length % 2) re(c.lastChild);
  3186. 2831.  -     }, showProgress: function() {
  3187. 2832.  -       hide(lnk.firstChild);
  3188. 2833.  -       show(lnk.lastChild);
  3189. 2834.  -     }, hideProgress: function() {
  3190. 2835.  -       show(lnk.firstChild);
  3191. 2836.  -       hide(lnk.lastChild);
  3192. 2837.  -     }});
  3193. 2838.  -     return cancelEvent(ev);
  3194. 2839.  -   },
  3195. 2840.  -   recomSubscribe: function(oid, btn) {
  3196. 2841.  -     ajax.post('/al_feed.php', {act: 'subscr', oid: oid, from: nav.objLoc.section, hash: val('feed_recom_hash')}, {
  3197. 2842.  -       onDone: function(text) {
  3198. 2843.  -         btn.parentNode.parentNode.replaceChild(ce('div', {className: 'feed_recom_done fl_l', innerHTML: text}), btn.parentNode);
  3199. 2844.  -         if (nav.objLoc.section != 'recommended') {
  3200. 2845.  -           nav.go(nav.objLoc, false, {params: {norecom: 1}});
  3201. 2846.  -         }
  3202. 2847.  -       },
  3203. 2848.  -       showProgress: lockButton.pbind(btn),
  3204. 2849.  -       hideProgress: unlockButton.pbind(btn)
  3205. 2850.  -     });
  3206. 2851.  -   }
  3207. 2852.  -
  3208. 2853.  - };
  3209. 2854.  - window.feed = Feed;
  3210. 2855.  -
  3211. 2856.  - FeedSearch =  {
  3212. 2857.  -   init: function (input, options) {
  3213. 2858.  -     return false;
  3214. 2859.  -     var self = this;
  3215. 2860.  -     this.input = input;
  3216. 2861.  -     this.cont = input.parentNode.parentNode;
  3217. 2862.  -     var resultContainer = ce('div', {className: 'results_container', innerHTML: '<div class="result_list"></div><div class="result_list_shadow"><div class="shadow1"></div><div class="shadow2"></div></div>'});
  3218. 2863.  -     this.cont.appendChild(resultContainer);
  3219. 2864.  -     this.resultList = geByClass('result_list', resultContainer)[0];
  3220. 2865.  -     this.resultListShadow = geByClass('result_list_shadow', resultContainer)[0];
  3221. 2866.  -     hide(this.resultList, this.resultListShadow);
  3222. 2867.  -
  3223. 2868.  -     if (browser.chrome) this.resultList.style.opacity = 1;
  3224. 2869.  -     else if (!browser.safari) setStyle(this.resultListShadow, 'top', browser.mozilla ? 0 : (browser.msie && browser.version < 8) ? 0 : -1);
  3225. 2870.  -     this.resultList.style.width = this.resultListShadow.style.width = resultContainer.style.width = '273px';
  3226. 2871.  -
  3227. 2872.  -     this.initSelect();
  3228. 2873.  -
  3229. 2874.  -     addEvent(input, 'keyup click mouseup', function (e) {
  3230. 2875.  -       if (!self.select) return;
  3231. 2876.  -       if (self.select.isVisible() && self.select.active > -1) {
  3232. 2877.  -         if (inArray(e.keyCode, [KEY.UP, KEY.DOWN, KEY.PAGEUP, KEY.PAGEDOWN, KEY.RETURN])) return cancelEvent(e);
  3233. 2878.  -       }
  3234. 2879.  -       clearTimeout(cur.requestTimeout);
  3235. 2880.  -       var term = val(input);
  3236. 2881.  -       self.currentTerm = term;
  3237. 2882.  -       var section = cur.section;
  3238. 2883.  -       if (!term) {
  3239. 2884.  -         self.select.hide();
  3240. 2885.  -         return;
  3241. 2886.  -       }
  3242. 2887.  -       cur.requestTimeout = setTimeout(function() {
  3243. 2888.  -         ajax.post('/hints.php?act=a_feed_hints', {q: term, section: section}, {
  3244. 2889.  -           onDone: function (data) {
  3245. 2890.  -             if (self.currentTerm === term) self.showSelectList(term, data);
  3246. 2891.  -           }, cache: 1
  3247. 2892.  -         });
  3248. 2893.  -       }, 300);
  3249. 2894.  -     });
  3250. 2895.  -     addEvent(input, 'blur', function () {
  3251. 2896.  -       clearTimeout(cur.requestTimeout);
  3252. 2897.  -       delete self.currentTerm;
  3253. 2898.  -       if (!self.select) return;
  3254. 2899.  -       self.select.hide();
  3255. 2900.  -     });
  3256. 2901.  -     addEvent(input, 'keypress keydown', function (e) {
  3257. 2902.  -       if (!self.select) return;
  3258. 2903.  -       if (!self.select || self.select.active < 0) return true;
  3259. 2904.  -
  3260. 2905.  -       if (e.keyCode == KEY.RETURN || e.keyCode == 10) {
  3261. 2906.  -         if (self.select && self.select.isVisible()) {
  3262. 2907.  -           triggerEvent(document, e.type, e);
  3263. 2908.  -           return cancelEvent(e);
  3264. 2909.  -         }
  3265. 2910.  -       } else if (e.keyCode == KEY.SPACE) {
  3266. 2911.  -         var el = self.select.list.childNodes[self.select.active], id = el ? el.getAttribute('val') : '', item;
  3267. 2912.  -         each(self.lastItems, function () {
  3268. 2913.  -           if (this[0] == id) {
  3269. 2914.  -             item = this;
  3270. 2915.  -           }
  3271. 2916.  -         });
  3272. 2917.  -         if (!item) return;
  3273. 2918.  -         val(input, item[3] + ' ');
  3274. 2919.  -         focusAtEnd(input);
  3275. 2920.  -         return cancelEvent(e);
  3276. 2921.  -       }
  3277. 2922.  -       return true;
  3278. 2923.  -     });
  3279. 2924.  -   },
  3280. 2925.  -   initSelect: function () {
  3281. 2926.  -     return false;
  3282. 2927.  -     if (this.select || !window.Select || !window._ui) return;
  3283. 2928.  -     if (!this.resultList || !this.resultListShadow) {
  3284. 2929.  -       debugLog('no containers', this.resultList, this.resultListShadow);
  3285. 2930.  -       return;
  3286. 2931.  -     }
  3287. 2932.  -     this.guid = _ui.reg(this);
  3288. 2933.  -     this.select = new Select(this.resultList, this.resultListShadow, {
  3289. 2934.  -       selectFirst: false,
  3290. 2935.  -       onItemSelect: this.onItemSelect.bind(this),
  3291. 2936.  -       onShow: _ui.sel.pbind(this.guid),
  3292. 2937.  -       onHide: _ui.sel.pbind(false),
  3293. 2938.  -       cycle: true
  3294. 2939.  -     });
  3295. 2940.  -     this.select.hide();
  3296. 2941.  -   },
  3297. 2942.  -   showSelectList: function (term, items) {
  3298. 2943.  -     var self = this;
  3299. 2944.  -     if (!this.select) return;
  3300. 2945.  -     items = isArray(items) && items.length ? items : [];
  3301. 2946.  -     if (!items.length) {
  3302. 2947.  -       self.select.hide();
  3303. 2948.  -       return;
  3304. 2949.  -     }
  3305. 2950.  -     this.select.clear();
  3306. 2951.  -     this.lastItems = items;
  3307. 2952.  -     this.select.content(items);
  3308. 2953.  -     this.select.show();
  3309. 2954.  -   },
  3310. 2955.  -   onItemSelect: function(id) {
  3311. 2956.  -     if (!this.select) return;
  3312. 2957.  -     this.select.hide();
  3313. 2958.  -     var item;
  3314. 2959.  -     each(this.lastItems, function () {
  3315. 2960.  -       if (this[0] == id) {
  3316. 2961.  -         item = this;
  3317. 2962.  -       }
  3318. 2963.  -     });
  3319. 2964.  -     if (!item) return;
  3320. 2965.  -     val(this.input, '');
  3321. 2966.  -     feed.switchOwner(item[4], item[3]);
  3322. 2967.  -     this.input.blur();
  3323. 2968.  -   },
  3324. 2969.  -   onEvent: function(e) {
  3325. 2970.  -     if (e.type == (browser.opera || browser.mozilla ? 'keypress' : 'keydown')) {
  3326. 2971.  -       this.select.handleKeyEvent(e);
  3327. 2972.  -     }
  3328. 2973.  -   },
  3329. 2974.  -   destroy: function (prevCur) {
  3330. 2975.  -     cleanElems(this.resultList, this.resultListShadow, this.input);
  3331. 2976.  -     clearTimeout(prevCur ? prevCur.requestTimeout : cur.requestTimeout);
  3332. 2977.  -     if (this.select) {
  3333. 2978.  -       this.select.destroy();
  3334. 2979.  -       delete this.select;
  3335. 2980.  -     }
  3336. 2981.  -     if (this.resultList) {
  3337. 2982.  -       re(this.resultList.parentNode);
  3338. 2983.  -     }
  3339. 2984.  -     delete this.lastItems;
  3340. 2985.  -     this.inited = false;
  3341. 2986.  -   }
  3342. 2987.  - }
  3343. 2988.  -
  3344. 2989.  - try{stManager.done('feed.js');}catch(e){}
  3345. ------
  3346. Файл - feed.css (Старый размер - 31113 | Новый - 0):
  3347. 0.  - #feed_css {
  3348. 1.  -   display: none;
  3349. 2.  - }
  3350. 3.  - #no_updates {
  3351. 4.  -  text-align:center;
  3352. 5.  -  padding: 90px 35px;
  3353. 6.  -  font-size: 1.18em;
  3354. 7.  -  color:#777;
  3355. 8.  - }
  3356. 9.  - /* Top nav */
  3357. 10.  - .feed_tab_hidden {
  3358. 11.  -   display: none;
  3359. 12.  - }
  3360. 13.  - #feed_bar {
  3361. 14.  -   padding: 8px 10px 8px;
  3362. 15.  -   background: #F7F7F7;
  3363. 16.  -   border-bottom: 1px solid #DAE1E8;
  3364. 17.  - }
  3365. 18.  - #feed_search_wrap {
  3366. 19.  -   clear: left;
  3367. 20.  -   padding: 0;
  3368. 21.  -   position: relative;
  3369. 22.  - }
  3370. 23.  - #feed_search {
  3371. 24.  -   margin: 0;
  3372. 25.  -   padding: 6px 21px 6px 20px;
  3373. 26.  -   width: 554px;
  3374. 27.  -   line-height: 1.27em;
  3375. 28.  -   background: #FFF url(/images/magglass.png) no-repeat 5px 8px;
  3376. 29.  -   outline: none;
  3377. 30.  - }
  3378. 31.  - #feed_search::-ms-clear {
  3379. 32.  -   display: none;
  3380. 33.  - }
  3381. 34.  -
  3382. 35.  - #feed_query_reset {
  3383. 36.  -   cursor: pointer;
  3384. 37.  -   display: none;
  3385. 38.  -   background: transparent url(/images/icons/input_clear.gif) 6px 8px no-repeat;
  3386. 39.  -   padding: 1px;
  3387. 40.  -   width: 22px;
  3388. 41.  -   height: 25px;
  3389. 42.  -   margin: 0 0 0 573px;
  3390. 43.  -   opacity: 0.6;
  3391. 44.  -   filter: alpha(opacity=60);
  3392. 45.  -   z-index: 100;
  3393. 46.  -   position: absolute;
  3394. 47.  - }
  3395. 48.  - #feed_query_reset:hover {
  3396. 49.  -   opacity: 1;
  3397. 50.  -   filter: none;
  3398. 51.  - }
  3399. 52.  - .feed_search_submit {
  3400. 53.  -   margin: 0 10px;
  3401. 54.  - }
  3402. 55.  - .feed_search_extended {
  3403. 56.  -   margin: 6px 5px 5px;
  3404. 57.  -   white-space: nowrap;
  3405. 58.  -   max-width: 122px;
  3406. 59.  -   overflow: hidden;
  3407. 60.  -   text-overflow: ellipsis;
  3408. 61.  - }
  3409. 62.  - #feed_search_submit_wrap {
  3410. 63.  -   display: none;
  3411. 64.  - }
  3412. 65.  - #feed_search_submit {
  3413. 66.  -   width: 75px;
  3414. 67.  -   padding-top: 5px;
  3415. 68.  -   padding-bottom: 5px;
  3416. 69.  -   line-height: 13px;
  3417. 70.  - }
  3418. 71.  - #feed_search_bar {
  3419. 72.  -   position: relative;
  3420. 73.  -   padding: 4px 5px;
  3421. 74.  - }
  3422. 75.  - .feed_search_extform_wrap {
  3423. 76.  -   display: none;
  3424. 77.  - }
  3425. 78.  - .feed_bar_extended_search #feed_search_submit_wrap,
  3426. 79.  - .feed_bar_extended_search .feed_search_extform_wrap {
  3427. 80.  -   display: block;
  3428. 81.  - }
  3429. 82.  -
  3430. 83.  - #feed_search_bar .selector_container .results_container {
  3431. 84.  -   top: 30px;
  3432. 85.  - }
  3433. 86.  - #feed_search_bar #feed_search_extform .selector_container .results_container {
  3434. 87.  -   top: auto;
  3435. 88.  - }
  3436. 89.  -
  3437. 90.  - #feedtab_owner,
  3438. 91.  - #feedtab_source {
  3439. 92.  -   display: none;
  3440. 93.  - }
  3441. 94.  - #feed_bar .summary_tab_sel,
  3442. 95.  - #main_feed .active_link {
  3443. 96.  -   display: block;
  3444. 97.  - }
  3445. 98.  - #feed_menu_toggle {
  3446. 99.  -   padding-top: 3px;
  3447. 100.  - }
  3448. 101.  - #feed_edit_hidden {
  3449. 102.  -   padding-top: 3px;
  3450. 103.  - }
  3451. 104.  - #feed_progress {
  3452. 105.  -   display: none;
  3453. 106.  -   margin: 5px 5px 2px;
  3454. 107.  - }
  3455. 108.  - #feed_popular_period {
  3456. 109.  -   border-bottom: 1px solid #DAE2E8;
  3457. 110.  -   margin-bottom: 5px;
  3458. 111.  -   padding-bottom: 5px;
  3459. 112.  -   overflow: hidden;
  3460. 113.  -   width: 136px;
  3461. 114.  - }
  3462. 115.  - #feed_articles_period {
  3463. 116.  -   overflow: hidden;
  3464. 117.  -   width: 136px;
  3465. 118.  - }
  3466. 119.  -
  3467. 120.  - .feed_tab_settings nobr {
  3468. 121.  -   display: block;
  3469. 122.  -   background: url(/images/icons/audio_icons.png?5) -80px -52px no-repeat;
  3470. 123.  -   width: 11px;
  3471. 124.  -   height: 11px;
  3472. 125.  -   margin: 1px 0 0;
  3473. 126.  - }
  3474. 127.  -
  3475. 128.  - /* New post field */
  3476. 129.  - .feed_post_field_wrap {
  3477. 130.  -   padding: 5px;
  3478. 131.  - }
  3479. 132.  - td.feed_post_field_photo {
  3480. 133.  -   width: 42px;
  3481. 134.  - }
  3482. 135.  - a.feed_post_field_photo {
  3483. 136.  -   display: block;
  3484. 137.  -   width: 32px;
  3485. 138.  -   height: 32px;
  3486. 139.  -   position: absolute;
  3487. 140.  -   overflow: hidden;
  3488. 141.  - }
  3489. 142.  - img.feed_post_field_photo {
  3490. 143.  -   width: 32px;
  3491. 144.  -   height: 32px;
  3492. 145.  - }
  3493. 146.  - div.feed_post_field {
  3494. 147.  -   margin-left: 42px;
  3495. 148.  - }
  3496. 149.  -
  3497. 150.  - #main_feed .feed_post_field_wrap #submit_post_box {
  3498. 151.  -   padding: 0;
  3499. 152.  -   background: none;
  3500. 153.  -   border: 0;
  3501. 154.  - }
  3502. 155.  - #main_feed .feed_post_field_wrap #submit_post_box .clear_fix .input_back {
  3503. 156.  -   min-height: 0;
  3504. 157.  -   margin-left: 5px !important;
  3505. 158.  - }
  3506. 159.  - #main_feed .feed_post_field_wrap #submit_post_box .clear_fix .input_back_content {
  3507. 160.  -   line-height: 2.09em;
  3508. 161.  - }
  3509. 162.  - #main_feed .feed_post_field_wrap #submit_post_box textarea#post_field {
  3510. 163.  -   width: 547px;
  3511. 164.  -   height: 24px;
  3512. 165.  -   line-height: 150%;
  3513. 166.  - }
  3514. 167.  - .feed_post_field_wrap #submit_post {
  3515. 168.  -   display: none;
  3516. 169.  - }
  3517. 170.  - .feed_post_field_wrap .mention_rich_ta {
  3518. 171.  -   line-height: 150%;
  3519. 172.  - }
  3520. 173.  -
  3521. 174.  - .feed_post_field_wrap .post_upload_wrap {
  3522. 175.  -   top: 7px;
  3523. 176.  -   right: 5px;
  3524. 177.  - }
  3525. 178.  - .feed_post_field_wrap .post_upload_dropbox_inner {
  3526. 179.  -   width: 543px;
  3527. 180.  - }
  3528. 181.  - .feed_post_field_wrap .post_upload_min_wrap {
  3529. 182.  -   top: 0px;
  3530. 183.  -   right: 0px;
  3531. 184.  - }
  3532. 185.  - .feed_post_field_wrap .post_upload_min_wrap div.post_upload {
  3533. 186.  -   height: 32px;
  3534. 187.  -   background-position: center 10px;
  3535. 188.  - }
  3536. 189.  -
  3537. 190.  -
  3538. 191.  - #main_feed .post {
  3539. 192.  -   border-top: 0;
  3540. 193.  -   border-bottom: 1px solid #DAE1E8;
  3541. 194.  -   padding: 5px 0 3px;
  3542. 195.  - }
  3543. 196.  - #main_feed .post .match {
  3544. 197.  -   background: #E1E7ED;
  3545. 198.  -   border-bottom: 1px solid #DAE1E8;
  3546. 199.  -   margin: 0px;
  3547. 200.  -   padding: 0px 1px;
  3548. 201.  - }
  3549. 202.  - #main_feed .post .feed_ignore_label {
  3550. 203.  -   text-align: center;
  3551. 204.  -   line-height: 1.81em;
  3552. 205.  -   padding: 8px 60px 8px;
  3553. 206.  - }
  3554. 207.  - .feed_ignore_owner_button {
  3555. 208.  -   margin: 0 5px;
  3556. 209.  - }
  3557. 210.  - .feed_ignore_cancel_wrap {
  3558. 211.  -   position: relative;
  3559. 212.  - }
  3560. 213.  - .feed_ignore_cancel {
  3561. 214.  -   display: block;
  3562. 215.  -   position: absolute;
  3563. 216.  -   right: -60px;
  3564. 217.  -   padding: 3px 5px 2px;
  3565. 218.  - }
  3566. 219.  - .feed_ignore_owner_second_button {
  3567. 220.  -   margin-top: 10px;
  3568. 221.  - }
  3569. 222.  -
  3570. 223.  - #main_feed #show_more_link {
  3571. 224.  -   margin-top: -1px;
  3572. 225.  -   padding: 10px 0;
  3573. 226.  -   margin-bottom: 15px;
  3574. 227.  - }
  3575. 228.  -
  3576. 229.  - #main_feed .explain {
  3577. 230.  -   line-height: 150%;
  3578. 231.  -   padding-left: 1px;
  3579. 232.  - }
  3580. 233.  - #main_feed .feed_group_explain {
  3581. 234.  -   padding-top: 6px;
  3582. 235.  -   color: #777;
  3583. 236.  - }
  3584. 237.  -
  3585. 238.  - #main_feed .feed_explain_list {
  3586. 239.  -   padding-top: 4px;
  3587. 240.  -   line-height: 160%;
  3588. 241.  -   height: auto;
  3589. 242.  - }
  3590. 243.  -
  3591. 244.  - .post_photos .like_wrap, .post_photos .replies_wrap {
  3592. 245.  -   display: none;
  3593. 246.  - }
  3594. 247.  -
  3595. 248.  - .feed_friends {
  3596. 249.  -   vertical-align: middle;
  3597. 250.  -   padding-top: 5px;
  3598. 251.  - }
  3599. 252.  - .feed_friend {
  3600. 253.  -   float: left;
  3601. 254.  -   width: 100px;
  3602. 255.  -   padding: 8px 15px 0 0;
  3603. 256.  - }
  3604. 257.  - .feed_friend_image {
  3605. 258.  -   height: 100px;
  3606. 259.  -   overflow: hidden;
  3607. 260.  - }
  3608. 261.  - .feed_friend_name {
  3609. 262.  -   padding: 5px 5px 1px;
  3610. 263.  -   overflow: hidden;
  3611. 264.  -   line-height: 1.27em;
  3612. 265.  -   text-align: center;
  3613. 266.  - }
  3614. 267.  -
  3615. 268.  - .feed_gifts {
  3616. 269.  -   vertical-align: middle;
  3617. 270.  -   padding-top: 5px;
  3618. 271.  - }
  3619. 272.  - .feed_gift {
  3620. 273.  -   float: left;
  3621. 274.  -   width: 96px;
  3622. 275.  -   padding: 5px 5px 5px 0;
  3623. 276.  -   text-align: center;
  3624. 277.  - }
  3625. 278.  - .feed_gift_image {
  3626. 279.  -   height: 96px;
  3627. 280.  -   overflow: hidden;
  3628. 281.  - }
  3629. 282.  -
  3630. 283.  - .feed_videos {
  3631. 284.  -   vertical-align: middle;
  3632. 285.  -   padding-top: 10px;
  3633. 286.  - }
  3634. 287.  -
  3635. 288.  - .feed_filter_sep {
  3636. 289.  -   margin: 10px 0px;
  3637. 290.  -   border-bottom: 1px solid #DAE2E8;
  3638. 291.  -   height: 1px;
  3639. 292.  -   overflow: hidden;
  3640. 293.  -   width: 136px;
  3641. 294.  - }
  3642. 295.  - #feed_menu .feed_s_filter {
  3643. 296.  -   display: none;
  3644. 297.  - }
  3645. 298.  -
  3646. 299.  - #posts_filter {
  3647. 300.  -   padding: 0;
  3648. 301.  -   margin: 0;
  3649. 302.  -   outline: 0;
  3650. 303.  - }
  3651. 304.  -
  3652. 305.  - #feed_summary_wrap .summary {
  3653. 306.  -   word-wrap: break-word;
  3654. 307.  - }
  3655. 308.  -
  3656. 309.  - a#posts_filter:hover {
  3657. 310.  -   text-decoration: underline !important;
  3658. 311.  - }
  3659. 312.  - .dd_menu_posts .dd_menu_header {
  3660. 313.  -   width: 130px;
  3661. 314.  - }
  3662. 315.  - .dd_menu_posts .dd_header_hover {
  3663. 316.  -   visibility: hidden;
  3664. 317.  - }
  3665. 318.  - .dd_menu_posts .dd_menu_rows a, .dd_menu_groups .dd_menu_rows a {
  3666. 319.  -   padding-top: 3px;
  3667. 320.  -   height: 17px;
  3668. 321.  - }
  3669. 322.  - .dd_menu_groups .dd_menu_rows a {
  3670. 323.  -   padding-top: 2px;
  3671. 324.  -   height: 16px;
  3672. 325.  - }
  3673. 326.  - .dd_menu_groups .dd_menu_rows a {
  3674. 327.  -   overflow: hidden;
  3675. 328.  - }
  3676. 329.  -
  3677. 330.  - .dd_menu_groups .dd_menu_rows .dd_item_-5,
  3678. 331.  - .dd_menu_groups .dd_menu_rows .dd_item_-4,
  3679. 332.  - .dd_menu_groups .dd_menu_rows .dd_item_-3,
  3680. 333.  - .dd_menu_groups .dd_menu_rows .dd_item_-2,
  3681. 334.  - .dd_menu_groups .dd_menu_rows .dd_item_-1 {
  3682. 335.  -   background-image: url(/images/icons/mono_iconset.gif?8);
  3683. 336.  -   background-repeat: no-repeat;
  3684. 337.  -   padding-right: 26px;
  3685. 338.  - }
  3686. 339.  -
  3687. 340.  - .dd_menu_groups .dd_menu_rows .dd_item_-5 { background-position: 97% -40px; }
  3688. 341.  - .dd_menu_groups .dd_menu_rows .dd_item_-4 { background-position: 97% -53px; }
  3689. 342.  - .dd_menu_groups .dd_menu_rows .dd_item_-3 { background-position: 97% 3px; }
  3690. 343.  - .dd_menu_groups .dd_menu_rows .dd_item_-2 { background-position: 97% -116px; }
  3691. 344.  - .dd_menu_groups .dd_menu_rows .dd_item_-1 { background-position: 97% -86px; }
  3692. 345.  -
  3693. 346.  -
  3694. 347.  -
  3695. 348.  - #feed_menu_wrap {
  3696. 349.  -   position: relative;
  3697. 350.  - }
  3698. 351.  - #feed_menu {
  3699. 352.  -   position: absolute;
  3700. 353.  -   left: 470px;
  3701. 354.  -   top: -1px;
  3702. 355.  -   -moz-box-shadow: 0 1px 3px #DAE1E8;
  3703. 356.  -   -webkit-box-shadow: 0 1px 3px #DAE1E8;
  3704. 357.  -   box-shadow: 0 1px 3px #DAE1E8;
  3705. 358.  -   background: #F7F7F7;
  3706. 359.  -   z-index: 1403;
  3707. 360.  -   display: none;
  3708. 361.  -   border: 1px solid #DAE1E8;
  3709. 362.  -   line-height: 150%;
  3710. 363.  -   width: 136px;
  3711. 364.  -   padding: 10px;
  3712. 365.  - }
  3713. 366.  - .feed_filter_row {
  3714. 367.  -   cursor: pointer;
  3715. 368.  -   margin-bottom: 2px;
  3716. 369.  -   padding: 3px 0;
  3717. 370.  -   clear: left;
  3718. 371.  -   line-height: normal;
  3719. 372.  - }
  3720. 373.  - .feed_filter_row:last-child {
  3721. 374.  -   margin: 0;
  3722. 375.  - }
  3723. 376.  - .feed_filter_row_over {
  3724. 377.  -   background-color: #DAE1E8;
  3725. 378.  - }
  3726. 379.  -
  3727. 380.  - .feed_filter_icon {
  3728. 381.  -   margin: 1px 0 0 4px;
  3729. 382.  -   width: 11px;
  3730. 383.  -   height: 11px;
  3731. 384.  -   background-image: url(/images/icons/mono_iconset.gif?8);
  3732. 385.  -   background-repeat: no-repeat;
  3733. 386.  - }
  3734. 387.  - .feed_filter_check {
  3735. 388.  -   width: 13px;
  3736. 389.  -   height: 12px;
  3737. 390.  -   background: url(/images/icons/check_balanced.gif) no-repeat 0 0;
  3738. 391.  -   visibility: hidden;
  3739. 392.  - }
  3740. 393.  - .checked .feed_filter_check {
  3741. 394.  -   visibility: visible;
  3742. 395.  - }
  3743. 396.  - .feed_icon_news {background-position: 0 -45px;}
  3744. 397.  - .feed_icon_ph { background-position: 0 -30px; }
  3745. 398.  - .feed_icon_vd { background-position: 0 -75px; }
  3746. 399.  - .feed_icon_nt { background-position: 0 -150px; }
  3747. 400.  - .feed_icon_ps { background-position: 0 -45px; }
  3748. 401.  - .feed_icon_tp { background-position: 0 -192px; }
  3749. 402.  - .feed_icon_nw { background-position: 0 -148px; }
  3750. 403.  - .feed_icon_fr { background-position: 0 -15px; }
  3751. 404.  - .feed_icon_gf { background-position: 0 -104px; }
  3752. 405.  - .feed_icon_gr { background-position: 0 -88px; }
  3753. 406.  - .feed_icon_ev { background-position: 0 -164px; }
  3754. 407.  - .feed_icon_lk { background-position: 0 -178px; }
  3755. 408.  - .feed_icon_rp { background-position: 0 -250px; }
  3756. 409.  - .feed_icon_mt { background-position: 0 0; }
  3757. 410.  -
  3758. 411.  -
  3759. 412.  - .feed_tab_add .summary_tab3 {
  3760. 413.  -   padding: 0;
  3761. 414.  - }
  3762. 415.  - #feed_tab_add_menu_wrap {
  3763. 416.  -   position: relative;
  3764. 417.  - }
  3765. 418.  - #feed_tab_add_menu {
  3766. 419.  -   position: absolute;
  3767. 420.  -   display: none;
  3768. 421.  -   font-weight: normal;
  3769. 422.  -   top: -20px;
  3770. 423.  -   /* right: -2px; */
  3771. 424.  -   right: 0;
  3772. 425.  -   -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
  3773. 426.  -   -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
  3774. 427.  -   box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
  3775. 428.  -   z-index: 2000;
  3776. 429.  -   width: 156px;
  3777. 430.  - }
  3778. 431.  - .feed_tab_add_icon {
  3779. 432.  -   width: 16px;
  3780. 433.  -   height: 16px;
  3781. 434.  -   margin: 0;
  3782. 435.  -   background: url(/images/icons/news_iconset.png?2) no-repeat 0 -144px;
  3783. 436.  - }
  3784. 437.  - #feed_tab_add_menu .feed_tab_add_icon {
  3785. 438.  -   background-position: 0 -128px;
  3786. 439.  - }
  3787. 440.  - #feed_tab_add_header {
  3788. 441.  -   cursor: pointer;
  3789. 442.  -   /*background: #7190b1;*/
  3790. 443.  -   background: #597DA3;
  3791. 444.  -   padding: 3px 8px 1px 8px;
  3792. 445.  -   color: #FFF;
  3793. 446.  -   font-weight: bold;
  3794. 447.  -   -webkit-border-radius: 2px 2px 0 0;
  3795. 448.  -   -moz-border-radius: 2px 2px 0 0;
  3796. 449.  -   border-radius: 2px 2px 0 0;
  3797. 450.  -   overflow: hidden;
  3798. 451.  -   position: relative;
  3799. 452.  - }
  3800. 453.  - #feed_tab_add_filters {
  3801. 454.  -   background: #FFF;
  3802. 455.  -   border: 1px solid #a8b4c3;
  3803. 456.  -   border-top: 0;
  3804. 457.  -   -webkit-border-radius: 0 0 2px 2px;
  3805. 458.  -   -moz-border-radius: 0 0 2px 2px;
  3806. 459.  -   border-radius: 0 0 2px 2px;
  3807. 460.  -   overflow: hidden;
  3808. 461.  -   line-height: 150%;
  3809. 462.  -   padding: 0;
  3810. 463.  -   margin: 0;
  3811. 464.  -   position: relative;
  3812. 465.  - }
  3813. 466.  - .feed_filter_tabs_row {
  3814. 467.  -   cursor: pointer;
  3815. 468.  -   margin-bottom: 2px;
  3816. 469.  -   padding: 4px 5px 4px 7px;
  3817. 470.  -   clear: left;
  3818. 471.  -   line-height: normal;
  3819. 472.  - }
  3820. 473.  - .feed_filter_tabs_row:last-child {
  3821. 474.  -   margin: 0;
  3822. 475.  - }
  3823. 476.  - .feed_filter_tabs_row_over {
  3824. 477.  -   background-color: #DAE1E8;
  3825. 478.  - }
  3826. 479.  - .feed_filter_tabs_icon,
  3827. 480.  - .feed_filter_tabs_check {
  3828. 481.  -   width: 16px;
  3829. 482.  -   height: 16px;
  3830. 483.  -   margin: 0;
  3831. 484.  -   background-image: url(/images/icons/news_iconset.png?2);
  3832. 485.  - }
  3833. 486.  - .feed_filter_tabs_icon {
  3834. 487.  -   margin-right: 8px;
  3835. 488.  - }
  3836. 489.  - .feed_filter_tabs_title {
  3837. 490.  -   color: #2B587A;
  3838. 491.  -   line-height: 16px;
  3839. 492.  -   width: 102px;
  3840. 493.  -   overflow: hidden;
  3841. 494.  -   text-overflow: ellipsis;
  3842. 495.  -   white-space: nowrap;
  3843. 496.  - }
  3844. 497.  - .feed_filter_tabs_check {
  3845. 498.  -   background-position: 0 -97px;
  3846. 499.  -   background-repeat: no-repeat;
  3847. 500.  -   visibility: hidden;
  3848. 501.  - }
  3849. 502.  - .checked .feed_filter_tabs_check {
  3850. 503.  -   visibility: visible;
  3851. 504.  - }
  3852. 505.  - .feed_icon_friends { background-position: 0 0; }
  3853. 506.  - .feed_icon_groups { background-position: 0 -16px; }
  3854. 507.  - .feed_icon_photos { background-position: 0 -32px; }
  3855. 508.  - .feed_icon_search { background-position: 0 -48px; }
  3856. 509.  - .feed_icon_articles { background-position: 0 -64px; }
  3857. 510.  - .feed_icon_likes { background-position: 0 -80px; }
  3858. 511.  - .feed_icon_recommended { background-position: 0 -160px; }
  3859. 512.  - .feed_filter_lists_row .feed_filter_tabs_icon { background: none; }
  3860. 513.  - .feed_filter_lists_row .feed_filter_tabs_check { background-position: 0 -112px; }
  3861. 514.  - .feed_icon_newlist { background: none; }
  3862. 515.  -
  3863. 516.  - #filter_t_news {display: none;}
  3864. 517.  -
  3865. 518.  - b.feed_gr_icon,
  3866. 519.  - b.feed_ev_icon,
  3867. 520.  - b.feed_tp_icon,
  3868. 521.  - b.feed_nt_icon {
  3869. 522.  -   margin: 2px 4px 0 0;
  3870. 523.  -   display: block;
  3871. 524.  -   float: left;
  3872. 525.  -   width: 11px;
  3873. 526.  -   height: 11px;
  3874. 527.  -   background: url(/images/icons/mono_iconset.gif?8) no-repeat;
  3875. 528.  - }
  3876. 529.  - b.feed_gr_icon { background-position: 0 -88px; }
  3877. 530.  - b.feed_ev_icon { background-position: 0 -164px; }
  3878. 531.  - b.feed_nt_icon { background-position: 0 -148px; }
  3879. 532.  - b.feed_tp_icon { background-position: 0 -192px; }
  3880. 533.  -
  3881. 534.  - .feed_filter_title {
  3882. 535.  -   padding-left: 7px;
  3883. 536.  -   width: 98px;
  3884. 537.  -   *width: 95px;
  3885. 538.  -   color: #2B587A;
  3886. 539.  - }
  3887. 540.  -
  3888. 541.  -
  3889. 542.  - #feed_rows_next {
  3890. 543.  -   display: none;
  3891. 544.  - }
  3892. 545.  -
  3893. 546.  - #all_shown {
  3894. 547.  -   margin-top: -1px;
  3895. 548.  -   margin-bottom: 15px;
  3896. 549.  -   border-top: 1px solid #CAD1D9;
  3897. 550.  -   color: #777;
  3898. 551.  -   height: 13px;
  3899. 552.  -   display: none;
  3900. 553.  -   padding: 10px 0px;
  3901. 554.  -   text-align: center;
  3902. 555.  - }
  3903. 556.  -
  3904. 557.  - #feed_empty {
  3905. 558.  -   color: #777;
  3906. 559.  -   display: none;
  3907. 560.  -   font-size: 1.09em;
  3908. 561.  -   line-height: 170%;
  3909. 562.  -   padding: 100px 30px;
  3910. 563.  -   text-align: center;
  3911. 564.  - }
  3912. 565.  - #feed_error_wrap {
  3913. 566.  -   color: #777;
  3914. 567.  -   font-size: 1.09em;
  3915. 568.  -   line-height: 170%;
  3916. 569.  -   padding: 100px 30px;
  3917. 570.  -   text-align: center;
  3918. 571.  - }
  3919. 572.  -
  3920. 573.  - #feed_wall .feed_reposts_more_link {
  3921. 574.  -   border-top: 1px solid #FFF;
  3922. 575.  -   border-bottom: 1px solid #DAE1E8;
  3923. 576.  -   margin-top: -1px;
  3924. 577.  -   text-align: center;
  3925. 578.  - }
  3926. 579.  - .feed_reposts_group {
  3927. 580.  -   display: none;
  3928. 581.  - }
  3929. 582.  -
  3930. 583.  -
  3931. 584.  - /* Posts ignoring */
  3932. 585.  - .ignore_row {
  3933. 586.  -   background:#FFFFFF;
  3934. 587.  -   border-bottom:1px solid #DAE2E8;
  3935. 588.  -   padding:8px 0;
  3936. 589.  - }
  3937. 590.  -
  3938. 591.  - .ignore_row td.img img {
  3939. 592.  -   width:25px;
  3940. 593.  - }
  3941. 594.  -
  3942. 595.  - .ignore_row td.img a {
  3943. 596.  -   display:block;
  3944. 597.  -   height:25px;
  3945. 598.  -   overflow:hidden;
  3946. 599.  -   width:25px;
  3947. 600.  - }
  3948. 601.  -
  3949. 602.  - .ignore_row td.info {
  3950. 603.  - padding-left:10px;
  3951. 604.  - }
  3952. 605.  -
  3953. 606.  - .ignore_row td.info .actions {
  3954. 607.  -   height: 14px;
  3955. 608.  - }
  3956. 609.  -
  3957. 610.  - .ignore_row table {
  3958. 611.  - border-collapse:collapse;
  3959. 612.  - width:100%;
  3960. 613.  - line-height:120%;
  3961. 614.  - vertical-align:top;
  3962. 615.  - }
  3963. 616.  -
  3964. 617.  - .ignore_row td.img {
  3965. 618.  -   width:25px;
  3966. 619.  - }
  3967. 620.  -
  3968. 621.  - #ignore_header {
  3969. 622.  -   border-bottom:1px solid #DAE1E8;
  3970. 623.  -   margin:0;
  3971. 624.  -   padding:5px 0 2px;
  3972. 625.  - }
  3973. 626.  -
  3974. 627.  - .ignore_row .dld {
  3975. 628.  -   background: #FFFFFF;
  3976. 629.  -   color: #777;
  3977. 630.  -   font-weight: normal;
  3978. 631.  -   margin: 0;
  3979. 632.  -   border: 0;
  3980. 633.  - }
  3981. 634.  - .feed_post_report {
  3982. 635.  -   padding: 3px 0 8px;
  3983. 636.  - }
  3984. 637.  - .ignore_row_empty {
  3985. 638.  -   padding: 20px;
  3986. 639.  -   text-align: center;
  3987. 640.  -   color: #888;
  3988. 641.  - }
  3989. 642.  -
  3990. 643.  - .feed_ignore_list {
  3991. 644.  -   height:300px;
  3992. 645.  -   overflow:auto;
  3993. 646.  - }
  3994. 647.  -
  3995. 648.  -
  3996. 649.  - /* Comments autoupdate */
  3997. 650.  - #main_feed .wall_module .reply {
  3998. 651.  -   background: none;
  3999. 652.  - }
  4000. 653.  -
  4001. 654.  - /* Notifications feed */
  4002. 655.  - .feedback_answered_row_wrap {
  4003. 656.  -   border-bottom: 1px solid #DAE1E8;
  4004. 657.  -   padding: 0;
  4005. 658.  - }
  4006. 659.  - .feedback_row_wrap {
  4007. 660.  -   padding: 0 0 10px;
  4008. 661.  -   cursor: pointer;
  4009. 662.  - }
  4010. 663.  - .feedback_row_clickable {
  4011. 664.  -   cursor: pointer;
  4012. 665.  - }
  4013. 666.  - .feedback_row_clickable_over1,
  4014. 667.  - .feedback_row_clickable_over2,
  4015. 668.  - .feedback_row_clickable_over3 {
  4016. 669.  -   background: #edf1f5;
  4017. 670.  -   margin: 0 -15px 0 -15px;
  4018. 671.  -   padding: 0 15px 0 15px;
  4019. 672.  - }
  4020. 673.  - .feedback_row_clickable_over2 {
  4021. 674.  -   border-top: 1px solid #DAE1E8;
  4022. 675.  -   margin-top: -1px;
  4023. 676.  - }
  4024. 677.  - .feedback_row_clickable_over3 {
  4025. 678.  -   padding-top: 5px;
  4026. 679.  -   margin-top: -5px;
  4027. 680.  -   margin-bottom: 0px;
  4028. 681.  - }
  4029. 682.  -
  4030. 683.  - .feedback_grouped_row {
  4031. 684.  -   padding: 10px 25px 0 0;
  4032. 685.  - }
  4033. 686.  - .feedback_row {
  4034. 687.  -   padding: 10px 30px 0 0;
  4035. 688.  - }
  4036. 689.  - .wide_wall_module .feedback_row_wrap .audio .title_wrap {
  4037. 690.  -   width: 300px;
  4038. 691.  - }
  4039. 692.  - .wide_wall_module .feedback_row_wrap .audio .title_wrap b {
  4040. 693.  -   max-width: 210px;
  4041. 694.  - }
  4042. 695.  - .feedback_grouped_row_wrap {
  4043. 696.  -   border-bottom: 1px solid #DAE1E8;
  4044. 697.  - }
  4045. 698.  - .feedback_grouped_row {
  4046. 699.  -   padding-bottom: 10px;
  4047. 700.  - }
  4048. 701.  -
  4049. 702.  - /* Answer */
  4050. 703.  - .feedback_row_answer_wrap {
  4051. 704.  -   border: 1px solid #d5dee7;
  4052. 705.  -   background: #edf1f5;
  4053. 706.  -   margin: 10px 0 0;
  4054. 707.  - }
  4055. 708.  - .feedback_answer_tail_wrap {
  4056. 709.  -   position: relative;
  4057. 710.  - }
  4058. 711.  - .feedback_answer_tail {
  4059. 712.  -   background: url(/images/icons/feedback_iconset.gif?4) 0 -127px no-repeat;
  4060. 713.  -   width: 15px;
  4061. 714.  -   height: 9px;
  4062. 715.  -   position: absolute;
  4063. 716.  -   left: 20px;
  4064. 717.  -   top: -7px;
  4065. 718.  - }
  4066. 719.  - .feedback_row_answer {
  4067. 720.  -   padding: 8px 10px 6px;
  4068. 721.  - }
  4069. 722.  - .feedback_row_answer .feedback_row_text {
  4070. 723.  -   padding: 0 0 1px 4px;
  4071. 724.  - }
  4072. 725.  - .feedback_row_answer td.feedback_row_photo {
  4073. 726.  -   padding: 2px 0;
  4074. 727.  - }
  4075. 728.  -
  4076. 729.  - .feedback_row_clickable_over .feedback_row_answer_wrap {
  4077. 730.  -   border: 1px solid #ccd5de;
  4078. 731.  -   background: #dae1e8;
  4079. 732.  - }
  4080. 733.  - .feedback_row_clickable_over .feedback_answer_tail {
  4081. 734.  -   background: url(/images/icons/feedback_iconset.gif?4) 0 -114px no-repeat;
  4082. 735.  - }
  4083. 736.  - .feedback_row_answer .feedback_row_date {
  4084. 737.  -   font-size: 0.9em;
  4085. 738.  - }
  4086. 739.  -
  4087. 740.  -
  4088. 741.  - /* Reply form */
  4089. 742.  - .feedback_reply_row_wrap {
  4090. 743.  -   border: 1px solid #ced7e0;
  4091. 744.  -   background: #e1e7ed;
  4092. 745.  -   margin: 5px 0px 10px 0;
  4093. 746.  -   zoom: 1;
  4094. 747.  - }
  4095. 748.  - .feedback_reply_row {
  4096. 749.  -   padding: 10px 10px 10px;
  4097. 750.  - }
  4098. 751.  - .feedback_reply_field {
  4099. 752.  -   width: 518px;
  4100. 753.  -   height: 31px;
  4101. 754.  -   resize: none;
  4102. 755.  - }
  4103. 756.  - .feedback_reply_actions {
  4104. 757.  -   padding-top: 10px;
  4105. 758.  - }
  4106. 759.  - .feedback_reply_hint_wrap {
  4107. 760.  -   padding: 6px 0 6px 10px;
  4108. 761.  - }
  4109. 762.  - .feedback_reply_hint {
  4110. 763.  -   color: #879BB0;
  4111. 764.  -   cursor: default;
  4112. 765.  - }
  4113. 766.  - .wall_module .feedback_reply_actions .reply_hint {
  4114. 767.  -   padding: 0;
  4115. 768.  - }
  4116. 769.  -
  4117. 770.  -
  4118. 771.  - .feedback_ownreply_tt table .tt_text {
  4119. 772.  -   color: #000;
  4120. 773.  -   padding: 10px;
  4121. 774.  -   width: 310px;
  4122. 775.  - }
  4123. 776.  - .feedback_ownreply_tt table.toup1 .bottom_pointer {
  4124. 777.  -   margin-right: 0px;
  4125. 778.  -   margin-left: 64px;
  4126. 779.  -   display: block;
  4127. 780.  -   background: url(/images/tooltip_arrow_white.gif) no-repeat;
  4128. 781.  - }
  4129. 782.  - .feedback_ownreply_tt table.toup .top_pointer {
  4130. 783.  -   margin-right: 0px;
  4131. 784.  -   margin-left: 64px;
  4132. 785.  -   display: block;
  4133. 786.  -   bottom: -2px;
  4134. 787.  -   background: url(/images/tooltip_arrow_up.gif) no-repeat;
  4135. 788.  - }
  4136. 789.  -
  4137. 790.  -
  4138. 791.  - .feedback_reply_tail_wrap {
  4139. 792.  -   position: relative;
  4140. 793.  - }
  4141. 794.  - .feedback_reply_tail {
  4142. 795.  -   background: url(/images/icons/feedback_iconset.gif?4) 0 -140px no-repeat;
  4143. 796.  -   width: 15px;
  4144. 797.  -   height: 9px;
  4145. 798.  -   position: absolute;
  4146. 799.  -   left: 20px;
  4147. 800.  -   top: -7px;
  4148. 801.  - }
  4149. 802.  -
  4150. 803.  - table.feedback_row_t {
  4151. 804.  -   width: 100%;
  4152. 805.  - }
  4153. 806.  - td.feedback_row_photo {
  4154. 807.  -   padding-top: 0;
  4155. 808.  -   width: 60px;
  4156. 809.  - }
  4157. 810.  - div.feedback_row_photo {
  4158. 811.  -   width: 60px;
  4159. 812.  -   height: 50px;
  4160. 813.  -   overflow: hidden;
  4161. 814.  - }
  4162. 815.  - img.feedback_row_photo {
  4163. 816.  -   max-width: 50px;
  4164. 817.  -   *width: 50px;
  4165. 818.  - }
  4166. 819.  -
  4167. 820.  - .feedback_row_answer td.feedback_row_photo, .feedback_row_answer div.feedback_row_photo {
  4168. 821.  -   width: 49px;
  4169. 822.  - }
  4170. 823.  - .feedback_reply_row td.feedback_row_photo {
  4171. 824.  -   width: 49px;
  4172. 825.  -   padding-top: 0;
  4173. 826.  - }
  4174. 827.  - .feedback_row_answer div.feedback_row_photo, .feedback_reply_row div.feedback_row_photo {
  4175. 828.  -   height: 39px;
  4176. 829.  - }
  4177. 830.  -
  4178. 831.  - .feedback_row_answer img.feedback_row_photo, .feedback_reply_row img.feedback_row_photo {
  4179. 832.  -   width: 39px;
  4180. 833.  - }
  4181. 834.  -
  4182. 835.  - td.feedback_row_content {
  4183. 836.  -   line-height: 150%;
  4184. 837.  - }
  4185. 838.  - div.feedback_row_content,
  4186. 839.  - .wall_module .feedback_row_text .wall_post_text {
  4187. 840.  -   width: 450px;
  4188. 841.  - }
  4189. 842.  - div.feedback_row_content {
  4190. 843.  -   padding-left: 4px;
  4191. 844.  -   margin-left: -4px;
  4192. 845.  - }
  4193. 846.  - .feedback_row_text {
  4194. 847.  -   line-height: 160%;
  4195. 848.  -   padding: 2px 0 4px;
  4196. 849.  -   max-width: 450px;
  4197. 850.  -   overflow: hidden;
  4198. 851.  -   word-wrap: break-word;
  4199. 852.  -   padding-left: 4px;
  4200. 853.  -   margin-left: -4px;
  4201. 854.  - }
  4202. 855.  - .feedback_row_text .wall_post_text {
  4203. 856.  -   padding-top: 0;
  4204. 857.  - }
  4205. 858.  - #feed_wall .feedback_row_text .wall_post_text {
  4206. 859.  -   padding-right: 0;
  4207. 860.  - }
  4208. 861.  - #feed_wall .feedback_row_text .wall_reply_text,
  4209. 862.  - #feed_wall .feedback_row_text .wall_post_text {
  4210. 863.  -   width: 450px;
  4211. 864.  - }
  4212. 865.  - .feedback_row_title {
  4213. 866.  -   font-weight: bold;
  4214. 867.  -   padding-bottom: 5px;
  4215. 868.  - }
  4216. 869.  - .feedback_row_date {
  4217. 870.  -   color: #999;
  4218. 871.  -   max-width: 450px;
  4219. 872.  -   white-space: nowrap;
  4220. 873.  -   -o-text-overflow: ellipsis;
  4221. 874.  -   text-overflow: ellipsis;
  4222. 875.  -   overflow: hidden;
  4223. 876.  - }
  4224. 877.  - .wide_wall_module div.feedback_row .post_media.wall_audio  {
  4225. 878.  -   width: 450px;
  4226. 879.  - }
  4227. 880.  - .feedback_row_date_link {
  4228. 881.  -   color: #999;
  4229. 882.  - }
  4230. 883.  - .feedback_row_clickable_over .feedback_row_date_link,
  4231. 884.  - .feedback_row_clickable_over .feedback_row_date {
  4232. 885.  -   color: #8795A5;
  4233. 886.  - }
  4234. 887.  - .feedback_row_clickable_over .feedback_row_group_names {
  4235. 888.  -   color: #798899;
  4236. 889.  - }
  4237. 890.  - .feedback_grouped_row .feedback_row_icon {
  4238. 891.  -   margin: 2px 0 0 38px;
  4239. 892.  -   width: 15px;
  4240. 893.  -   height: 11px;
  4241. 894.  -   background-image: url(/images/icons/feedback_iconset.gif?5);
  4242. 895.  -   background-repeat: no-repeat;
  4243. 896.  - }
  4244. 897.  - .feedback_like_row .feedback_row_icon {
  4245. 898.  -   background-position: 0 -16px;
  4246. 899.  - }
  4247. 900.  - .feedback_copy_row .feedback_row_icon {
  4248. 901.  -   background-position: 0 -32px;
  4249. 902.  -   height: 13px;
  4250. 903.  - }
  4251. 904.  - .feedback_friends_row .feedback_row_icon {
  4252. 905.  -   background-position: 0 -169px;
  4253. 906.  -   height: 13px;
  4254. 907.  - }
  4255. 908.  -
  4256. 909.  - .feedback_row_group_names {
  4257. 910.  -   color: #777;
  4258. 911.  - }
  4259. 912.  - .feedback_row_group_names .mem_link,
  4260. 913.  - .feedback_row_group_names .group_link {
  4261. 914.  -   font-weight: bold;
  4262. 915.  - }
  4263. 916.  - .feedback_row_group_photos {
  4264. 917.  -   padding-top: 4px;
  4265. 918.  - }
  4266. 919.  - .feedback_group_photo_wrap {
  4267. 920.  -   padding: 3px 6px 6px 0;
  4268. 921.  - }
  4269. 922.  - .feedback_group_photo_wrap:last-child {
  4270. 923.  -   padding-right: 0;
  4271. 924.  - }
  4272. 925.  - a.feedback_group_photo {
  4273. 926.  -   display: block;
  4274. 927.  -   width: 32px;
  4275. 928.  -   height: 32px;
  4276. 929.  -   overflow: hidden;
  4277. 930.  - }
  4278. 931.  - img.feedback_group_photo {
  4279. 932.  -   width: 32px;
  4280. 933.  -   height: 32px;
  4281. 934.  - }
  4282. 935.  -
  4283. 936.  - .feedback_expand_wrap {
  4284. 937.  -   position: absolute;
  4285. 938.  -   margin: 6px 0 0 584px;
  4286. 939.  - }
  4287. 940.  - .feedback_expand {
  4288. 941.  -   background: url(/images/fbgr_arrow.png) no-repeat 0 -6px;
  4289. 942.  -   width: 11px;
  4290. 943.  -   height: 6px;
  4291. 944.  -   display: none;
  4292. 945.  - }
  4293. 946.  - .feedback_row_clickable_over .feedback_expand {
  4294. 947.  -   display: block;
  4295. 948.  - }
  4296. 949.  - .feedback_expanded {
  4297. 950.  -   background-position: 0 0;
  4298. 951.  -   display: block;
  4299. 952.  - }
  4300. 953.  -
  4301. 954.  - /* Reply likes */
  4302. 955.  - .feedback_like_wrap {
  4303. 956.  -   position: absolute;
  4304. 957.  -   margin: -15px 0 0 584px;
  4305. 958.  - }
  4306. 959.  - .wall_module .feedback_like_wrap .like_wrap {
  4307. 960.  -   margin: 0;
  4308. 961.  -   padding: 0;
  4309. 962.  - }
  4310. 963.  - .wall_module .feedback_like_wrap .like_link {
  4311. 964.  -   display: none;
  4312. 965.  - }
  4313. 966.  - .wall_module .feedback_like_wrap .no_likes {
  4314. 967.  -   visibility: visible;
  4315. 968.  - }
  4316. 969.  - .wall_module .feedback_like_wrap .like_count {
  4317. 970.  -   display: none;
  4318. 971.  - }
  4319. 972.  - .wall_module .feedback_like_wrap .like_wrap div {
  4320. 973.  -   background: url(/images/icons/feedback_iconset.gif?4) 0 -49px no-repeat;
  4321. 974.  -   width: 14px;
  4322. 975.  -   height: 11px;
  4323. 976.  -   margin: 0;
  4324. 977.  -   opacity: 0.6;
  4325. 978.  -   filter: alpha(opacity=60);
  4326. 979.  - }
  4327. 980.  - .wall_module .feedback_like_wrap .like_wrap div.my_like {
  4328. 981.  -   opacity: 1;
  4329. 982.  -   filter: alpha(opacity=100);
  4330. 983.  - }
  4331. 984.  - /* Reply delete */
  4332. 985.  - .feedback_del_wrap {
  4333. 986.  -   position: absolute;
  4334. 987.  -   margin: 1px 0 0 585px;
  4335. 988.  - }
  4336. 989.  - .feedback_del {
  4337. 990.  -   cursor: pointer;
  4338. 991.  -   padding: 0;
  4339. 992.  -   margin: 0;
  4340. 993.  - }
  4341. 994.  - .feedback_del_icon {
  4342. 995.  -   background: url(/images/pics/statusx_op.gif) 0 0 no-repeat;
  4343. 996.  -   width: 11px;
  4344. 997.  -   height: 11px;
  4345. 998.  -   margin: 0;
  4346. 999.  -
  4347. 1000.  -   opacity: 0.6;
  4348. 1001.  -   filter: alpha(opacity=60);
  4349. 1002.  - }
  4350. 1003.  - .feedback_del_label {
  4351. 1004.  -   color: #2B587A;
  4352. 1005.  -   padding: 1px 0 0 7px;
  4353. 1006.  - }
  4354. 1007.  -
  4355. 1008.  - .wall_module .feedback_ignored_row {
  4356. 1009.  -   border-bottom: 1px solid #DAE1E8;
  4357. 1010.  -   text-align: center;
  4358. 1011.  -   line-height: 1.81em;
  4359. 1012.  -   padding: 10px 0;
  4360. 1013.  - }
  4361. 1014.  - .feedback_ignored_flush {
  4362. 1015.  -   line-height: 120%;
  4363. 1016.  -   padding-top: 6px;
  4364. 1017.  -   text-align: center;
  4365. 1018.  - }
  4366. 1019.  -
  4367. 1020.  - .feedback_row_clickable .feedback_del_wrap,
  4368. 1021.  - .feedback_row_clickable .feedback_like_wrap .like_wrap div {
  4369. 1022.  -   display: none;
  4370. 1023.  - }
  4371. 1024.  -
  4372. 1025.  - .feedback_row_clickable_over .feedback_del_wrap,
  4373. 1026.  - .feedback_row_clickable .feedback_like_wrap .like_wrap div.my_like,
  4374. 1027.  - .feedback_row_clickable_over .feedback_like_wrap .like_wrap div {
  4375. 1028.  -   display: block;
  4376. 1029.  - }
  4377. 1030.  - .wall_module .feedback_row_answer .delete_post {
  4378. 1031.  -   width: 11px;
  4379. 1032.  -   padding-top: 2px;
  4380. 1033.  -   display: none;
  4381. 1034.  - }
  4382. 1035.  - .wall_module .feedback_row_answer .delete_post div {
  4383. 1036.  -   background-position: 0 0;
  4384. 1037.  -   width: 11px;
  4385. 1038.  -   height: 11px;
  4386. 1039.  -   opacity: 0.6;
  4387. 1040.  -   filter: alpha(opacity=0.6);
  4388. 1041.  - }
  4389. 1042.  - .wall_module .feedback_row_answer .dld,
  4390. 1043.  - .wall_module .feedback_reply_row .dld {
  4391. 1044.  -   line-height: 140%;
  4392. 1045.  -   color: #879BB0;
  4393. 1046.  -   padding: 1px 49px 3px;
  4394. 1047.  - }
  4395. 1048.  - .wall_module .feedback_reply_row_share {
  4396. 1049.  -   color: #45688E;
  4397. 1050.  - }
  4398. 1051.  - .wall_module .feedback_row_answer .dld .dld {
  4399. 1052.  -   padding: 0;
  4400. 1053.  - }
  4401. 1054.  - .feedback_graphs_wrap {
  4402. 1055.  -   padding-bottom: 10px;
  4403. 1056.  -   border-bottom: 1px solid #DAE1E8;
  4404. 1057.  - }
  4405. 1058.  - .feedback_graphs_shadow_wrap {
  4406. 1059.  -   position: relative;
  4407. 1060.  - }
  4408. 1061.  - .feedback_graphs_shadow {
  4409. 1062.  -   background: #555;
  4410. 1063.  -   opacity: 0.12;
  4411. 1064.  -   filter: alpha(opacity=12);
  4412. 1065.  -   position: absolute;
  4413. 1066.  -   width: 599px;
  4414. 1067.  -   height: 3px;
  4415. 1068.  - }
  4416. 1069.  -
  4417. 1070.  -
  4418. 1071.  - /* Slider */
  4419. 1072.  - #feed_rate_slider_wrap {
  4420. 1073.  -   position: absolute;
  4421. 1074.  -   width: 100px;
  4422. 1075.  -   right: 32px;
  4423. 1076.  -   margin-top: -17px;
  4424. 1077.  - }
  4425. 1078.  - div.feed_rate_label {
  4426. 1079.  -   cursor: default;
  4427. 1080.  -   color: #8699AE;
  4428. 1081.  -   font-size: 1em;
  4429. 1082.  -   text-align: center;
  4430. 1083.  -   line-height: 1.18em;
  4431. 1084.  -   height: 13px;
  4432. 1085.  -   white-space: nowrap;
  4433. 1086.  - }
  4434. 1087.  - div.feed_rate_label b {
  4435. 1088.  -   color: #47688d;
  4436. 1089.  - }
  4437. 1090.  - #feed_rate_slider_scale {
  4438. 1091.  -   cursor: pointer;
  4439. 1092.  -   padding-top: 3px;
  4440. 1093.  - }
  4441. 1094.  - #feed_rate_slider_line {
  4442. 1095.  -   cursor: pointer;
  4443. 1096.  -   border-bottom: 1px solid #5F7D9D;
  4444. 1097.  - }
  4445. 1098.  - #feed_rate_slider {
  4446. 1099.  -   cursor: pointer;
  4447. 1100.  -   background: #5F7D9D;
  4448. 1101.  -   width: 11px;
  4449. 1102.  -   height: 4px;
  4450. 1103.  - }
  4451. 1104.  - .feed_rate_wait,
  4452. 1105.  - .feed_rate_wait #feed_rate_slider_scale,
  4453. 1106.  - .feed_rate_wait #feed_rate_slider_line,
  4454. 1107.  - .feed_rate_wait #feed_rate_slider {
  4455. 1108.  -   cursor: wait;
  4456. 1109.  - }
  4457. 1110.  -
  4458. 1111.  - .feed_rate_wait .feed_rate_label {
  4459. 1112.  -   cursor: wait;
  4460. 1113.  -   text-align: left;
  4461. 1114.  -   padding-left: 15px;
  4462. 1115.  - }
  4463. 1116.  - span.feed_rate_load_label,
  4464. 1117.  - .feed_rate_wait #feed_rate_slider_label {
  4465. 1118.  -   display: none;
  4466. 1119.  - }
  4467. 1120.  - .feed_rate_wait span.feed_rate_load_label {
  4468. 1121.  -   display: inline;
  4469. 1122.  - }
  4470. 1123.  - #feed_rate_mobile {
  4471. 1124.  -   display: none;
  4472. 1125.  -   text-align: right;
  4473. 1126.  -   margin-top: -6px;
  4474. 1127.  - }
  4475. 1128.  - #feed_rate_select {
  4476. 1129.  -   margin: 0;
  4477. 1130.  - }
  4478. 1131.  -
  4479. 1132.  - /* Slider tooltip */
  4480. 1133.  - .feed_side_tt table .tt_text {
  4481. 1134.  -   line-height: 120%;
  4482. 1135.  -   color: #000;
  4483. 1136.  -   padding: 10px;
  4484. 1137.  -   width: 200px;
  4485. 1138.  - }
  4486. 1139.  - .feed_side_tt_pointer {
  4487. 1140.  -   background: url(/images/ddtooltip.png) 0 0 no-repeat;
  4488. 1141.  -   width: 8px;
  4489. 1142.  -   height: 11px;
  4490. 1143.  -   position: absolute;
  4491. 1144.  -   left: -7px;
  4492. 1145.  -   top: 50px;
  4493. 1146.  -   overflow: hidden;
  4494. 1147.  -   z-index: 10;
  4495. 1148.  - }
  4496. 1149.  - #feed_rate_tt_place {
  4497. 1150.  -   width: 1px;
  4498. 1151.  -   height: 1px;
  4499. 1152.  - }
  4500. 1153.  -
  4501. 1154.  - /* Feedback page thumbs fixes */
  4502. 1155.  - #feed_wall .feedback_row a.page_post_thumb_wrap,
  4503. 1156.  - #feed_wall .feedback_row a.page_post_thumb_unsized {
  4504. 1157.  -   margin: 0 3px 3px 0;
  4505. 1158.  - }
  4506. 1159.  - #feed_wall .feedback_row  a.page_post_thumb_last_column {
  4507. 1160.  -   margin-right: 0;
  4508. 1161.  - }
  4509. 1162.  - #feed_wall .feedback_row  a.page_post_thumb_last_row {
  4510. 1163.  -   margin-bottom: 0;
  4511. 1164.  - }
  4512. 1165.  -
  4513. 1166.  - #feed_recom_rows,
  4514. 1167.  - #feed_recom_preview {
  4515. 1168.  -   padding: 5px 10px;
  4516. 1169.  - }
  4517. 1170.  - #feed_recom_more {
  4518. 1171.  -   display: block;
  4519. 1172.  -   margin: 0px 15px;
  4520. 1173.  -   color: #6A7989;
  4521. 1174.  -   background: #E9EDF1;
  4522. 1175.  -   height: 13px;
  4523. 1176.  -   padding: 9px 0px 8px;
  4524. 1177.  -   text-align: center;
  4525. 1178.  - }
  4526. 1179.  - #feed_recom_norows {
  4527. 1180.  -   color: #777;
  4528. 1181.  -   font-size: 13px;
  4529. 1182.  -   display: none;
  4530. 1183.  -   text-align: center;
  4531. 1184.  -   padding: 100px 20px;
  4532. 1185.  - }
  4533. 1186.  - #feed_recom_prg {
  4534. 1187.  -   margin: 0px auto;
  4535. 1188.  - }
  4536. 1189.  - #feed_recom_more:hover {
  4537. 1190.  -   text-decoration: none;
  4538. 1191.  - }
  4539. 1192.  - div.feed_recom {
  4540. 1193.  -   display: inline;
  4541. 1194.  -   display: inline-block;
  4542. 1195.  -   zoom: 1;
  4543. 1196.  -   width: 292px;
  4544. 1197.  -   padding: 10px 5px;
  4545. 1198.  - }
  4546. 1199.  - .feed_recoms_edit .feed_recom {
  4547. 1200.  -   width: 592px;
  4548. 1201.  - }
  4549. 1202.  - .feed_recom_edit:hover {
  4550. 1203.  -   cursor: pointer;
  4551. 1204.  -   text-decoration: underline;
  4552. 1205.  - }
  4553. 1206.  - .feed_recom_photo {
  4554. 1207.  -   width: 105px;
  4555. 1208.  -   height: 90px;
  4556. 1209.  -   overflow: hidden;
  4557. 1210.  - }
  4558. 1211.  - .feed_recom_img {
  4559. 1212.  -   width: 90px;
  4560. 1213.  -   vertical-align: top;
  4561. 1214.  - }
  4562. 1215.  - .feed_recom_lnk {
  4563. 1216.  -   color: #45688E;
  4564. 1217.  - }
  4565. 1218.  - .feed_recom_name {
  4566. 1219.  -   font-weight: bold;
  4567. 1220.  -   padding: 1px 0px 4px;
  4568. 1221.  - }
  4569. 1222.  - .feed_recom_desc,
  4570. 1223.  - .feed_recom_size {
  4571. 1224.  -   color: #777;
  4572. 1225.  -   padding: 3px 0px 4px;
  4573. 1226.  - }
  4574. 1227.  - .feed_recom_name,
  4575. 1228.  - .feed_recom_desc,
  4576. 1229.  - .feed_recom_size {
  4577. 1230.  -   width: 187px;
  4578. 1231.  -   overflow: hidden;
  4579. 1232.  -   -o-text-overflow: ellipsis;
  4580. 1233.  -   text-overflow: ellipsis;
  4581. 1234.  -   white-space: nowrap;
  4582. 1235.  - }
  4583. 1236.  - .feed_recom_info {
  4584. 1237.  -   width: 187px;
  4585. 1238.  - }
  4586. 1239.  - .feed_recom_right {
  4587. 1240.  -   width: 290px;
  4588. 1241.  - }
  4589. 1242.  - .feed_recom_label {
  4590. 1243.  -   color: #777;
  4591. 1244.  -   padding: 1px 10px 6px;
  4592. 1245.  -   width: 100px;
  4593. 1246.  - }
  4594. 1247.  - .feed_recom_labeled {
  4595. 1248.  -   padding: 1px 0px 6px;
  4596. 1249.  -   width: 170px;
  4597. 1250.  - }
  4598. 1251.  - .feed_recom_labeled .selector_container {
  4599. 1252.  -   margin: -5px -6px -4px;
  4600. 1253.  - }
  4601. 1254.  - .feed_recom_btn {
  4602. 1255.  -   margin-top: 7px;
  4603. 1256.  - }
  4604. 1257.  - .feed_recom_done {
  4605. 1258.  -   padding-top: 13px;
  4606. 1259.  -   color: #777;
  4607. 1260.  - }
  4608. 1261.  - .feed_recom_add,
  4609. 1262.  - .feed_recom_preview {
  4610. 1263.  -   background: #F7F7F7;
  4611. 1264.  -   padding: 10px;
  4612. 1265.  -   border-bottom: 1px solid #DAE1E8;
  4613. 1266.  - }
  4614. 1267.  - .feed_recom_preview {
  4615. 1268.  -   padding-top: 0px;
  4616. 1269.  - }
  4617. 1270.  - #feed_recom_add {
  4618. 1271.  -   width: 545px;
  4619. 1272.  -   background: white url(/images/magglass.png) no-repeat 5px 6px;
  4620. 1273.  -   outline: none;
  4621. 1274.  -   padding: 5px 40px 5px 20px;
  4622. 1275.  - }
  4623. 1276.  - #feed_recom_msg {
  4624. 1277.  -   display: none;
  4625. 1278.  -   line-height: 160%;
  4626. 1279.  -   margin: 15px 15px 0px;
  4627. 1280.  - }
  4628. 1281.  - .feed_recom_ignore {
  4629. 1282.  -   margin: 0px -20px -3px;
  4630. 1283.  - }
  4631. 1284.  - .feed_recom_filter {
  4632. 1285.  -   margin: 0px -5px;
  4633. 1286.  - }
  4634. 1287.  - .feed_recom_filter_txt {
  4635. 1288.  -   padding: 15px 10px 4px;
  4636. 1289.  -   width: 57px;
  4637. 1290.  -   color: #777;
  4638. 1291.  - }
  4639. 1292.  - .feed_recom_filter_cb {
  4640. 1293.  -   width: 80px;
  4641. 1294.  -   padding-top: 15px;
  4642. 1295.  - }
  4643. 1296.  - .feed_recom_filter_dd {
  4644. 1297.  -   padding: 10px 5px 0px;
  4645. 1298.  - }
  4646. 1299.  - .feed_recom_blocked {
  4647. 1300.  -   font-weight: bold;
  4648. 1301.  -   color: #800;
  4649. 1302.  - }
  4650. 1303.  - .feed_recom_nosearch {
  4651. 1304.  -   font-weight: bold;
  4652. 1305.  -   color: #BB6900;
  4653. 1306.  - }
  4654. 1307.  -
  4655. 1308.  - /* Feed articles thumbed links */
  4656. 1309.  - .feed_article {
  4657. 1310.  -   margin: 6px 0 10px 0;
  4658. 1311.  - }
  4659. 1312.  - .wall_module div.feed_article_desc_wrap {
  4660. 1313.  -   padding-right: 10px;
  4661. 1314.  -   line-height: 160%;
  4662. 1315.  -   min-height: 63px;
  4663. 1316.  -   max-height: 12.7em;
  4664. 1317.  -   overflow: hidden;
  4665. 1318.  -   -o-text-overflow: ellipsis;
  4666. 1319.  -   text-overflow: ellipsis;
  4667. 1320.  - }
  4668. 1321.  - div.feed_article_desc {
  4669. 1322.  -   color: #000;
  4670. 1323.  -   padding-top: 3px;
  4671. 1324.  - }
  4672. 1325.  - td.feed_article_thumb {
  4673. 1326.  -   cursor: pointer;
  4674. 1327.  -   background-position: 50% 0;
  4675. 1328.  -   background-repeat: no-repeat;
  4676. 1329.  - }
  4677. 1330.  - a.feed_article_thumb {
  4678. 1331.  -   display: block;
  4679. 1332.  -   width: 100px;
  4680. 1333.  -   overflow: hidden;
  4681. 1334.  -   line-height: 0;
  4682. 1335.  -   min-height: 63px;
  4683. 1336.  -   height: 100%;
  4684. 1337.  -   *height: 63px;
  4685. 1338.  - }
  4686. 1339.  - .feed_article_preview_btn {
  4687. 1340.  -   padding: 10px 0 0;
  4688. 1341.  - }
  4689. 1342.  - .feed_article_preview_btn .button_blue,
  4690. 1343.  - .feed_article_preview_btn button {
  4691. 1344.  -   width: 140px;
  4692. 1345.  - }
  4693. 1346.  - .feed_blog_cont {
  4694. 1347.  -   background: #F7F7F7;
  4695. 1348.  -   border-bottom: 1px solid #DAE1E8;
  4696. 1349.  -   padding: 15px 18px;
  4697. 1350.  -   display: block;
  4698. 1351.  -   text-align: center;
  4699. 1352.  -   color: #777777;
  4700. 1353.  -   -o-transition:all 200ms ease-in-out;
  4701. 1354.  -   -moz-transition:all 200ms ease-in-out;
  4702. 1355.  -   -webkit-transition:all 200ms ease-in-out;
  4703. 1356.  -   transition:all 200ms ease-in-out;
  4704. 1357.  -   position: relative;
  4705. 1358.  - }
  4706. 1359.  - .feed_blog_cont:hover {
  4707. 1360.  -   background: #F1F1F1;
  4708. 1361.  -   text-decoration: none;
  4709. 1362.  - }
  4710. 1363.  - .feed_blog_cont:active {
  4711. 1364.  -   padding-top: 16px;
  4712. 1365.  -   padding-bottom: 14px;
  4713. 1366.  - }
  4714. 1367.  - .feed_blog_close {
  4715. 1368.  -   background: url(/images/pics/statusx_op.gif) 3px 1px no-repeat;
  4716. 1369.  -   opacity: 0;
  4717. 1370.  -   filter: alpha(opacity=0);
  4718. 1371.  -   cursor: pointer;
  4719. 1372.  -   height: 17px;
  4720. 1373.  -   width: 17px;
  4721. 1374.  -   -o-transition:all 400ms ease-in-out;
  4722. 1375.  -   -moz-transition:all 400ms ease-in-out;
  4723. 1376.  -   -webkit-transition:all 400ms ease-in-out;
  4724. 1377.  -   transition:all 400ms ease-in-out;
  4725. 1378.  -   position: absolute;
  4726. 1379.  -   top: 15px;
  4727. 1380.  -   right: 6px;
  4728. 1381.  - }
  4729. 1382.  - .feed_blog_cont:hover .feed_blog_close:hover {
  4730. 1383.  -   opacity: 1;
  4731. 1384.  -   filter: alpha(opacity=100);
  4732. 1385.  - }
  4733. 1386.  - .feed_blog_cont:hover .feed_blog_close {
  4734. 1387.  -   opacity: 0.3;
  4735. 1388.  -   filter: alpha(opacity=30);
  4736. 1389.  - }
  4737. 1390.  -
  4738. 1391.  -
  4739. 1392.  - .feed_suggested_since {
  4740. 1393.  -   padding: 5px 15px 15px;
  4741. 1394.  - }
  4742. 1395.  -
  4743. 1396.  - .feed_searchext_wrap {
  4744. 1397.  -   clear: both;
  4745. 1398.  - }
  4746. 1399.  - #feed_search_sort {
  4747. 1400.  -   display: none;
  4748. 1401.  -   padding: 3px 0 0;
  4749. 1402.  - }
  4750. 1403.  - .feed_serachext_header {
  4751. 1404.  -   color: #45688E;
  4752. 1405.  -   font-weight: bold;
  4753. 1406.  -   padding: 15px 0 8px;
  4754. 1407.  - }
  4755. 1408.  - .feed_searchext_geo_wrap {
  4756. 1409.  -   height: 108px;
  4757. 1410.  -   width: 130px;
  4758. 1411.  - }
  4759. 1412.  - .feed_searchext_map_icon {
  4760. 1413.  -   background: url(/images/icons/attach_icons_2x.png?3) 0 -179px no-repeat;
  4761. 1414.  -   width: 40px;
  4762. 1415.  -   height: 40px;
  4763. 1416.  - }
  4764. 1417.  - #feed_searchext_map {
  4765. 1418.  -   cursor: pointer;
  4766. 1419.  -   padding: 20px 45px;
  4767. 1420.  -   background: #E1E4E8;
  4768. 1421.  -   position: relative;
  4769. 1422.  - }
  4770. 1423.  - #feed_searchext_map_delete_wrap {
  4771. 1424.  -   display: none;
  4772. 1425.  -   position: absolute;
  4773. 1426.  -   top: 0;
  4774. 1427.  -   right: 0;
  4775. 1428.  -   background: #222;
  4776. 1429.  -   background: rgba(0, 0, 0, 0.5);
  4777. 1430.  -   -webkit-border-radius: 3px;
  4778. 1431.  -   -moz-border-radius: 3px;
  4779. 1432.  -   border-radius: 3px;
  4780. 1433.  -   padding: 3px;
  4781. 1434.  -   cursor: pointer;
  4782. 1435.  -   margin-left: -13px;
  4783. 1436.  - }
  4784. 1437.  - .feed_searchext_map_delete {
  4785. 1438.  -   background: url("/images/notifier_close.gif") no-repeat scroll 0 0 transparent;
  4786. 1439.  -   opacity: 0.6;
  4787. 1440.  -   filter: alpha(opacity=60);
  4788. 1441.  -   width: 7px;
  4789. 1442.  -   height: 7px;
  4790. 1443.  - }
  4791. 1444.  - #feed_searchext_map_delete_wrap:hover .feed_searchext_map_delete {
  4792. 1445.  -   opacity: 0.8;
  4793. 1446.  -   filter: alpha(opacity=80);
  4794. 1447.  - }
  4795. 1448.  - .feed_searchext_map_selected .feed_searchext_map_icon {
  4796. 1449.  -   background: url('/images/map/small.png') 13px 8px no-repeat;
  4797. 1450.  - }
  4798. 1451.  - .feed_searchext_map_selected #feed_searchext_map_delete_wrap {
  4799. 1452.  -   display: block;
  4800. 1453.  - }
  4801. 1454.  - .feed_searchext_param {
  4802. 1455.  -   width: 140px;
  4803. 1456.  -   padding: 0 15px 5px 0;
  4804. 1457.  - }
  4805. 1458.  - .feed_searchext_param_dropdown {
  4806. 1459.  -   position: relative;
  4807. 1460.  - }
  4808. 1461.  - .feed_searchext_param_last_row .feed_serachext_header {
  4809. 1462.  -   padding-top: 11px;
  4810. 1463.  - }
  4811. 1464.  -
  4812. 1465.  - #feed_searchext_exclude,
  4813. 1466.  - #feed_searchext_link,
  4814. 1467.  - #feed_searchext_content {
  4815. 1468.  -   width: 132px;
  4816. 1469.  -   outline: none;
  4817. 1470.  - }
  4818. 1471.  -
  4819. 1472.  - .feed_since_photos {
  4820. 1473.  -   padding: 15px 15px 0;
  4821. 1474.  - }
  4822. 1475.  - .feed_since_photos .page_post_sized_thumbs {
  4823. 1476.  -   margin: 0;
  4824. 1477.  -   padding: 0;
  4825. 1478.  - }
  4826. 1479.  - .feed_since_photos .page_post_thumb_wrap {
  4827. 1480.  -   margin-right: 5px;
  4828. 1481.  - }
  4829. 1482.  - .feed_since_owners {
  4830. 1483.  -   padding: 15px 10px 0 9px;
  4831. 1484.  - }
  4832. 1485.  - .feed_since_owner_row {
  4833. 1486.  -   padding: 0 5px 0 6px;
  4834. 1487.  - }
  4835. 1488.  -
  4836. 1489.  - .feed_since_ownerph_wrap {
  4837. 1490.  -   position: relative;
  4838. 1491.  -   width: 90px;
  4839. 1492.  -   height: 90px;
  4840. 1493.  -   margin: 0px auto;
  4841. 1494.  -   overflow: hidden;
  4842. 1495.  - }
  4843. 1496.  - .feed_since_ownerph {
  4844. 1497.  -   position: absolute;
  4845. 1498.  -   color: #FFF;
  4846. 1499.  -   margin-top: 90px;
  4847. 1500.  -   background: #333;
  4848. 1501.  -   background: rgba(0, 0, 0, 0.5);
  4849. 1502.  -   width: 90px;
  4850. 1503.  -   height: 15px;
  4851. 1504.  -   line-height: 15px;
  4852. 1505.  -   padding: 4px 0px 6px 0px;
  4853. 1506.  -   text-align: center;
  4854. 1507.  -   filter: alpha(opacity=75);
  4855. 1508.  - }
  4856. 1509.  - @media all and (min-width:0) { /* IE9-10 */
  4857. 1510.  -   .feed_since_ownerph { filter: none; }
  4858. 1511.  - }
  4859. 1512.  - .feed_since_ownerph:hover {
  4860. 1513.  -   text-decoration: none;
  4861. 1514.  - }
  4862. 1515.  - .feed_since_ownerph_label {
  4863. 1516.  -   opacity: 0.75;
  4864. 1517.  -   -webkit-transition: opacity 100ms linear;
  4865. 1518.  -   -moz-transition: opacity 100ms linear;
  4866. 1519.  -   -o-transition: opacity 100ms linear;
  4867. 1520.  -   transition: opacity 100ms linear;
  4868. 1521.  -   padding: 0px 0px 1px 20px;
  4869. 1522.  -   background: url(/images/icons/photo_icons.png?2) no-repeat left -62px;
  4870. 1523.  - }
  4871. 1524.  - .is_rtl1 .feed_since_ownerph_label {
  4872. 1525.  -   padding: 0px 20px 1px 0px;
  4873. 1526.  -   background-position: right -62px;
  4874. 1527.  - }
  4875. 1528.  - .feed_since_ownerph:hover .feed_since_ownerph_label {
  4876. 1529.  -   opacity: 1;
  4877. 1530.  - }
  4878. 1531.  - .feed_since_owner_tt .tt_text {
  4879. 1532.  -   width: 100px;
  4880. 1533.  -   text-align: center;
  4881. 1534.  -   max-height: 100px;
  4882. 1535.  -   overflow: hidden;
  4883. 1536.  -   text-overflow: ellipsis;
  4884. 1537.  - }
  4885. 1538.  - .feed_since_owner_tt .toup1 .bottom_pointer {
  4886. 1539.  -   margin: 0 52px;
  4887. 1540.  - }
  4888. 1541.  - .feed_found_photos .page_post_sized_thumbs {
  4889. 1542.  -   margin: 6px 0 0;
  4890. 1543.  -   padding-bottom: 0px;
  4891. 1544.  - }
  4892. 1545.  - .feed_row:last-child .feed_found_photos .page_post_sized_thumbs {
  4893. 1546.  -   margin-bottom: 10px;
  4894. 1547.  - }
  4895. 1548.  -
  4896. 1549.  -
  4897. 1550.  -
  4898. 1551.  - #feed_list_name_wrap {
  4899. 1552.  -   border-bottom: 1px solid #DAE1E8;
  4900. 1553.  -   padding: 10px;
  4901. 1554.  - }
  4902. 1555.  - #feed_list_name {
  4903. 1556.  -   width: 150px;
  4904. 1557.  -   height: 13px;
  4905. 1558.  -   padding: 4px 5px 5px;
  4906. 1559.  - }
  4907. 1560.  - .feed_row_fb_hider {
  4908. 1561.  -   display: block;
  4909. 1562.  -   border-top: 1px solid #FFF;
  4910. 1563.  -   border-bottom: 1px solid #DAE1E8;
  4911. 1564.  -   margin-top: -1px;
  4912. 1565.  -   text-align: center;
  4913. 1566.  -   color: #6A7989;
  4914. 1567.  -   background: #E9EDF1;
  4915. 1568.  -   height: 13px;
  4916. 1569.  -   padding: 9px 0px 8px;
  4917. 1570.  - }
  4918. 1571.  - .feed_row_fb_hider:hover {
  4919. 1572.  -   text-decoration: none;
  4920. 1573.  - }
  4921. 1574.  - .feed_row_fb_hidden {
  4922. 1575.  -   display: none;
  4923. 1576.  - }
  4924. ------
Advertisement
Add Comment
Please, Sign In to add comment