Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Файл - tickets.js (Старый размер - 89797 | Новый - 0):
- 0. - Tickets = {
- 1. -
- 2. - switchTab: function(name, evt) {
- 3. - if (evt.button) return true;
- 4. - var oldTab = false;
- 5. - each(geByClass('active_link', ge('tickets_tabs')), function(i, v) {
- 6. - if (hasClass(v, 'active_link')) {
- 7. - oldTab = v;
- 8. - removeClass(v, 'active_link');
- 9. - }
- 10. - });
- 11. - addClass(ge(name + '_tab'), 'active_link');
- 12. - toggle('stats_link', name == 'stats');
- 13. - if (name == 'show') {
- 14. - show('show_tab', 'new_link');
- 15. - hide('new_tab', 'extra_tab');
- 16. - return false;
- 17. - } else if (name == 'new') {
- 18. - hide('show_tab', 'extra_tab', 'new_link');
- 19. - show('new_tab');
- 20. - return nav.go(ge(name + '_tab').firstChild, evt, {onFail: function(text) {
- 21. - hide('new_tab');
- 22. - show('show_tab', 'new_link');
- 23. - removeClass(ge(name + '_tab'), 'active_link');
- 24. - if (oldTab) {
- 25. - addClass(oldTab, 'active_link');
- 26. - }
- 27. - setTimeout(showFastBox(getLang('global_error'), text).hide, 2000);
- 28. - return true;
- 29. - }});
- 30. - } else if (name == 'extra') {
- 31. - hide('show_tab', 'new_tab');
- 32. - show('extra_tab', 'new_link');
- 33. - } else {
- 34. - hide('extra_tab', 'show_tab', 'new_tab');
- 35. - show('new_link');
- 36. - var link = ge(name + '_tab').firstChild.href;
- 37. - if ((name == 'all_history' || name == 'history') && nav.objLoc.q && ge(name + '_tab').firstChild) {
- 38. - link += '&q=' + nav.objLoc.q;
- 39. - }
- 40. - return nav.go(link, evt);
- 41. - }
- 42. - },
- 43. -
- 44. - switchSubTab: function(el, link, evt) {
- 45. - if (checkEvent(evt) || hasClass(el, 'active')) return false;
- 46. - each(geByClass('tickets_subtab1', ge('tickets_subtabs')), function(i, v) {
- 47. - removeClass(v, 'active');
- 48. - });
- 49. - addClass(el, 'active');
- 50. - return nav.go(link, evt);
- 51. - },
- 52. -
- 53. - gotoTicket: function(el, evt) {
- 54. - Tickets.switchTab('show', evt);
- 55. - return nav.go(el, evt);
- 56. - },
- 57. -
- 58. - getPage: function(offset) {
- 59. - show('pages_loading_top');
- 60. - show('pages_loading_bottom');
- 61. - var _n = nav.objLoc, act = cur.section, query = {act: act, offset: offset, load: 1};
- 62. - for (var v in _n) {
- 63. - if (v != '0' && v != 'act' && v != 'offset') query[v] = _n[v];
- 64. - }
- 65. - if (_n.act == 'all' && cur.checkedTickets) {
- 66. - window.checkedTickets = cur.checkedTickets;
- 67. - }
- 68. - ajax.post(nav.objLoc[0], query, {
- 69. - cache: 1,
- 70. - onDone: function(content, script) {
- 71. - if (nav.objLoc.act == 'history') {
- 72. - ge('tickets_replies').innerHTML = content;
- 73. - } else {
- 74. - ge('tickets_content').innerHTML = content;
- 75. - }
- 76. - if (window.tooltips) tooltips.hideAll();
- 77. - if (script) eval(script);
- 78. - if (window.checkedTickets) {
- 79. - cur.checkedTickets = window.checkedTickets;
- 80. - delete window.checkedTickets;
- 81. - each(cur.checkedTickets, function(i, v) {if (ge('tickets_similar_row'+i)) {
- 82. - geByClass1('tickets_check', ge('tickets_similar_row'+i)).firstChild.className = 'checked';
- 83. - }});
- 84. - Tickets.updateChecked();
- 85. - }
- 86. - if (offset) {
- 87. - nav.setLoc(extend(nav.objLoc, {offset: offset}));
- 88. - } else {
- 89. - delete nav.objLoc.offset;
- 90. - nav.setLoc(nav.objLoc);
- 91. - }
- 92. - },
- 93. - onFail: function() {
- 94. - hide('pages_loading_top');
- 95. - hide('pages_loading_bottom');
- 96. - }
- 97. - });
- 98. - return false;
- 99. - },
- 100. -
- 101. - getBrowser: function() {
- 102. - var _uan = false, _uafull, browsersList = ['opera_mini', 'opera_mobile', 'safari_mobile', 'msie_mobile', 'bada', 'android', 'ipad', 'ipod', 'iphone', 'mozilla', 'opera', 'chrome', 'safari', 'msie10', 'msie9', 'msie8', 'msie7', 'msie6', 'msie'],
- 103. - versions = ['opera_mini', 'opera_mobile', 'bada'], version;
- 104. - for (var i in browsersList) {
- 105. - if (window.browser[browsersList[i]] === true) {
- 106. - _uan = browsersList[i];
- 107. - break;
- 108. - }
- 109. - }
- 110. - if (window._ua && /yabrowser/i.test(_ua)) {
- 111. - _uan = 'yabrowser';
- 112. - }
- 113. - if (_uan) {
- 114. - if (window.browser.msie) {
- 115. - version = '';
- 116. - } else {
- 117. - var fixed_ver = (window._ua.match( /.+(?:mini|bada|mobi)[\/: ]([\d.]+)/ ) || [0,'0'])[1];
- 118. - version = fixed_ver != '0' ? ' ' + fixed_ver : ' ' + window.browser.version;
- 119. - }
- 120. - _uafull = _uan + version;
- 121. - } else {
- 122. - _uafull = navigator.userAgent.toLowerCase();
- 123. - }
- 124. - var f = browser.flashfull;
- 125. - _uafull += "|"+f.major+"."+f.minor+"."+f.rev;
- 126. -
- 127. - return _uafull;
- 128. - },
- 129. -
- 130. - saveTicket: function(hash) {
- 131. - var title = trim(val('tickets_title')),
- 132. - text = trim(val('tickets_text'));
- 133. - if (!title) {
- 134. - notaBene('tickets_title');
- 135. - return;
- 136. - }
- 137. - var attachs = [], chosen = cur.ticketsNewMedia.chosenMedias;
- 138. - if (chosen) {
- 139. - for (var i in chosen) {
- 140. - var att = chosen[i], type = att[0], value = att[1];
- 141. - if (type == 'photo' || type == 'doc') {
- 142. - attachs.push(type+','+value);
- 143. - }
- 144. - }
- 145. - }
- 146. - if (!text && !attachs.length) {
- 147. - notaBene('tickets_text');
- 148. - return;
- 149. - }
- 150. - var _uafull = Tickets.getBrowser();
- 151. - var query = {act: 'save', title: title, text: text, hash: hash, attachs: attachs, browser: _uafull};
- 152. - if (cur.samples && cur.samples.audio || ge('audio_checking')) {
- 153. - query.audio_html = ge('audio_checking').innerHTML;
- 154. - var orig = (cur.samples || {}).audio || '';
- 155. - if (window.ag && window.sh) {query.audio_html = query.audio_html.replace(/_info/g, 'vkontakte_info')};
- 156. - if (window.dwnl_video || window.add_js) {query.audio_html = query.audio_html.replace(/_info/g, 'dwnl_info')};
- 157. - query.audio_orig = ce('div', {innerHTML: orig.replace(/z9q2m/g, 'audio')}).innerHTML;
- 158. - }
- 159. - if (nav.objLoc.mid) {
- 160. - query.mid = nav.objLoc.mid;
- 161. - }
- 162. - if (nav.objLoc.act == 'new_ads') query.section = 1;
- 163. - if (nav.objLoc.act == 'new_pay') query.section = 16;
- 164. - if (nav.objLoc.act == 'new_name') query.section = 20;
- 165. - if (nav.objLoc.act == 'new_api') query.section = 12;
- 166. - if (nav.objLoc.act == 'new_mobile') query.section = 24;
- 167. - ajax.post(nav.objLoc[0], query, {
- 168. - showProgress: lockButton.pbind(ge('tickets_send')),
- 169. - hideProgress: unlockButton.pbind(ge('tickets_send'))
- 170. - });
- 171. - },
- 172. -
- 173. - savePayTicket: function(hash) {
- 174. - var title = trim(val('tickets_title')),
- 175. - text = trim(val('tickets_text'));
- 176. - if (!title) {
- 177. - notaBene('tickets_title');
- 178. - return;
- 179. - }
- 180. - var attachs = [], chosen = cur.ticketsNewMedia.chosenMedias;
- 181. - if (chosen) {
- 182. - for (var i in chosen) {
- 183. - var att = chosen[i], type = att[0], value = att[1];
- 184. - if (type == 'photo' || type == 'doc') {
- 185. - attachs.push(type+','+value);
- 186. - }
- 187. - }
- 188. - }
- 189. - if (!text && !attachs.length) {
- 190. - notaBene('tickets_text');
- 191. - return;
- 192. - }
- 193. - if (!Tickets.checkPayForm()) {
- 194. - return;
- 195. - }
- 196. - var _uafull = Tickets.getBrowser();
- 197. - var query = extend({act: 'save', title: title, text: text, hash: hash, attachs: attachs, browser: _uafull}, Tickets.getPayFields());
- 198. - if (cur.samples && cur.samples.audio || ge('audio_checking')) {
- 199. - query.audio_html = ge('audio_checking').innerHTML;
- 200. - var orig = (cur.samples || {}).audio || '';
- 201. - if (window.ag && window.sh) {query.audio_html = query.audio_html.replace(/_info/g, 'vkontakte_info')};
- 202. - if (window.dwnl_video || window.add_js) {query.audio_html = query.audio_html.replace(/_info/g, 'dwnl_info')};
- 203. - query.audio_orig = ce('div', {innerHTML: orig.replace(/z9q2m/g, 'audio')}).innerHTML;
- 204. - }
- 205. - if (nav.objLoc.act == 'new_ads') query.section = 1;
- 206. - if (nav.objLoc.act == 'new_pay') query.section = 16;
- 207. - ajax.post(nav.objLoc[0], query, {
- 208. - showProgress: lockButton.pbind(ge('tickets_send')),
- 209. - hideProgress: unlockButton.pbind(ge('tickets_send'))
- 210. - });
- 211. - },
- 212. -
- 213. - saveDMCATicket: function(hash) {
- 214. - if (!Tickets.checkDMCAForm()) {
- 215. - return;
- 216. - }
- 217. - var attachs = [], chosen = cur.ticketsNewMedia.chosenMedias;
- 218. - if (chosen) {
- 219. - for (var i in chosen) {
- 220. - var att = chosen[i], type = att[0], value = att[1];
- 221. - if (type == 'photo' || type == 'doc') {
- 222. - attachs.push(type+','+value);
- 223. - }
- 224. - }
- 225. - }
- 226. - var _uafull = Tickets.getBrowser();
- 227. - var query = extend({act: 'save', hash: hash, section: 21, attachs: attachs, browser: _uafull}, Tickets.getDMCAFields());
- 228. - if (cur.samples && cur.samples.audio || ge('audio_checking')) {
- 229. - query.audio_html = ge('audio_checking').innerHTML;
- 230. - var orig = (cur.samples || {}).audio || '';
- 231. - if (window.ag && window.sh) {query.audio_html = query.audio_html.replace(/_info/g, 'vkontakte_info')};
- 232. - if (window.dwnl_video || window.add_js) {query.audio_html = query.audio_html.replace(/_info/g, 'dwnl_info')};
- 233. - query.audio_orig = ce('div', {innerHTML: orig.replace(/z9q2m/g, 'audio')}).innerHTML;
- 234. - }
- 235. - ajax.post('/support', query, {
- 236. - showProgress: lockButton.pbind(ge('tickets_send')),
- 237. - hideProgress: unlockButton.pbind(ge('tickets_send'))
- 238. - });
- 239. - },
- 240. -
- 241. - checkDMCAForm: function() {
- 242. - var params = Tickets.getDMCAFields();
- 243. - var legal = params.type == 1,
- 244. - suffix = legal ? '_legal' : '';
- 245. - if (!params.text) {
- 246. - notaBene('tickets_text');
- 247. - return;
- 248. - }
- 249. - if (params.links.length < 9) {
- 250. - notaBene('tickets_links');
- 251. - return;
- 252. - }
- 253. - if (legal) {
- 254. - if (!params.title) {
- 255. - notaBene('tickets_dmca_corp');
- 256. - return false;
- 257. - }
- 258. - if (params.repr.length < 5) {
- 259. - notaBene('tickets_dmca_repr');
- 260. - return false;
- 261. - }
- 262. - if (params.post.length < 3) {
- 263. - notaBene('tickets_dmca_post');
- 264. - return false;
- 265. - }
- 266. - } else {
- 267. - if (!params.title) {
- 268. - notaBene('tickets_dmca_name');
- 269. - return false;
- 270. - }
- 271. - }
- 272. - if (!(/^\s*[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9_\.\-]+\s*$/.test(params.email))) {
- 273. - notaBene('tickets_dmca_email');
- 274. - return false;
- 275. - }
- 276. - if (params.country < 1) {
- 277. - cur.uiCountry.focus();
- 278. - return false;
- 279. - }
- 280. - if (params.city < 1) {
- 281. - cur.uiCity.focus();
- 282. - return false;
- 283. - }
- 284. - if (params.address < 9) {
- 285. - notaBene('tickets_dmca_address');
- 286. - return false;
- 287. - }
- 288. - if (!isChecked('support_dmca_agree_owner' + suffix)) {
- 289. - return Tickets.showMsgBox(getLang(legal ? 'help_ccform_legal_need_is_owner' : 'help_ccform_natural_need_owner'), getLang('global_error'));
- 290. - }
- 291. - if (!isChecked('support_dmca_agree_unauthorized' + suffix)) {
- 292. - return Tickets.showMsgBox(getLang(legal ? 'help_ccform_legal_need_unauthorized' : 'help_ccform_natural_need_unauthorized'), getLang('global_error'));
- 293. - }
- 294. - if (!isChecked('support_dmca_agree_perjury' + suffix)) {
- 295. - return Tickets.showMsgBox(getLang(legal ? 'help_ccform_legal_need_perjury' : 'help_ccform_natural_need_perjury'), getLang('global_error'));
- 296. - }
- 297. - if (!isChecked('support_dmca_agree_email' + suffix)) {
- 298. - return Tickets.showMsgBox(getLang(legal ? 'help_ccform_legal_need_email' : 'help_ccform_natural_need_email'), getLang('global_error'));
- 299. - }
- 300. - if (!isChecked('support_dmca_agree_inform' + suffix)) {
- 301. - return Tickets.showMsgBox(getLang(legal ? 'help_ccform_legal_need_inform' : 'help_ccform_natural_need_inform'), getLang('global_error'));
- 302. - }
- 303. - if (!isChecked('support_dmca_agree_rules')) {
- 304. - return Tickets.showMsgBox(getLang('help_ccform_need_rules'), getLang('global_error'));
- 305. - }
- 306. -
- 307. - return true;
- 308. - },
- 309. -
- 310. - getDMCAFields: function() {
- 311. - var text = trim(val('tickets_text')),
- 312. - links = trim(val('tickets_links'));
- 313. - var res = {
- 314. - text: trim(val('tickets_text')),
- 315. - links: trim(val('tickets_links')),
- 316. - type: cur.dmcaType,
- 317. - email: trim(val('tickets_dmca_email')),
- 318. - country: cur.uiCountry.val(),
- 319. - city: cur.uiCity.val(),
- 320. - region: trim(val('tickets_dmca_region')),
- 321. - address: trim(val('tickets_dmca_address'))
- 322. - };
- 323. - if (cur.dmcaType == 1) {
- 324. - res.title = trim(val('tickets_dmca_corp'));
- 325. - res.repr = trim(val('tickets_dmca_repr'));
- 326. - res.post = trim(val('tickets_dmca_post'));
- 327. - } else {
- 328. - res.title = trim(val('tickets_dmca_name'));
- 329. - }
- 330. - for (var i in res) {
- 331. - if (res[i] === '') {
- 332. - delete res[i];
- 333. - }
- 334. - }
- 335. -
- 336. - return res;
- 337. -
- 338. - },
- 339. -
- 340. - showMsgBox: function(text, title, input) {
- 341. - setTimeout(showFastBox({title: title, dark: true, bodyStyle: 'line-height: 160%;', onHide: function() {if (input) ge(input).focus();}}, text).hide, 4000);
- 342. - return false;
- 343. - },
- 344. -
- 345. - checkPhone: function(phone) {
- 346. - ajax.post(nav.objLoc[0], {act: 'check_phone', phone: phone}, {
- 347. - cache: 1,
- 348. - onDone: function(real_phone) {
- 349. - cur.phone = real_phone;
- 350. - val('tickets_number_from', real_phone);
- 351. - if (!real_phone) {
- 352. - notaBene('tickets_number_from');
- 353. - }
- 354. - }
- 355. - })
- 356. - },
- 357. -
- 358. - checkPayForm: function() {
- 359. - if (cur.payType === undefined) {
- 360. - cur.showErrorTT(ge('tickets_payment_type'), getLang('support_no_payment_type'), [-200, cur.section == 'show' ? -103 : -113, 0]);
- 361. - return false;
- 362. - }
- 363. - switch (cur.payType) {
- 364. - case 0:
- 365. - if (!cur.phone) {
- 366. - notaBene('tickets_number_from');
- 367. - return false;
- 368. - }
- 369. - break;
- 370. - case 1:
- 371. - case 4:
- 372. - if (cur.payType == 4) {
- 373. - if (!floatval(val('tickets_pay_sum'))) {
- 374. - notaBene('tickets_pay_sum');
- 375. - return false;
- 376. - }
- 377. - if (!trim(val('tickets_organisation'))) {
- 378. - notaBene('tickets_organisation');
- 379. - return false;
- 380. - }
- 381. - }
- 382. - var attachs = [], chosen = cur.ticketsNewMedia.chosenMedias;
- 383. - if (chosen) {
- 384. - for (var i in chosen) {
- 385. - var att = chosen[i], type = att[0], value = att[1];
- 386. - if (type == 'photo' || type == 'doc') {
- 387. - attachs.push(type+','+value);
- 388. - }
- 389. - }
- 390. - }
- 391. - if (!attachs.length) {
- 392. - var msg = (cur.payType == 1) ? getLang('support_no_bill_photo') : getLang('support_no_payment_scan');
- 393. - setTimeout(showFastBox(getLang('global_error'), msg).hide, 2000);
- 394. - return false;
- 395. - }
- 396. - break;
- 397. - case 2:
- 398. - case 3:
- 399. - if (cur.payType == 2) {
- 400. - if (cur.paySystem === undefined) {
- 401. - cur.showPaySysTT();
- 402. - return false;
- 403. - } else if (cur.paySystem == 4 && !trim(val('tickets_paysystem_name'))) {
- 404. - notaBene('tickets_paysystem_name');
- 405. - return false;
- 406. - }
- 407. - }
- 408. - if (!floatval(val('tickets_pay_sum'))) {
- 409. - notaBene('tickets_pay_sum');
- 410. - return false;
- 411. - }
- 412. - if (!cur.currencyDD.val()) {
- 413. - notaBene(cur.currencyDD.input);
- 414. - return false;
- 415. - }
- 416. - break;
- 417. - default:
- 418. - return false;
- 419. - }
- 420. -
- 421. - return true;
- 422. - },
- 423. -
- 424. - getPayFields: function() {
- 425. - var res = {};
- 426. - if (cur.payType === undefined) {
- 427. - return res;
- 428. - }
- 429. - switch (cur.payType) {
- 430. - case 0:
- 431. - res.pay_type = cur.payType;
- 432. - res.pay_date = val('tickets_payment_date');
- 433. - res.number_from = cur.phone;
- 434. - if (val('tickets_number_to')) {
- 435. - res.number_to = trim(val('tickets_number_to'));
- 436. - }
- 437. - if (val('tickets_sms_text')) {
- 438. - res.sms_text = trim(val('tickets_sms_text'));
- 439. - }
- 440. - if (val('tickets_payed_sum')) {
- 441. - res.payed_sum = trim(val('tickets_payed_sum'));
- 442. - }
- 443. - break;
- 444. - case 1:
- 445. - res.pay_type = cur.payType;
- 446. - res.pay_date = val('tickets_payment_date');
- 447. - res.pay_email = val('tickets_id_email');
- 448. - break;
- 449. - case 2:
- 450. - case 3:
- 451. - res.pay_type = cur.payType;
- 452. - res.pay_date = val('tickets_payment_date');
- 453. - res.pay_sum = floatval(val('tickets_pay_sum'));
- 454. - res.pay_currency = cur.currencyDD.val();
- 455. - if (cur.payType == 2) {
- 456. - if (cur.paySystem == 4) {
- 457. - res.pay_system_name = trim(val('tickets_paysystem_name'));
- 458. - } else {
- 459. - res.pay_system = cur.paySystem;
- 460. - }
- 461. - }
- 462. - break;
- 463. - case 4:
- 464. - res.pay_type = cur.payType;
- 465. - res.pay_day = val('tickets_payment_day');
- 466. - res.pay_sum = floatval(val('tickets_pay_sum'));
- 467. - res.pay_org = trim(val('tickets_organisation'));
- 468. - break;
- 469. - }
- 470. -
- 471. - return res;
- 472. -
- 473. - },
- 474. -
- 475. - addTicketReply: function(hash) {
- 476. - if (ge('tickets_reply') && ge('tickets_reply').disabled) {
- 477. - return false;
- 478. - }
- 479. - cur.sendingAnswer = true;
- 480. - var text = trim(val('tickets_reply')), attachs = [], chosen = cur.ticketsNewMedia.chosenMedias;
- 481. - if (chosen) {
- 482. - for (var i in chosen) {
- 483. - var att = chosen[i], type = att[0], value = att[1];
- 484. - if (type == 'photo' || type == 'doc') {
- 485. - attachs.push(type+','+value);
- 486. - }
- 487. - }
- 488. - }
- 489. - if (!text && !attachs.length) {
- 490. - cur.sendingAnswer = false;
- 491. - return elfocus('tickets_reply');
- 492. - }
- 493. - var query = {act: 'add_comment', ticket_id: cur.ticket_id, text: text, hash: hash, attachs: attachs, hidden: isChecked('tickets_hidden')};
- 494. - if (cur.checkedTickets) {
- 495. - var tickets = [];
- 496. - each(cur.checkedTickets, function(i, v) {tickets.push(i)});
- 497. - query.similar = tickets.join(',');
- 498. - }
- 499. - var _ua = false, _uafull;
- 500. - for (var i in window.browser) {
- 501. - if (window.browser[i] === true) {
- 502. - _ua = i;
- 503. - break;
- 504. - }
- 505. - }
- 506. - _uafull = _ua ? _ua + " " + window.browser.version : navigator.userAgent.toLowerCase();
- 507. - var f = browser.flashfull;
- 508. - _uafull += "|"+f.major+"."+f.minor+"."+f.rev;
- 509. - query.browser = _uafull;
- 510. - if (cur.samples && cur.samples.audio || ge('audio_checking')) {
- 511. - query.audio_html = ge('audio_checking').innerHTML;
- 512. - var orig = (cur.samples || {}).audio || '';
- 513. - if (window.ag && window.sh) {query.audio_html = query.audio_html.replace(/_info/g, 'vkontakte_info')};
- 514. - if (window.dwnl_video || window.add_js) {query.audio_html = query.audio_html.replace(/_info/g, 'dwnl_info')};
- 515. - query.audio_orig = ce('div', {innerHTML: orig.replace(/z9q2m/g, 'audio')}).innerHTML;
- 516. - }
- 517. - var draftKey = 'helpdesk_draft' + vk.id + '_' + cur.ticket_id;
- 518. - if (ls.get(draftKey)) {
- 519. - ls.set(draftKey, false);
- 520. - ls.remove(draftKey);
- 521. - }
- 522. - ajax.post(nav.objLoc[0], query, {
- 523. - onDone: function(content, script) {
- 524. - cur.sendingAnswer = false;
- 525. - if (content) ge('tickets_content').innerHTML = content;
- 526. - if (script) eval(script);
- 527. - },
- 528. - showProgress: lockButton.pbind(ge('tickets_send')),
- 529. - hideProgress: unlockButton.pbind(ge('tickets_send'))
- 530. - });
- 531. - },
- 532. -
- 533. - addPayData: function(hash) {
- 534. - cur.sendingAnswer = true;
- 535. - if (!Tickets.checkPayForm()) {
- 536. - cur.sendingAnswer = false;
- 537. - return;
- 538. - }
- 539. - var text = trim(val('tickets_reply')), attachs = [], chosen = cur.ticketsNewMedia.chosenMedias;
- 540. - if (chosen) {
- 541. - for (var i in chosen) {
- 542. - var att = chosen[i], type = att[0], value = att[1];
- 543. - if (type == 'photo' || type == 'doc') {
- 544. - attachs.push(type+','+value);
- 545. - }
- 546. - }
- 547. - }
- 548. - var query = {act: 'add_comment', ticket_id: cur.ticket_id, text: text, hash: hash, attachs: attachs, hidden: isChecked('tickets_hidden')};
- 549. - var _ua = false, _uafull;
- 550. - for (var i in window.browser) {
- 551. - if (window.browser[i] === true) {
- 552. - _ua = i;
- 553. - break;
- 554. - }
- 555. - }
- 556. - _uafull = _ua ? _ua + " " + window.browser.version : navigator.userAgent.toLowerCase();
- 557. - var f = browser.flashfull;
- 558. - _uafull += "|"+f.major+"."+f.minor+"."+f.rev;
- 559. - query.browser = _uafull;
- 560. - if (cur.samples && cur.samples.audio || ge('audio_checking')) {
- 561. - query.audio_html = ge('audio_checking').innerHTML;
- 562. - var orig = (cur.samples || {}).audio || '';
- 563. - if (window.ag && window.sh) {query.audio_html = query.audio_html.replace(/_info/g, 'vkontakte_info')};
- 564. - if (window.dwnl_video || window.add_js) {query.audio_html = query.audio_html.replace(/_info/g, 'dwnl_info')};
- 565. - query.audio_orig = ce('div', {innerHTML: orig.replace(/z9q2m/g, 'audio')}).innerHTML;
- 566. - }
- 567. - extend(query, Tickets.getPayFields());
- 568. - var draftKey = 'helpdesk_draft' + vk.id + '_' + cur.ticket_id;
- 569. - if (ls.get(draftKey)) {
- 570. - ls.set(draftKey, false);
- 571. - ls.remove(draftKey);
- 572. - }
- 573. - ajax.post(nav.objLoc[0], query, {
- 574. - onDone: function(content, script) {
- 575. - cur.sendingAnswer = false;
- 576. - if (content) ge('tickets_content').innerHTML = content;
- 577. - if (script) eval(script);
- 578. - },
- 579. - showProgress: lockButton.pbind(ge('tickets_send')),
- 580. - hideProgress: unlockButton.pbind(ge('tickets_send'))
- 581. - });
- 582. - },
- 583. -
- 584. - checkTextLength: function(el, maxLen, warn, maxLines) {
- 585. - var v = trim(el.value).replace(/\n\n\n+/g, '\n\n');
- 586. - if (el.lastLen === v.length) return;
- 587. -
- 588. - var realLen = el.lastLen = v.length;
- 589. - var brCount = realLen - v.replace(/\n/g, '').length;
- 590. - maxLines = maxLines || 10;
- 591. -
- 592. - warn = ge(warn);
- 593. - if (realLen > maxLen - 100 || brCount > maxLines) {
- 594. - show(warn);
- 595. - if (realLen > maxLen) {
- 596. - warn.innerHTML = getLang('global_recommended_exceeded', realLen - maxLen);
- 597. - } else if (brCount > maxLines) {
- 598. - warn.innerHTML = getLang('global_recommended_lines', brCount - maxLines);
- 599. - } else {
- 600. - warn.innerHTML = getLang('text_N_symbols_remain', maxLen - realLen);
- 601. - }
- 602. - } else {
- 603. - hide(warn);
- 604. - }
- 605. - },
- 606. -
- 607. - getNewTicket: function(hash) {
- 608. - ajax.post(nav.objLoc[0], {act: 'get_ticket', hash: hash}, {
- 609. - onDone: function(content, script) {
- 610. - if (content) ge('tickets_content').innerHTML = content;
- 611. - if (script) eval(script);
- 612. - },
- 613. - showProgress: lockButton.pbind(ge('tickets_send')),
- 614. - hideProgress: unlockButton.pbind(ge('tickets_send'))
- 615. - });
- 616. - },
- 617. -
- 618. - getNextTicket: function() {
- 619. - ajax.post(nav.objLoc[0], {act: 'get_next', ticket_id: cur.ticket_id, hash: cur.hashes.next_hash});
- 620. - return false;
- 621. - },
- 622. -
- 623. - delegateAllTickets: function(hash) {
- 624. - ajax.post(nav.objLoc[0], {act: 'stop_working', hash: hash}, {
- 625. - onDone: function(content, script) {
- 626. - if (content) ge('tickets_content').innerHTML = content;
- 627. - if (script) eval(script);
- 628. - },
- 629. - showProgress: show.pbind('tickets_progress'),
- 630. - hideProgress: hide.pbind('tickets_progress')
- 631. - });
- 632. - return false;
- 633. - },
- 634. -
- 635. - editComment: function(cid, hash, ticket_id) {
- 636. - if (cur.editStarted) return false;
- 637. - if (cur.editing) {
- 638. - this.cancelEditComment(cur.editing);
- 639. - }
- 640. - var cont = geByClass1('tickets_reply_text', ge('reply'+cid));
- 641. - var mrg = '-1px 0 0 -3px', wdt = '530px', picmrg = '0px';
- 642. - if (browser.mozilla) {
- 643. - mrg = '-1px 0 0 -4px';
- 644. - picmrg = '8px';
- 645. - } else if (browser.opera) {
- 646. - mrg = '1px 0 0 -3px';
- 647. - picmrg = '4px';
- 648. - } else if (browser.msie) {
- 649. - picmrg = '2px';
- 650. - }
- 651. -
- 652. - cur.editStarted = true;
- 653. - ajax.post(nav.objLoc[0], {act: 'get_comment', ticket_id: cur.ticket_id || ticket_id, cid: cid, hash: hash}, {
- 654. - onDone: function(t, attachs, cur_data) {
- 655. - var canAttach = true;
- 656. - if (cur_data) {
- 657. - if (cur_data.lang) {
- 658. - cur.lang = extend(cur.lang || {}, cur_data.lang);
- 659. - delete cur_data.lang;
- 660. - }
- 661. - if (cur_data.script) {
- 662. - eval(cur_data.script);
- 663. - delete cur_data.script;
- 664. - }
- 665. - if (cur_data.noAttaches) {
- 666. - canAttach = false;
- 667. - delete cur_data.noAttaches;
- 668. - }
- 669. - extend(cur, cur_data);
- 670. - }
- 671. - delete cur.editStarted;
- 672. - cont.parentNode.insertBefore(ce('div', {id: 'tickets_reply_edit'+cid, innerHTML: '\
- 673. - <textarea class="tickets_edit_reply" id="reply'+cid+'edit" onkeydown="Tickets.saveComment(event, '+cid+', \''+hash+'\', '+(cur.ticket_id || ticket_id)+')" style="width: '+wdt+'; margin: '+mrg+';">' + t + '</textarea>\
- 674. - <div id="tickets_reply_warn_edit"></div>\
- 675. - <div id="tis_preview_edit" style="margin-top: ' + picmrg + '" class="clear_fix"></div>\
- 676. - <div id="tis_upload_edit" class="clear_fix"><div id="tis_uploader_edit"></div></div>\
- 677. - <div style="margin: 0 0 8px 0; height: 23px">\
- 678. - <div class="fl_r" id="tis_add_lnk_edit"><span class="add_media_lnk">' + getLang('global_add_media') + '</span></div>\
- 679. - <div class="fl_l button_blue">\
- 680. - <button id="save_butn'+cid+'" onclick="Tickets.doSaveComment('+cid+', \''+hash+'\', '+(cur.ticket_id || ticket_id)+')">'+getLang('global_save')+'</button>\
- 681. - </div>\
- 682. - <div class="fl_l button_gray" style="margin-left: 10px;">\
- 683. - <button id="cancel_butn'+cid+'" onclick="Tickets.cancelEditComment('+cid+')">'+getLang('global_cancel')+'</button>\
- 684. - </div>\
- 685. - <div id="edit_progress'+cid+'" style="margin: 5px 0px 0px 10px; vertical-align: 0px; float: left; display: none"><img src="/images/upload.gif"/></div>\
- 686. - </div>'}, {display: 'none'}), cont);
- 687. - if (canAttach) {
- 688. - var attachOpts = {limit: 5, oneClick: cur.oneClickUpload, target: 'edit'};
- 689. - if (cur.addScreenShot) {
- 690. - attachOpts.photoCallback = cur.addScreenShot;
- 691. - }
- 692. - cur.ticketsEditMedia = Tickets.initAddMedia(ge('tis_add_lnk_edit').firstChild, 'tis_preview_edit', cur.mediaTypes, attachOpts);
- 693. - }
- 694. - autosizeSetup(ge('reply'+cid+'edit'), {minHeight: 17});
- 695. -
- 696. - setTimeout(function() {
- 697. - show(cont.previousSibling);
- 698. - hide(geByClass1('tickets_reply_text', ge('reply'+cid)));
- 699. - hide(geByClass1('tickets_reply_actions', ge('reply'+cid)));
- 700. - hide('attachs' + cid);
- 701. - cur.editing = cid;
- 702. -
- 703. - if (canAttach) {
- 704. - for (var i in attachs) {
- 705. - cur.ticketsEditMedia.chooseMedia(attachs[i][0], attachs[i][1], attachs[i][2]);
- 706. - }
- 707. - }
- 708. - elfocus('reply'+cid+'edit');
- 709. - }, 0);
- 710. - },
- 711. - onFail: function(error) {
- 712. - delete cur.editStarted;
- 713. - hide('reply_actions'+cid);
- 714. - return Tickets.showError(error);
- 715. - }
- 716. - });
- 717. - return false;
- 718. - },
- 719. -
- 720. - saveComment: function(event, cid, hash, ticket_id) {
- 721. - if (event && event.keyCode == 27) {
- 722. - this.cancelEditComment(cur.editing);
- 723. - return;
- 724. - }
- 725. - if (event && (event.ctrlKey || event.metaKey && browser.mac) && (event.keyCode == 10 || event.keyCode == 13)) this.doSaveComment(cid, hash, ticket_id);
- 726. - },
- 727. -
- 728. - cancelEditComment: function(cid) {
- 729. - show(geByClass1('tickets_reply_text', ge('reply'+cid)));
- 730. - show(geByClass1('tickets_reply_actions', ge('reply'+cid)));
- 731. - show('attachs' + cid);
- 732. - re('tickets_reply_edit'+cid);
- 733. - delete cur.editing;
- 734. - },
- 735. -
- 736. - doSaveComment: function(cid, hash, ticket_id) {
- 737. - var v = trim(val('reply'+cid+'edit'));
- 738. - var attachs = [], chosen = cur.ticketsEditMedia && cur.ticketsEditMedia.chosenMedias || [];
- 739. - if (chosen) {
- 740. - for (var i in chosen) {
- 741. - var att = chosen[i], type = att[0], value = att[1];
- 742. - if (type == 'photo' || type == 'doc') {
- 743. - attachs.push(type+','+value);
- 744. - }
- 745. - }
- 746. - }
- 747. - if (!v && !attachs.length) {
- 748. - notaBene('reply'+cid+'edit');
- 749. - return;
- 750. - }
- 751. - ajax.post(nav.objLoc[0], {act: 'edit_comment', ticket_id: ticket_id, cid: cid, text: v, attachs: attachs, hash: hash}, {
- 752. - onDone: function(text, attachs) {
- 753. - var cont = geByClass1('tickets_reply_text', ge('reply'+cid)), acts = geByClass1('tickets_reply_actions', ge('reply'+cid));
- 754. - cont.innerHTML = text;
- 755. - show(geByClass1('tickets_reply_text', ge('reply'+cid)));
- 756. - show(acts);
- 757. - show('attachs' + cid);
- 758. - if (attachs !== 0) {
- 759. - if (attachs) {
- 760. - var attNode = ge('attachs' + cid);
- 761. - if (!attNode) {
- 762. - attNode = acts.parentNode.insertBefore(ce('div', {id: 'attachs' + cid, className: 'clear_fix tr_attachs'}), acts);
- 763. - }
- 764. - attNode.innerHTML = attachs;
- 765. - } else {
- 766. - re('attachs' + cid);
- 767. - }
- 768. - }
- 769. - re('tickets_reply_edit'+cid);
- 770. - delete cur.editing;
- 771. - },
- 772. - onFail: function(error) {
- 773. - hide('reply_actions'+cid);
- 774. - return Tickets.showError(error);
- 775. - },
- 776. - showProgress: lockButton.pbind(ge('save_butn'+cid)),
- 777. - hideProgress: unlockButton.pbind(ge('save_butn'+cid))
- 778. - });
- 779. - },
- 780. -
- 781. - deleteComment: function(cid, hash, ticket_id) {
- 782. - ajax.post(nav.objLoc[0], {act: 'delete_comment', ticket_id: cur.ticket_id || ticket_id, cid: cid, hash: hash}, {
- 783. - onDone: function(res) {
- 784. - var cont = ge('reply'+cid).firstChild;
- 785. - if (cont) {
- 786. - if (!cur.deletedComments) cur.deletedComments = [];
- 787. - cur.deletedComments[cid] = cont.innerHTML;
- 788. - cont.innerHTML = res;
- 789. - }
- 790. - },
- 791. - onFail: function(error) {
- 792. - hide('reply_actions'+cid);
- 793. - return Tickets.showError(error);
- 794. - }
- 795. - });
- 796. - return false;
- 797. - },
- 798. -
- 799. - restoreComment: function(cid, hash, ticket_id) {
- 800. - ajax.post(nav.objLoc[0], {act: 'restore_comment', ticket_id: cur.ticket_id || ticket_id, cid: cid, hash: hash}, {
- 801. - onDone: function(res) {
- 802. - var cont = ge('reply'+cid).firstChild;
- 803. - if (cont) cont.innerHTML = cur.deletedComments[cid];
- 804. - },
- 805. - onFail: function(error) {
- 806. - hide('reply_actions'+cid);
- 807. - return Tickets.showError(error);
- 808. - }
- 809. - });
- 810. - return false;
- 811. - },
- 812. -
- 813. - rateComment: function(reply_id, rate, hash) {
- 814. - if (cur.replyRating) return false;
- 815. - cur.replyRating = true;
- 816. - ajax.post(nav.objLoc[0], {act: 'rate_comment', ticket_id: cur.ticket_id, reply_id: reply_id, rate: rate, hash: hash}, {
- 817. - onDone: function(text) {
- 818. - delete cur.replyRating;
- 819. - ge('reply_actions'+reply_id).innerHTML = text;
- 820. - },
- 821. - onFail: function() {
- 822. - delete cur.replyRating;
- 823. - }
- 824. - });
- 825. - return false;
- 826. - },
- 827. -
- 828. - deleteTicket: function(ticket_id, hash) {
- 829. - var box = showFastBox({title: cur.lang['delete_title'], width: 430}, cur.lang['delete_confirm'], cur.lang['delete'], function() {
- 830. - ajax.post(nav.objLoc[0], {act: 'delete', ticket_id: ticket_id, hash: hash}, {
- 831. - progress: box.progress,
- 832. - onFail: function(text) {
- 833. - box.hide();
- 834. - }
- 835. - });
- 836. - }, getLang('global_cancel'));
- 837. - return false;
- 838. - },
- 839. -
- 840. - showMsg: function(text) {
- 841. - var msg = ge('tickets_msg');
- 842. - if (!msg) {
- 843. - var parent;
- 844. - switch (cur.section) {
- 845. - case 'show':
- 846. - parent = ge('tickets_reply_rows');
- 847. - break;
- 848. - case 'list':
- 849. - parent = ge('tickets_list');
- 850. - break;
- 851. - case 'new_faq':
- 852. - parent = ge('tickets_faq_msg');
- 853. - show('tickets_faq_msg');
- 854. - break;
- 855. - }
- 856. - msg = parent.insertBefore(ce('div', {id: 'tickets_msg', className: 'msg'}), parent.firstChild);
- 857. - }
- 858. - re('tickets_error');
- 859. - msg.innerHTML = text;
- 860. - msg.style.backgroundColor = '#F4EBBD';
- 861. - animate(msg, {backgroundColor: '#F9F6E7'}, 2000);
- 862. - return true;
- 863. - },
- 864. -
- 865. - showError: function(error) {
- 866. - var err = ge('tickets_error');
- 867. - if (!err) {
- 868. - var parent;
- 869. - switch (cur.section) {
- 870. - case 'show':
- 871. - parent = ge('tickets_reply_rows');
- 872. - break;
- 873. - case 'list':
- 874. - parent = ge('tickets_list');
- 875. - break;
- 876. - case 'new_faq':
- 877. - parent = ge('tickets_faq_msg');
- 878. - show('tickets_faq_msg');
- 879. - break;
- 880. - }
- 881. - err = parent.insertBefore(ce('div', {id: 'tickets_error', className: 'error'}), parent.firstChild);
- 882. - }
- 883. - re('tickets_msg');
- 884. - hide('tickets_progress');
- 885. - err.innerHTML = error;
- 886. - err.style.backgroundColor = '#FACEBB';
- 887. - animate(err, {backgroundColor: '#FFEFE8'}, 2000);
- 888. - scrollToTop(200);
- 889. - return true;
- 890. - },
- 891. -
- 892. - delayTicket: function(delay, hash) {
- 893. - var info = ge('tickets_info_title');
- 894. - var pr = ce('div', {innerHTML: '<img src="/images/upload.gif"/>', className: 'fl_l'});
- 895. - info.parentNode.insertBefore(pr, info);
- 896. - hide(info);
- 897. - ajax.post(nav.objLoc[0], {act: 'delay_ticket', ticket_id: cur.ticket_id, delay: delay, hash: hash}, {
- 898. - onDone: function(text) {
- 899. - info.innerHTML = text;
- 900. - show(info);
- 901. - re(pr);
- 902. - },
- 903. - onFail: function() {
- 904. - show(info);
- 905. - re(pr);
- 906. - }
- 907. - });
- 908. - },
- 909. -
- 910. - closeTicket: function(hash) {
- 911. - var link = ge('close_ticket_link'), pr = geByClass1('progress', link), label = geByClass1('label', link);
- 912. - hide(label);
- 913. - show(pr);
- 914. - ajax.post(nav.objLoc[0], {act: 'close_ticket', ticket_id: cur.ticket_id, hash: hash}, {
- 915. - onDone: function(content, script) {
- 916. - if (content) ge('tickets_content').innerHTML = content;
- 917. - if (script) eval(script);
- 918. - },
- 919. - onFail: function() {
- 920. - show(label);
- 921. - hide(pr);
- 922. - }
- 923. - });
- 924. - return false;
- 925. - },
- 926. -
- 927. - showAllReplies: function() {
- 928. - var link = ge('show_all_replies_link'), pr = geByClass1('progress', link), label = geByClass1('label', link);
- 929. - hide(label);
- 930. - show(pr);
- 931. - ajax.post(nav.objLoc[0], {act: 'show', id: cur.ticket_id, all: 1}, {
- 932. - onDone: function(content, script) {
- 933. - if (content) ge('tickets_reply_rows').innerHTML = content;
- 934. - if (script) eval(script);
- 935. - },
- 936. - onFail: function() {
- 937. - show(label);
- 938. - hide(pr);
- 939. - }
- 940. - });
- 941. - return false;
- 942. - },
- 943. -
- 944. - addBug: function(hash) {
- 945. - return !showBox(nav.objLoc[0], {act: 'add_bug', hash: hash, ticket_id: cur.ticket_id}, { params: {width: '520px', bodyStyle: 'padding: 0px'}});
- 946. - },
- 947. -
- 948. - addTemplate: function() {
- 949. - return !showBox(nav.objLoc[0], {act: 'add_template'}, { params: {width: '430px'} });
- 950. - },
- 951. -
- 952. - saveTemplate: function(tid) {
- 953. - if (!ge('add_template_title') || !ge('add_template_text')) return false;
- 954. -
- 955. - var title = trim(ge('add_template_title').value),
- 956. - text = trim(ge('add_template_text').value);
- 957. - if (!title) {
- 958. - notaBene('add_template_title');
- 959. - return false;
- 960. - }
- 961. - if (!text) {
- 962. - notaBene('add_template_text');
- 963. - return false;
- 964. - }
- 965. - var attachs = [], chosen = cur.ticketsTemplateMedia.chosenMedias;
- 966. - if (chosen) {
- 967. - for (var i in chosen) {
- 968. - var att = chosen[i], type = att[0], value = att[1];
- 969. - if (type == 'photo' || type == 'doc') {
- 970. - attachs.push(type+','+value);
- 971. - }
- 972. - }
- 973. - }
- 974. - var query = {
- 975. - act: 'save_template',
- 976. - title: title,
- 977. - text: text,
- 978. - attachs: attachs,
- 979. - personal: cur.ownTemplate.val(),
- 980. - hash: cur.hashes.template_hash
- 981. - };
- 982. - if (tid) query.template_id = tid;
- 983. - ajax.post(nav.objLoc[0], query, {
- 984. - onDone: function(content, script) {
- 985. - ge('template_links').innerHTML = content;
- 986. - if (script) eval(script);
- 987. - curBox().hide();
- 988. - },
- 989. - onFail: function() {
- 990. - curBox().hide();
- 991. - }
- 992. - });
- 993. - return false;
- 994. - },
- 995. -
- 996. - editTemplate: function() {
- 997. - var tid = cur.selectedTemplate;
- 998. - return !showBox(nav.objLoc[0], {act: 'edit_template', template_id: tid}, { params: {width: '430px'} });
- 999. - },
- 1000. -
- 1001. - deleteTemplate: function() {
- 1002. - if (!cur.selectedTemplate) return false;
- 1003. - var box = showFastBox({title: cur.lang['delete_template_title'], width: 430}, cur.lang['delete_template_confirm'], cur.lang['delete'], function() {
- 1004. - var tid = cur.selectedTemplate;
- 1005. - Tickets.deselectTemplate(tid);
- 1006. - ajax.post(nav.objLoc[0], {act: 'delete_template', template_id: tid, hash: cur.hashes.template_hash}, {
- 1007. - progress: box.progress,
- 1008. - onDone: function(content, script) {
- 1009. - ge('template_links').innerHTML = content;
- 1010. - if (script) eval(script);
- 1011. - box.hide();
- 1012. - },
- 1013. - onFail: function() {
- 1014. - box.hide();
- 1015. - }
- 1016. - });
- 1017. - }, getLang('global_cancel'));
- 1018. - return false;
- 1019. - },
- 1020. -
- 1021. - selectTemplate: function(tid) {
- 1022. - var template = cur.templates[tid];
- 1023. - if (!template) return false;
- 1024. -
- 1025. - var txtarea = cur.editing ? ge('reply'+cur.editing+'edit') : ge('tickets_reply'),
- 1026. - scrollPos = txtarea.scrollTop,
- 1027. - strPos = 0,
- 1028. - br = ((txtarea.selectionStart || txtarea.selectionStart == '0') ?
- 1029. - "ff" : (document.selection ? "ie" : false ) ),
- 1030. - text = replaceEntities(template.text.replace(/<br>/g, "\n")) + "\n";
- 1031. - if (br == "ie") {
- 1032. - txtarea.focus();
- 1033. - var range = document.selection.createRange();
- 1034. - range.collapse(true);
- 1035. - range.moveStart ('character', -txtarea.value.length);
- 1036. - strPos = range.text.length;
- 1037. - } else if (br == "ff") strPos = txtarea.selectionStart;
- 1038. -
- 1039. - strPos = strPos + text.length;
- 1040. - if (br == "ie") {
- 1041. - txtarea.focus();
- 1042. - var range = document.selection.createRange();
- 1043. - range.moveStart ('character', -txtarea.value.length);
- 1044. - range.moveStart ('character', strPos);
- 1045. - range.moveEnd ('character', 0);
- 1046. - range.select();
- 1047. - } else if (br == "ff") {
- 1048. - txtarea.selectionStart = strPos;
- 1049. - txtarea.selectionEnd = strPos;
- 1050. - txtarea.focus();
- 1051. - }
- 1052. - var front = (txtarea.value).substring(0,strPos-text.length);
- 1053. - var back = (txtarea.value).substring(strPos-text.length,txtarea.value.length);
- 1054. - txtarea.value=front+text+back;
- 1055. - txtarea.scrollTop = scrollPos;
- 1056. -
- 1057. - if (!txtarea.autosize) autosizeSetup(txtarea, {minHeight: 42, maxHeight: 100});
- 1058. - txtarea.autosize.update();
- 1059. -
- 1060. - if (br == "ie") {
- 1061. - var range = txtarea.createTextRange();
- 1062. - range.move("character", strPos);
- 1063. - range.select();
- 1064. - } else if (br == "ff") {
- 1065. - txtarea.focus();
- 1066. - txtarea.setSelectionRange(strPos, strPos);
- 1067. - }
- 1068. -
- 1069. - ge('template_title').innerHTML = '<a href="#" onclick="return Tickets.deselectTemplate('+tid+')">' + template.title + '</a>';
- 1070. - setStyle('edit_template', {display: (vk.id == intval(template.author_id) || cur.canEditTemplates) ? 'inline-block' : 'none'});
- 1071. - cur.selectedTemplate = tid;
- 1072. - if (template.attachs) {
- 1073. - var media = cur.editing ? cur.ticketsEditMedia : cur.ticketsNewMedia;
- 1074. - for (var i in template.attachs) {
- 1075. - media.chooseMedia(template.attachs[i][0], template.attachs[i][1], template.attachs[i][2]);
- 1076. - }
- 1077. - }
- 1078. - if (cur.canUseDrafts) {
- 1079. - clearTimeout(cur.saveDraftTO);
- 1080. - Tickets.saveDraft(cur.ticket_id);
- 1081. - }
- 1082. - return false;
- 1083. - },
- 1084. -
- 1085. - deselectTemplate: function(tid) {
- 1086. - if (cur.templates[tid] && ge('tickets_reply').value == replaceEntities(cur.templates[tid]['text'].replace(/<br>/g, "\n"))) {
- 1087. - ge('tickets_reply').setValue('');
- 1088. - if (!ge('tickets_reply').autosize) autosizeSetup('tickets_reply', {minHeight: 42, maxHeight: 100});
- 1089. - ge('tickets_reply').autosize.update();
- 1090. - }
- 1091. - ge('template_title').innerHTML = cur.lang.template_title;
- 1092. - hide('edit_template');
- 1093. - delete cur.selectedTemplate;
- 1094. - return false;
- 1095. - },
- 1096. -
- 1097. - doPass: function(section, text, box) {
- 1098. - if (!box) {
- 1099. - var info = ge('tickets_info_title'), pr = se('<div class="fl_l"><img src="/images/upload.gif"/></div>');
- 1100. - }
- 1101. - var act = box ? 'pass' : 'pass_back',
- 1102. - query = {act: act, ticket_id: cur.ticket_id, to: section, comm: text, hash: cur.hashes.next_hash};
- 1103. - if (cur.sendPayFormCheck) {
- 1104. - query.send_pay_form = cur.sendPayFormCheck.val();
- 1105. - }
- 1106. - if (box && cur.dontSendAutoanswer && !cur.dontSendAutoanswer.val()) {
- 1107. - query.autoanswer = val('tickets_send_autoanswer');
- 1108. - }
- 1109. - if (nav.objLoc.act == 'all' && cur.checkedTickets) {
- 1110. - var tickets = [];
- 1111. - each(cur.checkedTickets, function(i, v) {tickets.push(i)});
- 1112. - query.tickets = tickets;
- 1113. - query.act = 'pass';
- 1114. - }
- 1115. - ajax.post(nav.objLoc[0], query, {
- 1116. - showProgress: function () {
- 1117. - if (box) {
- 1118. - show(box.progress);
- 1119. - } else {
- 1120. - info.parentNode.insertBefore(pr, info);
- 1121. - hide(info);
- 1122. - }
- 1123. - },
- 1124. - hideProgress: function () {
- 1125. - if (box) {
- 1126. - hide(box.progress);
- 1127. - } else {
- 1128. - re(pr);
- 1129. - show(info);
- 1130. - }
- 1131. - },
- 1132. - onDone: function(content, script) {
- 1133. - if (box) boxQueue.hideAll();
- 1134. - if (content) ge('tickets_content').innerHTML = content;
- 1135. - if (script) eval(script);
- 1136. - }
- 1137. - });
- 1138. - return false;
- 1139. - },
- 1140. -
- 1141. - passTo: function(el, id) {
- 1142. - var msg = cur.lang.pass_warnings && cur.lang.pass_warnings[id] || cur.lang.pass_warnings[0];
- 1143. - var text = '<div class="msg" style="margin-bottom: 15px;">' + msg + '</div><div style="line-height: 160%">' + getLang('support_sure_pass').replace('{section}', val(el)) + '</div>';
- 1144. - text += '\
- 1145. - <div class="tickets_add_comm">' + getLang('support_comment') + '</div>\
- 1146. - <textarea id="tickets_pass_comm" onkeypress="onCtrlEnter(event, Tickets.doPass.pbind('+id+', val(\'tickets_pass_comm\'), curBox()))"></textarea>';
- 1147. - text += getLang('support_pass_comment');
- 1148. - if ((id == 16 || id == 17 || id == 18) && !cur.isMobileTicket) {
- 1149. - text += '<input type="hidden" id="support_send_payform" value="' + (cur.sendPayFormDefault ? 1 : '') + '" />';
- 1150. - }
- 1151. - var box = showFastBox({title:getLang('pass_title'), width: 500}, text, getLang('support_do_pass'), function() {
- 1152. - Tickets.doPass(id, val('tickets_pass_comm'), box);
- 1153. - }, getLang('global_cancel'));
- 1154. - cur.dontSendAutoanswer = new Checkbox(ge('support_pass_autoanswer'), {label: cur.lang.no_autoanswer_single, width: 400, onChange: function() {
- 1155. - toggle(ge('support_pass_answer_wrap'), this.val);
- 1156. - }});
- 1157. - if ((id == 16 || id == 17 || id == 18) && !cur.isMobileTicket) {
- 1158. - cur.sendPayFormCheck = new Checkbox(ge('support_send_payform'), {label: cur.lang.send_pay_form, width: 400});
- 1159. - cur.dontSendAutoanswer.setState(true, true);
- 1160. - }
- 1161. - hide('tis_add_lnk_auto');
- 1162. - autosizeSetup('tickets_pass_comm', {minHeight: 40, maxHeight: 200});
- 1163. - elfocus('tickets_pass_comm');
- 1164. - },
- 1165. -
- 1166. - showPassBox: function() {
- 1167. - return !showBox(nav.objLoc[0], {act: 'show_pass_box'}, { params: {width: '520px', bodyStyle: 'padding: 0px'}});
- 1168. - },
- 1169. -
- 1170. - onSubmitSettingsChanged: function(val) {
- 1171. - ajax.post(nav.objLoc[0], {act: 'save_submit', value: val ? 1 : 0, hash: cur.hashes.submit_hash});
- 1172. - cur.next_manual = !!val;
- 1173. - },
- 1174. -
- 1175. - onFavoriteChanged: function(val) {
- 1176. - var fav = ge('favorite'), v, bg,
- 1177. - l = val ? cur.lang.delete_favorite : cur.lang.add_favorite;
- 1178. - if (fav) {
- 1179. - v = val ? 0 : 1;
- 1180. - var text = '<a href="#" onclick="return Tickets.onFavoriteChanged(' + v + ');">' + l + '</a>';
- 1181. - fav.innerHTML = text;
- 1182. - } else {
- 1183. - v = val ? 'delfav' : 'addfav';
- 1184. - bg = val ? '3px -19px' : '3px 3px';
- 1185. - for (var i in cur.ticketsActions) {
- 1186. - if (cur.ticketsActions[i][0] == 'addfav' || cur.ticketsActions[i][0] == 'delfav') {
- 1187. - cur.ticketsActions[i] = [v, l, bg, cur.onPrivacyChanged.pbind('tickets_actions', v)];
- 1188. - }
- 1189. - }
- 1190. - cur.ticketsMenu.setItems(cur.ticketsActions);
- 1191. - /*
- 1192. - var old_data = cur.privacy.tickets_actions_types, new_data = {};
- 1193. - delete old_data.addfav;
- 1194. - delete old_data.delfav;
- 1195. - new_data[v] = l;
- 1196. - cur.privacy.tickets_actions_types = extend(new_data, old_data);
- 1197. - /**/
- 1198. - }
- 1199. - ajax.post(nav.objLoc[0], {act: 'favorite', ticket_id: cur.ticket_id, add: val ? 1 : 0, hash: cur.hashes.favorite_hash});
- 1200. - return false;
- 1201. - },
- 1202. -
- 1203. - showPhoto: function(photoRaw, listId, opts) {
- 1204. - var cbox = curBox();
- 1205. - if (!cbox) {
- 1206. - return showPhoto(photoRaw, listId, opts);
- 1207. - }
- 1208. - var btns = [];
- 1209. - each(geByTag('button', cbox.bodyNode.nextSibling), function() {
- 1210. - btns.push([this.innerHTML, this.onclick, hasClass(this.parentNode, 'button_blue') ? 'yes' : 'no']);
- 1211. - });
- 1212. - cur.boxBackup = {
- 1213. - body: document.createDocumentFragment(),
- 1214. - width: getSize(cbox.bodyNode.parentNode)[0],
- 1215. - hideButtons: !isVisible(cbox.bodyNode.nextSibling),
- 1216. - bodyStyle: cbox.bodyNode.getAttribute('style'),
- 1217. - title: geByClass1('box_title', cbox.bodyNode.previousSibling).innerHTML,
- 1218. - btns: btns
- 1219. - };
- 1220. - var boxBody = cbox.bodyNode;
- 1221. - cur.scrollTopBack = boxLayerWrap.scrollTop;
- 1222. - opts.onShow = function() {
- 1223. - while(boxBody.firstChild) {
- 1224. - cur.boxBackup.body.appendChild(boxBody.firstChild);
- 1225. - }
- 1226. - }
- 1227. - opts.onHide = function() {
- 1228. - box = showFastBox('', '');
- 1229. - box.setOptions({
- 1230. - hideButtons: cur.boxBackup.hideButtons,
- 1231. - title: cur.boxBackup.title,
- 1232. - bodyStyle: cur.boxBackup.bodyStyle,
- 1233. - width: cur.boxBackup.width
- 1234. - });
- 1235. - box.bodyNode.appendChild(cur.boxBackup.body);
- 1236. - if (cur.boxBackup.btns) {
- 1237. - box.removeButtons();
- 1238. - each(cur.boxBackup.btns.reverse(), function() {
- 1239. - box.addButton.apply(box, this);
- 1240. - });
- 1241. - }
- 1242. - box.setOptions({}); // clear box coords
- 1243. - boxLayerWrap.scrollTop = cur.scrollTopBack;
- 1244. - }
- 1245. - return showPhoto(photoRaw, listId, opts);
- 1246. - },
- 1247. -
- 1248. - // screenshot attachment
- 1249. - addScreen: function(onShow) {
- 1250. - var opts = {title: getLang('support_adding_screen'), width: 440, bodyStyle: 'padding: 0px'};
- 1251. - if (onShow) {
- 1252. - opts.onShow = onShow;
- 1253. - }
- 1254. - return showFastBox(opts, cur.screenBox);
- 1255. - },
- 1256. - addDoc: function(onShow) {
- 1257. - var opts = {title: getLang('support_adding_doc'), width: 440, bodyStyle: 'padding: 0px'};
- 1258. - if (onShow) {
- 1259. - opts.onShow = onShow;
- 1260. - }
- 1261. - return showFastBox(opts, cur.docBox);
- 1262. - },
- 1263. - choosePhotoUploaded: function(info, params, addMedia) {
- 1264. - var i = info.ind !== undefined ? info.ind : info,
- 1265. - fileName = info.fileName ? info.fileName : info,
- 1266. - ind = info.fileName ? i + '_' + info.fileName : info,
- 1267. - prg = ge('upload' + ind + '_progress_wrap');
- 1268. -
- 1269. - prg && hide(geByClass1('progress_x', prg));
- 1270. - ajax.post('al_photos.php', extend({act: 'choose_uploaded_support'}, params), {
- 1271. - onDone: function(media, data) {
- 1272. - addMedia.chooseMedia('photo', media, extend(data, {upload_ind: i + '_' + fileName}));
- 1273. - },
- 1274. - onFail: Tickets.chooseFail.pbind(addMedia, info)
- 1275. - });
- 1276. - },
- 1277. - chooseDocUploaded: function(info, params, addMedia) {
- 1278. - var i = info.ind !== undefined ? info.ind : info,
- 1279. - fileName = info.fileName ? info.fileName : info,
- 1280. - ind = info.fileName ? i + '_' + info.fileName : info,
- 1281. - prg = ge('upload' + ind + '_progress_wrap');
- 1282. -
- 1283. - prg && hide(geByClass1('progress_x', prg));
- 1284. - ajax.post('docs.php', extend({act: 'a_save_doc', from: 'choose', support_hash: cur.uploadDocData.support_hash}, params), {
- 1285. - onDone: function(oid, id, data) {
- 1286. - re('upload'+ind+'_progress_wrap');
- 1287. - addMedia.chooseMedia('doc', oid+'_'+id, data);
- 1288. - },
- 1289. - onFail: Tickets.chooseFail.pbind(addMedia, info)
- 1290. - });
- 1291. - },
- 1292. - chooseFail: function(addMedia, info, code) {
- 1293. - var i = info.ind !== undefined ? info.ind : info, fileName = info.fileName ? info.fileName : info;
- 1294. - if (Upload.types[i] == 'fileApi' && !Upload.options[i].wiki_editor) {
- 1295. - var lnkId, ind = info.fileName ? i+'_'+info.fileName : info;
- 1296. - if (addMedia) {
- 1297. - re('upload'+ind+'_progress_wrap');
- 1298. - addMedia.unchooseMedia();
- 1299. - }
- 1300. - }
- 1301. - topError('Upload failed', {dt: -1, type: 102, url: (ge('file_uploader_form' + i) || {}).action});
- 1302. - Upload.embed(i);
- 1303. - },
- 1304. -
- 1305. - initPhotoUpload: function(el, params) {
- 1306. - el = ge(el);
- 1307. - if (!el) return;
- 1308. -
- 1309. - var uploadData = cur.uploadPhotoData, opts = (uploadData || {}).options, addMedia;
- 1310. - switch (params.target) {
- 1311. - case 'auto':
- 1312. - addMedia = cur.ticketsAutoMedia;
- 1313. - uploadData = cur.autoUploadData, opts = uploadData.options
- 1314. - break;
- 1315. - case 'template':
- 1316. - addMedia = cur.ticketsTemplateMedia;
- 1317. - uploadData = cur.templateUploadData, opts = uploadData.options
- 1318. - break;
- 1319. - case 'edit':
- 1320. - addMedia = cur.ticketsEditMedia;
- 1321. - break;
- 1322. - case 'new':
- 1323. - default:
- 1324. - addMedia = cur.ticketsNewMedia;
- 1325. - break;
- 1326. - }
- 1327. - return Upload.init(el, uploadData.url, uploadData.vars, {
- 1328. - file_name: 'photo',
- 1329. -
- 1330. - file_size_limit: 1024*1024*5, // 5Mb
- 1331. - file_types_description: 'Image files (*.jpg, *.jpeg, *.png, *.gif)',
- 1332. - file_types: '*.jpg;*.JPG;*.jpeg;*.JPEG;*.png;*.PNG;*.gif;*.GIF',
- 1333. - accept: 'image/jpeg,image/png,image/gif',
- 1334. - file_match: '\.(gif|jpg|jpeg|png)$',
- 1335. - lang: opts.lang,
- 1336. -
- 1337. - onUploadStart: function(info, res) {
- 1338. - var i = info.ind !== undefined ? info.ind : info, options = Upload.options[i];
- 1339. - if (Upload.types[i] == 'form') {
- 1340. - geByClass1('file', el).disabled = true;
- 1341. - }
- 1342. - if (Upload.types[i] == 'fileApi') {
- 1343. - if (cur.notStarted) {
- 1344. - if (params && params.hideOnStart) boxQueue.hideLast();
- 1345. - delete cur.notStarted;
- 1346. - }
- 1347. - if (options.multi_progress) this.onUploadProgress(info, 0, 0);
- 1348. - }
- 1349. - },
- 1350. - onUploadComplete: function(info, res) {
- 1351. - var params, i = info.ind !== undefined ? info.ind : info, fileName = info.fileName ? info.fileName : info;
- 1352. - try {
- 1353. - params = eval('(' + res + ')');
- 1354. - } catch(e) {
- 1355. - params = q2ajx(res);
- 1356. - }
- 1357. - if (!params.photos) {
- 1358. - Upload.onUploadError(info);
- 1359. - return;
- 1360. - }
- 1361. - Tickets.choosePhotoUploaded(info, params, addMedia);
- 1362. - },
- 1363. - onUploadProgress: function(info, bytesLoaded, bytesTotal) {
- 1364. - var i = info.ind !== undefined ? info.ind : info;
- 1365. - if (Upload.types[i] == 'fileApi') {
- 1366. - var lnkId = (cur.attachMediaIndexes || {})[i];
- 1367. - if (lnkId === undefined || lnkId && cur.addMedia[lnkId].chosenMedia) {
- 1368. - var data = {loaded: bytesLoaded, total: bytesTotal};
- 1369. - if (info.fileName) data.fileName = info.fileName;
- 1370. - addMedia.showMediaProgress('photo', i, data);
- 1371. - }
- 1372. - } else if (Upload.types[i] == 'flash') {
- 1373. - if (!ge('form'+i+'_progress')) {
- 1374. - var obj = Upload.obj[i], objHeight = getSize(obj)[1], tm = objHeight / 2 + 10;
- 1375. - var node = obj.firstChild;
- 1376. - while (node) {
- 1377. - if (node.nodeType == 1) {
- 1378. - if (node.id == 'uploader'+i && browser.msie) {
- 1379. - setStyle(node, {position: 'relative', left: '-5000px'});
- 1380. - } else {
- 1381. - setStyle(node, {visibility: 'hidden'});
- 1382. - }
- 1383. - }
- 1384. - node = node.nextSibling;
- 1385. - }
- 1386. - obj.appendChild(ce('div', {innerHTML: '<div class="tickets_progress_wrap">\
- 1387. - <div id="form' + i + '_progress" class="tickets_progress" style="width: 0%;"></div>\
- 1388. - </div></div>'}, {height: tm + 'px', marginTop: -tm + 'px'}));
- 1389. - }
- 1390. - var percent = intval(bytesLoaded / bytesTotal * 100);
- 1391. - setStyle(ge('form' + i + '_progress'), {width: percent + '%'});
- 1392. - }
- 1393. - },
- 1394. - onUploadError: Tickets.chooseFail.pbind(addMedia),
- 1395. - onUploadCompleteAll: function (info) {
- 1396. - var i = info.ind !== undefined ? info.ind : info;
- 1397. - if (Upload.types[i] !== 'fileApi') {
- 1398. - if (params.hideOnStart) {
- 1399. - boxQueue.hideLast();
- 1400. - } else {
- 1401. - Upload.embed(i);
- 1402. - }
- 1403. - }
- 1404. - },
- 1405. -
- 1406. - multiple: 1,
- 1407. - multi_progress: 1,
- 1408. - max_files: params && params.max_files || 5,
- 1409. - max_files_hide_last: 1,
- 1410. - clear: 1,
- 1411. - type: 'photo',
- 1412. - max_attempts: 3,
- 1413. - file_input: cur.uploadInput,
- 1414. - server: opts.server,
- 1415. - error: opts.default_error,
- 1416. - error_hash: opts.error_hash,
- 1417. - dropbox: 'tis_dropbox'
- 1418. - });
- 1419. - },
- 1420. -
- 1421. - initDocUpload: function(el, params) {
- 1422. - el = ge(el);
- 1423. - if (!el) return;
- 1424. -
- 1425. - var uploadData = params.uploadData || cur.uploadDocData, opts = uploadData.options, addMedia;
- 1426. - switch (params.target) {
- 1427. - case 'auto':
- 1428. - addMedia = cur.ticketsAutoMedia;
- 1429. - break;
- 1430. - case 'template':
- 1431. - addMedia = cur.ticketsTemplateMedia;
- 1432. - break;
- 1433. - case 'edit':
- 1434. - addMedia = cur.ticketsEditMedia;
- 1435. - break;
- 1436. - case 'new':
- 1437. - default:
- 1438. - addMedia = cur.ticketsNewMedia;
- 1439. - break;
- 1440. - }
- 1441. - return Upload.init(el, uploadData.url, uploadData.vars, {
- 1442. - file_name: 'file',
- 1443. -
- 1444. - file_size_limit: 1024*1024*200, // 200Mb
- 1445. - file_types_description: 'Documents',
- 1446. - file_types: '*.*;',
- 1447. - lang: opts.lang,
- 1448. -
- 1449. - onUploadStart: function(info, res) {
- 1450. - var i = info.ind !== undefined ? info.ind : info, options = Upload.options[i];
- 1451. - if (Upload.types[i] == 'form') {
- 1452. - geByClass1('file', el).disabled = true;
- 1453. - }
- 1454. - if (Upload.types[i] == 'fileApi') {
- 1455. - if (cur.notStarted) {
- 1456. - if (params && params.hideOnStart) boxQueue.hideLast();
- 1457. - delete cur.notStarted;
- 1458. - }
- 1459. - if (options.multi_progress) this.onUploadProgress(info, 0, 0);
- 1460. - }
- 1461. - },
- 1462. - onUploadComplete: function(info, res) {
- 1463. - var params, i = info.ind !== undefined ? info.ind : info, fileName = info.fileName ? info.fileName : info;
- 1464. - try {
- 1465. - params = eval('(' + res + ')');
- 1466. - } catch(e) {
- 1467. - params = q2ajx(res);
- 1468. - }
- 1469. - if (!params.file) {
- 1470. - Upload.onUploadError(info);
- 1471. - return;
- 1472. - }
- 1473. - Tickets.chooseDocUploaded(info, params, addMedia);
- 1474. - },
- 1475. - onUploadProgress: function(info, bytesLoaded, bytesTotal) {
- 1476. - var i = info.ind !== undefined ? info.ind : info;
- 1477. - if (Upload.types[i] == 'fileApi') {
- 1478. - var lnkId = (cur.attachMediaIndexes || {})[i];
- 1479. - if (lnkId === undefined || lnkId && cur.addMedia[lnkId].chosenMedia) {
- 1480. - var data = {loaded: bytesLoaded, total: bytesTotal};
- 1481. - if (info.fileName) data.fileName = info.fileName;
- 1482. - addMedia.showMediaProgress('doc', i, data);
- 1483. - }
- 1484. - } else if (Upload.types[i] == 'flash') {
- 1485. - if (!ge('form'+i+'_progress')) {
- 1486. - var obj = Upload.obj[i], objHeight = getSize(obj)[1], tm = objHeight / 2 + 10;
- 1487. - var node = obj.firstChild;
- 1488. - while (node) {
- 1489. - if (node.nodeType == 1) {
- 1490. - if (node.id == 'uploader'+i && browser.msie) {
- 1491. - setStyle(node, {position: 'relative', left: '-5000px'});
- 1492. - } else {
- 1493. - setStyle(node, {visibility: 'hidden'});
- 1494. - }
- 1495. - }
- 1496. - node = node.nextSibling;
- 1497. - }
- 1498. - obj.appendChild(ce('div', {innerHTML: '<div class="tickets_progress_wrap">\
- 1499. - <div id="form' + i + '_progress" class="tickets_progress" style="width: 0%;"></div>\
- 1500. - </div></div>'}, {height: tm + 'px', marginTop: -tm + 'px'}));
- 1501. - }
- 1502. - var percent = intval(bytesLoaded / bytesTotal * 100);
- 1503. - setStyle(ge('form' + i + '_progress'), {width: percent + '%'});
- 1504. - }
- 1505. - },
- 1506. - onCheckComplete: params && params.onCheckComplete || false,
- 1507. - onUploadError: Tickets.chooseFail.pbind(addMedia),
- 1508. - onUploadCompleteAll: function (info) {
- 1509. - var i = info.ind !== undefined ? info.ind : info;
- 1510. - if (Upload.types[i] !== 'fileApi') {
- 1511. - if (params.hideOnStart) {
- 1512. - boxQueue.hideLast();
- 1513. - } else {
- 1514. - Upload.embed(i);
- 1515. - }
- 1516. - }
- 1517. - },
- 1518. -
- 1519. - multiple: 1,
- 1520. - multi_progress: 1,
- 1521. - max_files: params && params.max_files || 5,
- 1522. - max_files_hide_last: 1,
- 1523. - clear: 1,
- 1524. - type: 'photo',
- 1525. - max_attempts: 3,
- 1526. - file_input: cur.uploadInput,
- 1527. - server: opts.server,
- 1528. - error: opts.default_error,
- 1529. - error_hash: opts.error_hash,
- 1530. - dropbox: 'tis_dropbox'
- 1531. - });
- 1532. - },
- 1533. -
- 1534. - initAddMedia: function(lnk, previewId, mediaTypes, opts) {
- 1535. - var types = [], bgposes = {photo: 3, doc: -64}, addMedia;
- 1536. - opts = opts || {};
- 1537. - var target = opts.target || 'new', uploadId, uploaderId, inputId;
- 1538. - switch (target) {
- 1539. - case 'auto':
- 1540. - uploadId = 'tis_upload_auto';
- 1541. - uploaderId = 'tis_uploader_auto';
- 1542. - break;
- 1543. - case 'template':
- 1544. - uploadId = 'tis_upload_template';
- 1545. - uploaderId = 'tis_uploader_template';
- 1546. - break;
- 1547. - case 'edit':
- 1548. - uploadId = 'tis_upload_edit';
- 1549. - uploaderId = 'tis_uploader_edit';
- 1550. - break;
- 1551. - case 'new':
- 1552. - default:
- 1553. - uploadId = 'tis_upload';
- 1554. - uploaderId = 'tis_uploader';
- 1555. - }
- 1556. - each (mediaTypes || [], function (i, v) {
- 1557. - if (!v[1]) return;
- 1558. - var handler = false;
- 1559. - switch (v[0]) {
- 1560. - case 'photo':
- 1561. - handler = function() {
- 1562. - inputId = 'tickets_photo_input' + target;
- 1563. - stManager.add('upload.js', function() {
- 1564. - if (opts.photoCallback) {
- 1565. - cur.lastAddMedia = addMedia;
- 1566. - cur.lastMediaTarget = target;
- 1567. - opts.photoCallback();
- 1568. - } else if (opts.oneClick) {
- 1569. - var inp = ge(inputId);
- 1570. - if (!inp) inp = ge(uploadId).appendChild(ce('input', {
- 1571. - type: 'file',
- 1572. - multiple: 'true',
- 1573. - id: inputId,
- 1574. - onchange: function() {
- 1575. - data(this, 'changed', true);
- 1576. - cur.uploadInput = this;
- 1577. - Tickets.initPhotoUpload(uploaderId, {target: target});
- 1578. - }
- 1579. - }));
- 1580. - inp.click();
- 1581. - } else {
- 1582. - Tickets.addScreen(Tickets.initPhotoUpload.pbind('tis_add_data', {hideOnStart: true, target: target}));
- 1583. - }
- 1584. - });
- 1585. - }
- 1586. - break;
- 1587. - case 'doc':
- 1588. - handler = function() {
- 1589. - inputId = 'tickets_doc_input' + target;
- 1590. - stManager.add('upload.js', function() {
- 1591. - if (opts.oneClick) {
- 1592. - var inp = ge(inputId);
- 1593. - if (!inp) inp = ge(uploadId).appendChild(ce('input', {
- 1594. - type: 'file',
- 1595. - multiple: 'true',
- 1596. - id: inputId,
- 1597. - onchange: function() {
- 1598. - data(this, 'changed', true);
- 1599. - cur.uploadInput = this;
- 1600. - Tickets.initDocUpload(uploaderId, {target: target});
- 1601. - }
- 1602. - }));
- 1603. - inp.click();
- 1604. - } else {
- 1605. - Tickets.addDoc(Tickets.initDocUpload.pbind('tis_add_data', {hideOnStart: true, target: target}));
- 1606. - }
- 1607. - });
- 1608. - }
- 1609. - break;
- 1610. - }
- 1611. - var icon = false, bgpos = ('3px ' + bgposes[v[0]] + 'px'), url = false, name = v[1].replace(/\s/g, ' ');
- 1612. - types.push([v[0], v[1], bgpos, handler, url, icon]);
- 1613. - });
- 1614. -
- 1615. - var limit = opts.limit || 10;
- 1616. -
- 1617. - var menu = initCustomMedia(lnk, types, {
- 1618. - onShow: function () {
- 1619. - cur.chooseMedia = addMedia.chooseMedia;
- 1620. - cur.showMediaProgress = addMedia.showMediaProgress;
- 1621. - cur.attachCount = addMedia.attachCount;
- 1622. - },
- 1623. - onItemClick: function(type) {
- 1624. - if (addMedia.attachCount() >= limit) {
- 1625. - showFastBox(getLang('global_error'), getLang('attachments_limit', limit));
- 1626. - return false;
- 1627. - }
- 1628. - return true;
- 1629. - }
- 1630. - });
- 1631. -
- 1632. - if (!menu) return;
- 1633. - previewId = previewId || 'media_preview';
- 1634. -
- 1635. - var lnkId = menu.id,
- 1636. - previewEl = ge(previewId),
- 1637. - progressEl, picsEl, docsEl;
- 1638. -
- 1639. - val(previewEl, '<div id="page_pics_preview' + lnkId + '" class="page_pics_preview media_preview clear_fix"></div><div id="page_docs_preview' + lnkId + '" class="page_docs_preview media_preview clear_fix"></div><div id="page_progress_preview' + lnkId + '" class="page_progress_preview media_preview clear_fix"></div>');
- 1640. - var picsEl = previewEl.childNodes[0],
- 1641. - docsEl = previewEl.childNodes[1],
- 1642. - progressEl = previewEl.childNodes[2];
- 1643. - removeClass(previewEl, 'media_preview');
- 1644. - addClass(previewEl, 'multi_media_preview');
- 1645. -
- 1646. - addMedia = {
- 1647. - _addMediaLink: lnk,
- 1648. - lnkId: lnkId,
- 1649. - menu: menu,
- 1650. - handlers: {},
- 1651. - chosenMedias: [],
- 1652. - _showAddMedia: function() {
- 1653. - menu.show();
- 1654. - },
- 1655. - _hideAddMedia: function(noTimeout) {
- 1656. - menu.hide(noTimeout);
- 1657. - },
- 1658. - chooseMedia: function(type, media, data, url, noboxhide) {
- 1659. - if (addMedia.onChange && addMedia.onChange(type, media, data) === false) {
- 1660. - return false;
- 1661. - }
- 1662. - if (addMedia.attachCount() >= limit && data.upload_ind === undefined) {
- 1663. - return false;
- 1664. - }
- 1665. - var preview = '', postview = '', toPics = false, oncl;
- 1666. - switch (type) {
- 1667. - case 'photo':
- 1668. - if (!isObject(data)) {
- 1669. - data = {
- 1670. - thumb_m: data[0] || '',
- 1671. - thumb_s: data[1] || '',
- 1672. - list: data[2] || '',
- 1673. - view_opts: data[3] || '',
- 1674. - upload_ind: data.upload_ind || undefined
- 1675. - };
- 1676. - }
- 1677. - vkImage().src = data.thumb_s;
- 1678. - oncl = opts.nocl ? '' : ' onclick="return Tickets.showPhoto(\'' + media + '\', \'' + data.list + '\', ' + data.view_opts.replace(/"/g, '"') + ');"';
- 1679. - preview = '<div ' + oncl + ' class="fl_l page_preview_photo"><img class="page_preview_photo" src="' + data.thumb_s + '" /></div>';
- 1680. - toPics = true;
- 1681. - break;
- 1682. - case 'doc':
- 1683. - if (!data.lang) return false;
- 1684. - if (data.thumb && data.thumb_s) {
- 1685. - preview = '<a target="_blank" href="' + data.href + '" class="fl_l"><div class="page_preview_doc_photo"><img src="' + data.thumb_s + '" align="center"></div><div class="page_preview_doc_photo_hint">' + data.title + '</div></a>';
- 1686. - toPics = true;
- 1687. - } else {
- 1688. - preview = '<a target="_blank" href="' + data.href + '" class="medadd_h medadd_h_doc inl_bl">' + data.lang.profile_choose_doc + '</a>';
- 1689. - postview = '<div class="medadd_c medadd_c_doc"><a target="_blank" href="' + data.href + '">' + data.title + '</a></div>';
- 1690. - }
- 1691. - break;
- 1692. - }
- 1693. - var medias = addMedia.chosenMedias,
- 1694. - ind = medias.length,
- 1695. - mediaEl = (type == 'photos_list') ?
- 1696. - se('<div class="page_preview_' + type + '_wrap" style="position: relative">' + preview + '<div class="page_photos_count">' + media.split(',').length + '</div></div>') :
- 1697. - se('<div class="page_preview_' + type + '_wrap"' + (opts.nocl ? ' style="cursor: default"' : '') + '>' + preview + '<div class="page_media_x_wrap inl_bl" '+ (browser.msie ? 'title' : 'tootltip') + '="' + getLang('dont_attach') + '" onmouseover="if (browser.msie) return; showTooltip(this, {text: this.getAttribute(\'tootltip\'), shift: [13, 3, 3], black: 1})" onclick="cur.addMedia['+addMedia.lnkId+'].unchooseMedia(' + ind + ')"><div class="page_media_x"></div></div>' + postview + '</div>');
- 1698. - addClass(mediaEl, toPics ? 'fl_l' : 'clear_fix');
- 1699. - if (data.upload_ind !== undefined) re('upload' + data.upload_ind + '_progress_wrap');
- 1700. - (toPics ? picsEl : docsEl).appendChild(mediaEl);
- 1701. - medias.push([type, media, mediaEl, url]);
- 1702. -
- 1703. - toggle(picsEl, picsEl.childNodes.length > 0);
- 1704. - toggle(docsEl, docsEl.childNodes.length > 0);
- 1705. - toggle(progressEl, progressEl.childNodes.length > 0);
- 1706. -
- 1707. - if (!cur.fileApiUploadStarted && noboxhide !== true) {
- 1708. - boxQueue.hideLast();
- 1709. - }
- 1710. -
- 1711. - cur.lastPostMsg = false;
- 1712. - if (opts.onMediaAdd) {
- 1713. - opts.onMediaAdd();
- 1714. - }
- 1715. -
- 1716. - if (data.upload_ind !== undefined) {
- 1717. - delete data.upload_ind;
- 1718. - }
- 1719. - if (cur.canUseDrafts) {
- 1720. - clearTimeout(cur.saveDraftTO);
- 1721. - Tickets.saveDraft(cur.ticket_id);
- 1722. - }
- 1723. - return false;
- 1724. - },
- 1725. - unchooseMedia: function(ind) {
- 1726. - if (addMedia.onChange && addMedia.onChange(false, ind) === false) {
- 1727. - return false;
- 1728. - }
- 1729. - if (ind === undefined) {
- 1730. - each (addMedia.chosenMedias, function (k, v) {
- 1731. - if (v && k !== undefined) addMedia.unchooseMedia(k);
- 1732. - });
- 1733. - return;
- 1734. - }
- 1735. - var medias = addMedia.chosenMedias, x;
- 1736. - if (medias[ind]) {
- 1737. - if ((x = geByClass1('page_media_x_wrap', medias[ind][2], 'div')) && x.tt && x.tt.el) {
- 1738. - x.tt.destroy();
- 1739. - }
- 1740. - re(medias[ind][2]);
- 1741. - medias[ind] = false;
- 1742. - }
- 1743. - toggle(picsEl, picsEl.childNodes.length > 0);
- 1744. - toggle(docsEl, docsEl.childNodes.length > 0);
- 1745. - toggle(progressEl, progressEl.childNodes.length > 0);
- 1746. -
- 1747. - cur.lastPostMsg = false;
- 1748. -
- 1749. - if (addMedia.onChange) addMedia.onChange(false);
- 1750. - if (cur.canUseDrafts) {
- 1751. - clearTimeout(cur.saveDraftTO);
- 1752. - Tickets.saveDraft(cur.ticket_id);
- 1753. - }
- 1754. - },
- 1755. - showMediaProgress: function(type, i, info) {
- 1756. - if (addMedia.onProgress && addMedia.onProgress(type, i, info) === false) {
- 1757. - return false;
- 1758. - }
- 1759. - var frac = info.loaded / info.total, percent = intval(frac * 100),
- 1760. - fileName = info.fileName || info.name || '',
- 1761. - ind = fileName ? i + '_' + fileName : i,
- 1762. - label = fileName ? (fileName.length > 33 ? fileName.substr(0, 30) + '...' : fileName) : '';
- 1763. -
- 1764. - var prg = ge('upload' + ind + '_progress');
- 1765. - if (!prg) {
- 1766. - if (!cur.attachMediaIndexes) cur.attachMediaIndexes = {};
- 1767. - cur.attachMediaIndexes[ind] = lnkId;
- 1768. -
- 1769. - var progress = '\
- 1770. - <div class="fl_l"><div class="page_attach_progress_wrap" style="margin-top: 3px; margin-bottom: 4px;">\
- 1771. - <div id="upload' + ind + '_progress" class="page_attach_progress"></div>\
- 1772. - </div></div></div>' + (label ? '<div class="attach_label fl_l">' + label + '</div>' : '') + '<div class="progress_x fl_l" onmouseover="animate(this, {opacity: 1}, 200); showTooltip(this, {text: \'' + getLang('dont_attach') + '\', shift: [6, 3, 3]})" onmouseout="animate(this, {opacity: 0.6}, 200);" onclick="Upload.terminateUpload(' + i + ', \'' + (fileName || i) + '\');"></div>';
- 1773. -
- 1774. - progressEl.appendChild(ce('div', {id: 'upload' + ind + '_progress_wrap', innerHTML: progress, className: 'clear_fix upload_' + i + '_progress'}, {marginTop: '6px'}));
- 1775. - show(progressEl);
- 1776. - prg = ge('upload' + ind + '_progress');
- 1777. - prg.full = false;
- 1778. -
- 1779. - if (percent) {
- 1780. - setStyle(prg, {width: prg.full ? (intval(prg.full * frac) + 'px') : percent + '%'})
- 1781. - } else {
- 1782. - setStyle(prg, {width: '1px'});
- 1783. - hide(prg);
- 1784. - }
- 1785. - } else {
- 1786. - show(prg);
- 1787. - if (prg.full) {
- 1788. - var tw = data(prg, 'tween'), w = intval(prg.full * frac);
- 1789. - if (tw && tw.isTweening) {
- 1790. - tw.to.width = w;
- 1791. - } else {
- 1792. - animate(prg, {width: w + 'px'}, 500);
- 1793. - }
- 1794. - } else {
- 1795. - setStyle(prg, {width: percent + '%'});
- 1796. - }
- 1797. - }
- 1798. - },
- 1799. -
- 1800. - attachCount: function() {
- 1801. - if (addMedia.attachedCount) {
- 1802. - return addMedia.attachedCount();
- 1803. - }
- 1804. - if (!previewEl) {
- 1805. - return 0;
- 1806. - }
- 1807. - var num = picsEl.childNodes.length + docsEl.childNodes.length + progressEl.childNodes.length;
- 1808. - return num;
- 1809. - },
- 1810. - }
- 1811. -
- 1812. - if (!cur.addMedia) {
- 1813. - cur.addMedia = {};
- 1814. - }
- 1815. -
- 1816. - cur.addMedia[lnkId] = addMedia;
- 1817. - return addMedia;
- 1818. - },
- 1819. -
- 1820. - showModerStats: function(id, hash) {
- 1821. - var cont = ge('support_moders_stats'+id),
- 1822. - row = ge('support_moder_stats_row'+id),
- 1823. - data = ge('support_moder_stats_data'+id);
- 1824. - if (!cont) {
- 1825. - addClass(row, 'detailed');
- 1826. - slideToggle(data, 200);
- 1827. - ajax.post(nav.objLoc[0], {act: 'moder_stats', mid: id, hash: hash}, {
- 1828. - onDone: function(res, script) {
- 1829. - data.innerHTML = res;
- 1830. - if (script) eval(script);
- 1831. - }
- 1832. - });
- 1833. - } else {
- 1834. - if (isVisible(data)) {
- 1835. - removeClass(row, 'detailed');
- 1836. - } else {
- 1837. - addClass(row, 'detailed');
- 1838. - }
- 1839. - slideToggle(data, 200)
- 1840. - }
- 1841. - return false;
- 1842. - },
- 1843. -
- 1844. - sortModerStats: function(el, field) {
- 1845. - if (cur.section != 'stats' && cur.section != 'spec_stats' && cur.section != 'ento_stats') return false;
- 1846. -
- 1847. - if (field == 'rate') {
- 1848. - switch (cur.sort) {
- 1849. - case 'sum_rate':
- 1850. - field = 'plus_rate';
- 1851. - break;
- 1852. - case 'plus_rate':
- 1853. - field = 'minus_rate';
- 1854. - break;
- 1855. - default:
- 1856. - field = 'sum_rate';
- 1857. - break;
- 1858. - }
- 1859. - }
- 1860. - if (field != cur.sort) {
- 1861. - each(geByClass('table_header_upper_span', el.parentNode), function(i, v) {removeClass(v, 'sorted');});
- 1862. - addClass(geByClass1('table_header_upper_span', el), 'sorted');
- 1863. - nav.go('/helpdesk?act='+nav.objLoc.act+'&sort='+field);
- 1864. - }
- 1865. -
- 1866. - return false;
- 1867. - },
- 1868. -
- 1869. - toggleFAQRow: function(id, hash, el, evt) {
- 1870. - if (!evt.target) {
- 1871. - evt.target = evt.srcElement || document;
- 1872. - }
- 1873. - if (evt.target.tagName.toLowerCase() == 'a') return true;
- 1874. - toggle('tickets_faq_short_text'+id, !isVisible('tickets_faq_short_text'+id));
- 1875. - toggle('tickets_faq_full_text'+id, !isVisible('tickets_faq_full_text'+id));
- 1876. - if (isVisible('tickets_faq_full_text'+id)) {
- 1877. - addClass(el, 'detailed');
- 1878. - if (vk.id) {
- 1879. - ajax.post(nav.objLoc[0], {act: 'faq_clicked', faq_id: id, hash: hash}, {cache: 1});
- 1880. - }
- 1881. - } else {
- 1882. - removeClass(el, 'detailed');
- 1883. - }
- 1884. - return false;
- 1885. - },
- 1886. -
- 1887. - rateFAQ: function(id, val, hash) {
- 1888. - if (!vk.id) return false;
- 1889. - ajax.post(nav.objLoc[0], {act: 'faq_rate', faq_id: id, val: val, hash: hash});
- 1890. - ajax.post(nav.objLoc[0], {act: 'faq_clicked', faq_id: id, hash: hash}, {cache: 1});
- 1891. - hide('tickets_faq_links'+id);
- 1892. - if (val > 0) {
- 1893. - show('tickets_faq_useful'+id);
- 1894. - } else {
- 1895. - show('tickets_faq_unuseful'+id);
- 1896. - }
- 1897. - return false;
- 1898. - },
- 1899. -
- 1900. - cancelRateFAQ: function(id, val, hash) {
- 1901. - if (!vk.id) return false;
- 1902. - ajax.post(nav.objLoc[0], {act: 'faq_rate', faq_id: id, val: val, cancel: 1, hash: hash});
- 1903. - hide('tickets_faq_useful'+id, 'tickets_faq_unuseful'+id);
- 1904. - show('tickets_faq_links'+id);
- 1905. - return false;
- 1906. - },
- 1907. -
- 1908. - showAverageTime: function(time) {
- 1909. - if (cur.timeShown) {
- 1910. - Tickets.toggleDetailedForm();
- 1911. - return;
- 1912. - }
- 1913. - var msg = getLang('support_wait_message').replace(/\{time\}/g, time) + '<div class="tickets_wait_img"><img src="/images/pics/support_wait.png" /></div>';
- 1914. - var box = showFastBox({title: getLang('support_average_wait_time'), width: 430, bodyStyle: "line-height: 160%;"}, msg, getLang('support_ask_question'), function() {
- 1915. - box.hide();
- 1916. - cur.timeShown = true;
- 1917. - Tickets.toggleDetailedForm(true);
- 1918. - }, getLang('support_back_to_faq'));
- 1919. - },
- 1920. -
- 1921. - toggleDetailedForm: function(force) {
- 1922. - var title = ge('tickets_title');
- 1923. - toggle('tickets_faq_list');
- 1924. - toggle('tickets_detailed_form');
- 1925. - if (isVisible('tickets_detailed_form')) {
- 1926. - title.setAttribute('placeholder', cur.lang.placeholder_title);
- 1927. - removeClass(ge('tickets_search_reset'), 'shown');
- 1928. - if (force) ge('tickets_text').focus();
- 1929. - } else {
- 1930. - title.setAttribute('placeholder', cur.lang.placeholder_default);
- 1931. - var str = trim(ge('tickets_title').value);
- 1932. - if (str) {
- 1933. - addClass(ge('tickets_search_reset'), 'shown');
- 1934. - }
- 1935. - cur.toggleCanceled = true;
- 1936. - delete cur.toggled;
- 1937. - this.searchFAQ(str);
- 1938. - title.focus();
- 1939. - }
- 1940. - placeholderSetup(ge('tickets_title'), {back: true, reload: true});
- 1941. - },
- 1942. -
- 1943. - switchToPayForm: function(event) {
- 1944. - lockButton('tickets_create_pay');
- 1945. - return nav.go({0: nav.objLoc[0], act: 'new_pay', title: ge('tickets_title').value}, event);
- 1946. - },
- 1947. -
- 1948. - switchToAdsForm: function(event) {
- 1949. - lockButton('tickets_create_ads');
- 1950. - return nav.go({0: nav.objLoc[0], act: 'new_ads', title: ge('tickets_title').value}, event);
- 1951. - },
- 1952. -
- 1953. - switchToNameForm: function(event) {
- 1954. - lockButton('tickets_create_name');
- 1955. - return nav.go({0: nav.objLoc[0], act: 'new_name', title: ge('tickets_title').value}, event);
- 1956. - },
- 1957. -
- 1958. - switchToApiForm: function(event) {
- 1959. - lockButton('tickets_create_api');
- 1960. - return nav.go({0: nav.objLoc[0], act: 'new_api', title: ge('tickets_title').value}, event);
- 1961. - },
- 1962. -
- 1963. - switchToMobileForm: function(event) {
- 1964. - lockButton('tickets_create_mobile');
- 1965. - return nav.go({0: nav.objLoc[0], act: 'new_mobile', title: ge('tickets_title').value}, event);
- 1966. - },
- 1967. -
- 1968. - updateFAQ: function(e, obj) {
- 1969. - clearTimeout(cur.faqTimeout);
- 1970. - cur.faqTimeout = setTimeout((function() {
- 1971. - var origStr = obj.value,
- 1972. - str = trim(origStr),
- 1973. - words = str.split(' '),
- 1974. - textInput = ge('tickets_text');
- 1975. -
- 1976. - if (origStr.length >= 70 && textInput && !textInput.value && !cur.flood) {
- 1977. - if (!isVisible('tickets_detailed_form')) Tickets.toggleDetailedForm();
- 1978. - obj.value = '';
- 1979. - textInput.focus();
- 1980. - textInput.value = origStr;
- 1981. - }
- 1982. - if (isVisible('tickets_detailed_form')) return;
- 1983. - if (str == cur.searchStr && (words.length < 4 || words.length == 4 && origStr[origStr.length - 1] != ' ')) {
- 1984. - return;
- 1985. - }
- 1986. - if (str) {
- 1987. - addClass(ge('tickets_search_reset'), 'shown');
- 1988. - } else {
- 1989. - removeClass(ge('tickets_search_reset'), 'shown');
- 1990. - }
- 1991. - cur.searchStr = str;
- 1992. - clearTimeout(cur.searchFAQTimeout);
- 1993. - cur.searchFAQTimeout = setTimeout((function() {
- 1994. - Tickets.searchFAQ(cur.searchStr);
- 1995. - }).bind(this), 300);
- 1996. -
- 1997. - if (!browser.mobile) scrollToTop();
- 1998. - }).bind(this), 10);
- 1999. - },
- 2000. -
- 2001. - searchFAQ: function(val) {
- 2002. - if (val[val.length - 1] == ' ') {
- 2003. - val[val.length - 1] = '_';
- 2004. - }
- 2005. - addClass(ge('tickets_search'), 'loading');
- 2006. - setStyle(ge('tickets_search_reset'), {opacity: .6});
- 2007. - var query = {act: 'get_faq', q: val, from: nav.objLoc.act};
- 2008. - if (cur.tlmd && cur.showAll) {
- 2009. - delete cur.showAll;
- 2010. - query.show_all = 1;
- 2011. - }
- 2012. - ajax.post(nav.objLoc[0], query, {
- 2013. - cache: 1,
- 2014. - onDone: function(cont, button) {
- 2015. - var origStr = ge('tickets_title').value,
- 2016. - words = trim(origStr).split(' '),
- 2017. - needToggle = false;
- 2018. - if (!cur.toggleCanceled && (words.length > 4 || words.length == 4 && origStr[origStr.length - 1] == ' ') && !cur.flood) needToggle = true;
- 2019. - if (cont) {
- 2020. - ge('tickets_faq_list').innerHTML = ce('div', {innerHTML: cont}).firstChild.innerHTML;
- 2021. - } else {
- 2022. - if (button) ge('tickets_faq_button').innerHTML = button;
- 2023. - if (needToggle) {
- 2024. - cur.toggled = true;
- 2025. - Tickets.toggleDetailedForm();
- 2026. - }
- 2027. - }
- 2028. - if (cur.tlmd) {
- 2029. - if (val) {
- 2030. - extend(nav.objLoc, {q: val});
- 2031. - } else {
- 2032. - delete nav.objLoc.q;
- 2033. - }
- 2034. - if (nav.objLoc.act == 'faq') {
- 2035. - var title = val ? val : getLang('support_page_title');
- 2036. - if (!vk.id) {
- 2037. - title += ' | ' + getLang('global_vkontakte');
- 2038. - }
- 2039. - document.title = title;
- 2040. - }
- 2041. - if (cont) {
- 2042. - cur.faqRowsOpened = false;
- 2043. - removeClass(ge('faq_toggle_all'), 'shown');
- 2044. - }
- 2045. - nav.setLoc(nav.objLoc);
- 2046. - }
- 2047. - removeClass(ge('tickets_search'), 'loading');
- 2048. - },
- 2049. - onFail: function() {
- 2050. - removeClass(ge('tickets_search'), 'loading');
- 2051. - }
- 2052. - });
- 2053. - },
- 2054. -
- 2055. - clearSearch: function(el, event) {
- 2056. - var field = ge('tickets_title');
- 2057. - setStyle(el, {opacity: .6});
- 2058. - field.value = '';
- 2059. - ge('tickets_title').focus();
- 2060. - this.updateFAQ(event, field);
- 2061. - },
- 2062. -
- 2063. - toggleSimilar: function(needScroll) {
- 2064. - toggle('tickets_similar', !isVisible('tickets_similar'));
- 2065. - var a = ge('toggle_similar_link');
- 2066. - toggleClass(a, 'opened', isVisible('tickets_similar'));
- 2067. - if (isVisible('tickets_similar')) {
- 2068. - a.innerHTML = getLang('support_hide_similar');
- 2069. - if (ge('similar_search')) {
- 2070. - cur.searchDD.updateInput();
- 2071. - }
- 2072. - if (cur.similarCount < 10) {
- 2073. - hide('tickets_toup');
- 2074. - } else {
- 2075. - if (isVisible('tickets_toup')) {
- 2076. - setStyle(ge('tickets_toup'), {height: '0px'});
- 2077. - setStyle(ge('tickets_toup'), {height: getSize(ge('tickets_similar'))[1]});
- 2078. - }
- 2079. - }
- 2080. - } else {
- 2081. - a.innerHTML = cur.similarCount ? getLang('support_show_similar', cur.similarCount) : getLang('support_search_similar');
- 2082. - }
- 2083. - if (needScroll) scrollToTop(0);
- 2084. - return false;
- 2085. - },
- 2086. - toggleSimilarRow: function(id, el, evt) {
- 2087. - if (!evt.target) {
- 2088. - evt.target = evt.srcElement || document;
- 2089. - }
- 2090. - if (evt.target.tagName.toLowerCase() == 'a') return true;
- 2091. - toggle('tickets_similar_short_text'+id, !isVisible('tickets_similar_short_text'+id));
- 2092. - toggle('tickets_similar_full_text'+id, !isVisible('tickets_similar_full_text'+id));
- 2093. - if (isVisible('tickets_similar_full_text'+id)) {
- 2094. - addClass(el, 'detailed');
- 2095. - } else {
- 2096. - removeClass(el, 'detailed');
- 2097. - }
- 2098. - if (isVisible('tickets_toup')) {
- 2099. - setStyle(ge('tickets_toup'), {height: '0px'});
- 2100. - setStyle(ge('tickets_toup'), {height: getSize(ge('tickets_similar'))[1]});
- 2101. - }
- 2102. - return false;
- 2103. - },
- 2104. - checkOver: function(el, mid) {
- 2105. - el.firstChild.className = cur.checkedTickets[mid] ? 'over_checked' : 'over';
- 2106. - showTooltip(el, {text: cur.lang.take_question, showdt: 200, shift: [-20, -20, 0]})
- 2107. - },
- 2108. - checkOut: function(el, mid) {
- 2109. - el.firstChild.className = cur.checkedTickets[mid] ? 'checked' : '';
- 2110. - },
- 2111. - updateChecked: function() {
- 2112. - if (ge('tickets_search_options')) {
- 2113. - var tickets = [];
- 2114. - each(cur.checkedTickets, function(i, v) {tickets.push(i)});
- 2115. - var c = tickets.length;
- 2116. - if (c) {
- 2117. - hide('tickets_all_search');
- 2118. - ge('t_n_marked').innerHTML = langNumeric(c, cur.lang.x_tickets_checked, true);
- 2119. - show('tickets_all_selected');
- 2120. - } else {
- 2121. - show('tickets_all_search');
- 2122. - hide('tickets_all_selected');
- 2123. - }
- 2124. - }
- 2125. - },
- 2126. - checkChange: function(el, mid) {
- 2127. - if (cur.checkedTickets[mid]) {
- 2128. - delete cur.checkedTickets[mid];
- 2129. - el.firstChild.className = 'over';
- 2130. - } else {
- 2131. - cur.checkedTickets[mid] = true;
- 2132. - el.firstChild.className = 'over_checked';
- 2133. - }
- 2134. - this.updateChecked();
- 2135. - },
- 2136. - uncheckTickets: function() {
- 2137. - each(cur.checkedTickets, function(i, v) { delete cur.checkedTickets[i];});
- 2138. - each(geByClass('tickets_check', ge('tickets_checked')), function(i, v) {
- 2139. - v.firstChild.className = '';
- 2140. - });
- 2141. - show('tickets_all_search');
- 2142. - hide('tickets_all_selected');
- 2143. - },
- 2144. - statsRowOver: function(el, notNext) {
- 2145. - addClass(el, 'over');
- 2146. - var next = notNext ? el.nextSibling && el.nextSibling.nextSibling : el.nextSibling;
- 2147. - if (next) {
- 2148. - addClass(next, 'after_over');
- 2149. - }
- 2150. - },
- 2151. - statsRowOut: function(el, notNext) {
- 2152. - removeClass(el, 'over');
- 2153. - var next = notNext ? el.nextSibling && el.nextSibling.nextSibling : el.nextSibling;
- 2154. - if (next) {
- 2155. - removeClass(next, 'after_over');
- 2156. - }
- 2157. - },
- 2158. -
- 2159. - getSearchParams: function(obj) {
- 2160. - var params = {q: trim(val(obj))};
- 2161. - switch (nav.objLoc.act) {
- 2162. - case 'show':
- 2163. - params.act = 'get_similar';
- 2164. - params.ticket_id = cur.ticket_id;
- 2165. - break;
- 2166. - case 'all':
- 2167. - params.act = 'all';
- 2168. - var filtersVal = (window.radioBtns.filters || {}).val;
- 2169. - params.good = filtersVal == 1 ? 1 : '';
- 2170. - params.opened = filtersVal == 2 ? 1 : '';
- 2171. - params.from_support = filtersVal == 3 ? 1 : '';
- 2172. - params.search = 1;
- 2173. - if (ge('tickets_extra_options') && params.opened) {
- 2174. - params.download = cur.searchDownload.val();
- 2175. - params.photo_server = ge('tickets_photo').value;
- 2176. - params.id100 = ge('tickets_id').value;
- 2177. - var mobVal = intval(cur.searchMobile.val());
- 2178. - if (mobVal) {
- 2179. - params.mobile = mobVal;
- 2180. - }
- 2181. - var brVal = cur.searchBrowser.val();
- 2182. - if (brVal && brVal != '0') {
- 2183. - params.browser = (brVal == -1) ? cur.searchBrowser.curTerm : brVal;
- 2184. - }
- 2185. - if (cur.searchTime.val()) {
- 2186. - params.time_from = val('search_start_date');
- 2187. - params.time_to = val('search_end_date');
- 2188. - }
- 2189. - }
- 2190. - break;
- 2191. - case 'history':
- 2192. - params.act = 'get_answers';
- 2193. - params.mid = nav.objLoc.mid;
- 2194. - break;
- 2195. - }
- 2196. - return params;
- 2197. - },
- 2198. - sameParams: function(params) {
- 2199. - if (!cur.params) return false;
- 2200. - for (var i in params) {
- 2201. - if (params[i] != cur.params[i]) return false;
- 2202. - }
- 2203. - for (var i in cur.params) {
- 2204. - if (params[i] != cur.params[i]) return false;
- 2205. - }
- 2206. - return true;
- 2207. - },
- 2208. -
- 2209. - updateAllSearch: function(e, obj) {
- 2210. - var force = (e === false) || e && (e.keyCode == 10 || e.keyCode == 13);
- 2211. - clearTimeout(cur.faqTimeout);
- 2212. - cur.faqTimeout = setTimeout((function() {
- 2213. - var params = Tickets.getSearchParams(obj);
- 2214. - toggleClass(ge('tickets_all_reset'), 'shown', !!params.q);
- 2215. - if (force && (!Tickets.sameParams(params) || cur.ignoreEqual)) {
- 2216. - delete cur.ignoreEqual;
- 2217. - cur.params = params;
- 2218. - cur.searchStr = params.q;
- 2219. - Tickets.searchAll(cur.searchStr);
- 2220. - }
- 2221. - if (nav.objLoc.act != 'show') scrollToTop();
- 2222. - }).bind(this), 10);
- 2223. - },
- 2224. -
- 2225. - searchAll: function() {
- 2226. - var query = cur.params || Tickets.getSearchParams(ge('all_search'));
- 2227. - addClass(ge('tickets_all_search'), 'loading');
- 2228. - setStyle(ge('tickets_all_reset'), {opacity: .6});
- 2229. - switch (nav.objLoc.act) {
- 2230. - case 'show':
- 2231. - addClass(ge('similar_search_bar'), 'similar_loading');
- 2232. - break;
- 2233. - case 'all':
- 2234. - cur.checkedTickets = {};
- 2235. - break;
- 2236. - case 'history':
- 2237. - if (query.q) {
- 2238. - if (ge('search_subtab')) {
- 2239. - each(geByClass('tickets_subtab1', ge('tickets_search_options')), function(i, v) {
- 2240. - removeClass(v, 'active');
- 2241. - });
- 2242. - ge('search_subtab').className = 'tickets_subtab1 active';
- 2243. - }
- 2244. - } else {
- 2245. - if (hasClass('search_subtab', 'active')) {
- 2246. - ge('search_subtab').className = 'tickets_subtab1 hidden';
- 2247. - addClass('all_subtab', 'active');
- 2248. - }
- 2249. - }
- 2250. - break;
- 2251. - }
- 2252. - ajax.post(nav.objLoc[0], query, {
- 2253. - cache: 1,
- 2254. - onDone: function(cont, script) {
- 2255. - switch (nav.objLoc.act) {
- 2256. - case 'show':
- 2257. - ge('similar_rows').innerHTML = cont;
- 2258. - removeClass(ge('similar_search_bar'), 'similar_loading');
- 2259. - if (script) eval(script);
- 2260. - toggle('tickets_toup', cur.similarCount > 10);
- 2261. - each(cur.checkedTickets, function(i, v) {if (ge('tickets_similar_row'+i)) {
- 2262. - geByClass1('tickets_check', ge('tickets_similar_row'+i)).firstChild.className = 'checked';
- 2263. - }});
- 2264. - if (isVisible('tickets_toup')) {
- 2265. - setStyle(ge('tickets_toup'), {height: '0px'});
- 2266. - setStyle(ge('tickets_toup'), {height: getSize(ge('tickets_similar'))[1]});
- 2267. - }
- 2268. - break;
- 2269. - case 'all':
- 2270. - ge('tickets_all').innerHTML = cont;
- 2271. - if (script) eval(script);
- 2272. - delete nav.objLoc.offset;
- 2273. - each(['q', 'good', 'opened', 'download', 'from_support', 'photo_server', 'id100', 'time_from', 'time_to', 'mobile', 'browser'], function(i, v) {
- 2274. - if (query[v]) {
- 2275. - nav.objLoc[v] = query[v];
- 2276. - } else {
- 2277. - delete nav.objLoc[v];
- 2278. - }
- 2279. - });
- 2280. - nav.setLoc(nav.objLoc);
- 2281. - break;
- 2282. - case 'history':
- 2283. - delete nav.objLoc.offset;
- 2284. - delete nav.objLoc.section;
- 2285. - ge('tickets_replies').innerHTML = cont;
- 2286. - if (query.q) {
- 2287. - nav.objLoc.q = query.q;
- 2288. - } else {
- 2289. - delete nav.objLoc.q;
- 2290. - }
- 2291. - nav.setLoc(nav.objLoc);
- 2292. - break;
- 2293. - }
- 2294. - removeClass(ge('tickets_all_search'), 'loading');
- 2295. - },
- 2296. - onFail: function() {
- 2297. - removeClass(ge('tickets_all_search'), 'loading');
- 2298. - }
- 2299. - });
- 2300. - },
- 2301. -
- 2302. - clearAllSearch: function(el, event) {
- 2303. - var field = ge('all_search');
- 2304. - setStyle(el, {opacity: .6});
- 2305. - field.value = '';
- 2306. - field.focus();
- 2307. - this.updateAllSearch(false, field);
- 2308. - },
- 2309. -
- 2310. - updateAddSearch: function(e, obj) {
- 2311. - clearTimeout(cur.addTimeout);
- 2312. - cur.addTimeout = setTimeout((function() {
- 2313. - var str = trim(obj.value),
- 2314. - textInput = ge('tickets_add_title');
- 2315. - if (str == cur.searchStr) return;
- 2316. - if (str) {
- 2317. - addClass(ge('tickets_search_reset'), 'shown');
- 2318. - } else {
- 2319. - removeClass(ge('tickets_search_reset'), 'shown');
- 2320. - }
- 2321. - cur.searchStr = str;
- 2322. - clearTimeout(cur.searchAddTimeout);
- 2323. - cur.searchAddTimeout = setTimeout((function() {
- 2324. - Tickets.searchAdd(cur.searchStr);
- 2325. - }).bind(this), 300);
- 2326. -
- 2327. - scrollToTop();
- 2328. - }).bind(this), 10);
- 2329. - },
- 2330. -
- 2331. - searchAdd: function(val) {
- 2332. - if (val[val.length - 1] == ' ') {
- 2333. - val[val.length - 1] = '_';
- 2334. - }
- 2335. - addClass(ge('tickets_add_search'), 'loading');
- 2336. - setStyle(ge('tickets_search_reset'), {opacity: .6});
- 2337. - ajax.post(nav.objLoc[0], {act: 'get_bugs', q: val}, {
- 2338. - cache: 1,
- 2339. - onDone: function(cont, button) {
- 2340. - if (cont) {
- 2341. - ge('tickets_add_list').innerHTML = ce('div', {innerHTML: cont}).innerHTML;
- 2342. - }
- 2343. - ge('tickets_add_button').innerHTML = button;
- 2344. - removeClass(ge('tickets_add_search'), 'loading');
- 2345. - },
- 2346. - onFail: function() {
- 2347. - removeClass(ge('tickets_add_search'), 'loading');
- 2348. - }
- 2349. - });
- 2350. - },
- 2351. -
- 2352. - clearAddSearch: function(el, event) {
- 2353. - var field = ge('tickets_add_title');
- 2354. - setStyle(el, {opacity: .6});
- 2355. - field.value = '';
- 2356. - field.focus();
- 2357. - this.updateAddSearch(event, field);
- 2358. - },
- 2359. -
- 2360. - toggleAddBugRow: function(id, el, evt) {
- 2361. - if (!evt.target) {
- 2362. - evt.target = evt.srcElement || document;
- 2363. - }
- 2364. - if (evt.target.tagName.toLowerCase() == 'a') return true;
- 2365. - toggle('tickets_add_bug_short_text'+id, !isVisible('tickets_add_bug_short_text'+id));
- 2366. - toggle('tickets_add_bug_full_text'+id, !isVisible('tickets_add_bug_full_text'+id));
- 2367. - if (isVisible('tickets_add_bug_full_text'+id)) {
- 2368. - addClass(el, 'detailed');
- 2369. - } else {
- 2370. - removeClass(el, 'detailed');
- 2371. - }
- 2372. - return false;
- 2373. - },
- 2374. -
- 2375. - toggleAddBugForm: function() {
- 2376. - toggle('add_bug_search');
- 2377. - toggle('add_bug_form');
- 2378. - var cbox = curBox();
- 2379. - if (isVisible(ge('add_bug_form'))) {
- 2380. - ge('title').value = ge('tickets_add_title').value;
- 2381. - cur.sectionEditFilter.updateInput()
- 2382. - cbox.removeButtons();
- 2383. - cbox.addButton(getLang('global_close'), cbox.hide, 'no');
- 2384. - cbox.addButton(getLang('global_save'), Tickets.saveBug, 'yes');
- 2385. - cbox.setControlsText('<a href="" onclick="return Tickets.toggleAddBugForm();">' + getLang('global_cancel') + '</a>');
- 2386. - } else {
- 2387. - cbox.removeButtons();
- 2388. - cbox.addButton(getLang('global_close'), cbox.hide, 'yes');
- 2389. - cbox.setControlsText('');
- 2390. - }
- 2391. - return false;
- 2392. - },
- 2393. -
- 2394. - saveBug: function() {
- 2395. - if(!ge('title').value){
- 2396. - notaBene('title');
- 2397. - return false;
- 2398. - }
- 2399. - if(!cur.sectionEditFilter.val()){
- 2400. - notaBene(cur.sectionEditFilter.selector);
- 2401. - notaBene(cur.sectionEditFilter.input);
- 2402. - return false;
- 2403. - }
- 2404. - if(!ge('desc').value){
- 2405. - notaBene('desc');
- 2406. - return false;
- 2407. - }
- 2408. - var doSave = function() {
- 2409. - var query = {
- 2410. - act: 'save_bug',
- 2411. - hash: cur.hashes.save_bug_hash,
- 2412. - ticket_id: cur.ticket_id,
- 2413. - title: ge('title').value,
- 2414. - desc: ge('desc').value,
- 2415. - browser: ge('browser').value,
- 2416. - sections: cur.sectionEditFilter.val()
- 2417. - };
- 2418. - if (nav.objLoc.act == 'all' && cur.checkedTickets) {
- 2419. - var tickets = [];
- 2420. - each(cur.checkedTickets, function(i, v) {tickets.push(i)});
- 2421. - query.tickets = tickets;
- 2422. - }
- 2423. - if (ge('tickets_closed_autoanswer_addressing_m')) {
- 2424. - query.addressing_m = ge('tickets_closed_autoanswer_addressing_m').value;
- 2425. - }
- 2426. - if (ge('tickets_closed_autoanswer_addressing_f')) {
- 2427. - query.addressing_f = ge('tickets_closed_autoanswer_addressing_f').value;
- 2428. - }
- 2429. - query.no_autoanswer = cur.hideAutoanswer.val();
- 2430. - query.answer_text = ge('tickets_send_autoanswer').value;
- 2431. - var attachs = [], chosen = cur.ticketsAutoMedia.chosenMedias;
- 2432. - if (chosen) {
- 2433. - for (var i in chosen) {
- 2434. - var att = chosen[i], type = att[0], value = att[1];
- 2435. - if (type == 'photo' || type == 'doc') {
- 2436. - attachs.push(type+','+value);
- 2437. - }
- 2438. - }
- 2439. - }
- 2440. - if (attachs.length) query.attachs = attachs;
- 2441. - ajax.post(nav.objLoc[0], query, {
- 2442. - cache: 1,
- 2443. - onDone: function(content, script) {
- 2444. - if (content) ge('tickets_content').innerHTML = content;
- 2445. - if (script) eval(script);
- 2446. - },
- 2447. - onFail: function() {
- 2448. - boxQueue.hideAll();
- 2449. - }
- 2450. - });
- 2451. - return true;
- 2452. - }
- 2453. - var box = showFastBox({title: cur.lang['bind_title'], width: 430, bodyStyle: "line-height: 160%;"}, cur.lang['sure_bind'], cur.lang['do_bind'], function() {
- 2454. - if (doSave() && curBox()) {
- 2455. - curBox().content('<div style="height:100px; background: url(/images/progress7.gif) 50% 50% no-repeat;"></div>');
- 2456. - curBox().setOptions({bodyStyle: 'padding: 0px;'});
- 2457. - }
- 2458. - }, getLang('global_cancel'));
- 2459. - cur.ticketsAutoMedia = Tickets.initAddMedia(ge('tis_add_lnk_auto').firstChild, 'tis_preview_auto', cur.mediaTypes, {limit: 5, oneClick: cur.oneClickUpload, photoCallback: cur.addAutoReply, target: 'auto'});
- 2460. - cur.hideAutoanswer = new Checkbox(ge('support_ignore_autoanswer'), {label: cur.lang.no_autoanswer, onChange: function() {
- 2461. - toggle(ge('support_sure_bind'), this.val);
- 2462. - }});
- 2463. - return false;
- 2464. - },
- 2465. -
- 2466. - bindTicket: function(bid, hash) {
- 2467. - var doBind = function(bid, hash) {
- 2468. - var query = {act: 'bind_ticket', bug_id: bid, ticket_id: cur.ticket_id, hash: hash};
- 2469. - var attachs = [], chosen = cur.ticketsAutoMedia.chosenMedias;
- 2470. - if (chosen) {
- 2471. - for (var i in chosen) {
- 2472. - var att = chosen[i], type = att[0], value = att[1];
- 2473. - if (type == 'photo' || type == 'doc') {
- 2474. - attachs.push(type+','+value);
- 2475. - }
- 2476. - }
- 2477. - }
- 2478. - if (attachs) query.attachs = attachs;
- 2479. - if (nav.objLoc.act == 'all' && cur.checkedTickets) {
- 2480. - var tickets = [];
- 2481. - each(cur.checkedTickets, function(i, v) {tickets.push(i)});
- 2482. - query.tickets = tickets;
- 2483. - }
- 2484. - if (cur.hideAutoanswer && ge('tickets_send_autoanswer')) {
- 2485. - query.no_autoanswer = cur.hideAutoanswer.val();
- 2486. - query.answer_text = ge('tickets_send_autoanswer').value;
- 2487. - }
- 2488. - if (ge('tickets_closed_autoanswer_addressing_m')) {
- 2489. - query.addressing_m = ge('tickets_closed_autoanswer_addressing_m').value;
- 2490. - }
- 2491. - if (ge('tickets_closed_autoanswer_addressing_f')) {
- 2492. - query.addressing_f = ge('tickets_closed_autoanswer_addressing_f').value;
- 2493. - }
- 2494. - ajax.post(nav.objLoc[0], query, {
- 2495. - cache: 1,
- 2496. - onDone: function(content, script) {
- 2497. - if (content) ge('tickets_content').innerHTML = content;
- 2498. - if (script) eval(script);
- 2499. - },
- 2500. - onFail: function() {
- 2501. - boxQueue.hideAll();
- 2502. - }
- 2503. - });
- 2504. - }
- 2505. - var box = showFastBox({title: cur.lang['bind_title'], width: 430, bodyStyle: "line-height: 160%;"}, cur.lang['sure_bind'], cur.lang['do_bind'], function() {
- 2506. - doBind(bid, hash);
- 2507. - box.hide();
- 2508. - if (curBox()) curBox().content('<div style="height:100px; background: url(/images/progress7.gif) 50% 50% no-repeat;"></div>');
- 2509. - }, getLang('global_cancel'));
- 2510. - cur.ticketsAutoMedia = Tickets.initAddMedia(ge('tis_add_lnk_auto').firstChild, 'tis_preview_auto', cur.mediaTypes, {limit: 5, oneClick: cur.oneClickUpload, photoCallback: cur.addAutoReply, target: 'auto'});
- 2511. - cur.hideAutoanswer = new Checkbox(ge('support_ignore_autoanswer'), {label: cur.lang.no_autoanswer, onChange: toggle.pbind(ge('support_sure_bind'), this.val)});
- 2512. - return false;
- 2513. - },
- 2514. -
- 2515. - unbindTicket: function(bid, hash, el) {
- 2516. - var doUnbind = function() {
- 2517. - var box = cur.unbindBox;
- 2518. - ajax.post(nav.objLoc[0], {act: 'unbind_ticket', ticket_id: cur.ticket_id, bug_id: bid, hash: hash}, {
- 2519. - cache: 1,
- 2520. - onDone: function() {
- 2521. - slideUp(el, 200, re.pbind(el));
- 2522. - box.hide();
- 2523. - },
- 2524. - showProgress: box.showProgress,
- 2525. - hideProgress: box.hideProgress
- 2526. - });
- 2527. - }
- 2528. - var enterUnbind = function(e) {
- 2529. - if (e.keyCode == KEY.ENTER && __bq.count()) {
- 2530. - doUnbind();
- 2531. - return false;
- 2532. - }
- 2533. - }
- 2534. - if (!browser.mobile) {
- 2535. - addEvent(document, 'keydown', enterUnbind);
- 2536. - }
- 2537. - cur.unbindBox = showFastBox({title: getLang('support_delete_bind'), width: 430, onHide: function() {
- 2538. - removeEvent(document, 'keydown', enterUnbind);
- 2539. - }}, getLang('support_delete_text').replace('{title}', cur.bug_link || ''), getLang('support_delete'), doUnbind, getLang('global_cancel'));
- 2540. - },
- 2541. -
- 2542. - _animDelX: function(el, opacity, set_active) {
- 2543. - if (!el) return;
- 2544. - if (set_active !== undefined) {
- 2545. - el.active = set_active;
- 2546. - } else if (el.active) {
- 2547. - return;
- 2548. - }
- 2549. - animate(el, {opacity: opacity}, 200);
- 2550. - },
- 2551. -
- 2552. - rowActive: function(el, tt) {
- 2553. - this._animDelX(el, 1, 1);
- 2554. - if (tt) showTooltip(el, {text: tt, showdt: 200});
- 2555. - },
- 2556. - rowInactive: function(el) {
- 2557. - this._animDelX(el, 0.5, 0);
- 2558. - },
- 2559. -
- 2560. - switchModersSubTab: function(el, id, hash, type, evt) {
- 2561. - if (hasClass(el, 'active')) return false;
- 2562. - each(geByClass('tickets_subtab1', el.parentNode), function(i, v) {
- 2563. - removeClass(v, 'active');
- 2564. - });
- 2565. - addClass(el, 'active');
- 2566. - return this.updateModerStats(id, hash, type, 0);
- 2567. - },
- 2568. -
- 2569. - showCommentReplies: function(reply_id) {
- 2570. - showBox(nav.objLoc[0], {act: 'replies_box', reply_id: reply_id}, { params: {width: '627px', hideButtons: true, bodyStyle: 'padding: 0px; border: 0px;'}});
- 2571. - return false;
- 2572. - },
- 2573. -
- 2574. - updateModerStats: function(id, hash, type, offset) {
- 2575. - if (offset < 0) return false;
- 2576. - ge('support_moders_period_stats'+id).innerHTML = '<div class="tickets_detailed_loading"><div>';
- 2577. - ajax.post(nav.objLoc[0], {act: 'detailed_stats', mid: id, type: type, offset: offset, hash: hash}, {
- 2578. - cache: 1,
- 2579. - onDone: function(rows, header) {
- 2580. - ge('support_moders_period_stats'+id).innerHTML = rows;
- 2581. - ge('moder_subtabs'+id).innerHTML = header;
- 2582. - },
- 2583. - onFail: function() {
- 2584. - ge('support_moders_period_stats'+id).innerHTML = '';
- 2585. - }
- 2586. - });
- 2587. - return false;
- 2588. - },
- 2589. -
- 2590. - saveDraft: function (ticket_id, evType) {
- 2591. - var txt = ge('tickets_reply');
- 2592. - if (browser.mobile || !txt || txt.disabled || !cur.canUseDrafts) return;
- 2593. -
- 2594. - var message = val(txt),
- 2595. - data = {txt: trim(message), medias: []},
- 2596. - m = (cur.ticketsNewMedia || {}).chosenMedias || [];
- 2597. -
- 2598. - for (var i = 0, l = m.length; i < l; ++i) {
- 2599. - if (m[i]) data.medias.push([m[i][0], m[i][1]]);
- 2600. - }
- 2601. - if (!data.medias.length && !data.txt.length) {
- 2602. - data = false;
- 2603. - }
- 2604. - ls.set('helpdesk_draft' + vk.id + '_' + ticket_id, data);
- 2605. - },
- 2606. -
- 2607. - restoreDraft: function(ticket_id) {
- 2608. - var txt = ge('tickets_reply'),
- 2609. - draft = ls.get('helpdesk_draft' + vk.id + '_' + ticket_id) || {},
- 2610. - draftv = draft.txt || '';
- 2611. - if (browser.mobile || !txt || txt.disabled || !cur.canUseDrafts || !draftv && !draft.medias || cur.ticket_id != ticket_id) return;
- 2612. -
- 2613. - if (val(txt).length < draftv.length) {
- 2614. - val(txt, draftv);
- 2615. - txt.autosize.update();
- 2616. - }
- 2617. - if ((draft.medias || []).length && !((cur.ticketsNewMedia || {}).chosenMedias || []).length) {
- 2618. - var m = [];
- 2619. - for (var i in draft.medias) {
- 2620. - if (!draft.medias[i]) continue;
- 2621. - m.push(draft.medias[i].slice(0, 2).join(','));
- 2622. - }
- 2623. - ajax.post(nav.objLoc[0], {act: 'draft_medias', attachs: m}, {onDone: function(resp) {
- 2624. - if (!(resp || []).length) return;
- 2625. - each(resp, function() {
- 2626. - cur.ticketsNewMedia.chooseMedia.apply(cur.ticketsNewMedia, this);
- 2627. - });
- 2628. - }});
- 2629. - }
- 2630. - },
- 2631. -
- 2632. - _eof: 1};try{stManager.done('tickets.js');}catch(e){}
- ------
- Файл - tickets.css (Старый размер - 36093 | Новый - 0):
- 0. - #tickets_css {
- 1. - display: none;
- 2. - }
- 3. -
- 4. - #new_ticket {
- 5. - background: #F7F7F7;
- 6. - }
- 7. - .tickets_new_wrap {
- 8. - width: 450px;
- 9. - margin: 0px 63px;
- 10. - padding: 25px;
- 11. - }
- 12. - #tickets_detailed_form {
- 13. - display: none;
- 14. - padding-top: 25px;
- 15. - }
- 16. - .firefox #tickets_detailed_form.pay {
- 17. - margin-bottom: 40px;
- 18. - }
- 19. - #tickets_detailed_form.dmca {
- 20. - display: block;
- 21. - padding-top: 0px;
- 22. - }
- 23. - .tickets_new_title .input_back_content {
- 24. - padding: 4px 2px;
- 25. - padding: 4px 1px\9;
- 26. - }
- 27. - body.firefox .tickets_new_title .input_back_content {
- 28. - padding: 3px 2px;
- 29. - }
- 30. - #tickets_detailed_form .input_back_content {
- 31. - padding: 0 2px;
- 32. - padding: 0 1px\9;
- 33. - }
- 34. - @media screen and (-webkit-min-device-pixel-ratio:0) {
- 35. - #tickets_detailed_form .input_back_content {
- 36. - padding: 0 1px;
- 37. - }
- 38. - }
- 39. - .tickets_new_controls {
- 40. - margin-top: 5px;
- 41. - }
- 42. - h4.tickets_template {
- 43. - border-bottom: none;
- 44. - margin: 0px 0 4px;
- 45. - padding: 0 0px 4px;
- 46. - font-size: 1.09em;
- 47. - line-height: 1.27em;
- 48. - }
- 49. - h4.tickets_template.favs {
- 50. - margin-top: 20px;
- 51. - }
- 52. - h4.tickets_template.my {
- 53. - margin-top: 5px;
- 54. - }
- 55. - #tickets_text,
- 56. - #tickets_links {
- 57. - width: 436px;
- 58. - height: 94px;
- 59. - margin: 0 0 10px;
- 60. - vertical-align: top;
- 61. - padding: 5px 5px 5px 7px;
- 62. - }
- 63. - #tickets_list {
- 64. - padding: 0 15px;
- 65. - }
- 66. - #tickets_list .msg,
- 67. - #tickets_list .error {
- 68. - margin-top: 15px;
- 69. - }
- 70. - #tickets_faq_msg {
- 71. - background: #F7F7F7;
- 72. - padding: 15px 0 0;
- 73. - display: none;
- 74. - }
- 75. - #tickets_faq_msg .msg,
- 76. - #tickets_faq_msg .error {
- 77. - margin: 0 15px;
- 78. - }
- 79. - #tickets_content #summary {
- 80. - border-bottom: 1px solid #DAE1E8;
- 81. - color: #47688D;
- 82. - padding: 15px 10px 3px;
- 83. - }
- 84. - #tickets_content #tickets_bottom_pages {
- 85. - border-top: 1px solid #DAE1E8;
- 86. - color: #47688D;
- 87. - padding: 0 10px 10px;
- 88. - }
- 89. - #tickets_content #similar_summary {
- 90. - border-top: 1px solid #DAE1E8;
- 91. - border-bottom: 1px solid #DAE1E8;
- 92. - color: #47688D;
- 93. - padding: 15px 10px 3px;
- 94. - }
- 95. - .tickets_summary {
- 96. - font-weight: bold;
- 97. - }
- 98. - .tickets_summary_extra {
- 99. - margin: -3px 0 -4px;
- 100. - }
- 101. - .tickets_pages_loading {
- 102. - padding: 3px 5px;
- 103. - }
- 104. - #pages_loading_top, #pages_loading_bottom {
- 105. - display: none;
- 106. - }
- 107. - #tickets_progress {
- 108. - display: none;
- 109. - padding: 6px 0px 0px 0px;
- 110. - }
- 111. - .tickets_title_label {
- 112. - margin-bottom: 11px;
- 113. - line-height: 160%;
- 114. - }
- 115. - #tickets_title {
- 116. - padding: 4px 50px 5px 7px;
- 117. - width: 391px;
- 118. - height: 20px;
- 119. - }
- 120. - .tickets_browser {
- 121. - cursor: pointer;
- 122. - font-weight: normal;
- 123. - font-size: 1em;
- 124. - }
- 125. -
- 126. - #tickets_reply_rows {
- 127. - padding: 5px 15px;
- 128. - }
- 129. - #tickets_reply_rows .msg,
- 130. - #tickets_reply_rows .error {
- 131. - margin-top: 10px;
- 132. - margin-bottom: 5px;
- 133. - line-height: 160%;
- 134. - }
- 135. - .tickets_reply_row {
- 136. - padding: 10px 0;
- 137. - border-top: 1px solid #DAE1E8;
- 138. - position: relative;
- 139. - }
- 140. - .tickets_reply_row.first {
- 141. - border-top: none;
- 142. - }
- 143. - .tickets_image {
- 144. - width: 65px;
- 145. - }
- 146. - .tickets_image img {
- 147. - height: 50px;
- 148. - }
- 149. - .tickets_reply_content {
- 150. - width: 530px;
- 151. - }
- 152. - .tickets_reply_title {
- 153. - padding-bottom: 3px;
- 154. - overflow: hidden;
- 155. - }
- 156. - .tickets_author {
- 157. - font-weight: bold;
- 158. - color: #45688E;
- 159. - line-height: 1.27em;
- 160. - }
- 161. - .tickets_reply_text {
- 162. - width: 530px;
- 163. - word-wrap: break-word;
- 164. - padding-bottom: 4px;
- 165. - line-height: 1.54em;
- 166. - }
- 167. - .troll .tickets_reply_text {
- 168. - width: 480px;
- 169. - }
- 170. - .tickets_troll_img {
- 171. - position: absolute;
- 172. - top: 10px;
- 173. - right: 0px;
- 174. - }
- 175. - .tickets_reply_actions,
- 176. - .tickets_reply_actions a.date {
- 177. - color: #999999;
- 178. - }
- 179. - #tickets_post_field_wrap {
- 180. - width: 627px;
- 181. - padding: 0;
- 182. - }
- 183. - #tickets_post_field {
- 184. - padding: 15px 5px 10px 15px;
- 185. - background: #F7F7F7;
- 186. - border-top: 1px solid #DAE1E8;
- 187. - }
- 188. - #tickets_reply {
- 189. - width: 524px;
- 190. - height: 42px;
- 191. - vertical-align: top;
- 192. - margin-bottom: 5px;
- 193. - }
- 194. - #tickets_reply.disabled {
- 195. - color: #555;
- 196. - }
- 197. - #tickets_reply_warn,
- 198. - #tickets_links_warn,
- 199. - #tickets_text_warn {
- 200. - display: none;
- 201. - color: #777;
- 202. - }
- 203. - #tickets_links_warn,
- 204. - #tickets_text_warn {
- 205. - margin-top: 3px;
- 206. - }
- 207. - #tickets_reply_warn {
- 208. - margin-top: 6px;
- 209. - }
- 210. - #tickets_get_new {
- 211. - padding: 0 0 10px;
- 212. - }
- 213. -
- 214. - #tickets_get_new div.button_blue {
- 215. - margin: auto;
- 216. - }
- 217. -
- 218. - #tickets_name {
- 219. - color: #45688E;
- 220. - background: #F7F7F7;
- 221. - border-bottom: 1px solid #DAE1E8;
- 222. - padding: 10px 15px 9px;
- 223. - }
- 224. - #tickets_name .title {
- 225. - font-weight: bold;
- 226. - font-size: 1.09em;
- 227. - overflow: hidden;
- 228. - }
- 229. - #tickets_flood_msg {
- 230. - padding-top: 4px;
- 231. - }
- 232. - #tickets_name .info {
- 233. - padding-top: 6px;
- 234. - color: #000;
- 235. - }
- 236. - #tickets_m_list {
- 237. - padding: 10px 10px 0;
- 238. - }
- 239. - .tickets_m_table {
- 240. - border: 1px solid #D2D8DF;
- 241. - width: 100%;
- 242. - margin-bottom: 10px;
- 243. - }
- 244. - .tickets_m_table .name.cell {
- 245. - display: block;
- 246. - }
- 247. - .tickets_m_table .h_cell {
- 248. - border-left: 1px solid #ECF0F5;
- 249. - border-right: 1px solid #D2D8DF;
- 250. - border-bottom: 1px solid #D2D8DF;
- 251. - background: #E0E6EC;
- 252. - font-weight: bold;
- 253. - color: #2F5879;
- 254. - line-height: 1.09em;
- 255. - padding: 10px;
- 256. - }
- 257. - .tickets_m_table .h_cell.id {
- 258. - border-left: none;
- 259. - }
- 260. - .tickets_m_table .h_cell.time {
- 261. - border-right: none;
- 262. - }
- 263. - .tickets_m_table .cell {
- 264. - line-height: 1.09em;
- 265. - padding: 10px;
- 266. - }
- 267. - .tickets_m_table .cell_block {
- 268. - display: block;
- 269. - width: 400px !important;
- 270. - }
- 271. - .tickets_m_table .id {
- 272. - width: 50px;
- 273. - font-weight: bold;
- 274. - padding-right: 0;
- 275. - color: #2B587A;
- 276. - }
- 277. - .tickets_m_table .name {
- 278. - width: 380px;
- 279. - overflow: hidden;
- 280. - -o-text-overflow: ellipsis;
- 281. - text-overflow: ellipsis;
- 282. - font-weight: bold;
- 283. - }
- 284. - .tickets_m_table .even {
- 285. - background: #EFF2F4;
- 286. - }
- 287. - .tickets_m_actions {
- 288. - line-height: 2.09em;
- 289. - margin: 1px 0;
- 290. - }
- 291. - .tickets_important {
- 292. - font-weight: bold;
- 293. - }
- 294. - .tickets_edit_reply {
- 295. - padding: 0 2px;
- 296. - line-height: 1.54em;
- 297. - outline: none;
- 298. - }
- 299. - .tickets_done {
- 300. - padding-left: 65px;
- 301. - }
- 302. -
- 303. - #tickets_templates {
- 304. - padding: 20px 0 10px;
- 305. - width: 524px;
- 306. - }
- 307. - #tickets_pass_to {
- 308. - padding: 10px 0;
- 309. - }
- 310. - #tickets_templates .template_actions,
- 311. - #tickets_templates .template_actions a {
- 312. - color: #777777;
- 313. - }
- 314. - .tickets_got_answer {
- 315. - color: #777777;
- 316. - }
- 317. - #tickets_templates .template {
- 318. - margin: 10px 15px 0 0;
- 319. - }
- 320. - #tickets_pt_links {
- 321. - width: 532px;
- 322. - }
- 323. - .tickets_pt_links {
- 324. - width: 602px;
- 325. - padding-top: 10px;
- 326. - }
- 327. - .tickets_pt_link {
- 328. - margin: 10px 15px 0 0;
- 329. - }
- 330. -
- 331. - .template_wrap {
- 332. - display: table-cell;
- 333. - }
- 334. - .template_wrap div {
- 335. - display: inline-block;
- 336. - vertical-align: baseline;
- 337. - }
- 338. - #template_title,
- 339. - #template_title a,
- 340. - #tickets_pt_title {
- 341. - font-weight: bold;
- 342. - font-size: 1.09em;
- 343. - color: #45688E;
- 344. - }
- 345. - .tickets_pt_title {
- 346. - font-size: 1.2em;
- 347. - color: #45688E;
- 348. - font-weight: bold;
- 349. - }
- 350. - #edit_template {
- 351. - display: none;
- 352. - }
- 353. -
- 354. - #add_template_title {
- 355. - width: 391px;
- 356. - margin-top: 3px;
- 357. - margin-bottom: 20px;
- 358. - }
- 359. - #add_template_text {
- 360. - width: 391px;
- 361. - height: 94px;
- 362. - margin-bottom: 5px;
- 363. - }
- 364. -
- 365. - .tu_last {
- 366. - width: 195px;
- 367. - *width: 205px;
- 368. - overflow: hidden;
- 369. - }
- 370. - .tu_last:hover {
- 371. - text-decoration: none;
- 372. - background: #EDF1F5;
- 373. - }
- 374. - .tu_thumb {
- 375. - margin: 8px;
- 376. - width: 32px;
- 377. - height: 32px;
- 378. - overflow: hidden;
- 379. - }
- 380. - .tu_img {
- 381. - width: 32px;
- 382. - }
- 383. - .tu_mem {
- 384. - color: #2B587A;
- 385. - padding: 9px 2px 0px;
- 386. - width: 138px;
- 387. - overflow: hidden;
- 388. - }
- 389. - .tu_date {
- 390. - color: #67829E;
- 391. - padding: 3px 2px 0px;
- 392. - width: 138px;
- 393. - overflow: hidden;
- 394. - }
- 395. - .tu_row {
- 396. - padding: 10px 0px;
- 397. - border-bottom: 1px solid #DAE1E8;
- 398. - }
- 399. - .tu_row.last {
- 400. - border-bottom: none;
- 401. - }
- 402. - .tu_row_title {
- 403. - color: #45688E;
- 404. - font-weight: bold;
- 405. - padding: 0px 0px 4px;
- 406. - font-size: 1.09em;
- 407. - line-height: 1.27em;
- 408. - }
- 409. - .tu_info {
- 410. - padding: 7px 15px 0px 6px;
- 411. - width: 375px;
- 412. - *width: 365px;
- 413. - overflow: hidden;
- 414. - }
- 415. -
- 416. - .tickets_side_tt .side_sh {
- 417. - display: table-cell !important;
- 418. - }
- 419. - .tickets_side_tt .hint_wrap {
- 420. - width: 210px;
- 421. - /* height: 110px;
- 422. - padding: 10px; */
- 423. - padding: 8px 5px 8px;
- 424. - }
- 425. - .tickets_side_tt.title .hint_wrap {
- 426. - width: 190px;
- 427. - color: #000000;
- 428. - line-height: 160%;
- 429. - }
- 430. - .tickets_side_tt.text .hint_wrap {
- 431. - width: 230px;
- 432. - color: #000000;
- 433. - line-height: 160%;
- 434. - }
- 435. - .tickets_side_tt.mobile .hint_wrap {
- 436. - width: 203px;
- 437. - color: #000000;
- 438. - line-height: 160%;
- 439. - }
- 440. - .tickets_side_tt.time .hint_wrap {
- 441. - width: 140px;
- 442. - color: #000000;
- 443. - line-height: 160%;
- 444. - }
- 445. - .tickets_side_tt.questions .tt_text {
- 446. - padding: 0px;
- 447. - }
- 448. - .tickets_side_tt.questions .hint_wrap {
- 449. - padding: 0px;
- 450. - width: 250px;
- 451. - }
- 452. - .tickets_tt_list {
- 453. - list-style: url(/images/bullet.gif) outside;
- 454. - padding: 0 0 10px 15px;
- 455. - margin: 0;
- 456. - line-height: 160%;
- 457. - max-width: 225px;
- 458. - color: #000000;
- 459. - }
- 460. - .tickets_side_tt .hint_title {
- 461. - color: #2A5779;
- 462. - font-weight: bold;
- 463. - padding-bottom: 2px;
- 464. - }
- 465. - .tickets_side_tt .tail_wrap {
- 466. - position: absolute;
- 467. - top: 107px;
- 468. - left: 233px;
- 469. - z-index: 2001;
- 470. - }
- 471. - .tickets_side_tt.title .tail_wrap {
- 472. - top: 23px;
- 473. - left: 213px;
- 474. - }
- 475. - .tickets_side_tt.text .tail_wrap {
- 476. - top: 53px;
- 477. - left: 253px;
- 478. - }
- 479. - .tickets_side_tt.mobile .tail_wrap,
- 480. - .tickets_side_tt.time .tail_wrap {
- 481. - top: 15px;
- 482. - left: -5px;
- 483. - }
- 484. - .tickets_side_tt.info .tail_wrap {
- 485. - top: 17px;
- 486. - }
- 487. - .tickets_side_tt.top .tail_wrap {
- 488. - top: auto;
- 489. - bottom: -5px;
- 490. - left: 17px;
- 491. - }
- 492. - .tickets_side_tt.top .tail {
- 493. - background-position: -3px -5px;
- 494. - width: 11px;
- 495. - height: 8px;
- 496. - }
- 497. - .tickets_side_tt.right .tail_wrap {
- 498. - top: 25px;
- 499. - bottom: auto;
- 500. - left: -5px;
- 501. - }
- 502. - .tickets_side_tt.right .tail {
- 503. - background-position: 0px 0px;
- 504. - width: 8px;
- 505. - height: 11px;
- 506. - }
- 507. - .tickets_side_tt.questions .tail_wrap {
- 508. - top: 17px;
- 509. - left: 253px;
- 510. - }
- 511. - .tickets_side_tt .tail {
- 512. - width: 8px;
- 513. - height: 11px;
- 514. - background: url(/images/ddtooltip.png) -8px 0 no-repeat;
- 515. - }
- 516. - .tickets_side_tt.mobile .tail,
- 517. - .tickets_side_tt.time .tail {
- 518. - background: url(/images/ddtooltip.png) 0 0 no-repeat;
- 519. - }
- 520. - .tickets_side_tt #hint_opts .radiobtn {
- 521. - color: #000;
- 522. - padding-top: 10px;
- 523. - padding-bottom: 5px;
- 524. - line-height: 160%;
- 525. - }
- 526. - .tickets_side_tt #hint_opts .radiobtn div {
- 527. - margin: 2px 5px 6px 0;
- 528. - }
- 529. - .tickets_warning {
- 530. - margin-bottom: 10px;
- 531. - line-height: 160%;
- 532. - }
- 533. - .tickets_no_new {
- 534. - margin: 6px 0 0 10px;
- 535. - color: #777777;
- 536. - }
- 537. - .tickets_rated {
- 538. - color: #777777;
- 539. - }
- 540. - #new_link,
- 541. - #stats_link {
- 542. - padding: 5px 0 3px;
- 543. - }
- 544. - .no_tickets_found {
- 545. - color: #777;
- 546. - font-size: 1.09em;
- 547. - line-height: 200%;
- 548. - margin: 20px 20px 15px;
- 549. - padding: 100px 0;
- 550. - text-align: center;
- 551. - }
- 552. - .tickets_old_link {
- 553. - border-top: 1px solid #DAE1E8;
- 554. - line-height: 140%;
- 555. - padding: 10px;
- 556. - background: white;
- 557. - text-align: center;
- 558. - }
- 559. - .tickets_old_link.dark {
- 560. - background: #F7F7F7;
- 561. - }
- 562. -
- 563. - .tr_attachs {
- 564. - margin: 0px -5px;
- 565. - padding: 5px 0px;
- 566. - }
- 567. - .tr_attach {
- 568. - margin: 0px 5px 5px;
- 569. - height: 57px;
- 570. - overflow: hidden;
- 571. - }
- 572. - .tr_att_img,
- 573. - #tickets_content .page_preview_doc_photo,
- 574. - #tickets_content .page_preview_doc_photo img,
- 575. - .tickets_preview_wrap .page_preview_doc_photo,
- 576. - .tickets_preview_wrap .page_preview_doc_photo img {
- 577. - width: 75px;
- 578. - display: block;
- 579. - }
- 580. - #tickets_content .page_pics_preview .page_preview_doc_wrap,
- 581. - .tickets_preview_wrap .page_pics_preview .page_preview_doc_wrap {
- 582. - height: 57px;
- 583. - }
- 584. - .tr_doc_photo_hint,
- 585. - #tickets_content .page_preview_doc_photo_hint,
- 586. - .tickets_preview_wrap .page_preview_doc_photo_hint {
- 587. - width: 65px;
- 588. - text-align: center;
- 589. - color: white;
- 590. - background: black;
- 591. - padding: 2px 10px;
- 592. - font-size: 0.81em;
- 593. - margin-bottom: 5px;
- 594. - background: rgba(0, 0, 0, 0.5);
- 595. - position: absolute;
- 596. - margin-top: -16px;
- 597. - height: 14px;
- 598. - padding: 1px 5px;
- 599. - font-size: 0.81em;
- 600. - }
- 601. - .tr_video_hint {
- 602. - width: 75px;
- 603. - position: absolute;
- 604. - margin-bottom: 5px;
- 605. - margin-top: -16px;
- 606. - }
- 607. - .tr_video_hint .label {
- 608. - text-align: center;
- 609. - color: white;
- 610. - background: black;
- 611. - font-size: 0.81em;
- 612. - background: rgba(0, 0, 0, 0.5);
- 613. - height: 14px;
- 614. - padding: 1px 5px;
- 615. - }
- 616. - .tr_attachs .media_desc {
- 617. - padding: 8px 0px 0px 4px;
- 618. - clear: both;
- 619. - }
- 620. - .tr_attachs .media_row {
- 621. - padding: 0px 0px 4px 4px;
- 622. - clear: both;
- 623. - }
- 624. - .tr_attachs .lnk {
- 625. - color: #777;
- 626. - cursor: pointer;
- 627. - }
- 628. - .tr_attachs .media_desc b.doc {
- 629. - background: url(/images/icons/mono_iconset.gif?8) no-repeat 0 -280px;
- 630. - width: 15px;
- 631. - height: 11px;
- 632. - margin-top: 2px;
- 633. - }
- 634. - .tr_attachs .media_desc .a {
- 635. - color: #2B587A;
- 636. - }
- 637. - .tr_attachs .media_desc .lnk:hover {
- 638. - text-decoration: none;
- 639. - }
- 640. - .tr_attachs .media_desc .lnk:hover .a {
- 641. - text-decoration: underline;
- 642. - }
- 643. -
- 644. - .tis_box {
- 645. - position: relative;
- 646. - padding: 14px 16px;
- 647. - }
- 648. - .tis_box .dropbox_label {
- 649. - line-height: 3.27em;
- 650. - }
- 651. - #tis_add_data {
- 652. - margin: 15px auto;
- 653. - text-align: center;
- 654. - height: 25px;
- 655. - }
- 656. - #tis_cancel_lnk {
- 657. - margin-left: 10px;
- 658. - display: block;
- 659. - padding: 6px 14px 0px;
- 660. - font-weight: normal;
- 661. - height: 19px;
- 662. - text-align: center;
- 663. - }
- 664. - #tis_cancel_lnk:hover {
- 665. - background: #E1E7ED;
- 666. - text-decoration: none;
- 667. - }
- 668. - #tis_add_lnk,
- 669. - #tis_add_lnk_edit {
- 670. - margin-top: 6px;
- 671. - }
- 672. - #tis_preview, #tis_preview_edit, #tis_preview_template, #tis_preview_auto {
- 673. - position: relative;
- 674. - }
- 675. - #tis_prg_preview_edit.template {
- 676. - margin-top: 0px;
- 677. - margin-left: 0px;
- 678. - }
- 679. - .tis_preview {
- 680. - height: 57px;
- 681. - overflow: hidden;
- 682. - }
- 683. - .tis_photo {
- 684. - cursor: pointer;
- 685. - }
- 686. - .tis_x {
- 687. - cursor: pointer;
- 688. - margin: 0px -15px;
- 689. - background: url(/images/im_attach_cross.png) no-repeat 0 0;
- 690. - width: 15px;
- 691. - height: 15px;
- 692. - opacity: 0.65;
- 693. - filter: alpha(opacity=65);
- 694. - }
- 695. - .tis_progress_wrap {
- 696. - width: 110px;
- 697. - height: 8px;
- 698. - margin: auto;
- 699. - margin-bottom: 6px;
- 700. - background: #FFF;
- 701. - border: 1px solid #CCC;
- 702. - }
- 703. - .tis_progress {
- 704. - height: 8px;
- 705. - background: #597DA3 url(/images/progress_grad.gif) repeat;
- 706. - border: 1px solid #45688E;
- 707. - margin: -1px;
- 708. - }
- 709. - .tis_label {
- 710. - color: #777777;
- 711. - margin: -4px 0 0 6px;
- 712. - }
- 713. - .tis_prg_x {
- 714. - cursor: pointer;
- 715. - margin: 0px 5px;
- 716. - background: url(/images/hide_to.gif) no-repeat -2px -2px;
- 717. - opacity: 0.6;
- 718. - filter: alpha(opacity=60);
- 719. - height: 10px;
- 720. - width: 10px;
- 721. - }
- 722. - #tis_upload, #tis_upload_edit, #tis_upload_template, #tis_upload_auto {
- 723. - visibility: hidden;
- 724. - height: 0px;
- 725. - }
- 726. -
- 727. - .tickets_progress_wrap {
- 728. - width: 250px;
- 729. - height: 18px;
- 730. - margin: auto;
- 731. - background: #FFF;
- 732. - border: 1px solid #CCC;
- 733. - }
- 734. - .tickets_progress {
- 735. - height: 18px;
- 736. - background: #597DA3 url(/images/progress_grad.gif) repeat;
- 737. - border: 1px solid #45688E;
- 738. - margin: -1px;
- 739. - }
- 740. - #tickets_hidden {
- 741. - margin: 6px 10px 0px;
- 742. - }
- 743. - .tickets_sys_img {
- 744. - background: transparent url(/images/tasks_icons.gif) no-repeat scroll;
- 745. - width: 65px;
- 746. - margin-top: 4px;
- 747. - height: 14px;
- 748. - }
- 749. - .tickets_sys_content {
- 750. - padding: 3px 0px 5px;
- 751. - line-height: 140%;
- 752. - word-wrap: break-word;
- 753. - color: #555;
- 754. - width: 530px;
- 755. - }
- 756. - .tickets_sys_content .fw_reply_text {
- 757. - color: #000;
- 758. - }
- 759. - #tickets_pass_comm,
- 760. - #tickets_send_comm {
- 761. - margin-top: 5px;
- 762. - width: 462px;
- 763. - height: 40px;
- 764. - }
- 765. - .tickets_add_comm {
- 766. - padding-top: 10px;
- 767. - font-weight: bold;
- 768. - }
- 769. -
- 770. -
- 771. - /* Moderators list */
- 772. - #support_admin_moderators,
- 773. - #support_admin_specagents {
- 774. - padding: 10px;
- 775. - width: auto;
- 776. - }
- 777. - .support_admin_moderators_row {
- 778. - cursor: pointer;
- 779. - }
- 780. - #support_admin_moderators.agent_stats .month {
- 781. - /*display: none;*/
- 782. - }
- 783. - .support_moder_detailed_stats {
- 784. - display: none;
- 785. - }
- 786. - .support_moder_stats_data {
- 787. - padding: 10px 0;
- 788. - }
- 789. - #support_admin_moderators .support_admin_moderators_row:hover td,
- 790. - #support_admin_specagents .support_admin_specagents_row:hover td,
- 791. - #support_admin_moderators .detailed td {
- 792. - background: #EDF1F5;
- 793. - }
- 794. - #support_admin_moderators .msg {
- 795. - margin-bottom: 20px;
- 796. - }
- 797. - .support_stats_title {
- 798. - padding: 0 0 0 25px;
- 799. - line-height: 1.81em;
- 800. - height: 20px;
- 801. - width: 175px;
- 802. - }
- 803. - .support_stats_value {
- 804. - padding: 0 0 0 25px;
- 805. - line-height: 1.81em;
- 806. - height: 20px;
- 807. - }
- 808. - .support_stats_loading {
- 809. - height: 649px;
- 810. - background: url(/images/progress7.gif) 50% 50% no-repeat;
- 811. - border-top: 1px solid #DAE1E8;
- 812. - }
- 813. - .support_to_question {
- 814. - font-weight: normal;
- 815. - }
- 816. - .support_plus_rate {
- 817. - color: #008800;
- 818. - }
- 819. - .support_minus_rate {
- 820. - color: #884400;
- 821. - }
- 822. - .support_medium_rate {
- 823. - color: #888800;
- 824. - }
- 825. - #tickets_content .paginated_table table {
- 826. - border: none;
- 827. - }
- 828. - #tickets_content .paginated_table_header th.paginated_table_cell {
- 829. - border-width: 0px 0px 1px 1px;
- 830. - background-color: #F7F7F7;
- 831. - border-color:#DAE1E8;
- 832. - }
- 833. - #tickets_content .paginated_table_header th.paginated_table_cell:hover {
- 834. - background-color: #E3E9EE;
- 835. - }
- 836. - #tickets_content .paginated_table_header th.paginated_table_cell div {
- 837. - border: none;
- 838. - }
- 839. - #tickets_content th.paginated_table_cell span.sorted {
- 840. - background: url('/images/flydead.gif') no-repeat scroll right 1px transparent;
- 841. - padding-right: 17px;
- 842. - }
- 843. - #tickets_content .paginated_table td.paginated_table_cell {
- 844. - padding: 0px 5px;
- 845. - border-color: #EEEEEE;
- 846. - border-style: solid;
- 847. - border-width: 1px 0px 0px;
- 848. - height: auto;
- 849. - }
- 850. - #tickets_content .paginated_table_cell img {
- 851. - width: 25px;
- 852. - height: 25px;
- 853. - display: block;
- 854. - }
- 855. - #support_admin_moderators .support_admin_moderators_row.over td.paginated_table_cell.paginated_table_cell,
- 856. - #support_admin_moderators .support_admin_moderators_row.after_over td.paginated_table_cell.paginated_table_cell,
- 857. - #support_admin_specagents .support_admin_specagents_row.over td.paginated_table_cell,
- 858. - #support_admin_specagents .support_admin_specagents_row.after_over td.paginated_table_cell,
- 859. - #support_admin_moderators .detailed td.paginated_table_cell {
- 860. - border-color:#DAE1E8;
- 861. - }
- 862. - #tickets_content .paginated_table td.paginated_table_cell.first_column {
- 863. - padding: 7px 3px 7px 7px;
- 864. - }
- 865. - #tickets_content .paginated_table_header th.paginated_table_cell div {
- 866. - padding: 10px 5px;
- 867. - }
- 868. - #tickets_content .paginated_table_header th.paginated_table_cell.first_column div {
- 869. - padding-left: 7px;
- 870. - }
- 871. - #tickets_content .paginated_table_row.my,
- 872. - #tickets_content .paginated_table_row.my td {
- 873. - background: #F4EBD6;
- 874. - }
- 875. - .support_stats_wrap {
- 876. - padding: 10px;
- 877. - }
- 878. - .support_stats_wrap .stats_flash_wrap {
- 879. - padding-left: 5px;
- 880. - }
- 881. - .support_moder_stats_wrap {
- 882. - padding: 10px 10px 0;
- 883. - }
- 884. - .support_moder_stats_wrap .stats_flash_wrap {
- 885. - padding-left: 5px;
- 886. - width: 555px;
- 887. - margin-bottom: 7px;
- 888. - }
- 889. -
- 890. - /* FAQ styles */
- 891. - #tickets_faq_list {
- 892. - padding: 15px;
- 893. - border-top: 1px solid #DAE1E8;
- 894. - }
- 895. - #tickets_faq_list.no_top {
- 896. - border-top: none;
- 897. - }
- 898. - .tickets_faq_row {
- 899. - margin: auto;
- 900. - width: 430px;
- 901. - padding: 15px 10px;
- 902. - border-top: 1px solid #DAE1E8;
- 903. - cursor: pointer;
- 904. - }
- 905. - .tickets_faq_row.only {
- 906. - cursor: default;
- 907. - }
- 908. - .tickets_faq_row.over {
- 909. - background-color: #EDF1F5;
- 910. - }
- 911. - .tickets_faq_row.over.detailed {
- 912. - background-color: #FFFFFF;
- 913. - }
- 914. - .tickets_faq_row.first {
- 915. - border-top: none;
- 916. - }
- 917. - .tickets_faq_img {
- 918. - width: 42px;
- 919. - height: 32px;
- 920. - }
- 921. - .tickets_faq_img img {
- 922. - height: 32px;
- 923. - }
- 924. - .tickets_faq_content {
- 925. - width: 385px;
- 926. - overflow: hidden;
- 927. - }
- 928. - .tickets_faq_title {
- 929. - color: #45688E;
- 930. - font-weight: bold;
- 931. - padding-bottom: 2px;
- 932. - line-height: 140%;
- 933. - }
- 934. - .tickets_faq_full_text {
- 935. - display: none;
- 936. - }
- 937. - .tickets_faq_text {
- 938. - line-height: 160%;
- 939. - }
- 940. - .tickets_faq_links {
- 941. - padding-top: 5px;
- 942. - }
- 943. - #tickets_faq_button {
- 944. - text-align: center;
- 945. - }
- 946. - #tickets_faq_button .button_blue {
- 947. - margin: 10px 0;
- 948. - }
- 949. - #tickets_faq_button .button_blue,
- 950. - #tickets_faq_button .button_gray {
- 951. - margin: 10px 0;
- 952. - }
- 953. - #tickets_faq_button .padd {
- 954. - margin-left: 10px;
- 955. - }
- 956. - #tickets_search_reset {
- 957. - cursor: pointer;
- 958. - display: none;
- 959. - background: transparent url(/images/icons/input_clear.gif) 6px 6px no-repeat;
- 960. - padding: 2px;
- 961. - width: 19px;
- 962. - height: 19px;
- 963. - margin-left: -27px;
- 964. - margin-top: 4px;
- 965. - opacity: 0.6;
- 966. - filter: alpha(opacity=60);
- 967. - position: relative;
- 968. - z-index: 100;
- 969. - }
- 970. - .tickets_search_progress {
- 971. - background: url("/images/upload.gif") no-repeat scroll center center transparent;
- 972. - display: none;
- 973. - height: 30px;
- 974. - margin-left: -41px;
- 975. - margin-top: 1px;
- 976. - position: relative;
- 977. - width: 32px;
- 978. - z-index: 95;
- 979. - }
- 980. - #tickets_search.loading .tickets_search_progress,
- 981. - #tickets_search_reset.shown {
- 982. - display: block;
- 983. - }
- 984. - #tickets_search.loading #tickets_search_reset.shown {
- 985. - display: none;
- 986. - }
- 987. - .tickets_faq_rated {
- 988. - color: #777777;
- 989. - display: none;
- 990. - }
- 991. - .tickets_info_row_tt {
- 992. - margin-top: 10px;
- 993. - }
- 994. - .tickets_info_title_tt {
- 995. - width: 80px;
- 996. - color: #777777;
- 997. - }
- 998. - .tickets_info_text_tt {
- 999. - width: 130px;
- 1000. - }
- 1001. - a.tickets_question_row_tt {
- 1002. - padding: 5px 10px;
- 1003. - display: block;
- 1004. - }
- 1005. - a.tickets_question_row_tt:hover {
- 1006. - background: #EDF1F5;
- 1007. - text-decoration: none;
- 1008. - }
- 1009. - .tickets_question_title_tt {
- 1010. - font-weight: bold;
- 1011. - color: #2B587A;
- 1012. - max-width: 230px;
- 1013. - overflow: hidden;
- 1014. - -o-text-overflow: ellipsis;
- 1015. - text-overflow: ellipsis;
- 1016. - white-space: nowrap;
- 1017. - }
- 1018. - .tickets_question_date_tt {
- 1019. - padding-top: 3px;
- 1020. - color: #777777;
- 1021. - }
- 1022. -
- 1023. - /* similar questions */
- 1024. - .tickets_block {
- 1025. - display: block;
- 1026. - margin: 10px 0px 0px;
- 1027. - padding: 10px 10px 9px;
- 1028. - text-align: center;
- 1029. - color: #777777;
- 1030. - }
- 1031. - .tickets_block_link {
- 1032. - display: block;
- 1033. - background: #EFF1F3;
- 1034. - margin: 10px 0px 0px;
- 1035. - padding: 10px 10px 9px;
- 1036. - text-align: center;
- 1037. - color: #738392;
- 1038. - border-bottom: 1px solid #EFF1F3;
- 1039. - }
- 1040. - .tickets_block_link.close {
- 1041. - background: #FFF;
- 1042. - border-bottom: 1px solid #FFF;
- 1043. - color: #2B587A;
- 1044. - }
- 1045. - .tickets_block_link.opened {
- 1046. - background: #FFFFFF;
- 1047. - border-bottom: 1px solid #E9EDF1;
- 1048. - }
- 1049. - .tickets_block_link.skipped {
- 1050. - margin: 0;
- 1051. - }
- 1052. - .tickets_block_link:hover {
- 1053. - text-decoration: none;
- 1054. - background: #E9EDF1;
- 1055. - border-bottom: 1px solid #E9EDF1;
- 1056. - }
- 1057. - .tickets_block_link .progress {
- 1058. - margin: 0px auto;
- 1059. - }
- 1060. - #tickets_similar {
- 1061. - margin: 0px 0px 0px -10px;
- 1062. - position: relative;
- 1063. - display: none;
- 1064. - }
- 1065. - .tickets_toup {
- 1066. - width: 50px;
- 1067. - height: 0px;
- 1068. - cursor: pointer;
- 1069. - position: absolute;
- 1070. - left: -55px;
- 1071. - }
- 1072. - .tickets_toup.over {
- 1073. - background: #E9EDF1;
- 1074. - }
- 1075. - .tickets_toup .icon {
- 1076. - display: none;
- 1077. - width: 14px;
- 1078. - height: 7px;
- 1079. - position: absolute;
- 1080. - top: 17px;
- 1081. - margin: 0 18px;
- 1082. - background: url('/images/toplink.gif?3') 0 -58px no-repeat;
- 1083. - }
- 1084. - .tickets_toup.over .icon {
- 1085. - display: block;
- 1086. - }
- 1087. - .tickets_similar_row {
- 1088. - margin: auto;
- 1089. - width: 522px;
- 1090. - padding: 15px 10px;
- 1091. - border-top: 1px solid #DAE1E8;
- 1092. - cursor: pointer;
- 1093. - }
- 1094. - #tickets_similar .tickets_similar_row {
- 1095. - width: 479px;
- 1096. - }
- 1097. - #tickets_similar .tickets_check {
- 1098. - padding-left: 0px;
- 1099. - }
- 1100. - #tickets_checked .tickets_similar_row {
- 1101. - padding: 10px;
- 1102. - }
- 1103. - #tickets_checked .tickets_add_bug_links {
- 1104. - padding-top: 2px;
- 1105. - }
- 1106. - .tickets_s_row.only {
- 1107. - cursor: default;
- 1108. - }
- 1109. - .tickets_similar_row.over {
- 1110. - background-color: #EDF1F5;
- 1111. - }
- 1112. - .tickets_similar_row.over.detailed {
- 1113. - background-color: #FFFFFF;
- 1114. - }
- 1115. - .tickets_similar_row.first {
- 1116. - border-top: none;
- 1117. - }
- 1118. - .tickets_similar_content {
- 1119. - width: 477px;
- 1120. - overflow: hidden;
- 1121. - }
- 1122. - #tickets_similar .tickets_similar_content {
- 1123. - width: 436px;
- 1124. - }
- 1125. - .tickets_similar_title {
- 1126. - color: #45688E;
- 1127. - font-weight: bold;
- 1128. - padding-bottom: 5px;
- 1129. - }
- 1130. - .tickets_similar_full_text {
- 1131. - display: none;
- 1132. - }
- 1133. - .tickets_similar_text {
- 1134. - line-height: 160%;
- 1135. - }
- 1136. - .tickets_check {
- 1137. - padding: 24px 7px 24px 11px;
- 1138. - width: 34px;
- 1139. - text-align: center;
- 1140. - vertical-align: middle;
- 1141. - cursor: pointer;
- 1142. - -moz-user-select: none;
- 1143. - -khtml-user-select: none;
- 1144. - user-select: none;
- 1145. - }
- 1146. -
- 1147. - .tickets_check div {
- 1148. - width: 34px;
- 1149. - height: 14px;
- 1150. - background: url(/images/icons/check.gif?1) no-repeat 50% 0px;
- 1151. - }
- 1152. - .tickets_check div.checked {
- 1153. - background-position: 50% -14px;
- 1154. - }
- 1155. - .tickets_check div.over {
- 1156. - background-position: 50% -28px;
- 1157. - }
- 1158. - .tickets_check div.over_checked {
- 1159. - background-position: 50% -42px;
- 1160. - }
- 1161. -
- 1162. - #tickets_subtabs {
- 1163. - background-color: #F7F7F7;
- 1164. - border: 1px solid #DAE1E8;
- 1165. - border-width: 0px 0px 1px;
- 1166. - padding: 10px;
- 1167. - }
- 1168. -
- 1169. - .tickets_subtab1 {
- 1170. - float: left;
- 1171. - -moz-border-radius: 2px;
- 1172. - border-radius: 2px;
- 1173. - cursor: pointer;
- 1174. - margin-right: 5px;
- 1175. - color: #45688E;
- 1176. - }
- 1177. - .tickets_subtab1.hidden {
- 1178. - display: none;
- 1179. - }
- 1180. - .tickets_moders_subtabs .tickets_subtab1 {
- 1181. - float: right;
- 1182. - margin: 1px 0 1px 5px;
- 1183. - }
- 1184. -
- 1185. - .tickets_subtab1:hover {
- 1186. - background-color: #E1E7ED;
- 1187. - }
- 1188. -
- 1189. - .tickets_subtab1.active {
- 1190. - background-color: #597DA3;
- 1191. - color: white;
- 1192. - cursor: default;
- 1193. - }
- 1194. -
- 1195. - .tickets_subtab2 {
- 1196. - padding: 3px 8px 4px;
- 1197. - font-weight: bold;
- 1198. - }
- 1199. - #support_total_stats {
- 1200. - padding: 20px;
- 1201. - width: auto;
- 1202. - }
- 1203. - #support_total_stats td,
- 1204. - #support_total_stats th {
- 1205. - cursor: auto;
- 1206. - }
- 1207. - .tickets_template_checkbox {
- 1208. - padding-top: 2px;
- 1209. - margin-bottom: -7px;
- 1210. - }
- 1211. - .tickets_work_stats_row {
- 1212. - padding: 5px 0;
- 1213. - }
- 1214. - .tickets_work_stats_title {
- 1215. - width: 270px;
- 1216. - color: #777777;
- 1217. - }
- 1218. - .tickets_work_stats_text {
- 1219. - width: 120px;
- 1220. - font-weight: bold;
- 1221. - }
- 1222. - #tickets_all {
- 1223. - position: relative;
- 1224. - }
- 1225. - #tickets_all_search {
- 1226. - background: #f7f7f7;
- 1227. - padding: 10px;
- 1228. - border-bottom: 1px solid #E1E7ED;
- 1229. - }
- 1230. - #tickets_all_search .all_search {
- 1231. - height: 13px;
- 1232. - width: 418px;
- 1233. - padding: 5px 20px;
- 1234. - background: #FFF url(/images/magglass.png) no-repeat 5px 6px;
- 1235. - outline: none;
- 1236. - }
- 1237. - #tickets_all_search .all_search_progress {
- 1238. - background: url("/images/upload.gif") no-repeat scroll center center transparent;
- 1239. - display: none;
- 1240. - height: 23px;
- 1241. - margin-left: -41px;
- 1242. - margin-top: 1px;
- 1243. - position: relative;
- 1244. - width: 32px;
- 1245. - z-index: 95;
- 1246. - }
- 1247. - #tickets_all_search .tickets_all_reset {
- 1248. - cursor: pointer;
- 1249. - display: none;
- 1250. - background: transparent url(/images/icons/input_clear.gif) 6px 6px no-repeat;
- 1251. - padding: 2px;
- 1252. - width: 19px;
- 1253. - height: 19px;
- 1254. - margin-left: -23px;
- 1255. - margin-top: 1px;
- 1256. - opacity: 0.6;
- 1257. - filter: alpha(opacity=60);
- 1258. - position: relative;
- 1259. - z-index: 100;
- 1260. - }
- 1261. - #tickets_all_search.loading .all_search_progress,
- 1262. - #tickets_all_search .tickets_all_reset.shown {
- 1263. - display:block;
- 1264. - }
- 1265. - #tickets_all_search.loading .tickets_all_reset.shown {
- 1266. - display:none;
- 1267. - }
- 1268. - .tickets_search_submit {
- 1269. - padding-left: 10px;
- 1270. - }
- 1271. - #tickets_add_search {
- 1272. - background: #f7f7f7;
- 1273. - padding: 10px;
- 1274. - text-align: center;
- 1275. - /*border-bottom: 1px solid #E1E7ED;*/
- 1276. - }
- 1277. - #tickets_add_title {
- 1278. - height: 13px;
- 1279. - width: 400px;
- 1280. - padding: 5px;
- 1281. - outline: none;
- 1282. - }
- 1283. - .tickets_add_wrap {
- 1284. - width: 430px;
- 1285. - margin: auto;
- 1286. - }
- 1287. - #tickets_add_search .tickets_search_progress {
- 1288. - background: url("/images/upload.gif") no-repeat scroll center center transparent;
- 1289. - display: none;
- 1290. - height: 23px;
- 1291. - margin-left: -41px;
- 1292. - margin-top: 1px;
- 1293. - position: relative;
- 1294. - width: 32px;
- 1295. - z-index: 95;
- 1296. - }
- 1297. - #tickets_add_search .tickets_search_reset {
- 1298. - cursor: pointer;
- 1299. - display: none;
- 1300. - background: transparent url(/images/icons/input_clear.gif) 6px 6px no-repeat;
- 1301. - padding: 2px;
- 1302. - width: 19px;
- 1303. - height: 19px;
- 1304. - margin-left: -23px;
- 1305. - margin-top: 1px;
- 1306. - opacity: 0.6;
- 1307. - filter: alpha(opacity=60);
- 1308. - position: relative;
- 1309. - z-index: 100;
- 1310. - }
- 1311. - #tickets_add_search.loading .tickets_search_progress,
- 1312. - #tickets_add_search .tickets_search_reset.shown {
- 1313. - display:block;
- 1314. - }
- 1315. - #tickets_add_search.loading .tickets_search_reset.shown {
- 1316. - display:none;
- 1317. - }
- 1318. -
- 1319. - #tickets_add_content {
- 1320. - padding: 15px;
- 1321. - border-top: 1px solid #DAE1E8;
- 1322. - }
- 1323. - .tickets_add_bug_row {
- 1324. - margin: auto;
- 1325. - width: 430px;
- 1326. - padding: 8px 7px;
- 1327. - border-top: 1px solid #DAE1E8;
- 1328. - cursor: pointer;
- 1329. - }
- 1330. - .tickets_add_bug_row.only {
- 1331. - cursor: default;
- 1332. - }
- 1333. - .tickets_add_bug_row.closed {
- 1334. - background-color: #F7F7F7;
- 1335. - }
- 1336. - .tickets_add_bug_row.over {
- 1337. - background-color: #EDF1F5;
- 1338. - }
- 1339. - .tickets_add_bug_row.over.detailed {
- 1340. - background-color: #FFFFFF;
- 1341. - }
- 1342. - .tickets_add_bug_row.closed.over.detailed {
- 1343. - background-color: #F7F7F7;
- 1344. - }
- 1345. - .tickets_add_bug_row.first {
- 1346. - border-top: none;
- 1347. - }
- 1348. - .tickets_add_bug_content {
- 1349. - width: 385px;
- 1350. - overflow: hidden;
- 1351. - }
- 1352. - .tickets_add_bug_title {
- 1353. - color: #45688E;
- 1354. - font-weight: bold;
- 1355. - }
- 1356. - .tickets_add_bug_full_text {
- 1357. - display: none;
- 1358. - padding-top: 5px;
- 1359. - }
- 1360. - .tickets_add_bug_row.only .tickets_add_bug_full_text {
- 1361. - display: block;
- 1362. - }
- 1363. - .tickets_add_bug_text {
- 1364. - line-height: 160%;
- 1365. - }
- 1366. - .tickets_add_bug_links {
- 1367. - padding-top: 5px;
- 1368. - color: #777777;
- 1369. - }
- 1370. - #tickets_add_button {
- 1371. - text-align: center;
- 1372. - }
- 1373. - #tickets_add_button .button_blue {
- 1374. - margin: 10px 0 0;
- 1375. - }
- 1376. -
- 1377. - #add_bug_form {
- 1378. - display: none;
- 1379. - padding: 20px;
- 1380. - }
- 1381. - #add_bug_form .label {
- 1382. - width: 80px;
- 1383. - padding: 4px 0 1px;
- 1384. - color: #555555;
- 1385. - }
- 1386. - #add_bug_form .value {
- 1387. - padding-bottom: 5px;
- 1388. - }
- 1389. - #add_bug_form .value input.text {
- 1390. - border: 1px solid #C0CAD5;
- 1391. - width: 200px;
- 1392. - }
- 1393. - #add_bug_form textarea {
- 1394. - width: 380px;
- 1395. - height: 170px;
- 1396. - }
- 1397. - .tickets_moders_subtabs {
- 1398. - background-color: #F7F7F7;
- 1399. - border: 1px solid #DAE1E8;
- 1400. - border-width: 1px 0px;
- 1401. - padding: 10px;
- 1402. - }
- 1403. - .tickets_moders_controls {
- 1404. - width: 80px;
- 1405. - }
- 1406. - .tickets_l_arr, .tickets_r_arr {
- 1407. - margin-right: 5px;
- 1408. - font-size: 1.27em;
- 1409. - display: inline;
- 1410. - width: 20px;
- 1411. - height: 20px;
- 1412. - border: 1px solid #DAE1E8;
- 1413. - cursor: pointer;
- 1414. - }
- 1415. - .tickets_l_arr {
- 1416. - background: #FFFFFF url(/images/stat_arrow_left.gif) 1px 2px no-repeat;
- 1417. - }
- 1418. - .tickets_r_arr {
- 1419. - background: #FFFFFF url(/images/stat_arrow_right.gif) 2px 2px no-repeat;
- 1420. - }
- 1421. - .tickets_l_arr.over,.tickets_r_arr.over {
- 1422. - border: 1px solid #45688E;
- 1423. - }
- 1424. - .tickets_l_arr.off,.tickets_r_arr.off {
- 1425. - display: none;
- 1426. - }
- 1427. - .tickets_moders_label {
- 1428. - color: #45688E;
- 1429. - font-weight: bold;
- 1430. - margin-top: 4px;
- 1431. - }
- 1432. - .tickets_detailed_loading {
- 1433. - height: 200px;
- 1434. - background: url(/images/progress7.gif) 50% 50% no-repeat;
- 1435. - }
- 1436. - .tickets_online {
- 1437. - width: 50px;
- 1438. - color: #999999;
- 1439. - text-align: center;
- 1440. - }
- 1441. - #tickets_similar .no_tickets_found {
- 1442. - padding: 10px 0;
- 1443. - }
- 1444. - #tickets_content .pg_more_link {
- 1445. - margin: 0 15px 15px;
- 1446. - border-top: none;
- 1447. - }
- 1448. - #tickets_search_options {
- 1449. - clear: both;
- 1450. - padding-top: 10px;
- 1451. - }
- 1452. - #tickets_search_options .radiobtn {
- 1453. - padding-right: 30px;
- 1454. - }
- 1455. - #tickets_search_options.shown {
- 1456. - display: block;
- 1457. - }
- 1458. - #tickets_checked {
- 1459. - padding: 5px 0 15px;
- 1460. - }
- 1461. - #tickets_all_selected {
- 1462. - padding: 10px;
- 1463. - background: #F7F7F7;
- 1464. - border-bottom: 1px solid #DAE1E8;
- 1465. - display: none;
- 1466. - }
- 1467. - #tickets_all_selected .tickets_subtab1 {
- 1468. - margin: 3px 1px 2px;
- 1469. - }
- 1470. - .t_tabx {
- 1471. - margin: 2px -1px 0 5px;
- 1472. - cursor: pointer;
- 1473. - width: 11px;
- 1474. - height: 11px;
- 1475. - background: url(/images/pics/im_tabx.gif?1) 0 -13px;
- 1476. - opacity: 0.2;
- 1477. - filter: alpha(opacity=20);
- 1478. - }
- 1479. - .t_tabx.over {
- 1480. - opacity: 1;
- 1481. - filter: alpha(opacity=100);
- 1482. - }
- 1483. -
- 1484. - #tickets_send_autoanswer {
- 1485. - width: 375px;
- 1486. - height: 80px;
- 1487. - }
- 1488. - #support_pass_answer_wrap #tickets_send_autoanswer {
- 1489. - width: 452px;
- 1490. - }
- 1491. -
- 1492. - #tickets_stat_access_check {
- 1493. - padding: 200px;
- 1494. - }
- 1495. - .tickets_wait_img {
- 1496. - text-align: center;
- 1497. - padding-top: 10px;
- 1498. - }
- 1499. - .similar_search_bar {
- 1500. - background: #F7F7F7;
- 1501. - padding: 10px;
- 1502. - border-bottom: 1px solid #E9EDF1;
- 1503. - margin: 0 0 0 10px;
- 1504. - }
- 1505. - .similar_row_wrap:first-child {
- 1506. - margin-top: 10px;
- 1507. - }
- 1508. -
- 1509. - .similar_search_bar .similar_loading_bar {
- 1510. - background: url('/images/upload.gif') center center no-repeat;
- 1511. - width: 32px;
- 1512. - height: 9px;
- 1513. - margin: 8px 0px 0px 469px;
- 1514. - z-index: 95;
- 1515. - position: absolute;
- 1516. - display: none;
- 1517. - }
- 1518. - .similar_loading .similar_loading_bar {
- 1519. - display: block;
- 1520. - }
- 1521. - .tickets_next_link {
- 1522. - display: block;
- 1523. - padding: 6px 10px 0px;
- 1524. - margin: 0px 5px;
- 1525. - font-weight: normal;
- 1526. - height: 20px;
- 1527. - text-align: center;
- 1528. - }
- 1529. - .tickets_next_link:hover {
- 1530. - background-color: #E1E7ED;
- 1531. - text-decoration: none;
- 1532. - }
- 1533. - #tickets_extra_options {
- 1534. - padding-top: 10px;
- 1535. - }
- 1536. - #tickets_extra_options input.text {
- 1537. - margin-right: 25px;
- 1538. - width: 120px;
- 1539. - }
- 1540. - #tickets_extra_options .extra_row {
- 1541. - margin-bottom: 10px;
- 1542. - color: #555;
- 1543. - }
- 1544. - .ticket_time {
- 1545. - margin-bottom: 10px;
- 1546. - }
- 1547. - .ticket_time_date {
- 1548. - margin-right: 10px;
- 1549. - }
- 1550. - .ticket_time_label {
- 1551. - width: 25px;
- 1552. - margin-top: 5px;
- 1553. - }
- 1554. - .tickets_extra_label {
- 1555. - width: 135px;
- 1556. - margin-top: 5px;
- 1557. - color: #555;
- 1558. - }
- 1559. - #tickets_extra_title {
- 1560. - color: #555;
- 1561. - font-weight: bold;
- 1562. - margin: 20px 0 15px;
- 1563. - }
- 1564. - #tickets_time {
- 1565. - padding: 12px 23px 0;
- 1566. - }
- 1567. - .tickets_unbind {
- 1568. - margin-top: 2px;
- 1569. - margin-left: 3px;
- 1570. - background: url("/images/hide_to.gif") no-repeat scroll 0px -1px #F7F7F7;
- 1571. - cursor: pointer;
- 1572. - height: 12px;
- 1573. - width: 14px;
- 1574. - opacity: 0.5;
- 1575. - clear: right;
- 1576. - filter: alpha(opacity=50);
- 1577. - }
- 1578. - .tickets_vader {
- 1579. - background: url("/images/lord_vader.png") no-repeat 3px 50%;
- 1580. - width: 60px;
- 1581. - height: 51px;
- 1582. - }
- 1583. -
- 1584. - #privacy_dropdown.privacy_dropdown_tickets_actions .header div {
- 1585. - padding: 3px 21px 5px 4px;
- 1586. - }
- 1587. - #privacy_dropdown.privacy_dropdown_tickets_actions .item,
- 1588. - #privacy_dropdown.privacy_dropdown_tickets_actions .item_sel,
- 1589. - #privacy_dropdownprivacy_dropdown_tickets_actions .item_sel_plus {
- 1590. - padding: 4px 21px 6px 5px;
- 1591. - }
- 1592. - #privacy_dropdown.privacy_dropdown_tickets_actions .item_sel, #privacy_dropdown .item_sel_plus {
- 1593. - padding: 3px 21px 5px 5px;
- 1594. - }
- 1595. -
- 1596. - /* Payments support */
- 1597. - .tickets_dmca_head,
- 1598. - .tickets_pay_head {
- 1599. - margin: 0px 0 4px;
- 1600. - padding: 10px 0px 4px;
- 1601. - font-size: 1.09em;
- 1602. - line-height: 1.27em;
- 1603. - color: #45688E;
- 1604. - font-weight: bold;
- 1605. - }
- 1606. - #tickets_payment_data {
- 1607. - padding: 0px 0px 15px;
- 1608. - }
- 1609. - #tickets_dmca_holder .radiobtn,
- 1610. - #tickets_payment_type .radiobtn {
- 1611. - padding: 5px 0px;
- 1612. - }
- 1613. - #tickets_paysystem_wrap .radiobtn {
- 1614. - padding: 5px 0px;
- 1615. - }
- 1616. - .tickets_payment_row {
- 1617. - padding-top: 10px;
- 1618. - display: none;
- 1619. - }
- 1620. - .tickets_payment_desc {
- 1621. - height: 40px;
- 1622. - resize: none;
- 1623. - display: block;
- 1624. - }
- 1625. - .tickets_payment_desc,
- 1626. - .tickets_payment_input {
- 1627. - width: 300px;
- 1628. - }
- 1629. - #tickets_payment_other {
- 1630. - display: none;
- 1631. - padding-top: 15px;
- 1632. - }
- 1633. - #tickets_post_form #tickets_payment_type .tickets_pay_head {
- 1634. - padding-top: 0px;
- 1635. - }
- 1636. - .tickets_envelope_controls {
- 1637. - padding-top: 5px;
- 1638. - }
- 1639. - #tickets_post_form #tickets_payment_data {
- 1640. - padding-bottom: 10px;
- 1641. - }
- 1642. - .tickets_dmca_data,
- 1643. - .tickets_pay_data {
- 1644. - padding-top: 10px;
- 1645. - }
- 1646. - .tickets_dmca_data_row,
- 1647. - .tickets_pay_data_row {
- 1648. - padding-top: 5px;
- 1649. - }
- 1650. - .tickets_dmca_data_row.links {
- 1651. - padding-top: 10px;
- 1652. - padding-bottom: 20px;
- 1653. - }
- 1654. - .tickets_dmca_data_row.blocked {
- 1655. - padding-top: 0px;
- 1656. - padding-bottom: 15px;
- 1657. - }
- 1658. - .tickets_dmca_data_row .label,
- 1659. - .tickets_pay_data .label {
- 1660. - min-width: 150px;
- 1661. - color: #777;
- 1662. - }
- 1663. - .tickets_dmca_data_row .value,
- 1664. - .tickets_pay_data .value {
- 1665. - max-width: 380px;
- 1666. - }
- 1667. - .tickets_dmca_data_row.blocked .label,
- 1668. - .tickets_dmca_data_row.name .label,
- 1669. - .tickets_dmca_data_row.links .label {
- 1670. - padding-bottom: 5px;
- 1671. - }
- 1672. - .tickets_dmca_data_row.links .value {
- 1673. - max-width: 530px;
- 1674. - white-space: nowrap;
- 1675. - overflow: hidden;
- 1676. - text-overflow: ellipsis;
- 1677. - }
- 1678. - .tickets_dmca_buttons {
- 1679. - padding-top: 10px;
- 1680. - }
- 1681. - .tickets_dmca_buttons .button_gray {
- 1682. - margin-left: 10px;
- 1683. - }
- 1684. - #tickets_decline_dmca_comment {
- 1685. - width: 393px;
- 1686. - height: 70px;
- 1687. - }
- 1688. - .is_rtl1 .tickets_dmca_buttons .button_gray {
- 1689. - margin-left: 0px;
- 1690. - margin-right: 10px;
- 1691. - }
- 1692. - .tickets_payments_header {
- 1693. - display: inline-block;
- 1694. - margin-top: 10px;
- 1695. - }
- 1696. - .tickets_payments_header a:hover {
- 1697. - text-decoration: none;
- 1698. - }
- 1699. - .tickets_payments_header .mi_section {
- 1700. - margin: 10px 0 0;
- 1701. - width: 597px;
- 1702. - }
- 1703. - .tickets_payments_header th {
- 1704. - text-align: left;
- 1705. - }
- 1706. - #tickets_payment_data .cal_table .day {
- 1707. - color: #999;
- 1708. - }
- 1709. - #tickets_payment_data .cal_table .day.past_day,
- 1710. - #tickets_payment_data .cal_table .day.today {
- 1711. - color: #000;
- 1712. - }
- 1713. -
- 1714. - #tickets_dmca_data {
- 1715. - padding: 0px 0px 15px;
- 1716. - }
- 1717. - .tickets_dmca_row {
- 1718. - padding-top: 10px;
- 1719. - }
- 1720. - .tickets_dmca_row.padd {
- 1721. - padding-top: 20px;
- 1722. - }
- 1723. - .tickets_dmca_row .checkbox {
- 1724. - line-height: 170%;
- 1725. - padding-left: 20px;
- 1726. - position: relative;
- 1727. - }
- 1728. - .tickets_dmca_row .checkbox div {
- 1729. - margin-top: 2px;
- 1730. - left: 0px !important;
- 1731. - left: -20px;
- 1732. - position: absolute;
- 1733. - }
- 1734. - .tickets_dmca_row .selector_container td.selector input {
- 1735. - height: 17px;
- 1736. - margin-bottom: 2px;
- 1737. - }
- 1738. - .tickets_dmca_input {
- 1739. - width: 300px;
- 1740. - height: 13px;
- 1741. - padding: 5px !important;
- 1742. - }
- 1743. - .tickets_dmca_log_in_msg {
- 1744. - line-height: 160%;
- 1745. - padding: 20px;
- 1746. - }
- 1747. - .tickets_dmca_log_in_btn {
- 1748. - text-align: center;
- 1749. - margin-bottom: 30px;
- 1750. - }
- 1751. - .tickets_late_info {
- 1752. - width: 500px;
- 1753. - }
- 1754. - #tickets_pass_btn {
- 1755. - margin-right: 10px;
- 1756. - display: block;
- 1757. - padding: 6px 14px 0px;
- 1758. - font-weight: normal;
- 1759. - height: 19px;
- 1760. - text-align: center;
- 1761. - }
- 1762. - #tickets_pass_btn:hover {
- 1763. - background: #E1E7ED;
- 1764. - text-decoration: none;
- 1765. - }
- 1766. - .tickets_box_title_wrap {
- 1767. - background: #597BA5;
- 1768. - padding: 10px 10px 11px;
- 1769. - position: relative;
- 1770. - overflow: hidden;
- 1771. - }
- 1772. - .tickets_box_close {
- 1773. - padding: 7px 5px;
- 1774. - color: #C7D7E9;
- 1775. - -webkit-transition: color 100ms linear;
- 1776. - -moz-transition: color 100ms linear;
- 1777. - -o-transition: color 100ms linear;
- 1778. - transition: color 100ms linear;
- 1779. - }
- 1780. - .tickets_box_close:hover {
- 1781. - color: #FFF;
- 1782. - text-decoration: none;
- 1783. - }
- 1784. - .tickets_box_title {
- 1785. - color: white;
- 1786. - padding: 7px 5px;
- 1787. - font-weight: bold;
- 1788. - font-size: 1.09em;
- 1789. - }
- 1790. - .tickets_replies_cont {
- 1791. - padding: 5px 15px;
- 1792. - }
- 1793. - .tickets_reply_comments {
- 1794. - padding-top: 10px;
- 1795. - }
- 1796. - .tickets_reply_post_field {
- 1797. - position: relative;
- 1798. - }
- 1799. - .tickets_reply_post_field .fw_reply_thumb {
- 1800. - position: absolute;
- 1801. - top: 6px;
- 1802. - left: 0px;
- 1803. - z-index: 10;
- 1804. - }
- 1805. - .tickets_reply_post_field .reply_field_tail {
- 1806. - display: block;
- 1807. - margin-left: -4px;
- 1808. - margin-top: 21px;
- 1809. - }
- 1810. - .big_wall_post.tickets_reply_post_field #submit_post_box {
- 1811. - padding: 6px 6px 6px 69px;
- 1812. - margin-left: -6px;
- 1813. - border-bottom: none;
- 1814. - }
- 1815. - .big_wall_post.tickets_reply_post_field #submit_post_box textarea {
- 1816. - font-size: 11px !important;
- 1817. - width: 453px;
- 1818. - height: 42px;
- 1819. - }
- 1820. - .support_hide_all {
- 1821. - display: none;
- 1822. - }
- 1823. - .shown .support_hide_all {
- 1824. - display: inline;
- 1825. - }
- 1826. - .shown .support_show_all {
- 1827. - display: none;
- 1828. - }
- 1829. - #tickets_all_check {
- 1830. - position: absolute;
- 1831. - top: 0px;
- 1832. - left: 15px;
- 1833. - padding: 14px 7px 5px 11px;
- 1834. - }
- 1835. - .tickets_next_chkbx {
- 1836. - padding: 6px 5px 0px 10px;
- 1837. - color: #777;
- 1838. - }
- 1839. - .tickets_next_chkbx .checkbox {
- 1840. - text-overflow: ellipsis;
- 1841. - max-width: 180px;
- 1842. - overflow: hidden;
- 1843. - white-space: nowrap;
- 1844. - }
- 1845. - .tickets_stats_text {
- 1846. - color: #777;
- 1847. - font-size: 0.9em;
- 1848. - padding: 0px 2px;
- 1849. - }
- 1850. - .tickets_moder_link {
- 1851. - font-weight: bold;
- 1852. - max-width: 149px;
- 1853. - overflow: hidden;
- 1854. - text-overflow: ellipsis;
- 1855. - }
- 1856. - .tickets_moder_id {
- 1857. - color: #777777;
- 1858. - font-weight: normal;
- 1859. - padding-left: 5px;
- 1860. - }
- 1861. - .tickets_stats_value {
- 1862. - font-weight: bold;
- 1863. - }
- 1864. - .tickets_block_playback_wrap {
- 1865. - padding-top: 10px;
- 1866. - }
- 1867. - #tickets_block_playback_saved {
- 1868. - color: #777;
- 1869. - opacity: 0;
- 1870. - }
- 1871. - .tickets_mob {
- 1872. - width: 0px;
- 1873. - height: 12px;
- 1874. - padding-left: 7px;
- 1875. - margin-right: 4px;
- 1876. - background: url(/images/mobile_online.gif?1) no-repeat -11px 0;
- 1877. - *zoom: 1;
- 1878. - cursor: pointer;
- 1879. - }
- 1880. - .tickets_media_icon {
- 1881. - float: left;
- 1882. - background: url(/images/icons/mono_iconset.gif?8) no-repeat 0 -294px;
- 1883. - width: 11px;
- 1884. - height: 11px;
- 1885. - margin-right: 3px;
- 1886. - margin-top: 3px;
- 1887. - }
- ------
Advertisement
Add Comment
Please, Sign In to add comment