Hormold

VK Change (#1380103226)

Sep 25th, 2013
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 73.05 KB | None | 0 0
  1. Файл - privacy.js (Старый размер - 40185 | Новый - 0):
  2. 0.  - var Privacy = {
  3. 1.  -   flistBox: function (box, friendsData, selectedFriends, rowTemplate, saveLang, hash) {
  4. 2.  -     cur.flistTpl = rowTemplate;
  5. 3.  -     if (selectedFriends.length === 0) selectedFriends = {};
  6. 4.  -
  7. 5.  -     cur.flistList = cur.flistFriends = friendsData;
  8. 6.  -     cur.flistSelected = selectedFriends;
  9. 7.  -
  10. 8.  -     cur.flistIndex = new vkIndexer(friendsData, function(obj) {
  11. 9.  -       return obj[1]+' '+obj[4];
  12. 10.  -     });
  13. 11.  -
  14. 12.  -     box.removeButtons();
  15. 13.  -
  16. 14.  -     if (cur.flistTooltip) {
  17. 15.  -       if (cur.flistTooltipRight) {
  18. 16.  -         var hintLeft = '<td class="priv_h_arrow_td" style="vertical-align: top;"><div class="priv_h_arrow" style="margin-top: 50px;"><img src="/images/ddtooltip'+(window.devicePixelRatio >= 2 ? '_2x' : '')+'.png" width="16" height="11" class="priv_h_arrow_img png" /></div></td>';
  19. 17.  -         var hintRight = '';
  20. 18.  -       } else {
  21. 19.  -         var hintRight = '<td class="priv_h_arrow_td" style="vertical-align: top;"><div class="priv_h_arrow_l" style="margin-top: 50px;"><img src="/images/ddtooltip'+(window.devicePixelRatio >= 2 ? '_2x' : '')+'.png" width="16" height="11" class="priv_h_arrow_img png" /></div></td>';
  22. 20.  -         var hintLeft = '';
  23. 21.  -       }
  24. 22.  -
  25. 23.  -
  26. 24.  -       var ttHelper = ge('flist_helper');
  27. 25.  -       ttHelper.appendChild(ce('div', {
  28. 26.  -         innerHTML: '<table cellspacing="0" cellpadding="0">\
  29. 27.  -   <tr class="priv_h_top_sh">\
  30. 28.  -     <td></td>\
  31. 29.  -     <td colspan="5"><div class="priv_h_bottom2"></div></td>\
  32. 30.  -   </tr>\
  33. 31.  -   <tr class="priv_h_top_sh">\
  34. 32.  -     <td></td>\
  35. 33.  -     <td class="priv_h_side_td2"><div class="priv_h_side"></div></td>\
  36. 34.  -     <td colspan="3"><div class="priv_h_bottom"></div></td>\
  37. 35.  -     <td class="priv_h_side_td2"><div class="priv_h_side"></div></td>\
  38. 36.  -   </tr>\
  39. 37.  -   <tr>\
  40. 38.  -     '+hintLeft+'\
  41. 39.  -     <td class="priv_h_side_td2"><div class="priv_h_side"></div></td>\
  42. 40.  -     <td class="priv_h_side_td"><div class="priv_h_side"></div></td>\
  43. 41.  -     <td><div class="priv_h_rows flist_info_text" style="width: 179px;">'+cur.flistTooltip+'</div></td>\
  44. 42.  -     <td class="priv_h_side_td"><div class="priv_h_side"></div></td>\
  45. 43.  -     <td class="priv_h_side_td2"><div class="priv_h_side"></div></td>\
  46. 44.  -     '+hintRight+'\
  47. 45.  -   </tr>\
  48. 46.  -   <tr class="priv_h_bottom_sh">\
  49. 47.  -     <td></td>\
  50. 48.  -     <td class="priv_h_side_td2"><div class="priv_h_side"></div></td>\
  51. 49.  -     <td colspan="3"><div class="priv_h_bottom"></div></td>\
  52. 50.  -     <td class="priv_h_side_td2"><div class="priv_h_side"></div></td>\
  53. 51.  -   </tr>\
  54. 52.  -   <tr class="priv_h_bottom_sh">\
  55. 53.  -     <td></td>\
  56. 54.  -     <td colspan="5"><div class="priv_h_bottom2"></div></td>\
  57. 55.  -   </tr>\
  58. 56.  - </table>'
  59. 57.  -       }));
  60. 58.  -       if (cur.flistTooltipRight) {
  61. 59.  -         ttHelper.style.marginLeft = '510px';
  62. 60.  -         animate(ttHelper, {opacity: 1, marginLeft: 538}, 200);
  63. 61.  -       } else {
  64. 62.  -         animate(ttHelper, {opacity: 1, marginLeft: -228}, 200);
  65. 63.  -       }
  66. 64.  -     } else {
  67. 65.  -       box.addButton(getLang('global_cancel'), function () {
  68. 66.  -         box.hide();
  69. 67.  -       }, 'no');
  70. 68.  -     }
  71. 69.  -     box.addButton(saveLang || getLang('global_save'), function () {
  72. 70.  -       var listName = ge('flist_list_name');
  73. 71.  -       var listStr = false;
  74. 72.  -       if (isVisible(listName)) {
  75. 73.  -         listStr = listName.value;
  76. 74.  -         if (!listStr) {
  77. 75.  -           return notaBene(listName);
  78. 76.  -         }
  79. 77.  -         placeholderSetup(listName, {back: true});
  80. 78.  -         elfocus(listName, 0, listName.value.length);
  81. 79.  -       }
  82. 80.  -       var list = {}, ids = [];
  83. 81.  -       each (friendsData, function () {
  84. 82.  -         if (cur.flistSelected[this[0]]) {
  85. 83.  -           list[this[0]] = this;
  86. 84.  -           ids.push(this[0]);
  87. 85.  -         }
  88. 86.  -       });
  89. 87.  -       if (cur.flistFriendsPrivacy) {
  90. 88.  -         ajax.post('al_settings.php', {act: 'hide_friends', hash: hash, ids: ids.join(',')}, {
  91. 89.  -           onDone: function(control, rules) {
  92. 90.  -             showDoneBox(cur.flistFriendsPrivacyText);
  93. 91.  -             box.hide();
  94. 92.  -           },
  95. 93.  -           showProgress: box.showProgress,
  96. 94.  -           hiderogress: box.hideProgress
  97. 95.  -         });
  98. 96.  -         showDoneBox(cur.flistFriendsPrivacyText, {out: 4000});
  99. 97.  -         if (cur.flistNavReload) setTimeout(function() {nav.reload();}, 2000);
  100. 98.  -         return;
  101. 99.  -       }
  102. 100.  -
  103. 101.  -       if (cur.onFlistSave) {
  104. 102.  -         cur.onFlistSave(ids, list, hash, listStr);
  105. 103.  -       }
  106. 104.  -
  107. 105.  -       if (!box.leaveOnSave) {
  108. 106.  -         box.hide();
  109. 107.  -       }
  110. 108.  -     });
  111. 109.  -
  112. 110.  -     var rInner = ge('flist_right_inner');
  113. 111.  -     var rCol = ge('flist_right_col');
  114. 112.  -     var rHeight = getSize(rInner)[1];
  115. 113.  -     var rColHeight = getSize(rCol)[1];
  116. 114.  -     cur.flistScrollbar = new Scrollbar('flist_scroll_wrap', {
  117. 115.  -       nomargin: true,
  118. 116.  -       right: vk.rtl ? 'auto' : 0,
  119. 117.  -       left: !vk.rtl ? 'auto' : 0,
  120. 118.  -       more: Privacy.flistMore,
  121. 119.  -       onScroll: function(delta) {
  122. 120.  -         rCol.scrollTop -= delta;
  123. 121.  -       },
  124. 122.  -       wheelObj: ge('flist_cont')
  125. 123.  -     });
  126. 124.  -
  127. 125.  -     cur.flistAllCont = ge('flist_all_list');
  128. 126.  -     cur.flistSelCont = ge('flist_sel_list');
  129. 127.  -     cur.flistSearchEl = ge('flist_search');
  130. 128.  -
  131. 129.  -     if (cur.flistLimit && cur.flistSelectedCnt >= (cur.flistLimit - 1)) {
  132. 130.  -       Privacy.flistFull();
  133. 131.  -     }
  134. 132.  -
  135. 133.  -     if (cur.flistCountStr && cur.flistSelectedCnt > 0) {
  136. 134.  -       ge('flist_sel_summary').innerHTML = langNumeric(cur.flistSelectedCnt, cur.flistCountStr);
  137. 135.  -     }
  138. 136.  -
  139. 137.  -
  140. 138.  -     return false;
  141. 139.  -   },
  142. 140.  -   flistMore: function() {
  143. 141.  -     var lim = cur.flistShown + 60;
  144. 142.  -     while(cur.flistShown < lim && Privacy.flistShowOne(cur.flistList[cur.flistShown + 1])) {
  145. 143.  -       ++cur.flistShown;
  146. 144.  -     }
  147. 145.  -     setTimeout(function() {
  148. 146.  -       cur.flistScrollbar.update();
  149. 147.  -     }, 10);
  150. 148.  -   },
  151. 149.  -   flistShowOne: function(u, ins) {
  152. 150.  -     if (!u) return false;
  153. 151.  -     if (ge('flist_sel_cell' + u[0])) {
  154. 152.  -       return true;
  155. 153.  -     }
  156. 154.  -     if (ge('flist_cell' + u[0])) {
  157. 155.  -       show(ge('flist_cell' + u[0]));
  158. 156.  -       return true;
  159. 157.  -     }
  160. 158.  -     var uname = u[1];
  161. 159.  -     if (cur.flistSelection) {
  162. 160.  -       uname = uname.replace(cur.flistSelection.re, cur.flistSelection.val);
  163. 161.  -     }
  164. 162.  -     var row = ce('div', {id: 'flist_cell' + u[0], innerHTML: cur.flistTpl.replace('%id%', u[0]).replace('%name%', uname).replace('%photo%', u[2])});
  165. 163.  -     if (ins) {
  166. 164.  -       cur.flistAllCont.insertBefore(row, cur.flistAllCont.firstChild);
  167. 165.  -     } else {
  168. 166.  -       cur.flistAllCont.appendChild(row);
  169. 167.  -     }
  170. 168.  -     return true;
  171. 169.  -   },
  172. 170.  -   flistSelect: function(id, obj, event) {
  173. 171.  -     var el = ge('flist_cell'+id);
  174. 172.  -     var cont = obj.parentNode;
  175. 173.  -     if (cont.id.slice(0, 9) == 'flist_sel') {
  176. 174.  -       re(cont);
  177. 175.  -       if (el) {
  178. 176.  -         show(el);
  179. 177.  -       } else {
  180. 178.  -         for (var i in cur.flistList) {
  181. 179.  -           if (cur.flistList[i][0] == id) {
  182. 180.  -             Privacy.flistShowOne(cur.flistList[i], true);
  183. 181.  -             break;
  184. 182.  -           }
  185. 183.  -         }
  186. 184.  -       }
  187. 185.  -       cur.flistSelectedCnt--;
  188. 186.  -       if (cur.flistSelectedCnt == 0) {
  189. 187.  -         show('flist_info');
  190. 188.  -       }
  191. 189.  -       if (cur.flistLimit && cur.flistSelectedCnt == (cur.flistLimit - 1)) {
  192. 190.  -         removeClass(cur.flistAllCont, 'flist_full');
  193. 191.  -       }
  194. 192.  -       curBox().changed = true;
  195. 193.  -       delete cur.flistSelected[id];
  196. 194.  -     } else {
  197. 195.  -       if (cur.flistLimit && cur.flistSelectedCnt >= cur.flistLimit) {
  198. 196.  -         Privacy.flistFull(event || window.event);
  199. 197.  -         return false;
  200. 198.  -       }
  201. 199.  -       var html = val(el);
  202. 200.  -       hide(el);
  203. 201.  -       cur.flistSelCont.insertBefore(ce('div', {
  204. 202.  -         id: 'flist_sel_cell'+id,
  205. 203.  -         innerHTML: html
  206. 204.  -       }), cur.flistSelCont.firstChild);
  207. 205.  -       if (Privacy.flistShowOne(cur.flistList[cur.flistShown + 1])) {
  208. 206.  -         ++cur.flistShown;
  209. 207.  -       }
  210. 208.  -       if (cur.flistSelectedCnt == 0) {
  211. 209.  -         hide('flist_info');
  212. 210.  -       }
  213. 211.  -       cur.flistSelectedCnt++;
  214. 212.  -       if (cur.flistLimit && cur.flistSelectedCnt >= cur.flistLimit) {
  215. 213.  -         Privacy.flistFull(event || window.event);
  216. 214.  -       }
  217. 215.  -       cur.flistSelected[id] = true;
  218. 216.  -       if (cur.flistSearchStr) {
  219. 217.  -         Privacy.flistSearch(false);
  220. 218.  -       }
  221. 219.  -     }
  222. 220.  -     if (cur.flistCountStr) {
  223. 221.  -       val('flist_sel_summary', cur.flistSelectedCnt > 0 ? langNumeric(cur.flistSelectedCnt, cur.flistCountStr) : cur.flistNoSelStr);
  224. 222.  -     }
  225. 223.  -     cur.flistScrollbar.update();
  226. 224.  -     return false;
  227. 225.  -   },
  228. 226.  -   flistFull: function(tooltipEvent) {
  229. 227.  -     if (tooltipEvent) {
  230. 228.  -       var tt = showTooltip(bodyNode, {
  231. 229.  -         text: cur.limitTooltip,
  232. 230.  -         className: 'flist_max_size_tt',
  233. 231.  -         slideX: -15,
  234. 232.  -         shift: [-tooltipEvent.pageX - 5, -tooltipEvent.pageY - 5, 300],
  235. 233.  -         nohide: 1,
  236. 234.  -         hasover: 1,
  237. 235.  -         toup: 1
  238. 236.  -       });
  239. 237.  -       setTimeout(function() {
  240. 238.  -         tooltips.hide(bodyNode);
  241. 239.  -       }, 2000);
  242. 240.  -     }
  243. 241.  -     addClass(cur.flistAllCont, 'flist_full');
  244. 242.  -   },
  245. 243.  -   flistSearch: function(obj, event) {
  246. 244.  -     if (event && event.keyCode < 41 && event.keyCode > 15) {
  247. 245.  -       if (event.keyCode == 27) {
  248. 246.  -         if (obj.value) {
  249. 247.  -           cancelEvent(event);
  250. 248.  -         }
  251. 249.  -         obj = false;
  252. 250.  -       } else {
  253. 251.  -         return;
  254. 252.  -       }
  255. 253.  -     }
  256. 254.  -     setTimeout(function() {
  257. 255.  -       var str = obj ? obj.value : '';
  258. 256.  -       cur.flistSearchStr = str;
  259. 257.  -       if (str) {
  260. 258.  -         cur.flistList = cur.flistIndex.search(str);
  261. 259.  -         cur.flistSelection = {
  262. 260.  -           re: new RegExp('('+str.replace(cur.flistIndex.delimiter, '|').replace(/[\/\\\(\)\[\]\{\}\*,]/g, '').replace(/^\||\|$/g, '')+')', 'gi'),
  263. 261.  -           val: '<em>$1</em>'
  264. 262.  -         };
  265. 263.  -         show('flist_search_reset');
  266. 264.  -         cur.flistScrollbar.scrollTop(0);
  267. 265.  -       } else {
  268. 266.  -         cur.flistList = cur.flistFriends;
  269. 267.  -         cur.flistSelection = false;
  270. 268.  -         hide('flist_search_reset');
  271. 269.  -         val(cur.flistSearchEl, '');
  272. 270.  -       }
  273. 271.  -
  274. 272.  -       if (cur.flistList.length) {
  275. 273.  -         cur.flistAllCont.innerHTML = '';
  276. 274.  -         cur.flistShown = -1;
  277. 275.  -         Privacy.flistMore();
  278. 276.  -       } else {
  279. 277.  -
  280. 278.  -       }
  281. 279.  -     }, 0);
  282. 280.  -   },
  283. 281.  -   hideFriends: function(key, obj) {
  284. 282.  -     var checked = cur.privacy[key][2];
  285. 283.  -     showBox('al_friends.php', {act: 'select_friends_box', from: 'friends_privacy', Checked: checked.join(',')}, {stat: ['privacy.js', 'privacy.css', 'indexer.js']});
  286. 284.  -     cur.onFlistSave = function(ids, list, hash) {
  287. 285.  -       ajax.post('al_settings.php', {act: 'hide_friends', hash: hash, ids: ids.join(',')}, {
  288. 286.  -         onDone: function(control, rules) {
  289. 287.  -           ge('privacy_'+key+'_hide').innerHTML = control;
  290. 288.  -           cur.privacy[key] = rules;
  291. 289.  -           if (cur.onPrivacyChanged) cur.onPrivacyChanged(key);
  292. 290.  -         }
  293. 291.  -       });
  294. 292.  -     }
  295. 293.  -   },
  296. 294.  -
  297. 295.  -   customType: 4,
  298. 296.  -   someType: 5,
  299. 297.  -   listsType: 6,
  300. 298.  -   update: function(key) {
  301. 299.  -     var el = ge('privacy_edit_' + key), p = cur.privacy[key], v = p[0];
  302. 300.  -     var types = cur.privacy[key + '_types'] || cur.privacy._types;
  303. 301.  -     var lists = cur.privacy[key + '_lists'] || cur.privacy._lists || {};
  304. 302.  -
  305. 303.  -     if (el) {
  306. 304.  -       ge('privacy_header').innerHTML = el.innerHTML = types[v];
  307. 305.  -       if (el.nextSibling) {
  308. 306.  -         if (v == Privacy.listsType) {
  309. 307.  -           var str = [];
  310. 308.  -           for (var i in p[2]) {
  311. 309.  -             var cat_id = -p[2][i], color = (cat_id - 1) % 8 + 1;
  312. 310.  -             str.push('<span class="group' + color + '">' + lists[cat_id] + '</span>');
  313. 311.  -           }
  314. 312.  -           el.nextSibling.innerHTML = (str.length ? ': ' : '') + str.join(', ');
  315. 313.  -         } else {
  316. 314.  -           el.nextSibling.innerHTML = '';
  317. 315.  -         }
  318. 316.  -       }
  319. 317.  -     }
  320. 318.  -
  321. 319.  -     if (cur.onPrivacyChanged) cur.onPrivacyChanged(key);
  322. 320.  -   },
  323. 321.  -   someSaved: function(key, ids, list, plain) {
  324. 322.  -     cur.privacy[key] = [Privacy.someType, 0, ids, []];
  325. 323.  -
  326. 324.  -     var count = ids.length, str = [];
  327. 325.  -     for (var i = 0; i < count && i < 5; ++i) {
  328. 326.  -       var id = ids[i], mem = plain ? list[i] : list[id], shortname = mem[4].replace(/'/g, '');
  329. 327.  -       str.push('<a href="/' + (shortname ? shortname : ('id' + id)) + '" onclick="return nav.go(this, event)">' + mem[1] + '</a>');
  330. 328.  -     }
  331. 329.  -     str = str.join(', ');
  332. 330.  -     if (count > 5) {
  333. 331.  -       str += ' ' + getLang('privacy_N_friends_some', count - 5);
  334. 332.  -     }
  335. 333.  -
  336. 334.  -     var el = ge('privacy_edit_' + key);
  337. 335.  -     var types = cur.privacy[key + '_types'] || cur.privacy._types;
  338. 336.  -     el.innerHTML = types[Privacy.someType];
  339. 337.  -     el.nextSibling.innerHTML = ': ' + str;
  340. 338.  -
  341. 339.  -     if (cur.onPrivacyChanged) cur.onPrivacyChanged(key);
  342. 340.  -   },
  343. 341.  -   customSaved: function(key, np, plus, minus) {
  344. 342.  -     cur.privacy[key] = np;
  345. 343.  -     if (np[1] == 1 && !np[3].length || np[0] == Privacy.listsType) {
  346. 344.  -       Privacy.update(key);
  347. 345.  -     } else if (np[0] == Privacy.someType) {
  348. 346.  -       Privacy.someSaved(key, np[2], plus, true);
  349. 347.  -     } else { // save here
  350. 348.  -       var el = ge('privacy_edit_' + key);
  351. 349.  -       var types = cur.privacy[key + '_types'] || cur.privacy._types;
  352. 350.  -       var lists = cur.privacy[key + '_lists'] || cur.privacy._lists || {};
  353. 351.  -
  354. 352.  -       if (key == 'hidden_friends') { // hack for hidden friends
  355. 353.  -         types = cur.privacy._types;
  356. 354.  -       }
  357. 355.  -
  358. 356.  -       var label = types[Privacy.listsType], str = '';
  359. 357.  -       if (np[1] == 1) {
  360. 358.  -         label = types[np[2][0]];
  361. 359.  -       } else {
  362. 360.  -         str = [];
  363. 361.  -         var count = plus.length, hasUser = false;
  364. 362.  -         for (var i = 0; i < count && i < 5; ++i) {
  365. 363.  -           var mem = plus[i], id = mem[0];
  366. 364.  -           if (id > 0) {
  367. 365.  -             var shortname = mem[4].replace(/'/g, '');
  368. 366.  -             hasUser = true;
  369. 367.  -             str.push('<a href="/' + (shortname ? shortname : ('id' + id)) + '" onclick="return nav.go(this, event)">' + mem[5] + '</a>');
  370. 368.  -           } else {
  371. 369.  -             var cat_id = -id, color = (cat_id - 1) % 8 + 1;
  372. 370.  -             str.push('<span class="group' + color + '">' + lists[cat_id] + '</span>');
  373. 371.  -           }
  374. 372.  -         }
  375. 373.  -         if (hasUser) {
  376. 374.  -           label = types[Privacy.someType];
  377. 375.  -         }
  378. 376.  -         str = ': ' + str.join(', ');
  379. 377.  -         if (count > 5) {
  380. 378.  -           str += ' ' + getLang('privacy_N_friends_some', count - 5);
  381. 379.  -         }
  382. 380.  -       }
  383. 381.  -       if (minus.length) {
  384. 382.  -         var count = minus.length, mstr = [];
  385. 383.  -         for (var i = 0; i < count && i < 5; ++i) {
  386. 384.  -           var mem = minus[i], id = mem[0];
  387. 385.  -           if (id > 0) {
  388. 386.  -             var shortname = mem[4].replace(/'/g, '');
  389. 387.  -             mstr.push('<a href="/' + (shortname ? shortname : ('id' + id)) + '" onclick="return nav.go(this, event)">' + mem[6] + '</a>');
  390. 388.  -           } else {
  391. 389.  -             var cat_id = -id, color = (cat_id - 1) % 8 + 1;
  392. 390.  -             mstr.push('<span class="group' + color + '">' + lists[cat_id] + '</span>');
  393. 391.  -           }
  394. 392.  -         }
  395. 393.  -         str += ', ' + getLang('global_privacy_except') + ' ' + mstr.join(', ');
  396. 394.  -         if (count > 5) {
  397. 395.  -           str += ' ' + getLang('privacy_N_friends_more', count - 5);
  398. 396.  -         }
  399. 397.  -       }
  400. 398.  -       el.innerHTML = label;
  401. 399.  -       el.nextSibling.innerHTML = str;
  402. 400.  -
  403. 401.  -       if (cur.onPrivacyChanged) cur.onPrivacyChanged(key);
  404. 402.  -     }
  405. 403.  -   },
  406. 404.  -   choose: function(ev, val, list) {
  407. 405.  -     var key = cur.privSel, p = cur.privacy[key], noselect = (cur.privacy._noselect || key == 'chat_actions');
  408. 406.  -     if (noselect) {
  409. 407.  -       if (cur.onPrivacyChanged) cur.onPrivacyChanged(key, val, list);
  410. 408.  -       Privacy.qhide();
  411. 409.  -       return cancelEvent(ev);
  412. 410.  -     }
  413. 411.  -     if (val == Privacy.customType) {
  414. 412.  -       var type, plus, minus = [];
  415. 413.  -       if (p[0] == Privacy.customType) {
  416. 414.  -         type = p[1];
  417. 415.  -         plus = p[2];
  418. 416.  -         minus = p[3];
  419. 417.  -       } else if (p[0] == Privacy.someType || p[0] == Privacy.listsType) {
  420. 418.  -         type = 0;
  421. 419.  -         plus = p[2];
  422. 420.  -       } else {
  423. 421.  -         type = 1;
  424. 422.  -         plus = p[2];
  425. 423.  -       }
  426. 424.  -       cur.onCprivSave = Privacy.customSaved.pbind(key);
  427. 425.  -       return showBox('al_friends.php', {act: 'custom_privacy_box', type: type, plus: plus.join(','), minus: minus.join(','), opt: cur.privacy.custom_box_type ? cur.privacy.custom_box_type : (key == 'apps_invite' || key == 'videocalls' ? 'fronly' : '')}, {stat: ['ui_controls.js', 'ui_controls.css']});
  428. 426.  -     } else if (val == Privacy.someType) {
  429. 427.  -       var checked = (p[0] == Privacy.someType || p[0] == Privacy.complexType && p[1] == 0) ? p[2].join(',') : '';
  430. 428.  -       cur.onFlistSave = function (ids, list) {
  431. 429.  -         Privacy.someSaved(key, ids, list);
  432. 430.  -       }
  433. 431.  -       return showTabbedBox('al_friends.php', {act: 'select_friends_box', Checked: checked}, {stat: ['ui_controls.js']});
  434. 432.  -     } else if (val == Privacy.listsType) {
  435. 433.  -       var el = ge('privacy_l_item' + list);
  436. 434.  -       if (el.className == 'l_item_sel') {
  437. 435.  -         el.className = 'l_item';
  438. 436.  -         var ind = indexOf(p[2], -list);
  439. 437.  -         if (ind != -1) {
  440. 438.  -           p[2].splice(ind, 1);
  441. 439.  -         }
  442. 440.  -         if (!p[2].length && key != 'updates') { // sorry, dirty hack
  443. 441.  -           cur.privacy[key] = [0, 1, [0], []];
  444. 442.  -         }
  445. 443.  -       } else {
  446. 444.  -         el.className = 'l_item_sel';
  447. 445.  -         if (p[0] != val) {
  448. 446.  -           p = cur.privacy[key] = [val, 0, [], []];
  449. 447.  -         }
  450. 448.  -         p[2].push(-list);
  451. 449.  -       }
  452. 450.  -       Privacy.update(key);
  453. 451.  -       return cancelEvent(ev);
  454. 452.  -     }
  455. 453.  -     cur.privacy[key] = [val, 1, [val], []];
  456. 454.  -     Privacy.update(key);
  457. 455.  -     Privacy.qhide();
  458. 456.  -   },
  459. 457.  -   select: function(val, force) {
  460. 458.  -     if (!force && val === cur.privSelIndex) return;
  461. 459.  -     if (cur.privSelIndex !== false) {
  462. 460.  -       var el = ge('privacy_item' + cur.privSelIndex);
  463. 461.  -       if (el) el.className = 'item';
  464. 462.  -       if (cur.privSelIndex == Privacy.listsType && cur.privacy[cur.privSel][0] != Privacy.listsType) {
  465. 463.  -         if (Privacy.toup) {
  466. 464.  -           hide(el.previousSibling);
  467. 465.  -           setStyle(cur.privEl, {top: cur.privFromY - getSize(cur.privEl)[1]});
  468. 466.  -         } else {
  469. 467.  -           hide(el.nextSibling);
  470. 468.  -         }
  471. 469.  -       }
  472. 470.  -     }
  473. 471.  -     cur.privSelIndex = val;
  474. 472.  -     var el = ge('privacy_item' + cur.privSelIndex), add = (cur.privSelIndex == Privacy.someType) ? '_plus' : '';
  475. 473.  -     if (el.nextSibling && el.nextSibling.id == 'privacy_item' + Privacy.listsType && isVisible(el.nextSibling.nextSibling)) {
  476. 474.  -       el.className = 'last item_sel' + add;
  477. 475.  -     } else {
  478. 476.  -       if (val == Privacy.listsType) {
  479. 477.  -         if (Privacy.toup) {
  480. 478.  -           show(el.previousSibling);
  481. 479.  -           setStyle(cur.privEl, {top: cur.privFromY - getSize(cur.privEl)[1]});
  482. 480.  -         } else {
  483. 481.  -           show(el.nextSibling);
  484. 482.  -         }
  485. 483.  -       } else {
  486. 484.  -         el.className = 'item_sel' + add;
  487. 485.  -       }
  488. 486.  -     }
  489. 487.  -   },
  490. 488.  -   unselect: function(val) {
  491. 489.  -     if (val != cur.privSelIndex) return;
  492. 490.  -     ge('privacy_item' + val).className = 'item';
  493. 491.  -     cur.privSelIndex = false;
  494. 492.  -   },
  495. 493.  -   hide: function(timeout) {
  496. 494.  -     if (timeout > 0) {
  497. 495.  -       cur.hidePrivacyTimer = setTimeout(Privacy.hide.pbind(0), timeout);
  498. 496.  -       return;
  499. 497.  -     }
  500. 498.  -     clearTimeout(cur.hidePrivacyTimer);
  501. 499.  -     if (timeout == -1) {
  502. 500.  -       hide(cur.privEl, cur.privHelper);
  503. 501.  -     } else if (isVisible) {
  504. 502.  -       fadeOut(cur.privEl, 200);
  505. 503.  -       if (cur.privHelper) {
  506. 504.  -         fadeOut(cur.privHelper, 200);
  507. 505.  -       }
  508. 506.  -     }
  509. 507.  -     cur.privSel = cur.privSelIndex = false;
  510. 508.  -     removeEvent(document, 'click', Privacy.qhide);
  511. 509.  -   },
  512. 510.  -   show: function(el, ev, key, delta) {
  513. 511.  -     var p = cur.privacy[key], noselect = (key.indexOf('actions') != -1);
  514. 512.  -     if (!p) return;
  515. 513.  -
  516. 514.  -     if (!cur.privEl) {
  517. 515.  -       if (cur.privEl = ge('privacy_dropdown')) {
  518. 516.  -         cur.privRows = cur.privEl.firstChild.rows[1].cells[1].firstChild;
  519. 517.  -       }
  520. 518.  -     }
  521. 519.  -     if (!cur.privEl) {
  522. 520.  -       cur.privEl = bodyNode.appendChild(ce('div', {id: 'privacy_dropdown', innerHTML: '\
  523. 521.  - <table cellspacing="0" cellpadding="0">\
  524. 522.  -   <tr class="top_sh">\
  525. 523.  -     <td colspan="3">\
  526. 524.  -       <div class="bottom2"></div><div class="bottom"></div>\
  527. 525.  -     </td>\
  528. 526.  -   <tr>\
  529. 527.  -     <td class="side"><div></div></td>\
  530. 528.  -     <td><div class="rows"></div></td>\
  531. 529.  -     <td class="side"><div></div></td>\
  532. 530.  -   </tr>\
  533. 531.  -   <tr class="bottom_sh">\
  534. 532.  -     <td colspan="3">\
  535. 533.  -       <div class="bottom"></div><div class="bottom2"></div>\
  536. 534.  -     </td>\
  537. 535.  -   </tr>\
  538. 536.  - </table>'}));
  539. 537.  -       cur.privRows = cur.privEl.firstChild.rows[1].cells[1].firstChild;
  540. 538.  -       addEvent(cur.privEl, 'mouseout', Privacy.hide.pbind(500));
  541. 539.  -       addEvent(cur.privEl, 'mouseover', function() { clearTimeout(cur.hidePrivacyTimer); });
  542. 540.  -     }
  543. 541.  -     setTimeout(addEvent.pbind(document, 'click', Privacy.qhide), 1);
  544. 542.  -
  545. 543.  -     var types = cur.privacy[key + '_types'] || cur.privacy._types;
  546. 544.  -     var lists = cur.privacy[key + '_lists'] || cur.privacy._lists || {};
  547. 545.  -     var hidden = cur.privacy[key + '_hidden'] || cur.privacy._hidden || {};
  548. 546.  -     var fontSize = getStyle(el, 'fontSize') || vk.fs;
  549. 547.  -     setStyle(cur.privRows, {fontSize: fontSize});
  550. 548.  -
  551. 549.  -     cur.privSelIndex = p[0];
  552. 550.  -     if (hidden[cur.privSelIndex]) { cur.privSelIndex = 0; }
  553. 551.  -
  554. 552.  -     var html = [], sel, handlers, hasLists = false;
  555. 553.  -     for (var i in lists) {
  556. 554.  -       hasLists = true; break;
  557. 555.  -     }
  558. 556.  -     html.push('<div class="header" onclick="Privacy.hide(-1)"><div id="privacy_header">' + el.innerHTML + '</div></div>');
  559. 557.  -     html.push('<div class="body">');
  560. 558.  -     for (var i in types) {
  561. 559.  -       if (hidden[i]) { continue; }
  562. 560.  -       sel = (i == cur.privSelIndex && i != Privacy.listsType) ? '_sel' : '';
  563. 561.  -       handlers = 'onmouseover="Privacy.select(\'' + i + '\')" onclick="Privacy.choose(event, \'' + i + '\')"';
  564. 562.  -       if (i == Privacy.listsType) {
  565. 563.  -         if (!hasLists) {
  566. 564.  -           continue;
  567. 565.  -         }
  568. 566.  -       } else {
  569. 567.  -         handlers += ' onmouseout="Privacy.unselect(\'' + i + '\')"';
  570. 568.  -       }
  571. 569.  -       if (sel && i == Privacy.someType) {
  572. 570.  -         sel += '_plus';
  573. 571.  -       }
  574. 572.  -       html.push('<div class="item' + sel + '" id="privacy_item' + i + '" ' + handlers + '>' + types[i] + '</div>');
  575. 573.  -     }
  576. 574.  -     if (types[Privacy.listsType] && hasLists) {
  577. 575.  -       var hideLists = (cur.privSelIndex != Privacy.listsType);
  578. 576.  -       html.push('<div id="privacy_lists">');
  579. 577.  -       html.push('<div class="l_header" onclick="return cancelEvent(event)"><div>' + types[Privacy.listsType] + '</div></div>');
  580. 578.  -       for (var i in lists) {
  581. 579.  -         var sel = hideLists ? '' : (inArray(-i, p[2]) ? '_sel' : '');
  582. 580.  -         html.push('<div class="l_item' + sel + '" id="privacy_l_item' + i + '" onclick="Privacy.choose(event, ' + Privacy.listsType + ', ' + i + ')"><div class="privacy_item_icon"></div>' + lists[i] + '</div>');
  583. 581.  -       }
  584. 582.  -       html.push('</div>');
  585. 583.  -     }
  586. 584.  -     html.push('</div>');
  587. 585.  -     cur.privRows.innerHTML = html.join('');
  588. 586.  -     cur.privSel = key;
  589. 587.  -
  590. 588.  -     var helpText = cur.privacy[key + '_help'], hsz = [0, 0], hw = cur.privacy[key + '_help_w'];
  591. 589.  -     if (helpText) {
  592. 590.  -       if (!cur.privHelper) {
  593. 591.  -         if (cur.privHelper = ge('privacy_helper')) {
  594. 592.  -           cur.privHelp = cur.privHelper.firstChild.rows[2].cells[3].firstChild;
  595. 593.  -         }
  596. 594.  -       }
  597. 595.  -       if (!cur.privHelper) {
  598. 596.  -         cur.privHelper = bodyNode.appendChild(ce('div', {id: 'privacy_helper', innerHTML: '\
  599. 597.  - <table cellspacing="0" cellpadding="0">\
  600. 598.  -   <tr class="priv_h_top_sh">\
  601. 599.  -     <td></td>\
  602. 600.  -     <td colspan="5"><div class="priv_h_bottom2"></div></td>\
  603. 601.  -   </tr>\
  604. 602.  -   <tr class="priv_h_top_sh">\
  605. 603.  -     <td></td>\
  606. 604.  -     <td class="priv_h_side_td2"><div class="priv_h_side"></div></td>\
  607. 605.  -     <td colspan="3"><div class="priv_h_bottom"></div></td>\
  608. 606.  -     <td class="priv_h_side_td2"><div class="priv_h_side"></div></td>\
  609. 607.  -   </tr>\
  610. 608.  -   <tr>\
  611. 609.  -     <td class="priv_h_arrow_td"><div class="priv_h_arrow"><img src="/images/ddtooltip'+(window.devicePixelRatio >= 2 ? '_2x' : '')+'.png" width="16" height="11" class="priv_h_arrow_img png" /></div></td>\
  612. 610.  -     <td class="priv_h_side_td2"><div class="priv_h_side"></div></td>\
  613. 611.  -     <td class="priv_h_side_td"><div class="priv_h_side"></div></td>\
  614. 612.  -     <td><div class="priv_h_rows"' + (hw ? ' style="width: ' + hw + 'px"' : '') + '></div></td>\
  615. 613.  -     <td class="priv_h_side_td"><div class="priv_h_side"></div></td>\
  616. 614.  -     <td class="priv_h_side_td2"><div class="priv_h_side"></div></td>\
  617. 615.  -   </tr>\
  618. 616.  -   <tr class="priv_h_bottom_sh">\
  619. 617.  -     <td></td>\
  620. 618.  -     <td class="priv_h_side_td2"><div class="priv_h_side"></div></td>\
  621. 619.  -     <td colspan="3"><div class="priv_h_bottom"></div></td>\
  622. 620.  -     <td class="priv_h_side_td2"><div class="priv_h_side"></div></td>\
  623. 621.  -   </tr>\
  624. 622.  -   <tr class="priv_h_bottom_sh">\
  625. 623.  -     <td></td>\
  626. 624.  -     <td colspan="5"><div class="priv_h_bottom2"></div></td>\
  627. 625.  -   </tr>\
  628. 626.  - </table>'}));
  629. 627.  -         cur.privHelp = cur.privHelper.firstChild.rows[2].cells[3].firstChild;
  630. 628.  -         addEvent(cur.privHelper, 'mouseout', Privacy.hide.pbind(500));
  631. 629.  -         addEvent(cur.privHelper, 'mouseover', function() { clearTimeout(cur.hidePrivacyTimer); });
  632. 630.  -       }
  633. 631.  -       cur.privHelp.innerHTML = helpText;
  634. 632.  -
  635. 633.  -       var tw = data(cur.privHelper, 'tween');
  636. 634.  -       if (tw) tw.stop(true);
  637. 635.  -       //show(cur.privHelper);
  638. 636.  -
  639. 637.  -       var hsz = getSize(cur.privHelper);
  640. 638.  -     }
  641. 639.  -     var tw = data(cur.privEl, 'tween');
  642. 640.  -     if (tw) tw.stop(true);
  643. 641.  -     show(cur.privEl);
  644. 642.  -
  645. 643.  -     var isFixed = false, pel = el;
  646. 644.  -     while (pel) {
  647. 645.  -       if (getStyle(pel, 'position') == 'fixed') {
  648. 646.  -         isFixed = true;
  649. 647.  -         break;
  650. 648.  -       }
  651. 649.  -       pel = pel.offsetParent;
  652. 650.  -     }
  653. 651.  -     cur.privEl.className = 'privacy_dropdown_' + key;
  654. 652.  -     if (isFixed) {
  655. 653.  -       addClass(cur.privEl, 'fixed');
  656. 654.  -       setStyle(cur.privEl, {position: ''});
  657. 655.  -       addClass(cur.privHelper, 'fixed');
  658. 656.  -       setStyle(cur.privHelper, {position: ''});
  659. 657.  -     } else {
  660. 658.  -       removeClass(cur.privEl, 'fixed');
  661. 659.  -       setStyle(cur.privEl, {position: 'absolute'});
  662. 660.  -       removeClass(cur.privHelper, 'fixed');
  663. 661.  -       setStyle(cur.privHelper, {position: 'absolute'});
  664. 662.  -     }
  665. 663.  -
  666. 664.  -     var sz = getSize(cur.privEl), h = Math.max(sz[1], hsz[1])
  667. 665.  -     if (types[Privacy.listsType] && hideLists) {
  668. 666.  -       hide('privacy_lists');
  669. 667.  -     }
  670. 668.  -
  671. 669.  -     if (delta === undefined) {
  672. 670.  -       delta = isFixed ? [0, 0] : [-1, -1];
  673. 671.  -     }
  674. 672.  -     var xy = getXY(el, isFixed), dx = 7 + delta[0], dy = 3 + delta[1];
  675. 673.  -     if ((browser.msie || browser.opera) && !isFixed) {
  676. 674.  -       dx += 1;
  677. 675.  -       dy += 1;
  678. 676.  -     }
  679. 677.  -
  680. 678.  -     var y = xy[1] - dy - ((browser.msie6 || isFixed) ? 0 : scrollNode.scrollTop);
  681. 679.  -     Privacy.toup = false;
  682. 680.  -     if (y - h > 0) {
  683. 681.  -       if (y + h > lastWindowHeight) {
  684. 682.  -         Privacy.toup = true;
  685. 683.  -
  686. 684.  -         var r = cur.privRows;
  687. 685.  -         r.appendChild(r.firstChild);
  688. 686.  -
  689. 687.  -         var b = r.firstChild;
  690. 688.  -         for (var e = b.firstChild, t = false; e.nextSibling && e.nextSibling != t; e = b.firstChild) {
  691. 689.  -           if (t) {
  692. 690.  -             t = b.insertBefore(e, t);
  693. 691.  -           } else {
  694. 692.  -             t = b.appendChild(e);
  695. 693.  -           }
  696. 694.  -         }
  697. 695.  -
  698. 696.  -         var l = b.firstChild;
  699. 697.  -         if (l.id == 'privacy_lists') {
  700. 698.  -           for (var e = l.firstChild, t = false; e.nextSibling && e.nextSibling != t; e = l.firstChild) {
  701. 699.  -             if (t) {
  702. 700.  -               t = l.insertBefore(e, t);
  703. 701.  -             } else {
  704. 702.  -               t = l.appendChild(e);
  705. 703.  -             }
  706. 704.  -           }
  707. 705.  -         }
  708. 706.  -         sz = getSize(cur.privEl);
  709. 707.  -       }
  710. 708.  -     }
  711. 709.  -
  712. 710.  -     if (vk.rtl) {
  713. 711.  -       var sz1 = getSize(el);
  714. 712.  -       xy[0] -= sz[0] - sz1[0];
  715. 713.  -       dx = -8;
  716. 714.  -     }
  717. 715.  -
  718. 716.  -     bodyNode.appendChild(cur.privEl);
  719. 717.  -     if (Privacy.toup) {
  720. 718.  -       cur.privEl.firstChild.className = 'to_up';
  721. 719.  -       dy -= 1;
  722. 720.  -       cur.privFromY = xy[1] + getSize(cur.privRows.lastChild)[1] - dy;
  723. 721.  -       setStyle(cur.privEl, {left: xy[0] - dx, top: cur.privFromY - sz[1]});
  724. 722.  -     } else {
  725. 723.  -       cur.privEl.firstChild.className = '';
  726. 724.  -       setStyle(cur.privEl, {left: xy[0] - dx, top: xy[1] - dy});
  727. 725.  -     }
  728. 726.  -
  729. 727.  -     if (helpText) {
  730. 728.  -       var hx = (xy[0] - dx) + (vk.rtl ? (-hsz[0]) : sz[0]), hy = 0;
  731. 729.  -       if (Privacy.toup) {
  732. 730.  -         cur.privHelper.firstChild.className = 'to_up';
  733. 731.  -         hy = cur.privFromY - hsz[1];
  734. 732.  -       } else {
  735. 733.  -         cur.privHelper.firstChild.className = '';
  736. 734.  -         hy = xy[1] - dy;
  737. 735.  -       }
  738. 736.  -       setStyle(cur.privHelper, {left: hx + 15, top: hy});
  739. 737.  -       animate(cur.privHelper, {opacity: 1, left: hx}, 200);
  740. 738.  -     } else {
  741. 739.  -       hide(cur.privHelper);
  742. 740.  -     }
  743. 741.  -
  744. 742.  -     return cancelEvent(ev);
  745. 743.  -   },
  746. 744.  -   getValue: function(key) {
  747. 745.  -     var p = cur.privacy[key], res = [];
  748. 746.  -     if (p[0] < Privacy.customType) {
  749. 747.  -       res = [p[0]];
  750. 748.  -     } else if (p[0] == Privacy.someType) {
  751. 749.  -       res = [4, p[2].join(',')];
  752. 750.  -     } else if (p[0] == Privacy.listsType) {
  753. 751.  -       var l = [];
  754. 752.  -       for (var i in p[2]) {
  755. 753.  -         l.push(-p[2][i]);
  756. 754.  -       }
  757. 755.  -       res = [5, l.join(',')];
  758. 756.  -     } else {
  759. 757.  -       res = [-1, p[1], p[2].join(','), p[3].join(',')];
  760. 758.  -     }
  761. 759.  -     return res.join('_');
  762. 760.  -   }
  763. 761.  - }
  764. 762.  -
  765. 763.  - Privacy.qhide = Privacy.hide.pbind(-1);
  766. 764.  -
  767. 765.  - function OList (box, owners, selected, options) {
  768. 766.  -   if (selected.length === 0) selected = {};
  769. 767.  -   options = options || {};
  770. 768.  -   // this.indexer = new Indexer(owners); // Requires ui_controls for indexer
  771. 769.  -   this.indexer = new vkIndexer(owners, options.getName ? options.getName : function(owner) {
  772. 770.  -     return owner[1];
  773. 771.  -   });
  774. 772.  -   this.owners = owners;
  775. 773.  -   this.tpl = options.tpl;
  776. 774.  -   this.rsTpl = options.rsTpl;
  777. 775.  -   this.idIndex = options.idIndex || 0;
  778. 776.  -   this.selected = selected;
  779. 777.  -   this.getUnsorted = options.getUnsorted;
  780. 778.  -   this.unsortedIndex = options.unsortedIndex || 0;
  781. 779.  -   this.box = box;
  782. 780.  -   this.nofocus = options.nofocus;
  783. 781.  -   if (options.onTabUpdate) {
  784. 782.  -     this.onTabUpdate = options.onTabUpdate;
  785. 783.  -   }
  786. 784.  -
  787. 785.  -   box.removeButtons();
  788. 786.  -   box.addButton(getLang('global_cancel'), function () {
  789. 787.  -     if (cur.onOListCancel && cur.onOListCancel(options.ret || {}) === false) {
  790. 788.  -       return;
  791. 789.  -     }
  792. 790.  -     box.hide(200);
  793. 791.  -   }, 'no');
  794. 792.  -   box.addButton(options['save_lang'] || getLang('global_save'), function () {
  795. 793.  -     var list = {}, ids = [], inv = [];
  796. 794.  -     each (owners, function () {
  797. 795.  -       if (!self.invertedSelection && self.selected[this[self.idIndex]] || self.invertedSelection && !self.selected[this[self.idIndex]]) {
  798. 796.  -         list[this[self.idIndex]] = this;
  799. 797.  -         ids.push(this[self.idIndex]);
  800. 798.  -       } else {
  801. 799.  -         inv.push(this[self.idIndex])
  802. 800.  -       }
  803. 801.  -     });
  804. 802.  -     if (cur.onOListSave(ids, inv, list, options.ret || {}) !== false) {
  805. 803.  -       box.hide(200);
  806. 804.  -     }
  807. 805.  -   });
  808. 806.  -   if (options['box_options']) {
  809. 807.  -     box.setOptions(options['box_options']);
  810. 808.  -   }
  811. 809.  -
  812. 810.  -   var self = this;
  813. 811.  -   var tabsEl = geByClass1('summary_tabs', box.bodyNode);
  814. 812.  -   var actionsWrap = geByClass1('olist_actions', box.bodyNode, 'div');
  815. 813.  -   var selButton = geByTag1('button', box.bodyNode);
  816. 814.  -   this.scrolNode = geByClass1('privacy_olist', box.bodyNode);
  817. 815.  -   this.moreEl = geByClass1('olist_more', box.bodyNode, 'a');
  818. 816.  -   this.olistEl = geByClass1('olist', box.bodyNode, 'div');
  819. 817.  -   this.selCnt = intval(val('olist_selected'));
  820. 818.  -   this.sel = options.sel || 0;
  821. 819.  -   this.noSelMsg = options.noSelMsg || getLang('friends_no_user_selected');
  822. 820.  -   this.invertedSelection = false;
  823. 821.  -
  824. 822.  -   var filter = this.filter = geByClass1('olist_filter', box.bodyNode, 'input');
  825. 823.  -   var filterWrap = filter.parentNode;
  826. 824.  -   placeholderSetup(filter, {back: 1});
  827. 825.  -   if (!options.nofocus) {
  828. 826.  -     setTimeout(elfocus.pbind(filter), 100);
  829. 827.  -   }
  830. 828.  -
  831. 829.  -   if (this.moreEl) {
  832. 830.  -     if (!isVisible(this.moreEl)) {
  833. 831.  -       re(this.moreEl);
  834. 832.  -       show(this.moreEl);
  835. 833.  -     } else {
  836. 834.  -       this.moreEl.onclick = function (event) {
  837. 835.  -         self.renderList('', 60);
  838. 836.  -         return cancelEvent(event);
  839. 837.  -       }
  840. 838.  -     }
  841. 839.  -   }
  842. 840.  -
  843. 841.  -   var actMenuOptions = [], selMenuOptions = [], selTitle = '';
  844. 842.  -   each (options.actions_menu, function () {
  845. 843.  -     var menuItem = {i: this[0], l: this[1]};
  846. 844.  -     if (!this[0]) {
  847. 845.  -       menuItem.onMouseOver = function () {
  848. 846.  -         self.olistSelectMenu.options.target = this;
  849. 847.  -         self.olistSelectMenu.moveToTarget();
  850. 848.  -         setStyle(self.olistSelectMenu.header, {width: getSize(this)[0]});
  851. 849.  -         setStyle(self.olistSelectMenu.rows, {minWidth: getSize(this)[0]});
  852. 850.  -         if (browser.msie) {
  853. 851.  -           setStyle(self.olistSelectMenu.rows, {width: getSize(this)[0] + 20});
  854. 852.  -         }
  855. 853.  -         self.olistSelectMenu.show();
  856. 854.  -       }
  857. 855.  -       menuItem.onClick = function () {return false;}
  858. 856.  -       selTitle = this[1];
  859. 857.  -     }
  860. 858.  -     actMenuOptions.push(menuItem);
  861. 859.  -   });
  862. 860.  -   each (options.selection_menu, function () {
  863. 861.  -     var menuItem = {i: this[0], l: this[1]};
  864. 862.  -     selMenuOptions.push(menuItem);
  865. 863.  -   });
  866. 864.  -   this.olistActionsMenu = new DropdownMenu(actMenuOptions, {
  867. 865.  -     target: selButton,
  868. 866.  -     containerClass: 'dd_menu_olist_act',
  869. 867.  -     title: '<span class="olist_dd_over"></span>',
  870. 868.  -     updateTarget: false,
  871. 869.  -     offsetLeft: 0,
  872. 870.  -     offsetTop: 0,
  873. 871.  -     showHover: false,
  874. 872.  -     fadeSpeed: 0,
  875. 873.  -     onSelect: this.selMenuOnSelect.bind(this)
  876. 874.  -   });
  877. 875.  -
  878. 876.  -   this.olistSelectMenu = new DropdownMenu(selMenuOptions, {
  879. 877.  -     parentMenu: this.olistActionsMenu,
  880. 878.  -     showHover: false,
  881. 879.  -     updateTarget: false,
  882. 880.  -     title: selTitle,
  883. 881.  -     offsetLeft: 0,
  884. 882.  -     offsetTop: 1,
  885. 883.  -     fadeSpeed: 0,
  886. 884.  -     containerClass: 'dd_menu_nested dd_menu_olist_sel',
  887. 885.  -     onSelect: this.selMenuOnSelect.bind(this)
  888. 886.  -   });
  889. 887.  -
  890. 888.  -   addEvent(filter, 'keyup', function (e) {
  891. 889.  -     self.renderList(clean(val(this)));
  892. 890.  -   });
  893. 891.  -   addEvent(this.olistEl, 'click mouseover mouseout', this.onMouseEvent.bind(this));
  894. 892.  -   addEvent(this.scrolNode, 'scroll', this.onScroll.bind(this));
  895. 893.  -
  896. 894.  -   if (options.ignored) {
  897. 895.  -     // this.ignoredIndexer = new Indexer(options.ignored);
  898. 896.  -     this.ignoredIndexer = new vkIndexer(options.ignored, options.getName ? options.getName : function(owner) {
  899. 897.  -       return owner[1];
  900. 898.  -     });
  901. 899.  -     this.ignoredOwners = options.ignored;
  902. 900.  -     this.ignoredTpl = options.ignored_tpl;
  903. 901.  -     this.ignoredSelected = {};
  904. 902.  -     this.ignoredCnt = options.ignored.length;
  905. 903.  -   }
  906. 904.  -
  907. 905.  -   (cur.onOListTabChange = function (tab) {
  908. 906.  -       self.sel = tab;
  909. 907.  -       toggle(tabsEl, tab != 2);
  910. 908.  -       if (tab == 2) {
  911. 909.  -         if (filterWrap.nextSibling != tabsEl) {
  912. 910.  -           tabsEl.parentNode.insertBefore(filterWrap, tabsEl);
  913. 911.  -         }
  914. 912.  -       } else {
  915. 913.  -         if (filterWrap.parentNode != actionsWrap) {
  916. 914.  -           actionsWrap.appendChild(filterWrap);
  917. 915.  -         }
  918. 916.  -       }
  919. 917.  -       toggleClass(filterWrap, 'fl_l', tab != 2);
  920. 918.  -       toggleClass(actionsWrap, 'olist_ignored_actions', tab == 2);
  921. 919.  -       toggleClass(self.olistEl, 'olist_ignored', tab == 2);
  922. 920.  -       if (options.ignored) {
  923. 921.  -         box.setControlsText(tab == 2 ? options.ignored_return_link : options.ignored_link.replace('%s', self.ignoredCnt));
  924. 922.  -       }
  925. 923.  -       self.renderList(val(filter), 0, tab);
  926. 924.  -       if (!options.nofocus) {
  927. 925.  -         setTimeout(elfocus.pbind(filter), 100);
  928. 926.  -       }
  929. 927.  -   })(self.sel);
  930. 928.  -
  931. 929.  - }
  932. 930.  - extend(OList.prototype, {
  933. 931.  -   onScroll: function () {
  934. 932.  -     if (!this.moreEl || !this.moreEl.offsetTop || !this.moreEl.onclick) {
  935. 933.  -       return;
  936. 934.  -     }
  937. 935.  -     var y = this.moreEl.offsetTop,
  938. 936.  -         sh = this.scrolNode.scrollHeight,
  939. 937.  -         st = this.scrolNode.scrollTop,
  940. 938.  -         h = this.scrolNode.offsetHeight || this.scrolNode.clientHeight;
  941. 939.  -
  942. 940.  -     if (st + h + 100 >= y) {
  943. 941.  -       this.moreEl.onclick();
  944. 942.  -     }
  945. 943.  -   },
  946. 944.  -   onMouseEvent: function (event) {
  947. 945.  -     var target = event.originalTarget || event.target;
  948. 946.  -     while (target && target != bodyNode && (!target.className || target.className.indexOf('olist_item_wrap') == -1)) {
  949. 947.  -       target = target.parentNode;
  950. 948.  -     }
  951. 949.  -     if (!target || target == bodyNode) return;
  952. 950.  -     if (hasClass(target, 'olist_item_loading')) {
  953. 951.  -       return cancelEvent(event);
  954. 952.  -     }
  955. 953.  -     if (event.type == 'mouseover' || event.type == 'mouseout') {
  956. 954.  -       if (!hasClass(target, 'olist_item_wrap_on'))
  957. 955.  -         target.className = 'olist_item_wrap' + (event.type == 'mouseover' ? '_over' : '');
  958. 956.  -     } else {
  959. 957.  -       if (checkEvent(event)) return true;
  960. 958.  -       this.box.changed = true;
  961. 959.  -       var id = target.id.match(/-?\d+/)[0];
  962. 960.  -       if (this.sel == 2) {
  963. 961.  -         this.ignoreOnClick(target, id);
  964. 962.  -       } else {
  965. 963.  -         var checked = !this.invertedSelection && this.selected[id] || this.invertedSelection && !this.selected[id];
  966. 964.  -         target.className = !checked ? 'olist_item_wrap_on' : 'olist_item_wrap_over';
  967. 965.  -         this.selected[id] = !checked || this.invertedSelection;
  968. 966.  -         this.selCnt += !checked || this.invertedSelection ? 1 : -1;
  969. 967.  -         this.selTabUpdate();
  970. 968.  -       }
  971. 969.  -       if (!this.nofocus && this.scrolNode.scrollTop < 50) {
  972. 970.  -         var filter = this.filter;
  973. 971.  -         setTimeout(function () {
  974. 972.  -           elfocus(filter);
  975. 973.  -           if (val(filter).length) {
  976. 974.  -             filter.select();
  977. 975.  -           }
  978. 976.  -         }, 100);
  979. 977.  -       }
  980. 978.  -
  981. 979.  -       return cancelEvent(event);
  982. 980.  -     }
  983. 981.  -   },
  984. 982.  -   selMenuOnSelect: function (event) {
  985. 983.  -     this.olistActionsMenu.hide(false);
  986. 984.  -     this.olistSelectMenu.hide(false);
  987. 985.  -     var k = event.target.index,
  988. 986.  -         selCnt = this.selCnt,
  989. 987.  -         selected = this.selected;
  990. 988.  -
  991. 989.  -     if (!event.ctrlKey && !event.metaKey && !event.shiftKey) {
  992. 990.  -       selected = {};
  993. 991.  -       selCnt = 0;
  994. 992.  -     }
  995. 993.  -
  996. 994.  -     switch (k) {
  997. 995.  -       case -1:
  998. 996.  -         selected = {};
  999. 997.  -         selCnt = 0;
  1000. 998.  -         each (this.owners, function () {
  1001. 999.  -           selected[this[0]] = 1;
  1002. 1000.  -           selCnt++;
  1003. 1001.  -         });
  1004. 1002.  -         break;
  1005. 1003.  -
  1006. 1004.  -       case -2: // None
  1007. 1005.  -         selected = {};
  1008. 1006.  -         selCnt = 0;
  1009. 1007.  -         break;
  1010. 1008.  -
  1011. 1009.  -       case -3:
  1012. 1010.  -         each (this.owners, function () {
  1013. 1011.  -           if (this[0] > 0 && !selected[this[0]]) {
  1014. 1012.  -             selected[this[0]] = 1;
  1015. 1013.  -             selCnt++;
  1016. 1014.  -           }
  1017. 1015.  -         });
  1018. 1016.  -         break;
  1019. 1017.  -
  1020. 1018.  -       case -4:
  1021. 1019.  -         each (this.owners, function () {
  1022. 1020.  -           if (this[0] < 0 && !selected[this[0]]) {
  1023. 1021.  -             selected[this[0]] = 1;
  1024. 1022.  -             selCnt++;
  1025. 1023.  -           }
  1026. 1024.  -         });
  1027. 1025.  -         break;
  1028. 1026.  -
  1029. 1027.  -       default:
  1030. 1028.  -         var mask = (1 << k);
  1031. 1029.  -         each (this.owners, function () {
  1032. 1030.  -           if ((this[4] & mask) && !selected[this[0]]) {
  1033. 1031.  -             selected[this[0]] = 1;
  1034. 1032.  -             selCnt++;
  1035. 1033.  -           }
  1036. 1034.  -         });
  1037. 1035.  -     }
  1038. 1036.  -
  1039. 1037.  -     this.selCnt = selCnt;
  1040. 1038.  -     this.selected = selected;
  1041. 1039.  -     this.selTabUpdate();
  1042. 1040.  -     this.renderList();
  1043. 1041.  -     return false;
  1044. 1042.  -   },
  1045. 1043.  -   selTabUpdate: function () {
  1046. 1044.  -     var cnt1 = this.selCnt, cnt2 = this.owners.length - cnt1;
  1047. 1045.  -     val('olist_selected', cnt1);
  1048. 1046.  -     val('olist_unselected', cnt2);
  1049. 1047.  -     toggle('olist_selected', cnt1 > 0);
  1050. 1048.  -     toggle('olist_unselected', cnt2 > 0);
  1051. 1049.  -     if (this.onTabUpdate) {
  1052. 1050.  -       this.onTabUpdate();
  1053. 1051.  -     }
  1054. 1052.  -   },
  1055. 1053.  -   ignoreOnClick: function (target, id) {
  1056. 1054.  -     var self = this,
  1057. 1055.  -         hash = false;
  1058. 1056.  -
  1059. 1057.  -     var checked = !this.invertedSelection && this.ignoredSelected[id] || this.invertedSelection && !this.ignoredSelected[id];
  1060. 1058.  -     each (this.ignoredOwners, function () {
  1061. 1059.  -       if (this[0] == id) {
  1062. 1060.  -         hash = this[4];
  1063. 1061.  -         return false;
  1064. 1062.  -       }
  1065. 1063.  -     });
  1066. 1064.  -     ajax.post('/al_feed.php?misc', {act: checked ? 'a_ignore_owner' : 'a_unignore_owner', owner_id: id, hash: hash}, {
  1067. 1065.  -       onDone: function () {
  1068. 1066.  -         target.className = !checked ? 'olist_item_wrap_on' : 'olist_item_wrap_over';
  1069. 1067.  -         self.ignoredSelected[id] = !checked || self.invertedSelection;
  1070. 1068.  -         self.ignoredCnt += !checked || self.invertedSelection ? -1 : 1;
  1071. 1069.  -         val('olist_blacklisted', self.ignoredCnt);
  1072. 1070.  -         toggle('olist_blacklisted', self.ignoredCnt);
  1073. 1071.  -       },
  1074. 1072.  -       showProgress: function () {
  1075. 1073.  -         addClass(target, 'olist_item_loading');
  1076. 1074.  -       },
  1077. 1075.  -       hideProgress: function () {
  1078. 1076.  -         removeClass(target, 'olist_item_loading');
  1079. 1077.  -       }
  1080. 1078.  -     });
  1081. 1079.  -   },
  1082. 1080.  -   renderList: function (pattern, offset, sel) {
  1083. 1081.  -     offset = offset || 0;
  1084. 1082.  -     sel = sel || this.sel;
  1085. 1083.  -     var slice, selected, tpl,
  1086. 1084.  -         limit = offset ? 60 : 120,
  1087. 1085.  -         self = this;
  1088. 1086.  -
  1089. 1087.  -     if (pattern) {
  1090. 1088.  -       pattern = pattern.replace(/\u2013|\u2014/g, '-');
  1091. 1089.  -     }
  1092. 1090.  -     if (sel == 2) {
  1093. 1091.  -       slice = pattern ? this.ignoredIndexer.search(pattern) : this.ignoredOwners;
  1094. 1092.  -       selected = this.ignoredSelected;
  1095. 1093.  -       tpl = self.ignoredTpl;
  1096. 1094.  -     } else {
  1097. 1095.  -       slice = pattern ? this.indexer.search(pattern) : this.owners;
  1098. 1096.  -       if (self.unsortedIndex == sel && self.getUnsorted) {
  1099. 1097.  -         slice = self.getUnsorted(slice);
  1100. 1098.  -       }
  1101. 1099.  -       selected = this.selected;
  1102. 1100.  -       var inverted = self.invertedSelection ? !(this.sel < 0) : (this.sel < 0);
  1103. 1101.  -       tpl = self.tpl;
  1104. 1102.  -       if (sel && self.unsortedIndex != sel) {
  1105. 1103.  -         var sel_slice = [];
  1106. 1104.  -         each (slice, function () {
  1107. 1105.  -           var id = this[self.idIndex];
  1108. 1106.  -           if (!inverted && selected[id] || inverted && !selected[id]) {
  1109. 1107.  -             sel_slice.push(this);
  1110. 1108.  -             if (sel_slice.length > offset + limit) {
  1111. 1109.  -               return false;
  1112. 1110.  -             }
  1113. 1111.  -           }
  1114. 1112.  -         });
  1115. 1113.  -         slice = sel_slice;
  1116. 1114.  -       }
  1117. 1115.  -     }
  1118. 1116.  -     var total = slice.length;
  1119. 1117.  -     slice = slice.slice(offset, offset + limit);
  1120. 1118.  -     var html = [];
  1121. 1119.  -     if (pattern) {
  1122. 1120.  -       var term = escapeRE(pattern), termRus = parseLatin(pattern);
  1123. 1121.  -       if (termRus != null) {
  1124. 1122.  -         term = term + '|' + escapeRE(termRus);
  1125. 1123.  -       }
  1126. 1124.  -       var regexp = new RegExp('(?![^&;]+;)(?!<[^<>]*)((\\(*)(' + term + '))(?![^<>]*>)(?![^&;]+;)', 'gi');
  1127. 1125.  -     }
  1128. 1126.  -     var rsTpl = self.rsTpl ? self.rsTpl : function(obj, pattern, invertedSelection, selected, regexp) {
  1129. 1127.  -       var checked = !invertedSelection && selected[obj[0]] || invertedSelection && !selected[obj[0]];
  1130. 1128.  -       var label = obj[1];
  1131. 1129.  -       if (pattern) {
  1132. 1130.  -         label = pattern.indexOf(' ') == -1 ? label.split(' ') : [label];
  1133. 1131.  -         var tmp = '';
  1134. 1132.  -         for (var i in label) {
  1135. 1133.  -           tmp += (i > 0 ? ' ' : '') + label[i].replace(regexp, '$2<em>$3</em>');
  1136. 1134.  -         }
  1137. 1135.  -         label = tmp;
  1138. 1136.  -       }
  1139. 1137.  -       return {
  1140. 1138.  -         id: obj[0],
  1141. 1139.  -         name: label,
  1142. 1140.  -         photo: obj[2],
  1143. 1141.  -         classname: checked ? ' olist_item_wrap_on' : '',
  1144. 1142.  -         link: obj[3] || (obj[0] > 0 ? ('id' + obj[0]) : ('club' + (-obj[0])))
  1145. 1143.  -       };
  1146. 1144.  -     }
  1147. 1145.  -     each (slice, function () {
  1148. 1146.  -       html.push(rs(tpl, rsTpl(this, pattern, self.invertedSelection, selected, regexp)));
  1149. 1147.  -     });
  1150. 1148.  -     if (!offset && !html.length) {
  1151. 1149.  -       html.push('<div class="olist_empty">' + (pattern ? getLang('global_search_not_found').replace('{search}', clean(pattern)) : self.noSelMsg) + '</div>');
  1152. 1150.  -     }
  1153. 1151.  -     re(this.moreEl);
  1154. 1152.  -     html = html.join(' ');
  1155. 1153.  -
  1156. 1154.  -     if (!offset) {
  1157. 1155.  -       val(this.olistEl, html);
  1158. 1156.  -     } else {
  1159. 1157.  -       this.olistEl.appendChild(cf(html));
  1160. 1158.  -     }
  1161. 1159.  -     if (total > offset + limit) {
  1162. 1160.  -       this.olistEl.appendChild(this.moreEl);
  1163. 1161.  -       this.moreEl.onclick = function (event) {
  1164. 1162.  -         self.renderList(pattern, offset + limit);
  1165. 1163.  -         return cancelEvent(event);
  1166. 1164.  -       }
  1167. 1165.  -     }
  1168. 1166.  -     if (self.box && self.box.scroll) {
  1169. 1167.  -       self.box.scroll.update(false, true);
  1170. 1168.  -     }
  1171. 1169.  -   }
  1172. 1170.  - });
  1173. 1171.  -
  1174. 1172.  - try{jsDispatcher.triggerOnload('privacy.js');}catch(e){}
  1175. 1173.  - try{stManager.done('privacy.js');}catch(e){}
  1176. ------
  1177. Файл - settings.js (Старый размер - 42660 | Новый - 40759):
  1178. 23.  -   savePrivacyDone: function(id) {
  1179. 24.  -     var pe = ge(id), el = domPN(pe);
  1180. 25.  -     if (!pe) return;
  1181. 26.  -
  1182. 27.  -     for (; el && el.tagName != 'TR';) el = domPN(el);
  1183. 28.  -     if (!el) return;
  1184. 29.  -
  1185. 30.  -     for (; el && !hasClass(domFC(el), 'settings_privacy_h');) el = domPS(el);
  1186. 31.  -     if (!el) return;
  1187. 32.  -
  1188. 33.  -     el = geByClass1('settings_privacy_saved', el);
  1189. 34.  -     if (!el) return;
  1190. 35.  -
  1191. 36.  -     var y = getXY(el)[1], f = animate.pbind(el, {opacity: 1}, 200, animate.pbind(el, {opacity: 0}, 2000));
  1192. 37.  -     if (scrollGetY() > y - 20) {
  1193. 38.  -       scrollToY(y - 20, 200);
  1194. 39.  -       setTimeout(f, 200);
  1195. 40.  -     } else {
  1196. 41.  -       f();
  1197. 42.  -     }
  1198. 43.  -   },
  1199. 44.  -   savePrivacyKey: function(key) {
  1200. 45.  -     if (key == 'friends') {
  1201. 46.  -       Settings.savePrivacyDone('privacy_friends_hide');
  1202. 47.  -       return;
  1203. 48.  -     }
  1204. 49.  -     var url, params = {key: key, val: Privacy.getValue(key), hash: cur.options.hash};
  1205. 50.  -     if (key == 'search_access' || key == 'updates') {
  1206. 51.  -       if (key == 'updates') {
  1207. 52.  -         var val = Privacy.getValue(key);
  1208. 53.  -         if (val.substr(0,1) != '0') {
  1209. 54.  -           var items = val.substr(2);
  1210. 55.  -           if (!items.length) {
  1211. 56.  -             ge('privacy_header').innerHTML = ge('privacy_edit_updates').innerHTML = getLang('settings_updates_no_news');
  1212. 57.  -           }
  1213. 58.  -         }
  1214. 59.  -       }
  1215. 60.  -       url = 'al_settings.php';
  1216. 61.  -       params.act = 'a_save_special';
  1217. 62.  -     } else {
  1218. 63.  -       url = 'al_friends.php';
  1219. 64.  -       params.act = 'save_privacy';
  1220. 65.  -     }
  1221. 66.  -
  1222. 67.  -     clearTimeout(cur['privacy_timer_' + key]);
  1223. 68.  -     cur['privacy_timer_' + key] = setTimeout(ajax.post.pbind(url, params, {
  1224. 69.  -       onDone: Settings.savePrivacyDone.pbind('privacy_edit_' + key)
  1225. 70.  -     }), 500);
  1226. 71.  -   },
  1227. 82.  -         scrollToTop(200);
  1228. 87.  -     cur.onPrivacyChanged = Settings.savePrivacyKey;
  1229. 88.  +     cur.onPrivacyChanged = function (key) {
  1230. 89.  +       if (key != 'updates') return;
  1231. 90.  +       var val = Privacy.getValue(key);
  1232. 91.  +       if (val.substr(0,1) != '0') {
  1233. 92.  +         var items = val.substr(2);
  1234. 93.  +         if (!items.length) {
  1235. 94.  +           ge('privacy_header').innerHTML = ge('privacy_edit_updates').innerHTML = getLang('settings_updates_no_news');
  1236. 95.  +         }
  1237. 96.  +       }
  1238. 97.  +     }
  1239. 579.  -     if (hasClass(ge('settings_' + id), 'disabled')) return;
  1240. 580.  -
  1241. 724.  -     if (newPwd.match(/\s/)) {
  1242. 725.  -       Settings.showError(getLang('settings_pwd_bad'), 'pwd');
  1243. 726.  -       notaBene('settings_new_pwd');
  1244. 727.  -       if (tt) setTimeout(tt.show, 10);
  1245. 728.  -       return;
  1246. 729.  -     }
  1247. 963.  -       }
  1248. 964.  -       box = curBox();
  1249. 965.  -       if (box) {
  1250. 966.  -         box.hideProgress();
  1251. 967.  -         box.setControlsText(getLang('setting_all_sessions_reset'));
  1252. 969.  +       var div = ge('activityCtrl');
  1253. 970.  +       div.innerHTML = getLang('setting_all_sessions_reset');
  1254. 971.  +       div.style.margin = '0';
  1255. 972.  +       addClass(div, 'dld');
  1256. 997.  -     curBox().showProgress();
  1257. 998.  +     ge('activityCtrl').innerHTML = '<img src="/images/upload.gif"/>';
  1258. 1012.  -     });
  1259. 1013.  -   },
  1260. 1014.  -   disabledPrivacy: function() {
  1261. 1015.  -     var el = geByClass1('settings_privacy_add_replies_view', ge('content'));
  1262. 1016.  -     if (el) showTooltip(el, {
  1263. 1017.  -       black: true,
  1264. 1018.  -       hasover: 1,
  1265. 1019.  -       className: 'settings_comments_disabled_tt',
  1266. 1020.  -       shift: [160, 3, 3],
  1267. 1021.  -       text: getLang('settings_comments_disabled_tt').replace('{link}', '<a href="/settings?f=cposts" onclick="return nav.go(this, event, {nocur: true})">').replace('{/link}', '</a>')
  1268. ------
  1269. Файл - settings.css (Старый размер - 14885 | Новый - 0):
  1270. 0.  - #settings_css {
  1271. 1.  -   display: none;
  1272. 2.  - }
  1273. 3.  -
  1274. 4.  - .settings_privacy {
  1275. 5.  -   background: #F7F7F7;
  1276. 6.  -   padding: 7px 30px 30px;
  1277. 7.  - }
  1278. 8.  - .settings_privacy_row {
  1279. 9.  -   padding: 12px 12px 0;
  1280. 10.  -   width: 298px;
  1281. 11.  -   vertical-align: top;
  1282. 12.  - }
  1283. 13.  - .settings_privacy_disabled {
  1284. 14.  -   color: #999;
  1285. 15.  - }
  1286. 16.  - .settings_privacy_saved {
  1287. 17.  -   color: #999;
  1288. 18.  -   opacity: 0;
  1289. 19.  -   font-size: 11px;
  1290. 20.  -   font-weight: normal;
  1291. 21.  - }
  1292. 22.  - .settings_privacy_row_submit {
  1293. 23.  -   padding: 22px 12px 10px;
  1294. 24.  - }
  1295. 25.  - .settings_privacy_control {
  1296. 26.  -   position: relative;
  1297. 27.  -   padding-top: 11px;
  1298. 28.  -   border: 1px solid #F7F7F7;
  1299. 29.  - }
  1300. 30.  - .settings_view_as_text {
  1301. 31.  -   border-top: 1px solid #DAE1E8;
  1302. 32.  -   line-height: 140%;
  1303. 33.  -   padding: 10px 100px;
  1304. 34.  -   background: #FFF;
  1305. 35.  - }
  1306. 36.  - .settings_privacy_save {
  1307. 37.  -   padding: 25px 0 15px;
  1308. 38.  - }
  1309. 39.  - #settings_privacy_result, #settings_result {
  1310. 40.  -   display: none;
  1311. 41.  -   background: #F7F7F7;
  1312. 42.  -   padding: 15px 15px 0;
  1313. 43.  - }
  1314. 44.  - #settings_save_msg {
  1315. 45.  -   line-height: 160%;
  1316. 46.  -   background: #F4EBBD;
  1317. 47.  - }
  1318. 48.  -
  1319. 49.  - #settings_save_error {
  1320. 50.  -   line-height: 160%;
  1321. 51.  -   text-align: left;
  1322. 52.  - }
  1323. 53.  -
  1324. 54.  -
  1325. 55.  - #privacy_l_item101 .privacy_item_icon,
  1326. 56.  - #privacy_l_item102 .privacy_item_icon,
  1327. 57.  - #privacy_l_item103 .privacy_item_icon,
  1328. 58.  - #privacy_l_item104 .privacy_item_icon,
  1329. 59.  - #privacy_l_item105 .privacy_item_icon,
  1330. 60.  - #privacy_l_item106 .privacy_item_icon,
  1331. 61.  - #privacy_l_item107 .privacy_item_icon,
  1332. 62.  - #privacy_l_item108 .privacy_item_icon,
  1333. 63.  - #privacy_l_item109 .privacy_item_icon,
  1334. 64.  - #privacy_l_item110 .privacy_item_icon  {
  1335. 65.  -   background-image: url(/images/icons/mono_iconset.gif?8);
  1336. 66.  -   float: right;
  1337. 67.  -   background-position: left 0;
  1338. 68.  -   background-repeat: no-repeat;
  1339. 69.  -   width: 11px;
  1340. 70.  -   height: 11px;
  1341. 71.  -   margin-top: 1px;
  1342. 72.  -   *position: relative;
  1343. 73.  - }
  1344. 74.  - #privacy_l_item101 .privacy_item_icon { background-position: 0 -30px; }
  1345. 75.  - #privacy_l_item102 .privacy_item_icon { background-position: 0 -75px; }
  1346. 76.  - #privacy_l_item103 .privacy_item_icon { background-position: 0 -148px; }
  1347. 77.  - #privacy_l_item104 .privacy_item_icon { background-position: 0 -192px; }
  1348. 78.  - #privacy_l_item105 .privacy_item_icon { background-position: 0 -15px; }
  1349. 79.  - #privacy_l_item106 .privacy_item_icon { background-position: 0 -88px; }
  1350. 80.  - #privacy_l_item107 .privacy_item_icon { background-position: 0 -164px; }
  1351. 81.  - #privacy_l_item108 .privacy_item_icon { background-position: 0 -264px; }
  1352. 82.  - #privacy_l_item109 .privacy_item_icon { background-position: 0 0px; }
  1353. 83.  - #privacy_l_item110 .privacy_item_icon { background-position: 0 -222px; }
  1354. 84.  -
  1355. 85.  - /* Blacklist */
  1356. 86.  - #settings_bl_bar {
  1357. 87.  -   padding: 10px;
  1358. 88.  -   background: #F7F7F7;
  1359. 89.  -   border-bottom: 1px solid #DAE1E8;
  1360. 90.  - }
  1361. 91.  - #settings_bl_search {
  1362. 92.  -   margin: 0;
  1363. 93.  -   padding: 5px 4px 4px 20px;
  1364. 94.  -   width: 402px;
  1365. 95.  -   height: 14px;
  1366. 96.  -   line-height: 1.27em;
  1367. 97.  -   background: #FFF url(/images/magglass.png) no-repeat 5px 6px;
  1368. 98.  - }
  1369. 99.  - #search_bl_submit {
  1370. 100.  -   padding-left: 8px;
  1371. 101.  -   padding-right: 8px;
  1372. 102.  -   width: 168px;
  1373. 103.  -   text-align: center;
  1374. 104.  - }
  1375. 105.  - #settings_bl_list_wrap {
  1376. 106.  -   padding: 0 10px;
  1377. 107.  - }
  1378. 108.  - #settings_bl_result {
  1379. 109.  -   padding: 15px 5px 5px;
  1380. 110.  -   display: none;
  1381. 111.  - }
  1382. 112.  - #settings_bl_msg {
  1383. 113.  -   line-height: 160%;
  1384. 114.  -   background: #F4EBBD;
  1385. 115.  - }
  1386. 116.  - .settings_bl_row {
  1387. 117.  -   padding: 10px;
  1388. 118.  -   height: 25px;
  1389. 119.  -   overflow: hidden;
  1390. 120.  -   border-bottom: 1px solid #DAE2E8;
  1391. 121.  - }
  1392. 122.  - .settings_bl_row:last-child {
  1393. 123.  -   border-bottom: 0;
  1394. 124.  - }
  1395. 125.  - img.settings_bl_photo {
  1396. 126.  -   width: 25px;
  1397. 127.  -   height: 25px;
  1398. 128.  - }
  1399. 129.  - .settings_bl_name {
  1400. 130.  -   padding: 5px 0 0 10px;
  1401. 131.  -   font-weight: bold;
  1402. 132.  -   max-width: 400px;
  1403. 133.  -   overflow: hidden;
  1404. 134.  -   white-space: nowrap;
  1405. 135.  -   text-overflow: ellipsis;
  1406. 136.  -   -o-text-overflow: ellipsis;
  1407. 137.  - }
  1408. 138.  - .settings_bl_label {
  1409. 139.  -   font-weight: normal;
  1410. 140.  -   color: #777;
  1411. 141.  -   padding-left: 2px;
  1412. 142.  -   display: none;
  1413. 143.  - }
  1414. 144.  - .settings_bl_action {
  1415. 145.  -   padding-top: 5px;
  1416. 146.  - }
  1417. 147.  - #settings_bl_noempty {
  1418. 148.  -   min-height: 256px;
  1419. 149.  - }
  1420. 150.  - #settings_bl_empty {
  1421. 151.  -   font-size: 1.09em;
  1422. 152.  -   padding: 100px 30px;
  1423. 153.  -   text-align: center;
  1424. 154.  -   color: #777;
  1425. 155.  - }
  1426. 156.  -
  1427. 157.  - #settings_panel {
  1428. 158.  -   background: #F7F7F7;
  1429. 159.  -   padding: 10px 0 0 0;
  1430. 160.  - }
  1431. 161.  - #settings_panel .msg {
  1432. 162.  -   margin: 0 10px;
  1433. 163.  -   border:1px solid #B9C4DA;
  1434. 164.  -   line-height: 160%;
  1435. 165.  -   font-weight: normal;
  1436. 166.  -   background-color:#FFF;
  1437. 167.  - }
  1438. 168.  - #settings_panel .settings_section .msg {
  1439. 169.  -   margin: 0;
  1440. 170.  - }
  1441. 171.  - .settings_section {
  1442. 172.  -   margin: 0 0 25px 113px;
  1443. 173.  -   width: 400px;
  1444. 174.  - }
  1445. 175.  - .setbal_section {
  1446. 176.  -   margin: 0 auto 25px;
  1447. 177.  -   width: 380px;
  1448. 178.  -   line-height: 160%;
  1449. 179.  - }
  1450. 180.  - .settings_privacy_h {
  1451. 181.  -   padding: 15px 20px 0;
  1452. 182.  - }
  1453. 183.  - .settings_section h2,
  1454. 184.  - .settings_privacy_header,
  1455. 185.  - .setbal_section h2 {
  1456. 186.  -   margin: 10px 0 15px 0;
  1457. 187.  -   font-weight: bold;
  1458. 188.  -   font-size: 1.09em;
  1459. 189.  -   color: #36638E;
  1460. 190.  -   border-color: #B9C4DA;
  1461. 191.  - }
  1462. 192.  - .settings_privacy_header {
  1463. 193.  -   margin-bottom: 5px;
  1464. 194.  - }
  1465. 195.  - .settings_section h4 {
  1466. 196.  -   padding: 12px 0 0 0;
  1467. 197.  -   border: none;
  1468. 198.  - }
  1469. 199.  - .settings_section .settings_privacy_row {
  1470. 200.  -   width: 166px;
  1471. 201.  - }
  1472. 202.  - .settings_section .settings_privacy_buttons {
  1473. 203.  -   padding-top: 15px;
  1474. 204.  - }
  1475. 205.  - .settings_section .settings_privacy_input {
  1476. 206.  -   padding-top: 8px;
  1477. 207.  - }
  1478. 208.  - .settings_privacy_text {
  1479. 209.  -   padding-top: 12px;
  1480. 210.  - }
  1481. 211.  - .settings_section_notice {
  1482. 212.  -   padding: 20px 0 0 2px;
  1483. 213.  -   line-height: 160%;
  1484. 214.  - }
  1485. 215.  - .settings_buttons {
  1486. 216.  -   margin-left: 255px;
  1487. 217.  -   padding-top: 10px;
  1488. 218.  - }
  1489. 219.  - .settings_buttons_center {
  1490. 220.  -   text-align: center;
  1491. 221.  -   padding-top: 10px;
  1492. 222.  - }
  1493. 223.  - .settings_section .settings_buttons {
  1494. 224.  -   margin-left: 140px;
  1495. 225.  - }
  1496. 226.  - .notify_settings .settings_privacy_row {
  1497. 227.  -   width: 140px;
  1498. 228.  - }
  1499. 229.  - .settings_privacy_control .checkbox {
  1500. 230.  -   margin-top: -1px;
  1501. 231.  - }
  1502. 232.  - #settings_panel .frow {
  1503. 233.  -   padding-top: 15px;
  1504. 234.  - }
  1505. 235.  - #settings_panel .label {
  1506. 236.  -   padding: 5px 15px 3px 0;
  1507. 237.  -   color: #555;
  1508. 238.  -   width: 125px;
  1509. 239.  -   clear: both;
  1510. 240.  - }
  1511. 241.  - #settings_panel .labeled {
  1512. 242.  -   width: 260px;
  1513. 243.  -   padding: 2px 0 3px 0;
  1514. 244.  - }
  1515. 245.  - #settings_panel .labeled input {
  1516. 246.  -   width: 142px;
  1517. 247.  - }
  1518. 248.  - #settings_panel .labeled small {
  1519. 249.  -   color: #777;
  1520. 250.  - }
  1521. 251.  - #settings_panel .labeled_text {
  1522. 252.  -   padding: 5px 0 3px 0;
  1523. 253.  - }
  1524. 254.  - input#pin {
  1525. 255.  -   width: 100px;
  1526. 256.  - }
  1527. 257.  - #lj_data {
  1528. 258.  -   padding-top: 10px;
  1529. 259.  - }
  1530. 260.  - #settings_panel .settings_section #lj_data .msg {
  1531. 261.  -   margin-bottom: 10px;
  1532. 262.  -   padding: 7px;
  1533. 263.  - }
  1534. 264.  - #lj_data .msg div {
  1535. 265.  -   padding-top: 5px;
  1536. 266.  - }
  1537. 267.  - #lj_data .msg img {
  1538. 268.  -   margin: 3px 7px;
  1539. 269.  -   width: 44px;
  1540. 270.  -   height: 44px;
  1541. 271.  - }
  1542. 272.  - #lj_error {
  1543. 273.  -   padding: 10px 0px 10px 140px;
  1544. 274.  -   color: #800;
  1545. 275.  - }
  1546. 276.  - #cancel_lj_data {
  1547. 277.  -   margin-left: 7px;
  1548. 278.  - }
  1549. 279.  - .export_clear {
  1550. 280.  -   padding-top: 5px;
  1551. 281.  - }
  1552. 282.  -
  1553. 283.  - /* General settings */
  1554. 284.  - .settings_row_wrap {
  1555. 285.  -   padding-bottom: 10px;
  1556. 286.  - }
  1557. 287.  - .settings_label {
  1558. 288.  -   padding: 5px 15px 3px 0;
  1559. 289.  -   color: #555;
  1560. 290.  -   width: 125px;
  1561. 291.  - }
  1562. 292.  - .setbal_label {
  1563. 293.  -   color: #777;
  1564. 294.  -   width: 135px;
  1565. 295.  -   padding: 15px 15px 3px;
  1566. 296.  - }
  1567. 297.  - .settings_row_button_wrap {
  1568. 298.  -   padding-left: 140px;
  1569. 299.  - }
  1570. 300.  - .setbal_row_button_wrap {
  1571. 301.  -   padding: 13px 165px 0px;
  1572. 302.  - }
  1573. 303.  - .settings_labeled_text {
  1574. 304.  -   width: 250px;
  1575. 305.  -   padding-top: 5px;
  1576. 306.  - }
  1577. 307.  - .setbal_labeled_text {
  1578. 308.  -   width: 180px;
  1579. 309.  -   padding-top: 15px;
  1580. 310.  - }
  1581. 311.  - .settings_hidden {
  1582. 312.  -   font-size: 0.9em;
  1583. 313.  -   color: #777;
  1584. 314.  -   padding-top: 1px;
  1585. 315.  - }
  1586. 316.  - #settings_services {
  1587. 317.  -   padding-top: 10px;
  1588. 318.  - }
  1589. 319.  - .settings_service_row {
  1590. 320.  -   padding-bottom: 6px;
  1591. 321.  - }
  1592. 322.  - .settings_service_row  .settings_label,
  1593. 323.  - #settings_microblog .settings_label,
  1594. 324.  - #settings_appearance .settings_label {
  1595. 325.  -   color: #777;
  1596. 326.  -   padding: 0 15px 0 0;
  1597. 327.  -   height: 15px;
  1598. 328.  - }
  1599. 329.  - .settings_all_services {
  1600. 330.  -   padding: 4px 0 0 140px;
  1601. 331.  - }
  1602. 332.  -
  1603. 333.  - #settings_microblog,
  1604. 334.  - #settings_appearance {
  1605. 335.  -   width: 450px;
  1606. 336.  - }
  1607. 337.  - .settings_microblog_row,
  1608. 338.  - .settings_appearance_row {
  1609. 339.  -   padding-bottom: 10px;
  1610. 340.  - }
  1611. 341.  - #settings_no_replies_wrap {
  1612. 342.  -   padding-bottom: 0;
  1613. 343.  - }
  1614. 344.  -
  1615. 345.  - #settings_old_pwd,
  1616. 346.  - #settings_new_pwd,
  1617. 347.  - #settings_confirm_pwd,
  1618. 348.  - #settings_new_mail,
  1619. 349.  - #settings_new_phone {
  1620. 350.  -   width: 142px;
  1621. 351.  - }
  1622. 352.  -
  1623. 353.  - #settings_addr_table {
  1624. 354.  -   background: #FFF;
  1625. 355.  -   border: 1px solid #C0CAD5;
  1626. 356.  - }
  1627. 357.  - .settings_edit_addr_label {
  1628. 358.  -   color: #777;
  1629. 359.  -   padding: 3px 0px 3px 3px;
  1630. 360.  - }
  1631. 361.  - #settings_addr {
  1632. 362.  -   border: 0;
  1633. 363.  -   padding: 3px 3px 3px 0;
  1634. 364.  -   width: 146px;
  1635. 365.  -   outline: 0;
  1636. 366.  - }
  1637. 367.  - #settings_address_submit_wrap {
  1638. 368.  -   overflow: hidden;
  1639. 369.  -   position: relative;
  1640. 370.  - }
  1641. 371.  - #settings_addr_disabler,
  1642. 372.  - #settdbx_disabler {
  1643. 373.  -   display: none;
  1644. 374.  -   width: 400px;
  1645. 375.  -   background: #FFF;
  1646. 376.  -   opacity: 0.4;
  1647. 377.  -   filter: alpha(opacity=40);
  1648. 378.  -   position: absolute;
  1649. 379.  -   height: 25px;
  1650. 380.  -   z-index: 10;
  1651. 381.  -   margin: 0 auto;
  1652. 382.  - }
  1653. 383.  -
  1654. 384.  - .settings_https_tt table .tt_text {
  1655. 385.  -   line-height: 160%;
  1656. 386.  -   width: 280px;
  1657. 387.  -   padding: 10px;
  1658. 388.  -   color: #000;
  1659. 389.  - }
  1660. 390.  -
  1661. 391.  - .settings_about_tt table .tt_text {
  1662. 392.  -   color: #000;
  1663. 393.  -   padding: 10px;
  1664. 394.  -   width: 315px;
  1665. 395.  - }
  1666. 396.  -
  1667. 397.  - .settings_about_tt table.toup1 .bottom_pointer,
  1668. 398.  - .settings_https_tt table.toup1 .bottom_pointer {
  1669. 399.  -   margin-right: 0px;
  1670. 400.  -   margin-left: 64px;
  1671. 401.  -   display: block;
  1672. 402.  -   background: url(/images/tooltip_arrow_white.gif) no-repeat;
  1673. 403.  - }
  1674. 404.  - .settings_about_tt table.toup .top_pointer,
  1675. 405.  - .settings_https_tt table.toup .top_pointer {
  1676. 406.  -   margin-right: 0px;
  1677. 407.  -   margin-left: 64px;
  1678. 408.  -   display: block;
  1679. 409.  -   bottom: -2px;
  1680. 410.  -   background: url(/images/tooltip_arrow_up.gif) no-repeat;
  1681. 411.  - }
  1682. 412.  - .settings_side_pwd_tt table .tt_text {
  1683. 413.  -   line-height: 120%;
  1684. 414.  -   color: #000;
  1685. 415.  -   padding: 10px;
  1686. 416.  -   width: 280px;
  1687. 417.  - }
  1688. 418.  - .settings_side_email_tt table .tt_text {
  1689. 419.  -   line-height: 120%;
  1690. 420.  -   color: #000;
  1691. 421.  -   padding: 10px;
  1692. 422.  -   width: 190px;
  1693. 423.  - }
  1694. 424.  -
  1695. 425.  - .settings_password_hint {
  1696. 426.  -   width: 280px;
  1697. 427.  -   list-style: url(/images/bullet.gif) outside;
  1698. 428.  -   padding: 0 0 0 15px;
  1699. 429.  -   margin: 0;
  1700. 430.  - }
  1701. 431.  - .settings_side_tt_pointer {
  1702. 432.  -   background: url(/images/ddtooltip.png) 0 0 no-repeat;
  1703. 433.  -   width: 8px;
  1704. 434.  -   height: 11px;
  1705. 435.  -   position: absolute;
  1706. 436.  -   left: -7px;
  1707. 437.  -   top: 40px;
  1708. 438.  -   overflow: hidden;
  1709. 439.  -   z-index: 10;
  1710. 440.  - }
  1711. 441.  - .settings_pwd_pointer {
  1712. 442.  -   top: 35px;
  1713. 443.  - }
  1714. 444.  - #settings_pwd_tt_place,
  1715. 445.  - #settdbx_addr_tt_place {
  1716. 446.  -   width: 1px;
  1717. 447.  -   height: 1px;
  1718. 448.  - }
  1719. 449.  - .settings_email_pointer {
  1720. 450.  -   top: 35px;
  1721. 451.  - }
  1722. 452.  - #settings_last_activity_wrap {
  1723. 453.  -   padding-bottom: 10px;
  1724. 454.  - }
  1725. 455.  -
  1726. 456.  - #settings_address_check {
  1727. 457.  -   width: 120px;
  1728. 458.  -   text-align: center;
  1729. 459.  -   height: 15px;
  1730. 460.  -   padding: 6px 0;
  1731. 461.  - }
  1732. 462.  - #settings_address_progress {
  1733. 463.  -   margin: 4px auto;
  1734. 464.  - }
  1735. 465.  - #settings_address_result {
  1736. 466.  -   padding: 0 10px;
  1737. 467.  - }
  1738. 468.  - #settings_save_error {
  1739. 469.  -   margin-bottom: 15px;
  1740. 470.  - }
  1741. 471.  - #settings_error_pwd div.error {
  1742. 472.  -   padding: 8px 9px;
  1743. 473.  - }
  1744. 474.  - #settings_phone_request {
  1745. 475.  -   margin-bottom: 8px!important;
  1746. 476.  - }
  1747. 477.  -
  1748. 478.  - #activity_history_box .info_msg {
  1749. 479.  -   border: 0;
  1750. 480.  -   padding: 16px 20px;
  1751. 481.  -   background-color: #EEF0F2;
  1752. 482.  - }
  1753. 483.  - table.history {
  1754. 484.  -   padding: 10px 20px 20px;
  1755. 485.  -     width: 100%;
  1756. 486.  -     border: none;
  1757. 487.  - }
  1758. 488.  - table.history tr th {
  1759. 489.  -   color: #36638E;
  1760. 490.  -   font-size: 1.09em;
  1761. 491.  - }
  1762. 492.  - table.history tr td, table.history tr th {
  1763. 493.  -     padding: 10px 0;
  1764. 494.  - }
  1765. 495.  - table.history tr.old_session {
  1766. 496.  -  color: #999;
  1767. 497.  - }
  1768. 498.  - table.history .cur_session {
  1769. 499.  -     padding-left: 10px;
  1770. 500.  -     color: #999;
  1771. 501.  - }
  1772. 502.  - .history_ip {
  1773. 503.  -   color: #999;
  1774. 504.  - }
  1775. 505.  - .settings_box_container .label {
  1776. 506.  -   padding: 5px 15px 3px 0;
  1777. 507.  -   width: 95px;
  1778. 508.  -   clear: both;
  1779. 509.  - }
  1780. 510.  - .settings_box_container .labeled {
  1781. 511.  -   width: 260px;
  1782. 512.  -   padding: 2px 0 3px 0;
  1783. 513.  - }
  1784. 514.  - .settings_box_container .labeled input {
  1785. 515.  -   width: 160px;
  1786. 516.  - }
  1787. 517.  - .settings_box_container .labeled span {
  1788. 518.  -   padding-top: 5px;
  1789. 519.  -   display: block;
  1790. 520.  -   color: #555;
  1791. 521.  - }
  1792. 522.  - #email_bind_error {
  1793. 523.  -   margin-bottom: 16px;
  1794. 524.  -   display: none;
  1795. 525.  -   line-height: 160%;
  1796. 526.  -   text-align: left;
  1797. 527.  - }
  1798. 528.  -
  1799. 529.  - #settings_deact_reasons {
  1800. 530.  -   padding: 0px 10px;
  1801. 531.  - }
  1802. 532.  - .settings_deact_friends {
  1803. 533.  -   margin: 5px 0px 15px;
  1804. 534.  - }
  1805. 535.  - .settings_deact_header {
  1806. 536.  -   font-size: 1.09em;
  1807. 537.  -   margin-bottom: 19px;
  1808. 538.  - }
  1809. 539.  - .settings_deact_page {
  1810. 540.  -   padding: 30px 50px;
  1811. 541.  - }
  1812. 542.  - .settings_reason {
  1813. 543.  -   padding: 1px 0px;
  1814. 544.  - }
  1815. 545.  - .settings_reason_desc {
  1816. 546.  -   /*padding-bottom: 15px;
  1817. 547.  -   color: #777777;*/
  1818. 548.  -   display: none;
  1819. 549.  - }
  1820. 550.  - .settings_reason_text {
  1821. 551.  -   width: 360px;
  1822. 552.  -   margin-top: 5px;
  1823. 553.  -   height: 33px;
  1824. 554.  - }
  1825. 555.  - .settings_deact_opts {
  1826. 556.  -   /*border-top: 1px solid #E8EBEE;*/
  1827. 557.  -   padding: 0px 10px 10px;
  1828. 558.  -   margin-top: 3px;
  1829. 559.  - }
  1830. 560.  - .settings_deact_checkbox {
  1831. 561.  -   margin: 5px 15px;
  1832. 562.  - }
  1833. 563.  - .settings_restore_cont {
  1834. 564.  -   padding: 40px 60px;
  1835. 565.  - }
  1836. 566.  - .settings_restore_cont h4 {
  1837. 567.  -   font-size: 1.09em;
  1838. 568.  - }
  1839. 569.  - .settings_restore_desc {
  1840. 570.  -   padding: 10px 0px 20px 0px;
  1841. 571.  - }
  1842. 572.  - .setting_checkbox_label {
  1843. 573.  -   padding: 5px 0px 0px 0px;
  1844. 574.  - }
  1845. 575.  - #settings_email_saved {
  1846. 576.  -   padding: 6px 6px 0px;
  1847. 577.  -   color: #888888;
  1848. 578.  - }
  1849. 579.  -
  1850. 580.  - #settings_new_phone_list {
  1851. 581.  -   color: #000;
  1852. 582.  -   padding-top: 10px;
  1853. 583.  - }
  1854. 584.  -
  1855. 585.  - #settings_name_moved_row {
  1856. 586.  -   overflow: hidden;
  1857. 587.  - }
  1858. 588.  - .settings_name_moved_wrap {
  1859. 589.  -   margin: 0 0 0 140px;
  1860. 590.  - }
  1861. 591.  - .settings_name_moved {
  1862. 592.  -   line-height: 160%;
  1863. 593.  -   margin-bottom: 8px;
  1864. 594.  - }
  1865. 595.  -
  1866. 596.  - #settings_status_default,
  1867. 597.  - #settings_show_fullinfo,
  1868. 598.  - #settings_no_wall_replies {
  1869. 599.  -   width: 240px;
  1870. 600.  - }
  1871. 601.  -
  1872. 602.  - #settings_email_msg .msg {
  1873. 603.  -   margin-bottom: 15px!important;
  1874. 604.  - }
  1875. 605.  -
  1876. 606.  - /* Domain box */
  1877. 607.  - .settdbx_wrap {
  1878. 608.  -   font-size: 12px;
  1879. 609.  - }
  1880. 610.  - .settdbx_info_wrap {
  1881. 611.  -   padding: 20px 30px 0;
  1882. 612.  - }
  1883. 613.  - .settdbx_header {
  1884. 614.  -   border: 0;
  1885. 615.  -   padding: 0;
  1886. 616.  -   margin-bottom: 15px;
  1887. 617.  -   font-size: 13px;
  1888. 618.  - }
  1889. 619.  - .settdbx_info {
  1890. 620.  -   line-height: 140%;
  1891. 621.  - }
  1892. 622.  - .settdbx_image {
  1893. 623.  -   background: url(/images/join/address.png) no-repeat 0 0;
  1894. 624.  -   width: 160px;
  1895. 625.  -   height: 160px;
  1896. 626.  -   margin: 20px auto 15px;
  1897. 627.  - }
  1898. 628.  -
  1899. 629.  - .settdbx_edit {
  1900. 630.  -   background: #F2F2F2;
  1901. 631.  -   padding: 20px;
  1902. 632.  - }
  1903. 633.  - .settdbx_field_wrap {
  1904. 634.  -   margin: 0 auto 10px;
  1905. 635.  -   width: 230px;
  1906. 636.  - }
  1907. 637.  - #settdbx_addr_table {
  1908. 638.  -   background: #FFF;
  1909. 639.  -   border: 1px solid #C0CAD5;
  1910. 640.  - }
  1911. 641.  - .settdbx_edit_addr_label {
  1912. 642.  -   color: #777;
  1913. 643.  -   padding: 4px 0px 3px 3px;
  1914. 644.  - }
  1915. 645.  - #settdbx_addr {
  1916. 646.  -   border: 0;
  1917. 647.  -   padding: 3px 2px 3px 0;
  1918. 648.  -   width: 142px;
  1919. 649.  -   margin: 0px -1px;
  1920. 650.  -   outline: 0;
  1921. 651.  - }
  1922. 652.  - .settdbx_submit_wrap {
  1923. 653.  -   text-align: center;
  1924. 654.  - }
  1925. 655.  -
  1926. 656.  - .settdbx_side_addr_tt table .tt_text {
  1927. 657.  -   line-height: 120%;
  1928. 658.  -   color: #000;
  1929. 659.  -   padding: 10px;
  1930. 660.  -   width: 150px;
  1931. 661.  -   font-size: 12px;
  1932. 662.  - }
  1933. 663.  - .settdbx_side_addr_pointer {
  1934. 664.  -   top: 47px;
  1935. 665.  - }
  1936. 666.  - .settdbx_advices_header {
  1937. 667.  -   font-weight: bold;
  1938. 668.  -   margin-bottom: 7px;
  1939. 669.  - }
  1940. 670.  - #settdbx_advices {
  1941. 671.  -   margin: 0 auto;
  1942. 672.  - }
  1943. 673.  - .settdbx_advices_wrap {
  1944. 674.  -   margin-top: 18px;
  1945. 675.  - }
  1946. 676.  - #settdbx_advices .listing {
  1947. 677.  -   margin: 0 0 0;
  1948. 678.  -   padding-left: 25px;
  1949. 679.  - }
  1950. 680.  -
  1951. 681.  - .settings_notice {
  1952. 682.  -   line-height: 160%;
  1953. 683.  -   padding-bottom: 15px;
  1954. 684.  - }
  1955. 685.  -
  1956. 686.  - .settings_error_msg {
  1957. 687.  -   line-height: 160%;
  1958. 688.  - }
  1959. 689.  -
  1960. 690.  - .settings_votes_history_wrap {
  1961. 691.  -   border-top: 1px solid #DAE1E8;
  1962. 692.  -   border-bottom: 1px solid #DAE1E8;
  1963. 693.  -   padding: 5px 20px;
  1964. 694.  -   background: #FFF;
  1965. 695.  - }
  1966. 696.  - #settings_votes_history {
  1967. 697.  -   width: 100%;
  1968. 698.  - }
  1969. 699.  - #settings_votes_history tr td {
  1970. 700.  -   padding: 8px 0;
  1971. 701.  -   border-bottom: 1px solid #DAE1E8;
  1972. 702.  - }
  1973. 703.  - .settings_history_photo {
  1974. 704.  -   width: 48px;
  1975. 705.  - }
  1976. 706.  - .settings_history_photo img {
  1977. 707.  -   display: block;
  1978. 708.  -   -moz-border-radius: 2px;
  1979. 709.  -   -webkit-border-radius: 2px;
  1980. 710.  -   border-radius: 2px;
  1981. 711.  - }
  1982. 712.  - .settings_history_thumb {
  1983. 713.  -   width: 32px;
  1984. 714.  -   height: 32px;
  1985. 715.  -   background: #DFE4EB url(/images/icons/payments_s.gif) no-repeat 1px 1px;
  1986. 716.  -   -moz-border-radius: 2px;
  1987. 717.  -   -webkit-border-radius: 2px;
  1988. 718.  -   border-radius: 2px;
  1989. 719.  - }
  1990. 720.  - .settings_history_thumb_cards {
  1991. 721.  -   background-position: 1px -33px !important;
  1992. 722.  - }
  1993. 723.  - .settings_history_thumb_payment_system {
  1994. 724.  -   background-position: 1px -67px !important;
  1995. 725.  - }
  1996. 726.  - .settings_history_thumb_terminal {
  1997. 727.  -   background-position: 1px -101px !important;
  1998. 728.  - }
  1999. 729.  - .settings_history_thumb_gifts {
  2000. 730.  -   background-position: 1px -135px !important;
  2001. 731.  - }
  2002. 732.  - .settings_history_thumb_offers {
  2003. 733.  -   background-position: 1px -167px !important;
  2004. 734.  - }
  2005. 735.  - .settings_history_title {
  2006. 736.  -   width: 300px;
  2007. 737.  - }
  2008. 738.  - .settings_history_amount {
  2009. 739.  -   font-weight: bold;
  2010. 740.  -   color: #777;
  2011. 741.  - }
  2012. 742.  - .settings_votes_income .settings_history_amount {
  2013. 743.  -   color: #333;
  2014. 744.  - }
  2015. 745.  - .settings_history_date {
  2016. 746.  -   text-align: right;
  2017. 747.  -   color: #777;
  2018. 748.  - }
  2019. 749.  - .settings_votes_history_next {
  2020. 750.  -   padding-bottom: 5px;
  2021. 751.  -   text-align: center;
  2022. 752.  - }
  2023. 753.  - .settings_votes_history_next a {
  2024. 754.  -   padding: 10px;
  2025. 755.  -   display: block;
  2026. 756.  - }
  2027. 757.  - .settings_votes_history_next a:hover {
  2028. 758.  -   background-color: #E9EDF1;
  2029. 759.  -   text-decoration: none;
  2030. 760.  - }
  2031. 761.  - .settings_votes_history_next img {
  2032. 762.  -   padding: 12px 0 11px 0;
  2033. 763.  - }
  2034. 764.  - #settings_votes_history tr.settings_votes_history_last td {
  2035. 765.  -   border-bottom: none;
  2036. 766.  - }
  2037. 767.  - .settings_emoji_time {
  2038. 768.  -   color: #888888;
  2039. 769.  -   margin-top: 6px;
  2040. 770.  -   padding-left: 20px;
  2041. 771.  - }
  2042. 772.  - .settings_close {
  2043. 773.  -   padding: 16px 20px 0px;
  2044. 774.  - }
  2045. 775.  - .settings_emoji_header {
  2046. 776.  -   padding: 16px 20px 10px;
  2047. 777.  -   font-size: 1.18em;
  2048. 778.  -   color: #45688E;
  2049. 779.  -   font-weight: bold;
  2050. 780.  - }
  2051. 781.  - .settings_emoji_cont {
  2052. 782.  -   padding: 0px 20px 20px 20px;
  2053. 783.  -   text-align: left;
  2054. 784.  - }
  2055. 785.  - .settings_emoji_buttons {
  2056. 786.  -   text-align: center;
  2057. 787.  -   margin-top: 20px;
  2058. 788.  - }
  2059. 789.  - .settings_emoji_screen {
  2060. 790.  -   -webkit-border-radius: 5px;
  2061. 791.  -   -moz-border-radius: 5px;
  2062. 792.  -   border-radius: 5px;
  2063. 793.  -   margin: 4px;
  2064. 794.  -   margin-bottom: 15px;
  2065. 795.  - }
  2066. 796.  - .settings_emoji_active_btn {
  2067. 797.  -   margin: 0px 6px;
  2068. 798.  - }
  2069. ------
Advertisement
Add Comment
Please, Sign In to add comment