Hormold

VK Change (#1391528704)

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