Hormold

VK Change (#1380116702)

Sep 25th, 2013
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 13.92 KB | None | 0 0
  1. Файл - gifts.js (Старый размер - 11609 | Новый - 0):
  2. 0.  - var Gifts = {
  3. 1.  -   initGifts: function(opts, preload) {
  4. 2.  -     extend(cur, {
  5. 3.  -       pgStart: opts.start,
  6. 4.  -       pgOffset: opts.offset,
  7. 5.  -       pgCount: opts.count,
  8. 6.  -       pgPerPage: opts.perpage,
  9. 7.  -       pgCont: ge('gifts_rows'),
  10. 8.  -       pgMore: ge('gifts_load_more'),
  11. 9.  -       pgPages: ge('gifts_pages'),
  12. 10.  -       pgMorePrg: ge('gifts_more_progress'),
  13. 11.  -       pgPreload: preload,
  14. 12.  -       pgHref: '/gifts' + opts.mid + '?' + (opts.sent ? 'act=sent&' : '') + 'offset=',
  15. 13.  -       pgParams: opts.sent ? {act: 'sent'} : {},
  16. 14.  -       pgUrl: '/gifts' + opts.mid,
  17. 15.  -
  18. 16.  -       mid: opts.mid,
  19. 17.  -       hash: opts.hash
  20. 18.  -     });
  21. 19.  -     Pagination.init();
  22. 20.  -     cur.destroy.push(Pagination.deinit);
  23. 21.  -   },
  24. 22.  -   deleteGift: function(el, gift, giftData, opts) {
  25. 23.  -     opts = opts || {};
  26. 24.  -     ajax.post('al_gifts.php', {act: 'delete', mid: opts.mid, gift: giftData, hash: opts.hash}, {onDone: function(text) {
  27. 25.  -       var p = ge('gift' + gift);
  28. 26.  -       if (!p) return;
  29. 27.  -       if (p.firstChild.nextSibling) {
  30. 28.  -         p.firstChild.nextSibling.innerHTML = text;
  31. 29.  -       } else {
  32. 30.  -         p.appendChild(ce('div', {className: 'gift_deleted', innerHTML: text}));
  33. 31.  -         hide(p.firstChild);
  34. 32.  -         if (window.Pagination && !curBox()) Pagination.recache(-1);
  35. 33.  -       }
  36. 34.  -     }, showProgress: function() {
  37. 35.  -       hide(el);
  38. 36.  -       show(el.parentNode.nextSibling);
  39. 37.  -     }, hideProgress: function() {
  40. 38.  -       hide(el.parentNode.nextSibling);
  41. 39.  -       show(el);
  42. 40.  -     }});
  43. 41.  -   },
  44. 42.  -   restoreGift: function(el, gift, giftData, opts) {
  45. 43.  -     opts = opts || {};
  46. 44.  -     ajax.post('al_gifts.php', {act: 'restore', mid: opts.mid, gift: giftData, hash: opts.hash}, {onDone: function() {
  47. 45.  -       var p = ge('gift' + gift);
  48. 46.  -       if (!p || !p.firstChild.nextSibling) return;
  49. 47.  -       re(p.firstChild.nextSibling);
  50. 48.  -       show(p.firstChild);
  51. 49.  -     }});
  52. 50.  -   },
  53. 51.  -   onReceiverChange: function() {
  54. 52.  -     var dd = cur.wdd && cur.wdd['gft_box_dd'];
  55. 53.  -     if (cur.giftsLeft) {
  56. 54.  -       var selected = 0, all = dd.selected;
  57. 55.  -       for (var i in all) {
  58. 56.  -         var d = (all[i][0] > 0) ? 1 : all[i][6];
  59. 57.  -         if (selected + d > cur.giftsLeft) {
  60. 58.  -           setTimeout(WideDropdown.deselect.pbind('gft_box_dd', all[i][0], false), 0);
  61. 59.  -           return false;
  62. 60.  -         } else {
  63. 61.  -           selected += d;
  64. 62.  -         }
  65. 63.  -       }
  66. 64.  -     }
  67. 65.  -
  68. 66.  -     cur.sel = [];
  69. 67.  -     for (var i in dd.selected) {
  70. 68.  -       cur.sel.push(dd.selected[i]);
  71. 69.  -     }
  72. 70.  -     if (!cur.sel.length) {
  73. 71.  -       delete(cur.sel);
  74. 72.  -     }
  75. 73.  -     val('gft_box_to', getLang((cur.sel && cur.sel.length > 1) ? 'gifts_receivers' : 'gifts_receiver').replace(':', ''));
  76. 74.  -   },
  77. 75.  -   selectGift: function(num, votes, bonus, tip, left) {
  78. 76.  -     cur.gift = num;
  79. 77.  -     cur.giftsLeft = left;
  80. 78.  -     var box = showFastBox({
  81. 79.  -       title: false,
  82. 80.  -       width: 444,
  83. 81.  -       bodyStyle: 'border: 0px; padding: 0px;',
  84. 82.  -       onShow: function() {
  85. 83.  -         addClass(boxLayerBG, 'bg_dark');
  86. 84.  -         cur._noEscHide = true;
  87. 85.  -       },
  88. 86.  -       onClean: function() {
  89. 87.  -         if (window.WideDropdown) WideDropdown.deinit('gft_box_dd');
  90. 88.  -         cur._noEscHide = false;
  91. 89.  -       }
  92. 90.  -     }, '\
  93. 91.  - <a class="fl_r tb_close" onclick="curBox().hide()">' + getLang('global_close') + '</a>\
  94. 92.  - <div class="tb_title">' + getLang('gifts_send_gift') + '</div>\
  95. 93.  - <div id="gifts_do_send_wrap">\
  96. 94.  - ' + (left > 0 ? '<div class="info_msg" style="margin-bottom: 10px;">' + getLang('gifts_free_send_left', left) + '</div>' : '') + '\
  97. 95.  - <div class="gs_box_wrap">\
  98. 96.  -   <img class="gs_box_img" src="images/gifts/256/' + num + '.jpg" />\
  99. 97.  - </div>\
  100. 98.  - <div class="gft_send">\
  101. 99.  -   <div class="gft_box_label" id="gft_box_to">' + getLang('gifts_receiver').replace(':', '') + '</div>\
  102. 100.  -   <div class="wdd clear_fix" id="gft_box_dd">\
  103. 101.  -     <div class="fl_r wdd_arr"></div>\
  104. 102.  -     <input type="text" class="wdd_text fl_l" placeholder="' + clean(getLang('gifts_choose_recipients')) + '" id="gft_box_inp" onfocus="this.focused=1" onblur="this.focused=\'\'" />\
  105. 103.  -     <br class="clear" />\
  106. 104.  -   </div>\
  107. 105.  -   <div class="fl_r" id="gs_warn"></div>\
  108. 106.  -   <div class="gft_box_label">' + getLang('gifts_your_message').replace(':', '') + '</div>\
  109. 107.  -   <div class="gft_box_text_wrap">\
  110. 108.  -     <textarea id="gs_msg" onchange="cur.giftCurrentMessage = this.value;" onkeydown="onCtrlEnter(event, Gifts.sendGift)" onkeyup="checkTextLength(cur.maxLen, this, \'gs_warn\', false, true)"></textarea>\
  111. 109.  -   </div>\
  112. 110.  -   <div class="gs_privacy">\
  113. 111.  -     <div class="checkbox' + (cur.giftCurrentPrivacy ? ' on' : '') + '" id="gift_receiver_only" onclick="checkbox(this); cur.giftCurrentPrivacy = isChecked(this);">\
  114. 112.  -       <div></div>' + getLang('gifts_receiver_only') + '\
  115. 113.  -     </div>\
  116. 114.  -   </div>\
  117. 115.  - </div>\
  118. 116.  - ' + (bonus > 0 ? '<div class="gs_bonus">' + getLang('gifts_rate_increase').replace('{gifts_count}', getLang(bonus, 'gifts_X_votes')) + '</div>' : '') + '\
  119. 117.  - ' + (tip ? '<div class="gs_tip">' + tip + '</div>' : '') + '\
  120. 118.  - </div>\
  121. 119.  -     ', getLang('box_send'), Gifts.sendGift, getLang('global_cancel'));
  122. 120.  -     setStyle(domNS(box.bodyNode), {border: '0px'});
  123. 121.  -
  124. 122.  -     if (WideDropdown.init('gft_box_dd', {
  125. 123.  -       defaultItems: cur.users,
  126. 124.  -       items: cur.users,
  127. 125.  -       noResult: getLang('gifts_nobody_found'),
  128. 126.  -       introText: getLang('gifts_start_typing_recipient'),
  129. 127.  -       maxItems: 100,
  130. 128.  -       onChange: function(act) {
  131. 129.  -         if (act == 1 && !inArray(cur.section, ['valentines', 'love', 'friends', 'birthday'])) { // added
  132. 130.  -           setTimeout(WideDropdown.focus.pbind('gft_box_dd'), 0);
  133. 131.  -         }
  134. 132.  -         setTimeout(Gifts.onReceiverChange, 0);
  135. 133.  -       },
  136. 134.  -       itemMark: function(item) {
  137. 135.  -         return intval(item[5]) ? 1 : 0;
  138. 136.  -       }
  139. 137.  -     })) {
  140. 138.  -       if (cur.sel) {
  141. 139.  -         for (var i in cur.sel) {
  142. 140.  -           WideDropdown.select('gft_box_dd', false, cur.sel[i]);
  143. 141.  -         }
  144. 142.  -       }
  145. 143.  -     }
  146. 144.  -
  147. 145.  -     box.setControlsText('&nbsp;');
  148. 146.  -     Gifts.onReceiverChange();
  149. 147.  -     box.changed = true;
  150. 148.  -     autosizeSetup('gs_msg', {minHeight: 50, maxHeight: 150});
  151. 149.  -     if (!cur.sel || isArray(cur.sel) && !cur.sel.length) {
  152. 150.  -       WideDropdown.focus('gft_box_dd');
  153. 151.  -     } else {
  154. 152.  -       elfocus('gs_msg');
  155. 153.  -     }
  156. 154.  -   },
  157. 155.  -   sendGift: function() {
  158. 156.  -     var mids = [], dd = cur.wdd && cur.wdd['gft_box_dd'], sel = dd.selected;
  159. 157.  -     for (var i in sel) {
  160. 158.  -       if (typeof(sel[i][4]) == 'string' && sel[i][4] != '' && sel[i][4] != 'none') {
  161. 159.  -         mids.push(sel[i][4]);
  162. 160.  -       } else {
  163. 161.  -         mids.push(sel[i][0]);
  164. 162.  -       }
  165. 163.  -     }
  166. 164.  -     mids = mids.join(',');
  167. 165.  -     if (!mids) {
  168. 166.  -       return WideDropdown.focus('gft_box_dd');
  169. 167.  -     }
  170. 168.  -     var sendBtn = geByClass1('button_blue', curBox().bodyNode.nextSibling).firstChild;
  171. 169.  -     ajax.post('al_gifts.php', {
  172. 170.  -       act: 'do_send',
  173. 171.  -       text: ge('gs_msg').value,//(isVisible('gs_msg_wrap') ? ge('gs_msg').value : ''),
  174. 172.  -       mids: mids,
  175. 173.  -       number: cur.gift,
  176. 174.  -       type: isChecked('gift_receiver_only') ? 1 : 0,
  177. 175.  -       hash: cur.hash
  178. 176.  -     }, {
  179. 177.  -       onDone: function(data, text) {
  180. 178.  -         cur.giftCurrentMessage = '';
  181. 179.  -         updateMoney(data);
  182. 180.  -         curBox().hide();
  183. 181.  -         showDoneBox(text, {out: 1500})
  184. 182.  -         if (cur.giftsLeft) nav.reload();
  185. 183.  -       },
  186. 184.  -       showProgress: lockButton.pbind(sendBtn),
  187. 185.  -       hideProgress: unlockButton.pbind(sendBtn)
  188. 186.  -     });
  189. 187.  -   },
  190. 188.  -   initGiftsBox: function(box, opts) {
  191. 189.  -     box.setOptions({width: 620, bodyStyle: 'margin-top: 50px; padding: 0px', onShow: function() {
  192. 190.  -       if (cur.gftbxWasScroll) {
  193. 191.  -         boxLayerWrap.scrollTop = cur.gftbxWasScroll;
  194. 192.  -         cur.gftbxWasScroll = false;
  195. 193.  -       }
  196. 194.  -       addClass(boxLayerBG, 'bg_dark');
  197. 195.  -     }});
  198. 196.  -     if (opts.lang) {
  199. 197.  -       cur.lang = extend(cur.lang || {}, opts.lang);
  200. 198.  -     }
  201. 199.  -
  202. 200.  -     if (cur.lSTL) re(cur.lSTL);
  203. 201.  -     if (cur.gftbxAddLnk) re(cur.gftbxAddLnk);
  204. 202.  -     extend(cur, {
  205. 203.  -       gftbxOffsets: cur.gftbxOffsets || {},
  206. 204.  -       gftbxPhCache: cur.gftbxPhCache || {},
  207. 205.  -       gftbxPhShown: cur.gftbxPhShown || {},
  208. 206.  -
  209. 207.  -       gftbxAutoload: true,
  210. 208.  -       gftbxWasScroll: false,
  211. 209.  -       // gftbxHash: opts.hash,
  212. 210.  -       gftbxMid: opts.mid,
  213. 211.  -       gftbxId: box.tbId,
  214. 212.  -       gftbxAddLnk: ge('tb_'+box.tbId+'_prg').parentNode.insertBefore(se('<div class="gifts_add_lnk fl_r"><a href="/gifts?act=send" onclick="return (window.Profile ? Profile.showGiftBox(cur.oid, event) : nav.go(this, event));">' + getLang('gifts_send_gift') + '</a></div>'), ge('tb_'+box.tbId+'_prg')),
  215. 213.  -
  216. 214.  -       lSTL: boxLayerWrap.appendChild(ce('div', {id: 'layer_stl', innerHTML: '<div id="layer_stl_bg" class="fixed"></div><div id="layer_stl_cl"></div><nobr id="layer_stl_text" class="fixed">' + getLang('global_to_top') + '</nobr>', el: box.bodyNode, onclick: cancelEvent, onmousedown: Gifts.lSTLDown, sc: Gifts.onGiftsScroll})),
  217. 215.  -       lSTLShown: 0,
  218. 216.  -       lSTLWas: 0,
  219. 217.  -       lSTLWasSet: 0
  220. 218.  -     });
  221. 219.  -     cur.gftbxOffsets[opts.tab] = opts.offset;
  222. 220.  -
  223. 221.  -     ajax.preload('al_gifts.php', {
  224. 222.  -       act: 'box',
  225. 223.  -       tab: opts.tab,
  226. 224.  -       mid: opts.mid,
  227. 225.  -       offset: opts.offset
  228. 226.  -     }, opts.preload);
  229. 227.  -
  230. 228.  -     if (!box.tbDeinit) {
  231. 229.  -       box.tbDeinit = function() {
  232. 230.  -         cur.gftbxMid = cur.gftbxOffsets = cur.gftbxPhShown = false;
  233. 231.  -         re(cur.lSTL);
  234. 232.  -         removeEvent(boxLayerWrap, 'scroll', Gifts.onGiftsScroll);
  235. 233.  -       }
  236. 234.  -       addEvent(boxLayerWrap, 'scroll', Gifts.onGiftsScroll);
  237. 235.  -     }
  238. 236.  -
  239. 237.  -     if (cur.gftbxLoaded) cur.gftbxLoaded();
  240. 238.  -     onBodyResize();
  241. 239.  -     Gifts.onGiftsScroll();
  242. 240.  -   },
  243. 241.  -   moreGifts: function() {
  244. 242.  -     var t = curBox().tbCur;
  245. 243.  -     if (isVisible('gifts_more_prg' + t)) return;
  246. 244.  -     ajax.post('al_gifts.php', {act: 'box', tab: t, mid: cur.gftbxMid, offset: cur.gftbxOffsets[t]}, {
  247. 245.  -       onDone: function(rows, newOffset, needMore) {
  248. 246.  -         var el = ce('div', {innerHTML: rows}), cnt = ge('gifts_rows' + t);
  249. 247.  -         if (!cnt) return;
  250. 248.  -
  251. 249.  -         for (var e = domFC(el); e; e = domFC(el)) {
  252. 250.  -           cnt.appendChild(e);
  253. 251.  -         }
  254. 252.  -         cur.gftbxOffsets[t] = newOffset;
  255. 253.  -         if (needMore) {
  256. 254.  -           Gifts.preloadGifts();
  257. 255.  -         } else {
  258. 256.  -           hide('gifts_more_link' + t);
  259. 257.  -         }
  260. 258.  -       }, showProgress: function() {
  261. 259.  -         hide('gifts_more_link' + t);
  262. 260.  -         show('gifts_more_prg' + t);
  263. 261.  -       }, hideProgress: function() {
  264. 262.  -         show('gifts_more_link' + t);
  265. 263.  -         hide('gifts_more_prg' + t);
  266. 264.  -       }, cache: 1
  267. 265.  -     });
  268. 266.  -     cur.gftbxAutoload = true;
  269. 267.  -   },
  270. 268.  -   preloadGifts: function() {
  271. 269.  -     var t = curBox().tbCur;
  272. 270.  -     ajax.post('al_gifts.php', {act: 'box', tab: t, mid: cur.gftbxMid, offset: cur.gftbxOffsets[t]}, {
  273. 271.  -       cache: 1
  274. 272.  -     });
  275. 273.  -   },
  276. 274.  -   lSTLDown: function(e) {
  277. 275.  -     e = e || window.event;
  278. 276.  -     if (checkEvent(e)) return;
  279. 277.  -
  280. 278.  -     if (!__afterFocus) {
  281. 279.  -       var to = 0, st = boxLayerWrap.scrollTop;
  282. 280.  -       if (cur.lSTLWasSet && cur.lSTLWas) {
  283. 281.  -         to = cur.lSTLWas;
  284. 282.  -         cur.lSTLWas = 0;
  285. 283.  -       } else {
  286. 284.  -         cur.lSTLWas = st;
  287. 285.  -       }
  288. 286.  -       boxLayerWrap.scrollTop = to;
  289. 287.  -     }
  290. 288.  -     return cancelEvent(e);
  291. 289.  -   },
  292. 290.  -   onGiftsScroll: function() {
  293. 291.  -     var st = boxLayerWrap.scrollTop, mx = 200, vis = cur.lSTLWas || (st > mx), o = 0;
  294. 292.  -     cur.lSTL.style.marginTop = st + 'px';
  295. 293.  -     if (!vis) {
  296. 294.  -       if (cur.lSTLShown !== 0) {
  297. 295.  -         hide(cur.lSTL);
  298. 296.  -         cur.lSTLShown = 0;
  299. 297.  -       }
  300. 298.  -     } else {
  301. 299.  -       if (cur.lSTLShown !== 1) {
  302. 300.  -         show(cur.lSTL);
  303. 301.  -         cur.lSTLShown = 1;
  304. 302.  -       }
  305. 303.  -       if (cur.lSTLWas && st > 500) {
  306. 304.  -         cur.lSTLWas = 0;
  307. 305.  -       }
  308. 306.  -       if (st > mx) {
  309. 307.  -         o = (st - mx) / mx;
  310. 308.  -         if (cur.lSTLWasSet) {
  311. 309.  -           cur.lSTLWasSet = 0;
  312. 310.  -           val(domLC(cur.lSTL), getLang('global_to_top'));
  313. 311.  -           removeClass(domLC(cur.lSTL), 'down');
  314. 312.  -         }
  315. 313.  -       } else {
  316. 314.  -         o = (mx - st) / mx;
  317. 315.  -         if (cur.lSTLWas) {
  318. 316.  -           if (!cur.lSTLWasSet) {
  319. 317.  -             cur.lSTLWasSet = 1;
  320. 318.  -             val(domLC(cur.lSTL), '');
  321. 319.  -             addClass(domLC(cur.lSTL), 'down');
  322. 320.  -           }
  323. 321.  -         }
  324. 322.  -       }
  325. 323.  -     }
  326. 324.  -     setStyle(cur.lSTL, {opacity: Math.min(Math.max(o, 0), 1)});
  327. 325.  -     if (!cur.gftbxAutoload) return;
  328. 326.  -     var bt = lastWindowHeight, objMore = ge('gifts_more_link' + curBox().tbCur);
  329. 327.  -     if (isVisible(objMore) && (bt > getXY(objMore, true)[1])) {
  330. 328.  -       objMore.click();
  331. 329.  -     }
  332. 330.  -   }
  333. 331.  - }
  334. 332.  -
  335. 333.  - try{stManager.done('gifts.js');}catch(e){}
  336. ------
Advertisement
Add Comment
Please, Sign In to add comment