Hormold

VK Change (#1379359814)

Sep 16th, 2013
243
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 172.96 KB | None | 0 0
  1. Файл - retina.css (Старый размер - 29928 | Новый - 23992):
  2. 56.  - .is_2x #search_query,
  3. 57.  - .is_2x .tdd_search .tdd_control,
  4. 58.  - .is_2x .choose_search_cont input {
  5. 59.  + .is_2x #search_query {
  6. 67.  - .is_2x #search_query_reset,
  7. 68.  - .is_2x #friends_reset_search {
  8. 69.  + .is_2x #search_query_reset {
  9. 84.  - .is_2x #audio_tip_arrow,
  10. 91.  - .is_2x .page_gif_add_icon,
  11. 92.  - .is_2x .current_audio .label,
  12. 93.  - .is_2x .current_audio_cnt .label,
  13. 94.  - .is_2x .video_row_icon_add .video_row_icon,
  14. 95.  - .is_2x .docs_add_row {
  15. 96.  -   background-image: url(/images/icons/audio_icons_2x.png?4);
  16. 97.  + .is_2x .page_gif_add_icon{
  17. 98.  +   background-image: url(/images/icons/audio_icons_2x.png);
  18. 106.  - .is_2x .fw_like_icon,
  19. 107.  - .is_2x .wall_module .post_share_icon {
  20. 108.  -   background-image: url(/images/icons/like_2x.png?2);
  21. 109.  -   background-size: 10px 32px;
  22. 110.  + .is_2x .fw_like_icon {
  23. 111.  +   background-image: url(/images/icons/like_2x.png);
  24. 112.  +   background-size: 10px 20px;
  25. 122.  - .is_2x .im_tab_selected .im_tabx_over,
  26. 123.  - .is_2x .summary_tab_x,
  27. 124.  - .is_2x .tdd_x_c {
  28. 125.  + .is_2x .im_tab_selected .im_tabx_over {
  29. 129.  - .is_2x .audio .play_new, .is_2x #audio.new .wall_module .audio.current .play_new {
  30. 130.  + .is_2x .audio .play_new {
  31. 141.  - .is_2x #im_docs_preview .im_media_x,
  32. 142.  - .is_2x #im_sdocs_preview .im_media_x,
  33. 146.  - .is_2x .wall_module .reply_delete_button,
  34. 147.  - .is_2x .fave_delete_link,
  35. 148.  - .is_2x #intr_hide,
  36. 149.  - .is_2x .wall_module .post_delete_button,
  37. 150.  - .is_2x .top_info_wrap .hide_button,
  38. 151.  - .is_2x .docs_delete_row {
  39. 152.  + .is_2x .wall_module .reply_delete_button {
  40. 155.  - }
  41. 156.  - .is_2x .im_to_end {
  42. 157.  -   background-image: url(/images/im_toend_2x.gif);
  43. 158.  -   background-size: 15px 13px;
  44. 159.  - }
  45. 160.  - .is_2x #im_log_fav_btn i,
  46. 161.  - .is_2x .im_important_toggler,
  47. 162.  - .is_2x .im_important_icon {
  48. 163.  -   background-image: url(/images/icons/im_actions_iconset2_2x.png?8);
  49. 164.  -   background-size: 20px 300px;
  50. 166.  -
  51. 177.  + .is_2x .current_audio,
  52. 183.  - .is_2x .im_attach_gift,
  53. 188.  - .is_2x .im_attach_link,
  54. 202.  - .is_2x .tickets_media_icon,
  55. 203.  - .is_2x .medadd_h,
  56. 204.  - .is_2x .group_share_club {
  57. 205.  -   background-image: url(/images/icons/mono_iconset_2x.png?2);
  58. 206.  -   background-size: 11px 360px;
  59. 207.  + .is_2x .medadd_h {
  60. 208.  +   background-image: url(/images/icons/mono_iconset_2x.png?1);
  61. 209.  +   background-size: 11px 346px;
  62. 212.  -   background: none;
  63. 213.  - }
  64. 214.  -
  65. 215.  - .is_2x .feed_tab_add_icon,
  66. 216.  - .is_2x .feed_filter_tabs_icon,
  67. 217.  - .is_2x .feed_filter_tabs_check {
  68. 218.  -   background-image: url(/images/icons/news_iconset_2x.png?2);
  69. 219.  -   background-size: 16px 176px;
  70. 220.  - }
  71. 221.  - .is_2x .feed_filter_lists_row .feed_filter_tabs_icon,
  72. 222.  - .is_2x .feed_icon_newlist {
  73. 227.  - .is_2x .page_verified,
  74. 228.  + .is_2x .profile_verified,
  75. 232.  - .is_2x .search_verified,
  76. 233.  - .is_2x .wall_post_source_icon,
  77. 234.  - .is_2x .page_fronly {
  78. 235.  -   background-image: url(/images/profile_icons_2x.png?10);
  79. 236.  -   background-size: 13px 241px;
  80. 237.  + .is_2x .search_verified {
  81. 238.  +   background-image: url(/images/profile_icons_2x.png);
  82. 239.  +   background-size: 13px 98px;
  83. 273.  - .is_2x #search_query_wrap.wide #search_query_progress,
  84. 274.  - .is_2x .docs_search_bar .docs_loading_bar {
  85. 275.  + .is_2x #search_query_wrap.wide #search_query_progress {
  86. 279.  - .is_2x .emoji_smile_icon_on,
  87. 280.  - .is_2x .emoji_smile_icon,
  88. 281.  - .is_2x .mbe_smile_icon_on,
  89. 282.  - .is_2x .mbe_smile_icon {
  90. 283.  + .is_2x .im_smile_icon_on,
  91. 284.  + .is_2x .im_smile_icon {
  92. 300.  - .is_2x .emoji_pointer {
  93. 301.  + .is_2x #im_emoji_pointer {
  94. 320.  - .is_2x #photo_default_check,
  95. 321.  - .is_2x .join_fb_progress {
  96. 322.  + .is_2x #photo_default_check {
  97. 333.  - .is_2x .post_upload_wrap div.post_upload,
  98. 334.  - .is_2x .im_upload_wrap div.im_upload {
  99. 335.  + .is_2x .post_upload_wrap div.post_upload {
  100. 343.  - .is_2x .mvs_header_text,
  101. 344.  - .is_2x .olist_dd_over {
  102. 345.  + .is_2x .mvs_header_text {
  103. 397.  - .is_2x .page_pics_preview .page_media_x,
  104. 398.  - .is_2x #im_media_preview .im_x,
  105. 399.  - .is_2x #im_media_dpreview .im_x,
  106. 400.  - .is_2x #im_media_mpreview .im_x,
  107. 401.  - .is_2x .owner_photo_bubble_delete,
  108. 402.  - .is_2x .app_delete_el {
  109. 403.  + .is_2x .page_pics_preview .page_media_x {
  110. 425.  - .is_2x .emoji_smile_shadow {
  111. 426.  + .is_2x .im_emoji_smile_cont {
  112. 462.  - .is_2x .video_module .video div.page_video_play_icon,
  113. 480.  + .is_2x .ads_edit_tt_pointer,
  114. 485.  - .is_2x .audio_status_tt .tail,
  115. 488.  - .is_2x .tickets_side_tt.time .tail,
  116. 489.  - .is_2x .apps_edit_side_tt_pointer {
  117. 490.  + .is_2x .tickets_side_tt.time .tail {
  118. 527.  + .is_2x .notes_checkbox,
  119. 542.  - .is_2x .side_filter.loading,
  120. 543.  - .is_2x .progress_inv_mini {
  121. 544.  + .is_2x .side_filter.loading {
  122. 562.  + }
  123. 563.  + .is_2x .selector_container td.selector_dropdown {
  124. 564.  +   background-image: url(/images/darr_dd_out_2x.gif);
  125. 565.  +   background-size: 7px 4px;
  126. 577.  - .is_2x .apps_featured_icon {
  127. 578.  -   background-image: url(/images/icons/apps_featured_arrow_2x.png);
  128. 579.  -   background-size: 26px 21px;
  129. 580.  + .is_2x .apps_featured_slide {
  130. 581.  +   background-image: url(/images/pics/apps_slide_2x.png);
  131. 582.  +   background-size: 6px 15px;
  132. 607.  -   background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAiCAYAAABFlhkzAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAARNJREFUeNrcltsJwjAUhpNapPgkCI7gBLqAuIFz6gRqB7BdQDcQBPVBxEviSWmld5P0L4IHwmlD8n1N2iTlp/NFMgo/3DMpJZvPJn26vVJ5MIMQQpTWO8mFgnMeXbrp+qaRAUnJ4OGwluMnAlXXQck/kOl4FOXFanug5FHpIiQZQEpypNRDSAqd0ZLSjkhJZSeUpLYDQvK1cSJZrgMriVZDJVF7lc1ItJ/EdrqM5tNGYvxV5CRevK1gNztu0NY1hW+CXZTp5BtQulF5wUaQg6tj9a5OS4jABq4t8EM7uNY7sH1yrRE0hdcKEPBKAQpeKkDCCwI0PCNIwYfxCm0Mr3oHIl7+jeH/++vYuuCJmn8VbwEGAGvuiUVvn8vPAAAAAElFTkSuQmCC);
  133. 608.  -   background-size: 12px 17px;
  134. 609.  +   background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAARCAYAAADpPU2iAAAArUlEQVR42pWSTQrCQAyFQ4eh4mz8A6uiKAgeXg8guHbjaeYGbQYivkkTxcK3e9880oRyzv31/uyJKAEBqD8QZsxCmDJRcIUVs2Y6kFqRQiUUbo9XkQ7CTqQEbaESQDozJyVNTAGkC3NkNjLbp0ULqmnPLKUlmg3GTCgEVwDprwY9A32bYQt/KbqCEW6rjRvhzgg33qZLcC6LGp+FuqX3GaTRq44Q4UU7bAjNL2EAU9kEmwVnt3EAAAAASUVORK5CYII%3D);
  135. 612.  -   background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAiCAYAAABFlhkzAAAAsUlEQVR42u2XQQ5AMBBFG4kQG0Lc/wZ6Ak7AXXCBmrEQEWGm7UwsNPnb9xqaP60x8VYKKbt+dHaY3LyseyLyTQZp7DA6lIgJEP4L7lYCKSCthADhOaS+wmMIHuGhgld4iIAE9xWQ4T4CFpwrOODYNRQ4R8DeOUfgDacIguAUAXZ85QtnCayQQPwTif9klWN6K8HZG1sgXhUqZadS1yoDR2Vkqgx9lWvLf3X8juB4gJwFG+W12jVqcG4VAAAAAElFTkSuQmCC);
  136. 613.  +   background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAiCAYAAABFlhkzAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAARNJREFUeNrcltsJwjAUhpNapPgkCI7gBLqAuIFz6gRqB7BdQDcQBPVBxEviSWmld5P0L4IHwmlD8n1N2iTlp/NFMgo/3DMpJZvPJn26vVJ5MIMQQpTWO8mFgnMeXbrp+qaRAUnJ4OGwluMnAlXXQck/kOl4FOXFanug5FHpIiQZQEpypNRDSAqd0ZLSjkhJZSeUpLYDQvK1cSJZrgMriVZDJVF7lc1ItJ/EdrqM5tNGYvxV5CRevK1gNztu0NY1hW+CXZTp5BtQulF5wUaQg6tj9a5OS4jABq4t8EM7uNY7sH1yrRE0hdcKEPBKAQpeKkDCCwI0PCNIwYfxCm0Mr3oHIl7+jeH/++vYuuCJmn8VbwEGAGvuiUVvn8vPAAAAAElFTkSuQmCC);
  137. 624.  - .is_2x .page_album_camera,
  138. 625.  - .is_2x .photos_choose_album_camera,
  139. 678.  + .is_2x #im_media_preview .im_media_x,
  140. 706.  + }
  141. 707.  + .is_2x .token span.x_hover,
  142. 708.  + .is_2x .token span.x,
  143. 709.  + {
  144. 710.  +   background-image: url('/images/blob_x.gif');
  145. 711.  +   background-size: 9px 10px;
  146. 745.  + }
  147. 746.  + .is_2x .mail_box_content img {
  148. 747.  +   max-width: 80px;
  149. 777.  - .is_2x .wall_module .reply_edit_button,
  150. 778.  - .is_2x .wall_module .post_edit_button,
  151. 779.  - .is_2x .docs_edit_row {
  152. 780.  + .is_2x .wall_module .reply_edit_button {
  153. 787.  - }
  154. 788.  - .is_2x .payments_box_wide .payments_getvotes_method_img {
  155. 789.  -   background-image: url(/images/icons/payments_w_2x.png);
  156. 790.  -   background-size: 41px 164px;
  157. 791.  - }
  158. 792.  - .is_2x .payments_logo_cards {
  159. 793.  -   background-image: url(/images/pics/cards_2x.png);
  160. 794.  -   background-size: 222px 52px;
  161. 795.  - }
  162. 796.  - .is_2x .payments_logo_webmoney {
  163. 797.  -   background-image: url(/images/ps/webmoney_2x.png);
  164. 798.  -   background-size: 126px 40px;
  165. 799.  - }
  166. 800.  - .is_2x .payments_logo_kiwipurse {
  167. 801.  -   background-image: url(/images/ps/qiwiwallet_2x.png);
  168. 802.  -   background-size: 110px 40px;
  169. 803.  - }
  170. 804.  - .is_2x .payments_logo_yandexmoney {
  171. 805.  -   background-image: url(/images/ps/yandexmoney_2x.png);
  172. 806.  -   background-size: 106px 45px;
  173. 807.  - }
  174. 808.  - .is_2x .payments_logo_checkout {
  175. 809.  -   background-image: url(/images/ps/googlewallet_2x.png);
  176. 810.  -   background-size: 190px 40px;
  177. 818.  + }
  178. 819.  + .is_2x .page_fronly {
  179. 820.  +   background-image: url(/images/private_post_2x.png);
  180. 821.  +   background-size: 8px 9px;
  181. 826.  - }
  182. 827.  - .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 {
  183. 828.  -   background-image: url(/images/icons/wall_export_2x.gif);
  184. 829.  -   background-size: 14px 112px;
  185. 830.  - }
  186. 831.  - .is_2x .flist_item_action, .is_2x #flist_sel_list .flist_item_action {
  187. 832.  -   background-image: url(/images/icons/lite_acts_12x12_2x.png);
  188. 833.  -   background-size: 12px 24px;
  189. 834.  - }
  190. 835.  - .is_2x .wdd_add_plus {
  191. 836.  -   background-image: url(/images/pics/im_plus_2x.gif);
  192. 837.  -   background-size: 11px 11px;
  193. 838.  - }
  194. 839.  - .is_2x #html5_player .play_button,
  195. 840.  - .is_2x #html5_player .pause_button,
  196. 841.  - .is_2x #html5_player .big_play,
  197. 842.  - .is_2x #html5_player .volume_button,
  198. 843.  - .is_2x #html5_player .quality_button .quality_val,
  199. 844.  - .is_2x #html5_player .quality_button #quality_label,
  200. 845.  - .is_2x #html5_player #video_actions .add,
  201. 846.  - .is_2x #html5_player #video_actions .rotate,
  202. 847.  - .is_2x #html5_player #video_actions .logo,
  203. 848.  - .is_2x #html5_player .vid_like_fg,
  204. 849.  - .is_2x #html5_player .vid_share_fg,
  205. 850.  - .is_2x #html5_player .vid_link_fg {
  206. 851.  -   background-image: url(/images/video/iconset_2x.png?2);
  207. 852.  -   background-size: 380px 54px;
  208. 853.  - }
  209. 854.  - .is_2x .wall_album_nocover,
  210. 855.  - .is_2x .pva_no_photos,
  211. 856.  - .is_2x #photos_albums_container .photo_row .img_link.no_photo,
  212. 857.  - .is_2x .photos_choose_album_link.no_photo {
  213. 858.  -   background-image: url(/images/camera_big_2x.png);
  214. 859.  -   background-size: 64px 48px;
  215. 860.  - }
  216. 861.  -
  217. 862.  - .is_2x .dropbox, .is_2x .dropbox.choose {
  218. 863.  -   background-image: url(/images/dropbox_arrow_2x.png);
  219. 864.  -   background-size: 63px 44px;
  220. 865.  - }
  221. 866.  - .is_2x .owner_photo_bubble_action_in {
  222. 867.  -   background-image: url(/images/edit_photo_icons_white_2x.png);
  223. 868.  -   background-size: 16px 88px;
  224. 869.  - }
  225. 870.  - .is_2x .owner_photo_bubble_action_in {
  226. 871.  -   background-image: url(/images/edit_photo_icons_white_2x.png);
  227. 872.  -   background-size: 16px 88px;
  228. 873.  - }
  229. 874.  - .is_2x #privacy_custom_box .minus_friends {
  230. 875.  -   background-image: url(/images/minus_2x.png);
  231. 876.  -   background-size: 16px 16px;
  232. 877.  - }
  233. 878.  - .is_2x #privacy_custom_box .plus_friends {
  234. 879.  -   background-image: url(/images/plus_2x.png);
  235. 880.  -   background-size: 15px 19px;
  236. 881.  - }
  237. 882.  - .is_2x .index_fb_logo {
  238. 883.  -   background-image: url(/images/icons/facebook_btn_icon_2x.png);
  239. 884.  -   background-size: 8px 16px;
  240. 885.  - }
  241. 886.  - .is_2x .index_fb_btn button {
  242. 887.  -   background-image: url('/images/fb_button_2x.png');
  243. 888.  -   background-size: 1px 44px;
  244. 889.  - }
  245. 890.  - .is_2x .photos_choose_row_add .icon {
  246. 891.  -   background-image: url('/images/icons/check_white_2x.png');
  247. 892.  -   background-size: 14px 13px;
  248. 893.  - }
  249. 894.  - .is_2x div.box_dark .selector_container td.selector_dropdown,
  250. 895.  - .is_2x .wdd_arr {
  251. 896.  -   background-image: url(/images/wide_dd_2x.png);
  252. 897.  -   background-size: 21px 24px;
  253. 898.  - }
  254. 899.  - .is_2x .video_share_icon {
  255. 900.  -   background-image: url(/images/icons/videoexporticons_2x.png);
  256. 901.  - }
  257. 902.  - .is_2x .olympics_bar_img {
  258. 903.  -   background-image: url(/images/olymp_mono_2x.png);
  259. 904.  -   background-size: 59px 28px;
  260. 905.  - }
  261. 906.  - .is_2x .olympics_bar_img.sochi {
  262. 907.  -   background-image: url(/images/sochi2014_2x.png);
  263. 908.  -   background-size: 50px 33px;
  264. 909.  - }
  265. 910.  - .is_2x .app_new_sticker {
  266. 911.  -   background-image: url(/images/icons/new_app_en_2x.png);
  267. 912.  -   background-size: 60px 60px;
  268. 913.  - }
  269. 914.  - .is_2x .apps_sticker_ru {
  270. 915.  -   background-image: url(/images/icons/new_app_ru_2x.png);
  271. 916.  - }
  272. 917.  - .is_2x .apps_sticker_ua {
  273. 918.  -   background-image: url(/images/icons/new_app_ua_2x.png);
  274. 919.  - }
  275. 920.  - .is_2x .audio_new_sticker {
  276. 921.  -   background-image: url(/images/icons/new_audio_en_2x.png);
  277. 922.  -   background-size: 58px 58px;
  278. 923.  - }
  279. 924.  - .is_2x .audio_sticker_ru {
  280. 925.  -   background-image: url(/images/icons/new_audio_ru_2x.png);
  281. 926.  - }
  282. 927.  - .is_2x .audio_sticker_ua {
  283. 928.  -   background-image: url(/images/icons/new_audio_ua_2x.png);
  284. 929.  - }
  285. 930.  - .is_2x .pv_filter_font_icon {
  286. 931.  -   background-image: url('/images/icons/switch_fonts_2x.png');
  287. 932.  -   background-size: 17px 25px;
  288. 933.  - }
  289. 934.  - .is_2x .checkin_big {
  290. 935.  -   background-image: url(/images/icons/checkin_big_2x.png);
  291. 936.  -   background-size: 17px 22px;
  292. ------
  293. Файл - tickets.js (Старый размер - 89193 | Новый - 0):
  294. 0.  - Tickets = {
  295. 1.  -
  296. 2.  - switchTab: function(name, evt) {
  297. 3.  -   if (evt.button) return true;
  298. 4.  -   var oldTab = false;
  299. 5.  -   each(geByClass('active_link', ge('tickets_tabs')), function(i, v) {
  300. 6.  -     if (hasClass(v, 'active_link')) {
  301. 7.  -       oldTab = v;
  302. 8.  -       removeClass(v, 'active_link');
  303. 9.  -     }
  304. 10.  -   });
  305. 11.  -   addClass(ge(name + '_tab'), 'active_link');
  306. 12.  -   toggle('stats_link', name == 'stats');
  307. 13.  -   if (name == 'show') {
  308. 14.  -     show('show_tab', 'new_link');
  309. 15.  -     hide('new_tab', 'extra_tab');
  310. 16.  -     return false;
  311. 17.  -   } else if (name == 'new') {
  312. 18.  -     hide('show_tab', 'extra_tab', 'new_link');
  313. 19.  -     show('new_tab');
  314. 20.  -     return nav.go(ge(name + '_tab').firstChild, evt, {onFail: function(text) {
  315. 21.  -       hide('new_tab');
  316. 22.  -       show('show_tab', 'new_link');
  317. 23.  -       removeClass(ge(name + '_tab'), 'active_link');
  318. 24.  -       if (oldTab) {
  319. 25.  -         addClass(oldTab, 'active_link');
  320. 26.  -       }
  321. 27.  -       setTimeout(showFastBox(getLang('global_error'), text).hide, 2000);
  322. 28.  -       return true;
  323. 29.  -     }});
  324. 30.  -   } else if (name == 'extra') {
  325. 31.  -     hide('show_tab', 'new_tab');
  326. 32.  -     show('extra_tab', 'new_link');
  327. 33.  -   } else {
  328. 34.  -     hide('extra_tab', 'show_tab', 'new_tab');
  329. 35.  -     show('new_link');
  330. 36.  -     var link = ge(name + '_tab').firstChild.href;
  331. 37.  -     if ((name == 'all_history' || name == 'history') && nav.objLoc.q && ge(name + '_tab').firstChild) {
  332. 38.  -       link += '&q=' + nav.objLoc.q;
  333. 39.  -     }
  334. 40.  -     return nav.go(link, evt);
  335. 41.  -   }
  336. 42.  - },
  337. 43.  -
  338. 44.  - switchSubTab: function(el, link, evt) {
  339. 45.  -   if (checkEvent(evt) || hasClass(el, 'active')) return false;
  340. 46.  -   each(geByClass('tickets_subtab1', ge('tickets_subtabs')), function(i, v) {
  341. 47.  -     removeClass(v, 'active');
  342. 48.  -   });
  343. 49.  -   addClass(el, 'active');
  344. 50.  -   return nav.go(link, evt);
  345. 51.  - },
  346. 52.  -
  347. 53.  - gotoTicket: function(el, evt) {
  348. 54.  -   Tickets.switchTab('show', evt);
  349. 55.  -   return nav.go(el, evt);
  350. 56.  - },
  351. 57.  -
  352. 58.  - getPage: function(offset) {
  353. 59.  -   show('pages_loading_top');
  354. 60.  -   show('pages_loading_bottom');
  355. 61.  -   var _n = nav.objLoc, act = cur.section, query = {act: act, offset: offset, load: 1};
  356. 62.  -   for (var v in _n) {
  357. 63.  -     if (v != '0' && v != 'act' && v != 'offset') query[v] = _n[v];
  358. 64.  -   }
  359. 65.  -   if (_n.act == 'all' && cur.checkedTickets) {
  360. 66.  -     window.checkedTickets = cur.checkedTickets;
  361. 67.  -   }
  362. 68.  -   ajax.post(nav.objLoc[0], query, {
  363. 69.  -     cache: 1,
  364. 70.  -     onDone: function(content, script) {
  365. 71.  -       if (nav.objLoc.act == 'history') {
  366. 72.  -         ge('tickets_replies').innerHTML = content;
  367. 73.  -       } else {
  368. 74.  -         ge('tickets_content').innerHTML = content;
  369. 75.  -       }
  370. 76.  -       if (window.tooltips) tooltips.hideAll();
  371. 77.  -       if (script) eval(script);
  372. 78.  -       if (window.checkedTickets) {
  373. 79.  -         cur.checkedTickets = window.checkedTickets;
  374. 80.  -         delete window.checkedTickets;
  375. 81.  -         each(cur.checkedTickets, function(i, v) {if (ge('tickets_similar_row'+i)) {
  376. 82.  -           geByClass1('tickets_check', ge('tickets_similar_row'+i)).firstChild.className = 'checked';
  377. 83.  -         }});
  378. 84.  -         Tickets.updateChecked();
  379. 85.  -       }
  380. 86.  -       if (offset) {
  381. 87.  -         nav.setLoc(extend(nav.objLoc, {offset: offset}));
  382. 88.  -       } else {
  383. 89.  -         delete nav.objLoc.offset;
  384. 90.  -         nav.setLoc(nav.objLoc);
  385. 91.  -       }
  386. 92.  -     },
  387. 93.  -     onFail: function() {
  388. 94.  -       hide('pages_loading_top');
  389. 95.  -       hide('pages_loading_bottom');
  390. 96.  -     }
  391. 97.  -   });
  392. 98.  -   return false;
  393. 99.  - },
  394. 100.  -
  395. 101.  - getBrowser: function() {
  396. 102.  -   var _uan = false, _uafull, browsersList = ['opera_mini', 'opera_mobile', 'safari_mobile', 'msie_mobile', 'bada', 'android', 'ipad', 'ipod', 'iphone', 'mozilla', 'opera', 'chrome', 'safari', 'msie10', 'msie9', 'msie8', 'msie7', 'msie6', 'msie'],
  397. 103.  -   versions = ['opera_mini', 'opera_mobile', 'bada'], version;
  398. 104.  -   for (var i in browsersList) {
  399. 105.  -     if (window.browser[browsersList[i]] === true) {
  400. 106.  -       _uan = browsersList[i];
  401. 107.  -       break;
  402. 108.  -     }
  403. 109.  -   }
  404. 110.  -   if (window._ua && /yabrowser/i.test(_ua)) {
  405. 111.  -     _uan = 'yabrowser';
  406. 112.  -   }
  407. 113.  -   if (_uan) {
  408. 114.  -     if (window.browser.msie) {
  409. 115.  -       version = '';
  410. 116.  -     } else {
  411. 117.  -       var fixed_ver = (window._ua.match( /.+(?:mini|bada|mobi)[\/: ]([\d.]+)/ ) || [0,'0'])[1];
  412. 118.  -       version = fixed_ver != '0' ? ' ' + fixed_ver : ' ' + window.browser.version;
  413. 119.  -     }
  414. 120.  -     _uafull = _uan + version;
  415. 121.  -   } else {
  416. 122.  -     _uafull = navigator.userAgent.toLowerCase();
  417. 123.  -   }
  418. 124.  -   var f = browser.flashfull;
  419. 125.  -   _uafull += "|"+f.major+"."+f.minor+"."+f.rev;
  420. 126.  -
  421. 127.  -   return _uafull;
  422. 128.  - },
  423. 129.  -
  424. 130.  - saveTicket: function(hash) {
  425. 131.  -   var title = trim(val('tickets_title')),
  426. 132.  -       text = trim(val('tickets_text'));
  427. 133.  -   if (!title) {
  428. 134.  -     notaBene('tickets_title');
  429. 135.  -     return;
  430. 136.  -   }
  431. 137.  -   var attachs = [], chosen = cur.ticketsNewMedia.chosenMedias;
  432. 138.  -   if (chosen) {
  433. 139.  -     for (var i in chosen) {
  434. 140.  -       var att = chosen[i], type = att[0], value = att[1];
  435. 141.  -       if (type == 'photo' || type == 'doc') {
  436. 142.  -         attachs.push(type+','+value);
  437. 143.  -       }
  438. 144.  -     }
  439. 145.  -   }
  440. 146.  -   if (!text && !attachs.length) {
  441. 147.  -     notaBene('tickets_text');
  442. 148.  -     return;
  443. 149.  -   }
  444. 150.  -   var _uafull = Tickets.getBrowser();
  445. 151.  -   var query = {act: 'save', title: title, text: text, hash: hash, attachs: attachs, browser: _uafull};
  446. 152.  -   if (cur.samples && cur.samples.audio || ge('audio_checking')) {
  447. 153.  -     query.audio_html = ge('audio_checking').innerHTML;
  448. 154.  -     var orig = (cur.samples || {}).audio || '';
  449. 155.  -     if (window.ag && window.sh) {query.audio_html = query.audio_html.replace(/_info/g, 'vkontakte_info')};
  450. 156.  -     if (window.dwnl_video || window.add_js) {query.audio_html = query.audio_html.replace(/_info/g, 'dwnl_info')};
  451. 157.  -     query.audio_orig = ce('div', {innerHTML: orig.replace(/z9q2m/g, 'audio')}).innerHTML;
  452. 158.  -   }
  453. 159.  -   if (nav.objLoc.mid) {
  454. 160.  -     query.mid = nav.objLoc.mid;
  455. 161.  -   }
  456. 162.  -   if (nav.objLoc.act == 'new_ads') query.section = 1;
  457. 163.  -   if (nav.objLoc.act == 'new_pay') query.section = 16;
  458. 164.  -   if (nav.objLoc.act == 'new_name') query.section = 20;
  459. 165.  -   if (nav.objLoc.act == 'new_api') query.section = 12;
  460. 166.  -   if (nav.objLoc.act == 'new_mobile') query.section = 24;
  461. 167.  -   ajax.post(nav.objLoc[0], query, {
  462. 168.  -     showProgress: lockButton.pbind(ge('tickets_send')),
  463. 169.  -     hideProgress: unlockButton.pbind(ge('tickets_send'))
  464. 170.  -   });
  465. 171.  - },
  466. 172.  -
  467. 173.  - savePayTicket: function(hash) {
  468. 174.  -   var title = trim(val('tickets_title')),
  469. 175.  -       text = trim(val('tickets_text'));
  470. 176.  -   if (!title) {
  471. 177.  -     notaBene('tickets_title');
  472. 178.  -     return;
  473. 179.  -   }
  474. 180.  -   var attachs = [], chosen = cur.ticketsNewMedia.chosenMedias;
  475. 181.  -   if (chosen) {
  476. 182.  -     for (var i in chosen) {
  477. 183.  -       var att = chosen[i], type = att[0], value = att[1];
  478. 184.  -       if (type == 'photo' || type == 'doc') {
  479. 185.  -         attachs.push(type+','+value);
  480. 186.  -       }
  481. 187.  -     }
  482. 188.  -   }
  483. 189.  -   if (!text && !attachs.length) {
  484. 190.  -     notaBene('tickets_text');
  485. 191.  -     return;
  486. 192.  -   }
  487. 193.  -   if (!Tickets.checkPayForm()) {
  488. 194.  -     return;
  489. 195.  -   }
  490. 196.  -   var _uafull = Tickets.getBrowser();
  491. 197.  -   var query = extend({act: 'save', title: title, text: text, hash: hash, attachs: attachs, browser: _uafull}, Tickets.getPayFields());
  492. 198.  -   if (cur.samples && cur.samples.audio || ge('audio_checking')) {
  493. 199.  -     query.audio_html = ge('audio_checking').innerHTML;
  494. 200.  -     var orig = (cur.samples || {}).audio || '';
  495. 201.  -     if (window.ag && window.sh) {query.audio_html = query.audio_html.replace(/_info/g, 'vkontakte_info')};
  496. 202.  -     if (window.dwnl_video || window.add_js) {query.audio_html = query.audio_html.replace(/_info/g, 'dwnl_info')};
  497. 203.  -     query.audio_orig = ce('div', {innerHTML: orig.replace(/z9q2m/g, 'audio')}).innerHTML;
  498. 204.  -   }
  499. 205.  -   if (nav.objLoc.act == 'new_ads') query.section = 1;
  500. 206.  -   if (nav.objLoc.act == 'new_pay') query.section = 16;
  501. 207.  -   ajax.post(nav.objLoc[0], query, {
  502. 208.  -     showProgress: lockButton.pbind(ge('tickets_send')),
  503. 209.  -     hideProgress: unlockButton.pbind(ge('tickets_send'))
  504. 210.  -   });
  505. 211.  - },
  506. 212.  -
  507. 213.  - saveDMCATicket: function(hash) {
  508. 214.  -   if (!Tickets.checkDMCAForm()) {
  509. 215.  -     return;
  510. 216.  -   }
  511. 217.  -   var attachs = [], chosen = cur.ticketsNewMedia.chosenMedias;
  512. 218.  -   if (chosen) {
  513. 219.  -     for (var i in chosen) {
  514. 220.  -       var att = chosen[i], type = att[0], value = att[1];
  515. 221.  -       if (type == 'photo' || type == 'doc') {
  516. 222.  -         attachs.push(type+','+value);
  517. 223.  -       }
  518. 224.  -     }
  519. 225.  -   }
  520. 226.  -   var _uafull = Tickets.getBrowser();
  521. 227.  -   var query = extend({act: 'save', hash: hash, section: 21, attachs: attachs, browser: _uafull}, Tickets.getDMCAFields());
  522. 228.  -   if (cur.samples && cur.samples.audio || ge('audio_checking')) {
  523. 229.  -     query.audio_html = ge('audio_checking').innerHTML;
  524. 230.  -     var orig = (cur.samples || {}).audio || '';
  525. 231.  -     if (window.ag && window.sh) {query.audio_html = query.audio_html.replace(/_info/g, 'vkontakte_info')};
  526. 232.  -     if (window.dwnl_video || window.add_js) {query.audio_html = query.audio_html.replace(/_info/g, 'dwnl_info')};
  527. 233.  -     query.audio_orig = ce('div', {innerHTML: orig.replace(/z9q2m/g, 'audio')}).innerHTML;
  528. 234.  -   }
  529. 235.  -   ajax.post('/support', query, {
  530. 236.  -     showProgress: lockButton.pbind(ge('tickets_send')),
  531. 237.  -     hideProgress: unlockButton.pbind(ge('tickets_send'))
  532. 238.  -   });
  533. 239.  - },
  534. 240.  -
  535. 241.  - checkDMCAForm: function() {
  536. 242.  -   var params = Tickets.getDMCAFields();
  537. 243.  -   var legal = params.type == 1,
  538. 244.  -       suffix = legal ? '_legal' : '';
  539. 245.  -   if (!params.text) {
  540. 246.  -     notaBene('tickets_text');
  541. 247.  -     return;
  542. 248.  -   }
  543. 249.  -   if (params.links.length < 9) {
  544. 250.  -     notaBene('tickets_links');
  545. 251.  -     return;
  546. 252.  -   }
  547. 253.  -   if (legal) {
  548. 254.  -     if (!params.title) {
  549. 255.  -       notaBene('tickets_dmca_corp');
  550. 256.  -       return false;
  551. 257.  -     }
  552. 258.  -     if (params.repr.length < 5) {
  553. 259.  -       notaBene('tickets_dmca_repr');
  554. 260.  -       return false;
  555. 261.  -     }
  556. 262.  -     if (params.post.length < 3) {
  557. 263.  -       notaBene('tickets_dmca_post');
  558. 264.  -       return false;
  559. 265.  -     }
  560. 266.  -   } else {
  561. 267.  -     if (!params.title) {
  562. 268.  -       notaBene('tickets_dmca_name');
  563. 269.  -       return false;
  564. 270.  -     }
  565. 271.  -   }
  566. 272.  -   if (!(/^\s*[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9_\.\-]+\s*$/.test(params.email))) {
  567. 273.  -     notaBene('tickets_dmca_email');
  568. 274.  -     return false;
  569. 275.  -   }
  570. 276.  -   if (params.country < 1) {
  571. 277.  -     cur.uiCountry.focus();
  572. 278.  -     return false;
  573. 279.  -   }
  574. 280.  -   if (params.city < 1) {
  575. 281.  -     cur.uiCity.focus();
  576. 282.  -     return false;
  577. 283.  -   }
  578. 284.  -   if (params.address < 9) {
  579. 285.  -     notaBene('tickets_dmca_address');
  580. 286.  -     return false;
  581. 287.  -   }
  582. 288.  -   if (!isChecked('support_dmca_agree_owner' + suffix)) {
  583. 289.  -     return Tickets.showMsgBox(getLang(legal ? 'help_ccform_legal_need_is_owner' : 'help_ccform_natural_need_owner'), getLang('global_error'));
  584. 290.  -   }
  585. 291.  -   if (!isChecked('support_dmca_agree_unauthorized' + suffix)) {
  586. 292.  -     return Tickets.showMsgBox(getLang(legal ? 'help_ccform_legal_need_unauthorized' : 'help_ccform_natural_need_unauthorized'), getLang('global_error'));
  587. 293.  -   }
  588. 294.  -   if (!isChecked('support_dmca_agree_perjury' + suffix)) {
  589. 295.  -     return Tickets.showMsgBox(getLang(legal ? 'help_ccform_legal_need_perjury' : 'help_ccform_natural_need_perjury'), getLang('global_error'));
  590. 296.  -   }
  591. 297.  -   if (!isChecked('support_dmca_agree_email' + suffix)) {
  592. 298.  -     return Tickets.showMsgBox(getLang(legal ? 'help_ccform_legal_need_email' : 'help_ccform_natural_need_email'), getLang('global_error'));
  593. 299.  -   }
  594. 300.  -   if (!isChecked('support_dmca_agree_inform' + suffix)) {
  595. 301.  -     return Tickets.showMsgBox(getLang(legal ? 'help_ccform_legal_need_inform' : 'help_ccform_natural_need_inform'), getLang('global_error'));
  596. 302.  -   }
  597. 303.  -   if (!isChecked('support_dmca_agree_rules')) {
  598. 304.  -     return Tickets.showMsgBox(getLang('help_ccform_need_rules'), getLang('global_error'));
  599. 305.  -   }
  600. 306.  -
  601. 307.  -   return true;
  602. 308.  - },
  603. 309.  -
  604. 310.  - getDMCAFields: function() {
  605. 311.  -   var text = trim(val('tickets_text')),
  606. 312.  -       links = trim(val('tickets_links'));
  607. 313.  -   var res = {
  608. 314.  -     text: trim(val('tickets_text')),
  609. 315.  -     links: trim(val('tickets_links')),
  610. 316.  -     type: cur.dmcaType,
  611. 317.  -     email: trim(val('tickets_dmca_email')),
  612. 318.  -     country: cur.uiCountry.val(),
  613. 319.  -     city: cur.uiCity.val(),
  614. 320.  -     region: trim(val('tickets_dmca_region')),
  615. 321.  -     address: trim(val('tickets_dmca_address'))
  616. 322.  -   };
  617. 323.  -   if (cur.dmcaType == 1) {
  618. 324.  -     res.title = trim(val('tickets_dmca_corp'));
  619. 325.  -     res.repr = trim(val('tickets_dmca_repr'));
  620. 326.  -     res.post = trim(val('tickets_dmca_post'));
  621. 327.  -   } else {
  622. 328.  -     res.title = trim(val('tickets_dmca_name'));
  623. 329.  -   }
  624. 330.  -   for (var i in res) {
  625. 331.  -     if (res[i] === '') {
  626. 332.  -       delete res[i];
  627. 333.  -     }
  628. 334.  -   }
  629. 335.  -
  630. 336.  -   return res;
  631. 337.  -
  632. 338.  - },
  633. 339.  -
  634. 340.  - showMsgBox: function(text, title, input) {
  635. 341.  -   setTimeout(showFastBox({title: title, dark: true, bodyStyle: 'line-height: 160%;', onHide: function() {if (input) ge(input).focus();}}, text).hide, 4000);
  636. 342.  -   return false;
  637. 343.  - },
  638. 344.  -
  639. 345.  - checkPhone: function(phone) {
  640. 346.  -   ajax.post(nav.objLoc[0], {act: 'check_phone', phone: phone}, {
  641. 347.  -     cache: 1,
  642. 348.  -     onDone: function(real_phone) {
  643. 349.  -       cur.phone = real_phone;
  644. 350.  -       val('tickets_number_from', real_phone);
  645. 351.  -       if (!real_phone) {
  646. 352.  -         notaBene('tickets_number_from');
  647. 353.  -       }
  648. 354.  -     }
  649. 355.  -   })
  650. 356.  - },
  651. 357.  -
  652. 358.  - checkPayForm: function() {
  653. 359.  -   if (cur.payType === undefined) {
  654. 360.  -     cur.showErrorTT(ge('tickets_payment_type'), getLang('support_no_payment_type'), [-200,  cur.section == 'show' ? -103 : -113, 0]);
  655. 361.  -     return false;
  656. 362.  -   }
  657. 363.  -   switch (cur.payType) {
  658. 364.  -     case 0:
  659. 365.  -       if (!cur.phone) {
  660. 366.  -         notaBene('tickets_number_from');
  661. 367.  -         return false;
  662. 368.  -       }
  663. 369.  -       break;
  664. 370.  -     case 1:
  665. 371.  -     case 4:
  666. 372.  -       if (cur.payType == 4) {
  667. 373.  -         if (!floatval(val('tickets_pay_sum'))) {
  668. 374.  -           notaBene('tickets_pay_sum');
  669. 375.  -           return false;
  670. 376.  -         }
  671. 377.  -         if (!trim(val('tickets_organisation'))) {
  672. 378.  -           notaBene('tickets_organisation');
  673. 379.  -           return false;
  674. 380.  -         }
  675. 381.  -       }
  676. 382.  -       var attachs = [], chosen = cur.ticketsNewMedia.chosenMedias;
  677. 383.  -       if (chosen) {
  678. 384.  -         for (var i in chosen) {
  679. 385.  -           var att = chosen[i], type = att[0], value = att[1];
  680. 386.  -           if (type == 'photo' || type == 'doc') {
  681. 387.  -             attachs.push(type+','+value);
  682. 388.  -           }
  683. 389.  -         }
  684. 390.  -       }
  685. 391.  -       if (!attachs.length) {
  686. 392.  -         var msg = (cur.payType == 1) ? getLang('support_no_bill_photo') : getLang('support_no_payment_scan');
  687. 393.  -         setTimeout(showFastBox(getLang('global_error'), msg).hide, 2000);
  688. 394.  -         return false;
  689. 395.  -       }
  690. 396.  -       break;
  691. 397.  -     case 2:
  692. 398.  -     case 3:
  693. 399.  -       if (cur.payType == 2) {
  694. 400.  -         if (cur.paySystem === undefined) {
  695. 401.  -           cur.showPaySysTT();
  696. 402.  -           return false;
  697. 403.  -         } else if (cur.paySystem == 4 && !trim(val('tickets_paysystem_name'))) {
  698. 404.  -           notaBene('tickets_paysystem_name');
  699. 405.  -           return false;
  700. 406.  -         }
  701. 407.  -       }
  702. 408.  -       if (!floatval(val('tickets_pay_sum'))) {
  703. 409.  -         notaBene('tickets_pay_sum');
  704. 410.  -         return false;
  705. 411.  -       }
  706. 412.  -       if (!cur.currencyDD.val()) {
  707. 413.  -         notaBene(cur.currencyDD.input);
  708. 414.  -         return false;
  709. 415.  -       }
  710. 416.  -       break;
  711. 417.  -     default:
  712. 418.  -       return false;
  713. 419.  -   }
  714. 420.  -
  715. 421.  -   return true;
  716. 422.  - },
  717. 423.  -
  718. 424.  - getPayFields: function() {
  719. 425.  -   var res = {};
  720. 426.  -   if (cur.payType === undefined) {
  721. 427.  -     return res;
  722. 428.  -   }
  723. 429.  -   switch (cur.payType) {
  724. 430.  -     case 0:
  725. 431.  -       res.pay_type = cur.payType;
  726. 432.  -       res.pay_date = val('tickets_payment_date');
  727. 433.  -       res.number_from = cur.phone;
  728. 434.  -       if (val('tickets_number_to')) {
  729. 435.  -         res.number_to = trim(val('tickets_number_to'));
  730. 436.  -       }
  731. 437.  -       if (val('tickets_sms_text')) {
  732. 438.  -         res.sms_text = trim(val('tickets_sms_text'));
  733. 439.  -       }
  734. 440.  -       if (val('tickets_payed_sum')) {
  735. 441.  -         res.payed_sum = trim(val('tickets_payed_sum'));
  736. 442.  -       }
  737. 443.  -       break;
  738. 444.  -     case 1:
  739. 445.  -       res.pay_type = cur.payType;
  740. 446.  -       res.pay_date = val('tickets_payment_date');
  741. 447.  -       res.pay_email = val('tickets_id_email');
  742. 448.  -       break;
  743. 449.  -     case 2:
  744. 450.  -     case 3:
  745. 451.  -       res.pay_type = cur.payType;
  746. 452.  -       res.pay_date = val('tickets_payment_date');
  747. 453.  -       res.pay_sum = floatval(val('tickets_pay_sum'));
  748. 454.  -       res.pay_currency = cur.currencyDD.val();
  749. 455.  -       if (cur.payType == 2) {
  750. 456.  -         if (cur.paySystem == 4) {
  751. 457.  -           res.pay_system_name = trim(val('tickets_paysystem_name'));
  752. 458.  -         } else {
  753. 459.  -           res.pay_system = cur.paySystem;
  754. 460.  -         }
  755. 461.  -       }
  756. 462.  -       break;
  757. 463.  -     case 4:
  758. 464.  -       res.pay_type = cur.payType;
  759. 465.  -       res.pay_day = val('tickets_payment_day');
  760. 466.  -       res.pay_sum = floatval(val('tickets_pay_sum'));
  761. 467.  -       res.pay_org = trim(val('tickets_organisation'));
  762. 468.  -       break;
  763. 469.  -   }
  764. 470.  -
  765. 471.  -   return res;
  766. 472.  -
  767. 473.  - },
  768. 474.  -
  769. 475.  - addTicketReply: function(hash) {
  770. 476.  -   if (ge('tickets_reply') && ge('tickets_reply').disabled) {
  771. 477.  -     return false;
  772. 478.  -   }
  773. 479.  -   cur.sendingAnswer = true;
  774. 480.  -   var text = trim(val('tickets_reply')), attachs = [], chosen = cur.ticketsNewMedia.chosenMedias;
  775. 481.  -   if (chosen) {
  776. 482.  -     for (var i in chosen) {
  777. 483.  -       var att = chosen[i], type = att[0], value = att[1];
  778. 484.  -       if (type == 'photo' || type == 'doc') {
  779. 485.  -         attachs.push(type+','+value);
  780. 486.  -       }
  781. 487.  -     }
  782. 488.  -   }
  783. 489.  -   if (!text && !attachs.length) {
  784. 490.  -     cur.sendingAnswer = false;
  785. 491.  -     return elfocus('tickets_reply');
  786. 492.  -   }
  787. 493.  -   var query = {act: 'add_comment', ticket_id: cur.ticket_id, text: text, hash: hash, attachs: attachs, hidden: isChecked('tickets_hidden')};
  788. 494.  -   if (cur.checkedTickets) {
  789. 495.  -     var tickets = [];
  790. 496.  -     each(cur.checkedTickets, function(i, v) {tickets.push(i)});
  791. 497.  -     query.similar = tickets.join(',');
  792. 498.  -   }
  793. 499.  -   var _ua = false, _uafull;
  794. 500.  -   for (var i in window.browser) {
  795. 501.  -     if (window.browser[i] === true) {
  796. 502.  -       _ua = i;
  797. 503.  -       break;
  798. 504.  -     }
  799. 505.  -   }
  800. 506.  -   _uafull = _ua ? _ua + " " + window.browser.version : navigator.userAgent.toLowerCase();
  801. 507.  -   var f = browser.flashfull;
  802. 508.  -   _uafull += "|"+f.major+"."+f.minor+"."+f.rev;
  803. 509.  -   query.browser = _uafull;
  804. 510.  -   if (cur.samples && cur.samples.audio || ge('audio_checking')) {
  805. 511.  -     query.audio_html = ge('audio_checking').innerHTML;
  806. 512.  -     var orig = (cur.samples || {}).audio || '';
  807. 513.  -     if (window.ag && window.sh) {query.audio_html = query.audio_html.replace(/_info/g, 'vkontakte_info')};
  808. 514.  -     if (window.dwnl_video || window.add_js) {query.audio_html = query.audio_html.replace(/_info/g, 'dwnl_info')};
  809. 515.  -     query.audio_orig = ce('div', {innerHTML: orig.replace(/z9q2m/g, 'audio')}).innerHTML;
  810. 516.  -   }
  811. 517.  -   var draftKey = 'helpdesk_draft' + vk.id + '_' + cur.ticket_id;
  812. 518.  -   if (ls.get(draftKey)) {
  813. 519.  -     ls.set(draftKey, false);
  814. 520.  -     ls.remove(draftKey);
  815. 521.  -   }
  816. 522.  -   ajax.post(nav.objLoc[0], query, {
  817. 523.  -     onDone: function(content, script) {
  818. 524.  -       cur.sendingAnswer = false;
  819. 525.  -       if (content) ge('tickets_content').innerHTML = content;
  820. 526.  -       if (script) eval(script);
  821. 527.  -     },
  822. 528.  -     showProgress: lockButton.pbind(ge('tickets_send')),
  823. 529.  -     hideProgress: unlockButton.pbind(ge('tickets_send'))
  824. 530.  -   });
  825. 531.  - },
  826. 532.  -
  827. 533.  - addPayData: function(hash) {
  828. 534.  -   cur.sendingAnswer = true;
  829. 535.  -   if (!Tickets.checkPayForm()) {
  830. 536.  -     cur.sendingAnswer = false;
  831. 537.  -     return;
  832. 538.  -   }
  833. 539.  -   var text = trim(val('tickets_reply')), attachs = [], chosen = cur.ticketsNewMedia.chosenMedias;
  834. 540.  -   if (chosen) {
  835. 541.  -     for (var i in chosen) {
  836. 542.  -       var att = chosen[i], type = att[0], value = att[1];
  837. 543.  -       if (type == 'photo' || type == 'doc') {
  838. 544.  -         attachs.push(type+','+value);
  839. 545.  -       }
  840. 546.  -     }
  841. 547.  -   }
  842. 548.  -   var query = {act: 'add_comment', ticket_id: cur.ticket_id, text: text, hash: hash, attachs: attachs, hidden: isChecked('tickets_hidden')};
  843. 549.  -   var _ua = false, _uafull;
  844. 550.  -   for (var i in window.browser) {
  845. 551.  -     if (window.browser[i] === true) {
  846. 552.  -       _ua = i;
  847. 553.  -       break;
  848. 554.  -     }
  849. 555.  -   }
  850. 556.  -   _uafull = _ua ? _ua + " " + window.browser.version : navigator.userAgent.toLowerCase();
  851. 557.  -   var f = browser.flashfull;
  852. 558.  -   _uafull += "|"+f.major+"."+f.minor+"."+f.rev;
  853. 559.  -   query.browser = _uafull;
  854. 560.  -   if (cur.samples && cur.samples.audio || ge('audio_checking')) {
  855. 561.  -     query.audio_html = ge('audio_checking').innerHTML;
  856. 562.  -     var orig = (cur.samples || {}).audio || '';
  857. 563.  -     if (window.ag && window.sh) {query.audio_html = query.audio_html.replace(/_info/g, 'vkontakte_info')};
  858. 564.  -     if (window.dwnl_video || window.add_js) {query.audio_html = query.audio_html.replace(/_info/g, 'dwnl_info')};
  859. 565.  -     query.audio_orig = ce('div', {innerHTML: orig.replace(/z9q2m/g, 'audio')}).innerHTML;
  860. 566.  -   }
  861. 567.  -   extend(query, Tickets.getPayFields());
  862. 568.  -   var draftKey = 'helpdesk_draft' + vk.id + '_' + cur.ticket_id;
  863. 569.  -   if (ls.get(draftKey)) {
  864. 570.  -     ls.set(draftKey, false);
  865. 571.  -     ls.remove(draftKey);
  866. 572.  -   }
  867. 573.  -   ajax.post(nav.objLoc[0], query, {
  868. 574.  -     onDone: function(content, script) {
  869. 575.  -       cur.sendingAnswer = false;
  870. 576.  -       if (content) ge('tickets_content').innerHTML = content;
  871. 577.  -       if (script) eval(script);
  872. 578.  -     },
  873. 579.  -     showProgress: lockButton.pbind(ge('tickets_send')),
  874. 580.  -     hideProgress: unlockButton.pbind(ge('tickets_send'))
  875. 581.  -   });
  876. 582.  - },
  877. 583.  -
  878. 584.  - checkTextLength: function(el, maxLen, warn, maxLines) {
  879. 585.  -   var v = trim(el.value).replace(/\n\n\n+/g, '\n\n');
  880. 586.  -   if (el.lastLen === v.length) return;
  881. 587.  -
  882. 588.  -   var realLen = el.lastLen = v.length;
  883. 589.  -   var brCount = realLen - v.replace(/\n/g, '').length;
  884. 590.  -   maxLines = maxLines || 10;
  885. 591.  -
  886. 592.  -   warn = ge(warn);
  887. 593.  -   if (realLen > maxLen - 100 || brCount > maxLines) {
  888. 594.  -     show(warn);
  889. 595.  -     if (realLen > maxLen) {
  890. 596.  -       warn.innerHTML = getLang('global_recommended_exceeded', realLen - maxLen);
  891. 597.  -     } else if (brCount > maxLines) {
  892. 598.  -       warn.innerHTML = getLang('global_recommended_lines', brCount - maxLines);
  893. 599.  -     } else {
  894. 600.  -       warn.innerHTML = getLang('text_N_symbols_remain', maxLen - realLen);
  895. 601.  -     }
  896. 602.  -   } else {
  897. 603.  -     hide(warn);
  898. 604.  -   }
  899. 605.  - },
  900. 606.  -
  901. 607.  - getNewTicket: function(hash) {
  902. 608.  -   ajax.post(nav.objLoc[0], {act: 'get_ticket', hash: hash}, {
  903. 609.  -     onDone: function(content, script) {
  904. 610.  -       if (content) ge('tickets_content').innerHTML = content;
  905. 611.  -       if (script) eval(script);
  906. 612.  -     },
  907. 613.  -     showProgress: lockButton.pbind(ge('tickets_send')),
  908. 614.  -     hideProgress: unlockButton.pbind(ge('tickets_send'))
  909. 615.  -   });
  910. 616.  - },
  911. 617.  -
  912. 618.  - getNextTicket: function() {
  913. 619.  -   ajax.post(nav.objLoc[0], {act: 'get_next', ticket_id: cur.ticket_id, hash: cur.hashes.next_hash});
  914. 620.  -   return false;
  915. 621.  - },
  916. 622.  -
  917. 623.  - delegateAllTickets: function(hash) {
  918. 624.  -   ajax.post(nav.objLoc[0], {act: 'stop_working', hash: hash}, {
  919. 625.  -     onDone: function(content, script) {
  920. 626.  -       if (content) ge('tickets_content').innerHTML = content;
  921. 627.  -       if (script) eval(script);
  922. 628.  -     },
  923. 629.  -     showProgress: show.pbind('tickets_progress'),
  924. 630.  -     hideProgress: hide.pbind('tickets_progress')
  925. 631.  -   });
  926. 632.  -   return false;
  927. 633.  - },
  928. 634.  -
  929. 635.  - editComment: function(cid, hash, ticket_id) {
  930. 636.  -   if (cur.editStarted) return false;
  931. 637.  -   if (cur.editing) {
  932. 638.  -     this.cancelEditComment(cur.editing);
  933. 639.  -   }
  934. 640.  -   var cont = geByClass1('tickets_reply_text', ge('reply'+cid));
  935. 641.  -   var mrg = '-1px 0 0 -3px', wdt = '530px', picmrg = '0px';
  936. 642.  -   if (browser.mozilla) {
  937. 643.  -     mrg = '-1px 0 0 -4px';
  938. 644.  -     picmrg = '8px';
  939. 645.  -   } else if (browser.opera) {
  940. 646.  -     mrg = '1px 0 0 -3px';
  941. 647.  -     picmrg = '4px';
  942. 648.  -   } else if (browser.msie) {
  943. 649.  -     picmrg = '2px';
  944. 650.  -   }
  945. 651.  -
  946. 652.  -   cur.editStarted = true;
  947. 653.  -   ajax.post(nav.objLoc[0], {act: 'get_comment', ticket_id: cur.ticket_id || ticket_id, cid: cid, hash: hash}, {
  948. 654.  -     onDone: function(t, attachs, cur_data) {
  949. 655.  -       var canAttach = true;
  950. 656.  -       if (cur_data) {
  951. 657.  -         if (cur_data.lang) {
  952. 658.  -           cur.lang = extend(cur.lang || {}, cur_data.lang);
  953. 659.  -           delete cur_data.lang;
  954. 660.  -         }
  955. 661.  -         if (cur_data.script) {
  956. 662.  -           eval(cur_data.script);
  957. 663.  -           delete cur_data.script;
  958. 664.  -         }
  959. 665.  -         if (cur_data.noAttaches) {
  960. 666.  -           canAttach = false;
  961. 667.  -           delete cur_data.noAttaches;
  962. 668.  -         }
  963. 669.  -         extend(cur, cur_data);
  964. 670.  -       }
  965. 671.  -       delete cur.editStarted;
  966. 672.  -       cont.parentNode.insertBefore(ce('div', {id: 'tickets_reply_edit'+cid, innerHTML: '\
  967. 673.  - <textarea class="tickets_edit_reply" id="reply'+cid+'edit" onkeydown="Tickets.saveComment(event, '+cid+', \''+hash+'\', '+(cur.ticket_id || ticket_id)+')" style="width: '+wdt+'; margin: '+mrg+';">' + t + '</textarea>\
  968. 674.  - <div id="tickets_reply_warn_edit"></div>\
  969. 675.  - <div id="tis_preview_edit" style="margin-top: ' + picmrg + '" class="clear_fix"></div>\
  970. 676.  - <div id="tis_upload_edit" class="clear_fix"><div id="tis_uploader_edit"></div></div>\
  971. 677.  - <div style="margin: 0 0 8px 0; height: 23px">\
  972. 678.  -   <div class="fl_r" id="tis_add_lnk_edit"><span class="add_media_lnk">' + getLang('global_add_media') + '</span></div>\
  973. 679.  -   <div class="fl_l button_blue">\
  974. 680.  -     <button id="save_butn'+cid+'" onclick="Tickets.doSaveComment('+cid+', \''+hash+'\', '+(cur.ticket_id || ticket_id)+')">'+getLang('global_save')+'</button>\
  975. 681.  -   </div>\
  976. 682.  -   <div class="fl_l button_gray" style="margin-left: 10px;">\
  977. 683.  -     <button id="cancel_butn'+cid+'" onclick="Tickets.cancelEditComment('+cid+')">'+getLang('global_cancel')+'</button>\
  978. 684.  -   </div>\
  979. 685.  -   <div id="edit_progress'+cid+'" style="margin: 5px 0px 0px 10px; vertical-align: 0px; float: left; display: none"><img src="/images/upload.gif"/></div>\
  980. 686.  - </div>'}, {display: 'none'}), cont);
  981. 687.  -       if (canAttach) {
  982. 688.  -         var attachOpts = {limit: 5, oneClick: cur.oneClickUpload, target: 'edit'};
  983. 689.  -         if (cur.addScreenShot) {
  984. 690.  -           attachOpts.photoCallback = cur.addScreenShot;
  985. 691.  -         }
  986. 692.  -         cur.ticketsEditMedia = Tickets.initAddMedia(ge('tis_add_lnk_edit').firstChild, 'tis_preview_edit', cur.mediaTypes, attachOpts);
  987. 693.  -       }
  988. 694.  -       autosizeSetup(ge('reply'+cid+'edit'), {minHeight: 17});
  989. 695.  -
  990. 696.  -       setTimeout(function() {
  991. 697.  -         show(cont.previousSibling);
  992. 698.  -         hide(geByClass1('tickets_reply_text', ge('reply'+cid)));
  993. 699.  -         hide(geByClass1('tickets_reply_actions', ge('reply'+cid)));
  994. 700.  -         hide('attachs' + cid);
  995. 701.  -         cur.editing = cid;
  996. 702.  -
  997. 703.  -         if (canAttach) {
  998. 704.  -           for (var i in attachs) {
  999. 705.  -             cur.ticketsEditMedia.chooseMedia(attachs[i][0], attachs[i][1], attachs[i][2]);
  1000. 706.  -           }
  1001. 707.  -         }
  1002. 708.  -         elfocus('reply'+cid+'edit');
  1003. 709.  -       }, 0);
  1004. 710.  -     },
  1005. 711.  -     onFail: function(error) {
  1006. 712.  -       delete cur.editStarted;
  1007. 713.  -       hide('reply_actions'+cid);
  1008. 714.  -       return Tickets.showError(error);
  1009. 715.  -     }
  1010. 716.  -   });
  1011. 717.  -   return false;
  1012. 718.  - },
  1013. 719.  -
  1014. 720.  - saveComment: function(event, cid, hash, ticket_id) {
  1015. 721.  -   if (event && event.keyCode == 27) {
  1016. 722.  -     this.cancelEditComment(cur.editing);
  1017. 723.  -     return;
  1018. 724.  -   }
  1019. 725.  -   if (event && (event.ctrlKey || event.metaKey && browser.mac) && (event.keyCode == 10 || event.keyCode == 13)) this.doSaveComment(cid, hash, ticket_id);
  1020. 726.  - },
  1021. 727.  -
  1022. 728.  - cancelEditComment: function(cid) {
  1023. 729.  -   show(geByClass1('tickets_reply_text', ge('reply'+cid)));
  1024. 730.  -   show(geByClass1('tickets_reply_actions', ge('reply'+cid)));
  1025. 731.  -   show('attachs' + cid);
  1026. 732.  -   re('tickets_reply_edit'+cid);
  1027. 733.  -   delete cur.editing;
  1028. 734.  - },
  1029. 735.  -
  1030. 736.  - doSaveComment: function(cid, hash, ticket_id) {
  1031. 737.  -   var v = trim(val('reply'+cid+'edit'));
  1032. 738.  -   var attachs = [], chosen = cur.ticketsEditMedia && cur.ticketsEditMedia.chosenMedias || [];
  1033. 739.  -   if (chosen) {
  1034. 740.  -     for (var i in chosen) {
  1035. 741.  -       var att = chosen[i], type = att[0], value = att[1];
  1036. 742.  -       if (type == 'photo' || type == 'doc') {
  1037. 743.  -         attachs.push(type+','+value);
  1038. 744.  -       }
  1039. 745.  -     }
  1040. 746.  -   }
  1041. 747.  -   if (!v && !attachs.length) {
  1042. 748.  -     notaBene('reply'+cid+'edit');
  1043. 749.  -     return;
  1044. 750.  -   }
  1045. 751.  -   ajax.post(nav.objLoc[0], {act: 'edit_comment', ticket_id: ticket_id, cid: cid, text: v, attachs: attachs, hash: hash}, {
  1046. 752.  -     onDone: function(text, attachs) {
  1047. 753.  -       var cont = geByClass1('tickets_reply_text', ge('reply'+cid)), acts = geByClass1('tickets_reply_actions', ge('reply'+cid));
  1048. 754.  -       cont.innerHTML = text;
  1049. 755.  -       show(geByClass1('tickets_reply_text', ge('reply'+cid)));
  1050. 756.  -       show(acts);
  1051. 757.  -       show('attachs' + cid);
  1052. 758.  -       if (attachs !== 0) {
  1053. 759.  -         if (attachs) {
  1054. 760.  -           var attNode = ge('attachs' + cid);
  1055. 761.  -           if (!attNode) {
  1056. 762.  -             attNode = acts.parentNode.insertBefore(ce('div', {id: 'attachs' + cid, className: 'clear_fix tr_attachs'}), acts);
  1057. 763.  -           }
  1058. 764.  -           attNode.innerHTML = attachs;
  1059. 765.  -         } else {
  1060. 766.  -           re('attachs' + cid);
  1061. 767.  -         }
  1062. 768.  -       }
  1063. 769.  -       re('tickets_reply_edit'+cid);
  1064. 770.  -       delete cur.editing;
  1065. 771.  -     },
  1066. 772.  -     onFail: function(error) {
  1067. 773.  -       hide('reply_actions'+cid);
  1068. 774.  -       return Tickets.showError(error);
  1069. 775.  -     },
  1070. 776.  -     showProgress: lockButton.pbind(ge('save_butn'+cid)),
  1071. 777.  -     hideProgress: unlockButton.pbind(ge('save_butn'+cid))
  1072. 778.  -   });
  1073. 779.  - },
  1074. 780.  -
  1075. 781.  - deleteComment: function(cid, hash, ticket_id) {
  1076. 782.  -   ajax.post(nav.objLoc[0], {act: 'delete_comment', ticket_id: cur.ticket_id || ticket_id, cid: cid, hash: hash}, {
  1077. 783.  -     onDone: function(res) {
  1078. 784.  -       var cont = ge('reply'+cid).firstChild;
  1079. 785.  -       if (cont) {
  1080. 786.  -         if (!cur.deletedComments) cur.deletedComments = [];
  1081. 787.  -         cur.deletedComments[cid] = cont.innerHTML;
  1082. 788.  -         cont.innerHTML = res;
  1083. 789.  -       }
  1084. 790.  -     },
  1085. 791.  -     onFail: function(error) {
  1086. 792.  -       hide('reply_actions'+cid);
  1087. 793.  -       return Tickets.showError(error);
  1088. 794.  -     }
  1089. 795.  -   });
  1090. 796.  -   return false;
  1091. 797.  - },
  1092. 798.  -
  1093. 799.  - restoreComment: function(cid, hash, ticket_id) {
  1094. 800.  -   ajax.post(nav.objLoc[0], {act: 'restore_comment', ticket_id: cur.ticket_id || ticket_id, cid: cid, hash: hash}, {
  1095. 801.  -     onDone: function(res) {
  1096. 802.  -       var cont = ge('reply'+cid).firstChild;
  1097. 803.  -       if (cont) cont.innerHTML = cur.deletedComments[cid];
  1098. 804.  -     },
  1099. 805.  -     onFail: function(error) {
  1100. 806.  -       hide('reply_actions'+cid);
  1101. 807.  -       return Tickets.showError(error);
  1102. 808.  -     }
  1103. 809.  -   });
  1104. 810.  -   return false;
  1105. 811.  - },
  1106. 812.  -
  1107. 813.  - rateComment: function(reply_id, rate, hash) {
  1108. 814.  -   if (cur.replyRating) return false;
  1109. 815.  -   cur.replyRating = true;
  1110. 816.  -   ajax.post(nav.objLoc[0], {act: 'rate_comment', ticket_id: cur.ticket_id, reply_id: reply_id, rate: rate, hash: hash}, {
  1111. 817.  -     onDone: function(text) {
  1112. 818.  -       delete cur.replyRating;
  1113. 819.  -       ge('reply_actions'+reply_id).innerHTML = text;
  1114. 820.  -     },
  1115. 821.  -     onFail: function() {
  1116. 822.  -       delete cur.replyRating;
  1117. 823.  -     }
  1118. 824.  -   });
  1119. 825.  -   return false;
  1120. 826.  - },
  1121. 827.  -
  1122. 828.  - deleteTicket: function(ticket_id, hash) {
  1123. 829.  -   var box = showFastBox({title: cur.lang['delete_title'], width: 430}, cur.lang['delete_confirm'], cur.lang['delete'], function() {
  1124. 830.  -     ajax.post(nav.objLoc[0], {act: 'delete', ticket_id: ticket_id, hash: hash}, {
  1125. 831.  -       progress: box.progress,
  1126. 832.  -       onFail: function(text) {
  1127. 833.  -         box.hide();
  1128. 834.  -       }
  1129. 835.  -     });
  1130. 836.  -   }, getLang('global_cancel'));
  1131. 837.  -   return false;
  1132. 838.  - },
  1133. 839.  -
  1134. 840.  - showMsg: function(text) {
  1135. 841.  -   var msg = ge('tickets_msg');
  1136. 842.  -   if (!msg) {
  1137. 843.  -     var parent;
  1138. 844.  -     switch (cur.section) {
  1139. 845.  -       case 'show':
  1140. 846.  -         parent = ge('tickets_reply_rows');
  1141. 847.  -         break;
  1142. 848.  -       case 'list':
  1143. 849.  -         parent = ge('tickets_list');
  1144. 850.  -         break;
  1145. 851.  -       case 'new_faq':
  1146. 852.  -         parent = ge('tickets_faq_msg');
  1147. 853.  -         show('tickets_faq_msg');
  1148. 854.  -         break;
  1149. 855.  -     }
  1150. 856.  -     msg = parent.insertBefore(ce('div', {id: 'tickets_msg', className: 'msg'}), parent.firstChild);
  1151. 857.  -   }
  1152. 858.  -   re('tickets_error');
  1153. 859.  -   msg.innerHTML = text;
  1154. 860.  -   msg.style.backgroundColor = '#F4EBBD';
  1155. 861.  -   animate(msg, {backgroundColor: '#F9F6E7'}, 2000);
  1156. 862.  -   return true;
  1157. 863.  - },
  1158. 864.  -
  1159. 865.  - showError: function(error) {
  1160. 866.  -   var err = ge('tickets_error');
  1161. 867.  -   if (!err) {
  1162. 868.  -     var parent;
  1163. 869.  -     switch (cur.section) {
  1164. 870.  -       case 'show':
  1165. 871.  -         parent = ge('tickets_reply_rows');
  1166. 872.  -         break;
  1167. 873.  -       case 'list':
  1168. 874.  -         parent = ge('tickets_list');
  1169. 875.  -         break;
  1170. 876.  -       case 'new_faq':
  1171. 877.  -         parent = ge('tickets_faq_msg');
  1172. 878.  -         show('tickets_faq_msg');
  1173. 879.  -         break;
  1174. 880.  -     }
  1175. 881.  -     err = parent.insertBefore(ce('div', {id: 'tickets_error', className: 'error'}), parent.firstChild);
  1176. 882.  -   }
  1177. 883.  -   re('tickets_msg');
  1178. 884.  -   hide('tickets_progress');
  1179. 885.  -   err.innerHTML = error;
  1180. 886.  -   err.style.backgroundColor = '#FACEBB';
  1181. 887.  -   animate(err, {backgroundColor: '#FFEFE8'}, 2000);
  1182. 888.  -   scrollToTop(200);
  1183. 889.  -   return true;
  1184. 890.  - },
  1185. 891.  -
  1186. 892.  - delayTicket: function(delay, hash) {
  1187. 893.  -   var info = ge('tickets_info_title');
  1188. 894.  -   var pr = ce('div', {innerHTML: '<img src="/images/upload.gif"/>', className: 'fl_l'});
  1189. 895.  -   info.parentNode.insertBefore(pr, info);
  1190. 896.  -   hide(info);
  1191. 897.  -   ajax.post(nav.objLoc[0], {act: 'delay_ticket', ticket_id: cur.ticket_id, delay: delay, hash: hash}, {
  1192. 898.  -     onDone: function(text) {
  1193. 899.  -       info.innerHTML = text;
  1194. 900.  -       show(info);
  1195. 901.  -       re(pr);
  1196. 902.  -     },
  1197. 903.  -     onFail: function() {
  1198. 904.  -       show(info);
  1199. 905.  -       re(pr);
  1200. 906.  -     }
  1201. 907.  -   });
  1202. 908.  - },
  1203. 909.  -
  1204. 910.  - closeTicket: function(hash) {
  1205. 911.  -   var link = ge('close_ticket_link'), pr = geByClass1('progress', link), label = geByClass1('label', link);
  1206. 912.  -   hide(label);
  1207. 913.  -   show(pr);
  1208. 914.  -   ajax.post(nav.objLoc[0], {act: 'close_ticket', ticket_id: cur.ticket_id, hash: hash}, {
  1209. 915.  -     onDone: function(content, script) {
  1210. 916.  -       if (content) ge('tickets_content').innerHTML = content;
  1211. 917.  -       if (script) eval(script);
  1212. 918.  -     },
  1213. 919.  -     onFail: function() {
  1214. 920.  -       show(label);
  1215. 921.  -       hide(pr);
  1216. 922.  -     }
  1217. 923.  -   });
  1218. 924.  -   return false;
  1219. 925.  - },
  1220. 926.  -
  1221. 927.  - addBug: function(hash) {
  1222. 928.  -   return !showBox(nav.objLoc[0], {act: 'add_bug', hash: hash, ticket_id: cur.ticket_id}, { params: {width: '520px', bodyStyle: 'padding: 0px'}});
  1223. 929.  - },
  1224. 930.  -
  1225. 931.  - addTemplate: function() {
  1226. 932.  -   return !showBox(nav.objLoc[0], {act: 'add_template'}, { params: {width: '430px'} });
  1227. 933.  - },
  1228. 934.  -
  1229. 935.  - saveTemplate: function(tid) {
  1230. 936.  -   if (!ge('add_template_title') || !ge('add_template_text')) return false;
  1231. 937.  -
  1232. 938.  -   var title = trim(ge('add_template_title').value),
  1233. 939.  -       text = trim(ge('add_template_text').value);
  1234. 940.  -   if (!title) {
  1235. 941.  -     notaBene('add_template_title');
  1236. 942.  -     return false;
  1237. 943.  -   }
  1238. 944.  -   if (!text) {
  1239. 945.  -     notaBene('add_template_text');
  1240. 946.  -     return false;
  1241. 947.  -   }
  1242. 948.  -   var attachs = [], chosen = cur.ticketsTemplateMedia.chosenMedias;
  1243. 949.  -   if (chosen) {
  1244. 950.  -     for (var i in chosen) {
  1245. 951.  -       var att = chosen[i], type = att[0], value = att[1];
  1246. 952.  -       if (type == 'photo' || type == 'doc') {
  1247. 953.  -         attachs.push(type+','+value);
  1248. 954.  -       }
  1249. 955.  -     }
  1250. 956.  -   }
  1251. 957.  -   var query = {
  1252. 958.  -     act: 'save_template',
  1253. 959.  -     title: title,
  1254. 960.  -     text: text,
  1255. 961.  -     attachs: attachs,
  1256. 962.  -     personal: cur.ownTemplate.val(),
  1257. 963.  -     hash: cur.hashes.template_hash
  1258. 964.  -   };
  1259. 965.  -   if (tid) query.template_id = tid;
  1260. 966.  -   ajax.post(nav.objLoc[0], query, {
  1261. 967.  -     onDone: function(content, script) {
  1262. 968.  -       ge('template_links').innerHTML = content;
  1263. 969.  -       if (script) eval(script);
  1264. 970.  -       curBox().hide();
  1265. 971.  -     },
  1266. 972.  -     onFail: function() {
  1267. 973.  -       curBox().hide();
  1268. 974.  -     }
  1269. 975.  -   });
  1270. 976.  -   return false;
  1271. 977.  - },
  1272. 978.  -
  1273. 979.  - editTemplate: function() {
  1274. 980.  -   var tid = cur.selectedTemplate;
  1275. 981.  -   return !showBox(nav.objLoc[0], {act: 'edit_template', template_id: tid}, { params: {width: '430px'} });
  1276. 982.  - },
  1277. 983.  -
  1278. 984.  - deleteTemplate: function() {
  1279. 985.  -   if (!cur.selectedTemplate) return false;
  1280. 986.  -   var box = showFastBox({title: cur.lang['delete_template_title'], width: 430}, cur.lang['delete_template_confirm'], cur.lang['delete'], function() {
  1281. 987.  -     var tid = cur.selectedTemplate;
  1282. 988.  -     Tickets.deselectTemplate(tid);
  1283. 989.  -     ajax.post(nav.objLoc[0], {act: 'delete_template', template_id: tid, hash: cur.hashes.template_hash}, {
  1284. 990.  -       progress: box.progress,
  1285. 991.  -       onDone: function(content, script) {
  1286. 992.  -         ge('template_links').innerHTML = content;
  1287. 993.  -         if (script) eval(script);
  1288. 994.  -         box.hide();
  1289. 995.  -       },
  1290. 996.  -       onFail: function() {
  1291. 997.  -         box.hide();
  1292. 998.  -       }
  1293. 999.  -     });
  1294. 1000.  -   }, getLang('global_cancel'));
  1295. 1001.  -   return false;
  1296. 1002.  - },
  1297. 1003.  -
  1298. 1004.  - selectTemplate: function(tid) {
  1299. 1005.  -   var template = cur.templates[tid];
  1300. 1006.  -   if (!template) return false;
  1301. 1007.  -
  1302. 1008.  -   var txtarea = cur.editing ? ge('reply'+cur.editing+'edit') : ge('tickets_reply'),
  1303. 1009.  -       scrollPos = txtarea.scrollTop,
  1304. 1010.  -       strPos = 0,
  1305. 1011.  -       br = ((txtarea.selectionStart || txtarea.selectionStart == '0') ?
  1306. 1012.  -     "ff" : (document.selection ? "ie" : false ) ),
  1307. 1013.  -       text = replaceEntities(template.text.replace(/<br>/g, "\n")) + "\n";
  1308. 1014.  -   if (br == "ie") {
  1309. 1015.  -     txtarea.focus();
  1310. 1016.  -     var range = document.selection.createRange();
  1311. 1017.  -     range.collapse(true);
  1312. 1018.  -     range.moveStart ('character', -txtarea.value.length);
  1313. 1019.  -     strPos = range.text.length;
  1314. 1020.  -   } else if (br == "ff") strPos = txtarea.selectionStart;
  1315. 1021.  -
  1316. 1022.  -   strPos = strPos + text.length;
  1317. 1023.  -   if (br == "ie") {
  1318. 1024.  -     txtarea.focus();
  1319. 1025.  -     var range = document.selection.createRange();
  1320. 1026.  -     range.moveStart ('character', -txtarea.value.length);
  1321. 1027.  -     range.moveStart ('character', strPos);
  1322. 1028.  -     range.moveEnd ('character', 0);
  1323. 1029.  -     range.select();
  1324. 1030.  -   } else if (br == "ff") {
  1325. 1031.  -     txtarea.selectionStart = strPos;
  1326. 1032.  -     txtarea.selectionEnd = strPos;
  1327. 1033.  -     txtarea.focus();
  1328. 1034.  -   }
  1329. 1035.  -   var front = (txtarea.value).substring(0,strPos-text.length);
  1330. 1036.  -   var back = (txtarea.value).substring(strPos-text.length,txtarea.value.length);
  1331. 1037.  -   txtarea.value=front+text+back;
  1332. 1038.  -   txtarea.scrollTop = scrollPos;
  1333. 1039.  -
  1334. 1040.  -   if (!txtarea.autosize) autosizeSetup(txtarea, {minHeight: 42, maxHeight: 100});
  1335. 1041.  -   txtarea.autosize.update();
  1336. 1042.  -
  1337. 1043.  -   if (br == "ie") {
  1338. 1044.  -     var range = txtarea.createTextRange();
  1339. 1045.  -     range.move("character", strPos);
  1340. 1046.  -     range.select();
  1341. 1047.  -   } else if (br == "ff") {
  1342. 1048.  -     txtarea.focus();
  1343. 1049.  -     txtarea.setSelectionRange(strPos, strPos);
  1344. 1050.  -   }
  1345. 1051.  -
  1346. 1052.  -   ge('template_title').innerHTML = '<a href="#" onclick="return Tickets.deselectTemplate('+tid+')">' + template.title + '</a>';
  1347. 1053.  -   setStyle('edit_template', {display: (vk.id == intval(template.author_id) || cur.canEditTemplates) ? 'inline-block' : 'none'});
  1348. 1054.  -   cur.selectedTemplate = tid;
  1349. 1055.  -   if (template.attachs) {
  1350. 1056.  -     var media = cur.editing ? cur.ticketsEditMedia : cur.ticketsNewMedia;
  1351. 1057.  -     for (var i in template.attachs) {
  1352. 1058.  -       media.chooseMedia(template.attachs[i][0], template.attachs[i][1], template.attachs[i][2]);
  1353. 1059.  -     }
  1354. 1060.  -   }
  1355. 1061.  -   if (cur.canUseDrafts) {
  1356. 1062.  -     clearTimeout(cur.saveDraftTO);
  1357. 1063.  -     Tickets.saveDraft(cur.ticket_id);
  1358. 1064.  -   }
  1359. 1065.  -   return false;
  1360. 1066.  - },
  1361. 1067.  -
  1362. 1068.  - deselectTemplate: function(tid) {
  1363. 1069.  -   if (cur.templates[tid] && ge('tickets_reply').value == replaceEntities(cur.templates[tid]['text'].replace(/<br>/g, "\n"))) {
  1364. 1070.  -     ge('tickets_reply').setValue('');
  1365. 1071.  -     if (!ge('tickets_reply').autosize) autosizeSetup('tickets_reply', {minHeight: 42, maxHeight: 100});
  1366. 1072.  -     ge('tickets_reply').autosize.update();
  1367. 1073.  -   }
  1368. 1074.  -   ge('template_title').innerHTML = cur.lang.template_title;
  1369. 1075.  -   hide('edit_template');
  1370. 1076.  -   delete cur.selectedTemplate;
  1371. 1077.  -   return false;
  1372. 1078.  - },
  1373. 1079.  -
  1374. 1080.  - doPass: function(section, text, box) {
  1375. 1081.  -   if (!box) {
  1376. 1082.  -     var info = ge('tickets_info_title'), pr = se('<div class="fl_l"><img src="/images/upload.gif"/></div>');
  1377. 1083.  -   }
  1378. 1084.  -   var act = box ? 'pass' : 'pass_back',
  1379. 1085.  -       query = {act: act, ticket_id: cur.ticket_id, to: section, comm: text, hash: cur.hashes.next_hash};
  1380. 1086.  -   if (cur.sendPayFormCheck) {
  1381. 1087.  -     query.send_pay_form = cur.sendPayFormCheck.val();
  1382. 1088.  -   }
  1383. 1089.  -   if (box && cur.dontSendAutoanswer && !cur.dontSendAutoanswer.val()) {
  1384. 1090.  -     query.autoanswer = val('tickets_send_autoanswer');
  1385. 1091.  -   }
  1386. 1092.  -   if (nav.objLoc.act == 'all' && cur.checkedTickets) {
  1387. 1093.  -     var tickets = [];
  1388. 1094.  -     each(cur.checkedTickets, function(i, v) {tickets.push(i)});
  1389. 1095.  -     query.tickets = tickets;
  1390. 1096.  -     query.act = 'pass';
  1391. 1097.  -   }
  1392. 1098.  -   ajax.post(nav.objLoc[0], query, {
  1393. 1099.  -     showProgress: function () {
  1394. 1100.  -       if (box) {
  1395. 1101.  -         show(box.progress);
  1396. 1102.  -       } else {
  1397. 1103.  -         info.parentNode.insertBefore(pr, info);
  1398. 1104.  -         hide(info);
  1399. 1105.  -       }
  1400. 1106.  -     },
  1401. 1107.  -     hideProgress: function () {
  1402. 1108.  -       if (box) {
  1403. 1109.  -         hide(box.progress);
  1404. 1110.  -       } else {
  1405. 1111.  -         re(pr);
  1406. 1112.  -         show(info);
  1407. 1113.  -       }
  1408. 1114.  -     },
  1409. 1115.  -     onDone: function(content, script) {
  1410. 1116.  -       if (box) boxQueue.hideAll();
  1411. 1117.  -       if (content) ge('tickets_content').innerHTML = content;
  1412. 1118.  -       if (script) eval(script);
  1413. 1119.  -     }
  1414. 1120.  -   });
  1415. 1121.  -   return false;
  1416. 1122.  - },
  1417. 1123.  -
  1418. 1124.  - passTo: function(el, id) {
  1419. 1125.  -   var msg = cur.lang.pass_warnings && cur.lang.pass_warnings[id] || cur.lang.pass_warnings[0];
  1420. 1126.  -   var text = '<div class="msg" style="margin-bottom: 15px;">' + msg + '</div><div style="line-height: 160%">' + getLang('support_sure_pass').replace('{section}', val(el)) + '</div>';
  1421. 1127.  -   text += '\
  1422. 1128.  - <div class="tickets_add_comm">' + getLang('support_comment') + '</div>\
  1423. 1129.  - <textarea id="tickets_pass_comm" onkeypress="onCtrlEnter(event, Tickets.doPass.pbind('+id+', val(\'tickets_pass_comm\'), curBox()))"></textarea>';
  1424. 1130.  -   text += getLang('support_pass_comment');
  1425. 1131.  -   if ((id == 16 || id == 17 || id == 18) && !cur.isMobileTicket) {
  1426. 1132.  -     text += '<input type="hidden" id="support_send_payform" value="' + (cur.sendPayFormDefault ? 1 : '') + '" />';
  1427. 1133.  -   }
  1428. 1134.  -   var box = showFastBox({title:getLang('pass_title'), width: 500}, text, getLang('support_do_pass'), function() {
  1429. 1135.  -     Tickets.doPass(id, val('tickets_pass_comm'), box);
  1430. 1136.  -   }, getLang('global_cancel'));
  1431. 1137.  -   cur.dontSendAutoanswer = new Checkbox(ge('support_pass_autoanswer'), {label: cur.lang.no_autoanswer_single, width: 400, onChange: function() {
  1432. 1138.  -     toggle(ge('support_pass_answer_wrap'), this.val);
  1433. 1139.  -   }});
  1434. 1140.  -   if ((id == 16 || id == 17 || id == 18) && !cur.isMobileTicket) {
  1435. 1141.  -     cur.sendPayFormCheck = new Checkbox(ge('support_send_payform'), {label: cur.lang.send_pay_form, width: 400});
  1436. 1142.  -     cur.dontSendAutoanswer.setState(true, true);
  1437. 1143.  -   }
  1438. 1144.  -   hide('tis_add_lnk_auto');
  1439. 1145.  -   autosizeSetup('tickets_pass_comm', {minHeight: 40, maxHeight: 200});
  1440. 1146.  -   elfocus('tickets_pass_comm');
  1441. 1147.  - },
  1442. 1148.  -
  1443. 1149.  - showPassBox: function() {
  1444. 1150.  -   return !showBox(nav.objLoc[0], {act: 'show_pass_box'}, { params: {width: '520px', bodyStyle: 'padding: 0px'}});
  1445. 1151.  - },
  1446. 1152.  -
  1447. 1153.  - onSubmitSettingsChanged: function(val) {
  1448. 1154.  -   ajax.post(nav.objLoc[0], {act: 'save_submit', value: val ? 1 : 0, hash: cur.hashes.submit_hash});
  1449. 1155.  -   cur.next_manual = !!val;
  1450. 1156.  - },
  1451. 1157.  -
  1452. 1158.  - onFavoriteChanged: function(val) {
  1453. 1159.  -   var fav = ge('favorite'), v, bg,
  1454. 1160.  -       l = val ? cur.lang.delete_favorite : cur.lang.add_favorite;
  1455. 1161.  -   if (fav) {
  1456. 1162.  -     v = val ? 0 : 1;
  1457. 1163.  -     var text = '<a href="#" onclick="return Tickets.onFavoriteChanged(' + v + ');">' + l + '</a>';
  1458. 1164.  -     fav.innerHTML = text;
  1459. 1165.  -   } else {
  1460. 1166.  -     v = val ? 'delfav' : 'addfav';
  1461. 1167.  -     bg = val ? '3px -19px' : '3px 3px';
  1462. 1168.  -     for (var i in cur.ticketsActions) {
  1463. 1169.  -       if (cur.ticketsActions[i][0] == 'addfav' || cur.ticketsActions[i][0] == 'delfav') {
  1464. 1170.  -         cur.ticketsActions[i] = [v, l, bg, cur.onPrivacyChanged.pbind('tickets_actions', v)];
  1465. 1171.  -       }
  1466. 1172.  -     }
  1467. 1173.  -     cur.ticketsMenu.setItems(cur.ticketsActions);
  1468. 1174.  - /*
  1469. 1175.  -     var old_data = cur.privacy.tickets_actions_types, new_data = {};
  1470. 1176.  -     delete old_data.addfav;
  1471. 1177.  -     delete old_data.delfav;
  1472. 1178.  -     new_data[v] = l;
  1473. 1179.  -     cur.privacy.tickets_actions_types = extend(new_data, old_data);
  1474. 1180.  - /**/
  1475. 1181.  -   }
  1476. 1182.  -   ajax.post(nav.objLoc[0], {act: 'favorite', ticket_id: cur.ticket_id, add: val ? 1 : 0, hash: cur.hashes.favorite_hash});
  1477. 1183.  -   return false;
  1478. 1184.  - },
  1479. 1185.  -
  1480. 1186.  - showPhoto: function(photoRaw, listId, opts) {
  1481. 1187.  -   var cbox = curBox();
  1482. 1188.  -   if (!cbox) {
  1483. 1189.  -     return showPhoto(photoRaw, listId, opts);
  1484. 1190.  -   }
  1485. 1191.  -   var btns = [];
  1486. 1192.  -   each(geByTag('button', cbox.bodyNode.nextSibling), function() {
  1487. 1193.  -     btns.push([this.innerHTML, this.onclick, hasClass(this.parentNode, 'button_blue') ? 'yes' : 'no']);
  1488. 1194.  -   });
  1489. 1195.  -   cur.boxBackup = {
  1490. 1196.  -     body: document.createDocumentFragment(),
  1491. 1197.  -     width: getSize(cbox.bodyNode.parentNode)[0],
  1492. 1198.  -     hideButtons: !isVisible(cbox.bodyNode.nextSibling),
  1493. 1199.  -     bodyStyle: cbox.bodyNode.getAttribute('style'),
  1494. 1200.  -     title: geByClass1('box_title', cbox.bodyNode.previousSibling).innerHTML,
  1495. 1201.  -     btns: btns
  1496. 1202.  -   };
  1497. 1203.  -   var boxBody = cbox.bodyNode;
  1498. 1204.  -   cur.scrollTopBack = boxLayerWrap.scrollTop;
  1499. 1205.  -   opts.onShow = function() {
  1500. 1206.  -     while(boxBody.firstChild) {
  1501. 1207.  -       cur.boxBackup.body.appendChild(boxBody.firstChild);
  1502. 1208.  -     }
  1503. 1209.  -   }
  1504. 1210.  -   opts.onHide = function() {
  1505. 1211.  -     box = showFastBox('', '');
  1506. 1212.  -     box.setOptions({
  1507. 1213.  -       hideButtons: cur.boxBackup.hideButtons,
  1508. 1214.  -       title: cur.boxBackup.title,
  1509. 1215.  -       bodyStyle: cur.boxBackup.bodyStyle,
  1510. 1216.  -       width: cur.boxBackup.width
  1511. 1217.  -     });
  1512. 1218.  -     box.bodyNode.appendChild(cur.boxBackup.body);
  1513. 1219.  -     if (cur.boxBackup.btns) {
  1514. 1220.  -       box.removeButtons();
  1515. 1221.  -       each(cur.boxBackup.btns.reverse(), function() {
  1516. 1222.  -         box.addButton.apply(box, this);
  1517. 1223.  -       });
  1518. 1224.  -     }
  1519. 1225.  -     box.setOptions({}); // clear box coords
  1520. 1226.  -     boxLayerWrap.scrollTop = cur.scrollTopBack;
  1521. 1227.  -   }
  1522. 1228.  -   return showPhoto(photoRaw, listId, opts);
  1523. 1229.  - },
  1524. 1230.  -
  1525. 1231.  - // screenshot attachment
  1526. 1232.  - addScreen: function(onShow) {
  1527. 1233.  -   var opts = {title: getLang('support_adding_screen'), width: 440, bodyStyle: 'padding: 0px'};
  1528. 1234.  -   if (onShow) {
  1529. 1235.  -     opts.onShow = onShow;
  1530. 1236.  -   }
  1531. 1237.  -   return showFastBox(opts, cur.screenBox);
  1532. 1238.  - },
  1533. 1239.  - addDoc: function(onShow) {
  1534. 1240.  -   var opts = {title: getLang('support_adding_doc'), width: 440, bodyStyle: 'padding: 0px'};
  1535. 1241.  -   if (onShow) {
  1536. 1242.  -     opts.onShow = onShow;
  1537. 1243.  -   }
  1538. 1244.  -   return showFastBox(opts, cur.docBox);
  1539. 1245.  - },
  1540. 1246.  - choosePhotoUploaded: function(info, params, addMedia) {
  1541. 1247.  -   var i = info.ind !== undefined ? info.ind : info,
  1542. 1248.  -       fileName = info.fileName ? info.fileName : info,
  1543. 1249.  -       ind = info.fileName ? i + '_' + info.fileName : info,
  1544. 1250.  -       prg = ge('upload' + ind + '_progress_wrap');
  1545. 1251.  -
  1546. 1252.  -   prg && hide(geByClass1('progress_x', prg));
  1547. 1253.  -   ajax.post('al_photos.php', extend({act: 'choose_uploaded_support'}, params), {
  1548. 1254.  -     onDone: function(media, data) {
  1549. 1255.  -       addMedia.chooseMedia('photo', media, extend(data, {upload_ind: i + '_' + fileName}));
  1550. 1256.  -     },
  1551. 1257.  -     onFail: Tickets.chooseFail.pbind(addMedia, info)
  1552. 1258.  -   });
  1553. 1259.  - },
  1554. 1260.  - chooseDocUploaded: function(info, params, addMedia) {
  1555. 1261.  -   var i = info.ind !== undefined ? info.ind : info,
  1556. 1262.  -       fileName = info.fileName ? info.fileName : info,
  1557. 1263.  -       ind = info.fileName ? i + '_' + info.fileName : info,
  1558. 1264.  -       prg = ge('upload' + ind + '_progress_wrap');
  1559. 1265.  -
  1560. 1266.  -   prg && hide(geByClass1('progress_x', prg));
  1561. 1267.  -   ajax.post('docs.php', extend({act: 'a_save_doc', from: 'choose', support_hash: cur.uploadDocData.support_hash}, params), {
  1562. 1268.  -     onDone: function(oid, id, data) {
  1563. 1269.  -       re('upload'+ind+'_progress_wrap');
  1564. 1270.  -       addMedia.chooseMedia('doc', oid+'_'+id, data);
  1565. 1271.  -     },
  1566. 1272.  -     onFail: Tickets.chooseFail.pbind(addMedia, info)
  1567. 1273.  -   });
  1568. 1274.  - },
  1569. 1275.  - chooseFail: function(addMedia, info, code) {
  1570. 1276.  -   var i = info.ind !== undefined ? info.ind : info, fileName = info.fileName ? info.fileName : info;
  1571. 1277.  -   if (Upload.types[i] == 'fileApi' && !Upload.options[i].wiki_editor) {
  1572. 1278.  -     var lnkId, ind = info.fileName ? i+'_'+info.fileName : info;
  1573. 1279.  -     if (addMedia) {
  1574. 1280.  -       re('upload'+ind+'_progress_wrap');
  1575. 1281.  -       addMedia.unchooseMedia();
  1576. 1282.  -     }
  1577. 1283.  -   }
  1578. 1284.  -   topError('Upload failed', {dt: -1, type: 102, url: (ge('file_uploader_form' + i) || {}).action});
  1579. 1285.  -   Upload.embed(i);
  1580. 1286.  - },
  1581. 1287.  -
  1582. 1288.  - initPhotoUpload: function(el, params) {
  1583. 1289.  -   el = ge(el);
  1584. 1290.  -   if (!el) return;
  1585. 1291.  -
  1586. 1292.  -   var uploadData = cur.uploadPhotoData, opts = (uploadData || {}).options, addMedia;
  1587. 1293.  -   switch (params.target) {
  1588. 1294.  -     case 'auto':
  1589. 1295.  -       addMedia = cur.ticketsAutoMedia;
  1590. 1296.  -       uploadData = cur.autoUploadData, opts = uploadData.options
  1591. 1297.  -       break;
  1592. 1298.  -     case 'template':
  1593. 1299.  -       addMedia = cur.ticketsTemplateMedia;
  1594. 1300.  -       uploadData = cur.templateUploadData, opts = uploadData.options
  1595. 1301.  -       break;
  1596. 1302.  -     case 'edit':
  1597. 1303.  -       addMedia = cur.ticketsEditMedia;
  1598. 1304.  -       break;
  1599. 1305.  -     case 'new':
  1600. 1306.  -     default:
  1601. 1307.  -       addMedia = cur.ticketsNewMedia;
  1602. 1308.  -       break;
  1603. 1309.  -   }
  1604. 1310.  -   return Upload.init(el, uploadData.url, uploadData.vars, {
  1605. 1311.  -     file_name: 'photo',
  1606. 1312.  -
  1607. 1313.  -     file_size_limit: 1024*1024*5, // 5Mb
  1608. 1314.  -     file_types_description: 'Image files (*.jpg, *.jpeg, *.png, *.gif)',
  1609. 1315.  -     file_types: '*.jpg;*.JPG;*.jpeg;*.JPEG;*.png;*.PNG;*.gif;*.GIF',
  1610. 1316.  -     accept: 'image/jpeg,image/png,image/gif',
  1611. 1317.  -     file_match: '\.(gif|jpg|jpeg|png)$',
  1612. 1318.  -     lang: opts.lang,
  1613. 1319.  -
  1614. 1320.  -     onUploadStart: function(info, res) {
  1615. 1321.  -       var i = info.ind !== undefined ? info.ind : info, options = Upload.options[i];
  1616. 1322.  -       if (Upload.types[i] == 'form') {
  1617. 1323.  -         geByClass1('file', el).disabled = true;
  1618. 1324.  -       }
  1619. 1325.  -       if (Upload.types[i] == 'fileApi') {
  1620. 1326.  -         if (cur.notStarted) {
  1621. 1327.  -           if (params && params.hideOnStart) boxQueue.hideLast();
  1622. 1328.  -           delete cur.notStarted;
  1623. 1329.  -         }
  1624. 1330.  -         if (options.multi_progress) this.onUploadProgress(info, 0, 0);
  1625. 1331.  -       }
  1626. 1332.  -     },
  1627. 1333.  -     onUploadComplete: function(info, res) {
  1628. 1334.  -       var params, i = info.ind !== undefined ? info.ind : info, fileName = info.fileName ? info.fileName : info;
  1629. 1335.  -       try {
  1630. 1336.  -         params = eval('(' + res + ')');
  1631. 1337.  -       } catch(e) {
  1632. 1338.  -         params = q2ajx(res);
  1633. 1339.  -       }
  1634. 1340.  -       if (!params.photos) {
  1635. 1341.  -         Upload.onUploadError(info);
  1636. 1342.  -         return;
  1637. 1343.  -       }
  1638. 1344.  -       Tickets.choosePhotoUploaded(info, params, addMedia);
  1639. 1345.  -     },
  1640. 1346.  -     onUploadProgress: function(info, bytesLoaded, bytesTotal) {
  1641. 1347.  -       var i = info.ind !== undefined ? info.ind : info;
  1642. 1348.  -       if (Upload.types[i] == 'fileApi') {
  1643. 1349.  -         var lnkId = (cur.attachMediaIndexes || {})[i];
  1644. 1350.  -         if (lnkId === undefined || lnkId && cur.addMedia[lnkId].chosenMedia) {
  1645. 1351.  -           var data = {loaded: bytesLoaded, total: bytesTotal};
  1646. 1352.  -           if (info.fileName) data.fileName = info.fileName;
  1647. 1353.  -           addMedia.showMediaProgress('photo', i, data);
  1648. 1354.  -         }
  1649. 1355.  -       } else if (Upload.types[i] == 'flash') {
  1650. 1356.  -         if (!ge('form'+i+'_progress')) {
  1651. 1357.  -           var obj = Upload.obj[i], objHeight = getSize(obj)[1], tm = objHeight / 2 + 10;
  1652. 1358.  -           var node = obj.firstChild;
  1653. 1359.  -           while (node) {
  1654. 1360.  -             if (node.nodeType == 1) {
  1655. 1361.  -               if (node.id == 'uploader'+i && browser.msie) {
  1656. 1362.  -                 setStyle(node, {position: 'relative', left: '-5000px'});
  1657. 1363.  -               } else {
  1658. 1364.  -                 setStyle(node, {visibility: 'hidden'});
  1659. 1365.  -               }
  1660. 1366.  -             }
  1661. 1367.  -             node = node.nextSibling;
  1662. 1368.  -           }
  1663. 1369.  -           obj.appendChild(ce('div', {innerHTML: '<div class="tickets_progress_wrap">\
  1664. 1370.  -             <div id="form' + i + '_progress" class="tickets_progress" style="width: 0%;"></div>\
  1665. 1371.  -           </div></div>'}, {height: tm + 'px', marginTop: -tm + 'px'}));
  1666. 1372.  -         }
  1667. 1373.  -         var percent = intval(bytesLoaded / bytesTotal * 100);
  1668. 1374.  -         setStyle(ge('form' + i + '_progress'), {width: percent + '%'});
  1669. 1375.  -       }
  1670. 1376.  -     },
  1671. 1377.  -     onUploadError: Tickets.chooseFail.pbind(addMedia),
  1672. 1378.  -     onUploadCompleteAll: function (info) {
  1673. 1379.  -       var i = info.ind !== undefined ? info.ind : info;
  1674. 1380.  -       if (Upload.types[i] !== 'fileApi') {
  1675. 1381.  -         if (params.hideOnStart) {
  1676. 1382.  -           boxQueue.hideLast();
  1677. 1383.  -         } else {
  1678. 1384.  -           Upload.embed(i);
  1679. 1385.  -         }
  1680. 1386.  -       }
  1681. 1387.  -     },
  1682. 1388.  -
  1683. 1389.  -     multiple: 1,
  1684. 1390.  -     multi_progress: 1,
  1685. 1391.  -     max_files: params && params.max_files || 5,
  1686. 1392.  -     max_files_hide_last: 1,
  1687. 1393.  -     clear: 1,
  1688. 1394.  -     type: 'photo',
  1689. 1395.  -     max_attempts: 3,
  1690. 1396.  -     file_input: cur.uploadInput,
  1691. 1397.  -     server: opts.server,
  1692. 1398.  -     error: opts.default_error,
  1693. 1399.  -     error_hash: opts.error_hash,
  1694. 1400.  -     dropbox: 'tis_dropbox'
  1695. 1401.  -   });
  1696. 1402.  - },
  1697. 1403.  -
  1698. 1404.  - initDocUpload: function(el, params) {
  1699. 1405.  -   el = ge(el);
  1700. 1406.  -   if (!el) return;
  1701. 1407.  -
  1702. 1408.  -   var uploadData = params.uploadData || cur.uploadDocData, opts = uploadData.options, addMedia;
  1703. 1409.  -   switch (params.target) {
  1704. 1410.  -     case 'auto':
  1705. 1411.  -       addMedia = cur.ticketsAutoMedia;
  1706. 1412.  -       break;
  1707. 1413.  -     case 'template':
  1708. 1414.  -       addMedia = cur.ticketsTemplateMedia;
  1709. 1415.  -       break;
  1710. 1416.  -     case 'edit':
  1711. 1417.  -       addMedia = cur.ticketsEditMedia;
  1712. 1418.  -       break;
  1713. 1419.  -     case 'new':
  1714. 1420.  -     default:
  1715. 1421.  -       addMedia = cur.ticketsNewMedia;
  1716. 1422.  -       break;
  1717. 1423.  -   }
  1718. 1424.  -   return Upload.init(el, uploadData.url, uploadData.vars, {
  1719. 1425.  -     file_name: 'file',
  1720. 1426.  -
  1721. 1427.  -     file_size_limit: 1024*1024*200, // 200Mb
  1722. 1428.  -     file_types_description: 'Documents',
  1723. 1429.  -     file_types: '*.*;',
  1724. 1430.  -     lang: opts.lang,
  1725. 1431.  -
  1726. 1432.  -     onUploadStart: function(info, res) {
  1727. 1433.  -       var i = info.ind !== undefined ? info.ind : info, options = Upload.options[i];
  1728. 1434.  -       if (Upload.types[i] == 'form') {
  1729. 1435.  -         geByClass1('file', el).disabled = true;
  1730. 1436.  -       }
  1731. 1437.  -       if (Upload.types[i] == 'fileApi') {
  1732. 1438.  -         if (cur.notStarted) {
  1733. 1439.  -           if (params && params.hideOnStart) boxQueue.hideLast();
  1734. 1440.  -           delete cur.notStarted;
  1735. 1441.  -         }
  1736. 1442.  -         if (options.multi_progress) this.onUploadProgress(info, 0, 0);
  1737. 1443.  -       }
  1738. 1444.  -     },
  1739. 1445.  -     onUploadComplete: function(info, res) {
  1740. 1446.  -       var params, i = info.ind !== undefined ? info.ind : info, fileName = info.fileName ? info.fileName : info;
  1741. 1447.  -       try {
  1742. 1448.  -         params = eval('(' + res + ')');
  1743. 1449.  -       } catch(e) {
  1744. 1450.  -         params = q2ajx(res);
  1745. 1451.  -       }
  1746. 1452.  -       if (!params.file) {
  1747. 1453.  -         Upload.onUploadError(info);
  1748. 1454.  -         return;
  1749. 1455.  -       }
  1750. 1456.  -       Tickets.chooseDocUploaded(info, params, addMedia);
  1751. 1457.  -     },
  1752. 1458.  -     onUploadProgress: function(info, bytesLoaded, bytesTotal) {
  1753. 1459.  -       var i = info.ind !== undefined ? info.ind : info;
  1754. 1460.  -       if (Upload.types[i] == 'fileApi') {
  1755. 1461.  -         var lnkId = (cur.attachMediaIndexes || {})[i];
  1756. 1462.  -         if (lnkId === undefined || lnkId && cur.addMedia[lnkId].chosenMedia) {
  1757. 1463.  -           var data = {loaded: bytesLoaded, total: bytesTotal};
  1758. 1464.  -           if (info.fileName) data.fileName = info.fileName;
  1759. 1465.  -           addMedia.showMediaProgress('doc', i, data);
  1760. 1466.  -         }
  1761. 1467.  -       } else if (Upload.types[i] == 'flash') {
  1762. 1468.  -         if (!ge('form'+i+'_progress')) {
  1763. 1469.  -           var obj = Upload.obj[i], objHeight = getSize(obj)[1], tm = objHeight / 2 + 10;
  1764. 1470.  -           var node = obj.firstChild;
  1765. 1471.  -           while (node) {
  1766. 1472.  -             if (node.nodeType == 1) {
  1767. 1473.  -               if (node.id == 'uploader'+i && browser.msie) {
  1768. 1474.  -                 setStyle(node, {position: 'relative', left: '-5000px'});
  1769. 1475.  -               } else {
  1770. 1476.  -                 setStyle(node, {visibility: 'hidden'});
  1771. 1477.  -               }
  1772. 1478.  -             }
  1773. 1479.  -             node = node.nextSibling;
  1774. 1480.  -           }
  1775. 1481.  -           obj.appendChild(ce('div', {innerHTML: '<div class="tickets_progress_wrap">\
  1776. 1482.  -             <div id="form' + i + '_progress" class="tickets_progress" style="width: 0%;"></div>\
  1777. 1483.  -           </div></div>'}, {height: tm + 'px', marginTop: -tm + 'px'}));
  1778. 1484.  -         }
  1779. 1485.  -         var percent = intval(bytesLoaded / bytesTotal * 100);
  1780. 1486.  -         setStyle(ge('form' + i + '_progress'), {width: percent + '%'});
  1781. 1487.  -       }
  1782. 1488.  -     },
  1783. 1489.  -     onCheckComplete: params && params.onCheckComplete || false,
  1784. 1490.  -     onUploadError: Tickets.chooseFail.pbind(addMedia),
  1785. 1491.  -     onUploadCompleteAll: function (info) {
  1786. 1492.  -       var i = info.ind !== undefined ? info.ind : info;
  1787. 1493.  -       if (Upload.types[i] !== 'fileApi') {
  1788. 1494.  -         if (params.hideOnStart) {
  1789. 1495.  -           boxQueue.hideLast();
  1790. 1496.  -         } else {
  1791. 1497.  -           Upload.embed(i);
  1792. 1498.  -         }
  1793. 1499.  -       }
  1794. 1500.  -     },
  1795. 1501.  -
  1796. 1502.  -     multiple: 1,
  1797. 1503.  -     multi_progress: 1,
  1798. 1504.  -     max_files: params && params.max_files || 5,
  1799. 1505.  -     max_files_hide_last: 1,
  1800. 1506.  -     clear: 1,
  1801. 1507.  -     type: 'photo',
  1802. 1508.  -     max_attempts: 3,
  1803. 1509.  -     file_input: cur.uploadInput,
  1804. 1510.  -     server: opts.server,
  1805. 1511.  -     error: opts.default_error,
  1806. 1512.  -     error_hash: opts.error_hash,
  1807. 1513.  -     dropbox: 'tis_dropbox'
  1808. 1514.  -   });
  1809. 1515.  - },
  1810. 1516.  -
  1811. 1517.  - initAddMedia: function(lnk, previewId, mediaTypes, opts) {
  1812. 1518.  -   var types = [], bgposes = {photo: 3, doc: -64}, addMedia;
  1813. 1519.  -   opts = opts || {};
  1814. 1520.  -   var target = opts.target || 'new', uploadId, uploaderId, inputId;
  1815. 1521.  -   switch (target) {
  1816. 1522.  -     case 'auto':
  1817. 1523.  -       uploadId = 'tis_upload_auto';
  1818. 1524.  -       uploaderId = 'tis_uploader_auto';
  1819. 1525.  -       break;
  1820. 1526.  -     case 'template':
  1821. 1527.  -       uploadId = 'tis_upload_template';
  1822. 1528.  -       uploaderId = 'tis_uploader_template';
  1823. 1529.  -       break;
  1824. 1530.  -     case 'edit':
  1825. 1531.  -       uploadId = 'tis_upload_edit';
  1826. 1532.  -       uploaderId = 'tis_uploader_edit';
  1827. 1533.  -       break;
  1828. 1534.  -     case 'new':
  1829. 1535.  -     default:
  1830. 1536.  -       uploadId = 'tis_upload';
  1831. 1537.  -       uploaderId = 'tis_uploader';
  1832. 1538.  -   }
  1833. 1539.  -   each (mediaTypes || [], function (i, v) {
  1834. 1540.  -     if (!v[1]) return;
  1835. 1541.  -     var handler = false;
  1836. 1542.  -     switch (v[0]) {
  1837. 1543.  -       case 'photo':
  1838. 1544.  -         handler = function() {
  1839. 1545.  -           inputId = 'tickets_photo_input' + target;
  1840. 1546.  -           stManager.add('upload.js', function() {
  1841. 1547.  -             if (opts.photoCallback) {
  1842. 1548.  -               cur.lastAddMedia = addMedia;
  1843. 1549.  -               cur.lastMediaTarget = target;
  1844. 1550.  -               opts.photoCallback();
  1845. 1551.  -             } else if (opts.oneClick) {
  1846. 1552.  -               var inp = ge(inputId);
  1847. 1553.  -               if (!inp) inp = ge(uploadId).appendChild(ce('input', {
  1848. 1554.  -                 type: 'file',
  1849. 1555.  -                 multiple: 'true',
  1850. 1556.  -                 id: inputId,
  1851. 1557.  -                 onchange: function() {
  1852. 1558.  -                   data(this, 'changed', true);
  1853. 1559.  -                   cur.uploadInput = this;
  1854. 1560.  -                   Tickets.initPhotoUpload(uploaderId, {target: target});
  1855. 1561.  -                 }
  1856. 1562.  -               }));
  1857. 1563.  -               inp.click();
  1858. 1564.  -             } else {
  1859. 1565.  -               Tickets.addScreen(Tickets.initPhotoUpload.pbind('tis_add_data', {hideOnStart: true, target: target}));
  1860. 1566.  -             }
  1861. 1567.  -           });
  1862. 1568.  -         }
  1863. 1569.  -         break;
  1864. 1570.  -       case 'doc':
  1865. 1571.  -         handler = function() {
  1866. 1572.  -           inputId = 'tickets_doc_input' + target;
  1867. 1573.  -           stManager.add('upload.js', function() {
  1868. 1574.  -             if (opts.oneClick) {
  1869. 1575.  -               var inp = ge(inputId);
  1870. 1576.  -               if (!inp) inp = ge(uploadId).appendChild(ce('input', {
  1871. 1577.  -                 type: 'file',
  1872. 1578.  -                 multiple: 'true',
  1873. 1579.  -                 id: inputId,
  1874. 1580.  -                 onchange: function() {
  1875. 1581.  -                   data(this, 'changed', true);
  1876. 1582.  -                   cur.uploadInput = this;
  1877. 1583.  -                   Tickets.initDocUpload(uploaderId, {target: target});
  1878. 1584.  -                 }
  1879. 1585.  -               }));
  1880. 1586.  -               inp.click();
  1881. 1587.  -             } else {
  1882. 1588.  -               Tickets.addDoc(Tickets.initDocUpload.pbind('tis_add_data', {hideOnStart: true, target: target}));
  1883. 1589.  -             }
  1884. 1590.  -           });
  1885. 1591.  -         }
  1886. 1592.  -         break;
  1887. 1593.  -     }
  1888. 1594.  -     var icon = false, bgpos = ('3px ' + bgposes[v[0]] + 'px'), url = false, name = v[1].replace(/\s/g, '&nbsp;');
  1889. 1595.  -     types.push([v[0], v[1], bgpos, handler, url, icon]);
  1890. 1596.  -   });
  1891. 1597.  -
  1892. 1598.  -   var limit = opts.limit || 10;
  1893. 1599.  -
  1894. 1600.  -   var menu = initCustomMedia(lnk, types, {
  1895. 1601.  -     onShow: function () {
  1896. 1602.  -       cur.chooseMedia = addMedia.chooseMedia;
  1897. 1603.  -       cur.showMediaProgress = addMedia.showMediaProgress;
  1898. 1604.  -       cur.attachCount = addMedia.attachCount;
  1899. 1605.  -     },
  1900. 1606.  -     onItemClick: function(type) {
  1901. 1607.  -       if (addMedia.attachCount() >= limit) {
  1902. 1608.  -         showFastBox(getLang('global_error'), getLang('attachments_limit', limit));
  1903. 1609.  -         return false;
  1904. 1610.  -       }
  1905. 1611.  -       return true;
  1906. 1612.  -     }
  1907. 1613.  -   });
  1908. 1614.  -
  1909. 1615.  -   if (!menu) return;
  1910. 1616.  -   previewId = previewId || 'media_preview';
  1911. 1617.  -
  1912. 1618.  -   var lnkId = menu.id,
  1913. 1619.  -       previewEl = ge(previewId),
  1914. 1620.  -       progressEl, picsEl, docsEl;
  1915. 1621.  -
  1916. 1622.  -   val(previewEl, '<div id="page_pics_preview' + lnkId + '" class="page_pics_preview media_preview clear_fix"></div><div id="page_docs_preview' + lnkId + '" class="page_docs_preview media_preview clear_fix"></div><div id="page_progress_preview' + lnkId + '" class="page_progress_preview media_preview clear_fix"></div>');
  1917. 1623.  -   var picsEl = previewEl.childNodes[0],
  1918. 1624.  -       docsEl = previewEl.childNodes[1],
  1919. 1625.  -       progressEl = previewEl.childNodes[2];
  1920. 1626.  -   removeClass(previewEl, 'media_preview');
  1921. 1627.  -   addClass(previewEl, 'multi_media_preview');
  1922. 1628.  -
  1923. 1629.  -   addMedia = {
  1924. 1630.  -     _addMediaLink: lnk,
  1925. 1631.  -     lnkId: lnkId,
  1926. 1632.  -     menu: menu,
  1927. 1633.  -     handlers: {},
  1928. 1634.  -     chosenMedias: [],
  1929. 1635.  -     _showAddMedia: function() {
  1930. 1636.  -       menu.show();
  1931. 1637.  -     },
  1932. 1638.  -     _hideAddMedia: function(noTimeout) {
  1933. 1639.  -       menu.hide(noTimeout);
  1934. 1640.  -     },
  1935. 1641.  -     chooseMedia: function(type, media, data, url, noboxhide) {
  1936. 1642.  -       if (addMedia.onChange && addMedia.onChange(type, media, data) === false) {
  1937. 1643.  -         return false;
  1938. 1644.  -       }
  1939. 1645.  -       if (addMedia.attachCount() >= limit && data.upload_ind === undefined) {
  1940. 1646.  -         return false;
  1941. 1647.  -       }
  1942. 1648.  -       var preview = '', postview = '', toPics = false, oncl;
  1943. 1649.  -       switch (type) {
  1944. 1650.  -         case 'photo':
  1945. 1651.  -           if (!isObject(data)) {
  1946. 1652.  -             data = {
  1947. 1653.  -               thumb_m: data[0] || '',
  1948. 1654.  -               thumb_s: data[1] || '',
  1949. 1655.  -               list: data[2] || '',
  1950. 1656.  -               view_opts: data[3] || '',
  1951. 1657.  -               upload_ind: data.upload_ind || undefined
  1952. 1658.  -             };
  1953. 1659.  -           }
  1954. 1660.  -           vkImage().src = data.thumb_s;
  1955. 1661.  -           oncl = opts.nocl ? '' : ' onclick="return Tickets.showPhoto(\'' + media + '\', \'' + data.list + '\', ' + data.view_opts.replace(/"/g, '&quot;') + ');"';
  1956. 1662.  -           preview = '<div ' + oncl + ' class="fl_l page_preview_photo"><img class="page_preview_photo" src="' + data.thumb_s + '" /></div>';
  1957. 1663.  -           toPics = true;
  1958. 1664.  -           break;
  1959. 1665.  -         case 'doc':
  1960. 1666.  -           if (!data.lang) return false;
  1961. 1667.  -           if (data.thumb && data.thumb_s) {
  1962. 1668.  -             preview = '<a target="_blank" href="' + data.href + '" class="fl_l"><div class="page_preview_doc_photo"><img src="' + data.thumb_s + '" align="center"></div><div class="page_preview_doc_photo_hint">' + data.title + '</div></a>';
  1963. 1669.  -             toPics = true;
  1964. 1670.  -           } else {
  1965. 1671.  -             preview = '<a target="_blank" href="' + data.href + '" class="medadd_h medadd_h_doc inl_bl">' + data.lang.profile_choose_doc + '</a>';
  1966. 1672.  -             postview = '<div class="medadd_c medadd_c_doc"><a target="_blank" href="' + data.href + '">' + data.title + '</a></div>';
  1967. 1673.  -           }
  1968. 1674.  -           break;
  1969. 1675.  -       }
  1970. 1676.  -       var medias = addMedia.chosenMedias,
  1971. 1677.  -           ind = medias.length,
  1972. 1678.  -           mediaEl = (type == 'photos_list') ?
  1973. 1679.  -             se('<div class="page_preview_' + type + '_wrap" style="position: relative">' + preview + '<div class="page_photos_count">' + media.split(',').length + '</div></div>') :
  1974. 1680.  -             se('<div class="page_preview_' + type + '_wrap"' + (opts.nocl ? ' style="cursor: default"' : '') + '>' + preview + '<div class="page_media_x_wrap inl_bl" '+ (browser.msie ? 'title' : 'tootltip') + '="' + getLang('dont_attach') + '" onmouseover="if (browser.msie) return; showTooltip(this, {text: this.getAttribute(\'tootltip\'), shift: [13, 3, 3], black: 1})" onclick="cur.addMedia['+addMedia.lnkId+'].unchooseMedia(' + ind + ')"><div class="page_media_x"></div></div>' + postview + '</div>');
  1975. 1681.  -       addClass(mediaEl, toPics ? 'fl_l' : 'clear_fix');
  1976. 1682.  -       if (data.upload_ind !== undefined) re('upload' + data.upload_ind + '_progress_wrap');
  1977. 1683.  -       (toPics ? picsEl : docsEl).appendChild(mediaEl);
  1978. 1684.  -       medias.push([type, media, mediaEl, url]);
  1979. 1685.  -
  1980. 1686.  -       toggle(picsEl, picsEl.childNodes.length > 0);
  1981. 1687.  -       toggle(docsEl, docsEl.childNodes.length > 0);
  1982. 1688.  -       toggle(progressEl, progressEl.childNodes.length > 0);
  1983. 1689.  -
  1984. 1690.  -       if (!cur.fileApiUploadStarted && noboxhide !== true) {
  1985. 1691.  -         boxQueue.hideLast();
  1986. 1692.  -       }
  1987. 1693.  -
  1988. 1694.  -       cur.lastPostMsg = false;
  1989. 1695.  -       if (opts.onMediaAdd) {
  1990. 1696.  -         opts.onMediaAdd();
  1991. 1697.  -       }
  1992. 1698.  -
  1993. 1699.  -       if (data.upload_ind !== undefined) {
  1994. 1700.  -         delete data.upload_ind;
  1995. 1701.  -       }
  1996. 1702.  -       if (cur.canUseDrafts) {
  1997. 1703.  -         clearTimeout(cur.saveDraftTO);
  1998. 1704.  -         Tickets.saveDraft(cur.ticket_id);
  1999. 1705.  -       }
  2000. 1706.  -       return false;
  2001. 1707.  -     },
  2002. 1708.  -     unchooseMedia: function(ind) {
  2003. 1709.  -       if (addMedia.onChange && addMedia.onChange(false, ind) === false) {
  2004. 1710.  -         return false;
  2005. 1711.  -       }
  2006. 1712.  -       if (ind === undefined) {
  2007. 1713.  -         each (addMedia.chosenMedias, function (k, v) {
  2008. 1714.  -           if (v && k !== undefined) addMedia.unchooseMedia(k);
  2009. 1715.  -         });
  2010. 1716.  -         return;
  2011. 1717.  -       }
  2012. 1718.  -       var medias = addMedia.chosenMedias, x;
  2013. 1719.  -       if (medias[ind]) {
  2014. 1720.  -         if ((x = geByClass1('page_media_x_wrap', medias[ind][2], 'div')) && x.tt && x.tt.el) {
  2015. 1721.  -           x.tt.destroy();
  2016. 1722.  -         }
  2017. 1723.  -         re(medias[ind][2]);
  2018. 1724.  -         medias[ind] = false;
  2019. 1725.  -       }
  2020. 1726.  -       toggle(picsEl, picsEl.childNodes.length > 0);
  2021. 1727.  -       toggle(docsEl, docsEl.childNodes.length > 0);
  2022. 1728.  -       toggle(progressEl, progressEl.childNodes.length > 0);
  2023. 1729.  -
  2024. 1730.  -       cur.lastPostMsg = false;
  2025. 1731.  -
  2026. 1732.  -       if (addMedia.onChange) addMedia.onChange(false);
  2027. 1733.  -       if (cur.canUseDrafts) {
  2028. 1734.  -         clearTimeout(cur.saveDraftTO);
  2029. 1735.  -         Tickets.saveDraft(cur.ticket_id);
  2030. 1736.  -       }
  2031. 1737.  -     },
  2032. 1738.  -     showMediaProgress: function(type, i, info) {
  2033. 1739.  -       if (addMedia.onProgress && addMedia.onProgress(type, i, info) === false) {
  2034. 1740.  -         return false;
  2035. 1741.  -       }
  2036. 1742.  -       var frac = info.loaded / info.total, percent = intval(frac * 100),
  2037. 1743.  -           fileName = info.fileName || info.name || '',
  2038. 1744.  -           ind = fileName ? i + '_' + fileName : i,
  2039. 1745.  -           label = fileName ? (fileName.length > 33 ? fileName.substr(0, 30) + '...' : fileName) : '';
  2040. 1746.  -
  2041. 1747.  -       var prg = ge('upload' + ind + '_progress');
  2042. 1748.  -       if (!prg) {
  2043. 1749.  -         if (!cur.attachMediaIndexes) cur.attachMediaIndexes = {};
  2044. 1750.  -         cur.attachMediaIndexes[ind] = lnkId;
  2045. 1751.  -
  2046. 1752.  -         var progress = '\
  2047. 1753.  - <div class="fl_l"><div class="page_attach_progress_wrap" style="margin-top: 3px; margin-bottom: 4px;">\
  2048. 1754.  -   <div id="upload' + ind + '_progress" class="page_attach_progress"></div>\
  2049. 1755.  - </div></div></div>' + (label ? '<div class="attach_label fl_l">' + label + '</div>' : '') + '<div class="progress_x fl_l" onmouseover="animate(this, {opacity: 1}, 200); showTooltip(this, {text: \'' + getLang('dont_attach') + '\', shift: [6, 3, 3]})" onmouseout="animate(this, {opacity: 0.6}, 200);" onclick="Upload.terminateUpload(' + i + ', \'' + (fileName || i) + '\');"></div>';
  2050. 1756.  -
  2051. 1757.  -         progressEl.appendChild(ce('div', {id: 'upload' + ind + '_progress_wrap', innerHTML: progress, className: 'clear_fix upload_' + i + '_progress'}, {marginTop: '6px'}));
  2052. 1758.  -         show(progressEl);
  2053. 1759.  -         prg = ge('upload' + ind + '_progress');
  2054. 1760.  -         prg.full = false;
  2055. 1761.  -
  2056. 1762.  -         if (percent) {
  2057. 1763.  -           setStyle(prg, {width: prg.full ? (intval(prg.full * frac) + 'px') : percent + '%'})
  2058. 1764.  -         } else {
  2059. 1765.  -           setStyle(prg, {width: '1px'});
  2060. 1766.  -           hide(prg);
  2061. 1767.  -         }
  2062. 1768.  -       } else {
  2063. 1769.  -         show(prg);
  2064. 1770.  -         if (prg.full) {
  2065. 1771.  -           var tw = data(prg, 'tween'), w = intval(prg.full * frac);
  2066. 1772.  -           if (tw && tw.isTweening) {
  2067. 1773.  -             tw.to.width = w;
  2068. 1774.  -           } else {
  2069. 1775.  -             animate(prg, {width: w + 'px'}, 500);
  2070. 1776.  -           }
  2071. 1777.  -         } else {
  2072. 1778.  -           setStyle(prg, {width: percent + '%'});
  2073. 1779.  -         }
  2074. 1780.  -       }
  2075. 1781.  -     },
  2076. 1782.  -
  2077. 1783.  -     attachCount: function() {
  2078. 1784.  -       if (addMedia.attachedCount) {
  2079. 1785.  -         return addMedia.attachedCount();
  2080. 1786.  -       }
  2081. 1787.  -       if (!previewEl) {
  2082. 1788.  -         return 0;
  2083. 1789.  -       }
  2084. 1790.  -       var num = picsEl.childNodes.length + docsEl.childNodes.length + progressEl.childNodes.length;
  2085. 1791.  -       return num;
  2086. 1792.  -     },
  2087. 1793.  -   }
  2088. 1794.  -
  2089. 1795.  -   if (!cur.addMedia) {
  2090. 1796.  -     cur.addMedia = {};
  2091. 1797.  -   }
  2092. 1798.  -
  2093. 1799.  -   cur.addMedia[lnkId] = addMedia;
  2094. 1800.  -   return addMedia;
  2095. 1801.  - },
  2096. 1802.  -
  2097. 1803.  - showModerStats: function(id, hash) {
  2098. 1804.  -   var cont = ge('support_moders_stats'+id),
  2099. 1805.  -       row = ge('support_moder_stats_row'+id),
  2100. 1806.  -       data = ge('support_moder_stats_data'+id);
  2101. 1807.  -   if (!cont) {
  2102. 1808.  -     addClass(row, 'detailed');
  2103. 1809.  -     slideToggle(data, 200);
  2104. 1810.  -     ajax.post(nav.objLoc[0], {act: 'moder_stats', mid: id, hash: hash}, {
  2105. 1811.  -       onDone: function(res, script) {
  2106. 1812.  -         data.innerHTML = res;
  2107. 1813.  -         if (script) eval(script);
  2108. 1814.  -       }
  2109. 1815.  -     });
  2110. 1816.  -   } else {
  2111. 1817.  -     if (isVisible(data)) {
  2112. 1818.  -       removeClass(row, 'detailed');
  2113. 1819.  -     } else {
  2114. 1820.  -       addClass(row, 'detailed');
  2115. 1821.  -     }
  2116. 1822.  -     slideToggle(data, 200)
  2117. 1823.  -   }
  2118. 1824.  -   return false;
  2119. 1825.  - },
  2120. 1826.  -
  2121. 1827.  - sortModerStats: function(el, field) {
  2122. 1828.  -   if (cur.section != 'stats' && cur.section != 'spec_stats' && cur.section != 'ento_stats') return false;
  2123. 1829.  -
  2124. 1830.  -   if (field == 'rate') {
  2125. 1831.  -     switch (cur.sort) {
  2126. 1832.  -       case 'sum_rate':
  2127. 1833.  -         field = 'plus_rate';
  2128. 1834.  -         break;
  2129. 1835.  -       case 'plus_rate':
  2130. 1836.  -         field = 'minus_rate';
  2131. 1837.  -         break;
  2132. 1838.  -       default:
  2133. 1839.  -         field = 'sum_rate';
  2134. 1840.  -         break;
  2135. 1841.  -     }
  2136. 1842.  -   }
  2137. 1843.  -   if (field != cur.sort) {
  2138. 1844.  -     each(geByClass('table_header_upper_span', el.parentNode), function(i, v) {removeClass(v, 'sorted');});
  2139. 1845.  -     addClass(geByClass1('table_header_upper_span', el), 'sorted');
  2140. 1846.  -     nav.go('/helpdesk?act='+nav.objLoc.act+'&sort='+field);
  2141. 1847.  -   }
  2142. 1848.  -
  2143. 1849.  -   return false;
  2144. 1850.  - },
  2145. 1851.  -
  2146. 1852.  - toggleFAQRow: function(id, hash, el, evt) {
  2147. 1853.  -   if (!evt.target) {
  2148. 1854.  -     evt.target = evt.srcElement || document;
  2149. 1855.  -   }
  2150. 1856.  -   if (evt.target.tagName.toLowerCase() == 'a') return true;
  2151. 1857.  -   toggle('tickets_faq_short_text'+id, !isVisible('tickets_faq_short_text'+id));
  2152. 1858.  -   toggle('tickets_faq_full_text'+id, !isVisible('tickets_faq_full_text'+id));
  2153. 1859.  -   if (isVisible('tickets_faq_full_text'+id)) {
  2154. 1860.  -     addClass(el, 'detailed');
  2155. 1861.  -     if (vk.id) {
  2156. 1862.  -       ajax.post(nav.objLoc[0], {act: 'faq_clicked', faq_id: id, hash: hash}, {cache: 1});
  2157. 1863.  -     }
  2158. 1864.  -   } else {
  2159. 1865.  -     removeClass(el, 'detailed');
  2160. 1866.  -   }
  2161. 1867.  -   return false;
  2162. 1868.  - },
  2163. 1869.  -
  2164. 1870.  - rateFAQ: function(id, val, hash) {
  2165. 1871.  -   if (!vk.id) return false;
  2166. 1872.  -   ajax.post(nav.objLoc[0], {act: 'faq_rate', faq_id: id, val: val, hash: hash});
  2167. 1873.  -   ajax.post(nav.objLoc[0], {act: 'faq_clicked', faq_id: id, hash: hash}, {cache: 1});
  2168. 1874.  -   hide('tickets_faq_links'+id);
  2169. 1875.  -   if (val > 0) {
  2170. 1876.  -     show('tickets_faq_useful'+id);
  2171. 1877.  -   } else {
  2172. 1878.  -     show('tickets_faq_unuseful'+id);
  2173. 1879.  -   }
  2174. 1880.  -   return false;
  2175. 1881.  - },
  2176. 1882.  -
  2177. 1883.  - cancelRateFAQ: function(id, val, hash) {
  2178. 1884.  -   if (!vk.id) return false;
  2179. 1885.  -   ajax.post(nav.objLoc[0], {act: 'faq_rate', faq_id: id, val: val, cancel: 1, hash: hash});
  2180. 1886.  -   hide('tickets_faq_useful'+id, 'tickets_faq_unuseful'+id);
  2181. 1887.  -   show('tickets_faq_links'+id);
  2182. 1888.  -   return false;
  2183. 1889.  - },
  2184. 1890.  -
  2185. 1891.  - showAverageTime: function(time) {
  2186. 1892.  -   if (cur.timeShown) {
  2187. 1893.  -     Tickets.toggleDetailedForm();
  2188. 1894.  -     return;
  2189. 1895.  -   }
  2190. 1896.  -   var msg = getLang('support_wait_message').replace(/\{time\}/g, time) + '<div class="tickets_wait_img"><img src="/images/pics/support_wait.png" /></div>';
  2191. 1897.  -   var box = showFastBox({title: getLang('support_average_wait_time'), width: 430, bodyStyle: "line-height: 160%;"}, msg, getLang('support_ask_question'), function() {
  2192. 1898.  -       box.hide();
  2193. 1899.  -       cur.timeShown = true;
  2194. 1900.  -       Tickets.toggleDetailedForm(true);
  2195. 1901.  -     }, getLang('support_back_to_faq'));
  2196. 1902.  - },
  2197. 1903.  -
  2198. 1904.  - toggleDetailedForm: function(force) {
  2199. 1905.  -   var title = ge('tickets_title');
  2200. 1906.  -   toggle('tickets_faq_list');
  2201. 1907.  -   toggle('tickets_detailed_form');
  2202. 1908.  -   if (isVisible('tickets_detailed_form')) {
  2203. 1909.  -     title.setAttribute('placeholder', cur.lang.placeholder_title);
  2204. 1910.  -     removeClass(ge('tickets_search_reset'), 'shown');
  2205. 1911.  -     if (force) ge('tickets_text').focus();
  2206. 1912.  -   } else {
  2207. 1913.  -     title.setAttribute('placeholder', cur.lang.placeholder_default);
  2208. 1914.  -     var str = trim(ge('tickets_title').value);
  2209. 1915.  -     if (str) {
  2210. 1916.  -       addClass(ge('tickets_search_reset'), 'shown');
  2211. 1917.  -     }
  2212. 1918.  -     cur.toggleCanceled = true;
  2213. 1919.  -     delete cur.toggled;
  2214. 1920.  -     this.searchFAQ(str);
  2215. 1921.  -     title.focus();
  2216. 1922.  -   }
  2217. 1923.  -   placeholderSetup(ge('tickets_title'), {back: true, reload: true});
  2218. 1924.  - },
  2219. 1925.  -
  2220. 1926.  - switchToPayForm: function(event) {
  2221. 1927.  -   lockButton('tickets_create_pay');
  2222. 1928.  -   return nav.go({0: nav.objLoc[0], act: 'new_pay', title: ge('tickets_title').value}, event);
  2223. 1929.  - },
  2224. 1930.  -
  2225. 1931.  - switchToAdsForm: function(event) {
  2226. 1932.  -   lockButton('tickets_create_ads');
  2227. 1933.  -   return nav.go({0: nav.objLoc[0], act: 'new_ads', title: ge('tickets_title').value}, event);
  2228. 1934.  - },
  2229. 1935.  -
  2230. 1936.  - switchToNameForm: function(event) {
  2231. 1937.  -   lockButton('tickets_create_name');
  2232. 1938.  -   return nav.go({0: nav.objLoc[0], act: 'new_name', title: ge('tickets_title').value}, event);
  2233. 1939.  - },
  2234. 1940.  -
  2235. 1941.  - switchToApiForm: function(event) {
  2236. 1942.  -   lockButton('tickets_create_api');
  2237. 1943.  -   return nav.go({0: nav.objLoc[0], act: 'new_api', title: ge('tickets_title').value}, event);
  2238. 1944.  - },
  2239. 1945.  -
  2240. 1946.  - switchToMobileForm: function(event) {
  2241. 1947.  -   lockButton('tickets_create_mobile');
  2242. 1948.  -   return nav.go({0: nav.objLoc[0], act: 'new_mobile', title: ge('tickets_title').value}, event);
  2243. 1949.  - },
  2244. 1950.  -
  2245. 1951.  - updateFAQ: function(e, obj) {
  2246. 1952.  -   clearTimeout(cur.faqTimeout);
  2247. 1953.  -   cur.faqTimeout = setTimeout((function() {
  2248. 1954.  -     var origStr = obj.value,
  2249. 1955.  -         str = trim(origStr),
  2250. 1956.  -         words = str.split(' '),
  2251. 1957.  -         textInput = ge('tickets_text');
  2252. 1958.  -
  2253. 1959.  -     if (origStr.length >= 70 && textInput && !textInput.value && !cur.flood) {
  2254. 1960.  -       if (!isVisible('tickets_detailed_form')) Tickets.toggleDetailedForm();
  2255. 1961.  -       obj.value = '';
  2256. 1962.  -       textInput.focus();
  2257. 1963.  -       textInput.value = origStr;
  2258. 1964.  -     }
  2259. 1965.  -     if (isVisible('tickets_detailed_form')) return;
  2260. 1966.  -     if (str == cur.searchStr && (words.length < 4 || words.length == 4 && origStr[origStr.length - 1] != ' ')) {
  2261. 1967.  -       return;
  2262. 1968.  -     }
  2263. 1969.  -     if (str) {
  2264. 1970.  -       addClass(ge('tickets_search_reset'), 'shown');
  2265. 1971.  -     } else {
  2266. 1972.  -       removeClass(ge('tickets_search_reset'), 'shown');
  2267. 1973.  -     }
  2268. 1974.  -     cur.searchStr = str;
  2269. 1975.  -     clearTimeout(cur.searchFAQTimeout);
  2270. 1976.  -     cur.searchFAQTimeout = setTimeout((function() {
  2271. 1977.  -       Tickets.searchFAQ(cur.searchStr);
  2272. 1978.  -     }).bind(this), 300);
  2273. 1979.  -
  2274. 1980.  -     if (!browser.mobile) scrollToTop();
  2275. 1981.  -   }).bind(this), 10);
  2276. 1982.  - },
  2277. 1983.  -
  2278. 1984.  - searchFAQ: function(val) {
  2279. 1985.  -   if (val[val.length - 1] == ' ') {
  2280. 1986.  -     val[val.length - 1] = '_';
  2281. 1987.  -   }
  2282. 1988.  -   addClass(ge('tickets_search'), 'loading');
  2283. 1989.  -   setStyle(ge('tickets_search_reset'), {opacity: .6});
  2284. 1990.  -   var query = {act: 'get_faq', q: val, from: nav.objLoc.act};
  2285. 1991.  -   if (cur.tlmd && cur.showAll) {
  2286. 1992.  -     delete cur.showAll;
  2287. 1993.  -     query.show_all = 1;
  2288. 1994.  -   }
  2289. 1995.  -   ajax.post(nav.objLoc[0], query, {
  2290. 1996.  -     cache: 1,
  2291. 1997.  -     onDone: function(cont, button) {
  2292. 1998.  -       var origStr = ge('tickets_title').value,
  2293. 1999.  -           words = trim(origStr).split(' '),
  2294. 2000.  -           needToggle = false;
  2295. 2001.  -       if (!cur.toggleCanceled && (words.length > 4 || words.length == 4 && origStr[origStr.length - 1] == ' ') && !cur.flood) needToggle = true;
  2296. 2002.  -       if (cont) {
  2297. 2003.  -         ge('tickets_faq_list').innerHTML = ce('div', {innerHTML: cont}).firstChild.innerHTML;
  2298. 2004.  -       } else {
  2299. 2005.  -         if (button) ge('tickets_faq_button').innerHTML = button;
  2300. 2006.  -         if (needToggle) {
  2301. 2007.  -           cur.toggled = true;
  2302. 2008.  -           Tickets.toggleDetailedForm();
  2303. 2009.  -         }
  2304. 2010.  -       }
  2305. 2011.  -       if (cur.tlmd) {
  2306. 2012.  -         if (val) {
  2307. 2013.  -           extend(nav.objLoc, {q: val});
  2308. 2014.  -         } else {
  2309. 2015.  -           delete nav.objLoc.q;
  2310. 2016.  -         }
  2311. 2017.  -         if (nav.objLoc.act == 'faq') {
  2312. 2018.  -           var title = val ? val : getLang('support_page_title');
  2313. 2019.  -           if (!vk.id) {
  2314. 2020.  -             title += ' | ' + getLang('global_vkontakte');
  2315. 2021.  -           }
  2316. 2022.  -           document.title = title;
  2317. 2023.  -         }
  2318. 2024.  -         if (cont) {
  2319. 2025.  -           cur.faqRowsOpened = false;
  2320. 2026.  -           removeClass(ge('faq_toggle_all'), 'shown');
  2321. 2027.  -         }
  2322. 2028.  -         nav.setLoc(nav.objLoc);
  2323. 2029.  -       }
  2324. 2030.  -       removeClass(ge('tickets_search'), 'loading');
  2325. 2031.  -     },
  2326. 2032.  -     onFail: function() {
  2327. 2033.  -       removeClass(ge('tickets_search'), 'loading');
  2328. 2034.  -     }
  2329. 2035.  -   });
  2330. 2036.  - },
  2331. 2037.  -
  2332. 2038.  - clearSearch: function(el, event) {
  2333. 2039.  -   var field = ge('tickets_title');
  2334. 2040.  -   setStyle(el, {opacity: .6});
  2335. 2041.  -   field.value = '';
  2336. 2042.  -   ge('tickets_title').focus();
  2337. 2043.  -   this.updateFAQ(event, field);
  2338. 2044.  - },
  2339. 2045.  -
  2340. 2046.  - toggleSimilar: function(needScroll) {
  2341. 2047.  -   toggle('tickets_similar', !isVisible('tickets_similar'));
  2342. 2048.  -   var a = ge('toggle_similar_link');
  2343. 2049.  -   toggleClass(a, 'opened', isVisible('tickets_similar'));
  2344. 2050.  -   if (isVisible('tickets_similar')) {
  2345. 2051.  -     a.innerHTML = getLang('support_hide_similar');
  2346. 2052.  -     if (ge('similar_search')) {
  2347. 2053.  -       cur.searchDD.updateInput();
  2348. 2054.  -     }
  2349. 2055.  -     if (cur.similarCount < 10) {
  2350. 2056.  -       hide('tickets_toup');
  2351. 2057.  -     } else {
  2352. 2058.  -       if (isVisible('tickets_toup')) {
  2353. 2059.  -         setStyle(ge('tickets_toup'), {height: '0px'});
  2354. 2060.  -         setStyle(ge('tickets_toup'), {height: getSize(ge('tickets_similar'))[1]});
  2355. 2061.  -       }
  2356. 2062.  -     }
  2357. 2063.  -   } else {
  2358. 2064.  -     a.innerHTML = cur.similarCount ?  getLang('support_show_similar', cur.similarCount) : getLang('support_search_similar');
  2359. 2065.  -   }
  2360. 2066.  -   if (needScroll) scrollToTop(0);
  2361. 2067.  -   return false;
  2362. 2068.  - },
  2363. 2069.  - toggleSimilarRow: function(id, el, evt) {
  2364. 2070.  -   if (!evt.target) {
  2365. 2071.  -     evt.target = evt.srcElement || document;
  2366. 2072.  -   }
  2367. 2073.  -   if (evt.target.tagName.toLowerCase() == 'a') return true;
  2368. 2074.  -   toggle('tickets_similar_short_text'+id, !isVisible('tickets_similar_short_text'+id));
  2369. 2075.  -   toggle('tickets_similar_full_text'+id, !isVisible('tickets_similar_full_text'+id));
  2370. 2076.  -   if (isVisible('tickets_similar_full_text'+id)) {
  2371. 2077.  -     addClass(el, 'detailed');
  2372. 2078.  -   } else {
  2373. 2079.  -     removeClass(el, 'detailed');
  2374. 2080.  -   }
  2375. 2081.  -   if (isVisible('tickets_toup')) {
  2376. 2082.  -     setStyle(ge('tickets_toup'), {height: '0px'});
  2377. 2083.  -     setStyle(ge('tickets_toup'), {height: getSize(ge('tickets_similar'))[1]});
  2378. 2084.  -   }
  2379. 2085.  -   return false;
  2380. 2086.  - },
  2381. 2087.  - checkOver: function(el, mid) {
  2382. 2088.  -   el.firstChild.className = cur.checkedTickets[mid] ? 'over_checked' : 'over';
  2383. 2089.  -   showTooltip(el, {text: cur.lang.take_question, showdt: 200, shift: [-20, -20, 0]})
  2384. 2090.  - },
  2385. 2091.  - checkOut: function(el, mid) {
  2386. 2092.  -   el.firstChild.className = cur.checkedTickets[mid] ? 'checked' : '';
  2387. 2093.  - },
  2388. 2094.  - updateChecked: function() {
  2389. 2095.  -   if (ge('tickets_search_options')) {
  2390. 2096.  -     var tickets = [];
  2391. 2097.  -     each(cur.checkedTickets, function(i, v) {tickets.push(i)});
  2392. 2098.  -     var c = tickets.length;
  2393. 2099.  -     if (c) {
  2394. 2100.  -       hide('tickets_all_search');
  2395. 2101.  -       ge('t_n_marked').innerHTML = langNumeric(c, cur.lang.x_tickets_checked, true);
  2396. 2102.  -       show('tickets_all_selected');
  2397. 2103.  -     } else {
  2398. 2104.  -       show('tickets_all_search');
  2399. 2105.  -       hide('tickets_all_selected');
  2400. 2106.  -     }
  2401. 2107.  -   }
  2402. 2108.  - },
  2403. 2109.  - checkChange: function(el, mid) {
  2404. 2110.  -   if (cur.checkedTickets[mid]) {
  2405. 2111.  -     delete cur.checkedTickets[mid];
  2406. 2112.  -     el.firstChild.className = 'over';
  2407. 2113.  -   } else {
  2408. 2114.  -     cur.checkedTickets[mid] = true;
  2409. 2115.  -     el.firstChild.className = 'over_checked';
  2410. 2116.  -   }
  2411. 2117.  -   this.updateChecked();
  2412. 2118.  - },
  2413. 2119.  - uncheckTickets: function() {
  2414. 2120.  -   each(cur.checkedTickets, function(i, v) { delete cur.checkedTickets[i];});
  2415. 2121.  -   each(geByClass('tickets_check', ge('tickets_checked')), function(i, v) {
  2416. 2122.  -     v.firstChild.className = '';
  2417. 2123.  -   });
  2418. 2124.  -   show('tickets_all_search');
  2419. 2125.  -   hide('tickets_all_selected');
  2420. 2126.  - },
  2421. 2127.  - statsRowOver: function(el, notNext) {
  2422. 2128.  -   addClass(el, 'over');
  2423. 2129.  -   var next = notNext ? el.nextSibling && el.nextSibling.nextSibling : el.nextSibling;
  2424. 2130.  -   if (next) {
  2425. 2131.  -     addClass(next, 'after_over');
  2426. 2132.  -   }
  2427. 2133.  - },
  2428. 2134.  - statsRowOut: function(el, notNext) {
  2429. 2135.  -   removeClass(el, 'over');
  2430. 2136.  -   var next = notNext ? el.nextSibling && el.nextSibling.nextSibling : el.nextSibling;
  2431. 2137.  -   if (next) {
  2432. 2138.  -     removeClass(next, 'after_over');
  2433. 2139.  -   }
  2434. 2140.  - },
  2435. 2141.  -
  2436. 2142.  - getSearchParams: function(obj) {
  2437. 2143.  -   var params = {q: trim(val(obj))};
  2438. 2144.  -   switch (nav.objLoc.act) {
  2439. 2145.  -     case 'show':
  2440. 2146.  -       params.act = 'get_similar';
  2441. 2147.  -       params.ticket_id = cur.ticket_id;
  2442. 2148.  -       break;
  2443. 2149.  -     case 'all':
  2444. 2150.  -       params.act = 'all';
  2445. 2151.  -       var filtersVal = (window.radioBtns.filters || {}).val;
  2446. 2152.  -       params.good = filtersVal == 1 ? 1 : '';
  2447. 2153.  -       params.opened = filtersVal == 2 ? 1 : '';
  2448. 2154.  -       params.from_support = filtersVal == 3 ? 1 : '';
  2449. 2155.  -       params.search = 1;
  2450. 2156.  -       if (ge('tickets_extra_options') && params.opened) {
  2451. 2157.  -         params.download = cur.searchDownload.val();
  2452. 2158.  -         params.photo_server = ge('tickets_photo').value;
  2453. 2159.  -         params.id100 = ge('tickets_id').value;
  2454. 2160.  -         var brVal = cur.searchBrowser.val();
  2455. 2161.  -         if (brVal && brVal != '0') {
  2456. 2162.  -           params.browser = (brVal == -1) ? cur.searchBrowser.curTerm : brVal;
  2457. 2163.  -         }
  2458. 2164.  -         if (cur.searchTime.val()) {
  2459. 2165.  -           params.time_from = val('search_start_date');
  2460. 2166.  -           params.time_to = val('search_end_date');
  2461. 2167.  -         }
  2462. 2168.  -       }
  2463. 2169.  -       break;
  2464. 2170.  -     case 'history':
  2465. 2171.  -       params.act = 'get_answers';
  2466. 2172.  -       params.mid = nav.objLoc.mid;
  2467. 2173.  -       break;
  2468. 2174.  -   }
  2469. 2175.  -   return params;
  2470. 2176.  - },
  2471. 2177.  - sameParams: function(params) {
  2472. 2178.  -   if (!cur.params) return false;
  2473. 2179.  -   for (var i in params) {
  2474. 2180.  -     if (params[i] != cur.params[i]) return false;
  2475. 2181.  -   }
  2476. 2182.  -   for (var i in cur.params) {
  2477. 2183.  -     if (params[i] != cur.params[i]) return false;
  2478. 2184.  -   }
  2479. 2185.  -   return true;
  2480. 2186.  - },
  2481. 2187.  -
  2482. 2188.  - updateAllSearch: function(e, obj) {
  2483. 2189.  -   var force = (e === false) || e && (e.keyCode == 10 || e.keyCode == 13);
  2484. 2190.  -   clearTimeout(cur.faqTimeout);
  2485. 2191.  -   cur.faqTimeout = setTimeout((function() {
  2486. 2192.  -     var params = Tickets.getSearchParams(obj);
  2487. 2193.  -     toggleClass(ge('tickets_all_reset'), 'shown', !!params.q);
  2488. 2194.  -     if (force && (!Tickets.sameParams(params) || cur.ignoreEqual)) {
  2489. 2195.  -       delete cur.ignoreEqual;
  2490. 2196.  -       cur.params = params;
  2491. 2197.  -       cur.searchStr = params.q;
  2492. 2198.  -       Tickets.searchAll(cur.searchStr);
  2493. 2199.  -     }
  2494. 2200.  -     if (nav.objLoc.act != 'show') scrollToTop();
  2495. 2201.  -   }).bind(this), 10);
  2496. 2202.  - },
  2497. 2203.  -
  2498. 2204.  - searchAll: function() {
  2499. 2205.  -   var query = cur.params || Tickets.getSearchParams(ge('all_search'));
  2500. 2206.  -   addClass(ge('tickets_all_search'), 'loading');
  2501. 2207.  -   setStyle(ge('tickets_all_reset'), {opacity: .6});
  2502. 2208.  -   switch (nav.objLoc.act) {
  2503. 2209.  -     case 'show':
  2504. 2210.  -       addClass(ge('similar_search_bar'), 'similar_loading');
  2505. 2211.  -       break;
  2506. 2212.  -     case 'all':
  2507. 2213.  -       cur.checkedTickets = {};
  2508. 2214.  -       break;
  2509. 2215.  -     case 'history':
  2510. 2216.  -       if (query.q) {
  2511. 2217.  -         if (ge('search_subtab')) {
  2512. 2218.  -           each(geByClass('tickets_subtab1', ge('tickets_search_options')), function(i, v) {
  2513. 2219.  -             removeClass(v, 'active');
  2514. 2220.  -           });
  2515. 2221.  -           ge('search_subtab').className = 'tickets_subtab1 active';
  2516. 2222.  -         }
  2517. 2223.  -       } else {
  2518. 2224.  -         if (hasClass('search_subtab', 'active')) {
  2519. 2225.  -           ge('search_subtab').className = 'tickets_subtab1 hidden';
  2520. 2226.  -           addClass('all_subtab', 'active');
  2521. 2227.  -         }
  2522. 2228.  -       }
  2523. 2229.  -       break;
  2524. 2230.  -   }
  2525. 2231.  -   ajax.post(nav.objLoc[0], query, {
  2526. 2232.  -     cache: 1,
  2527. 2233.  -     onDone: function(cont, script) {
  2528. 2234.  -       switch (nav.objLoc.act) {
  2529. 2235.  -         case 'show':
  2530. 2236.  -           ge('similar_rows').innerHTML = cont;
  2531. 2237.  -           removeClass(ge('similar_search_bar'), 'similar_loading');
  2532. 2238.  -           if (script) eval(script);
  2533. 2239.  -           toggle('tickets_toup', cur.similarCount > 10);
  2534. 2240.  -           each(cur.checkedTickets, function(i, v) {if (ge('tickets_similar_row'+i)) {
  2535. 2241.  -             geByClass1('tickets_check', ge('tickets_similar_row'+i)).firstChild.className = 'checked';
  2536. 2242.  -           }});
  2537. 2243.  -           if (isVisible('tickets_toup')) {
  2538. 2244.  -             setStyle(ge('tickets_toup'), {height: '0px'});
  2539. 2245.  -             setStyle(ge('tickets_toup'), {height: getSize(ge('tickets_similar'))[1]});
  2540. 2246.  -           }
  2541. 2247.  -           break;
  2542. 2248.  -         case 'all':
  2543. 2249.  -           ge('tickets_all').innerHTML = cont;
  2544. 2250.  -           if (script) eval(script);
  2545. 2251.  -           delete nav.objLoc.offset;
  2546. 2252.  -           each(['q', 'good', 'opened', 'download', 'from_support', 'photo_server', 'id100', 'time_from', 'time_to', 'browser'], function(i, v) {
  2547. 2253.  -             if (query[v]) {
  2548. 2254.  -               nav.objLoc[v] = query[v];
  2549. 2255.  -             } else {
  2550. 2256.  -               delete nav.objLoc[v];
  2551. 2257.  -             }
  2552. 2258.  -           });
  2553. 2259.  -           nav.setLoc(nav.objLoc);
  2554. 2260.  -           break;
  2555. 2261.  -         case 'history':
  2556. 2262.  -           delete nav.objLoc.offset;
  2557. 2263.  -           delete nav.objLoc.section;
  2558. 2264.  -           ge('tickets_replies').innerHTML = cont;
  2559. 2265.  -           if (query.q) {
  2560. 2266.  -             nav.objLoc.q = query.q;
  2561. 2267.  -           } else {
  2562. 2268.  -             delete nav.objLoc.q;
  2563. 2269.  -           }
  2564. 2270.  -           nav.setLoc(nav.objLoc);
  2565. 2271.  -           break;
  2566. 2272.  -       }
  2567. 2273.  -       removeClass(ge('tickets_all_search'), 'loading');
  2568. 2274.  -     },
  2569. 2275.  -     onFail: function() {
  2570. 2276.  -       removeClass(ge('tickets_all_search'), 'loading');
  2571. 2277.  -     }
  2572. 2278.  -   });
  2573. 2279.  - },
  2574. 2280.  -
  2575. 2281.  - clearAllSearch: function(el, event) {
  2576. 2282.  -   var field = ge('all_search');
  2577. 2283.  -   setStyle(el, {opacity: .6});
  2578. 2284.  -   field.value = '';
  2579. 2285.  -   field.focus();
  2580. 2286.  -   this.updateAllSearch(false, field);
  2581. 2287.  - },
  2582. 2288.  -
  2583. 2289.  - updateAddSearch: function(e, obj) {
  2584. 2290.  -   clearTimeout(cur.addTimeout);
  2585. 2291.  -   cur.addTimeout = setTimeout((function() {
  2586. 2292.  -     var str = trim(obj.value),
  2587. 2293.  -         textInput = ge('tickets_add_title');
  2588. 2294.  -     if (str == cur.searchStr) return;
  2589. 2295.  -     if (str) {
  2590. 2296.  -       addClass(ge('tickets_search_reset'), 'shown');
  2591. 2297.  -     } else {
  2592. 2298.  -       removeClass(ge('tickets_search_reset'), 'shown');
  2593. 2299.  -     }
  2594. 2300.  -     cur.searchStr = str;
  2595. 2301.  -     clearTimeout(cur.searchAddTimeout);
  2596. 2302.  -     cur.searchAddTimeout = setTimeout((function() {
  2597. 2303.  -       Tickets.searchAdd(cur.searchStr);
  2598. 2304.  -     }).bind(this), 300);
  2599. 2305.  -
  2600. 2306.  -     scrollToTop();
  2601. 2307.  -   }).bind(this), 10);
  2602. 2308.  - },
  2603. 2309.  -
  2604. 2310.  - searchAdd: function(val) {
  2605. 2311.  -   if (val[val.length - 1] == ' ') {
  2606. 2312.  -     val[val.length - 1] = '_';
  2607. 2313.  -   }
  2608. 2314.  -   addClass(ge('tickets_add_search'), 'loading');
  2609. 2315.  -   setStyle(ge('tickets_search_reset'), {opacity: .6});
  2610. 2316.  -   ajax.post(nav.objLoc[0], {act: 'get_bugs', q: val}, {
  2611. 2317.  -     cache: 1,
  2612. 2318.  -     onDone: function(cont, button) {
  2613. 2319.  -       if (cont) {
  2614. 2320.  -         ge('tickets_add_list').innerHTML = ce('div', {innerHTML: cont}).innerHTML;
  2615. 2321.  -       }
  2616. 2322.  -       ge('tickets_add_button').innerHTML = button;
  2617. 2323.  -       removeClass(ge('tickets_add_search'), 'loading');
  2618. 2324.  -     },
  2619. 2325.  -     onFail: function() {
  2620. 2326.  -       removeClass(ge('tickets_add_search'), 'loading');
  2621. 2327.  -     }
  2622. 2328.  -   });
  2623. 2329.  - },
  2624. 2330.  -
  2625. 2331.  - clearAddSearch: function(el, event) {
  2626. 2332.  -   var field = ge('tickets_add_title');
  2627. 2333.  -   setStyle(el, {opacity: .6});
  2628. 2334.  -   field.value = '';
  2629. 2335.  -   field.focus();
  2630. 2336.  -   this.updateAddSearch(event, field);
  2631. 2337.  - },
  2632. 2338.  -
  2633. 2339.  - toggleAddBugRow: function(id, el, evt) {
  2634. 2340.  -   if (!evt.target) {
  2635. 2341.  -     evt.target = evt.srcElement || document;
  2636. 2342.  -   }
  2637. 2343.  -   if (evt.target.tagName.toLowerCase() == 'a') return true;
  2638. 2344.  -   toggle('tickets_add_bug_short_text'+id, !isVisible('tickets_add_bug_short_text'+id));
  2639. 2345.  -   toggle('tickets_add_bug_full_text'+id, !isVisible('tickets_add_bug_full_text'+id));
  2640. 2346.  -   if (isVisible('tickets_add_bug_full_text'+id)) {
  2641. 2347.  -     addClass(el, 'detailed');
  2642. 2348.  -   } else {
  2643. 2349.  -     removeClass(el, 'detailed');
  2644. 2350.  -   }
  2645. 2351.  -   return false;
  2646. 2352.  - },
  2647. 2353.  -
  2648. 2354.  - toggleAddBugForm: function() {
  2649. 2355.  -   toggle('add_bug_search');
  2650. 2356.  -   toggle('add_bug_form');
  2651. 2357.  -   var cbox = curBox();
  2652. 2358.  -   if (isVisible(ge('add_bug_form'))) {
  2653. 2359.  -     ge('title').value = ge('tickets_add_title').value;
  2654. 2360.  -     cur.sectionEditFilter.updateInput()
  2655. 2361.  -     cbox.removeButtons();
  2656. 2362.  -     cbox.addButton(getLang('global_close'), cbox.hide, 'no');
  2657. 2363.  -     cbox.addButton(getLang('global_save'), Tickets.saveBug, 'yes');
  2658. 2364.  -     cbox.setControlsText('<a href="" onclick="return Tickets.toggleAddBugForm();">' + getLang('global_cancel') + '</a>');
  2659. 2365.  -   } else {
  2660. 2366.  -     cbox.removeButtons();
  2661. 2367.  -     cbox.addButton(getLang('global_close'), cbox.hide, 'yes');
  2662. 2368.  -     cbox.setControlsText('');
  2663. 2369.  -   }
  2664. 2370.  -   return false;
  2665. 2371.  - },
  2666. 2372.  -
  2667. 2373.  - saveBug: function() {
  2668. 2374.  -   if(!ge('title').value){
  2669. 2375.  -     notaBene('title');
  2670. 2376.  -     return false;
  2671. 2377.  -   }
  2672. 2378.  -   if(!cur.sectionEditFilter.val()){
  2673. 2379.  -     notaBene(cur.sectionEditFilter.selector);
  2674. 2380.  -     notaBene(cur.sectionEditFilter.input);
  2675. 2381.  -     return false;
  2676. 2382.  -   }
  2677. 2383.  -   if(!ge('desc').value){
  2678. 2384.  -     notaBene('desc');
  2679. 2385.  -     return false;
  2680. 2386.  -   }
  2681. 2387.  -   var doSave = function() {
  2682. 2388.  -     var query = {
  2683. 2389.  -       act: 'save_bug',
  2684. 2390.  -       hash: cur.hashes.save_bug_hash,
  2685. 2391.  -       ticket_id: cur.ticket_id,
  2686. 2392.  -       title: ge('title').value,
  2687. 2393.  -       desc: ge('desc').value,
  2688. 2394.  -       browser: ge('browser').value,
  2689. 2395.  -       sections: cur.sectionEditFilter.val()
  2690. 2396.  -     };
  2691. 2397.  -     if (nav.objLoc.act == 'all' && cur.checkedTickets) {
  2692. 2398.  -       var tickets = [];
  2693. 2399.  -       each(cur.checkedTickets, function(i, v) {tickets.push(i)});
  2694. 2400.  -       query.tickets = tickets;
  2695. 2401.  -     }
  2696. 2402.  -     if (ge('tickets_closed_autoanswer_addressing_m')) {
  2697. 2403.  -       query.addressing_m = ge('tickets_closed_autoanswer_addressing_m').value;
  2698. 2404.  -     }
  2699. 2405.  -     if (ge('tickets_closed_autoanswer_addressing_f')) {
  2700. 2406.  -       query.addressing_f = ge('tickets_closed_autoanswer_addressing_f').value;
  2701. 2407.  -     }
  2702. 2408.  -     query.no_autoanswer = cur.hideAutoanswer.val();
  2703. 2409.  -     query.answer_text = ge('tickets_send_autoanswer').value;
  2704. 2410.  -     var attachs = [], chosen = cur.ticketsAutoMedia.chosenMedias;
  2705. 2411.  -     if (chosen) {
  2706. 2412.  -       for (var i in chosen) {
  2707. 2413.  -         var att = chosen[i], type = att[0], value = att[1];
  2708. 2414.  -         if (type == 'photo' || type == 'doc') {
  2709. 2415.  -           attachs.push(type+','+value);
  2710. 2416.  -         }
  2711. 2417.  -       }
  2712. 2418.  -     }
  2713. 2419.  -     if (attachs.length) query.attachs = attachs;
  2714. 2420.  -     ajax.post(nav.objLoc[0], query, {
  2715. 2421.  -       cache: 1,
  2716. 2422.  -       onDone: function(content, script) {
  2717. 2423.  -         if (content) ge('tickets_content').innerHTML = content;
  2718. 2424.  -         if (script) eval(script);
  2719. 2425.  -       },
  2720. 2426.  -       onFail: function() {
  2721. 2427.  -         boxQueue.hideAll();
  2722. 2428.  -       }
  2723. 2429.  -     });
  2724. 2430.  -     return true;
  2725. 2431.  -   }
  2726. 2432.  -   var box = showFastBox({title: cur.lang['bind_title'], width: 430, bodyStyle: "line-height: 160%;"}, cur.lang['sure_bind'], cur.lang['do_bind'], function() {
  2727. 2433.  -       if (doSave() && curBox()) {
  2728. 2434.  -         curBox().content('<div style="height:100px; background: url(/images/progress7.gif) 50% 50% no-repeat;"></div>');
  2729. 2435.  -         curBox().setOptions({bodyStyle: 'padding: 0px;'});
  2730. 2436.  -       }
  2731. 2437.  -     }, getLang('global_cancel'));
  2732. 2438.  -   cur.ticketsAutoMedia = Tickets.initAddMedia(ge('tis_add_lnk_auto').firstChild, 'tis_preview_auto', cur.mediaTypes, {limit: 5, oneClick: cur.oneClickUpload, photoCallback: cur.addAutoReply, target: 'auto'});
  2733. 2439.  -   cur.hideAutoanswer = new Checkbox(ge('support_ignore_autoanswer'), {label: cur.lang.no_autoanswer, onChange: function() {
  2734. 2440.  -       toggle(ge('support_sure_bind'), this.val);
  2735. 2441.  -     }});
  2736. 2442.  -   return false;
  2737. 2443.  - },
  2738. 2444.  -
  2739. 2445.  - bindTicket: function(bid, hash) {
  2740. 2446.  -   var doBind = function(bid, hash) {
  2741. 2447.  -     var query = {act: 'bind_ticket', bug_id: bid, ticket_id: cur.ticket_id, hash: hash};
  2742. 2448.  -     var attachs = [], chosen = cur.ticketsAutoMedia.chosenMedias;
  2743. 2449.  -     if (chosen) {
  2744. 2450.  -       for (var i in chosen) {
  2745. 2451.  -         var att = chosen[i], type = att[0], value = att[1];
  2746. 2452.  -         if (type == 'photo' || type == 'doc') {
  2747. 2453.  -           attachs.push(type+','+value);
  2748. 2454.  -         }
  2749. 2455.  -       }
  2750. 2456.  -     }
  2751. 2457.  -     if (attachs) query.attachs = attachs;
  2752. 2458.  -     if (nav.objLoc.act == 'all' && cur.checkedTickets) {
  2753. 2459.  -       var tickets = [];
  2754. 2460.  -       each(cur.checkedTickets, function(i, v) {tickets.push(i)});
  2755. 2461.  -       query.tickets = tickets;
  2756. 2462.  -     }
  2757. 2463.  -     if (cur.hideAutoanswer && ge('tickets_send_autoanswer')) {
  2758. 2464.  -       query.no_autoanswer = cur.hideAutoanswer.val();
  2759. 2465.  -       query.answer_text = ge('tickets_send_autoanswer').value;
  2760. 2466.  -     }
  2761. 2467.  -     if (ge('tickets_closed_autoanswer_addressing_m')) {
  2762. 2468.  -       query.addressing_m = ge('tickets_closed_autoanswer_addressing_m').value;
  2763. 2469.  -     }
  2764. 2470.  -     if (ge('tickets_closed_autoanswer_addressing_f')) {
  2765. 2471.  -       query.addressing_f = ge('tickets_closed_autoanswer_addressing_f').value;
  2766. 2472.  -     }
  2767. 2473.  -     ajax.post(nav.objLoc[0], query, {
  2768. 2474.  -       cache: 1,
  2769. 2475.  -       onDone: function(content, script) {
  2770. 2476.  -         if (content) ge('tickets_content').innerHTML = content;
  2771. 2477.  -         if (script) eval(script);
  2772. 2478.  -       },
  2773. 2479.  -       onFail: function() {
  2774. 2480.  -         boxQueue.hideAll();
  2775. 2481.  -       }
  2776. 2482.  -     });
  2777. 2483.  -   }
  2778. 2484.  -   var box = showFastBox({title: cur.lang['bind_title'], width: 430, bodyStyle: "line-height: 160%;"}, cur.lang['sure_bind'], cur.lang['do_bind'], function() {
  2779. 2485.  -       doBind(bid, hash);
  2780. 2486.  -       box.hide();
  2781. 2487.  -       if (curBox()) curBox().content('<div style="height:100px; background: url(/images/progress7.gif) 50% 50% no-repeat;"></div>');
  2782. 2488.  -     }, getLang('global_cancel'));
  2783. 2489.  -   cur.ticketsAutoMedia = Tickets.initAddMedia(ge('tis_add_lnk_auto').firstChild, 'tis_preview_auto', cur.mediaTypes, {limit: 5, oneClick: cur.oneClickUpload, photoCallback: cur.addAutoReply, target: 'auto'});
  2784. 2490.  -   cur.hideAutoanswer = new Checkbox(ge('support_ignore_autoanswer'), {label: cur.lang.no_autoanswer, onChange: toggle.pbind(ge('support_sure_bind'), this.val)});
  2785. 2491.  -   return false;
  2786. 2492.  - },
  2787. 2493.  -
  2788. 2494.  - unbindTicket: function(bid, hash, el) {
  2789. 2495.  -   var doUnbind = function() {
  2790. 2496.  -     var box = cur.unbindBox;
  2791. 2497.  -     ajax.post(nav.objLoc[0], {act: 'unbind_ticket', ticket_id: cur.ticket_id, bug_id: bid, hash: hash}, {
  2792. 2498.  -       cache: 1,
  2793. 2499.  -       onDone: function() {
  2794. 2500.  -         slideUp(el, 200, re.pbind(el));
  2795. 2501.  -         box.hide();
  2796. 2502.  -       },
  2797. 2503.  -       showProgress: box.showProgress,
  2798. 2504.  -       hideProgress: box.hideProgress
  2799. 2505.  -     });
  2800. 2506.  -   }
  2801. 2507.  -   var enterUnbind = function(e) {
  2802. 2508.  -     if (e.keyCode == KEY.ENTER && __bq.count()) {
  2803. 2509.  -       doUnbind();
  2804. 2510.  -       return false;
  2805. 2511.  -     }
  2806. 2512.  -   }
  2807. 2513.  -   if (!browser.mobile) {
  2808. 2514.  -     addEvent(document, 'keydown', enterUnbind);
  2809. 2515.  -   }
  2810. 2516.  -   cur.unbindBox = showFastBox({title: getLang('support_delete_bind'), width: 430, onHide: function() {
  2811. 2517.  -     removeEvent(document, 'keydown', enterUnbind);
  2812. 2518.  -   }}, getLang('support_delete_text').replace('{title}', cur.bug_link || ''), getLang('support_delete'), doUnbind, getLang('global_cancel'));
  2813. 2519.  - },
  2814. 2520.  -
  2815. 2521.  - _animDelX: function(el, opacity, set_active) {
  2816. 2522.  -   if (!el) return;
  2817. 2523.  -   if (set_active !== undefined) {
  2818. 2524.  -     el.active = set_active;
  2819. 2525.  -   } else if (el.active) {
  2820. 2526.  -     return;
  2821. 2527.  -   }
  2822. 2528.  -   animate(el, {opacity: opacity}, 200);
  2823. 2529.  - },
  2824. 2530.  -
  2825. 2531.  - rowActive: function(el, tt) {
  2826. 2532.  -   this._animDelX(el, 1, 1);
  2827. 2533.  -   if (tt) showTooltip(el, {text: tt, showdt: 200});
  2828. 2534.  - },
  2829. 2535.  - rowInactive: function(el) {
  2830. 2536.  -   this._animDelX(el, 0.5, 0);
  2831. 2537.  - },
  2832. 2538.  -
  2833. 2539.  - switchModersSubTab: function(el, id, hash, type, evt) {
  2834. 2540.  -   if (hasClass(el, 'active')) return false;
  2835. 2541.  -   each(geByClass('tickets_subtab1', el.parentNode), function(i, v) {
  2836. 2542.  -     removeClass(v, 'active');
  2837. 2543.  -   });
  2838. 2544.  -   addClass(el, 'active');
  2839. 2545.  -   return this.updateModerStats(id, hash, type, 0);
  2840. 2546.  - },
  2841. 2547.  -
  2842. 2548.  - showCommentReplies: function(reply_id) {
  2843. 2549.  -   showBox(nav.objLoc[0], {act: 'replies_box', reply_id: reply_id}, { params: {width: '627px', hideButtons: true, bodyStyle: 'padding: 0px; border: 0px;'}});
  2844. 2550.  -   return false;
  2845. 2551.  - },
  2846. 2552.  -
  2847. 2553.  - updateModerStats: function(id, hash, type, offset) {
  2848. 2554.  -   if (offset < 0) return false;
  2849. 2555.  -   ge('support_moders_period_stats'+id).innerHTML = '<div class="tickets_detailed_loading"><div>';
  2850. 2556.  -   ajax.post(nav.objLoc[0], {act: 'detailed_stats', mid: id, type: type, offset: offset, hash: hash}, {
  2851. 2557.  -     cache: 1,
  2852. 2558.  -     onDone: function(rows, header) {
  2853. 2559.  -       ge('support_moders_period_stats'+id).innerHTML = rows;
  2854. 2560.  -       ge('moder_subtabs'+id).innerHTML = header;
  2855. 2561.  -     },
  2856. 2562.  -     onFail: function() {
  2857. 2563.  -       ge('support_moders_period_stats'+id).innerHTML = '';
  2858. 2564.  -     }
  2859. 2565.  -   });
  2860. 2566.  -   return false;
  2861. 2567.  - },
  2862. 2568.  -
  2863. 2569.  - saveDraft: function (ticket_id, evType) {
  2864. 2570.  -   var txt = ge('tickets_reply');
  2865. 2571.  -   if (browser.mobile || !txt || txt.disabled || !cur.canUseDrafts) return;
  2866. 2572.  -
  2867. 2573.  -   var message = val(txt),
  2868. 2574.  -       data = {txt: trim(message), medias: []},
  2869. 2575.  -       m = (cur.ticketsNewMedia || {}).chosenMedias || [];
  2870. 2576.  -
  2871. 2577.  -   for (var i = 0, l = m.length; i < l; ++i) {
  2872. 2578.  -     if (m[i]) data.medias.push([m[i][0], m[i][1]]);
  2873. 2579.  -   }
  2874. 2580.  -   if (!data.medias.length && !data.txt.length) {
  2875. 2581.  -     data = false;
  2876. 2582.  -   }
  2877. 2583.  -   ls.set('helpdesk_draft' + vk.id + '_' + ticket_id, data);
  2878. 2584.  - },
  2879. 2585.  -
  2880. 2586.  - restoreDraft: function(ticket_id) {
  2881. 2587.  -   var txt = ge('tickets_reply'),
  2882. 2588.  -       draft = ls.get('helpdesk_draft' + vk.id + '_' + ticket_id) || {},
  2883. 2589.  -       draftv = draft.txt || '';
  2884. 2590.  -   if (browser.mobile || !txt || txt.disabled || !cur.canUseDrafts || !draftv && !draft.medias || cur.ticket_id != ticket_id) return;
  2885. 2591.  -
  2886. 2592.  -   if (val(txt).length < draftv.length) {
  2887. 2593.  -     val(txt, draftv);
  2888. 2594.  -     txt.autosize.update();
  2889. 2595.  -   }
  2890. 2596.  -   if ((draft.medias || []).length && !((cur.ticketsNewMedia || {}).chosenMedias || []).length) {
  2891. 2597.  -     var m = [];
  2892. 2598.  -     for (var i in draft.medias) {
  2893. 2599.  -       if (!draft.medias[i]) continue;
  2894. 2600.  -       m.push(draft.medias[i].slice(0, 2).join(','));
  2895. 2601.  -     }
  2896. 2602.  -     ajax.post(nav.objLoc[0], {act: 'draft_medias', attachs: m}, {onDone: function(resp) {
  2897. 2603.  -       if (!(resp || []).length) return;
  2898. 2604.  -       each(resp, function() {
  2899. 2605.  -         cur.ticketsNewMedia.chooseMedia.apply(cur.ticketsNewMedia, this);
  2900. 2606.  -       });
  2901. 2607.  -     }});
  2902. 2608.  -   }
  2903. 2609.  - },
  2904. 2610.  -
  2905. 2611.  - _eof: 1};try{stManager.done('tickets.js');}catch(e){}
  2906. ------
  2907. Файл - tickets.css (Старый размер - 36048 | Новый - 0):
  2908. 0.  - #tickets_css {
  2909. 1.  -   display: none;
  2910. 2.  - }
  2911. 3.  -
  2912. 4.  - #new_ticket {
  2913. 5.  -   background: #F7F7F7;
  2914. 6.  - }
  2915. 7.  - .tickets_new_wrap {
  2916. 8.  -   width: 450px;
  2917. 9.  -   margin: 0px 63px;
  2918. 10.  -   padding: 25px;
  2919. 11.  - }
  2920. 12.  - #tickets_detailed_form {
  2921. 13.  -   display: none;
  2922. 14.  -   padding-top: 25px;
  2923. 15.  - }
  2924. 16.  - .firefox #tickets_detailed_form.pay {
  2925. 17.  -   margin-bottom: 40px;
  2926. 18.  - }
  2927. 19.  - #tickets_detailed_form.dmca {
  2928. 20.  -   display: block;
  2929. 21.  -   padding-top: 0px;
  2930. 22.  - }
  2931. 23.  - .tickets_new_title .input_back_content {
  2932. 24.  -   padding: 4px 2px;
  2933. 25.  -   padding: 4px 1px\9;
  2934. 26.  - }
  2935. 27.  - body.firefox .tickets_new_title .input_back_content {
  2936. 28.  -   padding: 3px 2px;
  2937. 29.  - }
  2938. 30.  - #tickets_detailed_form .input_back_content {
  2939. 31.  -   padding: 0 2px;
  2940. 32.  -   padding: 0 1px\9;
  2941. 33.  - }
  2942. 34.  - @media screen and (-webkit-min-device-pixel-ratio:0) {
  2943. 35.  -   #tickets_detailed_form .input_back_content {
  2944. 36.  -     padding: 0 1px;
  2945. 37.  -   }
  2946. 38.  - }
  2947. 39.  - .tickets_new_controls {
  2948. 40.  -   margin-top: 5px;
  2949. 41.  - }
  2950. 42.  - h4.tickets_template {
  2951. 43.  -   border-bottom: none;
  2952. 44.  -   margin: 0px 0 4px;
  2953. 45.  -   padding: 0 0px 4px;
  2954. 46.  -   font-size: 1.09em;
  2955. 47.  -   line-height: 1.27em;
  2956. 48.  - }
  2957. 49.  - h4.tickets_template.favs {
  2958. 50.  -   margin-top: 20px;
  2959. 51.  - }
  2960. 52.  - h4.tickets_template.my {
  2961. 53.  -   margin-top: 5px;
  2962. 54.  - }
  2963. 55.  - #tickets_text,
  2964. 56.  - #tickets_links {
  2965. 57.  -   width: 436px;
  2966. 58.  -   height: 94px;
  2967. 59.  -   margin: 0 0 10px;
  2968. 60.  -   vertical-align: top;
  2969. 61.  -   padding: 5px 5px 5px 7px;
  2970. 62.  - }
  2971. 63.  - #tickets_list {
  2972. 64.  -   padding: 0 15px;
  2973. 65.  - }
  2974. 66.  - #tickets_list .msg,
  2975. 67.  - #tickets_list .error {
  2976. 68.  -   margin-top: 15px;
  2977. 69.  - }
  2978. 70.  - #tickets_faq_msg {
  2979. 71.  -   background: #F7F7F7;
  2980. 72.  -   padding: 15px 0 0;
  2981. 73.  -   display: none;
  2982. 74.  - }
  2983. 75.  - #tickets_faq_msg .msg,
  2984. 76.  - #tickets_faq_msg .error {
  2985. 77.  -   margin: 0 15px;
  2986. 78.  - }
  2987. 79.  - #tickets_content #summary {
  2988. 80.  -   border-bottom: 1px solid #DAE1E8;
  2989. 81.  -   color: #47688D;
  2990. 82.  -   padding: 15px 10px 3px;
  2991. 83.  - }
  2992. 84.  - #tickets_content #tickets_bottom_pages {
  2993. 85.  -   border-top: 1px solid #DAE1E8;
  2994. 86.  -   color: #47688D;
  2995. 87.  -   padding: 0 10px 10px;
  2996. 88.  - }
  2997. 89.  - #tickets_content #similar_summary {
  2998. 90.  -   border-top: 1px solid #DAE1E8;
  2999. 91.  -   border-bottom: 1px solid #DAE1E8;
  3000. 92.  -   color: #47688D;
  3001. 93.  -   padding: 15px 10px 3px;
  3002. 94.  - }
  3003. 95.  - .tickets_summary {
  3004. 96.  -   font-weight: bold;
  3005. 97.  - }
  3006. 98.  - .tickets_summary_extra {
  3007. 99.  -   margin: -3px 0 -4px;
  3008. 100.  - }
  3009. 101.  - .tickets_pages_loading {
  3010. 102.  -   padding: 3px 5px;
  3011. 103.  - }
  3012. 104.  - #pages_loading_top, #pages_loading_bottom {
  3013. 105.  -   display: none;
  3014. 106.  - }
  3015. 107.  - #tickets_progress {
  3016. 108.  -   display: none;
  3017. 109.  -   padding: 6px 0px 0px 0px;
  3018. 110.  - }
  3019. 111.  - .tickets_title_label {
  3020. 112.  -   margin-bottom: 11px;
  3021. 113.  -   line-height: 160%;
  3022. 114.  - }
  3023. 115.  - #tickets_title {
  3024. 116.  -   padding: 4px 50px 5px 7px;
  3025. 117.  -   width: 391px;
  3026. 118.  -   height: 20px;
  3027. 119.  - }
  3028. 120.  - .tickets_browser {
  3029. 121.  -   cursor: pointer;
  3030. 122.  -   font-weight: normal;
  3031. 123.  -   font-size: 1em;
  3032. 124.  - }
  3033. 125.  -
  3034. 126.  - #tickets_reply_rows {
  3035. 127.  -   padding: 5px 15px;
  3036. 128.  - }
  3037. 129.  - #tickets_reply_rows .msg,
  3038. 130.  - #tickets_reply_rows .error {
  3039. 131.  -   margin-top: 10px;
  3040. 132.  -   margin-bottom: 5px;
  3041. 133.  -   line-height: 160%;
  3042. 134.  - }
  3043. 135.  - .tickets_reply_row {
  3044. 136.  -   padding: 10px 0;
  3045. 137.  -   border-top: 1px solid #DAE1E8;
  3046. 138.  -   position: relative;
  3047. 139.  - }
  3048. 140.  - .tickets_reply_row.first {
  3049. 141.  -   border-top: none;
  3050. 142.  - }
  3051. 143.  - .tickets_image {
  3052. 144.  -   width: 65px;
  3053. 145.  - }
  3054. 146.  - .tickets_image img {
  3055. 147.  -   height: 50px;
  3056. 148.  - }
  3057. 149.  - .tickets_reply_content {
  3058. 150.  -   width: 530px;
  3059. 151.  - }
  3060. 152.  - .tickets_reply_title {
  3061. 153.  -   padding-bottom: 3px;
  3062. 154.  -   overflow: hidden;
  3063. 155.  - }
  3064. 156.  - .tickets_author {
  3065. 157.  -   font-weight: bold;
  3066. 158.  -   color: #45688E;
  3067. 159.  -   line-height: 1.27em;
  3068. 160.  - }
  3069. 161.  - .tickets_reply_text {
  3070. 162.  -   width: 530px;
  3071. 163.  -   word-wrap: break-word;
  3072. 164.  -   padding-bottom: 4px;
  3073. 165.  -   line-height: 1.54em;
  3074. 166.  - }
  3075. 167.  - .troll .tickets_reply_text {
  3076. 168.  -   width: 480px;
  3077. 169.  - }
  3078. 170.  - .tickets_troll_img {
  3079. 171.  -   position: absolute;
  3080. 172.  -   top: 10px;
  3081. 173.  -   right: 0px;
  3082. 174.  - }
  3083. 175.  - .tickets_reply_actions,
  3084. 176.  - .tickets_reply_actions a.date {
  3085. 177.  -   color: #999999;
  3086. 178.  - }
  3087. 179.  - #tickets_post_field_wrap {
  3088. 180.  -   width: 627px;
  3089. 181.  -   padding: 0;
  3090. 182.  - }
  3091. 183.  - #tickets_post_field {
  3092. 184.  -   padding: 15px 5px 10px 15px;
  3093. 185.  -   background: #F7F7F7;
  3094. 186.  -   border-top: 1px solid #DAE1E8;
  3095. 187.  - }
  3096. 188.  - #tickets_reply {
  3097. 189.  -   width: 524px;
  3098. 190.  -   height: 42px;
  3099. 191.  -   vertical-align: top;
  3100. 192.  -   margin-bottom: 5px;
  3101. 193.  - }
  3102. 194.  - #tickets_reply.disabled {
  3103. 195.  -   color: #555;
  3104. 196.  - }
  3105. 197.  - #tickets_reply_warn,
  3106. 198.  - #tickets_links_warn,
  3107. 199.  - #tickets_text_warn {
  3108. 200.  -   display: none;
  3109. 201.  -   color: #777;
  3110. 202.  - }
  3111. 203.  - #tickets_links_warn,
  3112. 204.  - #tickets_text_warn {
  3113. 205.  -   margin-top: 3px;
  3114. 206.  - }
  3115. 207.  - #tickets_reply_warn {
  3116. 208.  -   margin-top: 6px;
  3117. 209.  - }
  3118. 210.  - #tickets_get_new {
  3119. 211.  -   padding: 0 0 10px;
  3120. 212.  - }
  3121. 213.  -
  3122. 214.  - #tickets_get_new div.button_blue {
  3123. 215.  -   margin: auto;
  3124. 216.  - }
  3125. 217.  -
  3126. 218.  - #tickets_name {
  3127. 219.  -   color: #45688E;
  3128. 220.  -   background: #F7F7F7;
  3129. 221.  -   border-bottom: 1px solid #DAE1E8;
  3130. 222.  -   padding: 10px 15px 9px;
  3131. 223.  - }
  3132. 224.  - #tickets_name .title {
  3133. 225.  -   font-weight: bold;
  3134. 226.  -   font-size: 1.09em;
  3135. 227.  -   overflow: hidden;
  3136. 228.  - }
  3137. 229.  - #tickets_flood_msg {
  3138. 230.  -   padding-top: 4px;
  3139. 231.  - }
  3140. 232.  - #tickets_name .info {
  3141. 233.  -   padding-top: 6px;
  3142. 234.  -   color: #000;
  3143. 235.  - }
  3144. 236.  - #tickets_m_list {
  3145. 237.  -   padding: 10px 10px 0;
  3146. 238.  - }
  3147. 239.  - .tickets_m_table {
  3148. 240.  -   border: 1px solid #D2D8DF;
  3149. 241.  -   width: 100%;
  3150. 242.  -   margin-bottom: 10px;
  3151. 243.  - }
  3152. 244.  - .tickets_m_table .name.cell {
  3153. 245.  -   display: block;
  3154. 246.  - }
  3155. 247.  - .tickets_m_table .h_cell {
  3156. 248.  -   border-left: 1px solid #ECF0F5;
  3157. 249.  -   border-right: 1px solid #D2D8DF;
  3158. 250.  -   border-bottom: 1px solid #D2D8DF;
  3159. 251.  -   background: #E0E6EC;
  3160. 252.  -   font-weight: bold;
  3161. 253.  -   color: #2F5879;
  3162. 254.  -   line-height: 1.09em;
  3163. 255.  -   padding: 10px;
  3164. 256.  - }
  3165. 257.  - .tickets_m_table .h_cell.id {
  3166. 258.  -   border-left: none;
  3167. 259.  - }
  3168. 260.  - .tickets_m_table .h_cell.time {
  3169. 261.  -   border-right: none;
  3170. 262.  - }
  3171. 263.  - .tickets_m_table .cell {
  3172. 264.  -   line-height: 1.09em;
  3173. 265.  -   padding: 10px;
  3174. 266.  - }
  3175. 267.  - .tickets_m_table .cell_block {
  3176. 268.  -   display: block;
  3177. 269.  -   width: 400px !important;
  3178. 270.  - }
  3179. 271.  - .tickets_m_table .id {
  3180. 272.  -   width: 50px;
  3181. 273.  -   font-weight: bold;
  3182. 274.  -   padding-right: 0;
  3183. 275.  -   color: #2B587A;
  3184. 276.  - }
  3185. 277.  - .tickets_m_table .name {
  3186. 278.  -   width: 380px;
  3187. 279.  -   overflow: hidden;
  3188. 280.  -   -o-text-overflow: ellipsis;
  3189. 281.  -   text-overflow: ellipsis;
  3190. 282.  -   font-weight: bold;
  3191. 283.  - }
  3192. 284.  - .tickets_m_table .even {
  3193. 285.  -   background: #EFF2F4;
  3194. 286.  - }
  3195. 287.  - .tickets_m_actions {
  3196. 288.  -   line-height: 2.09em;
  3197. 289.  -   margin: 1px 0;
  3198. 290.  - }
  3199. 291.  - .tickets_important {
  3200. 292.  -   font-weight: bold;
  3201. 293.  - }
  3202. 294.  - .tickets_edit_reply {
  3203. 295.  -   padding: 0 2px;
  3204. 296.  -   line-height: 1.54em;
  3205. 297.  -   outline: none;
  3206. 298.  - }
  3207. 299.  - .tickets_done {
  3208. 300.  -   padding-left: 65px;
  3209. 301.  - }
  3210. 302.  -
  3211. 303.  - #tickets_templates {
  3212. 304.  -   padding: 20px 0 10px;
  3213. 305.  -   width: 524px;
  3214. 306.  - }
  3215. 307.  - #tickets_pass_to {
  3216. 308.  -   padding: 10px 0;
  3217. 309.  - }
  3218. 310.  - #tickets_templates .template_actions,
  3219. 311.  - #tickets_templates .template_actions a {
  3220. 312.  -   color: #777777;
  3221. 313.  - }
  3222. 314.  - .tickets_got_answer {
  3223. 315.  -   color: #777777;
  3224. 316.  - }
  3225. 317.  - #tickets_templates .template {
  3226. 318.  -   margin: 10px 15px 0 0;
  3227. 319.  - }
  3228. 320.  - #tickets_pt_links {
  3229. 321.  -   width: 532px;
  3230. 322.  - }
  3231. 323.  - .tickets_pt_links {
  3232. 324.  -   width: 602px;
  3233. 325.  -   padding-top: 10px;
  3234. 326.  - }
  3235. 327.  - .tickets_pt_link {
  3236. 328.  -   margin: 10px 15px 0 0;
  3237. 329.  - }
  3238. 330.  -
  3239. 331.  - .template_wrap {
  3240. 332.  -   display: table-cell;
  3241. 333.  - }
  3242. 334.  - .template_wrap div {
  3243. 335.  -   display: inline-block;
  3244. 336.  -   vertical-align: baseline;
  3245. 337.  - }
  3246. 338.  - #template_title,
  3247. 339.  - #template_title a,
  3248. 340.  - #tickets_pt_title {
  3249. 341.  -   font-weight: bold;
  3250. 342.  -   font-size: 1.09em;
  3251. 343.  -   color: #45688E;
  3252. 344.  - }
  3253. 345.  - .tickets_pt_title {
  3254. 346.  -   font-size: 1.2em;
  3255. 347.  -   color: #45688E;
  3256. 348.  -   font-weight: bold;
  3257. 349.  - }
  3258. 350.  - #edit_template {
  3259. 351.  -   display: none;
  3260. 352.  - }
  3261. 353.  -
  3262. 354.  - #add_template_title {
  3263. 355.  -   width: 391px;
  3264. 356.  -   margin-top: 3px;
  3265. 357.  -   margin-bottom: 20px;
  3266. 358.  - }
  3267. 359.  - #add_template_text {
  3268. 360.  -   width: 391px;
  3269. 361.  -   height: 94px;
  3270. 362.  -   margin-bottom: 5px;
  3271. 363.  - }
  3272. 364.  -
  3273. 365.  - .tu_last {
  3274. 366.  -   width: 195px;
  3275. 367.  -   *width: 205px;
  3276. 368.  -   overflow: hidden;
  3277. 369.  - }
  3278. 370.  - .tu_last:hover {
  3279. 371.  -   text-decoration: none;
  3280. 372.  -   background: #EDF1F5;
  3281. 373.  - }
  3282. 374.  - .tu_thumb {
  3283. 375.  -   margin: 8px;
  3284. 376.  -   width: 32px;
  3285. 377.  -   height: 32px;
  3286. 378.  -   overflow: hidden;
  3287. 379.  - }
  3288. 380.  - .tu_img {
  3289. 381.  -   width: 32px;
  3290. 382.  - }
  3291. 383.  - .tu_mem {
  3292. 384.  -   color: #2B587A;
  3293. 385.  -   padding: 9px 2px 0px;
  3294. 386.  -   width: 138px;
  3295. 387.  -   overflow: hidden;
  3296. 388.  - }
  3297. 389.  - .tu_date {
  3298. 390.  -   color: #67829E;
  3299. 391.  -   padding: 3px 2px 0px;
  3300. 392.  -   width: 138px;
  3301. 393.  -   overflow: hidden;
  3302. 394.  - }
  3303. 395.  - .tu_row {
  3304. 396.  -   padding: 10px 0px;
  3305. 397.  -   border-bottom: 1px solid #DAE1E8;
  3306. 398.  - }
  3307. 399.  - .tu_row.last {
  3308. 400.  -   border-bottom: none;
  3309. 401.  - }
  3310. 402.  - .tu_row_title {
  3311. 403.  -   color: #45688E;
  3312. 404.  -   font-weight: bold;
  3313. 405.  -   padding: 0px 0px 4px;
  3314. 406.  -   font-size: 1.09em;
  3315. 407.  -   line-height: 1.27em;
  3316. 408.  - }
  3317. 409.  - .tu_info {
  3318. 410.  -   padding: 7px 15px 0px 6px;
  3319. 411.  -   width: 375px;
  3320. 412.  -   *width: 365px;
  3321. 413.  -   overflow: hidden;
  3322. 414.  - }
  3323. 415.  -
  3324. 416.  - .tickets_side_tt .side_sh {
  3325. 417.  -   display: table-cell !important;
  3326. 418.  - }
  3327. 419.  - .tickets_side_tt .hint_wrap {
  3328. 420.  -   width: 210px;
  3329. 421.  -   /* height: 110px;
  3330. 422.  -   padding: 10px; */
  3331. 423.  -   padding: 8px 5px 8px;
  3332. 424.  - }
  3333. 425.  - .tickets_side_tt.title .hint_wrap {
  3334. 426.  -   width: 190px;
  3335. 427.  -   color: #000000;
  3336. 428.  -   line-height: 160%;
  3337. 429.  - }
  3338. 430.  - .tickets_side_tt.text .hint_wrap {
  3339. 431.  -   width: 230px;
  3340. 432.  -   color: #000000;
  3341. 433.  -   line-height: 160%;
  3342. 434.  - }
  3343. 435.  - .tickets_side_tt.mobile .hint_wrap {
  3344. 436.  -   width: 203px;
  3345. 437.  -   color: #000000;
  3346. 438.  -   line-height: 160%;
  3347. 439.  - }
  3348. 440.  - .tickets_side_tt.time .hint_wrap {
  3349. 441.  -   width: 140px;
  3350. 442.  -   color: #000000;
  3351. 443.  -   line-height: 160%;
  3352. 444.  - }
  3353. 445.  - .tickets_side_tt.questions .tt_text {
  3354. 446.  -   padding: 0px;
  3355. 447.  - }
  3356. 448.  - .tickets_side_tt.questions .hint_wrap {
  3357. 449.  -   padding: 0px;
  3358. 450.  -   width: 250px;
  3359. 451.  - }
  3360. 452.  - .tickets_tt_list {
  3361. 453.  -   list-style: url(/images/bullet.gif) outside;
  3362. 454.  -   padding: 0 0 10px 15px;
  3363. 455.  -   margin: 0;
  3364. 456.  -   line-height: 160%;
  3365. 457.  -   max-width: 225px;
  3366. 458.  -   color: #000000;
  3367. 459.  - }
  3368. 460.  - .tickets_side_tt .hint_title {
  3369. 461.  -   color: #2A5779;
  3370. 462.  -   font-weight: bold;
  3371. 463.  -   padding-bottom: 2px;
  3372. 464.  - }
  3373. 465.  - .tickets_side_tt .tail_wrap {
  3374. 466.  -   position: absolute;
  3375. 467.  -   top: 107px;
  3376. 468.  -   left: 233px;
  3377. 469.  -   z-index: 2001;
  3378. 470.  - }
  3379. 471.  - .tickets_side_tt.title .tail_wrap {
  3380. 472.  -   top: 23px;
  3381. 473.  -   left: 213px;
  3382. 474.  - }
  3383. 475.  - .tickets_side_tt.text .tail_wrap {
  3384. 476.  -   top: 53px;
  3385. 477.  -   left: 253px;
  3386. 478.  - }
  3387. 479.  - .tickets_side_tt.mobile .tail_wrap,
  3388. 480.  - .tickets_side_tt.time .tail_wrap {
  3389. 481.  -   top: 15px;
  3390. 482.  -   left: -5px;
  3391. 483.  - }
  3392. 484.  - .tickets_side_tt.info .tail_wrap {
  3393. 485.  -   top: 17px;
  3394. 486.  - }
  3395. 487.  - .tickets_side_tt.top .tail_wrap {
  3396. 488.  -   top: auto;
  3397. 489.  -   bottom: -5px;
  3398. 490.  -   left: 17px;
  3399. 491.  - }
  3400. 492.  - .tickets_side_tt.top .tail {
  3401. 493.  -   background-position: -3px -5px;
  3402. 494.  -   width: 11px;
  3403. 495.  -   height: 8px;
  3404. 496.  - }
  3405. 497.  - .tickets_side_tt.right .tail_wrap {
  3406. 498.  -   top: 25px;
  3407. 499.  -   bottom: auto;
  3408. 500.  -   left: -5px;
  3409. 501.  - }
  3410. 502.  - .tickets_side_tt.right .tail {
  3411. 503.  -   background-position: 0px 0px;
  3412. 504.  -   width: 8px;
  3413. 505.  -   height: 11px;
  3414. 506.  - }
  3415. 507.  - .tickets_side_tt.questions .tail_wrap {
  3416. 508.  -   top: 17px;
  3417. 509.  -   left: 253px;
  3418. 510.  - }
  3419. 511.  - .tickets_side_tt .tail {
  3420. 512.  -   width: 8px;
  3421. 513.  -   height: 11px;
  3422. 514.  -   background: url(/images/ddtooltip.png) -8px 0 no-repeat;
  3423. 515.  - }
  3424. 516.  - .tickets_side_tt.mobile .tail,
  3425. 517.  - .tickets_side_tt.time .tail {
  3426. 518.  -   background: url(/images/ddtooltip.png) 0 0 no-repeat;
  3427. 519.  - }
  3428. 520.  - .tickets_side_tt #hint_opts .radiobtn {
  3429. 521.  -   color: #000;
  3430. 522.  -   padding-top: 10px;
  3431. 523.  -   padding-bottom: 5px;
  3432. 524.  -   line-height: 160%;
  3433. 525.  - }
  3434. 526.  - .tickets_side_tt #hint_opts .radiobtn div {
  3435. 527.  -   margin: 2px 5px 6px 0;
  3436. 528.  - }
  3437. 529.  - .tickets_warning {
  3438. 530.  -   margin-bottom: 10px;
  3439. 531.  -   line-height: 160%;
  3440. 532.  - }
  3441. 533.  - .tickets_no_new {
  3442. 534.  -   margin: 6px 0 0 10px;
  3443. 535.  -   color: #777777;
  3444. 536.  - }
  3445. 537.  - .tickets_rated {
  3446. 538.  -   color: #777777;
  3447. 539.  - }
  3448. 540.  - #new_link,
  3449. 541.  - #stats_link {
  3450. 542.  -   padding: 5px 0 3px;
  3451. 543.  - }
  3452. 544.  - .no_tickets_found {
  3453. 545.  -   color: #777;
  3454. 546.  -   font-size: 1.09em;
  3455. 547.  -   line-height: 200%;
  3456. 548.  -   margin: 20px 20px 15px;
  3457. 549.  -   padding: 100px 0;
  3458. 550.  -   text-align: center;
  3459. 551.  - }
  3460. 552.  - .tickets_old_link {
  3461. 553.  -   border-top: 1px solid #DAE1E8;
  3462. 554.  -   line-height: 140%;
  3463. 555.  -   padding: 10px;
  3464. 556.  -   background: white;
  3465. 557.  -   text-align: center;
  3466. 558.  - }
  3467. 559.  - .tickets_old_link.dark {
  3468. 560.  -   background: #F7F7F7;
  3469. 561.  - }
  3470. 562.  -
  3471. 563.  - .tr_attachs {
  3472. 564.  -   margin: 0px -5px;
  3473. 565.  -   padding: 5px 0px;
  3474. 566.  - }
  3475. 567.  - .tr_attach {
  3476. 568.  -   margin: 0px 5px 5px;
  3477. 569.  -   height: 57px;
  3478. 570.  -   overflow: hidden;
  3479. 571.  - }
  3480. 572.  - .tr_att_img,
  3481. 573.  - #tickets_content .page_preview_doc_photo,
  3482. 574.  - #tickets_content .page_preview_doc_photo img,
  3483. 575.  - .tickets_preview_wrap .page_preview_doc_photo,
  3484. 576.  - .tickets_preview_wrap .page_preview_doc_photo img {
  3485. 577.  -   width: 75px;
  3486. 578.  -   display: block;
  3487. 579.  - }
  3488. 580.  - #tickets_content .page_pics_preview .page_preview_doc_wrap,
  3489. 581.  - .tickets_preview_wrap .page_pics_preview .page_preview_doc_wrap {
  3490. 582.  -   height: 57px;
  3491. 583.  - }
  3492. 584.  - .tr_doc_photo_hint,
  3493. 585.  - #tickets_content .page_preview_doc_photo_hint,
  3494. 586.  - .tickets_preview_wrap .page_preview_doc_photo_hint {
  3495. 587.  -   width: 65px;
  3496. 588.  -   text-align: center;
  3497. 589.  -   color: white;
  3498. 590.  -   background: black;
  3499. 591.  -   padding: 2px 10px;
  3500. 592.  -   font-size: 0.81em;
  3501. 593.  -   margin-bottom: 5px;
  3502. 594.  -   background: rgba(0, 0, 0, 0.5);
  3503. 595.  -   position: absolute;
  3504. 596.  -   margin-top: -16px;
  3505. 597.  -   height: 14px;
  3506. 598.  -   padding: 1px 5px;
  3507. 599.  -   font-size: 0.81em;
  3508. 600.  - }
  3509. 601.  - .tr_video_hint {
  3510. 602.  -   width: 75px;
  3511. 603.  -   position: absolute;
  3512. 604.  -   margin-bottom: 5px;
  3513. 605.  -   margin-top: -16px;
  3514. 606.  - }
  3515. 607.  - .tr_video_hint .label {
  3516. 608.  -   text-align: center;
  3517. 609.  -   color: white;
  3518. 610.  -   background: black;
  3519. 611.  -   font-size: 0.81em;
  3520. 612.  -   background: rgba(0, 0, 0, 0.5);
  3521. 613.  -   height: 14px;
  3522. 614.  -   padding: 1px 5px;
  3523. 615.  - }
  3524. 616.  - .tr_attachs .media_desc {
  3525. 617.  -   padding: 8px 0px 0px 4px;
  3526. 618.  -   clear: both;
  3527. 619.  - }
  3528. 620.  - .tr_attachs .media_row {
  3529. 621.  -   padding: 0px 0px 4px 4px;
  3530. 622.  -   clear: both;
  3531. 623.  - }
  3532. 624.  - .tr_attachs .lnk {
  3533. 625.  -   color: #777;
  3534. 626.  -   cursor: pointer;
  3535. 627.  - }
  3536. 628.  - .tr_attachs .media_desc b.doc {
  3537. 629.  -   background: url(/images/icons/mono_iconset.gif?8) no-repeat 0 -280px;
  3538. 630.  -   width: 15px;
  3539. 631.  -   height: 11px;
  3540. 632.  -   margin-top: 2px;
  3541. 633.  - }
  3542. 634.  - .tr_attachs .media_desc .a {
  3543. 635.  -   color: #2B587A;
  3544. 636.  - }
  3545. 637.  - .tr_attachs .media_desc .lnk:hover {
  3546. 638.  -   text-decoration: none;
  3547. 639.  - }
  3548. 640.  - .tr_attachs .media_desc .lnk:hover .a {
  3549. 641.  -   text-decoration: underline;
  3550. 642.  - }
  3551. 643.  -
  3552. 644.  - .tis_box {
  3553. 645.  -   position: relative;
  3554. 646.  -   padding: 14px 16px;
  3555. 647.  - }
  3556. 648.  - .tis_box .dropbox_label {
  3557. 649.  -   line-height: 3.27em;
  3558. 650.  - }
  3559. 651.  - #tis_add_data {
  3560. 652.  -   margin: 15px auto;
  3561. 653.  -   text-align: center;
  3562. 654.  -   height: 25px;
  3563. 655.  - }
  3564. 656.  - #tis_cancel_lnk {
  3565. 657.  -   margin-left: 10px;
  3566. 658.  -   display: block;
  3567. 659.  -   padding: 6px 14px 0px;
  3568. 660.  -   font-weight: normal;
  3569. 661.  -   height: 19px;
  3570. 662.  -   text-align: center;
  3571. 663.  - }
  3572. 664.  - #tis_cancel_lnk:hover {
  3573. 665.  -   background: #E1E7ED;
  3574. 666.  -   text-decoration: none;
  3575. 667.  - }
  3576. 668.  - #tis_add_lnk,
  3577. 669.  - #tis_add_lnk_edit {
  3578. 670.  -   margin-top: 6px;
  3579. 671.  - }
  3580. 672.  - #tis_preview, #tis_preview_edit, #tis_preview_template, #tis_preview_auto {
  3581. 673.  -   position: relative;
  3582. 674.  - }
  3583. 675.  - #tis_prg_preview_edit.template {
  3584. 676.  -   margin-top: 0px;
  3585. 677.  -   margin-left: 0px;
  3586. 678.  - }
  3587. 679.  - .tis_preview {
  3588. 680.  -   height: 57px;
  3589. 681.  -   overflow: hidden;
  3590. 682.  - }
  3591. 683.  - .tis_photo {
  3592. 684.  -   cursor: pointer;
  3593. 685.  - }
  3594. 686.  - .tis_x {
  3595. 687.  -   cursor: pointer;
  3596. 688.  -   margin: 0px -15px;
  3597. 689.  -   background: url(/images/im_attach_cross.png) no-repeat 0 0;
  3598. 690.  -   width: 15px;
  3599. 691.  -   height: 15px;
  3600. 692.  -   opacity: 0.65;
  3601. 693.  -   filter: alpha(opacity=65);
  3602. 694.  - }
  3603. 695.  - .tis_progress_wrap {
  3604. 696.  -   width: 110px;
  3605. 697.  -   height: 8px;
  3606. 698.  -   margin: auto;
  3607. 699.  -   margin-bottom: 6px;
  3608. 700.  -   background: #FFF;
  3609. 701.  -   border: 1px solid #CCC;
  3610. 702.  - }
  3611. 703.  - .tis_progress {
  3612. 704.  -   height: 8px;
  3613. 705.  -   background: #597DA3 url(/images/progress_grad.gif) repeat;
  3614. 706.  -   border: 1px solid #45688E;
  3615. 707.  -   margin: -1px;
  3616. 708.  - }
  3617. 709.  - .tis_label {
  3618. 710.  -   color: #777777;
  3619. 711.  -   margin: -4px 0 0 6px;
  3620. 712.  - }
  3621. 713.  - .tis_prg_x {
  3622. 714.  -   cursor: pointer;
  3623. 715.  -   margin: 0px 5px;
  3624. 716.  -   background: url(/images/hide_to.gif) no-repeat -2px -2px;
  3625. 717.  -   opacity: 0.6;
  3626. 718.  -   filter: alpha(opacity=60);
  3627. 719.  -   height: 10px;
  3628. 720.  -   width: 10px;
  3629. 721.  - }
  3630. 722.  - #tis_upload, #tis_upload_edit, #tis_upload_template, #tis_upload_auto {
  3631. 723.  -   visibility: hidden;
  3632. 724.  -   height: 0px;
  3633. 725.  - }
  3634. 726.  -
  3635. 727.  - .tickets_progress_wrap {
  3636. 728.  -   width: 250px;
  3637. 729.  -   height: 18px;
  3638. 730.  -   margin: auto;
  3639. 731.  -   background: #FFF;
  3640. 732.  -   border: 1px solid #CCC;
  3641. 733.  - }
  3642. 734.  - .tickets_progress {
  3643. 735.  -   height: 18px;
  3644. 736.  -   background: #597DA3 url(/images/progress_grad.gif) repeat;
  3645. 737.  -   border: 1px solid #45688E;
  3646. 738.  -   margin: -1px;
  3647. 739.  - }
  3648. 740.  - #tickets_hidden {
  3649. 741.  -   margin: 6px 10px 0px;
  3650. 742.  - }
  3651. 743.  - .tickets_sys_img {
  3652. 744.  -   background: transparent url(/images/tasks_icons.gif) no-repeat scroll;
  3653. 745.  -   width: 65px;
  3654. 746.  -   margin-top: 4px;
  3655. 747.  -   height: 14px;
  3656. 748.  - }
  3657. 749.  - .tickets_sys_content {
  3658. 750.  -   padding: 3px 0px 5px;
  3659. 751.  -   line-height: 140%;
  3660. 752.  -   word-wrap: break-word;
  3661. 753.  -   color: #555;
  3662. 754.  -   width: 530px;
  3663. 755.  - }
  3664. 756.  - .tickets_sys_content .fw_reply_text {
  3665. 757.  -   color: #000;
  3666. 758.  - }
  3667. 759.  - #tickets_pass_comm,
  3668. 760.  - #tickets_send_comm {
  3669. 761.  -   margin-top: 5px;
  3670. 762.  -   width: 462px;
  3671. 763.  -   height: 40px;
  3672. 764.  - }
  3673. 765.  - .tickets_add_comm {
  3674. 766.  -   padding-top: 10px;
  3675. 767.  -   font-weight: bold;
  3676. 768.  - }
  3677. 769.  -
  3678. 770.  -
  3679. 771.  - /* Moderators list */
  3680. 772.  - #support_admin_moderators,
  3681. 773.  - #support_admin_specagents {
  3682. 774.  -   padding: 10px;
  3683. 775.  -   width: auto;
  3684. 776.  - }
  3685. 777.  - .support_admin_moderators_row {
  3686. 778.  -   cursor: pointer;
  3687. 779.  - }
  3688. 780.  - #support_admin_moderators.agent_stats .month {
  3689. 781.  -   /*display: none;*/
  3690. 782.  - }
  3691. 783.  - .support_moder_detailed_stats {
  3692. 784.  -   display: none;
  3693. 785.  - }
  3694. 786.  - .support_moder_stats_data {
  3695. 787.  -   padding: 10px 0;
  3696. 788.  - }
  3697. 789.  - #support_admin_moderators .support_admin_moderators_row:hover td,
  3698. 790.  - #support_admin_specagents .support_admin_specagents_row:hover td,
  3699. 791.  - #support_admin_moderators .detailed td {
  3700. 792.  -   background: #EDF1F5;
  3701. 793.  - }
  3702. 794.  - #support_admin_moderators .msg {
  3703. 795.  -   margin-bottom: 20px;
  3704. 796.  - }
  3705. 797.  - .support_stats_title {
  3706. 798.  -   padding: 0 0 0 25px;
  3707. 799.  -   line-height: 1.81em;
  3708. 800.  -   height: 20px;
  3709. 801.  -   width: 175px;
  3710. 802.  - }
  3711. 803.  - .support_stats_value {
  3712. 804.  -   padding: 0 0 0 25px;
  3713. 805.  -   line-height: 1.81em;
  3714. 806.  -   height: 20px;
  3715. 807.  - }
  3716. 808.  - .support_stats_loading {
  3717. 809.  -   height: 649px;
  3718. 810.  -   background: url(/images/progress7.gif) 50% 50% no-repeat;
  3719. 811.  -   border-top: 1px solid #DAE1E8;
  3720. 812.  - }
  3721. 813.  - .support_to_question {
  3722. 814.  -   font-weight: normal;
  3723. 815.  - }
  3724. 816.  - .support_plus_rate {
  3725. 817.  -   color: #008800;
  3726. 818.  - }
  3727. 819.  - .support_minus_rate {
  3728. 820.  -   color: #884400;
  3729. 821.  - }
  3730. 822.  - .support_medium_rate {
  3731. 823.  -   color: #888800;
  3732. 824.  - }
  3733. 825.  - #tickets_content .paginated_table table {
  3734. 826.  -   border: none;
  3735. 827.  - }
  3736. 828.  - #tickets_content .paginated_table_header th.paginated_table_cell {
  3737. 829.  -   border-width: 0px 0px 1px 1px;
  3738. 830.  -   background-color: #F7F7F7;
  3739. 831.  -   border-color:#DAE1E8;
  3740. 832.  - }
  3741. 833.  - #tickets_content .paginated_table_header th.paginated_table_cell:hover {
  3742. 834.  -   background-color: #E3E9EE;
  3743. 835.  - }
  3744. 836.  - #tickets_content .paginated_table_header th.paginated_table_cell div {
  3745. 837.  -   border: none;
  3746. 838.  - }
  3747. 839.  - #tickets_content th.paginated_table_cell span.sorted {
  3748. 840.  -   background: url('/images/flydead.gif') no-repeat scroll right 1px transparent;
  3749. 841.  -   padding-right: 17px;
  3750. 842.  - }
  3751. 843.  - #tickets_content .paginated_table td.paginated_table_cell {
  3752. 844.  -   padding: 0px 5px;
  3753. 845.  -   border-color: #EEEEEE;
  3754. 846.  -   border-style: solid;
  3755. 847.  -   border-width: 1px 0px 0px;
  3756. 848.  -   height: auto;
  3757. 849.  - }
  3758. 850.  - #tickets_content .paginated_table_cell img {
  3759. 851.  -   width: 25px;
  3760. 852.  -   height: 25px;
  3761. 853.  -   display: block;
  3762. 854.  - }
  3763. 855.  - #support_admin_moderators .support_admin_moderators_row.over td.paginated_table_cell.paginated_table_cell,
  3764. 856.  - #support_admin_moderators .support_admin_moderators_row.after_over td.paginated_table_cell.paginated_table_cell,
  3765. 857.  - #support_admin_specagents .support_admin_specagents_row.over td.paginated_table_cell,
  3766. 858.  - #support_admin_specagents .support_admin_specagents_row.after_over td.paginated_table_cell,
  3767. 859.  - #support_admin_moderators .detailed td.paginated_table_cell {
  3768. 860.  -   border-color:#DAE1E8;
  3769. 861.  - }
  3770. 862.  - #tickets_content .paginated_table td.paginated_table_cell.first_column {
  3771. 863.  -   padding: 7px 3px 7px 7px;
  3772. 864.  - }
  3773. 865.  - #tickets_content .paginated_table_header th.paginated_table_cell div {
  3774. 866.  -   padding: 10px 5px;
  3775. 867.  - }
  3776. 868.  - #tickets_content .paginated_table_header th.paginated_table_cell.first_column div {
  3777. 869.  -   padding-left: 7px;
  3778. 870.  - }
  3779. 871.  - #tickets_content .paginated_table_row.my,
  3780. 872.  - #tickets_content .paginated_table_row.my td {
  3781. 873.  -   background: #F4EBD6;
  3782. 874.  - }
  3783. 875.  - .support_stats_wrap {
  3784. 876.  -   padding: 10px;
  3785. 877.  - }
  3786. 878.  - .support_stats_wrap .stats_flash_wrap {
  3787. 879.  -   padding-left: 5px;
  3788. 880.  - }
  3789. 881.  - .support_moder_stats_wrap {
  3790. 882.  -   padding: 10px 10px 0;
  3791. 883.  - }
  3792. 884.  - .support_moder_stats_wrap .stats_flash_wrap {
  3793. 885.  -   padding-left: 5px;
  3794. 886.  -   width: 555px;
  3795. 887.  -   margin-bottom: 7px;
  3796. 888.  - }
  3797. 889.  -
  3798. 890.  - /* FAQ styles */
  3799. 891.  - #tickets_faq_list {
  3800. 892.  -   padding: 15px;
  3801. 893.  -   border-top: 1px solid #DAE1E8;
  3802. 894.  - }
  3803. 895.  - #tickets_faq_list.no_top {
  3804. 896.  -   border-top: none;
  3805. 897.  - }
  3806. 898.  - .tickets_faq_row {
  3807. 899.  -   margin: auto;
  3808. 900.  -   width: 430px;
  3809. 901.  -   padding: 15px 10px;
  3810. 902.  -   border-top: 1px solid #DAE1E8;
  3811. 903.  -   cursor: pointer;
  3812. 904.  - }
  3813. 905.  - .tickets_faq_row.only {
  3814. 906.  -   cursor: default;
  3815. 907.  - }
  3816. 908.  - .tickets_faq_row.over {
  3817. 909.  -   background-color: #EDF1F5;
  3818. 910.  - }
  3819. 911.  - .tickets_faq_row.over.detailed {
  3820. 912.  -   background-color: #FFFFFF;
  3821. 913.  - }
  3822. 914.  - .tickets_faq_row.first {
  3823. 915.  -   border-top: none;
  3824. 916.  - }
  3825. 917.  - .tickets_faq_img {
  3826. 918.  -   width: 42px;
  3827. 919.  -   height: 32px;
  3828. 920.  - }
  3829. 921.  - .tickets_faq_img img {
  3830. 922.  -   height: 32px;
  3831. 923.  - }
  3832. 924.  - .tickets_faq_content {
  3833. 925.  -   width: 385px;
  3834. 926.  -   overflow: hidden;
  3835. 927.  - }
  3836. 928.  - .tickets_faq_title {
  3837. 929.  -   color: #45688E;
  3838. 930.  -   font-weight: bold;
  3839. 931.  -   padding-bottom: 2px;
  3840. 932.  -   line-height: 140%;
  3841. 933.  - }
  3842. 934.  - .tickets_faq_full_text {
  3843. 935.  -   display: none;
  3844. 936.  - }
  3845. 937.  - .tickets_faq_text {
  3846. 938.  -   line-height: 160%;
  3847. 939.  - }
  3848. 940.  - .tickets_faq_links {
  3849. 941.  -   padding-top: 5px;
  3850. 942.  - }
  3851. 943.  - #tickets_faq_button {
  3852. 944.  -   text-align: center;
  3853. 945.  - }
  3854. 946.  - #tickets_faq_button .button_blue {
  3855. 947.  -   margin: 10px 0;
  3856. 948.  - }
  3857. 949.  - #tickets_faq_button .button_blue,
  3858. 950.  - #tickets_faq_button .button_gray {
  3859. 951.  -   margin: 10px 0;
  3860. 952.  - }
  3861. 953.  - #tickets_faq_button .padd {
  3862. 954.  -   margin-left: 10px;
  3863. 955.  - }
  3864. 956.  - #tickets_search_reset {
  3865. 957.  -   cursor: pointer;
  3866. 958.  -   display: none;
  3867. 959.  -   background: transparent url(/images/icons/input_clear.gif) 6px 6px no-repeat;
  3868. 960.  -   padding: 2px;
  3869. 961.  -   width: 19px;
  3870. 962.  -   height: 19px;
  3871. 963.  -   margin-left: -27px;
  3872. 964.  -   margin-top: 4px;
  3873. 965.  -   opacity: 0.6;
  3874. 966.  -   filter: alpha(opacity=60);
  3875. 967.  -   position: relative;
  3876. 968.  -   z-index: 100;
  3877. 969.  - }
  3878. 970.  - .tickets_search_progress {
  3879. 971.  -   background: url("/images/upload.gif") no-repeat scroll center center transparent;
  3880. 972.  -   display: none;
  3881. 973.  -   height: 30px;
  3882. 974.  -   margin-left: -41px;
  3883. 975.  -   margin-top: 1px;
  3884. 976.  -   position: relative;
  3885. 977.  -   width: 32px;
  3886. 978.  -   z-index: 95;
  3887. 979.  - }
  3888. 980.  - #tickets_search.loading .tickets_search_progress,
  3889. 981.  - #tickets_search_reset.shown {
  3890. 982.  -   display: block;
  3891. 983.  - }
  3892. 984.  - #tickets_search.loading #tickets_search_reset.shown {
  3893. 985.  -   display: none;
  3894. 986.  - }
  3895. 987.  - .tickets_faq_rated {
  3896. 988.  -   color: #777777;
  3897. 989.  -   display: none;
  3898. 990.  - }
  3899. 991.  - .tickets_info_row_tt {
  3900. 992.  -   margin-top: 10px;
  3901. 993.  - }
  3902. 994.  - .tickets_info_title_tt {
  3903. 995.  -   width: 80px;
  3904. 996.  -   color: #777777;
  3905. 997.  - }
  3906. 998.  - .tickets_info_text_tt {
  3907. 999.  -   width: 130px;
  3908. 1000.  - }
  3909. 1001.  - a.tickets_question_row_tt {
  3910. 1002.  -   padding: 5px 10px;
  3911. 1003.  -   display: block;
  3912. 1004.  - }
  3913. 1005.  - a.tickets_question_row_tt:hover {
  3914. 1006.  -   background: #EDF1F5;
  3915. 1007.  -   text-decoration: none;
  3916. 1008.  - }
  3917. 1009.  - .tickets_question_title_tt {
  3918. 1010.  -   font-weight: bold;
  3919. 1011.  -   color: #2B587A;
  3920. 1012.  -   max-width: 230px;
  3921. 1013.  -   overflow: hidden;
  3922. 1014.  -   -o-text-overflow: ellipsis;
  3923. 1015.  -   text-overflow: ellipsis;
  3924. 1016.  -   white-space: nowrap;
  3925. 1017.  - }
  3926. 1018.  - .tickets_question_date_tt {
  3927. 1019.  -   padding-top: 3px;
  3928. 1020.  -   color: #777777;
  3929. 1021.  - }
  3930. 1022.  -
  3931. 1023.  - /* similar questions */
  3932. 1024.  - .tickets_block {
  3933. 1025.  -   display: block;
  3934. 1026.  -   margin: 10px 0px 0px;
  3935. 1027.  -   padding: 10px 10px 9px;
  3936. 1028.  -   text-align: center;
  3937. 1029.  -   color: #777777;
  3938. 1030.  - }
  3939. 1031.  - .tickets_block_link {
  3940. 1032.  -   display: block;
  3941. 1033.  -   background: #EFF1F3;
  3942. 1034.  -   margin: 10px 0px 0px;
  3943. 1035.  -   padding: 10px 10px 9px;
  3944. 1036.  -   text-align: center;
  3945. 1037.  -   color: #738392;
  3946. 1038.  -   border-bottom: 1px solid #EFF1F3;
  3947. 1039.  - }
  3948. 1040.  - .tickets_block_link.close {
  3949. 1041.  -   background: #FFF;
  3950. 1042.  -   border-bottom: 1px solid #FFF;
  3951. 1043.  -   color: #2B587A;
  3952. 1044.  - }
  3953. 1045.  - .tickets_block_link.opened {
  3954. 1046.  -   background: #FFFFFF;
  3955. 1047.  -   border-bottom: 1px solid #E9EDF1;
  3956. 1048.  - }
  3957. 1049.  - .tickets_block_link:hover {
  3958. 1050.  -   text-decoration: none;
  3959. 1051.  -   background: #E9EDF1;
  3960. 1052.  -   border-bottom: 1px solid #E9EDF1;
  3961. 1053.  - }
  3962. 1054.  - .tickets_block_link .progress {
  3963. 1055.  -   margin: 0px auto;
  3964. 1056.  - }
  3965. 1057.  - #tickets_similar {
  3966. 1058.  -   margin: 0px 0px 0px -10px;
  3967. 1059.  -   position: relative;
  3968. 1060.  -   display: none;
  3969. 1061.  - }
  3970. 1062.  - .tickets_toup {
  3971. 1063.  -   width: 50px;
  3972. 1064.  -   height: 0px;
  3973. 1065.  -   cursor: pointer;
  3974. 1066.  -   position: absolute;
  3975. 1067.  -   left: -55px;
  3976. 1068.  - }
  3977. 1069.  - .tickets_toup.over {
  3978. 1070.  -   background: #E9EDF1;
  3979. 1071.  - }
  3980. 1072.  - .tickets_toup .icon {
  3981. 1073.  -   display: none;
  3982. 1074.  -   width: 14px;
  3983. 1075.  -   height: 7px;
  3984. 1076.  -   position: absolute;
  3985. 1077.  -   top: 17px;
  3986. 1078.  -   margin: 0 18px;
  3987. 1079.  -   background: url('/images/toplink.gif?3') 0 -58px no-repeat;
  3988. 1080.  - }
  3989. 1081.  - .tickets_toup.over .icon {
  3990. 1082.  -   display: block;
  3991. 1083.  - }
  3992. 1084.  - .tickets_similar_row {
  3993. 1085.  -   margin: auto;
  3994. 1086.  -   width: 522px;
  3995. 1087.  -   padding: 15px 10px;
  3996. 1088.  -   border-top: 1px solid #DAE1E8;
  3997. 1089.  -   cursor: pointer;
  3998. 1090.  - }
  3999. 1091.  - #tickets_similar .tickets_similar_row {
  4000. 1092.  -   width: 479px;
  4001. 1093.  - }
  4002. 1094.  - #tickets_similar .tickets_check {
  4003. 1095.  -   padding-left: 0px;
  4004. 1096.  - }
  4005. 1097.  - #tickets_checked .tickets_similar_row {
  4006. 1098.  -   padding: 10px;
  4007. 1099.  - }
  4008. 1100.  - #tickets_checked .tickets_add_bug_links {
  4009. 1101.  -   padding-top: 2px;
  4010. 1102.  - }
  4011. 1103.  - .tickets_s_row.only {
  4012. 1104.  -   cursor: default;
  4013. 1105.  - }
  4014. 1106.  - .tickets_similar_row.over {
  4015. 1107.  -   background-color: #EDF1F5;
  4016. 1108.  - }
  4017. 1109.  - .tickets_similar_row.over.detailed {
  4018. 1110.  -   background-color: #FFFFFF;
  4019. 1111.  - }
  4020. 1112.  - .tickets_similar_row.first {
  4021. 1113.  -   border-top: none;
  4022. 1114.  - }
  4023. 1115.  - .tickets_similar_content {
  4024. 1116.  -   width: 477px;
  4025. 1117.  -   overflow: hidden;
  4026. 1118.  - }
  4027. 1119.  - #tickets_similar .tickets_similar_content {
  4028. 1120.  -   width: 436px;
  4029. 1121.  - }
  4030. 1122.  - .tickets_similar_title {
  4031. 1123.  -   color: #45688E;
  4032. 1124.  -   font-weight: bold;
  4033. 1125.  -   padding-bottom: 5px;
  4034. 1126.  - }
  4035. 1127.  - .tickets_similar_full_text {
  4036. 1128.  -   display: none;
  4037. 1129.  - }
  4038. 1130.  - .tickets_similar_text {
  4039. 1131.  -   line-height: 160%;
  4040. 1132.  - }
  4041. 1133.  - .tickets_check {
  4042. 1134.  -   padding: 24px 7px 24px 11px;
  4043. 1135.  -   width: 34px;
  4044. 1136.  -   text-align: center;
  4045. 1137.  -   vertical-align: middle;
  4046. 1138.  -   cursor: pointer;
  4047. 1139.  -   -moz-user-select: none;
  4048. 1140.  -   -khtml-user-select: none;
  4049. 1141.  -   user-select: none;
  4050. 1142.  - }
  4051. 1143.  -
  4052. 1144.  - .tickets_check div {
  4053. 1145.  -   width: 34px;
  4054. 1146.  -   height: 14px;
  4055. 1147.  -   background: url(/images/icons/check.gif?1) no-repeat 50% 0px;
  4056. 1148.  - }
  4057. 1149.  - .tickets_check div.checked {
  4058. 1150.  -   background-position: 50% -14px;
  4059. 1151.  - }
  4060. 1152.  - .tickets_check div.over {
  4061. 1153.  -   background-position: 50% -28px;
  4062. 1154.  - }
  4063. 1155.  - .tickets_check div.over_checked {
  4064. 1156.  -   background-position: 50% -42px;
  4065. 1157.  - }
  4066. 1158.  -
  4067. 1159.  - #tickets_subtabs {
  4068. 1160.  -   background-color: #F7F7F7;
  4069. 1161.  -   border: 1px solid #DAE1E8;
  4070. 1162.  -   border-width: 0px 0px 1px;
  4071. 1163.  -   padding: 10px;
  4072. 1164.  - }
  4073. 1165.  -
  4074. 1166.  - .tickets_subtab1 {
  4075. 1167.  -   float: left;
  4076. 1168.  -   -moz-border-radius: 2px;
  4077. 1169.  -   border-radius: 2px;
  4078. 1170.  -   cursor: pointer;
  4079. 1171.  -   margin-right: 5px;
  4080. 1172.  -   color: #45688E;
  4081. 1173.  - }
  4082. 1174.  - .tickets_subtab1.hidden {
  4083. 1175.  -   display: none;
  4084. 1176.  - }
  4085. 1177.  - .tickets_moders_subtabs .tickets_subtab1 {
  4086. 1178.  -   float: right;
  4087. 1179.  -   margin: 1px 0 1px 5px;
  4088. 1180.  - }
  4089. 1181.  -
  4090. 1182.  - .tickets_subtab1:hover {
  4091. 1183.  -   background-color: #E1E7ED;
  4092. 1184.  - }
  4093. 1185.  -
  4094. 1186.  - .tickets_subtab1.active {
  4095. 1187.  -   background-color: #597DA3;
  4096. 1188.  -   color: white;
  4097. 1189.  -   cursor: default;
  4098. 1190.  - }
  4099. 1191.  -
  4100. 1192.  - .tickets_subtab2 {
  4101. 1193.  -   padding: 3px 8px 4px;
  4102. 1194.  -   font-weight: bold;
  4103. 1195.  - }
  4104. 1196.  - #support_total_stats {
  4105. 1197.  -   padding: 20px;
  4106. 1198.  -   width: auto;
  4107. 1199.  - }
  4108. 1200.  - #support_total_stats td,
  4109. 1201.  - #support_total_stats th {
  4110. 1202.  -   cursor: auto;
  4111. 1203.  - }
  4112. 1204.  - .tickets_template_checkbox {
  4113. 1205.  -   padding-top: 2px;
  4114. 1206.  -   margin-bottom: -7px;
  4115. 1207.  - }
  4116. 1208.  - .tickets_work_stats_row {
  4117. 1209.  -   padding: 5px 0;
  4118. 1210.  - }
  4119. 1211.  - .tickets_work_stats_title {
  4120. 1212.  -   width: 270px;
  4121. 1213.  -   color: #777777;
  4122. 1214.  - }
  4123. 1215.  - .tickets_work_stats_text {
  4124. 1216.  -   width: 120px;
  4125. 1217.  -   font-weight: bold;
  4126. 1218.  - }
  4127. 1219.  - #tickets_all {
  4128. 1220.  -   position: relative;
  4129. 1221.  - }
  4130. 1222.  - #tickets_all_search {
  4131. 1223.  -   background: #f7f7f7;
  4132. 1224.  -   padding: 10px;
  4133. 1225.  -   border-bottom: 1px solid #E1E7ED;
  4134. 1226.  - }
  4135. 1227.  - #tickets_all_search .all_search {
  4136. 1228.  -   height: 13px;
  4137. 1229.  -   width: 418px;
  4138. 1230.  -   padding: 5px 20px;
  4139. 1231.  -   background: #FFF url(/images/magglass.png) no-repeat 5px 6px;
  4140. 1232.  -   outline: none;
  4141. 1233.  - }
  4142. 1234.  - #tickets_all_search .all_search_progress {
  4143. 1235.  -   background: url("/images/upload.gif") no-repeat scroll center center transparent;
  4144. 1236.  -   display: none;
  4145. 1237.  -   height: 23px;
  4146. 1238.  -   margin-left: -41px;
  4147. 1239.  -   margin-top: 1px;
  4148. 1240.  -   position: relative;
  4149. 1241.  -   width: 32px;
  4150. 1242.  -   z-index: 95;
  4151. 1243.  - }
  4152. 1244.  - #tickets_all_search .tickets_all_reset {
  4153. 1245.  -   cursor: pointer;
  4154. 1246.  -   display: none;
  4155. 1247.  -   background: transparent url(/images/icons/input_clear.gif) 6px 6px no-repeat;
  4156. 1248.  -   padding: 2px;
  4157. 1249.  -   width: 19px;
  4158. 1250.  -   height: 19px;
  4159. 1251.  -   margin-left: -23px;
  4160. 1252.  -   margin-top: 1px;
  4161. 1253.  -   opacity: 0.6;
  4162. 1254.  -   filter: alpha(opacity=60);
  4163. 1255.  -   position: relative;
  4164. 1256.  -   z-index: 100;
  4165. 1257.  - }
  4166. 1258.  - #tickets_all_search.loading .all_search_progress,
  4167. 1259.  - #tickets_all_search .tickets_all_reset.shown {
  4168. 1260.  -   display:block;
  4169. 1261.  - }
  4170. 1262.  - #tickets_all_search.loading .tickets_all_reset.shown {
  4171. 1263.  -   display:none;
  4172. 1264.  - }
  4173. 1265.  - .tickets_search_submit {
  4174. 1266.  -   padding-left: 10px;
  4175. 1267.  - }
  4176. 1268.  - #tickets_add_search {
  4177. 1269.  -   background: #f7f7f7;
  4178. 1270.  -   padding: 10px;
  4179. 1271.  -   text-align: center;
  4180. 1272.  -   /*border-bottom: 1px solid #E1E7ED;*/
  4181. 1273.  - }
  4182. 1274.  - #tickets_add_title {
  4183. 1275.  -   height: 13px;
  4184. 1276.  -   width: 400px;
  4185. 1277.  -   padding: 5px;
  4186. 1278.  -   outline: none;
  4187. 1279.  - }
  4188. 1280.  - .tickets_add_wrap {
  4189. 1281.  -   width: 430px;
  4190. 1282.  -   margin: auto;
  4191. 1283.  - }
  4192. 1284.  - #tickets_add_search .tickets_search_progress {
  4193. 1285.  -   background: url("/images/upload.gif") no-repeat scroll center center transparent;
  4194. 1286.  -   display: none;
  4195. 1287.  -   height: 23px;
  4196. 1288.  -   margin-left: -41px;
  4197. 1289.  -   margin-top: 1px;
  4198. 1290.  -   position: relative;
  4199. 1291.  -   width: 32px;
  4200. 1292.  -   z-index: 95;
  4201. 1293.  - }
  4202. 1294.  - #tickets_add_search .tickets_search_reset {
  4203. 1295.  -   cursor: pointer;
  4204. 1296.  -   display: none;
  4205. 1297.  -   background: transparent url(/images/icons/input_clear.gif) 6px 6px no-repeat;
  4206. 1298.  -   padding: 2px;
  4207. 1299.  -   width: 19px;
  4208. 1300.  -   height: 19px;
  4209. 1301.  -   margin-left: -23px;
  4210. 1302.  -   margin-top: 1px;
  4211. 1303.  -   opacity: 0.6;
  4212. 1304.  -   filter: alpha(opacity=60);
  4213. 1305.  -   position: relative;
  4214. 1306.  -   z-index: 100;
  4215. 1307.  - }
  4216. 1308.  - #tickets_add_search.loading .tickets_search_progress,
  4217. 1309.  - #tickets_add_search .tickets_search_reset.shown {
  4218. 1310.  -   display:block;
  4219. 1311.  - }
  4220. 1312.  - #tickets_add_search.loading .tickets_search_reset.shown {
  4221. 1313.  -   display:none;
  4222. 1314.  - }
  4223. 1315.  -
  4224. 1316.  - #tickets_add_content {
  4225. 1317.  -   padding: 15px;
  4226. 1318.  -   border-top: 1px solid #DAE1E8;
  4227. 1319.  - }
  4228. 1320.  - .tickets_add_bug_row {
  4229. 1321.  -   margin: auto;
  4230. 1322.  -   width: 430px;
  4231. 1323.  -   padding: 8px 7px;
  4232. 1324.  -   border-top: 1px solid #DAE1E8;
  4233. 1325.  -   cursor: pointer;
  4234. 1326.  - }
  4235. 1327.  - .tickets_add_bug_row.only {
  4236. 1328.  -   cursor: default;
  4237. 1329.  - }
  4238. 1330.  - .tickets_add_bug_row.closed {
  4239. 1331.  -   background-color: #F7F7F7;
  4240. 1332.  - }
  4241. 1333.  - .tickets_add_bug_row.over {
  4242. 1334.  -   background-color: #EDF1F5;
  4243. 1335.  - }
  4244. 1336.  - .tickets_add_bug_row.over.detailed {
  4245. 1337.  -   background-color: #FFFFFF;
  4246. 1338.  - }
  4247. 1339.  - .tickets_add_bug_row.closed.over.detailed {
  4248. 1340.  -   background-color: #F7F7F7;
  4249. 1341.  - }
  4250. 1342.  - .tickets_add_bug_row.first {
  4251. 1343.  -   border-top: none;
  4252. 1344.  - }
  4253. 1345.  - .tickets_add_bug_content {
  4254. 1346.  -   width: 385px;
  4255. 1347.  -   overflow: hidden;
  4256. 1348.  - }
  4257. 1349.  - .tickets_add_bug_title {
  4258. 1350.  -   color: #45688E;
  4259. 1351.  -   font-weight: bold;
  4260. 1352.  - }
  4261. 1353.  - .tickets_add_bug_full_text {
  4262. 1354.  -   display: none;
  4263. 1355.  -   padding-top: 5px;
  4264. 1356.  - }
  4265. 1357.  - .tickets_add_bug_row.only .tickets_add_bug_full_text {
  4266. 1358.  -   display: block;
  4267. 1359.  - }
  4268. 1360.  - .tickets_add_bug_text {
  4269. 1361.  -   line-height: 160%;
  4270. 1362.  - }
  4271. 1363.  - .tickets_add_bug_links {
  4272. 1364.  -   padding-top: 5px;
  4273. 1365.  -   color: #777777;
  4274. 1366.  - }
  4275. 1367.  - #tickets_add_button {
  4276. 1368.  -   text-align: center;
  4277. 1369.  - }
  4278. 1370.  - #tickets_add_button .button_blue {
  4279. 1371.  -   margin: 10px 0 0;
  4280. 1372.  - }
  4281. 1373.  -
  4282. 1374.  - #add_bug_form {
  4283. 1375.  -   display: none;
  4284. 1376.  -   padding: 20px;
  4285. 1377.  - }
  4286. 1378.  - #add_bug_form .label {
  4287. 1379.  -   width: 80px;
  4288. 1380.  -   padding: 4px 0 1px;
  4289. 1381.  -   color: #555555;
  4290. 1382.  - }
  4291. 1383.  - #add_bug_form .value {
  4292. 1384.  -   padding-bottom: 5px;
  4293. 1385.  - }
  4294. 1386.  - #add_bug_form .value input.text {
  4295. 1387.  -   border: 1px solid #C0CAD5;
  4296. 1388.  -   width: 200px;
  4297. 1389.  - }
  4298. 1390.  - #add_bug_form textarea {
  4299. 1391.  -   width: 380px;
  4300. 1392.  -   height: 170px;
  4301. 1393.  - }
  4302. 1394.  - .tickets_moders_subtabs {
  4303. 1395.  -   background-color: #F7F7F7;
  4304. 1396.  -   border: 1px solid #DAE1E8;
  4305. 1397.  -   border-width: 1px 0px;
  4306. 1398.  -   padding: 10px;
  4307. 1399.  - }
  4308. 1400.  - .tickets_moders_controls {
  4309. 1401.  -   width: 80px;
  4310. 1402.  - }
  4311. 1403.  - .tickets_l_arr, .tickets_r_arr {
  4312. 1404.  -   margin-right: 5px;
  4313. 1405.  -   font-size: 1.27em;
  4314. 1406.  -   display: inline;
  4315. 1407.  -   width: 20px;
  4316. 1408.  -   height: 20px;
  4317. 1409.  -   border: 1px solid #DAE1E8;
  4318. 1410.  -   cursor: pointer;
  4319. 1411.  - }
  4320. 1412.  - .tickets_l_arr {
  4321. 1413.  -   background: #FFFFFF url(/images/stat_arrow_left.gif) 1px 2px no-repeat;
  4322. 1414.  - }
  4323. 1415.  - .tickets_r_arr {
  4324. 1416.  -   background: #FFFFFF url(/images/stat_arrow_right.gif) 2px 2px no-repeat;
  4325. 1417.  - }
  4326. 1418.  - .tickets_l_arr.over,.tickets_r_arr.over {
  4327. 1419.  -   border: 1px solid #45688E;
  4328. 1420.  - }
  4329. 1421.  - .tickets_l_arr.off,.tickets_r_arr.off {
  4330. 1422.  -   display: none;
  4331. 1423.  - }
  4332. 1424.  - .tickets_moders_label {
  4333. 1425.  -   color: #45688E;
  4334. 1426.  -   font-weight: bold;
  4335. 1427.  -   margin-top: 4px;
  4336. 1428.  - }
  4337. 1429.  - .tickets_detailed_loading {
  4338. 1430.  -   height: 200px;
  4339. 1431.  -   background: url(/images/progress7.gif) 50% 50% no-repeat;
  4340. 1432.  - }
  4341. 1433.  - .tickets_online {
  4342. 1434.  -   width: 50px;
  4343. 1435.  -   color: #999999;
  4344. 1436.  -   text-align: center;
  4345. 1437.  - }
  4346. 1438.  - #tickets_similar .no_tickets_found {
  4347. 1439.  -   padding: 10px 0;
  4348. 1440.  - }
  4349. 1441.  - #tickets_content .pg_more_link {
  4350. 1442.  -   margin: 0 15px 15px;
  4351. 1443.  -   border-top: none;
  4352. 1444.  - }
  4353. 1445.  - #tickets_search_options {
  4354. 1446.  -   clear: both;
  4355. 1447.  -   padding-top: 10px;
  4356. 1448.  - }
  4357. 1449.  - #tickets_search_options .radiobtn {
  4358. 1450.  -   padding-right: 30px;
  4359. 1451.  - }
  4360. 1452.  - #tickets_search_options.shown {
  4361. 1453.  -   display: block;
  4362. 1454.  - }
  4363. 1455.  - #tickets_checked {
  4364. 1456.  -   padding: 5px 0 15px;
  4365. 1457.  - }
  4366. 1458.  - #tickets_all_selected {
  4367. 1459.  -   padding: 10px;
  4368. 1460.  -   background: #F7F7F7;
  4369. 1461.  -   border-bottom: 1px solid #DAE1E8;
  4370. 1462.  -   display: none;
  4371. 1463.  - }
  4372. 1464.  - #tickets_all_selected .tickets_subtab1 {
  4373. 1465.  -   margin: 3px 1px 2px;
  4374. 1466.  - }
  4375. 1467.  - .t_tabx {
  4376. 1468.  -   margin: 2px -1px 0 5px;
  4377. 1469.  -   cursor: pointer;
  4378. 1470.  -   width: 11px;
  4379. 1471.  -   height: 11px;
  4380. 1472.  -   background: url(/images/pics/im_tabx.gif?1) 0 -13px;
  4381. 1473.  -   opacity: 0.2;
  4382. 1474.  -   filter: alpha(opacity=20);
  4383. 1475.  - }
  4384. 1476.  - .t_tabx.over {
  4385. 1477.  -   opacity: 1;
  4386. 1478.  -   filter: alpha(opacity=100);
  4387. 1479.  - }
  4388. 1480.  -
  4389. 1481.  - #tickets_send_autoanswer {
  4390. 1482.  -   width: 375px;
  4391. 1483.  -   height: 80px;
  4392. 1484.  - }
  4393. 1485.  - #support_pass_answer_wrap #tickets_send_autoanswer {
  4394. 1486.  -   width: 452px;
  4395. 1487.  - }
  4396. 1488.  -
  4397. 1489.  - #tickets_stat_access_check {
  4398. 1490.  -   padding: 200px;
  4399. 1491.  - }
  4400. 1492.  - .tickets_wait_img {
  4401. 1493.  -   text-align: center;
  4402. 1494.  -   padding-top: 10px;
  4403. 1495.  - }
  4404. 1496.  - .similar_search_bar {
  4405. 1497.  -   background: #F7F7F7;
  4406. 1498.  -   padding: 10px;
  4407. 1499.  -   border-bottom: 1px solid #E9EDF1;
  4408. 1500.  -   margin: 0 0 0 10px;
  4409. 1501.  - }
  4410. 1502.  - .similar_row_wrap:first-child {
  4411. 1503.  -   margin-top: 10px;
  4412. 1504.  - }
  4413. 1505.  -
  4414. 1506.  - .similar_search_bar .similar_loading_bar {
  4415. 1507.  -   background: url('/images/upload.gif') center center no-repeat;
  4416. 1508.  -   width: 32px;
  4417. 1509.  -   height: 9px;
  4418. 1510.  -   margin: 8px 0px 0px 469px;
  4419. 1511.  -   z-index: 95;
  4420. 1512.  -   position: absolute;
  4421. 1513.  -   display: none;
  4422. 1514.  - }
  4423. 1515.  - .similar_loading .similar_loading_bar {
  4424. 1516.  -   display: block;
  4425. 1517.  - }
  4426. 1518.  - .tickets_next_link {
  4427. 1519.  -   display: block;
  4428. 1520.  -   padding: 6px 10px 0px;
  4429. 1521.  -   margin: 0px 5px;
  4430. 1522.  -   font-weight: normal;
  4431. 1523.  -   height: 20px;
  4432. 1524.  -   text-align: center;
  4433. 1525.  - }
  4434. 1526.  - .tickets_next_link:hover {
  4435. 1527.  -   background-color: #E1E7ED;
  4436. 1528.  -   text-decoration: none;
  4437. 1529.  - }
  4438. 1530.  - #tickets_extra_options {
  4439. 1531.  -   padding-top: 10px;
  4440. 1532.  - }
  4441. 1533.  - #tickets_extra_options input.text {
  4442. 1534.  -   margin-right: 25px;
  4443. 1535.  -   width: 120px;
  4444. 1536.  - }
  4445. 1537.  - #tickets_extra_options .extra_row {
  4446. 1538.  -   margin-bottom: 10px;
  4447. 1539.  -   color: #555;
  4448. 1540.  - }
  4449. 1541.  - .ticket_time {
  4450. 1542.  -   margin-bottom: 10px;
  4451. 1543.  - }
  4452. 1544.  - .ticket_time_date {
  4453. 1545.  -   margin-right: 10px;
  4454. 1546.  - }
  4455. 1547.  - .ticket_time_label {
  4456. 1548.  -   width: 25px;
  4457. 1549.  -   margin-top: 5px;
  4458. 1550.  - }
  4459. 1551.  - .tickets_extra_label {
  4460. 1552.  -   width: 135px;
  4461. 1553.  -   margin-top: 5px;
  4462. 1554.  -   color: #555;
  4463. 1555.  - }
  4464. 1556.  - #tickets_extra_title {
  4465. 1557.  -   color: #555;
  4466. 1558.  -   font-weight: bold;
  4467. 1559.  -   margin: 20px 0 15px;
  4468. 1560.  - }
  4469. 1561.  - #tickets_time {
  4470. 1562.  -   padding: 12px 23px 0;
  4471. 1563.  - }
  4472. 1564.  - .tickets_unbind {
  4473. 1565.  -   margin-top: 2px;
  4474. 1566.  -   margin-left: 3px;
  4475. 1567.  -   background: url("/images/hide_to.gif") no-repeat scroll 0px -1px #F7F7F7;
  4476. 1568.  -   cursor: pointer;
  4477. 1569.  -   height: 12px;
  4478. 1570.  -   width: 14px;
  4479. 1571.  -   opacity: 0.5;
  4480. 1572.  -   clear: right;
  4481. 1573.  -   filter: alpha(opacity=50);
  4482. 1574.  - }
  4483. 1575.  - .tickets_vader {
  4484. 1576.  -   background: url("/images/lord_vader.png") no-repeat 3px 50%;
  4485. 1577.  -   width: 60px;
  4486. 1578.  -   height: 51px;
  4487. 1579.  - }
  4488. 1580.  -
  4489. 1581.  - #privacy_dropdown.privacy_dropdown_tickets_actions .header div {
  4490. 1582.  -   padding: 3px 21px 5px 4px;
  4491. 1583.  - }
  4492. 1584.  - #privacy_dropdown.privacy_dropdown_tickets_actions .item,
  4493. 1585.  - #privacy_dropdown.privacy_dropdown_tickets_actions .item_sel,
  4494. 1586.  - #privacy_dropdownprivacy_dropdown_tickets_actions .item_sel_plus {
  4495. 1587.  -   padding: 4px 21px 6px 5px;
  4496. 1588.  - }
  4497. 1589.  - #privacy_dropdown.privacy_dropdown_tickets_actions .item_sel, #privacy_dropdown .item_sel_plus {
  4498. 1590.  -   padding: 3px 21px 5px 5px;
  4499. 1591.  - }
  4500. 1592.  -
  4501. 1593.  - /* Payments support */
  4502. 1594.  - .tickets_dmca_head,
  4503. 1595.  - .tickets_pay_head {
  4504. 1596.  -   margin: 0px 0 4px;
  4505. 1597.  -   padding: 10px 0px 4px;
  4506. 1598.  -   font-size: 1.09em;
  4507. 1599.  -   line-height: 1.27em;
  4508. 1600.  -   color: #45688E;
  4509. 1601.  -   font-weight: bold;
  4510. 1602.  - }
  4511. 1603.  - #tickets_payment_data {
  4512. 1604.  -   padding: 0px 0px 15px;
  4513. 1605.  - }
  4514. 1606.  - #tickets_dmca_holder .radiobtn,
  4515. 1607.  - #tickets_payment_type .radiobtn {
  4516. 1608.  -   padding: 5px 0px;
  4517. 1609.  - }
  4518. 1610.  - #tickets_paysystem_wrap .radiobtn {
  4519. 1611.  -   padding: 5px 0px;
  4520. 1612.  - }
  4521. 1613.  - .tickets_payment_row {
  4522. 1614.  -   padding-top: 10px;
  4523. 1615.  -   display: none;
  4524. 1616.  - }
  4525. 1617.  - .tickets_payment_desc {
  4526. 1618.  -   height: 40px;
  4527. 1619.  -   resize: none;
  4528. 1620.  -   display: block;
  4529. 1621.  - }
  4530. 1622.  - .tickets_payment_desc,
  4531. 1623.  - .tickets_payment_input {
  4532. 1624.  -   width: 300px;
  4533. 1625.  - }
  4534. 1626.  - #tickets_payment_other {
  4535. 1627.  -   display: none;
  4536. 1628.  -   padding-top: 15px;
  4537. 1629.  - }
  4538. 1630.  - #tickets_post_form #tickets_payment_type .tickets_pay_head {
  4539. 1631.  -   padding-top: 0px;
  4540. 1632.  - }
  4541. 1633.  - .tickets_envelope_controls {
  4542. 1634.  -   padding-top: 5px;
  4543. 1635.  - }
  4544. 1636.  - #tickets_post_form #tickets_payment_data {
  4545. 1637.  -   padding-bottom: 10px;
  4546. 1638.  - }
  4547. 1639.  - .tickets_dmca_data,
  4548. 1640.  - .tickets_pay_data {
  4549. 1641.  -   padding-top: 10px;
  4550. 1642.  - }
  4551. 1643.  - .tickets_dmca_data_row,
  4552. 1644.  - .tickets_pay_data_row {
  4553. 1645.  -   padding-top: 5px;
  4554. 1646.  - }
  4555. 1647.  - .tickets_dmca_data_row.links {
  4556. 1648.  -   padding-top: 10px;
  4557. 1649.  -   padding-bottom: 20px;
  4558. 1650.  - }
  4559. 1651.  - .tickets_dmca_data_row.blocked {
  4560. 1652.  -   padding-top: 0px;
  4561. 1653.  -   padding-bottom: 15px;
  4562. 1654.  - }
  4563. 1655.  - .tickets_dmca_data_row .label,
  4564. 1656.  - .tickets_pay_data .label {
  4565. 1657.  -   min-width: 150px;
  4566. 1658.  -   color: #777;
  4567. 1659.  - }
  4568. 1660.  - .tickets_dmca_data_row .value,
  4569. 1661.  - .tickets_pay_data .value {
  4570. 1662.  -   max-width: 380px;
  4571. 1663.  - }
  4572. 1664.  - .tickets_dmca_data_row.blocked .label,
  4573. 1665.  - .tickets_dmca_data_row.name .label,
  4574. 1666.  - .tickets_dmca_data_row.links .label {
  4575. 1667.  -   padding-bottom: 5px;
  4576. 1668.  - }
  4577. 1669.  - .tickets_dmca_data_row.links .value {
  4578. 1670.  -   max-width: 530px;
  4579. 1671.  -   white-space: nowrap;
  4580. 1672.  -   overflow: hidden;
  4581. 1673.  -   text-overflow: ellipsis;
  4582. 1674.  - }
  4583. 1675.  - .tickets_dmca_buttons {
  4584. 1676.  -   padding-top: 10px;
  4585. 1677.  - }
  4586. 1678.  - .tickets_dmca_buttons .button_gray {
  4587. 1679.  -   margin-left: 10px;
  4588. 1680.  - }
  4589. 1681.  - #tickets_decline_dmca_comment {
  4590. 1682.  -   width: 393px;
  4591. 1683.  -   height: 70px;
  4592. 1684.  - }
  4593. 1685.  - .is_rtl1 .tickets_dmca_buttons .button_gray {
  4594. 1686.  -   margin-left: 0px;
  4595. 1687.  -   margin-right: 10px;
  4596. 1688.  - }
  4597. 1689.  - .tickets_payments_header {
  4598. 1690.  -   display: inline-block;
  4599. 1691.  -   margin-top: 10px;
  4600. 1692.  - }
  4601. 1693.  - .tickets_payments_header a:hover {
  4602. 1694.  -   text-decoration: none;
  4603. 1695.  - }
  4604. 1696.  - .tickets_payments_header .mi_section {
  4605. 1697.  -   margin: 10px 0 0;
  4606. 1698.  -   width: 597px;
  4607. 1699.  - }
  4608. 1700.  - .tickets_payments_header th {
  4609. 1701.  -   text-align: left;
  4610. 1702.  - }
  4611. 1703.  - #tickets_payment_data .cal_table .day {
  4612. 1704.  -   color: #999;
  4613. 1705.  - }
  4614. 1706.  - #tickets_payment_data .cal_table .day.past_day,
  4615. 1707.  - #tickets_payment_data .cal_table .day.today {
  4616. 1708.  -   color: #000;
  4617. 1709.  - }
  4618. 1710.  -
  4619. 1711.  - #tickets_dmca_data {
  4620. 1712.  -   padding: 0px 0px 15px;
  4621. 1713.  - }
  4622. 1714.  - .tickets_dmca_row {
  4623. 1715.  -   padding-top: 10px;
  4624. 1716.  - }
  4625. 1717.  - .tickets_dmca_row.padd {
  4626. 1718.  -   padding-top: 20px;
  4627. 1719.  - }
  4628. 1720.  - .tickets_dmca_row .checkbox {
  4629. 1721.  -   line-height: 170%;
  4630. 1722.  -   padding-left: 20px;
  4631. 1723.  -   position: relative;
  4632. 1724.  - }
  4633. 1725.  - .tickets_dmca_row .checkbox div {
  4634. 1726.  -   margin-top: 2px;
  4635. 1727.  -   left: 0px !important;
  4636. 1728.  -   left: -20px;
  4637. 1729.  -   position: absolute;
  4638. 1730.  - }
  4639. 1731.  - .tickets_dmca_row .selector_container td.selector input {
  4640. 1732.  -   height: 17px;
  4641. 1733.  -   margin-bottom: 2px;
  4642. 1734.  - }
  4643. 1735.  - .tickets_dmca_input {
  4644. 1736.  -   width: 300px;
  4645. 1737.  -   height: 13px;
  4646. 1738.  -   padding: 5px !important;
  4647. 1739.  - }
  4648. 1740.  - .tickets_dmca_log_in_msg {
  4649. 1741.  -   line-height: 160%;
  4650. 1742.  -   padding: 20px;
  4651. 1743.  - }
  4652. 1744.  - .tickets_dmca_log_in_btn {
  4653. 1745.  -   text-align: center;
  4654. 1746.  -   margin-bottom: 30px;
  4655. 1747.  - }
  4656. 1748.  - .tickets_late_info {
  4657. 1749.  -   width: 500px;
  4658. 1750.  - }
  4659. 1751.  - #tickets_pass_btn {
  4660. 1752.  -   margin-right: 10px;
  4661. 1753.  -   display: block;
  4662. 1754.  -   padding: 6px 14px 0px;
  4663. 1755.  -   font-weight: normal;
  4664. 1756.  -   height: 19px;
  4665. 1757.  -   text-align: center;
  4666. 1758.  - }
  4667. 1759.  - #tickets_pass_btn:hover {
  4668. 1760.  -   background: #E1E7ED;
  4669. 1761.  -   text-decoration: none;
  4670. 1762.  - }
  4671. 1763.  - .tickets_box_title_wrap {
  4672. 1764.  -   background: #597BA5;
  4673. 1765.  -   padding: 10px 10px 11px;
  4674. 1766.  -   position: relative;
  4675. 1767.  -   overflow: hidden;
  4676. 1768.  - }
  4677. 1769.  - .tickets_box_close {
  4678. 1770.  -   padding: 7px 5px;
  4679. 1771.  -   color: #C7D7E9;
  4680. 1772.  -   -webkit-transition: color 100ms linear;
  4681. 1773.  -   -moz-transition: color 100ms linear;
  4682. 1774.  -   -o-transition: color 100ms linear;
  4683. 1775.  -   transition: color 100ms linear;
  4684. 1776.  - }
  4685. 1777.  - .tickets_box_close:hover {
  4686. 1778.  -   color: #FFF;
  4687. 1779.  -   text-decoration: none;
  4688. 1780.  - }
  4689. 1781.  - .tickets_box_title {
  4690. 1782.  -   color: white;
  4691. 1783.  -   padding: 7px 5px;
  4692. 1784.  -   font-weight: bold;
  4693. 1785.  -   font-size: 1.09em;
  4694. 1786.  - }
  4695. 1787.  - .tickets_replies_cont {
  4696. 1788.  -   padding: 5px 15px;
  4697. 1789.  - }
  4698. 1790.  - .tickets_reply_comments {
  4699. 1791.  -   padding-top: 10px;
  4700. 1792.  - }
  4701. 1793.  - .tickets_reply_post_field {
  4702. 1794.  -   position: relative;
  4703. 1795.  - }
  4704. 1796.  - .tickets_reply_post_field .fw_reply_thumb {
  4705. 1797.  -   position: absolute;
  4706. 1798.  -   top: 6px;
  4707. 1799.  -   left: 0px;
  4708. 1800.  -   z-index: 10;
  4709. 1801.  - }
  4710. 1802.  - .tickets_reply_post_field .reply_field_tail {
  4711. 1803.  -   display: block;
  4712. 1804.  -   margin-left: -4px;
  4713. 1805.  -   margin-top: 21px;
  4714. 1806.  - }
  4715. 1807.  - .big_wall_post.tickets_reply_post_field #submit_post_box {
  4716. 1808.  -   padding: 6px 6px 6px 69px;
  4717. 1809.  -   margin-left: -6px;
  4718. 1810.  -   border-bottom: none;
  4719. 1811.  - }
  4720. 1812.  - .big_wall_post.tickets_reply_post_field #submit_post_box textarea {
  4721. 1813.  -   font-size: 11px !important;
  4722. 1814.  -   width: 453px;
  4723. 1815.  -   height: 42px;
  4724. 1816.  - }
  4725. 1817.  - .support_hide_all {
  4726. 1818.  -   display: none;
  4727. 1819.  - }
  4728. 1820.  - .shown .support_hide_all {
  4729. 1821.  -   display: inline;
  4730. 1822.  - }
  4731. 1823.  - .shown .support_show_all {
  4732. 1824.  -   display: none;
  4733. 1825.  - }
  4734. 1826.  - #tickets_all_check {
  4735. 1827.  -   position: absolute;
  4736. 1828.  -   top: 0px;
  4737. 1829.  -   left: 15px;
  4738. 1830.  -   padding: 14px 7px 5px 11px;
  4739. 1831.  - }
  4740. 1832.  - .tickets_next_chkbx {
  4741. 1833.  -   padding: 6px 5px 0px 10px;
  4742. 1834.  -   color: #777;
  4743. 1835.  - }
  4744. 1836.  - .tickets_next_chkbx .checkbox {
  4745. 1837.  -   text-overflow: ellipsis;
  4746. 1838.  -   max-width: 180px;
  4747. 1839.  -   overflow: hidden;
  4748. 1840.  -   white-space: nowrap;
  4749. 1841.  - }
  4750. 1842.  - .tickets_stats_text {
  4751. 1843.  -   color: #777;
  4752. 1844.  -   font-size: 0.9em;
  4753. 1845.  -   padding: 0px 2px;
  4754. 1846.  - }
  4755. 1847.  - .tickets_moder_link {
  4756. 1848.  -   font-weight: bold;
  4757. 1849.  -   max-width: 149px;
  4758. 1850.  -   overflow: hidden;
  4759. 1851.  -   text-overflow: ellipsis;
  4760. 1852.  - }
  4761. 1853.  - .tickets_moder_id {
  4762. 1854.  -   color: #777777;
  4763. 1855.  -   font-weight: normal;
  4764. 1856.  -   padding-left: 5px;
  4765. 1857.  - }
  4766. 1858.  - .tickets_stats_value {
  4767. 1859.  -   font-weight: bold;
  4768. 1860.  - }
  4769. 1861.  - .tickets_block_playback_wrap {
  4770. 1862.  -   padding-top: 10px;
  4771. 1863.  - }
  4772. 1864.  - #tickets_block_playback_saved {
  4773. 1865.  -   color: #777;
  4774. 1866.  -   opacity: 0;
  4775. 1867.  - }
  4776. 1868.  - .tickets_mob {
  4777. 1869.  -   width: 0px;
  4778. 1870.  -   height: 12px;
  4779. 1871.  -   padding-left: 7px;
  4780. 1872.  -   margin-right: 4px;
  4781. 1873.  -   background: url(/images/mobile_online.gif?1) no-repeat -11px 0;
  4782. 1874.  -   *zoom: 1;
  4783. 1875.  -   cursor: pointer;
  4784. 1876.  - }
  4785. 1877.  - .tickets_media_icon {
  4786. 1878.  -   float: left;
  4787. 1879.  -   background: url(/images/icons/mono_iconset.gif?8) no-repeat 0 -294px;
  4788. 1880.  -   width: 11px;
  4789. 1881.  -   height: 11px;
  4790. 1882.  -   margin-right: 3px;
  4791. 1883.  -   margin-top: 3px;
  4792. 1884.  - }
  4793. ------
Advertisement
Add Comment
Please, Sign In to add comment