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