Hormold

VK Change (#1386255610)

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