Hormold

VK Change (#1389778203)

Jan 15th, 2014
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 12.57 KB | None | 0 0
  1. Файл - sharebox.js (Старый размер - 10627 | Новый - 0):
  2. 0.  - var ShareBox = {
  3. 1.  -   mrg: function(v) {
  4. 2.  -     return vk.rtl ? {marginRight: v} : {marginLeft: v};
  5. 3.  -   },
  6. 4.  -   mediaChange: function() {
  7. 5.  -     var composer = cur.sbField && data(cur.sbField, 'composer');
  8. 6.  -     if (composer && composer.addMedia) {
  9. 7.  -       var v = (radioBtns['like_share'] || {}).val || 0;
  10. 8.  -       toggle(geByClass1('add_media_type_' + composer.addMedia.lnkId + '_postpone', composer.addMedia.menu.menuNode, 'a'), (v == 1 || v == 0 && cur.sbShareOwn));
  11. 9.  -     }
  12. 10.  -   },
  13. 11.  -   show: function(box, opts) {
  14. 12.  -     addClass(boxLayerBG, 'bg_dark');
  15. 13.  -     box.setOptions({hideButtons: true, width: 502, bodyStyle: 'padding: 0px; border: 0px;'});
  16. 14.  -     box.removeButtons();
  17. 15.  -
  18. 16.  -     radioBtns['like_share'] = {
  19. 17.  -       els: [ge('like_share_my'), ge('like_share_club'), ge('like_share_mail')],
  20. 18.  -       val: opts.rbVal
  21. 19.  -     };
  22. 20.  -     each(radioBtns['like_share'].els, function(i, v) {
  23. 21.  -       if (hasClass(v, 'disabled')) {
  24. 22.  -         addClass(domNS(v), 'like_share_disabled');
  25. 23.  -         (geByTag1('input', domNS(v)) || {}).readOnly = true;
  26. 24.  -       }
  27. 25.  -     });
  28. 26.  -
  29. 27.  -     cur.lang = extend(cur.lang || {}, opts.lang);
  30. 28.  -     extend(cur, {
  31. 29.  -       sbField: ge('like_share_text'),
  32. 30.  -       sbAva: ge('dark_box_ava'),
  33. 31.  -       sbTo: [0],
  34. 32.  -       sbShareHash: opts.shHash,
  35. 33.  -       sbMailHash: opts.imHash,
  36. 34.  -       sbObj: opts.shObj,
  37. 35.  -       sbList: opts.shList || '',
  38. 36.  -       sbShareOwn: opts.shOwn,
  39. 37.  -       sbSend: function() {
  40. 38.  -         if (buttonLocked('like_share_send')) return;
  41. 39.  -         hide('like_share_error');
  42. 40.  -
  43. 41.  -         var v = radioBtns['like_share'].val, to = 0,
  44. 42.  -         composer = cur.sbField && data(cur.sbField, 'composer'),
  45. 43.  -         params = composer ? Composer.getSendParams(composer) : {message: trim(val(cur.sbField))};
  46. 44.  -         switch (v) {
  47. 45.  -         case 1:
  48. 46.  -           var dd = cur.wdd && cur.wdd['like_club_dd'];
  49. 47.  -           if (!dd || !dd.selCount) return elfocus('like_club_inp');
  50. 48.  -           for (var i in dd.selected) {
  51. 49.  -             to = intval(i.replace(/_$/, ''));
  52. 50.  -           }
  53. 51.  -         case 0:
  54. 52.  -           ajax.post('like.php', Wall.fixPostParams(extend(params, {
  55. 53.  -             act: 'a_do_publish',
  56. 54.  -             from: 'box',
  57. 55.  -             to: to,
  58. 56.  -             hash: cur.sbShareHash,
  59. 57.  -             object: cur.sbObj,
  60. 58.  -             list: cur.sbList
  61. 59.  -           })), ShareBox.options());
  62. 60.  -         break;
  63. 61.  -
  64. 62.  -         case 2:
  65. 63.  -           var dd = cur.wdd && cur.wdd['like_mail_dd'], params =
  66. 64.  -           extend(params, {
  67. 65.  -             act: 'a_send',
  68. 66.  -             from: 'box',
  69. 67.  -             to_ids: [],
  70. 68.  -             chas: cur.sbMailHash,
  71. 69.  -             ajax: 1,
  72. 70.  -             title: (isVisible('like_share_title_wrap') && val('like_share_title') || ''),
  73. 71.  -             media: cur.sbObj + (cur.sbList ? ('/' + cur.sbList) : '')
  74. 72.  -           });
  75. 73.  -           if (!dd || !dd.selCount) return elfocus('like_mail_inp');
  76. 74.  -
  77. 75.  -           for (var i in dd.selected) {
  78. 76.  -             params.to_ids.push(i.replace(/_$/, ''));
  79. 77.  -           }
  80. 78.  -           params.to_ids = params.to_ids.join(',');
  81. 79.  -           ajax.post('al_mail.php', Wall.fixPostParams(params), ShareBox.options());
  82. 80.  -         break;
  83. 81.  -         }
  84. 82.  -       },
  85. 83.  -       sbCheckLen: function(inp) {
  86. 84.  -         checkTextLength(4096, inp, 'like_share_warn');
  87. 85.  -         var dd = cur.wdd && cur.wdd['like_mail_dd'], mchat = dd && dd.full && (dd.selCount == 1);
  88. 86.  -         toggle('like_share_title_wrap', dd && (radioBtns['like_share'].val == 2) && (inp.lastLen > 200 && !mchat || dd.selCount > 1 || val('like_share_title')) ? true : false);
  89. 87.  -       }
  90. 88.  -     });
  91. 89.  -
  92. 90.  -     cur.sbHidden = true;
  93. 91.  -     autosizeSetup(cur.sbField, {minHeight: 80})
  94. 92.  -     setTimeout(elfocus.pbind((opts.rbVal == 2) ? 'like_mail_inp' : (opts.rbVal ? 'like_club_inp' : cur.sbField)), 0);
  95. 93.  -
  96. 94.  -     Wall.initComposer(cur.sbField, {
  97. 95.  -       lang: {
  98. 96.  -         introText: getLang('profile_mention_start_typing'),
  99. 97.  -         noResult: getLang('profile_mention_not_found')
  100. 98.  -       },
  101. 99.  -       media: isVisible('like_share_add_media') ? {
  102. 100.  -         lnk: domFC(ge('like_share_add_media')),
  103. 101.  -         preview: ge('like_share_media_preview'),
  104. 102.  -         types: opts.shTypes,
  105. 103.  -         options: {
  106. 104.  -           limit: 1,
  107. 105.  -           disabledTypes: ['album', 'share', 'link', 'page'],
  108. 106.  -           toggleLnk: true,
  109. 107.  -           nocl: 1,
  110. 108.  -           onAddMediaChange: ShareBox.mediaChange,
  111. 109.  -           onMediaChange: ShareBox.mediaChange
  112. 110.  -         }
  113. 111.  -       } : undefined
  114. 112.  -     });
  115. 113.  -     ShareBox.mediaChange();
  116. 114.  -
  117. 115.  -     var tmp = cur.postTo;
  118. 116.  -     cur.postTo = false;
  119. 117.  -     box.setOptions({onHide: function() {
  120. 118.  -       removeClass(boxLayerBG, 'bg_dark');
  121. 119.  -     }, onShow: function() {
  122. 120.  -       addClass(boxLayerBG, 'bg_dark');
  123. 121.  -     }, onClean: function() {
  124. 122.  -       Wall.deinitComposer(cur.sbField);
  125. 123.  -       delete cur.sbField;
  126. 124.  -       cur.postTo = tmp;
  127. 125.  -       if (window.WideDropdown) {
  128. 126.  -         WideDropdown.deinit('like_club_dd');
  129. 127.  -         WideDropdown.deinit('like_mail_dd');
  130. 128.  -       }
  131. 129.  -     }});
  132. 130.  -
  133. 131.  -     if (!window._mbFriends) { // is used in writebox.js too!
  134. 132.  -       ajax.post('hints.php', {act: 'a_json_friends', from: 'imwrite', str: ''}, {onDone: function(arr) {
  135. 133.  -         window._sbFriends = arr;
  136. 134.  -         var dd = (cur.wdd && cur.wdd['like_mail_dd']);
  137. 135.  -         if (dd) {
  138. 136.  -           WideDropdown.items('like_mail_dd', arr);
  139. 137.  -         }
  140. 138.  -       }});
  141. 139.  -     }
  142. 140.  -     if (!hasClass(ge('like_share_club'), 'disabled')) WideDropdown.init('like_club_dd', {
  143. 141.  -       defaultItems: opts.clubs,
  144. 142.  -       noResult: getLang('like_club_not_found'),
  145. 143.  -       img: cur.sbAva,
  146. 144.  -       introText: getLang('like_club_choose'),
  147. 145.  -       onChange: function(act) {
  148. 146.  -         ShareBox.rbChanged(ge('like_share_club'), 1, true);
  149. 147.  -         var dd = cur.wdd['like_club_dd'], sel = dd.selCount, peer = false, draft, ret = true;
  150. 148.  -         if (act == 1) { // added
  151. 149.  -           setTimeout(elfocus.pbind(cur.sbField), 0);
  152. 150.  -         }
  153. 151.  -         if (sel < 1 && !cur.sbHidden) {
  154. 152.  -           ShareBox.toggleAva(false);
  155. 153.  -           ret = 0;
  156. 154.  -         } else if (sel > 0 && cur.sbHidden) {
  157. 155.  -           ShareBox.toggleAva(true);
  158. 156.  -           ret = 1;
  159. 157.  -         }
  160. 158.  -         cur.sbCheckLen(cur.sbField);
  161. 159.  -         return ret;
  162. 160.  -       }
  163. 161.  -     });
  164. 162.  -     if (!hasClass(ge('like_share_mail'), 'disabled')) WideDropdown.init('like_mail_dd', {
  165. 163.  -       defaultItems: window._mbFriends,
  166. 164.  -       url: 'hints.php',
  167. 165.  -       params: {act: 'a_json_friends', from: 'imwrite'},
  168. 166.  -       noResult: getLang('mail_not_found'),
  169. 167.  -       img: cur.sbAva,
  170. 168.  -       introText: getLang('mail_choose_recipient'),
  171. 169.  -       custom: function(q) {
  172. 170.  -         return (q.indexOf('@') != -1) ? [[clean(q), clean(q), getLang('mail_enter_email_address'), '/images/pics/contact50.gif', 0, '']] : false;
  173. 171.  -       },
  174. 172.  -       chooseOnBlur: function(id) {
  175. 173.  -         id = trim(id + '');
  176. 174.  -         return id.length < 64 && id.match(/^[a-z0-9_\-\.]+@[a-z0-9_\-\.]+\.[a-z]{2,6}$/i);
  177. 175.  -       },
  178. 176.  -       onChange: function(act) {
  179. 177.  -         ShareBox.rbChanged(ge('like_share_mail'), 2, true);
  180. 178.  -         var dd = cur.wdd['like_mail_dd'], sel = dd.selCount, peer = false, draft, ret = true;
  181. 179.  -         if (act == 1) { // added
  182. 180.  -           setTimeout(elfocus.pbind(cur.sbField), 0);
  183. 181.  -         }
  184. 182.  -         if (sel < 1 && !cur.sbHidden) {
  185. 183.  -           ShareBox.toggleAva(false);
  186. 184.  -           ret = 0;
  187. 185.  -         } else if (sel > 0 && cur.sbHidden) {
  188. 186.  -           ShareBox.toggleAva(true);
  189. 187.  -           ret = 1;
  190. 188.  -         }
  191. 189.  -         cur.sbCheckLen(cur.sbField);
  192. 190.  -         return ret;
  193. 191.  -       },
  194. 192.  -       itemMark: function(item) {
  195. 193.  -         return intval(item[5]) ? 1 : 0;
  196. 194.  -       }
  197. 195.  -     });
  198. 196.  -   },
  199. 197.  -   toggleAva: function(vis) {
  200. 198.  -     var t = Fx.Transitions.easeOutCubic, d = 150, f = 'ease-out';
  201. 199.  -     if (vis) {
  202. 200.  -       show(cur.sbAva);
  203. 201.  -       cssAnim(cur.sbAva, extend({opacity: 1}, ShareBox.mrg(0)), {duration: d, transition: t, func: f});
  204. 202.  -       cssAnim(ge('dark_box_topic'), ShareBox.mrg(26), {duration: d, transition: t, func: f});
  205. 203.  -       cur.sbHidden = false;
  206. 204.  -       return 1;
  207. 205.  -     } else {
  208. 206.  -       cssAnim(cur.sbAva, extend({opacity: 0}, ShareBox.mrg(-26)), {duration: d, transition: t, func: f}, hide.pbind(cur.sbAva));
  209. 207.  -       cssAnim(ge('dark_box_topic'), ShareBox.mrg(0), {duration: d, transition: t, func: f});
  210. 208.  -       cur.sbHidden = true;
  211. 209.  -       return 0;
  212. 210.  -     }
  213. 211.  -   },
  214. 212.  -   rbChanged: function(el, v, fromDD) {
  215. 213.  -     radiobtn(el, v, 'like_share');
  216. 214.  -     if (cur.lang.title_for_all) {
  217. 215.  -       val('dark_box_topic', cur.lang[(v < 2) ? 'title_for_all' : 'title_for_mail']);
  218. 216.  -     }
  219. 217.  -     var composer = cur.sbField && data(cur.sbField, 'composer');
  220. 218.  -     if (composer && composer.addMedia) {
  221. 219.  -       if (v == 1 || v == 0 && cur.sbShareOwn) {
  222. 220.  -         show(geByClass1('add_media_type_' + composer.addMedia.lnkId + '_postpone', composer.addMedia.menu.menuNode, 'a'));
  223. 221.  -         if (cur.sbPostponeDate && composer.addMedia.chosenMedia[0] == 'postpone' && composer.addMedia.chosenMediaData) {
  224. 222.  -           composer.addMedia.chosenMediaData.date = cur.sbPostponeDate;
  225. 223.  -           composer.addMedia.chooseMedia('postpone', composer.addMedia.chosenMedia[1], composer.addMedia.chosenMediaData);
  226. 224.  -           hide(domFC(ge('like_share_add_media')));
  227. 225.  -           cur.sbPostponeDate = false;
  228. 226.  -         }
  229. 227.  -         if (composer.addMedia.postponePreview) {
  230. 228.  -           show(domPN(composer.addMedia.postponePreview));
  231. 229.  -         }
  232. 230.  -       } else {
  233. 231.  -         hide(geByClass1('add_media_type_' + composer.addMedia.lnkId + '_postpone', composer.addMedia.menu.menuNode, 'a'));
  234. 232.  -         if (composer.addMedia.chosenMedia && composer.addMedia.chosenMedia[0] == 'postpone') {
  235. 233.  -           cur.sbPostponeDate = val('postpone_date' + composer.addMedia.lnkId)
  236. 234.  -           val('like_share_media_preview', '');
  237. 235.  -           show(domFC(ge('like_share_add_media')));
  238. 236.  -         }
  239. 237.  -         if (composer.addMedia.postponePreview) {
  240. 238.  -           hide(domPN(composer.addMedia.postponePreview));
  241. 239.  -         }
  242. 240.  -       }
  243. 241.  -     }
  244. 242.  -     if (fromDD === true) return;
  245. 243.  -
  246. 244.  -     switch (v) {
  247. 245.  -       case 0:
  248. 246.  -         if (!cur.sbHidden) {
  249. 247.  -           var t = Fx.Transitions.easeOutCubic, d = 150, f = 'ease-out';
  250. 248.  -           cssAnim(cur.sbAva, extend({opacity: 0}, ShareBox.mrg(-26)), {duration: d, transition: t, func: f}, hide.pbind(cur.sbAva));
  251. 249.  -           cssAnim(ge('dark_box_topic'), ShareBox.mrg(0), {duration: d, transition: t, func: f});
  252. 250.  -           cur.sbHidden = true;
  253. 251.  -         }
  254. 252.  -         elfocus(cur.sbField);
  255. 253.  -       break;
  256. 254.  -
  257. 255.  -       case 1:
  258. 256.  -       case 2:
  259. 257.  -         var dd = (v == 1) ? 'like_club_dd' : 'like_mail_dd';
  260. 258.  -         cur.wdd[dd].selCount ? elfocus(cur.sbField) : WideDropdown.focus(dd);
  261. 259.  -         WideDropdown.updimgs(dd);
  262. 260.  -       break;
  263. 261.  -     }
  264. 262.  -   },
  265. 263.  -   options: function() {
  266. 264.  -     return {
  267. 265.  -       showProgress: lockButton.pbind('like_share_send'),
  268. 266.  -       hideProgress: unlockButton.pbind('like_share_send'),
  269. 267.  -       onDone: function(text, likeData) {
  270. 268.  -         curBox().hide();
  271. 269.  -         showDoneBox(text);
  272. 270.  -         if (window.Wall && isObject(likeData)) {
  273. 271.  -           Wall.likeFullUpdate(cur.sbObj, likeData);
  274. 272.  -         }
  275. 273.  -       },
  276. 274.  -       onFail: function(text) {
  277. 275.  -         ge('like_share_error').innerHTML = text;
  278. 276.  -         show('like_share_error');
  279. 277.  -         return true;
  280. 278.  -       }
  281. 279.  -     };
  282. 280.  -   }
  283. 281.  - }
  284. 282.  -
  285. 283.  - try{stManager.done('sharebox.js');}catch(e){}
  286. ------
Advertisement
Add Comment
Please, Sign In to add comment