1var lc_curr = 0; 2var rc_curr = 0; 3var lc_value = 0; 4var rc_value = 0; 5var nr = false; 6var ud = 0; 7var show_add_name = ''; 8var show_box = -1; 9var show_lab_box = false; 10var show_two_box = false; 11var show_del_box = false; 12var show_cmt_box = false; 13var show_all_box = false; 14var show_lang_box = false; 15var show_ar_form = false; 16var show_cm_form = false; 17var show_ow_info = false; 18var show_all_est = false; 19var show_th_info = false; 20var ar_form_height; 21var dc, db, di, fn, wd; 22var permanent_update_timer = 0; 23var reload_update_timer = 0; 24var status_timer = 0; 25var is_calc_rates = false; 26var is_twostep_rates = false; 27var twostep_rate_id = 0; 28var twostep_rate_id_next = 0; 29var twostep_rate_id_old = 0; 30var chart_time = 0; 31var chart_update_stop = false; 32var chart_unsuccessful = 0; 33var wishes_default_text = ''; 34var last_exch_id = 0; 35var finkdata; 36var citylist; 37var page_active = true; 38var page_active_timer = 0; 39var page_tracked = 0; 40var last_mouse_move = 0; 41var favd_cookie = getCookie('favd'); 42var update_request = false; 43var tglink_checking = false; 44var tglink_check_count = 0; 45var is_leave_page = false; 46var sort_manual = false; 47var bonus_captcha; 48var bonus_captcha_timer; 49var invisible_captcha; 50var mouse_on_geo_details = false; 51var is_page_loaded = false; 52var lc_searched = false; 53var rc_searched = false; 54var cy_list = new Array(); 55var sort_type = ''; 56var sort_range = ''; 57var calc_type = ''; 58var calc_give = ''; 59var calc_get = ''; 60var calc_timer = 0; 61var country = 0; 62var city = 0; 63var last_ci = 0; 64var last_cc = ''; 65var light_id = 0; 66var layout_map = {}; 67var time_offset_changed = false; 68var last_field_check_obj = false; 69var last_field_check_timer = 0; 70var info_filter = ''; 71var langcode = 'en'; 72var langprefix = ''; 73 74//**** Fixes ******************************************** 75 76if (!Date.now) { 77 Date.now = function now() { 78 return new Date().getTime(); 79 }; 80} 81var last_update = Date.now(); 82 83if (window.NodeList && !NodeList.prototype.forEach) { 84 NodeList.prototype.forEach = function (callback, thisArg) { 85 thisArg = thisArg || window; 86 for (var i = 0; i < this.length; i++) callback.call(thisArg, this[i], i, this); 87 }; 88} 89 90//**** General functions ******************************** 91 92function l(value) { 93 if (document.all && !document.addEventListener) { 94 alert(value); 95 } else { 96 console.log(value); 97 } 98} 99 100function createRequest() { 101 var req = false; 102 if (window.XMLHttpRequest) { 103 req = new XMLHttpRequest(); 104 } else if (window.ActiveXObject) { 105 try { 106 req = new ActiveXObject('Msxml2.XMLHTTP'); 107 } catch (e) { 108 } 109 try { 110 req = new ActiveXObject('Microsoft.XMLHTTP'); 111 } catch (e) { 112 } 113 } 114 return req; 115} 116 117function sendRequest(req, data, errorEvent) { 118 try { 119 req.open('POST', '/action.php?lang=' + langcode, true); 120 if (!window.XMLHttpRequest) { 121 req.setRequestHeader('Accept-Charset', lang['language_charset']); 122 req.setRequestHeader('Connection', 'keep-alive'); 123 req.setRequestHeader('Content-length', data.length); 124 } 125 req.setRequestHeader('Content-type', 'application/x-www-form-urlencoded; charset=' + lang['language_charset']); 126 req.send(data); 127 } catch(e) { 128 if (typeof errorEvent == 'function') errorEvent(); 129 return false; 130 } 131 return true; 132} 133 134try { 135 function js_error_handler(message, url, line, column, error) { 136 if (message == 'Script error.' && line == 0) return;//different domain 137 if (message == 'uncaught exception: [object Object]' && line == 0 && column == 0) return; 138 if (message.indexOf('chrome-extension://') != -1 || url.indexOf('chrome-extension://') != -1) return; 139 if (message.indexOf('chrome://internal') != -1 || url.indexOf('chrome://internal') != -1) return; 140 var req = createRequest(); 141 if (req) sendRequest(req, 'action=error&message=' + message + '&location=' + encodeURIComponent(window.location.toString()) + '&url=' + url + '&line=' + line + '&column=' + column + '&error=' + (isEmpty(error) ? '' : error.stack)); 142 //return true; 143 } 144 window.onerror = js_error_handler; 145} catch (e) { 146} 147 148function eventPush(obj, event, handler) { 149 if (obj.addEventListener) { 150 obj.addEventListener(event, handler, false); 151 } else if (obj.attachEvent) { 152 obj.attachEvent('on' + event, handler); 153 } 154} 155 156function fireEvent(node, eventName) { 157 var doc; 158 if (node.ownerDocument) { 159 doc = node.ownerDocument; 160 } else if (node.nodeType == 9) { 161 doc = node; 162 } else { 163 return; 164 }
165 if (node.dispatchEvent) { 166 var eventClass = ''; 167 switch (eventName) { 168 case 'click': 169 case 'mousedown': 170 case 'mouseup': eventClass = 'MouseEvents'; break; 171 case 'focus': 172 case 'change': 173 case 'blur': 174 case 'select': eventClass = 'HTMLEvents'; break; 175 default: break; 176 } 177 var event = doc.createEvent(eventClass); 178 var bubbles = eventName == 'change' ? false : true; 179 event.initEvent(eventName, bubbles, true); 180 event.synthetic = true; 181 node.dispatchEvent(event, true); 182 } else if (node.fireEvent) { 183 var event = doc.createEventObject(); 184 event.synthetic = true; 185 node.fireEvent('on' + eventName, event); 186 } 187} 188 189function isHidden(el) { 190 var width = el.offsetWidth, height = el.offsetHeight, tr = el.nodeName.toLowerCase() === 'tr'; 191 return width === 0 && height === 0 && !tr ? true : width > 0 && height > 0 && !tr ? false : getRealDisplay(el); 192} 193 194function moveToEnd(el) { 195 if (typeof el.selectionStart == 'number') { 196 el.selectionStart = el.selectionEnd = el.value.length; 197 } else if (typeof el.createTextRange != 'undefined') { 198 el.focus(); 199 var range = el.createTextRange(); 200 range.collapse(false); 201 range.select(); 202 } 203} 204 205function setFocus(obj) { 206 if (obj) setTimeout(function () { 207 try { 208 obj.style.display = ''; 209 moveToEnd(obj); 210 obj.focus(); 211 } catch(e) { 212 } 213 }, 1); 214} 215 216function isEmpty(value) { 217 return value === null || typeof(value) === 'undefined'; 218} 219 220function setCookie(name, value) { 221 var date = new Date(); 222 date.setTime(date.getTime() + (10 * 365 * 24 * 60 * 60 * 1000)); 223 document.cookie = name + '=' + escape(value) + '; expires=' + date.toGMTString() + '; path=/'; 224} 225 226function getCookie(name) { 227 var cookie = ' ' + document.cookie; 228 var search = ' ' + name + '='; 229 var setStr = ''; 230 var offset = 0; 231 var end = 0; 232 if (cookie.length > 0) { 233 offset = cookie.indexOf(search); 234 if (offset != -1) { 235 offset += search.length; 236 end = cookie.indexOf(';', offset) 237 if (end == -1) end = cookie.length; 238 setStr = unescape(cookie.substring(offset, end)); 239 } 240 } 241 return(setStr); 242} 243 244function addClass(o, c) { 245 if (o == null) return; 246 var re = new RegExp('(^|\\s)' + c + '(\\s|$)', 'g'); 247 if (re.test(o.className)) return; 248 o.className = (o.className + ' ' + c).replace(/\s+/g, ' ').replace(/(^ | $)/g, ''); 249} 250 251function removeClass(o, c) { 252 if (o == null) return; 253 var re = new RegExp('(^|\\s)' + c + '(\\s|$)', 'g'); 254 o.className = o.className.replace(re, '$1').replace(/\s+/g, ' ').replace(/(^ | $)/g, ''); 255} 256 257function classExists(o, c) { 258 if (o == null) return false; 259 var re = new RegExp('(^|\\s)' + c + '(\\s|$)', 'g'); 260 return re.test(o.className); 261} 262 263function getCursor(ctrl) { 264 var CaretPos = 0; 265 if (document.selection) { 266 ctrl.focus (); 267 var Sel = document.selection.createRange (); 268 Sel.moveStart ('character', -ctrl.value.length); 269 CaretPos = Sel.text.length; 270 } else if (ctrl.selectionStart || ctrl.selectionStart == '0') CaretPos = ctrl.selectionStart; 271 return CaretPos; 272} 273 274function setCursor(ctrl, pos) { 275 if (ctrl.setSelectionRange){ 276 ctrl.focus(); 277 ctrl.setSelectionRange(pos,pos); 278 } else if (ctrl.createTextRange) { 279 var range = ctrl.createTextRange(); 280 range.collapse(true); 281 range.moveEnd('character', pos); 282 range.moveStart('character', pos); 283 range.select(); 284 } 285} 286 287function arraySum(a) { 288 var r = 0; 289 for (var i = 0; i < a.length; i++) r += a[i]; 290 return r; 291} 292 293function add_favorite(a, url, title) { 294 try { 295 window.external.AddFavorite(url, title); 296 } 297 catch (e) { 298 try { 299 window.sidebar.addPanel(title, url, ''); 300 } 301 catch (e) { 302 if (typeof opera == 'object') { 303 a.rel = 'sidebar'; 304 a.title = title; 305 a.url = url; 306 return true; 307 } else { 308 alert(lang['fav_save']); 309 } 310 } 311 } 312 return false; 313} 314 315function objectsAreSame(x, y) { 316 for (var propertyName in x) if (x[propertyName] !== y[propertyName]) return false; 317 return true; 318} 319 320function openDocument(url, new_window) { 321 var a = document.createElement('a'); 322 if (!a.click || a.click != undefined) { 323 if (new_window) { 324 window.open(url, '', ''); 325 } else { 326 document.location = url; 327 } 328 return; 329 } 330 a.setAttribute('href', url); 331 if (new_window) a.setAttribute('target', '_blank'); 332 a.style.display = 'none'; 333 document.body.appendChild(a); 334 a.click(); 335} 336 337function isNumeric(value) { 338 return !isNaN(parseInt(value)); 339} 340 341function getPageScroll() { 342 var yScroll; 343 if (self.pageYOffset) { 344 yScroll = self.pageYOffset; 345 } else if (document.documentElement && document.documentElement.scrollTop) { 346 yScroll = document.documentElement.scrollTop; 347 } else if (document.body) { 348 yScroll = document.body.scrollTop; 349 } 350 arrayPageScroll = new Array('', yScroll); 351 return arrayPageScroll; 352} 353 354function getPageSize() { 355 var xScroll, yScroll; 356 if (window.innerHeight && window.scrollMaxY) { 357 xScroll = document.body.scrollWidth; 358 yScroll = window.innerHeight + window.scrollMaxY; 359 } else if (document.body.scrollHeight > document.body.offsetHeight) { 360 xScroll = document.body.scrollWidth; 361 yScroll = document.body.scrollHeight; 362 } else if (document.documentElement && document.documentElement.scrollHeight) { 363 xScroll = document.documentElement.scrollWidth; 364 yScroll = document.documentElement.scrollHeight; 365 } else { 366 xScroll = document.body.offsetWidth; 367 yScroll = document.body.offsetHeight; 368 } 369 370 var windowWidth, windowHeight;
371 if (self.innerHeight) { 372 windowWidth = self.innerWidth; 373 windowHeight = self.innerHeight; 374 } else if (document.documentElement && document.documentElement.clientHeight) { 375 windowWidth = document.documentElement.clientWidth; 376 windowHeight = document.documentElement.clientHeight; 377 } else if (document.body) { 378 windowWidth = document.body.clientWidth; 379 windowHeight = document.body.clientHeight; 380 } 381 382 pageHeight = Math.max(yScroll, windowHeight); 383 pageWidth = Math.max(xScroll, windowWidth); 384 385 arrayPageSize = new Array(pageWidth, pageHeight, windowWidth, windowHeight); 386 return arrayPageSize; 387} 388 389(function() { 390 var cache = {}; 391 window.nodeById = function(id) { 392 return cache[id] ? cache[id] : cache[id] = document.getElementById(id); 393 } 394})() 395 396function checkParent(parent, elem) { 397 if (!elem) return false; 398 return elem == parent || checkParent(parent, elem.parentNode); 399} 400 401function stopBubbling(event) { 402 event = event || window.event; 403 if (event.stopPropagation) { 404 event.stopPropagation(); 405 } else { 406 event.cancelBubble = true; 407 } 408} 409 410function numFormat(n, del_sep, th_sep) { 411 if (!del_sep) del_sep = '.'; 412 if (!th_sep) th_sep = ' '; 413 414 n = Math.round(n * 100000000) / 100000000; 415 if (n == Math.ceil(n)) n = Math.ceil(n); 416 var s = n.toString(); 417 var pos = s.indexOf('.'); 418 var rest = pos > -1 ? s.slice(pos + 1) : ''; 419 n = n - (n%1); 420 return n.toString().replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1' + th_sep) + (rest ? del_sep + rest : ''); 421} 422 423function getTimeFormat(time, needSec) { 424 var time_sec = time.getSeconds(); 425 var time_min = time.getMinutes(); 426 var time_hours = time.getHours(); 427 var result = (time_hours < 10 ? '0' : '') + time_hours + ':' + (time_min < 10 ? '0' : '') + time_min + (needSec ? ':' + (time_sec < 10 ? '0' : '') + time_sec : ''); 428 return result; 429} 430 431function prepareFloat(s) { 432 if (typeof s == 'undefined') return 0; 433 var r = s.toString().replace(/,/gi, s.indexOf('.') == -1 ? '.' : '').replace(/[^\d\.]/gi, ''); 434 return r == '' ? 0 : parseFloat(r); 435} 436 437function emptyObject(obj) { 438 for (var i in obj) return false; 439 return true; 440} 441 442function isFramed() { 443 try { 444 return window != window.top || document != top.document || self.location != top.location; 445 } catch (e) { 446 return true; 447 } 448} 449 450function copyTextToClipboard(text) { 451 var copyFrom = document.createElement('textarea'); 452 copyFrom.textContent = text; 453 var body = document.getElementsByTagName('body')[0]; 454 body.appendChild(copyFrom); 455 copyFrom.select(); 456 document.execCommand('copy'); 457 body.removeChild(copyFrom); 458} 459 460var recaptcha_callback = function () {}; 461 462function recaptcha_check(action, success_callback, fail_callback) { 463 recaptcha_callback = function () { 464 grecaptcha.ready(function() { 465 grecaptcha.execute('6Le8iM4ZAAAAADEjw_VY4eW97zvA923JmDWGvdaq', {'action': action}).then(function (token) { 466 if (typeof success_callback == 'function') success_callback(token); 467 addClass(document.getElementsByClassName('grecaptcha-badge')[0], 'grecaptcha-hide'); 468 }, function () { 469 if (typeof fail_callback == 'function') fail_callback(); 470 }); 471 }); 472 }; 473 474 if (typeof grecaptcha == 'undefined') { 475 var grecaptcha_s = document.createElement('script'); 476 grecaptcha_s.src = 'https://www.recaptcha.net/recaptcha/api.js?onload=recaptcha_callback&render=6Le8iM4ZAAAAADEjw_VY4eW97zvA923JmDWGvdaq'; 477 grecaptcha_s.setAttribute('async', 'async'); 478 grecaptcha_s.setAttribute('defer', 'defer'); 479 grecaptcha_s.onerror = function() { 480 if (typeof fail_callback == 'function') fail_callback(); 481 }; 482 var grecaptcha_h = document.getElementsByTagName('script')[0]; 483 grecaptcha_h.parentNode.insertBefore(grecaptcha_s, grecaptcha_h); 484 } else { 485 removeClass(document.getElementsByClassName('grecaptcha-badge')[0], 'grecaptcha-hide'); 486 recaptcha_callback(); 487 } 488} 489 490function levenshtein_min(d0, d1, d2, bx, ay) { 491 return d0 < d1 || d2 < d1 ? (d0 > d2 ? d2 + 1 : d0 + 1) : (bx === ay ? d1 : d1 + 1); 492} 493 494function levenshtein(a, b) { 495 if (a === b) return 0; 496 if (a.length > b.length) { 497 var tmp = a; 498 a = b; 499 b = tmp; 500 } 501 var la = a.length; 502 var lb = b.length; 503 while (la >
503 0 && (a.charCodeAt(la - 1) === b.charCodeAt(lb - 1))) { 504 la--; 505 lb--; 506 } 507 var offset = 0; 508 while (offset < la && (a.charCodeAt(offset) === b.charCodeAt(offset))) { 509 offset++; 510 } 511 la -= offset; 512 lb -= offset; 513 if (la === 0 || lb < 3) return lb; 514 var x = 0, vector = []; 515 var y, d0, d1, d2, d3, dd, dy, ay, bx0, bx1, bx2, bx3; 516 for (y = 0; y < la; y++) { 517 vector.push(y + 1); 518 vector.push(a.charCodeAt(offset + y)); 519 } 520 var len = vector.length - 1; 521 for (; x < lb - 3;) { 522 bx0 = b.charCodeAt(offset + (d0 = x)); 523 bx1 = b.charCodeAt(offset + (d1 = x + 1)); 524 bx2 = b.charCodeAt(offset + (d2 = x + 2)); 525 bx3 = b.charCodeAt(offset + (d3 = x + 3)); 526 dd = (x += 4); 527 for (y = 0; y < len; y += 2) { 528 dy = vector[y]; 529 ay = vector[y + 1]; 530 d0 = levenshtein_min(dy, d0, d1, bx0, ay); 531 d1 = levenshtein_min(d0, d1, d2, bx1, ay); 532 d2 = levenshtein_min(d1, d2, d3, bx2, ay); 533 dd = levenshtein_min(d2, d3, dd, bx3, ay); 534 vector[y] = dd; 535 d3 = d2; 536 d2 = d1; 537 d1 = d0; 538 d0 = dy; 539 } 540 } 541 for (; x < lb;) { 542 bx0 = b.charCodeAt(offset + (d0 = x)); 543 dd = ++x; 544 for (y = 0; y < len; y += 2) { 545 dy = vector[y]; 546 vector[y] = dd = levenshtein_min(dy, d0, dd, bx0, vector[y + 1]); 547 d0 = dy; 548 } 549 } 550 return dd; 551} 552 553//**** Custom functions ******************************** 554 555function id2pos(number) { 556 for (var i = 0; i < ds_list.length; i++) if (ds_list[i] == number) return i; 557} 558 559function is_cash_cy(id) { 560 return ty_list[id2pos(id)] == 5; 561} 562 563function goto_list(from, to) { 564 var fromcur = from ? from : lc_curr; 565 var tocur = to ? to : rc_curr; 566 var is_cash = is_cash_cy(fromcur) || is_cash_cy(tocur); 567 openDocument(langprefix + '/' + cu_list[id2pos(fromcur)] + '-to-' + cu_list[id2pos(tocur)] + (is_cash && last_cc ? '-in-' + last_cc : '') + '.html', false); 568} 569 570function list_clk() { 571 lc_curr = document.getElementById('currency_lc').value; 572 rc_curr = document.getElementById('currency_rc').value; 573 goto_list(); 574 return false; 575} 576 577function mark_selected(id, direct) { 578 var item = document.getElementById('d' + direct + id); 579 if (item != null) item.className = 'c' + direct; 580 if (sc_list[id2pos(id)] == 0) { 581 removeClass(document.getElementById('ti' + id), 'hide'); 582 resize_tab_line(id); 583 tab_repainting(); 584 } 585} 586 587function mark_unav(id, direct) { 588 var id_pos = id2pos(id); 589 for (var i = 0; i < ds_list.length; i++) { 590 var item = document.getElementById((direct == 'rc' ? 'alc' : 'arc') + ds_list[i]); 591 if (!isEmpty(item)) item.className = direct == 'rc' ? (av_list[i].substring(id_pos, id_pos + 1) == '0' ? 'unav' : '') : (av_list[id_pos].substring(i, i + 1) == '0' ? 'unav' : ''); 592 } 593} 594 595function make_tablink(direct) { 596 var a_name, a_id; 597 eval('var current_curr = ' + direct + '_curr'); 598 for (var i = 0; i < ds_list.length; i++) { 599 if (ds_list[i] == current_curr) continue; 600 a_id = document.getElementById('a' + direct + ds_list[i]); 601 if (a_id.name) a_id.href = langprefix + '/' + a_id.name; 602 } 603} 604 605function clk(id, direct, nofollow) { 606 eval('var old_curr = ' + direct + '_curr'); 607 if (old_curr == id) return false; 608 if (lc_curr != 0 && rc_curr != 0 && ((direct == 'lc' && rc_curr == id) || (direct == 'rc' && lc_curr == id))) { 609 var adirect = direct == 'rc' ? 'lc' : 'rc'; 610 eval(adirect + '_curr = 0'); 611 var item = document.getElementById('d' + adirect + id); 612 if (!isEmpty(item)) item.className = adirect; 613 } 614 var b = (old_curr > 0 && old_curr != id); 615 eval(direct + '_curr = ' + id); 616 if (b) { 617 var item = document.getElementById('d' + direct + old_curr); 618 if (!isEmpty(item)) item.className = direct; 619 } 620 mark_selected(id, direct); 621 mark_unav(id, direct); 622 if (lc_curr != 0 && rc_curr != 0 && !nofollow) goto_list(); 623 return false; 624} 625 626function reverse_direct() { 627 var temp_curr = lc_curr; 628 if (rc_curr > 0) clk(rc_curr, 'lc', true); 629 if (temp_curr > 0) clk(temp_curr, 'rc'); 630 return false; 631} 632 633function sel_change(direct, locate) { 634 var adirect = direct == 'rc' ? 'lc' : 'rc'; 635 var direct_sel = document.getElementById('currency_' + direct); 636 var adirect_sel = document.getElementById('currency_' + adirect); 637 if (direct_sel == null || adirect_sel == null) return; 638 if (locate) { 639 eval(direct + '_curr = direct_sel.value'); 640 if (lc_curr != 0 && rc_curr != 0) goto_list(); 641 } 642 var id_pos = id2pos(direct_sel.value); 643 for (var i = 0; i < adirect_sel.options.length; i++) adirect_sel.options[i].style.color = direct == 'rc' ? (av_list[i].substring(id_pos, id_pos + 1) == '0' ? '#aaaaaa' : '#222222') : (av_list[id_pos].substring(i, i + 1) == '0' ? '#aaaaaa' : '#222222'); 644 return false;
645} 646 647function change_upd_img(class_name, src) { 648 var obj = document.getElementById('update_image'); 649 if (obj) { 650 obj.className = class_name; 651 if (src) obj.src = src; 652 } 653} 654 655function error_upd_img() { 656 change_upd_img('', '/images/error.png'); 657 setTimeout(function () { 658 change_upd_img('hide'); 659 }, 500); 660} 661 662function corr_tab(id, direct) { 663 if (id != 0) { 664 for (var i = 0; i < ds_list.length; i++) if (ds_list[i] != id) nodeById('d' + direct + ds_list[i]).className = direct; 665 mark_selected(id, direct); 666 if (direct == 'lc' || (direct == 'rc' && lc_curr == 0)) mark_unav(id, direct); 667 } 668} 669 670function corr_list(id, direct) { 671 if (id != 0) { 672 sel_el = document.getElementById('currency_' + direct); 673 sel_el.value = id; 674 sel_el.onchange(); 675 sel_change(direct, false); 676 } 677} 678 679function change_tab(type, name, oldname) { 680 if (type == 'content') { 681 if ((name == 'calc' || name == 'notify' || name == 'twostep') && oldname != 'rates') document.getElementById('content_rates').className = ''; 682 if ((oldname == 'calc' || oldname == 'notify' || oldname == 'twostep') && (name != 'rates' && name != 'calc' && name != 'notify' && name != 'twostep')) document.getElementById('content_rates').className = 'hide'; 683 if (name == 'twostep' && oldname != 'calc') document.getElementById('content_calc').className = ''; 684 if (oldname == 'twostep') { 685 if (name != 'calc') document.getElementById('content_calc').className = 'hide'; 686 } else { 687 document.getElementById(type + '_' + oldname).className = (oldname == 'rates' && (name == 'calc' || name == 'notify' || name == 'twostep')) || oldname == 'calc' && name == 'twostep' ? '' : 'hide'; 688 } 689 if (name == 'stats') { 690 chart_update_stop = false; 691 update_stats(); 692 } 693 if (oldname == 'stats') chart_update_stop = true; 694 } else { 695 document.getElementById(type + '_' + oldname).className = 'hide'; 696 } 697 if (name != 'twostep') document.getElementById(type + '_' + name).className = ''; 698 document.getElementById('tab_' + oldname).className = ''; 699 document.getElementById('tab_' + name).className = 'active'; 700} 701 702function change_ctab(name) { 703 if (name != ct) { 704 change_tab('curr', name, ct); 705 setCookie('ct', name); 706 ct = name; 707 if (name == 'tab') { 708 corr_tab(lc_curr, 'lc'); 709 corr_tab(rc_curr, 'rc'); 710 } 711 if (name == 'list') { 712 corr_list(lc_curr, 'lc'); 713 corr_list(rc_curr, 'rc'); 714 } 715 } 716 return false; 717} 718 719function change_mtab(name) { 720 if (name != mt) { 721 if (update_request) abort_update_rates(document.getElementById('calc_button'), document.getElementById('sets_button')); 722 723 change_tab('content', name, mt); 724 if (name == 'calc' || name == 'twostep') { 725 sort_manual = false; 726 sort_type = ''; 727 sort_range = ''; 728 if (calc_type == '') { 729 var lc_old = getCookie('give' + lc_value); 730 var lc_old_entry = {}; 731 try { 732 if (lc_old) lc_old_entry = JSON.parse(lc_old); 733 } catch (e) { 734 } 735 var rc_old = getCookie('get' + rc_value); 736 var rc_old_entry = {}; 737 try { 738 if (rc_old) rc_old_entry = JSON.parse(rc_old); 739 } catch (e) { 740 } 741 742 var is_lc_exists = typeof lc_old_entry['date'] != 'undefined'; 743 var is_rc_exists = typeof rc_old_entry['date'] != 'undefined'; 744 745 if (is_lc_exists || is_rc_exists) { 746 if ((is_lc_exists && !is_rc_exists) || lc_old_entry['date'] > rc_old_entry['date']) { 747 calc_give = lc_old_entry['amount']; 748 document.getElementById('give').value = lc_old_entry['amount']; 749 setCalcType('give'); 750 } else { 751 calc_get = rc_old_entry['amount']; 752 document.getElementById('get').value = rc_old_entry['amount']; 753 setCalcType('get'); 754 } 755 } 756 } 757 setCalcFocus(); 758 } 759 if (name == 'notify') setNotifyFocus(); 760 if (name != 'calc' && name != 'twostep') { 761 sort_manual = false; 762 sort_type = ''; 763 sort_range = ''; 764 calc_type = ''; 765 } 766 mt = name; 767 eval('var is_calc_update = name == \'calc\' && calc_type != \'\' && calc_' + calc_type + ' != \'\'');
768 if (name != 'stats' && ((name == 'twostep' && !is_twostep_rates) || (name != 'twostep' && is_twostep_rates) || (name != 'calc' && is_calc_rates) || is_calc_update)) update_rates(); 769 } 770 return false; 771} 772 773function change_itab(name, cu_page) { 774 eval('var b = name != ' + cu_page); 775 if (b) { 776 change_tab('info', name, eval(cu_page)); 777 setCookie(cu_page, name); 778 eval(cu_page + ' = name'); 779 } 780 return false; 781} 782 783function change_etab(name) { 784 if (name != it) { 785 change_tab('content', name, it); 786 it = name; 787 } 788 return false; 789} 790 791function set_cur_cookies() { 792 if (lc_curr && rc_curr) { 793 document.cookie = 'from=' + lc_curr + '; path=/'; 794 document.cookie = 'to=' + rc_curr + '; path=/'; 795 } 796} 797 798function fco(id) { 799 nr = true; 800 if (typeof id != 'undefined') last_exch_id = id; 801 if (typeof gtag == 'function') { 802 gtag('event', 'click', { 803 'event_category': 'exchanger' + (lc_curr != 0 && rc_curr != 0 ? '' : '-main'), 804 'event_label': id 805 }); 806 } 807 if (typeof yaCounter55602688 != 'undefined' && lc_curr != 0 && rc_curr != 0) { 808 yaCounter55602688.reachGoal('exchanger'); 809 } 810 return true; 811} 812 813function ccl(id, from, to, city) { 814 if (nr) { 815 nr = false; 816 return false; 817 } 818 if (!city) city = 0; 819 last_exch_id = id; 820 openDocument('/click.php?id=' + id + (from && to ? '&from=' + from + '&to=' + to : '') + '&city=' + city, true); 821 822 if (typeof gtag == 'function') { 823 gtag('event', 'click', { 824 'event_category': 'exchanger' + (lc_curr != 0 && rc_curr != 0 ? '' : '-main'), 825 'event_label': id 826 }); 827 } 828} 829 830function open_reviews(id) { 831 if (typeof direct_data != 'undefined' && direct_data) { 832 set_cur_cookies(); 833 openDocument(langprefix + '/' + direct_data[id]['u'] + '-exchanger.html', false); 834 } 835 return false; 836} 837 838function crw(id) { 839 if (nr) return false; 840 fco(); 841 open_reviews(id); 842} 843 844function arw(id) { 845 if ('\v'=='v') { 846 crw(id); 847 return false; 848 } else { 849 fco(); 850 set_cur_cookies(); 851 return true; 852 } 853} 854 855function set_status(name, status, filename, noclear) { 856 if (status_timer != 0) clearTimeout(status_timer); 857 status_timer = 0; 858 var img_content = status != '' ? '<img src="/images/' + filename + '" width="16" height="16" />' : ''; 859 document.getElementById(name + '_img').innerHTML = img_content; 860 document.getElementById(name + '_status').innerHTML = status; 861 if (name == 'bonus' && status == '') { 862 document.getElementById('bonus_result').className = 'hide'; 863 document.getElementById('bonus_form').className = ''; 864 } 865 if (name == 'manage_review') document.getElementById('manage_review_status_block').className = status ? '' : 'hide'; 866 if (!noclear) status_timer = setTimeout(function () { 867 set_status(name, '', '', true); 868 }, 2500); 869} 870 871function save_sets() { 872 var req = createRequest(); 873 if (req) { 874 var sets_button = document.getElementById('sets_button'); 875 sets_button.disabled = true; 876 set_status('sets', lang['sets_save'], 'ajax.png', true); 877 878 var ajax_timer = setTimeout(function() { 879 req.abort(); 880 req.onreadystatechange = function() { 881 return true; 882 }; 883 set_status('sets', lang['str_fail_serv'], 'error.png'); 884 sets_button.disabled = false; 885 }, 25000); 886 887 var sets_vars = new Array('dc', 'db', 'di', 'ud', 'fn', 'wd'); 888 for (var i = 0; i < sets_vars.length; i++) { 889 var set_value = document.getElementById(sets_vars[i]).value; 890 setCookie(sets_vars[i], set_value); 891 eval(sets_vars[i] + ' = \'' + set_value.replace(/[\']/, '\\\'') + '\''); 892 } 893 894 req.onreadystatechange = function() { 895 if (req.readyState != 4) return; 896 clearTimeout(ajax_timer); 897 if (req.status == 200) { 898 var results = req.responseText.split('[delimiter]'); 899 if (results.length == 2 && results[0] == 'OK') { 900 document.getElementById('custom_style').innerHTML = ' <style type="text/css">' + results[1] + '</style>'; 901 update_rates(); 902 set_status('sets', lang['sets_save_ok'], 'ok.png', true); 903 setTimeout(function () { 904 hide_overlay(); 905 }, 700); 906 } else { 907 set_status('sets', lang['sets_save_fail'], 'error.png'); 908 } 909 } else { 910 set_status('sets', lang['sets_save_fail'], 'error.png'); 911 } 912 sets_button.disabled = false;
913 } 914 915 sendRequest(req, 'action=savesets&name=' + fn + '&type=' + wd, function () { 916 set_status('sets', lang['str_fail_con'], 'error.png'); 917 sets_button.disabled = false; 918 }); 919 } 920 return false; 921} 922 923function show_info(id) { 924 if (typeof direct_data != 'undefined' && direct_data) { 925 if (id !== show_box) { 926 var info_box = nodeById('details'); 927 var obj = document.getElementById('io' + id); 928 929 var x = 0, y = 0; 930 try { 931 while (obj && obj.id != 'content_rates') { 932 x += parseInt(obj.offsetLeft); 933 y += parseInt(obj.offsetTop); 934 obj = obj.offsetParent; 935 } 936 } catch (error) { 937 show_box = -1; 938 return false; 939 } 940 show_box = id; 941 info_box.style.left = Math.round(x + 22) + 'px'; 942 info_box.style.top = Math.round(y - 13) + 'px'; 943 info_box.onmouseover = function () { 944 show_box = id; 945 }; 946 info_box.className = ''; 947 var star_content = ''; 948 for (i = 1; i <= (direct_data[id]['s'] > 5 ? 5 : direct_data[id]['s']); i++) star_content += '<span class="star"></span>'; 949 nodeById('det_changer').innerHTML = '<a target="_blank" href="/click.php?' + direct_data[id]['a'] + '" title="' + lang['str_goto_exch'] + '">' + direct_data[id]['n'] + '</a>' + 950 (direct_data[id]['v'] ? '<span class="full" title="' + lang['info_exch_verify'] + '"></span>' : '') + 951 (direct_data[id]['o'] ? '<span class="company" title="' + lang['info_exch_company'] + '"></span>' : '') + 952 (star_content ? '<span class="stars" title="' + lang['details_rating'] + '">' + star_content + '</span>' : '') + 953 '<span class="amlclarity aml' + direct_data[id]['l'] + '" onclick="load_overlay(\'gethint&name=aml' + direct_data[id]['l'] + '\')" title="' + lang['aml_tag_' + direct_data[id]['l']] + '"><span class="amltext">AML</span><span class="amldot"></span></span>'; 954 nodeById('det_date').innerHTML = direct_data[id]['d']; 955 nodeById('det_bcage').innerHTML = direct_data[id]['b'] ? direct_data[id]['b'] : '—'; 956 nodeById('det_reviews').innerHTML = direct_data[id]['t'] ? direct_data[id]['t'] : '—'; 957 nodeById('det_claims').innerHTML = direct_data[id]['r'] ? direct_data[id]['r'] : '—'; 958 nodeById('det_country').innerHTML = '<img src="/images/countries/' + direct_data[id]['c'] + '.svg" valign="middle" />' + direct_data[id]['m']; 959 } 960 } 961} 962 963function hide_info() { 964 if (show_box == -1) nodeById('details').className = 'hide'; 965} 966 967function shd() { 968 show_box = -1; 969 setTimeout(function () { 970 hide_info(); 971 }, 200); 972} 973 974function shc(id) { 975 if (show_box > -1) { 976 show_box = -1; 977 hide_info(); 978 } else { 979 show_info(id); 980 } 981} 982 983function sld(id) { 984 show_lab_box = true; 985 var obj = document.getElementById('la' + id); 986 var info_box = document.getElementById('label_details'); 987 if (!info_box) { 988 info_box = document.createElement('div'); 989 info_box.id = 'label_details'; 990 info_box.className = 'hide'; 991 info_box.innerHTML = '<table class="stretch_label">\ 992<tr><td class="sl1"></td><td class="sl2"></td><td class="sl3"></td></tr>\ 993<tr><td class="sl4"></td><td class="sl5"><div id="label_text"></div></td><td class="sl6"></td></tr>\ 994<tr><td class="sl7"></td><td class="sl8"></td><td class="sl9"></td></tr>\ 995</table>'; 996 } 997 obj.parentNode.appendChild(info_box); 998 info_box.style.left = Math.round(parseInt(obj.offsetLeft) + 14) + 'px'; 999 info_box.style.top = Math.round(parseInt(obj.offsetTop) - 17) + 'px'; 1000 1001 document.getElementById('label_text').innerHTML = document.getElementById('ld' + id).innerHTML; 1002 info_box.className = ''; 1003} 1004 1005function hld() { 1006 show_lab_box = false; 1007 setTimeout(function () { 1008 if (!show_lab_box) { 1009 var label_details = document.getElementById('label_details'); 1010 if (label_details) label_details.className = 'hide'; 1011 } 1012 }, 100); 1013} 1014 1015function std(id) { 1016 show_two_box = true; 1017 var obj = document.getElementById('eb' + id); 1018 var info_box = document.getElementById('twostep_details'); 1019 if (!info_box) { 1020 info_box = document.createElement('div'); 1021 info_box.id = 'twostep_details'; 1022 info_box.className = 'hide'; 1023 info_box.innerHTML = '<div id="twostep_text"></div><div class="inner"></div>'; 1024 } 1025 document.body.appendChild(info_box); 1026 1027 var x = 0, y = 0; 1028 while (obj) { 1029 x += parseInt(obj.offsetLeft); 1030 y += parseInt(obj.offsetTop); 1031 1032 obj = obj.offsetParent; 1033 } 1034 info_box.style.left = Math.round(x - 153) + 'px'; 1035 info_box.style.top = Math.round(y + 14) + 'px'; 1036 1037 document.getElementById('twostep_text').innerHTML = document.getElementById('ed' + id).innerHTML; 1038 info_box.className = ''; 1039} 1040 1041function htd() {
1042 show_two_box = false; 1043 setTimeout(function () { 1044 if (!show_two_box) document.getElementById('twostep_details').className = 'hide'; 1045 }, 100); 1046} 1047 1048function reset_calc_timer() { 1049 if (calc_timer != 0) { 1050 clearTimeout(calc_timer); 1051 calc_timer = 0; 1052 } 1053} 1054 1055function calcChange(obj) { 1056 eval('calc_' + obj.name + ' = \'' + obj.value.replace(/[^0-9.,]/g, '') + '\''); 1057 //if (!calc_type) calc_type = obj.name; 1058 reset_calc_timer(); 1059 calc_timer = setTimeout(function () { 1060 update_rates(); 1061 }, 1500); 1062} 1063 1064function calcKeyPress(obj, event) { 1065 var evt = event || window.event; 1066 var keycode = evt.keyCode || evt.which; 1067 if (keycode == 13) { 1068 calcChange(obj); 1069 update_rates(); 1070 return false; 1071 } 1072} 1073 1074function setCalcFocus() { 1075 obj = document.getElementById('give'); 1076 if (!isHidden(obj)) { 1077 setFocus(obj); 1078 calc_type = 'give'; 1079 sort_manual = false; 1080 } else { 1081 obj = document.getElementById('get'); 1082 if (!isHidden(obj)) { 1083 setFocus(obj); 1084 calc_type = 'get'; 1085 sort_manual = false; 1086 } 1087 } 1088} 1089 1090function setCalcType(type) { 1091 document.getElementById('type' + type).checked = true; 1092 nodeById('givefield').className = type == 'give' ? '' : 'hide'; 1093 nodeById('getfield').className = type == 'get' ? '' : 'hide'; 1094 sort_manual = false; 1095 sort_type = type == 'give' ? 'to' : 'from'; 1096 sort_range = type == 'give' ? 'desc' : 'asc'; 1097 setCalcFocus(); 1098 reset_calc_timer(); 1099} 1100 1101function setNotifyFocus(to_address_only) { 1102 var notify_address_el = document.getElementById('notify_address'); 1103 if (to_address_only || !notify_address_el.value) { 1104 setFocus(notify_address_el); 1105 } else { 1106 setFocus(document.getElementById('notify_rate')); 1107 } 1108} 1109 1110function reset_reload_update_timer() { 1111 if (reload_update_timer != 0) { 1112 clearTimeout(reload_update_timer); 1113 reload_update_timer = 0; 1114 } 1115} 1116 1117function abort_update_rates(calc_button, sets_button) { 1118 reset_reload_update_timer(); 1119 if (update_request !== false) { 1120 update_request.onreadystatechange = function() { 1121 return true; 1122 }; 1123 if (update_request.abort) update_request.abort(); 1124 update_request = false; 1125 } 1126 change_upd_img('hide'); 1127 if (calc_button) calc_button.disabled = false; 1128 if (sets_button) sets_button.disabled = false; 1129} 1130 1131function update_rates(success_callback) { 1132 reset_calc_timer(); 1133 1134 var calc_button = document.getElementById('calc_button'); 1135 var sets_button = document.getElementById('sets_button'); 1136 1137 last_update = Date.now(); 1138 if (update_request) abort_update_rates(calc_button, sets_button); 1139 1140 if (is_leave_page) return; 1141 1142 update_request = createRequest(); 1143 if (update_request) { 1144 change_upd_img('', '/images/ajax.png'); 1145 if (calc_button) calc_button.disabled = true; 1146 if (sets_button) sets_button.disabled = true; 1147 reload_update_timer = setTimeout(function() { 1148 abort_update_rates(calc_button, sets_button); 1149 error_upd_img(); 1150 }, 25000); 1151 1152 update_request.onreadystatechange = function() { 1153 if (update_request.readyState != 4) return; 1154 reset_reload_update_timer(); 1155 if (update_request.status == 200) { 1156 var results = update_request.responseText.split('[delimiter]'); 1157 if (results.length >= 4 && (results[0].indexOf('content_table') || results[0].indexOf('content_norates'))) { 1158 document.getElementById('rates_block').innerHTML = results[0]; 1159 document.getElementById('headinfo').innerHTML = results[1]; 1160 set_local_dates(); 1161 var undertable = document.getElementById('undertable'); 1162 if (undertable) undertable.innerHTML = results[2]; 1163 var old_ds_list = ds_list; 1164 eval(results[3]); 1165 if (!objectsAreSame(ds_list, old_ds_list)) { 1166 window.location.reload(true); 1167 } 1168 if (ct == 'tab') { 1169 if (lc_curr > 0) mark_unav(lc_curr, 'lc'); 1170 if (rc_curr > 0) mark_unav(rc_curr, 'rc'); 1171 if (lc_searched) search_cy('lc'); 1172 if (rc_searched) search_cy('rc'); 1173 } else if (ct == 'list') { 1174 if (lc_curr > 0) sel_change('lc', false); 1175 if (rc_curr > 0) sel_change('rc', false); 1176 } 1177 is_calc_rates = ud_page == 'rates' && calc_type != '' && (calc_give != '' || calc_get != ''); 1178 is_twostep_rates = ud_page == 'rates' && mt == 'twostep'; 1179 1180 if (is_twostep_rates && twostep_rate_id_old > 0 && twostep_rate_id_old != twostep_rate_id_next) { 1181 addClass(document.getElementById('dr' + twostep_rate_id_old), 'hide'); 1182 removeClass(document.getElementById('tsl' + twostep_rate_id_old), 'tsa'); 1183 if (twostep_rate_id_next > 0) { 1184 removeClass(document.getElementById('dr' + twostep_rate_id_next), 'hide'); 1185 addClass(document.getElementById('tsl' + twostep_rate_id_next), 'tsa'); 1186 } 1187 } 1188 if (mt == 'stats') update_stats(); 1189 1190 if (results[4] !== null) document.title = results[4]; 1191 if (results[6] !== null) { 1192 //var small_text_cont = document.getElementById('small_text'); 1193 //if (small_text_cont != null) small_text_cont.innerHTML = results[6]; 1194 } 1195 if (results[7] !== null) { 1196 //var big_text_cont = document.getElementById('big_text'); 1197 //if (big_text_cont != null) big_text_cont.innerHTML = results[7]; 1198 } 1199 } else { 1200 error_upd_img(); 1201 } 1202 if (typeof success_callback == 'function') success_callback(); 1203 } else { 1204 error_upd_img(); 1205 } 1206 if (calc_button) calc_button.disabled = false;
1207 if (sets_button) sets_button.disabled = false; 1208 update_request = false; 1209 update_runner(); 1210 } 1211 1212 var data = 'action=getrates&page=' + (mt == 'twostep' ? mt : ud_page); 1213 if (ud_page == 'rates') { 1214 data += '&from=' + lc_curr + '&to=' + rc_curr + '&city=' + city + '&type=' + calc_type + '&give=' + encodeURIComponent(calc_give) + '&get=' + encodeURIComponent(calc_get) + '&light=' + light_id; 1215 } 1216 if (ud_page == 'list' || ud_page == 'rates') data += '&sort=' + sort_type + '&range=' + sort_range + '&sortm=' + (sort_manual ? '1' : '0'); 1217 data += '&tsid=' + twostep_rate_id_next; 1218 1219 sendRequest(update_request, data, function () { 1220 reset_reload_update_timer(); 1221 error_upd_img(); 1222 if (calc_button) calc_button.disabled = false; 1223 if (sets_button) sets_button.disabled = false; 1224 update_request = false; 1225 }); 1226 } 1227 return false; 1228} 1229 1230function update_runner() { 1231 if (permanent_update_timer != 0) { 1232 clearTimeout(permanent_update_timer); 1233 permanent_update_timer = 0; 1234 } 1235 if (ud == 0) return; 1236 1237 permanent_update_timer = setTimeout(function () { 1238 if (page_active) { 1239 update_rates(); 1240 } else { 1241 update_runner(); 1242 change_upd_img('', '/images/update.png'); 1243 } 1244 }, ud * 15000); 1245} 1246 1247eventPush(window, 'beforeunload', function () { 1248 is_leave_page = true; 1249 if (permanent_update_timer != 0) { 1250 clearTimeout(permanent_update_timer); 1251 permanent_update_timer = 0; 1252 } 1253}); 1254 1255function track_page() { 1256 if (Date.now() - page_tracked < 3600 * 1000) return; 1257 page_tracked = Date.now(); 1258 1259 var req = createRequest(); 1260 if (req) { 1261 var ajax_timer = setTimeout(function() { 1262 req.abort(); 1263 req.onreadystatechange = function() { 1264 return true; 1265 }; 1266 }, 5000); 1267 req.onreadystatechange = function() { 1268 if (req.readyState != 4) return; 1269 clearTimeout(ajax_timer); 1270 } 1271 sendRequest(req, 'action=track'); 1272 } 1273} 1274 1275function restart_stop_timer() { 1276 clearTimeout(page_active_timer); 1277 page_active_timer = setTimeout(function () { 1278 page_active = false; 1279 }, 55000); 1280} 1281
1282function activate_page() { 1283 page_active = true; 1284 if (ud > 0 && Date.now() - last_update > ud * 15000) update_rates(); 1285} 1286 1287activate_page(); 1288restart_stop_timer(); 1289 1290window.onfocus = function () { 1291 if (!page_active) activate_page(); 1292 restart_stop_timer(); 1293}; 1294window.onmousemove = function () { 1295 if (!last_mouse_move || Date.now() - last_mouse_move > 500) { 1296 if (!page_active) activate_page(); 1297 restart_stop_timer(); 1298 last_mouse_move = Date.now(); 1299 } 1300 track_page(); 1301}; 1302window.onkeydown = function () { 1303 if (!page_active) activate_page(); 1304 restart_stop_timer(); 1305 track_page(); 1306}; 1307if ('ontouchstart' in document.documentElement) eventPush(document, 'touchstart', function () { 1308 if (!page_active) activate_page(); 1309 restart_stop_timer(); 1310 track_page(); 1311}); 1312if ('onwheel' in document.documentElement) eventPush(document, 'wheel', function () { 1313 if (!page_active) activate_page(); 1314 restart_stop_timer(); 1315 track_page(); 1316}); 1317window.onblur = function () { 1318 page_active = false; 1319 clearTimeout(page_active_timer); 1320}; 1321 1322function check_telegram_link() { 1323 var telegram_status = nodeById('telegram_status'); 1324 telegram_status.innerHTML = '<img src="/images/ajax.png" width="16" height="16" alt= />'; 1325 telegram_status.style.display = 'inline-block'; 1326 var req = createRequest(); 1327 if (req) { 1328 var ajax_timer = setTimeout(function() { 1329 req.abort(); 1330 req.onreadystatechange = function() { 1331 return true; 1332 }; 1333 telegram_status.style.display = 'none'; 1334 }, 5000); 1335 1336 req.onreadystatechange = function() { 1337 if (req.readyState != 4) return; 1338 clearTimeout(ajax_timer); 1339 if (req.status == 200) { 1340 var results = req.responseText.split('[delimiter]'); 1341 if (results.length == 2) { 1342 if (results[0] == 'OK') { 1343 var re = new RegExp('([0-9]+)-(.+)'); 1344 var found = results[1].match(re); 1345 if (found[1] && found[2]) { 1346 var notify_address = nodeById('notify_address'); 1347 notify_address.value = found[2]; 1348 notify_address.lang = found[1]; 1349 notify_address.title = lang['notify_tg_linked']; 1350 def_telegram = results[1]; 1351 setCookie('telegram', results[1]); 1352 } 1353 stop_tglink_checking(); 1354 } 1355 } 1356 } 1357 telegram_status.style.display = 'none'; 1358 } 1359 sendRequest(req, 'action=tglink', function () { 1360 telegram_status.style.display = 'none'; 1361 }); 1362 } 1363 return false; 1364} 1365 1366function start_tglink_checking() { 1367 tglink_check_count++; 1368 if (!tglink_checking || tglink_check_count > 100) { 1369 stop_tglink_checking(); 1370 return; 1371 } 1372 setTimeout(function () { 1373 if (tglink_checking) { 1374 check_telegram_link(); 1375 start_tglink_checking(); 1376 } 1377 }, 6000); 1378} 1379 1380function stop_tglink_checking() { 1381 tglink_checking = false; 1382 window.onfocus = null; 1383 window.onblur = null; 1384 window.onmousemove = null; 1385} 1386 1387function notify_address_click(id) { 1388 if (nodeById('notify_type').value != 'telegram') return; 1389 1390 stop_tglink_checking(); 1391 1392 page_active = true; 1393 tglink_checking = true; 1394 tglink_check_count = 0; 1395 1396 window.onfocus = function () { 1397 if (!tglink_checking) { 1398 stop_tglink_checking(); 1399 } else { 1400 if (!page_active) check_telegram_link(); 1401 page_active = true; 1402 } 1403 }; 1404 window.onblur = function () { 1405 if (!tglink_checking) { 1406 stop_tglink_checking(); 1407 } else { 1408 page_active = false; 1409 } 1410 }; 1411 window.onmousemove = function () { 1412 if (!page_active) { 1413 if (!tglink_checking) { 1414 stop_tglink_checking(); 1415 } else { 1416 page_active = true; 1417 check_telegram_link(); 1418 } 1419 } 1420 }; 1421 1422 openDocument('tg://resolve?domain=bestchange_bot&start=n-' + lang['id'] + '-' + id, true); 1423 start_tglink_checking(); 1424} 1425 1426function change_notify_type() { 1427 var notify_type = nodeById('notify_type'); 1428 var notify_address = nodeById('notify_address'); 1429 1430 if (notify_type.value == 'telegram') { 1431 var re = new RegExp('([0-9]+)-(.+)'); 1432 var found = def_telegram.match(re); 1433 if (found) { 1434 notify_address.value = found[2]; 1435 notify_address.lang = found[1]; 1436 notify_address.title = lang['notify_tg_linked']; 1437 } else { 1438 notify_address.value = lang['notify_tg_link']; 1439 notify_address.lang = ''; 1440 notify_address.title = lang['notify_tg_howto_link']; 1441 } 1442 notify_address.readOnly = true; 1443 addClass(notify_address, 'telegram'); 1444 } else { 1445 notify_address.value = ''; 1446 notify_address.lang = ''; 1447 notify_address.readOnly = false;
1448 removeClass(notify_address, 'telegram'); 1449 notify_address.title = ''; 1450 } 1451 1452 if (notify_type.value == 'email' && def_email) { 1453 notify_address.value = def_email; 1454 } else if (notify_type.value == 'wmid' && def_wmid) { 1455 notify_address.value = def_wmid; 1456 } 1457 setNotifyFocus(true); 1458} 1459 1460function send_notify_request(token) { 1461 var notify_type = nodeById('notify_type').value; 1462 var notify_address = nodeById('notify_address').value; 1463 var notify_rate = nodeById('notify_rate').value; 1464 var notify_reserve = nodeById('notify_reserve').value; 1465 var notify_close = nodeById('notify_close').value; 1466 var notify_button = nodeById('notify_button'); 1467 setCookie('notify_type', notify_type); 1468 if (notify_type == 'telegram') { 1469 notify_address = nodeById('notify_address').lang; 1470 } else { 1471 setCookie(notify_type, notify_address); 1472 } 1473 setCookie('notify_close', notify_close); 1474 1475 var req = createRequest(); 1476 if (req) { 1477 notify_button.disabled = true; 1478 var ajax_timer = setTimeout(function() { 1479 req.abort(); 1480 req.onreadystatechange = function() { 1481 return true; 1482 }; 1483 set_status('notify', lang['str_fail_serv'], 'error.png'); 1484 notify_button.disabled = false; 1485 }, 25000); 1486 set_status('notify', lang['notify_send'], 'ajax.png', true); 1487 1488 req.onreadystatechange = function() { 1489 if (req.readyState != 4) return; 1490 clearTimeout(ajax_timer); 1491 if (req.status == 200) { 1492 var results = req.responseText.split('[delimiter]'); 1493 if (results.length == 2) { 1494 if (results[0] == 'OK') { 1495 set_status('notify', lang['notify_success'], 'ok.png'); 1496 alert(results[1]); 1497 } else if (results[0] == 'ERROR') { 1498 set_status('notify', lang['notify_error'], 'error.png'); 1499 alert(lang['notify_error_det'] + ':\n' + results[1]); 1500 } else { 1501 set_status('notify', lang['notify_fail'], 'error.png'); 1502 } 1503 } else { 1504 set_status('notify', lang['notify_fail'], 'error.png'); 1505 } 1506 } else { 1507 set_status('notify', lang['notify_fail_serv'], 'error.png'); 1508 } 1509 notify_button.disabled = false; 1510 } 1511 1512 sendRequest(req, 'action=newnotify&from=' + lc_curr + '&to=' + rc_curr + '&city=' + city + '&type=' + notify_type + '&address=' + encodeURIComponent(notify_address) + '&rate=' + encodeURIComponent(notify_rate) + '&by_from_id=' + byfrom + '&reserve=' + encodeURIComponent(notify_reserve) + '&close=' + notify_close + '&captcha=' + token, function () { 1513 set_status('notify', lang['str_fail_con'], 'error.png'); 1514 notify_button.disabled = false; 1515 }); 1516 } 1517 1518 if (typeof gtag == 'function') { 1519 gtag('event', 'request', { 1520 'event_category': 'notify' 1521 }); 1522 } 1523 return false; 1524} 1525 1526function submit_notify_request() { 1527 var send_button = document.getElementById('notify_button'); 1528 send_button.disabled = true; 1529 set_status('notify', lang['info_review_check'], 'ajax.png', true); 1530 1531 recaptcha_check('newnotify', function (token) { 1532 send_button.disabled = false; 1533 send_notify_request(token); 1534 }, function () { 1535 send_button.disabled = false; 1536 set_status('notify', lang['str_fail_err'], 'error.png'); 1537 }); 1538 return false; 1539} 1540 1541function chart_update_complete(success) { 1542 if (success) { 1543 document.getElementById('chartcanvas').className = 'chart'; 1544 chart_time = new Date(); 1545 chart_unsuccessful = 0; 1546 } else { 1547 chart_unsuccessful++; 1548 } 1549 update_stats(); 1550} 1551 1552function update_stats(forcibly) { 1553 var stats_button = document.getElementById('stats_button'); 1554 if (!stats_button) return; 1555 stats_button.disabled = false; 1556 if (!forcibly && (chart_update_stop || chart_unsuccessful >= 3)) { 1557 chart_unsuccessful = 0; 1558 return; 1559 } 1560 var chartcanvas = document.getElementById('chartcanvas'); 1561 if (forcibly || chartcanvas.className == 'waitchart' || new Date() - chart_time > 2 * 60 * 1000) { 1562 stats_button.disabled = true; 1563 chartcanvas.className = 'waitchart'; 1564 1565 var stats_type = document.getElementById('stats_type').value; 1566 var stats_interval = document.getElementById('stats_interval').value; 1567 var chart_url = '/chart.php?type=' + stats_type + '&ci=' + stats_interval; 1568 if (ud_page == 'rates') chart_url += '&from=' + lc_curr + '&to=' + rc_curr; 1569 chart_url += '&rnd=' + Math.random() + '&session=' + session_params; 1570 1571 chartcanvas.innerHTML = '<div class="waitborder"></div>
1571 <img src="/images/ajax-big.gif" class="waitimg" alt="' + lang['str_ajax_title'] + '" /> <img src="' + chart_url + '" class="chartimg" onload="chart_update_complete(true)" onerror="chart_update_complete(false)" />'; 1572 } 1573 return false; 1574} 1575 1576function wishesFocus(is_active) { 1577 var suggesttext = document.getElementById('suggesttext'); 1578 if (suggesttext) { 1579 if (is_active) { 1580 if (wishes_default_text == '') wishes_default_text = suggesttext.value; 1581 if (suggesttext.value == wishes_default_text) suggesttext.value = ''; 1582 suggesttext.className = 'wishesenable'; 1583 } else { 1584 if (suggesttext.value == '') { 1585 suggesttext.value = wishes_default_text; 1586 suggesttext.className = 'wishesdisable'; 1587 } 1588 } 1589 } 1590} 1591 1592function send_email(email_type) { 1593 var textfield = nodeById(email_type + 'text'); 1594 var text = ''; 1595 var name = ''; 1596 var email = ''; 1597 var type = ''; 1598 var exchid = 0; 1599 var last_exchid = 0; 1600 var order = ''; 1601 var last_order = ''; 1602 var phone = ''; 1603 var address = ''; 1604 var blog_type = 0; 1605 var blog_theme = 0; 1606 var blog_size = 0; 1607 if (textfield.value && (email_type == 'contact' || email_type == 'blogger' || (email_type == 'suggest' && wishes_default_text && textfield.value != wishes_default_text))) { 1608 text = textfield.value; 1609 if (email_type == 'contact') { 1610 name = nodeById('contactname').value; 1611 email = nodeById('contactemail').value; 1612 type = nodeById('type').value; 1613 exchid = nodeById('exch').value; 1614 order = nodeById('order').value; 1615 phone = nodeById('phone').value; 1616 address = nodeById('address').value; 1617 } else if (email_type == 'suggest') { 1618 type = 20; 1619 } else if (email_type == 'blogger') { 1620 type = 21; 1621 name = nodeById('bloggername').value; 1622 email = nodeById('bloggeremail').value; 1623 blog_type = nodeById('blog_type').value; 1624 blog_theme = nodeById('blog_theme').value; 1625 blog_size = nodeById('blog_size').value; 1626 address = nodeById('blog_link').value; 1627 } 1628 } else { 1629 set_status(email_type, lang['contact_err_text'], 'error.png'); 1630 if (email_type == 'contact' || email_type == 'blogger') setFocus(textfield); 1631 } 1632 1633 var req = createRequest(); 1634 if (req && text) { 1635 var send_button = document.getElementById(email_type + '_button'); 1636 send_button.disabled = true; 1637 1638 if (text) { 1639 if (name) { 1640 setCookie('name', name); 1641 } else { 1642 name = getCookie('name'); 1643 } 1644 if (email) { 1645 setCookie('email', email); 1646 } else { 1647 email = getCookie('email'); 1648 if (!email && email_type == 'suggest') { 1649 var email_request = prompt(lang['contact_email_request']); 1650 if (email_request != null) { 1651 email = email_request; 1652 setCookie('email', email); 1653 } 1654 } 1655 } 1656 if (exchid) { 1657 setCookie('exchid', exchid); 1658 } else { 1659 last_exchid = getCookie('exchid'); 1660 } 1661 if (order) { 1662 setCookie('order', order); 1663 } else { 1664 last_order = getCookie('order'); 1665 } 1666 if (phone) { 1667 setCookie('phone', phone); 1668 } else { 1669 phone = getCookie('phone'); 1670 } 1671 if (address) { 1672 setCookie('website', address); 1673 } else { 1674 address = getCookie('website'); 1675 } 1676 1677 if (email_type == 'contact' && !document.getElementById('agree').checked) { 1678 set_status(email_type, lang['contact_agree_need'], 'error.png'); 1679 send_button.disabled = false; 1680 return false; 1681 } 1682 if (email_type == 'contact' && !email && !confirm(lang['contact_noemail'])) { 1683 setFocus(document.getElementById('contactemail')); 1684 send_button.disabled = false; 1685 return false; 1686 } 1687 var unklang = /[^\u0000-\u00FF\u0400-\u04FF\u2000-\u2BFF]/i.test(text); 1688 if (unklang && !confirm(lang['contact_unklang'])) { 1689 setFocus(textfield); 1690 send_button.disabled = false; 1691 return false; 1692 } 1693 if (email_type == 'blogger' && !document.getElementById('user_agree1').checked) { 1694 set_status(email_type, lang['blogger_agr1_need'], 'error.png'); 1695 send_button.disabled = false;
1696 return false; 1697 } 1698 if (email_type == 'blogger' && !document.getElementById('user_agree2').checked) { 1699 set_status(email_type, lang['contact_agree_need'], 'error.png'); 1700 send_button.disabled = false; 1701 return false; 1702 } 1703 1704 var dataquery = '&text=' + encodeURIComponent(text); 1705 if (name) dataquery += '&name=' + encodeURIComponent(name); 1706 if (email) dataquery += '&email=' + encodeURIComponent(email); 1707 1708 if (type) dataquery += '&type=' + encodeURIComponent(type); 1709 if (exchid) dataquery += '&exchid=' + encodeURIComponent(exchid); 1710 if (last_exchid) dataquery += '&last_exchid=' + encodeURIComponent(last_exchid); 1711 if (order) dataquery += '&order=' + encodeURIComponent(order); 1712 if (last_order) dataquery += '&last_order=' + encodeURIComponent(last_order); 1713 if (phone) dataquery += '&phone=' + encodeURIComponent(phone); 1714 if (address) dataquery += '&address=' + encodeURIComponent(address); 1715 if (blog_type) dataquery += '&blog_type=' + encodeURIComponent(blog_type); 1716 if (blog_theme) dataquery += '&blog_theme=' + encodeURIComponent(blog_theme); 1717 if (blog_size) dataquery += '&blog_size=' + encodeURIComponent(blog_size); 1718 1719 if (email_type == 'suggest') dataquery += '&tsid=' + encodeURIComponent(document.location.href); 1720 } 1721 1722 var ajax_timer = setTimeout(function() { 1723 req.abort(); 1724 req.onreadystatechange = function() { 1725 return true; 1726 }; 1727 set_status(email_type, lang['str_fail_serv'], 'error.png'); 1728 send_button.disabled = false; 1729 }, 25000); 1730 set_status(email_type, lang['contact_send'], 'ajax.png', true); 1731 1732 req.onreadystatechange = function() { 1733 if (req.readyState != 4) return; 1734 clearTimeout(ajax_timer); 1735 if (req.status == 200) { 1736 if (req.responseText == 'OK') { 1737 set_status(email_type, lang['contact_success'], 'ok.png'); 1738 if (email_type == 'suggest') { 1739 textfield.value = wishes_default_text; 1740 textfield.className = 'wishesdisable'; 1741 } else if (email_type == 'contact') { 1742 textfield.value = ''; 1743 } 1744 } else { 1745 set_status(email_type, lang['contact_fail'], 'error.png'); 1746 } 1747 } else { 1748 set_status(email_type, lang['str_fail_err'], 'error.png'); 1749 } 1750 send_button.disabled = false; 1751 } 1752 1753 sendRequest(req, 'action=newemail&' + dataquery, function () { 1754 set_status(email_type, lang['str_fail_con'], 'error.png'); 1755 send_button.disabled = false; 1756 }); 1757 } 1758 return false; 1759} 1760 1761function show_addform(locate, name, u, t) { 1762 var content = ''; 1763 show_add_name = name == show_add_name ? '' : name; 1764 1765 if (show_add_name == 'social') { 1766 var social_data = new Array( 1767 'facebook.com', 'share.php?u={u}', lang['addto_soc_facebook'], 1768 'twitter.com', 'home?status={t} {u}', lang['addto_soc_twitter'], 1769 'google.com', 'bookmarks/mark?op=edit&bkmk={u}&title={t}', lang['addto_soc_google'], 1770 'vk.com', 'share.php?url={u}', lang['addto_soc_vkontakte'], 1771 'zakladki.yandex.ru', 'userarea/links/addfromfav.asp?bAddLink_x=1&lurl={u}&lname={t}', lang['addto_soc_yandex'] 1772 ); 1773 u = encodeURIComponent(u); 1774 t = encodeURIComponent(t); 1775 for (var i = 0; i < social_data.length; i += 3) content += '<a target="_blank" href="http://' + social_data[i] + '/' + social_data[i + 1].replace('{u}', u).replace('{t}', t) + '" title="' + lang['addto_title'] + ' ' + social_data[i + 2] + '"><img src="/images/social/' + social_data[i] + '.png" width="16" height="16" alt="' + social_data[i + 2] + '" /></a>'; 1776 } else if (show_add_name == 'forum') { 1777 content = '<textarea id="pagesavetext" onclick="this.select()">[url="' + u + '"]' + t + '[/url]</textarea>'; 1778 } else if (show_add_name == 'site') { 1779 content = '<textarea id="pagesavetext" onclick="this.select()"><a target="_blank" href="' + u + '">' + t + '</a></textarea>'; 1780 } 1781 document.getElementById(locate).innerHTML = content; 1782 setFocus(document.getElementById('pagesavetext')); 1783} 1784 1785function show_pagesave(url, title) {
1786 //document.write('<hr align="left" /><div class="pagesavelinks"></div>'); 1787} 1788 1789function disable_bonus_button() { 1790 document.getElementById('bonus_button').disabled = bonus_button_disabled; 1791} 1792 1793var bonus_last_time = getCookie('bonus_last_time'); 1794var bonus_timer_count = 0; 1795var bonus_button_disabled = false; 1796function start_bonus_timer() { 1797 var bonus_button = document.getElementById('bonus_button'); 1798 if (!bonus_button || !bonus_last_time || parseInt(bonus_last_time) > Math.floor(new Date() / 1000)) return; 1799 var left = parseInt(bonus_last_time) + 3600 - Math.floor(new Date() / 1000); 1800 if (left <= 0) { 1801 bonus_button.value = lang['bonus_button']; 1802 //bonus_button.disabled = false; 1803 bonus_button_disabled = false; 1804 disable_bonus_button(); 1805 clearTimeout(bonus_captcha_timer); 1806 if (typeof hcaptcha != 'undefined') hcaptcha.reset(bonus_captcha); 1807 document.getElementById('bonus_captcha_title').innerHTML = lang['aff_main_captcha']; 1808 if (bonus_timer_count > 5 && !page_active) { 1809 var sound = new Audio(); 1810 sound.src = '/images/notify.mp3'; 1811 sound.autoplay = true; 1812 bonus_timer_count = 0; 1813 } 1814 return; 1815 } 1816 var left_hours = Math.floor(left / 3600); 1817 var left_mins = Math.floor((left - (left_hours * 3600)) / 60); 1818 var left_sec = left - left_hours * 3600 - left_mins * 60; 1819 bonus_button.value = lang['bonus_button_left'] + ' ' + (left_hours ? (left_hours < 10 ? '0' : '') + left_hours + ':' : '') + (left_mins < 10 ? '0' : '') + left_mins + ':' + (left_sec < 10 ? '0' : '') + left_sec; 1820 //bonus_button.disabled = true; 1821 bonus_button_disabled = true; 1822 disable_bonus_button(); 1823 setTimeout(function () { 1824 start_bonus_timer(); 1825 bonus_timer_count++; 1826 }, 1000); 1827} 1828 1829eventPush(window, 'load', function () { 1830 is_page_loaded = true; 1831 start_bonus_timer(); 1832}); 1833 1834function activate_bonus_captcha() { 1835 setTimeout(function() { 1836 removeClass(document.getElementById('bonus_captcha'), 'hide'); 1837 //document.getElementById('bonus_button').disabled = false; 1838 //bonus_button_disabled = false; 1839 disable_bonus_button(); 1840 }, 200); 1841} 1842 1843var captcha_callback = function() { 1844 var hl = /ar|iw/i.test(navigator.browserLanguage || navigator.language || navigator.userLanguage) ? 'en' : ''; 1845 var bonus_captcha_obj = document.getElementById('bonus_captcha'); 1846 if (bonus_captcha_obj) { 1847 bonus_captcha = hcaptcha.render(bonus_captcha_obj, { 1848 'sitekey': '96698d85-c7f5-46b2-a9b8-8a2d6c7ec963', 1849 'hl': hl, 1850 'callback': function () { 1851 document.getElementById('bonus_captcha_title').innerHTML = lang['aff_main_captcha_suc']; 1852 bonus_captcha_timer = setTimeout(function() { 1853 hcaptcha.reset(bonus_captcha); 1854 document.getElementById('bonus_captcha_title').innerHTML = lang['aff_main_captcha']; 1855 }, 100000); 1856 } 1857 }); 1858 if (is_page_loaded) { 1859 activate_bonus_captcha(); 1860 } else { 1861 eventPush(window, 'load', function () { 1862 activate_bonus_captcha(); 1863 }); 1864 eventPush(window, 'abort', function () { 1865 activate_bonus_captcha(); 1866 }); 1867 } 1868 } 1869 1870 var invisible_captcha_obj = document.getElementById('invisible_captcha'); 1871 if (invisible_captcha_obj) invisible_captcha = hcaptcha.render(invisible_captcha_obj, { 1872 'sitekey': '4c06fe16-39f9-484a-b4f1-b4d94bf0fa01', 1873 'hl': hl, 1874 'callback': function () { 1875 if (typeof invisible_captcha_callback == 'function') invisible_captcha_callback(hcaptcha.getResponse(invisible_captcha)); 1876 }, 1877 'close-callback': function () { 1878 if (typeof invisible_captcha_close_callback == 'function') invisible_captcha_close_callback(); 1879 }, 1880 'size': 'invisible' 1881 }); 1882}; 1883 1884function set_bonus_status(content, status, filename) { 1885 var bonus_result = document.getElementById('bonus_result'); 1886 var status_content = '<p><span id="bonus_img"></span> <span id="bonus_status"></span></p>'; 1887 if (content) { 1888 status_content += content; 1889 } else { 1890 status_content = '<div style="text-align: center; padding-top: ' + (bonus_result.offsetHeight / 2 - 10) + 'px">' + status_content + '</div>'; 1891 } 1892 bonus_result.innerHTML = status_content; 1893 set_status('bonus', status, filename, content != ''); 1894} 1895 1896function get_bonus() { 1897 if (isFramed()) { 1898 alert(lang['bonus_frame']); 1899 return; 1900 } 1901 var bonus_purse = document.getElementById('bonus_purse'); 1902 var bonus_result = document.getElementById('bonus_result'); 1903 var bonus_form = document.getElementById('bonus_form'); 1904 if (bonus_purse.value) setCookie('bonus_purse', bonus_purse.value); 1905 1906 var req = createRequest(); 1907 if (req) { 1908 var width = bonus_form.offsetWidth; 1909 var height = bonus_form.offsetHeight; 1910 1911 bonus_result.style.width = width + 'px'; 1912 bonus_result.style.height = height + 'px'; 1913 addClass(bonus_form, 'hide'); 1914 removeClass(bonus_result, 'hide'); 1915 1916 bonus_result.innerHTML = '<img src="/images/ajax-big.gif" width="48" height="48" style="padding: ' + (height / 2 - 28) + 'px 0 0 ' + (width / 2 - 24) + 'px" alt="' + lang['
1916str_ajax_title'] + '" />'; 1917 clearTimeout(bonus_captcha_timer); 1918 1919 var ajax_timer = setTimeout(function() { 1920 req.abort(); 1921 req.onreadystatechange = function() { 1922 return true; 1923 }; 1924 set_bonus_status('', lang['str_fail_serv'], 'error.png'); 1925 document.getElementById('bonus_captcha_title').innerHTML = lang['aff_main_captcha']; 1926 hcaptcha.reset(bonus_captcha); 1927 }, 25000); 1928 1929 req.onreadystatechange = function() { 1930 if (req.readyState != 4) return; 1931 clearTimeout(ajax_timer); 1932 if (req.status == 200) { 1933 var results = req.responseText.split('[delimiter]'); 1934 if (results.length == 6) { 1935 if (results[0] == 'OK') { 1936 set_bonus_status(results[5] + lang['bonus_ok_desc'] + '<input type="button" class="button" value="' + lang['bonus_thanks'] + '" onclick="open_bonus_form()" />', results[1], 'ok.png'); 1937 bonus_result.style.height = 'auto'; 1938 bonus_last_time = Math.floor(new Date() / 1000); 1939 setCookie('bonus_last_time', bonus_last_time); 1940 if (results[4] == '1') load_overlay('addrmsg'); 1941 } else if (results[0] == 'ERROR') { 1942 set_bonus_status('', results[1], 'error.png'); 1943 } else { 1944 set_bonus_status('', lang['str_fail_err'], 'error.png'); 1945 } 1946 document.getElementById('bonus_captcha_title').innerHTML = lang['aff_main_captcha']; 1947 hcaptcha.reset(bonus_captcha); 1948 document.getElementById('bonus_stats').innerHTML = results[2]; 1949 if (results[3] == 'purse') setFocus(bonus_purse); 1950 } else { 1951 set_bonus_status('', lang['str_fail_err'], 'error.png'); 1952 } 1953 } else { 1954 set_bonus_status('', lang['str_fail_serv'], 'error.png'); 1955 } 1956 } 1957 1958 sendRequest(req, 'action=getbonus&address=' + encodeURIComponent(bonus_purse.value) + '&captcha=' + encodeURIComponent(hcaptcha.getResponse(bonus_captcha)), function () { 1959 set_bonus_status('', lang['str_fail_con'], 'error.png'); 1960 }); 1961 } 1962 1963 if (typeof gtag == 'function') { 1964 gtag('event', 'claim', { 1965 'event_category': 'bonus' 1966 }); 1967 } 1968 return false; 1969} 1970 1971function open_bonus_form() { 1972 addClass(nodeById('bonus_result'), 'hide'); 1973 removeClass(nodeById('bonus_form'), 'hide'); 1974 start_bonus_timer(); 1975} 1976 1977function bonusKeyPress(obj) { 1978 var evt = event || window.event; 1979 if ((evt.keyCode || evt.which) == 13) { 1980 get_bonus(); 1981 return false; 1982 } 1983} 1984 1985function faucet_order(address) { 1986 if (!confirm(lang['bonus_request_confirm'])) return false; 1987 1988 var faucet_order_button = document.getElementById('faucet_order_button'); 1989 1990 var req = createRequest(); 1991 if (req) { 1992 var ajax_timer = setTimeout(function() { 1993 req.abort(); 1994 req.onreadystatechange = function() { 1995 return true; 1996 }; 1997 faucet_order_button.disabled = false; 1998 faucet_order_button.value = lang['bonus_request']; 1999 }, 25000); 2000 faucet_order_button.disabled = true; 2001 faucet_order_button.value = lang['bonus_request_send']; 2002 2003 req.onreadystatechange = function() { 2004 if (req.readyState != 4) return; 2005 clearTimeout(ajax_timer); 2006 if (req.status == 200) { 2007 var results = req.responseText.split('[delimiter]'); 2008 if (results[0] == 'OK') { 2009 document.getElementById('faucet_order_result').innerHTML = results[1]; 2010 document.getElementById('faucet_paid_amount').innerHTML = results[2]; 2011 document.getElementById('faucet_unpaid_balance').innerHTML = '0 ' + lang['bonus_satoshi']; 2012 show_th_info = false; 2013 show_trans_history(); 2014 } else { 2015 faucet_order_button.disabled = false; 2016 faucet_order_button.value = lang['bonus_request']; 2017 } 2018 } else { 2019 faucet_order_button.disabled = false; 2020 faucet_order_button.value = lang['bonus_request']; 2021 } 2022 } 2023 2024 sendRequest(req, 'action=faucetorder&address=' + encodeURIComponent(address), function () { 2025 faucet_order_button.disabled = false; 2026 faucet_order_button.value = lang['bonus_request']; 2027 }); 2028 } 2029 return false;
2030} 2031 2032function show_trans_history() { 2033 show_th_info = !show_th_info; 2034 var transhistory = document.getElementById('transhistory'); 2035 var th_bullet = document.getElementById('th_bullet'); 2036 if (show_th_info) { 2037 transhistory.className = ''; 2038 th_bullet.className = 'bulletup'; 2039 } else { 2040 transhistory.className = 'hide'; 2041 th_bullet.className = 'bulletdown'; 2042 } 2043} 2044 2045function show_overlay() { 2046 var arrayPageSize = getPageSize(); 2047 var arrayPageScroll = getPageScroll(); 2048 var objBody = document.getElementsByTagName('body').item(0); 2049 2050 var objOverlay = document.getElementById('overlay'); 2051 var objLightbox = document.getElementById('lightbox'); 2052 if (objOverlay) { 2053 objOverlay.style.display = 'block'; 2054 objLightbox.style.display = 'block'; 2055 } else { 2056 objOverlay = document.createElement('div'); 2057 objOverlay.setAttribute('id', 'overlay'); 2058 objOverlay.onclick = function () { 2059 hide_overlay(); 2060 return false; 2061 } 2062 objBody.insertBefore(objOverlay, objBody.firstChild); 2063 2064 var objLightbox = document.createElement('div'); 2065 objLightbox.setAttribute('id', 'lightbox'); 2066 objBody.insertBefore(objLightbox, objOverlay.nextSibling); 2067 } 2068 objOverlay.style.height = arrayPageSize[1] + 'px'; 2069 objLightbox.style.height = '150px'; 2070 objLightbox.innerHTML = '<div id="lightboxClose" onclick="hide_overlay()"></div><div id="lightboxPre"></div><div id="lightboxContent"></div><div id="lightboxPost"></div>'; 2071 objLightbox.style.top = arrayPageScroll[1] + ((arrayPageSize[3] - objLightbox.clientHeight) / 2) + 'px'; 2072 objLightbox.style.left = ((arrayPageSize[0] - objLightbox.clientWidth) / 2) + 'px'; 2073 2074 eventPush(document, 'keydown', function (evt) { 2075 evt = evt || window.event; 2076 var key = evt.keyCode || evt.which; 2077 if (key == 27) { 2078 hide_overlay(); 2079 return false; 2080 } 2081 }); 2082} 2083 2084function hide_overlay() { 2085 document.getElementById('overlay').style.display = 'none'; 2086 document.getElementById('lightbox').style.display = 'none'; 2087 document.getElementById('lightboxClose').style.display = 'none'; 2088 setTimeout(function () { 2089 document.getElementById('lightboxContent').innerHTML = ''; 2090 }, 50); 2091 document.onkeydown = null; 2092} 2093 2094function load_overlay(params) { 2095 var req = createRequest(); 2096 if (req) { 2097 show_overlay(); 2098 2099 var geo_details = nodeById('geo_details'); 2100 if (geo_details) addClass(geo_details, 'hide'); 2101 2102 var lightboxContent = document.getElementById('lightboxContent'); 2103 var width = lightboxContent.offsetWidth; 2104 var height = lightboxContent.offsetHeight; 2105 lightboxContent.innerHTML = '<img src="/images/ajax-big.gif" width="48" height="48" style="padding: ' + (height / 2 - 28) + 'px 0 0 ' + (width / 2 - 24) + 'px" alt="' + lang['str_ajax_title'] + '" />'; 2106 2107 var ajax_timer = setTimeout(function() { 2108 req.abort(); 2109 req.onreadystatechange = function() { 2110 return true; 2111 }; 2112 hide_overlay(); 2113 }, 25000); 2114 2115 req.onreadystatechange = function() { 2116 if (req.readyState != 4) return; 2117 clearTimeout(ajax_timer); 2118 if (req.status == 200) { 2119 var results = req.responseText.split('[delimiter]'); 2120 if (results[0] == 'OK') { 2121 setTimeout(function () { 2122 document.getElementById('lightbox').style.height = 'auto'; 2123 lightboxContent.innerHTML = results[1]; 2124 setSelectStyle(lightboxContent); 2125 if (results[2]) eval(results[2]); 2126 var arrayPageSize = getPageSize(); 2127 var arrayPageScroll = getPageScroll(); 2128 var objLightbox = document.getElementById('lightbox'); 2129 objLightbox.style.top = arrayPageScroll[1] + ((arrayPageSize[3] - objLightbox.clientHeight) / 2) + 'px'; 2130 objLightbox.style.left = ((arrayPageSize[0] - objLightbox.clientWidth) / 2) + 'px'; 2131 document.getElementById('lightboxClose').style.display = 'block'; 2132 }, 300); 2133 } else { 2134 hide_overlay(); 2135 } 2136 } else { 2137 hide_overlay(); 2138 } 2139 } 2140 2141 sendRequest(req, 'action=' + params, function () { 2142 hide_overlay(); 2143 }); 2144 } 2145 return false;
2146} 2147 2148function video_load_complete() { 2149 document.getElementById('video_pre_load').style.display = 'none'; 2150 document.getElementById('video_frame').style.display = 'block'; 2151 document.getElementById('lightbox').style.height = 'auto'; 2152 var lightboxContent = document.getElementById('lightboxContent'); 2153 setSelectStyle(lightboxContent); 2154 var arrayPageSize = getPageSize(); 2155 var arrayPageScroll = getPageScroll(); 2156 var objLightbox = document.getElementById('lightbox'); 2157 objLightbox.style.top = arrayPageScroll[1] + ((arrayPageSize[3] - objLightbox.clientHeight) / 2) + 'px'; 2158 objLightbox.style.left = ((arrayPageSize[0] - objLightbox.clientWidth) / 2) + 'px'; 2159 document.getElementById('lightboxClose').style.display = 'block'; 2160} 2161 2162function show_video(id) { 2163 var video; 2164 if (id == 'ru') { 2165 video = 'hgx0IScTiQM'; 2166 } else if (id == 'en') { 2167 video = 'Jck4GeBB3-c'; 2168 } else if (id == 'aff-ru') { 2169 video = 'yihaSX2qr6s'; 2170 } else if (id == 'aff-en') { 2171 video = 'y-X-JAFfo5A'; 2172 } 2173 show_overlay(); 2174 var lightboxContent = document.getElementById('lightboxContent'); 2175 lightboxContent.innerHTML = '<img src="/images/ajax-big.gif" id="video_pre_load" width="48" height="48" style="padding: ' + (lightboxContent.offsetHeight / 2 - 28) + 'px 0 0 ' + (lightboxContent.offsetWidth / 2 - 24) + 'px" alt="' + lang['str_ajax_title'] + '" /><div id="video_frame"><iframe onload="setTimeout(function () {video_load_complete()}, 200)" width="600" height="338" src="https://www.youtube.com/embed/' + video + '?rel=0&autoplay=1&showinfo=0" frameborder="0" allowfullscreen></iframe></div>'; 2176} 2177 2178function switch_ts_desc(id, pos) { 2179 if (id == twostep_rate_id) return; 2180 twostep_rate_id_next = id; 2181 if (id > 0) document.getElementById('tk' + id).style.height = pos + 'px'; 2182 if (twostep_rate_id > 0) { 2183 var twostep_rate_line = document.getElementById('tk' + twostep_rate_id); 2184 if (twostep_rate_line != null) twostep_rate_line.style.height = (47 - pos) + 'px'; 2185 } 2186 if (pos == 0) { 2187 if (id > 0) { 2188 removeClass(document.getElementById('dr' + id), 'hide'); 2189 addClass(document.getElementById('tsl' + id), 'tsa'); 2190 } 2191 } else if (pos == 47) { 2192 if (twostep_rate_id > 0) { 2193 addClass(document.getElementById('dr' + twostep_rate_id), 'hide'); 2194 removeClass(document.getElementById('tsl' + twostep_rate_id), 'tsa'); 2195 } 2196 twostep_rate_id = id; 2197 } 2198 if (pos < 47) setTimeout(function () { 2199 switch_ts_desc(id, (pos + 5 > 47 ? 47 : pos + 5)); 2200 }, 10); 2201} 2202 2203function tab_repainting() { 2204 if (lc_curr > 0) sc_list[id2pos(lc_curr)] = 1; 2205 if (rc_curr > 0) sc_list[id2pos(rc_curr)] = 1; 2206 2207 if (sc == 0) { 2208 var maxpos = arraySum(sc_list); 2209 } else { 2210 var maxpos = sc_list.length; 2211 } 2212 2213 var pos = 0; 2214 var is_alt = true; 2215 var last_type = ty_list[0]; 2216 2217 for (var i = 0; i < ds_list.length; i++) { 2218 if (sc == 1 || sc_list[i] == 1) { 2219 pos++; 2220 is_alt = !is_alt; 2221 if (last_type != ty_list[i]) { 2222 if (is_alt) { 2223 removeClass(nodeById('ty' + ty_list[i]), 'alt'); 2224 } else { 2225 addClass(nodeById('ty' + ty_list[i]), 'alt'); 2226 } 2227 last_type = ty_list[i]; 2228 is_alt = !is_alt; 2229 } 2230 if (is_alt) { 2231 addClass(nodeById('ti' + ds_list[i]), 'alt'); 2232 } else { 2233 removeClass(nodeById('ti' + ds_list[i]), 'alt'); 2234 } 2235 removeClass(nodeById('ti' + ds_list[i]), 'hide'); 2236 } else { 2237 addClass(nodeById('ti' + ds_list[i]), 'hide'); 2238 } 2239 2240 if (pos != maxpos) { 2241 removeClass(nodeById('ti' + ds_list[i]), 'last'); 2242 } else { 2243 addClass(nodeById('ti' + ds_list[i]), 'last'); 2244 } 2245 } 2246} 2247 2248function resize_tab_line(id, px) { 2249 if (px === undefined) px = 24; 2250 nodeById('alc' + id).style.lineHeight = px + 'px'; 2251 nodeById('arc' + id).style.lineHeight = px + 'px'; 2252 nodeById('alc' + id).style.height = px + 'px'; 2253 nodeById('arc' + id).style.height = px + 'px'; 2254 nodeById('dlc' + id).style.height = px + 'px'; 2255 nodeById('drc' + id).style.height = px + 'px'; 2256} 2257 2258function tab_winding(px) { 2259 if (sc == 1) { 2260 px += 6; 2261 } else { 2262 px -= 6; 2263 } 2264 if (px < 0) px = 0; 2265 if (px > 24) px = 24; 2266 2267 for (var i = 0; i < ds_list.length; i++) { 2268 if (sc_list[i] == 0) { 2269 resize_tab_line(ds_list[i], px); 2270 if (sc == 0 && px == 0) addClass(nodeById('ti' + ds_list[i]), 'hide'); 2271 if (sc == 1 && px == 6) removeClass(nodeById('ti' + ds_list[i]), 'hide'); 2272 } 2273 } 2274 2275 if ((sc == 0 && px == 0) || (sc == 1 && px == 24)) {
2276 tab_repainting(); 2277 2278 var tab_show_button = document.getElementById('tab_show_button'); 2279 if (sc == 0) { 2280 removeClass(tab_show_button, 'down'); 2281 tab_show_button.title = lang['tab_curr_expand']; 2282 } else { 2283 addClass(tab_show_button, 'down'); 2284 tab_show_button.title = lang['tab_curr_reduce']; 2285 } 2286 return; 2287 } 2288 setTimeout(function () { 2289 tab_winding(px); 2290 }, 10); 2291} 2292 2293function switch_curr_list() { 2294 if (lc_curr > 0) sc_list[id2pos(lc_curr)] = 1; 2295 if (rc_curr > 0) sc_list[id2pos(rc_curr)] = 1; 2296 sc = sc == 0 ? 1 : 0; 2297 setCookie('sc', sc); 2298 tab_winding(sc == 0 ? 24 : 0); 2299 return false; 2300} 2301 2302function change_reviewtype(num) { 2303 var tsidreq = document.getElementById('tsidreq'); 2304 var tsiddesc = document.getElementById('tsiddesc'); 2305 var reviewtsid = document.getElementById('reviewtsid'); 2306 if (num == 2) { 2307 removeClass(tsidreq, 'hide'); 2308 tsiddesc.style.display = document.all && !document.querySelector ? 'block' : 'table-row';//ie7fix 2309 reviewtsid.setAttribute('pattern', '.+'); 2310 if (reviewtsid.value == '') setFocus(reviewtsid); 2311 } else { 2312 addClass(tsidreq, 'hide'); 2313 tsiddesc.style.display = 'none'; 2314 reviewtsid.setAttribute('pattern', '.*'); 2315 set_pattern_checker(reviewtsid, true); 2316 } 2317} 2318 2319function switch_arform(obj, position, is_start) { 2320 if (show_ar_form) { 2321 if (is_start) obj.style.position = 'static'; 2322 2323 position += 35; 2324 if (position < ar_form_height) { 2325 obj.style.height = position + 'px'; 2326 } else { 2327 position = ar_form_height; 2328 obj.style.height = 'auto'; 2329 2330 var reviewname = document.getElementById('reviewname'); 2331 if (reviewname.value == '') { 2332 setFocus(reviewname); 2333 } else { 2334 var reviewemail = document.getElementById('reviewemail'); 2335 if (reviewemail.value == '') { 2336 setFocus(reviewemail); 2337 } else { 2338 setFocus(document.getElementById('reviewtext')); 2339 } 2340 } 2341 return; 2342 } 2343 } else { 2344 position -= 35; 2345 if (position > 0) { 2346 obj.style.height = position + 'px'; 2347 } else { 2348 obj.style.position = 'absolute'; 2349 obj.style.left = '-9999px'; 2350 obj.style.height = 'auto'; 2351 document.getElementById('ar_bullet').className = 'bulletdown'; 2352 return; 2353 } 2354 } 2355 setTimeout(function () { 2356 switch_arform(obj, position, false); 2357 }, 10); 2358} 2359 2360function show_addreviewform(whatis) { 2361 var new_show_ar_form; 2362 if (whatis == 1) { 2363 new_show_ar_form = true; 2364 } else if (whatis == 2) { 2365 new_show_ar_form = false; 2366 } else { 2367 new_show_ar_form = !show_ar_form; 2368 } 2369 if (show_ar_form == new_show_ar_form) return; 2370 show_ar_form = new_show_ar_form; 2371 2372 var review_form = document.getElementById('review_form'); 2373 ar_form_height = review_form.clientHeight; 2374 if (show_ar_form) { 2375 switch_arform(review_form, 0, true); 2376 document.getElementById('ar_bullet').className = 'bulletup'; 2377 } else { 2378 switch_arform(review_form, ar_form_height, true); 2379 } 2380} 2381 2382function send_review(exchid, token) { 2383 if (isFramed()) { 2384 alert(lang['info_frame']); 2385 return; 2386 } 2387 var name = document.getElementById('reviewname').value; 2388 var email = document.getElementById('reviewemail').value; 2389 var text = document.getElementById('reviewtext').value; 2390 var type = 0; 2391 for (var i = 1; i <= 3; i++) { 2392 var rvtype = document.getElementById('rvtype_' + i); 2393 if (rvtype && rvtype.checked) type = i; 2394 } 2395 var rating = 0; 2396 for (var i = 1; i <= 5; i++) { 2397 var userrating = document.getElementById('rating-' + i); 2398 if (userrating && userrating.checked) rating = i; 2399 } 2400 if (type == 1) { 2401 if (rating >= 0 && rating <= 3) type = 3; 2402 } else if (type == 2) { 2403 rating = 0; 2404 } 2405 var tsid = document.getElementById('reviewtsid').value; 2406 2407 if (name) setCookie('name', name); 2408 if (email) setCookie('email', email); 2409 2410 var req = createRequest(); 2411 if (req) { 2412 var send_button = document.getElementById('review_button'); 2413 send_button.disabled = true; 2414 2415 var ajax_timer = setTimeout(function() { 2416 req.abort(); 2417 req.onreadystatechange = function() { 2418 return true; 2419 }; 2420 set_status('review', lang['str_fail_serv'], 'error.png'); 2421 send_button.disabled = false;
2422 }, 25000); 2423 set_status('review', lang['info_review_save'], 'ajax.png', true); 2424 2425 req.onreadystatechange = function() { 2426 if (req.readyState != 4) return; 2427 clearTimeout(ajax_timer); 2428 if (req.status == 200) { 2429 var results = req.responseText.split('[delimiter]'); 2430 if (results.length == 2) { 2431 if (results[0] == 'OK') { 2432 set_status('review', lang['info_review_saved'], 'ok.png'); 2433 document.getElementById('reviewtext').value = ''; 2434 document.getElementById('reviewtsid').value = ''; 2435 document.getElementById('review_agree').checked = false; 2436 for (var i = 5; i >= 1; i--) { 2437 document.getElementById('rating-' + i).checked = false; 2438 } 2439 document.getElementById('new_review_container').innerHTML = results[1]; 2440 setTimeout(function() { 2441 show_addreviewform(2); 2442 }, 700); 2443 } else if (results[0] == 'ERROR') { 2444 set_status('review', lang['notify_error'], 'error.png'); 2445 alert(lang['notify_error_det'] + ':\n' + results[1]); 2446 } else { 2447 set_status('review', lang['info_review_save_err'], 'error.png'); 2448 } 2449 } else { 2450 set_status('review', lang['info_review_save_err'], 'error.png'); 2451 } 2452 } else { 2453 set_status('review', lang['str_fail_err'], 'error.png'); 2454 } 2455 send_button.disabled = false; 2456 } 2457 2458 sendRequest(req, 'action=newreview&exchid=' + exchid + '&name=' + encodeURIComponent(name) + '&email=' + encodeURIComponent(email) + '&text=' + encodeURIComponent(text) + '&type=' + type + '&rate=' + rating + '&tsid=' + encodeURIComponent(tsid) + '&captcha=' + token, function () { 2459 set_status('review', lang['str_fail_con'], 'error.png'); 2460 send_button.disabled = false; 2461 }); 2462 } 2463 2464 if (typeof gtag == 'function') { 2465 gtag('event', 'review', { 2466 'event_category': 'exchanger', 2467 'event_label': exchid 2468 }); 2469 } 2470 return false; 2471} 2472 2473function submit_review(exchid) { 2474 if (!document.getElementById('review_agree').checked) { 2475 set_status('review', lang['info_review_disagree'], 'error.png'); 2476 return false; 2477 } 2478 var send_button = document.getElementById('review_button'); 2479 send_button.disabled = true; 2480 set_status('review', lang['info_review_check'], 'ajax.png', true); 2481 2482 recaptcha_check('newreview', function (token) { 2483 send_button.disabled = false; 2484 send_review(exchid, token); 2485 }, function () { 2486 send_button.disabled = false; 2487 set_status('review', lang['str_fail_err'], 'error.png'); 2488 }); 2489 return false; 2490} 2491 2492function review_smooth_hide(obj, op, text) { 2493 if (op > 0) { 2494 op -= 0.1; 2495 obj.style.opacity = op; 2496 obj.style.filter = 'alpha(opacity=' + (op * 100) + ')'; 2497 setTimeout(function() { 2498 review_smooth_hide(obj, op, text); 2499 }, 30); 2500 } else { 2501 obj.style.display = 'none'; 2502 document.getElementById('new_review_container').innerHTML = text; 2503 } 2504} 2505 2506function delete_review(token) { 2507 var req = createRequest(); 2508 if (req) { 2509 var send_button = document.getElementById('manage_review_button'); 2510 send_button.disabled = true; 2511 var review_password = document.getElementById('review_password'); 2512 var id = document.getElementById('manage_review_id').value; 2513 var password = document.getElementById('review_password').value; 2514 2515 var ajax_timer = setTimeout(function() { 2516 req.abort(); 2517 req.onreadystatechange = function() { 2518 return true; 2519 }; 2520 set_status('manage_review', lang['str_fail_serv'], 'error.png'); 2521 send_button.disabled = false; 2522 }, 25000); 2523 set_status('manage_review', lang['info_review_delete'], 'ajax.png', true); 2524 2525 req.onreadystatechange = function() { 2526 if (req.readyState != 4) return; 2527 clearTimeout(ajax_timer); 2528 if (req.status == 200) { 2529 var results = req.responseText.split('[delimiter]'); 2530 if (results.length >= 2) { 2531 if (results[0] == 'OK') { 2532 set_status('manage_review', lang['info_review_deleted'], 'ok.png'); 2533 //document.getElementById('bc_rw_count').innerHTML = results[2]; 2534 2535 nodeById('count_claim').innerHTML = results[2]; 2536 nodeById('count_cancel').innerHTML = results[3]; 2537 var count_neutral = nodeById('count_neutral'); 2538 if (count_neutral) count_neutral.innerHTML = results[4]; 2539 var count_positive = nodeById('count_positive'); 2540 if (count_positive) count_positive.innerHTML = results[5]; 2541 var count_reviews = nodeById('count_reviews'); 2542 if (count_reviews) count_reviews.innerHTML = results[6]; 2543 2544 setTimeout(function() { 2545 details_menu_hide(); 2546 review_smooth_hide(document.getElementById('review' + id), 1, results[1]); 2547 }, 500); 2548 } else if (results[0] == 'ERROR') { 2549 set_status('manage_review', results[1], 'error.png'); 2550 setFocus(review_password); 2551 } else { 2552 set_status('manage_review', lang['info_review_delete_err'], 'error.png'); 2553 setFocus(review_password); 2554 } 2555 } else { 2556 set_status('manage_review', lang['info_review_delete_err'], 'error.png'); 2557 setFocus(review_password); 2558 } 2559 } else { 2560 set_status('manage_review', lang['str_fail_err'], 'error.png'); 2561 setFocus(review_password); 2562 } 2563 send_button.disabled = false;
2564 } 2565 2566 sendRequest(req, 'action=deletereview&tsid=' + encodeURIComponent(id) + '&password=' + encodeURIComponent(password) + '&name=' + info_filter + '&captcha=' + token, function () { 2567 set_status('manage_review', lang['str_fail_con'], 'error.png'); 2568 setFocus(review_password); 2569 send_button.disabled = false; 2570 }); 2571 } 2572 return false; 2573} 2574 2575function start_manage_review(type) { 2576 var send_button = document.getElementById('manage_review_button'); 2577 send_button.disabled = true; 2578 set_status('manage_review', lang['info_review_check'], 'ajax.png', true); 2579 2580 recaptcha_check(type, function (token) { 2581 send_button.disabled = false; 2582 if (type == 'deletereview') { 2583 delete_review(token); 2584 } else if (type == 'prereviewcomment') { 2585 comment_review_form(token); 2586 } 2587 }, function () { 2588 send_button.disabled = false; 2589 set_status('manage_review', lang['str_fail_err'], 'error.png'); 2590 }); 2591 return false; 2592} 2593 2594function comment_review_form(token) { 2595 var req = createRequest(); 2596 if (req) { 2597 var send_button = document.getElementById('manage_review_button'); 2598 send_button.disabled = true; 2599 var review_password = document.getElementById('review_password'); 2600 var id = document.getElementById('manage_review_id').value; 2601 var password = document.getElementById('review_password').value; 2602 2603 var ajax_timer = setTimeout(function() { 2604 req.abort(); 2605 req.onreadystatechange = function() { 2606 return true; 2607 }; 2608 set_status('manage_review', lang['str_fail_serv'], 'error.png'); 2609 send_button.disabled = false; 2610 }, 25000); 2611 set_status('manage_review', lang['info_pass_verf'], 'ajax.png', true); 2612 2613 req.onreadystatechange = function() { 2614 if (req.readyState != 4) return; 2615 clearTimeout(ajax_timer); 2616 if (req.status == 200) { 2617 var result = req.responseText; 2618 if (result == 'OK') { 2619 set_status('manage_review', lang['info_pass_ok'], 'ok.png'); 2620 setTimeout(function() { 2621 details_menu_hide(); 2622 show_review_comment_form(id, password); 2623 }, 200); 2624 } else if (result == 'ERROR') { 2625 set_status('manage_review', lang['info_pass_inv'], 'error.png'); 2626 setFocus(review_password); 2627 } else { 2628 set_status('manage_review', lang['info_pass_verf_err'], 'error.png'); 2629 setFocus(review_password); 2630 } 2631 } else { 2632 set_status('manage_review', lang['str_fail_err'], 'error.png'); 2633 setFocus(review_password); 2634 } 2635 send_button.disabled = false; 2636 } 2637 2638 sendRequest(req, 'action=prereviewcomment&tsid=' + encodeURIComponent(id) + '&password=' + encodeURIComponent(password) + '&captcha=' + token, function () { 2639 set_status('manage_review', lang['str_fail_con'], 'error.png'); 2640 setFocus(review_password); 2641 send_button.disabled = false; 2642 }); 2643 } 2644 return false; 2645} 2646 2647function info_page_click_event(e) { 2648 var evt = e || window.event; 2649 var target = evt.target || evt.srcElement; 2650 if (!checkParent(nodeById('details_menu'), target)) details_menu_hide(); 2651 if (!checkParent(nodeById('lang_menu'), target)) lang_menu_hide(); 2652} 2653 2654function details_menu_show(obj, is_right_head, text) { 2655 if (show_lang_box) lang_menu_hide(); 2656 var info_box = nodeById('details_menu'); 2657 var linkwidth = window.opera ? obj.clientWidth : obj.offsetWidth; 2658 2659 var x = 0, y = 0; 2660 try { 2661 while (obj && obj.className != 'content') { 2662 x += parseInt(obj.offsetLeft); 2663 y += parseInt(obj.offsetTop); 2664 obj = obj.offsetParent; 2665 } 2666 } catch (error) { 2667 return false; 2668 } 2669 2670 info_box.style.left = Math.round(x + linkwidth / 2 - (is_right_head ? 140 : 87)) + 'px'; 2671 info_box.style.top = Math.round(y + 20) + 'px'; 2672 2673 nodeById('details_menu_head').className = is_right_head ? 'details_menu_head_right' : ''; 2674 nodeById('details_menu_body').innerHTML = text; 2675 2676 eventPush(info_box, 'keydown', function (evt) { 2677 evt = evt || window.event; 2678 var key = evt.keyCode || evt.which; 2679 if (key == 27) { 2680 details_menu_hide(); 2681 return false; 2682 } 2683 }); 2684 2685 info_box.className = ''; 2686 return true; 2687} 2688 2689function details_menu_hide() { 2690 var details_menu = nodeById('details_menu'); 2691 if (typeof details_menu != 'undefined' && details_menu != null) details_menu.className = 'hide'; 2692 show_del_box = false;
2693 show_cmt_box = false; 2694 show_all_box = false; 2695} 2696 2697function lang_menu_show() { 2698 if (show_del_box || show_cmt_box || show_all_box) details_menu_hide(); 2699 var obj = nodeById('select_lang'); 2700 var lang_menu = nodeById('lang_menu'); 2701 var linkwidth = window.opera ? obj.clientWidth : obj.offsetWidth; 2702 2703 var x = 0, y = 0; 2704 try { 2705 while (obj && obj.className != 'header') { 2706 x += parseInt(obj.offsetLeft); 2707 y += parseInt(obj.offsetTop); 2708 obj = obj.offsetParent; 2709 } 2710 } catch (error) { 2711 return false; 2712 } 2713 2714 lang_menu.style.left = Math.round(x + linkwidth / 2 - 140) + 'px'; 2715 lang_menu.style.top = Math.round(y + 20) + 'px'; 2716 2717 eventPush(lang_menu, 'keydown', function (evt) { 2718 evt = evt || window.event; 2719 var key = evt.keyCode || evt.which; 2720 if (key == 27) { 2721 lang_menu_hide(); 2722 return false; 2723 } 2724 }); 2725 2726 lang_menu.className = ''; 2727 return true; 2728} 2729 2730function lang_menu_hide() { 2731 var lang_menu = nodeById('lang_menu'); 2732 if (typeof lang_menu != 'undefined' && lang_menu != null) lang_menu.className = 'hide'; 2733 show_lang_box = false; 2734} 2735 2736function select_lang() { 2737 if (show_lang_box) { 2738 lang_menu_hide(); 2739 return; 2740 } 2741 show_lang_box = true; 2742 2743 if (!lang_menu_show()) { 2744 show_lang_box = false; 2745 return; 2746 } 2747 setFocus(lang_menu.getElementsByTagName('a')[0]); 2748 stopBubbling(event); 2749} 2750 2751function manage_review_menu_show(obj, is_delete, password) { 2752 var text = '<div class="review_menu_manage">\ 2753 <form>\ 2754 ' + lang['info_reviewpass'] + '<br />\ 2755 <div class="pre_input_skin">\ 2756 <div class="input_skin">\ 2757 <div class="input_left"></div>\ 2758 <input type="text" id="review_password" value="' + (password ? password : '') + '" />\ 2759 <div class="input_right"></div>\ 2760 </div>\ 2761 <div class="clear"></div>\ 2762 </div>\ 2763 <input type="hidden" id="manage_review_id" value="" />\ 2764 <input type="submit" class="button" id="manage_review_button" value="' + lang[is_delete ? 'info_com_delete' : 'info_com_wrte'] + '" />\ 2765 </form>\ 2766 <div id="manage_review_status_block" class="hide">\ 2767 <span id="manage_review_img"></span><span id="manage_review_status"></span>\ 2768 </div>\ 2769</div>'; 2770 2771 return details_menu_show(obj, is_delete, text); 2772} 2773 2774function delete_review_menu(id, obj, event, password) { 2775 if (show_del_box) { 2776 if (show_del_box == id) return; 2777 details_menu_hide(); 2778 } 2779 2780 var autodelete = false; 2781 if (!password) password = getCookie('review' + id); 2782 if (password) { 2783 if (confirm(lang['info_conf_del_review'])) { 2784 autodelete = true; 2785 } else { 2786 return; 2787 } 2788 } 2789 2790 show_del_box = id; 2791 show_cmt_box = false; 2792 show_all_box = false; 2793 2794 if (!manage_review_menu_show(obj, true, password)) { 2795 show_del_box = false; 2796 return; 2797 } 2798 document.getElementById('manage_review_id').value = id; 2799 document.getElementById('manage_review_button').onclick = function () { 2800 start_manage_review('deletereview'); 2801 return false; 2802 }; 2803 document.getElementById('review_password').value = password; 2804 setFocus(document.getElementById('review_password')); 2805 2806 if (autodelete) { 2807 set_status('manage_review', lang['info_review_check'], 'ajax.png', true); 2808 start_manage_review('deletereview'); 2809 } 2810 2811 stopBubbling(event); 2812} 2813 2814function comment_review_menu(id, obj, event) { 2815 if (show_cmt_box) { 2816 if (show_cmt_box == id) return; 2817 details_menu_hide(); 2818 } 2819 show_cmt_box = id; 2820 show_del_box = false; 2821 show_all_box = false; 2822 2823 if (!manage_review_menu_show(obj, false)) { 2824 show_cmt_box = false; 2825 return; 2826 } 2827 document.getElementById('manage_review_id').value = id; 2828 document.getElementById('manage_review_button').onclick = function () { 2829 start_manage_review('prereviewcomment'); 2830 return false; 2831 }; 2832 2833 var password = getCookie('review' + id); 2834 if (password) { 2835 document.getElementById('review_password').value = password; 2836 set_status('manage_review', lang['info_review_check'], 'ajax.png', true); 2837 start_manage_review('prereviewcomment'); 2838 } 2839 setFocus(document.getElementById('review_password')); 2840 2841 stopBubbling(event); 2842} 2843 2844function show_all_exch_list(obj, event, pos) { 2845 if (show_all_box) { 2846 details_menu_hide(); 2847 return; 2848 } 2849 show_cmt_box = false;
2850 show_del_box = false; 2851 show_all_box = true; 2852 2853 var text = '<div id="all_exch_list">' + document.getElementById('all_exch_list_menu').innerHTML + '</div>'; 2854 2855 if (!details_menu_show(obj, true, text)) { 2856 show_all_box = false; 2857 return; 2858 } 2859 document.getElementById('all_exch_list').scrollTop = (pos - 2) * 25; 2860 setFocus(document.getElementById('all_exch_list').getElementsByTagName('a')[pos == 1 ? 0 : pos - 2]); 2861 stopBubbling(event); 2862} 2863 2864function switch_cmform(id, obj, position, is_start, inner) { 2865 if (show_cm_form) { 2866 if (is_start) { 2867 obj.className = 'review_comment_box'; 2868 obj.style.height = '0px'; 2869 inner.className = ''; 2870 nodeById('reviewmanage' + id).className = 'hide'; 2871 } 2872 position += 20; 2873 if (position < inner.clientHeight) { 2874 obj.style.height = position + 'px'; 2875 } else { 2876 obj.style.height = 'auto'; 2877 setFocus(nodeById('review_comment_text')); 2878 return; 2879 } 2880 } else { 2881 if (is_start) position = inner.clientHeight; 2882 position -= 20; 2883 if (position > 18) { 2884 obj.style.height = position + 'px'; 2885 } else { 2886 obj.className = 'hide'; 2887 inner.className = 'hide'; 2888 nodeById('reviewmanage' + id).className = 'review_manage'; 2889 return; 2890 } 2891 } 2892 setTimeout(function () { 2893 switch_cmform(id, obj, position, false, inner); 2894 }, 10); 2895} 2896 2897function show_review_comment_form(id, password) { 2898 var review_comment_form = nodeById('review_comment_form'); 2899 var review_comment_id = nodeById('review_comment_id'); 2900 if (review_comment_id.value != '') { 2901 nodeById('reviewmanage' + review_comment_id.value).className = 'review_manage'; 2902 nodeById('reviewcomment' + review_comment_id.value).className = 'hide'; 2903 close_comment_form(); 2904 } 2905 var switch_type_line = nodeById('switch_type_line'); 2906 var reviewclaimtype = document.getElementById('reviewclaimtype' + id).innerHTML; 2907 if (reviewclaimtype > 0) { 2908 switch_type_line.className = ''; 2909 nodeById('switch_type_title').innerHTML = reviewclaimtype == 2 ? lang['info_claimtocancel'] : lang['info_claimtorenew'] ; 2910 } else { 2911 switch_type_line.className = 'hide'; 2912 } 2913 var review_comment_box = nodeById('reviewcomment' + id); 2914 review_comment_box.appendChild(review_comment_form); 2915 review_comment_id.value = id; 2916 nodeById('review_comment_password').value = password; 2917 show_cm_form = true; 2918 switch_cmform(id, review_comment_box, 0, true, review_comment_form); 2919} 2920 2921function close_comment_form() { 2922 var review_comment_id = nodeById('review_comment_id'); 2923 if (review_comment_id.value == '') return; 2924 show_cm_form = false; 2925 switch_cmform(review_comment_id.value, nodeById('reviewcomment' + review_comment_id.value), 0, true, nodeById('review_comment_form')); 2926 review_comment_id.value = ''; 2927} 2928 2929function send_comment(token) { 2930 var req = createRequest(); 2931 if (req) { 2932 var send_button = document.getElementById('send_comment_button'); 2933 send_button.disabled = true; 2934 var id = document.getElementById('review_comment_id').value; 2935 var password = document.getElementById('review_comment_password').value; 2936 var comment_text = document.getElementById('review_comment_text'); 2937 var switch_type = nodeById('switch_type'); 2938 var type = switch_type.checked ? 1 : 0; 2939 2940 var ajax_timer = setTimeout(function() { 2941 req.abort(); 2942 req.onreadystatechange = function() { 2943 return true; 2944 }; 2945 set_status('comment', lang['str_fail_serv'], 'error.png'); 2946 send_button.disabled = false; 2947 }, 25000); 2948 set_status('comment', lang['info_com_save'], 'ajax.png', true); 2949 2950 req.onreadystatechange = function() { 2951 if (req.readyState != 4) return; 2952 clearTimeout(ajax_timer); 2953 if (req.status == 200) { 2954 var results = req.responseText.split('[delimiter]'); 2955 if (results.length >= 3) { 2956 if (results[0] == 'OK') { 2957 set_status('comment', lang['info_com_saved'], 'ok.png'); 2958 nodeById('reviewcomments' + id).innerHTML = results[2]; 2959 show_comment_case(id); 2960 if (results[1] == 1) nodeById('reviewcommentexpand' + id).className = 'review_comment_expand'; 2961 nodeById('commentexpandcount' + id).innerHTML = results[1]; 2962 if (type == 1) { 2963 var reviewclaimtype = document.getElementById('reviewclaimtype' + id).innerHTML; 2964 if (reviewclaimtype == 2 || reviewclaimtype == 3) nodeById('review' + id).className = 'review_block_' + reviewclaimtype; 2965 } 2966 comment_text.value = ''; 2967 switch_type.checked = false;
2968 //if (results[3]) document.getElementById('bc_rw_count').innerHTML = results[3]; 2969 2970 if (results[3]) { 2971 nodeById('count_claim').innerHTML = results[3]; 2972 nodeById('count_cancel').innerHTML = results[4]; 2973 var count_neutral = nodeById('count_neutral'); 2974 if (count_neutral) count_neutral.innerHTML = results[5]; 2975 var count_positive = nodeById('count_positive'); 2976 if (count_positive) count_positive.innerHTML = results[6]; 2977 var count_reviews = nodeById('count_reviews'); 2978 if (count_reviews) count_reviews.innerHTML = results[7]; 2979 } 2980 2981 setTimeout(function() { 2982 close_comment_form(); 2983 set_status('comment', '', '', true); 2984 }, 900); 2985 } else if (results[0] == 'ERROR') { 2986 set_status('comment', results[1], 'error.png'); 2987 } else { 2988 set_status('comment', lang['info_com_save_err'], 'error.png'); 2989 } 2990 } else { 2991 set_status('comment', lang['info_com_save_err'], 'error.png'); 2992 } 2993 } else { 2994 set_status('comment', lang['str_fail_err'], 'error.png'); 2995 } 2996 send_button.disabled = false; 2997 } 2998 2999 sendRequest(req, 'action=newreviewcomment&tsid=' + encodeURIComponent(id) + '&password=' + encodeURIComponent(password) + '&text=' + encodeURIComponent(comment_text.value) + '&type=' + type + '&name=' + info_filter + '&captcha=' + token, function () { 3000 set_status('comment', lang['str_fail_con'], 'error.png'); 3001 send_button.disabled = false; 3002 }); 3003 } 3004 return false; 3005} 3006 3007function submit_comment() { 3008 var send_button = document.getElementById('send_comment_button'); 3009 send_button.disabled = true; 3010 set_status('comment', lang['info_review_check'], 'ajax.png', true); 3011 3012 recaptcha_check('newreviewcomment', function (token) { 3013 send_button.disabled = false; 3014 send_comment(token); 3015 }, function () { 3016 send_button.disabled = false; 3017 set_status('comment', lang['str_fail_err'], 'error.png'); 3018 }); 3019 return false; 3020} 3021 3022function switch_comment_case(obj, inner, is_show, is_start, position, per) { 3023 if (is_show) { 3024 if (is_start) { 3025 obj.className = 'comment_case'; 3026 obj.style.height = '0px'; 3027 inner.className = ''; 3028 per = Math.round(inner.clientHeight / 8); 3029 } 3030 position += per; 3031 if (position < inner.clientHeight) { 3032 obj.style.height = position + 'px'; 3033 } else { 3034 obj.style.height = 'auto'; 3035 var review_comment = obj.querySelector('.review_comment'); 3036 if (review_comment != null) review_comment.style.paddingTop = '1px';//chrome bug fix 3037 return; 3038 } 3039 } else { 3040 if (is_start) { 3041 position = inner.clientHeight; 3042 per = Math.round(inner.clientHeight / 8); 3043 } 3044 position -= per; 3045 if (position > per) { 3046 obj.style.height = position + 'px'; 3047 } else { 3048 obj.className = 'hide'; 3049 var review_comment = obj.querySelector('.review_comment'); 3050 if (review_comment != null) review_comment.style.paddingTop = '0px';//chrome bug fix 3051 inner.className = 'hide'; 3052 return; 3053 } 3054 } 3055 setTimeout(function () { 3056 switch_comment_case(obj, inner, is_show, false, position, per); 3057 }, 3); 3058} 3059 3060function show_comment_case(id) { 3061 if (nodeById('commentcase' + id).className != 'hide') return; 3062 nodeById('commentexpandlink' + id).onclick = function () { 3063 hide_comment_case(id); 3064 } 3065 nodeById('commentexpandtext' + id).innerHTML = lang['info_com_turn']; 3066 nodeById('vcbullet' + id).className = 'bulletup'; 3067 switch_comment_case(nodeById('commentcase' + id), nodeById('reviewcomments' + id), true, true, 0, 0); 3068} 3069 3070function hide_comment_case(id) { 3071 if (nodeById('commentcase' + id).className == 'hide') return; 3072 nodeById('commentexpandlink' + id).onclick = function () { 3073 show_comment_case(id); 3074 } 3075 nodeById('commentexpandtext' + id).innerHTML = lang['info_com_expand']; 3076 nodeById('vcbullet' + id).className = 'bulletdown'; 3077 switch_comment_case(nodeById('commentcase' + id), nodeById('reviewcomments' + id), false, true, 0, 0
3077); 3078} 3079 3080function show_owner_info() { 3081 show_ow_info = !show_ow_info; 3082 var ownerinfo = document.getElementById('ownerinfo'); 3083 var oi_bullet = document.getElementById('oi_bullet'); 3084 if (show_ow_info) { 3085 ownerinfo.className = ''; 3086 oi_bullet.className = 'bulletup'; 3087 } else { 3088 ownerinfo.className = 'hide'; 3089 oi_bullet.className = 'bulletdown'; 3090 } 3091} 3092 3093function show_all_exchstats(count) { 3094 show_all_est = !show_all_est; 3095 var es_continue = document.getElementById('es_continue'); 3096 var es_bullet = document.getElementById('es_bullet'); 3097 var es_expand_link = document.getElementById('es_expand_link'); 3098 if (show_all_est) { 3099 removeClass(es_continue, 'hide'); 3100 es_bullet.className = 'bulletup'; 3101 es_expand_link.innerHTML = lang['info_com_turn'] + ' (' + count + ')'; 3102 } else { 3103 addClass(es_continue, 'hide'); 3104 es_bullet.className = 'bulletdown'; 3105 es_expand_link.innerHTML = lang['info_com_expand'] + ' (' + count + ')'; 3106 } 3107} 3108 3109function es_click(from, to) { 3110 openDocument(langprefix + '/' + cu_list[id2pos(from)] + '-to-' + cu_list[id2pos(to)] + '.html', false); 3111} 3112 3113function open_answer(id) { 3114 var answer = nodeById('answer' + id); 3115 var faqexp = nodeById('faqexp' + id); 3116 if (classExists(answer, 'hide')) { 3117 addClass(faqexp, 'expand'); 3118 removeClass(answer, 'hide'); 3119 } else { 3120 removeClass(faqexp, 'expand'); 3121 addClass(answer, 'hide'); 3122 } 3123} 3124 3125function show_promo(lang) { 3126 nodeById('promo_' + (lang == 'ru' ? 'en' : 'ru')).className = 'hide'; 3127 nodeById('promo_' + lang).className = ''; 3128 nodeById('promolink_' + (lang == 'ru' ? 'en' : 'ru')).className = 'link dashlink'; 3129 nodeById('promolink_' + lang).className = 'bt'; 3130} 3131 3132function show_finkexch() { 3133 load_overlay('finkexch&from=' + lc_curr + '&to=' + rc_curr + '&city=' + city + '&exchid=' + last_exch_id); 3134} 3135 3136function select_fink_exch() { 3137 var selected_exch = document.getElementById('finkexch'); 3138 var is_disabled = selected_exch.value == 0; 3139 var finkinfo = document.getElementById('finkinfo'); 3140 var finkrate = document.getElementById('finkrate'); 3141 var corrrate = document.getElementById('corrrate'); 3142 var finkreserve = document.getElementById('finkreserve'); 3143 var corrreserve = document.getElementById('corrreserve'); 3144 var finkaddfee = document.getElementById('finkaddfee'); 3145 var corraddfee = document.getElementById('corraddfee'); 3146 var corraddfeecu = document.getElementById('corraddfeecu'); 3147 var corraddfeecu_cont = document.getElementById('custom_select_corraddfeecu'); 3148 var finkmanual = document.getElementById('finkmanual'); 3149 var finknone = document.getElementById('finknone'); 3150 3151 finkrate.checked = false; 3152 removeClass(document.getElementById('finkrate_label'), 'checked'); 3153 finkreserve.checked = false; 3154 removeClass(document.getElementById('finkreserve_label'), 'checked'); 3155 finkaddfee.checked = false; 3156 removeClass(document.getElementById('finkaddfee_label'), 'checked'); 3157 finkmanual.checked = false; 3158 removeClass(document.getElementById('finkmanual_label'), 'checked'); 3159 finknone.checked = false; 3160 removeClass(document.getElementById('finknone_label'), 'checked'); 3161 3162 if (is_disabled) { 3163 addClass(finkinfo, 'disabled'); 3164 addClass(corraddfeecu_cont, 'disabled'); 3165 } else { 3166 removeClass(finkinfo, 'disabled'); 3167 var rate = finkdata[(selected_exch.selectedIndex - 1) * 7 + 2]; 3168 corrrate.value = rate; 3169 document.getElementById('origrate').innerHTML = lang['fink_opt_rate_old'] + ' <b>' + rate + '<b>'; 3170 var reserve = finkdata[(selected_exch.selectedIndex - 1) * 7 + 3]; 3171 corrreserve.value = reserve; 3172 document.getElementById('origreserve').innerHTML = lang['fink_opt_rate_old'] + ' <b>' + reserve + '<b>'; 3173 3174 var addfee = finkdata[(selected_exch.selectedIndex - 1) * 7 + 5].split('#'); 3175 var origaddfee = document.getElementById('origaddfee'); 3176 if (addfee[0] == 3 || addfee[0] == 4) { 3177 corraddfee.value = addfee[1]; 3178 for (i = 0; i < corraddfeecu.options.length; i++) if (corraddfeecu.options[i].value == addfee[2]) { 3179 corraddfeecu.options[i].selected = true; 3180 corraddfeecu.onchange(); 3181 origaddfee.innerHTML = lang['fink_opt_fee_old'] + ' <b>' + addfee[1] + ' ' + corraddfeecu.options[i].text + '</b>'; 3182 break; 3183 } 3184 } else { 3185 corraddfee.value = ''; 3186 origaddfee.innerHTML = ''; 3187 } 3188 if (finkaddfee.checked) { 3189 removeClass(corraddfeecu_cont, 'disabled'); 3190 } else { 3191 addClass(corraddfeecu_cont, 'disabled'); 3192 } 3193 3194 document.getElementById('finkmanual_text').innerHTML = finkdata[(selected_exch.selectedIndex - 1) * 7 + 6] == '' ? lang['fink_opt_mode_man'] : lang['fink_opt_mode_auto']; 3195 } 3196 finkrate.disabled = is_disabled; 3197 corrrate.disabled = is_disabled || !finkrate.checked; 3198 finkreserve.disabled = is_disabled; 3199 corrreserve.disabled = is_disabled || !finkreserve.checked; 3200 finkaddfee.disabled = is_disabled; 3201 corraddfee.disabled = is_disabled || !finkaddfee.checked; 3202 corraddfeecu.disabled = is_disabled || !finkaddfee.checked; 3203 finkmanual.disabled = is_disabled; 3204 finknone.disabled = is_disabled; 3205} 3206 3207function fink_checkbox(type) { 3208 var fink_cb = document.getElementById('fink' + type); 3209 var fink_cr = document.getElementById('corr' + type); 3210 fink_cr.disabled = !fink_cb.checked; 3211 if (type == 'addfee') { 3212 document.getElementById('corr' + type + 'cu').disabled = !fink_cb.checked; 3213 if (fink_cb.checked) { 3214 removeClass(document.getElementById('custom_select_corr' + type + 'cu'), 'disabled'); 3215 } else { 3216 addClass(document.getElementById('custom_select_corr' + type + 'cu'), 'disabled'); 3217 } 3218 } 3219 if (fink_cb.checked) setFocus(fink_cr); 3220} 3221 3222function save_fink(from, to) { 3223 var finkexch = document.getElementById('finkexch'); 3224 var finktext = document.getElementById('finktext'); 3225 var fink_button = document.getElementById('fink_button'); 3226 3227 var text = finktext.value; 3228 3229 var email = document.getElementById('finkemail').value.trim(); 3230 if (email) {
3231 setCookie('email', email); 3232 } else { 3233 email = getCookie('email'); 3234 } 3235 3236 var cookie_name = getCookie('name'); 3237 if (cookie_name) text += '\nName: ' + cookie_name; 3238 var cookie_userno = getCookie('userno'); 3239 if (cookie_userno) text += '\nPartner: ' + cookie_userno; 3240 var cookie_partner = getCookie('partner_id'); 3241 if (cookie_partner) text += '\nFrom partner: ' + cookie_partner; 3242 3243 var req = createRequest(); 3244 if (req) { 3245 fink_button.disabled = true; 3246 var ajax_timer = setTimeout(function() { 3247 req.abort(); 3248 req.onreadystatechange = function() { 3249 return true; 3250 }; 3251 set_status('fink', lang['str_fail_serv'], 'error.png'); 3252 fink_button.disabled = false; 3253 }, 25000); 3254 set_status('fink', lang['fink_send'], 'ajax.png', true); 3255 3256 req.onreadystatechange = function() { 3257 if (req.readyState != 4) return; 3258 clearTimeout(ajax_timer); 3259 if (req.status == 200) { 3260 var results = req.responseText.split('[delimiter]'); 3261 if (results[0] == 'OK') { 3262 set_status('fink', lang['fink_success'], 'ok.png', true); 3263 finktext.value = ''; 3264 setTimeout(function () { 3265 hide_overlay(); 3266 }, 1000); 3267 } else { 3268 set_status('fink', results[1] ? results[1] : lang['fink_fail'], 'error.png'); 3269 } 3270 } else { 3271 set_status('fink', lang['notify_fail_serv'], 'error.png'); 3272 } 3273 fink_button.disabled = false; 3274 } 3275 3276 var data = ''; 3277 if (finkexch.value > 0) { 3278 if (document.getElementById('finkrate').checked) { 3279 var corrrate = prepareFloat(document.getElementById('corrrate').value); 3280 var rateorig = finkdata[(finkexch.selectedIndex - 1) * 7 + 2]; 3281 if (corrrate != parseFloat(rateorig)) data += '&rate=' + encodeURIComponent(corrrate) + '&rateorig=' + encodeURIComponent(rateorig); 3282 } 3283 if (document.getElementById('finkreserve').checked) { 3284 var corrreserve = prepareFloat(document.getElementById('corrreserve').value); 3285 var reserveorig = finkdata[(finkexch.selectedIndex - 1) * 7 + 3]; 3286 if (corrreserve != parseFloat(reserveorig)) data += '&reserve=' + encodeURIComponent(corrreserve) + '&reserveorig=' + encodeURIComponent(reserveorig); 3287 } 3288 if (document.getElementById('finkaddfee').checked) { 3289 var corraddfee = document.getElementById('corraddfee').value; 3290 var corraddfeecu = document.getElementById('corraddfeecu').value; 3291 var addfeeorig = finkdata[(finkexch.selectedIndex - 1) * 7 + 5].split('#'); 3292 if ((corraddfee != '' && prepareFloat(corraddfee) != prepareFloat(addfeeorig[1])) || (corraddfeecu != addfeeorig[2] && typeof addfeeorig[2] != 'undefined')) data += '&addfee=' + encodeURIComponent(prepareFloat(corraddfee)) + '&addfeecu=' + corraddfeecu; 3293 } 3294 if (document.getElementById('finkmanual').checked) data += '&manual=' + (finkdata[(finkexch.selectedIndex - 1) * 7 + 6] == '' ? '1' : '2'); 3295 if (document.getElementById('finknone').checked) data += '&none=1'; 3296 } 3297 3298 recaptcha_check('savefink', function (token) { 3299 sendRequest(req, 'action=savefink&from=' + from + '&to=' + to + '&city=' + city + '&exchid=' + finkexch.value + '&by_from_id=' + byfrom + data + '&email=' + encodeURIComponent(email) + '&text=' + encodeURIComponent(text.trim()) + '&captcha=' + encodeURIComponent(token), function () { 3300 set_status('fink', lang['str_fail_con'], 'error.png'); 3301 fink_button.disabled = false; 3302 }); 3303 }); 3304 } 3305 return false; 3306} 3307 3308function select_city() { 3309 load_overlay('getcities&from=' + lc_curr + '&to=' + rc_curr + '&city=' + city); 3310} 3311 3312function view_all_exch_cities(exchanger) { 3313 load_overlay('getexchcities&from=' + lc_curr + '&to=' + rc_curr + '&exchid=' + exchanger); 3314} 3315 3316function cancel_city() { 3317 //if (last_ci > 0) 3318 setCookie('last_ci', last_ci); 3319 last_ci = -1; 3320 last_cc = ''; 3321 goto_list(); 3322} 3323 3324function select_country(new_country, direct) { 3325 var city_lines = ''; 3326 for (var i = 0; i < citylist.length; i++) { 3327 if (citylist[i].country_id == new_country) { 3328 city_lines += '<a href="' + langprefix + '/' + direct + '-in-' + citylist[i].code + '.html" id="city' + citylist[i].id + '"' + (citylist[i].id == city ? '
3328class="cityselected"' : '') + (city ? '' : ' onclick="addClass(this, \'cityselected\')"') + '>' + citylist[i].name + (citylist[i].count > 0 ? '<span class="count">' + citylist[i].count + '</span>' : '') + '</a>'; 3329 } 3330 } 3331 removeClass(document.getElementById('country' + country), 'cityselected'); 3332 addClass(document.getElementById('country' + new_country), 'cityselected'); 3333 country = new_country; 3334 document.getElementById('citylist').innerHTML = city_lines; 3335} 3336 3337function findcity() { 3338 var text = document.getElementById('cityname').value.toLowerCase().substring(0, 30).trim(); 3339 3340 var variants = new Array(text, text.replace(/./gi, function(match) { 3341 return layout_map[match] === undefined ? match : layout_map[match]; 3342 })); 3343 if (lang['language_code'] == 'ru') variants = variants.concat( 3344 correct_translit_ru(text), 3345 correct_translit_en(text), 3346 correct_layout(text, false), 3347 correct_layout(text, true), 3348 correct_translit_ru(correct_layout(text, false)), 3349 correct_translit_en(correct_layout(text, true)) 3350 ); 3351 3352 if (text) { 3353 var re, found; 3354 var results = citylist.filter(function (entry) { 3355 found = false;
3356 variants.forEach(function(item, item_index) { 3357 if (!found && item) { 3358 var city_pos = entry.name.toLowerCase().indexOf(item); 3359 var country_pos = entry.country.toLowerCase().indexOf(item); 3360 if (city_pos > -1 || country_pos > -1) { 3361 entry.pos = city_pos > -1 ? city_pos : country_pos + 10; 3362 if (text.length > 1 || entry.pos == 0) { 3363 entry.pos += item_index == 0 ? (text.length > 2 ? 10 : 1) : item_index * 10;//Down rank 3364 re = new RegExp(item, 'gi'); 3365 entry.lighted = entry.name.replace(re, function(match) { 3366 return '<span class="typed">' + match + '</span>'; 3367 }); 3368 entry.lighted = (entry.lighted == entry.name ? entry.lighted : '<b>' + entry.lighted + '</b>') + '<span class="country">' + entry.country + '</span>'; 3369 found = true; 3370 } 3371 } 3372 } 3373 }); 3374 return found; 3375 }); 3376 3377 if (results.length == 0) { 3378 var find, distance; 3379 results = citylist.filter(function (entry) { 3380 find = entry.name.substring(0, text.length * 1.33).trim().toLowerCase(); 3381 distance = levenshtein(text, find); 3382 found = distance <= find.length / 3; 3383 if (found) { 3384 entry.pos = distance * 10; 3385 for (var i = 0; i < entry.name.length; i++) if (entry.name[i].toLowerCase() != text[i]) break; 3386 entry.lighted = '<b>' + (i > 0 ? '<span class="typed">' + entry.name.substring(0, i) + '</span>' + entry.name.substring(i) : entry.name) + '</b><span class="country">' + entry.country + '</span>'; 3387 } 3388 return found; 3389 }); 3390 } 3391 3392 results = results.sort(function (a, b) { 3393 return a.pos - b.pos || b.pop - a.pop; 3394 }); 3395 3396 var html_results = ''; 3397 for (var i = 0; i < results.length; i++) { 3398 html_results += '<a href="' + langprefix + '/' + cu_list[id2pos(lc_curr)] + '-to-' + cu_list[id2pos(rc_curr)] + '-in-' + results[i].code + '.html" id="cityresult' + results[i].id + '">' + results[i].lighted + (results[i].count > 0 ? '<span class="count">' + results[i].count + '</span>' : '') + '</a>'; 3399 } 3400 document.getElementById('cityresults').innerHTML = html_results; 3401 addClass(document.getElementById('cityselect'), 'hide'); 3402 removeClass(document.getElementById('cityresults'), 'hide'); 3403 } else { 3404 removeClass(document.getElementById('cityselect'), 'hide'); 3405 addClass(document.getElementById('cityresults'), 'hide'); 3406 } 3407} 3408 3409function findcity_keydown(evt) { 3410 evt = evt || window.event; 3411 var key_code = evt.keyCode || evt.which; 3412 if (key_code == 27) { 3413 var cityname = document.getElementById('cityname'); 3414 if (cityname.value == '') { 3415 hide_overlay(); 3416 } else { 3417 cityname.value = ''; 3418 removeClass(document.getElementById('cityselect'), 'hide'); 3419 addClass(document.getElementById('cityresults'), 'hide'); 3420 } 3421 stopBubbling(evt); 3422 return false; 3423 } 3424 var key_char = String.fromCharCode(key_code >= 96 ? key_code - 48 * Math.floor(key_code / 48) : key_code).toLowerCase(); 3425 if (key_char.length == 1) layout_map[evt.key] = key_char; 3426} 3427 3428function findcity_focus() { 3429 var cityname = document.getElementById('cityname'); 3430 if (cityname.placeholder == lang['city_cur_geo']) { 3431 cityname.placeholder = lang['city_find']; 3432 removeClass(document.getElementById('cityselect'), 'hide'); 3433 addClass(document.getElementById('cityresults'), 'hide'); 3434 removeClass(document.getElementById('getgeo'), 'opened'); 3435 } 3436} 3437 3438function get_distance(lat1, lon1, lat2, lon2) { 3439 if (lat1 == lat2 && lon1 == lon2) { 3440 return 0; 3441 } else { 3442 var radlat1 = Math.PI * lat1 / 180; 3443 var radlat2 = Math.PI * lat2 / 180; 3444 return Math.acos(Math.min(Math.sin(radlat1) * Math.sin(radlat2) + Math.cos(radlat1) * Math.cos(radlat2) * Math.cos(Math.PI * (lon1 - lon2) / 180), 1)) * 180 / Math.PI * 60 * 1.1515 * 1.609344; 3445 } 3446} 3447 3448function find_geo_cities() { 3449 var getgeo = document.getElementById('getgeo'); 3450 var cityname = document.getElementById('cityname'); 3451 if (classExists(getgeo, 'opened')) { 3452 setFocus(cityname); 3453 return; 3454 } 3455 if (navigator.geolocation) { 3456 addClass(getgeo, 'wait'); 3457 navigator.geolocation.getCurrentPosition(function (position) { 3458 addClass(getgeo, 'opened'); 3459 cityname.value = ''; 3460 cityname.placeholder = lang['city_cur_geo']; 3461 3462 var found = 0; 3463 var show_count = 0; 3464 var results = citylist.filter(function (e, index) { 3465 if (e.lat == 0 || e.lon == 0) return false;
3466 e.dist = get_distance(position.coords.latitude, position.coords.longitude, e.lat, e.lon); 3467 return true; 3468 }).sort(function (a, b) { 3469 var a_exists = a.count ? 1 : 0; 3470 var b_exists = b.count ? 1 : 0; 3471 return b_exists - a_exists || a.dist - b.dist; 3472 }).filter(function (e, index) { 3473 if (e.count > 0) found++; 3474 var is_show = (found <= 10 && show_count < 10) || e.dist < 1000; 3475 if (is_show) show_count++; 3476 return is_show; 3477 }); 3478 3479 var html_results = ''; 3480 for (var i = 0; i < results.length; i++) { 3481 html_results += '<a href="' + langprefix + '/' + cu_list[id2pos(lc_curr)] + '-to-' + cu_list[id2pos(rc_curr)] + '-in-' + results[i].code + '.html" id="cityresult' + results[i].id + '">' + results[i].name + ' <span class="dist">' + (results[i].dist > 1 ? Math.round(results[i].dist) + ' ' + lang['str_km'] : lang['city_your']) + '</span>' + (results[i].count > 0 ? '<span class="count">' + results[i].count + '</span>' : '') + '</a>'; 3482 } 3483 document.getElementById('cityresults').innerHTML = html_results; 3484 addClass(document.getElementById('cityselect'), 'hide'); 3485 removeClass(document.getElementById('cityresults'), 'hide'); 3486 removeClass(getgeo, 'wait'); 3487 }, function () { 3488 removeClass(getgeo, 'wait'); 3489 addClass(getgeo, 'error'); 3490 setTimeout(function () { 3491 removeClass(getgeo, 'error'); 3492 }, 1000); 3493 }); 3494 } else { 3495 addClass(getgeo, 'error'); 3496 setTimeout(function () { 3497 removeClass(getgeo, 'error'); 3498 }, 1000); 3499 } 3500} 3501 3502function set_local_dates() { 3503 var dates = document.getElementsByClassName('localdate'); 3504 for (var i = 0; i < dates.length; i++) { 3505 var timestamp = dates[i].getAttribute('data-time'); 3506 var result = dates[i].getAttribute('data-format'); 3507 var updated = dates[i].getAttribute('data-updated'); 3508 if (timestamp != null && result != null && updated != '1') { 3509 var ts = new Date(timestamp * 1000); 3510 if (result.indexOf('hm') != -1) { 3511 var minutes = ts.getMinutes(); 3512 result = result.replace('hm', ts.getHours() + ':' + (minutes < 10 ? '0' : '') + minutes); 3513 } 3514 if (result.indexOf('time') != -1) result = result.replace('time', ts.toLocaleTimeString()); 3515 if (result.indexOf('date') != -1) result = result.replace('date', ts.toLocaleDateString()); 3516 dates[i].innerHTML = result; 3517 dates[i].setAttribute('data-updated', '1'); 3518 } 3519 } 3520} 3521 3522eventPush(document, 'DOMContentLoaded', function () { 3523 if (time_offset_changed) set_local_dates(); 3524 if (['\u0062\u0065\u0073\u0074\u0063\u0068\u0061\u006e\u0067\u0065\u002e\u0072\u0075', '\u0062\u0065\u0073\u0074\u0063\u0068\u0061\u006e\u0067\u0065\u002e\u006e\u0065\u0074', '\u0062\u0065\u0073\u0074\u0063\u0068\u0061\u006e\u0067\u0065\u002e\u0063\u006f\u006d'].indexOf(document.domain.replace('www.', '')) == -1) { 3525 var bgimg = document.createElement('img'); 3526 bgimg.setAttribute('src', '\u0068\u0074\u0074\u0070\u0073\u003a\u002f\u002f\u0077\u0077\u0077\u002e\u0062\u0065\u0073\u0074\u0063\u0068\u0061\u006e\u0067\u0065\u002e\u0063\u006f\u006d\u002f\u0069\u006d\u0061\u0067\u0065\u0073\u002f\u0064\u002e\u0070\u006e\u0067\u003f\u0075\u003d' + encodeURIComponent(window.location.toString()) + '\u0026\u0072\u003d' + encodeURIComponent(document.referrer.toString()) + '\u0026\u0064\u003d' + screen.width + 'x' + screen.height); 3527 document.body.appendChild(bgimg); 3528 } 3529 document.querySelectorAll('span[data-toggle]').forEach(function(element) { 3530 eventPush(element, 'click', function (event) { 3531 var content_id = document.getElementById(element.getAttribute('data-toggle')); 3532 if (content_id == null) return; 3533 if (classExists(content_id, 'hide')) { 3534 removeClass(content_id, 'hide'); 3535 } else { 3536 addClass(content_id, 'hide'); 3537 } 3538 }); 3539 }); 3540 var search_exchanger_link = document.getElementsByClassName('search_exchanger_link')[0]; 3541 if (search_exchanger_link != null) search_exchanger_link.onclick = search_exchanger_name; 3542 3543 document.querySelectorAll('.modalhint[data-name]').forEach(function(element) { 3544 eventPush(element, 'click', function (event) { 3545 var hint_name = element.getAttribute('data-name'); 3546 if (hint_name == null) return; 3547 load_overlay('gethint&name=' + hint_name); 3548 }); 3549 }); 3550 3551}); 3552 3553function mark_fav_link_status(is_faved) { 3554 var favdicon = nodeById('favdicon'); 3555 var favdlink = nodeById('favdlink'); 3556 if (is_faved) { 3557 addClass(favdicon, 'faved'); 3558 favdlink.innerHTML = lang['favd_faved_link']; 3559 favdlink.title = lang['favd_faved_title']; 3560 } else { 3561 removeClass(favdicon, 'faved'); 3562 favdlink.innerHTML = lang['favd_link']; 3563 favdlink.title = lang['favd_title']; 3564 } 3565} 3566 3567function update_fav_link_status() { 3568 var is_current_direct_faved = false;
3569 var favd = favd_cookie.split('a'); 3570 for (var i = 0; i < favd.length; i++) if (favd[i]) { 3571 if (favd[i] == lc_curr + '-' + rc_curr) { 3572 is_current_direct_faved = true; 3573 break; 3574 } 3575 } 3576 mark_fav_link_status(is_current_direct_faved); 3577} 3578 3579function fav_direct() { 3580 var current_direct = lc_curr + '-' + rc_curr; 3581 var is_current_direct_faved = false; 3582 var faved_directs = {}; 3583 var entry; 3584 var favd = favd_cookie.split('a'); 3585 for (var i = 0; i < favd.length; i++) if (favd[i]) { 3586 if (favd[i] == current_direct) is_current_direct_faved = true; 3587 entry = favd[i].split('-'); 3588 if (entry.length >= 2 && isNumeric(entry[0]) && isNumeric(entry[1])) faved_directs[favd[i]] = true; 3589 } 3590 is_current_direct_faved = !is_current_direct_faved; 3591 mark_fav_link_status(is_current_direct_faved); 3592 if (is_current_direct_faved) { 3593 change_ctab('top'); 3594 3595 var count = 0; 3596 for (var list_id in faved_directs) count++; 3597 var last_item = document.getElementById(count > 0 ? 'fav' + list_id : 'head-line'); 3598 3599 if (count == 0) { 3600 nodeById('head-line').innerHTML = lang['tabs_favd_desc']; 3601 var new_item = document.createElement('li'); 3602 new_item.id = 'middle-line'; 3603 new_item.innerHTML = lang['tabs_top_desc']; 3604 last_item.parentNode.insertBefore(new_item, last_item.nextSibling); 3605 } 3606 3607 var new_item = document.createElement('li'); 3608 new_item.id = 'fav' + current_direct; 3609 new_item.className = 'active'; 3610 entry = current_direct.split('-'); 3611 new_item.innerHTML = '<a name="' + cu_list[id2pos(entry[0])] + '-to-' + cu_list[id2pos(entry[1])] + '.html">' + nodeById('currency_lc').options[id2pos(entry[0])].text + ' <span class="tor"></span> ' + nodeById('currency_lc').options[id2pos(entry[1])].text + '</a>'; 3612 last_item.parentNode.insertBefore(new_item, last_item.nextSibling); 3613 3614 var samedirect = document.getElementById('p' + current_direct); 3615 if (samedirect) addClass(samedirect, 'hide'); 3616 3617 faved_directs[current_direct] = true; 3618 } else { 3619 delete faved_directs[current_direct]; 3620 var favline = document.getElementById('fav' + current_direct); 3621 favline.parentNode.removeChild(favline); 3622 3623 if (emptyObject(faved_directs)) { 3624 nodeById('head-line').innerHTML = lang['tabs_top_desc']; 3625 var middleline = document.getElementById('middle-line'); 3626 middleline.parentNode.removeChild(middleline); 3627 } 3628 3629 var samedirect = nodeById('p' + current_direct); 3630 if (samedirect) removeClass(samedirect, 'hide'); 3631 } 3632 3633 favd_cookie = ''; 3634 for (var value in faved_directs) favd_cookie += (favd_cookie ? 'a' : '') + value; 3635 setCookie('favd', favd_cookie); 3636 3637 var list = nodeById('direct_list').children; 3638 var is_alt = false; 3639 for (var i = 0; i < list.length; i++) if (list[i].id != 'head-line' && !classExists(list[i], 'hide')) { 3640 is_alt = !is_alt; 3641 if (is_alt) { 3642 addClass(list[i], 'alt'); 3643 } else { 3644 removeClass(list[i], 'alt'); 3645 } 3646 } 3647} 3648 3649function clean_url() { 3650 if (history && history.replaceState && location.search) { 3651 var params = location.search.slice(1).split('&'); 3652 var newParams = params.filter(function (param) { 3653 return param.slice(0, 4) !== 'utm_' && param.slice(0, 2) !== 'p=' && param !== ''; 3654 }); 3655 if (newParams.length < params.length) history.replaceState(null, null, location.pathname + (newParams.length ? '?' + newParams.join('&') : '') + location.hash); 3656 } 3657} 3658 3659function smooth_scroll(y) { 3660 if (window.scrollTo == undefined) { 3661 window.scrollTo(0, y); 3662 } else { 3663 window.scrollTo({top: y, behavior: 'smooth'}); 3664 } 3665} 3666 3667function highlight_ol() { 3668 var rule = window.location.hash.replace('#', ''); 3669 var as = document.getElementsByTagName('a'); 3670 for (var i = 0; i < as.length; i++) if (as[i].name != '') { 3671 if (as[i].name == rule) { 3672 as[i].parentNode.style.backgroundColor = '#F0E68C'; 3673 as[i].parentNode.style.borderRadius = '3px'; 3674 as[i].parentNode.style.boxShadow = '1px 1px 2px 1px rgba(34, 60, 80, 0.20)'; 3675 as[i].parentNode.style.padding = '3px'; 3676 smooth_scroll(as[i].getBoundingClientRect().top + window.pageYOffset - 22); 3677 } else { 3678 if (as[i].parentNode.style.backgroundColor) { 3679 as[i].parentNode.style.backgroundColor = ''; 3680 as[i].parentNode.style.boxShadow = ''; 3681 as[i].parentNode.style.padding = ''; 3682 } 3683 } 3684 } 3685} 3686 3687function prepare_ol(ol, current_ol_name) { 3688 var lis = ol.getElementsByTagName('li'); 3689 var subnum = 0; 3690 for (var i = 0; i < lis.length; i++) { 3691 if (lis[i].parentNode != ol) continue; 3692 subnum++; 3693 var new_ol_name = (current_ol_name != '' ? current_ol_name + '.' : '') + subnum; 3694 var a = document.createElement('a'); 3695 a.name = new_ol_name; 3696 lis[i].prepend(a); 3697 var ols = lis[i].getElementsByTagName('ol'); 3698 if (ols.length > 0) prepare_ol(ols[0], new_ol_name); 3699 } 3700} 3701 3702function numbered_ols() { 3703 eventPush(window, 'load', function () { 3704 var parent = false;
3705 var ols = document.getElementsByTagName('ol'); 3706 var main_ol_list = new Array(); 3707 for (var i = 0; i < ols.length; i++) { 3708 if (!parent) { 3709 parent = ols[i].parentNode; 3710 } else { 3711 if (ols[i].parentNode != parent) continue; 3712 } 3713 main_ol_list.push(ols[i]); 3714 } 3715 for (i = 0; i < main_ol_list.length; i++) { 3716 prepare_ol(main_ol_list[i], main_ol_list.length > 1 ? i + 1 : ''); 3717 if (main_ol_list.length > 1) { 3718 var a = document.createElement('a'); 3719 a.name = i + 1; 3720 main_ol_list[i].prepend(a); 3721 } 3722 } 3723 highlight_ol(); 3724 }); 3725 3726 eventPush(window, 'hashchange', function (event) { 3727 event.preventDefault(); 3728 highlight_ol(); 3729 }); 3730} 3731 3732function show_geo_details(is_show) { 3733 var geo_details = nodeById('geo_details'); 3734 if (!geo_details) return; 3735 if (is_show) { 3736 removeClass(geo_details, 'hide'); 3737 } else { 3738 setTimeout(function () { 3739 if (!mouse_on_geo_details) addClass(geo_details, 'hide'); 3740 }, 500); 3741 } 3742} 3743 3744function cash_page_click_event(e) { 3745 var evt = e || window.event; 3746 var target = evt.target || evt.srcElement; 3747 if (!checkParent(geo_details, target)) show_geo_details(false); 3748} 3749 3750function correct_layout(str, rev) { 3751 var replacer = { 3752 'q': 'é', 'w': 'ö', 'e': 'ó', 'r': 'ê', 't': 'Ã¥', 'y': 'Ã', 'u': 'ã', 3753 'i': 'ø', 'o': 'ù', 'p': 'ç', '[': 'õ', ']': 'ú', 'a': 'ô', 's': 'û', 3754 'd': 'â', 'f': 'à ', 'g': 'ï', 'h': 'ð', 'j': 'î', 'k': 'ë', 'l': 'ä', 3755 ';': 'æ', '\'': 'ý', 'z': 'ÿ', 'x': '÷', 'c': 'ñ', 'v': 'ì', 'b': 'è', 3756 'n': 'ò', 'm': 'ü', ',': 'á', '.': 'þ', '/': '.', '`': '¸' 3757 }; 3758 if (rev) { 3759 var rev_replacer = {}; 3760 for (var key in replacer) rev_replacer[replacer[key]] = key; 3761 replacer = rev_replacer; 3762 } 3763 return str.replace(/./g, function (found) { 3764 if (replacer[found]) return replacer[found]; 3765 return found; 3766 }); 3767} 3768 3769function correct_translit(str, replacer) { 3770 if (str == '') return ''; 3771 3772 var template = ''; 3773 for (var key in replacer) template += (template !== '' ? '|' : '') + key; 3774 var replacer_reg = new RegExp(template, 'g'); 3775 3776 var variants = [str]; 3777 var i = 0; 3778 while (true) { 3779 if (variants[i] !== undefined) { 3780 variants[i] = variants[i].replace(replacer_reg, function (key) { 3781 var synonyms = replacer[key].split('|'); 3782 for (var j = 0; j < synonyms.length; j++) { 3783 if (j == synonyms.length - 1) return synonyms[j];//last 3784 variants.push(variants[i].replace(new RegExp(key, 'g'), synonyms[j])); 3785 } 3786 }); 3787 } 3788 i++; 3789 if (i == variants.length) break; 3790 } 3791 return variants; 3792} 3793 3794function correct_translit_en(str) { 3795 var replacer = { 3796 'zh': 'æ', 'eo': '¸', 'ts': 'ö', 'sh': 'ø', 'shch': 'ù', 'ch': '÷', 'je': 'Ã¥', 3797 'yu': 'þ', 'ya': 'ÿ', 'th': 'ô|ò|ç', 'ee': 'è', 3798 'a': 'à ', 'b': 'á', 'c': 'ñ|ö|ê', 'v': 'â', 'g': 'ã', 'd': 'ä', 'e': 'Ã¥|ý', 'z': 'ç', 3799 'j': 'é', 'k': 'ê', 'l': 'ë|ëü', 'm': 'ì', 'n': 'Ã', 'o': 'î', 'p': 'ï', 'r': 'ð', 3800 's': 'ñ', 't': 'ò', 'u': 'ó', 'f': 'ô', 'h': 'õ', 'y': 'é|è', 'i': 'è', 'w': 'â', 3801 'q': 'ê', 'x': 'êñ' 3802 }; 3803 3804 return(correct_translit(str, replacer)); 3805} 3806 3807function correct_translit_ru(str) { 3808 var replacer = { 3809 'êñ': 'x', 3810 'à ': 'a', 'á': 'b', 'â': 'v|w', 'ã': 'g', 'ä': 'd', 'Ã¥': 'e|a', 'ç': 'z|th|s', 'è': 'i|e', 3811 'é': 'j|i|y', 'ê': 'k|q|c', 'ë': 'l', 'ì': 'm', 'Ã': 'n', 'î': 'o', 'ï': 'p', 'ð': 'r', 3812 'ñ': 's', 'ò': 't', 'ó': 'u', 'ô': 'f|th', 'õ': 'h', 'ö': 'c', 'û': 'y', 'ý': 'e|a', 3813 'ø': 'sh', 'ÿ': 'ya', '¸': 'e|yo', 'æ': 'zh', 'þ': 'yu|u', '÷': 'ch', 'ù': 'shch' 3814 }; 3815 3816 return(correct_translit(str, replacer)); 3817} 3818 3819function hide_search_results(direct) { 3820 var adirect = direct == 'rc' ? 'lc' : 'rc'; 3821 3822 addClass(document.getElementById(direct + '_search_results'), 'hide'); 3823 removeClass(document.getElementById('curr_tab'), direct + '_searched'); 3824 eval(direct + '_searched = false'); 3825 var input_field = document.getElementById(direct + '_search'); 3826 if (!isEmpty(input_field)) { 3827 input_field.value = ''; 3828 } 3829 for (var i = 1; i <= 5; i++) { 3830 var cy_head = document.getElementById('t' + direct + i); 3831 removeClass(cy_head, 'hide'); 3832 cy_head.colSpan = 2; 3833 var cy_head_a = document.getElementById('t' + adirect + i); 3834 addClass(cy_head_a, 'hide'); 3835 cy_head_a.colSpan = 1; 3836 } 3837} 3838 3839function search_cy(direct) { 3840 var adirect = direct == 'rc' ? 'lc' : 'rc'; 3841 if (lc_searched != rc_searched) { 3842 eval('if (' + adirect + '_searched) hide_search_results(\'' + adirect + '\')'); 3843 } 3844 3845 var input_field = document.getElementById(direct + '_search'); 3846 var text = input_field.value.replaceAll('-', '').toLowerCase().substring(0, 30).trim(); 3847 if (text) { 3848 if (!lc_searched && !rc_searched) { 3849 addClass(document.getElementById('curr_tab'), direct + '_searched'); 3850 eval(direct + '_searched = true'); 3851 for (var i = 1; i <= 5; i++) { 3852 var cy_head = document.getElementById('t' + direct + i); 3853 removeClass(cy_head, 'hide'); 3854 cy_head.colSpan = 1; 3855 var cy_head_a = document.getElementById('t' + adirect + i); 3856 removeClass(cy_head_a, 'hide'); 3857 cy_head_a.colSpan = 1; 3858 } 3859 } 3860 3861 var variants = new Array(text, text.replace(/./gi, function(match) { 3862 return layout_map[match] === undefined ? match : layout_map[match]; 3863 })); 3864 if (lang['language_code'] == 'ru') variants = variants.concat( 3865 correct_translit_ru(text), 3866 correct_translit_en(text), 3867 correct_layout(text, false), 3868 correct_layout(text, true), 3869 correct_translit_ru(correct_layout(text, false)), 3870 correct_translit_en(correct_layout(text, true)) 3871 ); 3872 var uniq_variants = new Array(); 3873 for (var i = 0; i < variants.length; i++) { 3874 var found = false;
3875 for (var j = 0; j < i; j++) { 3876 if (variants[j] == variants[i]) { 3877 found = true; 3878 break; 3879 } 3880 } 3881 if (!found) uniq_variants.push(variants[i].replace(/ +/gi, ' ').trim().split(' ')); 3882 } 3883 3884 var results = cy_list.filter(function (e, index) { 3885 var found = false; 3886 for (var i = 0; i < uniq_variants.length; i++) { 3887 for (var j = 0; j < uniq_variants[i].length; j++) { 3888 var pos = e.name.indexOf(uniq_variants[i][j]); 3889 if (pos > -1) { 3890 if (text.length > 2) pos /= 10; 3891 if (cy_list[index].pos === undefined || cy_list[index].pos > pos + i * 10) cy_list[index].pos = pos + i * 10; 3892 found = true; 3893 } else { 3894 found = false; 3895 for (var k = i + 1; k < uniq_variants.length; k++) { 3896 if (uniq_variants[k][j] === undefined) continue; 3897 var pos = e.name.indexOf(uniq_variants[k][j]); 3898 if (pos > -1) { 3899 if (text.length > 2) pos /= 10; 3900 if (cy_list[index].pos === undefined || cy_list[index].pos > pos + k * 10) cy_list[index].pos = pos + k * 10; 3901 found = true; 3902 break; 3903 } 3904 } 3905 if (!found) break; 3906 } 3907 if (!found) break; 3908 } 3909 if (found) break; 3910 } 3911 if (found) cy_list[index].index = index; 3912 return found; 3913 }).sort(function (a, b) { 3914 return a.pos * rk_list[a.index] - b.pos * rk_list[b.index]; 3915 }); 3916 3917 var content = ''; 3918 var link; 3919 var is_alt = true; 3920 var is_unav; 3921 var is_clicked; 3922 for (var i = 0; i < ds_list.length + 5; i++) {//+headers 3923 is_alt = !is_alt; 3924 eval('is_clicked = results[i] !== undefined && ds_list[results[i].index] == ' + direct + '_curr'); 3925 content += '<tr class="' + (is_alt ? 'alt' : '') + '"><td class="' + (is_clicked ? 'c' : '') + direct + '">'; 3926 if (results[i]) { 3927 link = document.getElementById('a' + direct + ds_list[results[i].index]); 3928 eval('is_unav = ' + adirect + '_curr > 0 && av_list[id2pos(' + adirect + '_curr)].substring(results[i].index, results[i].index + 1) == "0"'); 3929 content += '<a ' + (is_unav ? 'class="unav"' : '') + ' onclick="hide_search_results(\'' + direct + '\'); return clk(' + ds_list[results[i].index] + ', \'' + direct + '\')">' + link.innerHTML + '</a>'; 3930 } else { 3931 content += '<span class="empty_cy">' + (i == 0 && results.length == 0 ? ' — // —' : '') + '</span>'; 3932 } 3933 content += '</td></tr>'; 3934 } 3935 3936 var search_results = document.getElementById(direct + '_search_results'); 3937 search_results.innerHTML = '<table><tbody>' + content + '</tbody></table>'; 3938 search_results.style.height = (document.getElementById('curr_tab_c').clientHeight - 30) + 'px'; 3939 search_results.style.maxHeight = (document.getElementById('curr_tab_c').clientHeight - 30) + 'px'; 3940 removeClass(search_results, 'hide'); 3941 } 3942 3943 if (!text && (lc_searched || rc_searched)) { 3944 hide_search_results(direct); 3945 } 3946} 3947 3948function set_search_field(direct) { 3949 var input_field = document.getElementById(direct + '_search'); 3950 if (isEmpty(input_field)) return;
3951 if ('onpropertychange' in input_field) { 3952 input_field.onpropertychange = function() { 3953 if (event.propertyName == 'value') search_cy(direct); 3954 }; 3955 } else { 3956 eventPush(input_field, 'input', function() { 3957 search_cy(direct); 3958 }); 3959 } 3960 eventPush(input_field, 'keydown', function (evt) { 3961 evt = evt || window.event; 3962 var key_code = evt.keyCode || evt.which; 3963 if (key_code == 27) { 3964 hide_search_results(direct); 3965 input_field.blur(); 3966 return false; 3967 } 3968 var key_char = String.fromCharCode(key_code >= 96 ? key_code - 48 * Math.floor(key_code / 48) : key_code).toLowerCase(); 3969 if (key_char.length == 1) layout_map[evt.key] = key_char; 3970 }); 3971 eventPush(document.getElementById(direct + '_cancel_button'), 'click', function () { 3972 eval('if (' + direct + '_searched) {hide_search_results(\'' + direct + '\') } else {setFocus(input_field)}'); 3973 }); 3974 3975 if (cy_list.length == 0) { 3976 var link; 3977 for (var i = 0; i < ds_list.length; i++) { 3978 link = document.getElementById('alc' + ds_list[i]); 3979 if (!isEmpty(link)) cy_list[i] = {name: link.getAttribute('data-keywords')}; 3980 } 3981 } 3982} 3983 3984function search_exchanger_name() { 3985 var text = prompt(lang['exch_search'], 'exchanger.com'); 3986 if (!text) return; 3987 3988 var req = createRequest(); 3989 if (req) { 3990 var ajax_timer = setTimeout(function() { 3991 req.abort(); 3992 req.onreadystatechange = function() { 3993 return true; 3994 }; 3995 alert(lang['str_fail_err']); 3996 }, 25000); 3997 3998 req.onreadystatechange = function() { 3999 if (req.readyState != 4) return; 4000 clearTimeout(ajax_timer); 4001 if (req.status == 200) { 4002 var result = req.responseText; 4003 if (result == 'OK') { 4004 alert(lang['exch_search_none']); 4005 } else if (result == 'EXISTS') { 4006 alert(lang['exch_search_found']); 4007 } else { 4008 alert(lang['exch_search_err']); 4009 } 4010 } else { 4011 alert(lang['str_fail_err']); 4012 } 4013 } 4014 4015 sendRequest(req, 'action=searchexchangername&text=' + encodeURIComponent(text), function () { 4016 alert(lang['str_fail_err']); 4017 }); 4018 } 4019 return false; 4020} 4021 4022function set_pattern_checker(obj, is_leave) { 4023 var pattern_text = obj.getAttribute('pattern'); 4024 if (pattern_text == null || pattern_text == '') { 4025 removeClass(obj, 'error'); 4026 return; 4027 } 4028 var pattern = new RegExp('^' + pattern_text + '$'); 4029 if (pattern.test(obj.value)) { 4030 removeClass(obj, 'error'); 4031 } else { 4032 if (is_leave) { 4033 addClass(obj, 'error'); 4034 } else { 4035 if (last_field_check_timer > 0) { 4036 clearTimeout(last_field_check_timer); 4037 if (last_field_check_obj != obj) set_pattern_checker(last_field_check_obj, true); 4038 } 4039 last_field_check_obj = obj; 4040 last_field_check_timer = setTimeout(function () { 4041 set_pattern_checker(last_field_check_obj, true); 4042 last_field_check_obj = false; 4043 last_field_check_timer = 0; 4044 }, 1000); 4045 } 4046 } 4047} 4048 4049function mark_tag_by_pattern(tag, check_on_load) { 4050 var objs = document.getElementsByTagName(tag); 4051 for (const obj of objs) { 4052 if (tag == 'input' && obj.type != 'text') return; 4053 if (obj.getAttribute('error-checker') != null) return; 4054 obj.setAttribute('error-checker', true); 4055 eventPush(obj, 'input', function () { 4056 set_pattern_checker(obj); 4057 }); 4058 eventPush(obj, 'change', function () { 4059 set_pattern_checker(obj); 4060 }); 4061 eventPush(obj, 'blur', function () { 4062 set_pattern_checker(obj, true); 4063 }); 4064 if (check_on_load) set_pattern_checker(obj, true); 4065 } 4066} 4067 4068function mark_all_fields_by_pattern(check_on_load = true) { 4069 mark_tag_by_pattern('input', check_on_load); 4070 mark_tag_by_pattern('textarea', check_on_load); 4071} 4072 4073function aml_filter_crypto(address) { 4074 var found = -1; 4075 var skipped = -1; 4076 var crypto = document.getElementById('crypto'); 4077 var found_list = {}; 4078 for (var i = 0; i < crypto.options.length; i++) { 4079 var template = crypto.options[i].getAttribute('data-template'); 4080 if (template) { 4081 var template_reg = new RegExp('^' + template + '$'); 4082 if (template_reg.test(address)) { 4083 found_list[i] = true; 4084 if (found == -1) { 4085 if (crypto.options[i].getAttribute('data-skip') == 1) { 4086 skipped = i; 4087 } else { 4088 found = i; 4089 } 4090 } 4091 } 4092 } 4093 } 4094 if (found == -1 && skipped > -1) found = skipped; 4095 if (found > -1 && found != crypto.options.selectedIndex) { 4096 crypto.options.selectedIndex = found; 4097 aml_choose_crypto(); 4098 } 4099 for (var i = 0; i < crypto.options.length; i++) { 4100 if (found_list[i] || found == -1) { 4101 removeClass(crypto.options[i], 'hide'); 4102 } else { 4103 addClass(crypto.options[i], 'hide'); 4104 } 4105 } 4106} 4107 4108function aml_choose_crypto() { 4109 var template = ''; 4110 var crypto = document.getElementById('crypto'); 4111 if (crypto.options.selectedIndex > -1) { 4112 template = crypto.options[crypto.options.selectedIndex].getAttribute('data-template'); 4113 var active_count = 0; 4114 var active = -1; 4115 var analyzers = document.getElementById('analyzer'); 4116 for (var i = 0; i < analyzers.options.length; i++) { 4117 if (analyzers.options[i].value == '') continue; 4118 if (crypto.options.selectedIndex == 0) { 4119 removeClass(analyzers.options[i], 'hide'); 4120 } else { 4121 if (crypto.options[crypto.options.selectedIndex].getAttribute('data-active' + anal
4121yzers.options[i].value) == 1) { 4122 active_count++; 4123 active = i; 4124 removeClass(analyzers.options[i], 'hide'); 4125 } else { 4126 addClass(analyzers.options[i], 'hide'); 4127 } 4128 } 4129 } 4130 l(active_count); 4131 if (active_count == 1 && analyzers.options.selectedIndex != active) analyzers.options.selectedIndex = active; 4132 } 4133 var address_input = document.getElementById('address'); 4134 address_input.setAttribute('pattern', template); 4135 set_pattern_checker(address_input, true); 4136} 4137 4138function aml_check_submit(e) { 4139 e.preventDefault(); 4140 if (!nodeById('aml_agree').checked) { 4141 nodeById('agree_line').style.color = '#9c1a27'; 4142 return false; 4143 } 4144 var button = nodeById('aml_button'); 4145 addClass(button, 'disabled'); 4146 recaptcha_check('amlcheck', function (token) { 4147 document.getElementById('captcha_response').value = token; 4148 document.getElementById('aml_check_form').submit(); 4149 }, function () { 4150 removeClass(button, 'disabled'); 4151 }); 4152 return false; 4153} 4154 4155function aml_check_report(token) { 4156 var req = createRequest(); 4157 if (req) { 4158 set_status('report', lang['aml_report_check'], 'ajax.png', true); 4159 4160 var ajax_timer = setTimeout(function() { 4161 req.abort(); 4162 req.onreadystatechange = function() { 4163 return true; 4164 }; 4165 set_status('report', lang['str_fail_serv'], 'error.png', true); 4166 }, 25000); 4167 4168 req.onreadystatechange = function() { 4169 if (req.readyState != 4) return; 4170 clearTimeout(ajax_timer); 4171 if (req.status == 200) { 4172 var payment_wrapper = nodeById('payment_wrapper'); 4173 if (req.responseText == 'OK') { 4174 set_status('report', lang['aml_report_almost'], 'ok.png', true); 4175 collapse_block(payment_wrapper); 4176 setTimeout(function() { 4177 document.location = '/report/' + token; 4178 }, 1000); 4179 } else if (req.responseText == 'NOPAY') { 4180 set_status('report', lang['aml_report_waiting'], 'ajax.png', true); 4181 setTimeout(function() { 4182 aml_check_report(token); 4183 }, 10000); 4184 } else if (req.responseText == 'LATER') { 4185 set_status('report', lang['aml_report_started'], 'ajax.png', true); 4186 collapse_block(payment_wrapper); 4187 setTimeout(function() { 4188 aml_check_report(token); 4189 }, 10000); 4190 } else { 4191 set_status('report', lang['aml_report_failed'], 'error.png', true); 4192 setTimeout(function() { 4193 document.location = '/report/' + token; 4194 }, 1000); 4195 } 4196 } else { 4197 set_status('report', lang['str_fail_err'], 'error.png', true); 4198 } 4199 } 4200 4201 sendRequest(req, 'action=checkreport&tsid=' + token, function () { 4202 set_status('report', lang['str_fail_con'], 'error.png', true); 4203 }); 4204 } 4205 return false; 4206} 4207 4208function collapse_block(el, duration = 500, easing = 'ease') { 4209 if (!el) return; 4210 var duration = duration != null ? duration : 500; 4211 var easing = easing != null ? easing : 'ease'; 4212 var computed = window.getComputedStyle ? getComputedStyle(el) : el.currentStyle; 4213 if (computed && computed.display === "none") return; 4214 var startHeight = el.scrollHeight; 4215 el.style.overflow = "hidden"; 4216 el.style.height = startHeight + "px"; 4217 el.style.opacity = (computed && computed.opacity) ? computed.opacity : "1"; 4218 el.style.transition = "none"; 4219 el.offsetHeight; 4220 el.style.transition = "height " + duration + "ms " + easing + ", opacity " + duration + "ms " + easing; 4221 el.style.height = "0px"; 4222 el.style.opacity = "0"; 4223 var onEnd = function(e) { 4224 e = e || window.event; 4225 if (e.propertyName && e.propertyName !== "height") return; 4226 el.style.display = "none"; 4227 el.style.transition = ""; 4228 el.style.height = ""; 4229 el.style.opacity = ""; 4230 el.style.overflow = ""; 4231 if (el.removeEventListener) el.removeEventListener("transitionend", onEnd); 4232 else el.detachEvent("ontransitionend", onEnd); 4233 }; 4234 if (el.addEventListener) el.addEventListener("transitionend", onEnd); 4235 else if (el.attachEvent) el.attachEvent("ontransitionend", onEnd); 4236} 4237 4238function set_img_status(name, type, noclear) { 4239 if (status_timer != 0) clearTimeout(status_timer); 4240 status_timer = 0; 4241 document.getElementById(name + '_img').innerHTML = type ? '<img src="/images/' + type + '.png" width="16" height="16" />' : ''; 4242 if (!noclear) status_timer = setTimeout(function () { 4243 set_img_status(name, '', true); 4244 }, 2500); 4245} 4246 4247function aml_update_report(token) { 4248 var req = createRequest(); 4249 if (req) { 4250 var start_link = document.getElementById('update_report_start'); 4251 addClass(start_link, 'disabled'); 4252 set_img_status('update_report', 'ajax', true); 4253 4254 var ajax_timer = setTimeout(function() { 4255 req.abort(); 4256 req.onreadystatechange = function() { 4257 return true; 4258 }; 4259 set_img_status('update_report', 'error', false); 4260 removeClass(start_link, 'disabled'); 4261 }, 25000); 4262 4263 req.onreadystatechange = function() { 4264 if (req.readyState != 4) return; 4265 clearTimeout(ajax_timer); 4266 if (req.status == 200) { 4267 var results = req.responseText.split('[delimiter]'); 4268 if (results[0] == 'OK') { 4269 set_img_status('update_report', 'ok', true); 4270 setTimeout(function() { 4271 document.location = '/report/' + results[1]; 4272 }, 1000); 4273 } else { 4274 set_img_status('update_report', 'error', false); 4275 removeClass(start_link, 'disabled'); 4276 } 4277 } else { 4278 set_img_status('update_report', 'error', false); 4279 removeClass(start_link, 'disabled'); 4280 } 4281 } 4282 4283 sendRequest(req, 'action=updatereport&tsid=' + token, function () { 4284 set_img_status('update_report', 'error', false); 4285 removeClass(start_link, 'disabled'); 4286 }); 4287 } 4288 return false;
4289} 4290 4291function aml_show_all_checks(obj, event, pos) { 4292 if (show_all_box) { 4293 details_menu_hide(); 4294 return; 4295 } 4296 show_all_box = true; 4297 4298 var text = '<div id="other_check_list">' + document.getElementById('other_check_list_menu').innerHTML + '</div>'; 4299 4300 if (!details_menu_show(obj, true, text)) { 4301 show_all_box = false; 4302 return; 4303 } 4304 document.getElementById('other_check_list').scrollTop = (pos - 2) * 25; 4305 setFocus(document.getElementById('other_check_list').getElementsByTagName('a')[pos == 1 ? 0 : pos - 2]); 4306 stopBubbling(event); 4307} 4308 4309function redeem_voucher(aml_token, captcha_token) { 4310 var text = document.getElementById('voucher').value.trim(); 4311 if (text == '') { 4312 set_status('voucher', lang['aml_voucher_input'], 'error.png'); 4313 return; 4314 } 4315 var send_button = document.getElementById('redeem_voucher_btn'); 4316 send_button.disabled = true; 4317 var req = createRequest(); 4318 if (req) { 4319 set_status('voucher', lang['aml_report_check'], 'ajax.png', true); 4320 4321 var ajax_timer = setTimeout(function() { 4322 req.abort(); 4323 req.onreadystatechange = function() { 4324 return true; 4325 }; 4326 set_status('voucher', lang['str_fail_serv'], 'error.png'); 4327 send_button.disabled = false; 4328 }, 25000); 4329 4330 req.onreadystatechange = function() { 4331 if (req.readyState != 4) return; 4332 clearTimeout(ajax_timer); 4333 if (req.status == 200) { 4334 var results = req.responseText.split('[delimiter]'); 4335 if (results[0] == 'OK') { 4336 set_status('voucher', results[1], 'ok.png', true); 4337 setTimeout(function() { 4338 collapse_block(nodeById('payment_wrapper')); 4339 document.location = '/report/' + aml_token; 4340 }, 1000); 4341 } else if (results[0] == 'ERROR') { 4342 set_status('voucher', results[1] ? results[1] : lang['str_fail_err'], 'error.png'); 4343 } else { 4344 set_status('voucher', lang['str_fail_err'], 'error.png'); 4345 } 4346 } else { 4347 set_status('voucher', lang['str_fail_err'], 'error.png'); 4348 } 4349 send_button.disabled = false; 4350 } 4351 4352 sendRequest(req, 'action=redeemvoucher&tsid=' + aml_token + '&text=' + encodeURIComponent(text) + '&captcha=' + encodeURIComponent(captcha_token), function () { 4353 set_status('voucher', lang['str_fail_con'], 'error.png'); 4354 send_button.disabled = false; 4355 }); 4356 } 4357 return false; 4358} 4359 4360function calc_aml_total(price) { 4361 var inc_voucher = document.getElementById('inc_voucher'); 4362 var voucher_count = document.getElementById('voucher_count'); 4363 var voucher_label = document.getElementById('voucher_label'); 4364 var total_price = document.getElementById('total_price'); 4365 var receiver_label = document.getElementById('receiver_label'); 4366 var receiver_email = document.getElementById('receiver_email'); 4367 voucher_count.disabled = !inc_voucher.checked; 4368 if (inc_voucher.checked) { 4369 if (voucher_count.value <= 0) voucher_count.value = 10; 4370 if (voucher_count.value > 1000) voucher_count.value = 1000; 4371 setFocus(voucher_count); 4372 removeClass(voucher_label, 'disabled'); 4373 removeClass(receiver_label, 'disabled'); 4374 removeClass(receiver_email, 'disabled'); 4375 price *= parseInt(voucher_count.value) + 1; 4376 } else { 4377 addClass(voucher_label, 'disabled'); 4378 addClass(receiver_label, 'disabled'); 4379 addClass(receiver_email, 'disabled'); 4380 } 4381 total_price.innerHTML = '$' + price.toFixed(2); 4382 4383 var links = document.querySelectorAll('.merchants a'); 4384 links.forEach(link => { 4385 var url = new URL(link.href); 4386 url.searchParams.set('amount', price); 4387 link.href = url.toString(); 4388 if (url.searchParams.get('merchant') == 24) if (inc_voucher.checked) { 4389 addClass(link, 'disabled'); 4390 link.disabled = true; 4391 } else { 4392 removeClass(link, 'disabled'); 4393 link.disabled = false; 4394 } 4395 }); 4396} 4397 4398function submit_voucher(aml_token) { 4399 var send_button = document.getElementById('redeem_voucher_btn'); 4400 send_button.disabled = true; 4401 set_status('voucher', lang['info_review_check'], 'ajax.png', true); 4402 4403 recaptcha_check('redeemvoucher', function (token) { 4404 send_button.disabled = false;
4405 redeem_voucher(aml_token, token); 4406 }, function () { 4407 send_button.disabled = false; 4408 set_status('voucher', lang['str_fail_err'], 'error.png'); 4409 }); 4410 return false; 4411} 4412 4413function update_pay_status(token) { 4414 var req = createRequest(); 4415 if (req) { 4416 var ajax_timer = setTimeout(function() { 4417 req.abort(); 4418 req.onreadystatechange = function() { 4419 return true; 4420 }; 4421 set_status('pay', lang['str_fail_serv'], 'error.png', true); 4422 }, 25000); 4423 4424 req.onreadystatechange = function() { 4425 if (req.readyState != 4) return; 4426 clearTimeout(ajax_timer); 4427 if (req.status == 200) { 4428 var results = req.responseText.split('[delimiter]'); 4429 if (results[0] == 'OK') { 4430 set_status('pay', lang['pay_arrived'], 'ok.png', true); 4431 setTimeout(function() { 4432 document.location = results[1]; 4433 }, 2000); 4434 } else if (results[0] == 'MSG') { 4435 set_status('pay', results[1], 'ajax.png', true); 4436 setTimeout(function() { 4437 update_pay_status(token); 4438 }, 10000); 4439 } else { 4440 set_status('pay', lang['pay_error'], 'error.png', true); 4441 } 4442 } else { 4443 set_status('pay', lang['str_fail_err'], 'error.png', true); 4444 } 4445 } 4446 4447 sendRequest(req, 'action=updatepaystatus&tsid=' + token, function () { 4448 set_status('pay', lang['str_fail_con'], 'error.png', true); 4449 }); 4450 } 4451 return false; 4452} 4453 4454function toggle_obj(id_name) { 4455 var obj = nodeById(id_name); 4456 if (classExists(obj, 'hide')) { 4457 removeClass(obj, 'hide'); 4458 } else { 4459 addClass(obj, 'hide'); 4460 } 4461} 4462 4463function resize_copyfields() { 4464 var inputs = document.querySelectorAll('input.copyfield'); 4465 for (var i = 0; i < inputs.length; i++) { 4466 var width_div = document.createElement('div'); 4467 width_div.innerHTML = inputs[i].value; 4468 width_div.className = 'copyfield'; 4469 width_div.style.display = 'inline-block'; 4470 width_div.style.position = 'absolute'; 4471 width_div.style.top = '-1000px'; 4472 width_div.style.left = '-1000px'; 4473 width_div.style.visibility = 'hidden'; 4474 inputs[i].parentNode.insertBefore(width_div, inputs[i].nextSibling); 4475 try { 4476 inputs[i].style.width = window.getComputedStyle(width_div, null).getPropertyValue('width'); 4477 } catch(e) { 4478 inputs[i].style.width = width_div.currentStyle.height; 4479 } 4480 width_div.remove(); 4481 } 4482} 4483 4484//**** Styled Select ******************************** 4485
4486document.write('<style type="text/css">input.styled { display: none; } select.styled { opacity: 0 !important; filter: alpha(opacity=0) !important; -khtml-opacity: 0 !important; -moz-opacity: 0 !important; } #curr_list select.styled {width: 190px; font-size: 13px} @-moz-document url-prefix() { #curr_list optgroup { padding-left: 2px; } #curr_list option { background: url("/images/systems.png") no-repeat; padding: 2px 0 2px 26px; } }</style>'); 4487//input[type="checkbox"] { position: absolute; left: -9999px; } 4488 4489function setSelectStyle(objParent) { 4490 4491 var inputs = objParent.getElementsByTagName('input'), label = Array(); 4492 for (a = 0; a < inputs.length; a++) { 4493 if (inputs[a].type != 'checkbox') continue; 4494 if (inputs[a].className == 'newcheck') continue; 4495 inputs[a].style.position = 'absolute'; 4496 inputs[a].style.left = '-9999px'; 4497 4498 label[a] = document.createElement('label'); 4499 label[a].htmlFor = inputs[a].id; 4500 label[a].className = 'checkbox'; 4501 label[a].id = inputs[a].id + '_label'; 4502 if (inputs[a].checked) addClass(label[a], 'checked'); 4503 if (inputs[a].getAttribute('disabled')) addClass(label[a], 'disabled'); 4504 inputs[a].parentNode.insertBefore(label[a], inputs[a]); 4505 4506 inputs[a].onclick = function() { 4507 var element = this.previousSibling; 4508 if (this.checked) { 4509 addClass(element, 'checked'); 4510 } else { 4511 removeClass(element, 'checked'); 4512 } 4513 if (this.getAttribute('disabled')) { 4514 addClass(element, 'disabled'); 4515 } else { 4516 removeClass(element, 'disabled'); 4517 } 4518 }; 4519 } 4520 4521 var inputs = objParent.getElementsByTagName('select'), span = Array(), textnode, option; 4522 for (var a = 0; a < inputs.length; a++) { 4523 if (inputs[a].className != 'styled') continue; 4524 span[a] = document.createElement('span'); 4525 span[a].className = 'select'; 4526 span[a].id = 'custom_select_' + inputs[a].name; 4527 4528 option = inputs[a].getElementsByTagName('option'); 4529 if (option.length > 0) { 4530 textnode = document.createTextNode(option[0].childNodes[0].nodeValue); 4531 for (var b = 0; b < option.length; b++) if (option[b].selected) { 4532 textnode = document.createTextNode(option[b].childNodes[0].nodeValue); 4533 break; 4534 } 4535 span[a].appendChild(textnode); 4536 } 4537 inputs[a].parentNode.insertBefore(span[a], inputs[a]); 4538 inputs[a].onchange = function() { 4539 option = this.getElementsByTagName('option'); 4540 for (var d = 0; d < option.length; d++) if (option[d].selected) { 4541 document.getElementById('custom_select_' + this.name).childNodes[0].nodeValue = option[d].childNodes[0].nodeValue; 4542 break; 4543 } 4544 } 4545 } 4546} 4547 4548//**** Input Autoformat ******************************** 4549 4550function setInputAutoFormat(input, defvalue, del_sep, th_sep) { 4551 if (!del_sep) del_sep = '.'; 4552 if (!th_sep) th_sep = ' '; 4553 var rev_del_sep = del_sep == '.' ? (th_sep != ',' ? ',' : 'n') : '.'; 4554 var del_sep_reg = del_sep == '.' ? '\.' : del_sep; 4555 var rev_del_sep_reg = rev_del_sep == '.' ? '\\\.' : rev_del_sep; 4556 4557 var err_timer = 0; 4558 function inputError(input) { 4559 addClass(input, 'err'); 4560 if (err_timer > 0) clearTimeout(err_timer); 4561 err_timer = setTimeout(function () { 4562 removeClass(input, 'err'); 4563 err_timer = 0; 4564 }, 500); 4565 } 4566 4567 eventPush(input, 'keypress', function(e) { 4568 var reg = new RegExp(rev_del_sep_reg, 'g'); 4569 var sym = String.fromCharCode(e.charCode).replace(reg, del_sep); 4570 var reg = new RegExp('[0-9' + del_sep_reg + ']', 'g'); 4571 var is_corr = e.charCode == 13 || sym == '' || (sym != del_sep || (sym == del_sep && input.value.indexOf(del_sep) == -1)) && reg.test(sym); 4572 if (!is_corr) inputError(this); 4573 return is_corr; 4574 }); 4575 4576 var change_callback = function(e) { 4577 if (e.type == 'input' && navigator.userAgent.match(/Android/i)) return; 4578 var pos = getCursor(this); 4579 var oldvalue = input.value; 4580 var reg1 = new RegExp(rev_del_sep_reg, 'g'); 4581 var reg2 = new RegExp('[^0-9' + del_sep_reg + ']', 'g'); 4582 var begin = oldvalue.slice(0, pos).replace(reg1, del_sep).replace(reg2, ''); 4583 var end = oldvalue.slice(pos).replace(reg1, del_sep).replace(reg2, ''); 4584 value = begin + 'z' + end; 4585 pos = value.indexOf(del_sep); 4586 var newvalue = ''; 4587 if (pos > -1) { 4588 var reg3 = new RegExp(del_sep_reg, 'g'); 4589 newvalue = del_sep + (pos >
4589 0 ? value.slice(pos).replace(reg3, '') : ''); 4590 value = value.slice(0, pos); 4591 if (value == '') value = '0'; 4592 } 4593 var count = 0; 4594 for (var i = value.length - 1; i >= 0; i--) { 4595 var sym = value[i]; 4596 newvalue = sym + newvalue; 4597 if (sym != 'z') { 4598 count++; 4599 if (count == 3) { 4600 if (i > 1 || (i == 1 && value[i - 1] != 'z')) newvalue = th_sep + newvalue; 4601 count = 0; 4602 } 4603 } 4604 } 4605 pos = newvalue.indexOf('z'); 4606 newvalue = newvalue.replace(/z/g, ''); 4607 if (oldvalue != newvalue) { 4608 input.value = newvalue; 4609 if (pos > -1) setCursor(this, pos); 4610 } 4611 }; 4612 4613 eventPush(input, 'input', change_callback); 4614 eventPush(input, 'keyup', change_callback); 4615 eventPush(input, 'change', change_callback); 4616 4617 eventPush(input, 'blur', function () { 4618 var value = input.value; 4619 if (value.replace(/[^1-9]/g, '') == '') { 4620 input.value = numFormat(defvalue, del_sep, th_sep); 4621 return; 4622 } 4623 while ((value[0] == '0' && value[1] != del_sep) || value[0] == th_sep) value = value.slice(1); 4624 if (value[0] == del_sep) value = '0' + value; 4625 if (value.indexOf(del_sep) > -1) { 4626 var curchar, is_next = true; 4627 while (is_next) { 4628 curchar = value.slice(-1); 4629 if (curchar == del_sep) { 4630 is_next = false; 4631 } else if (curchar != '0' && curchar != th_sep) { 4632 break; 4633 } 4634 value = value.slice(0, value.length - 1); 4635 } 4636 } 4637 var reg1 = new RegExp(th_sep, 'g'); 4638 value = value.replace(reg1, ''); 4639 var reg2 = new RegExp(del_sep_reg, 'g'); 4640 value = value.replace(reg2, '.'); 4641 input.value = numFormat(value.replace(/[^0-9\.]/g, ''), del_sep, th_sep); 4642 }); 4643 4644 eventPush(input, 'focus', function () { 4645 if (input.value.replace(/[^1-9]/g, '') == '') input.value = ''; 4646 }); 4647 4648 fireEvent(input, 'blur'); 4649} 4650 4651//**** Save time offset ******************************** 4652 4653var old_time_offset = getCookie('time_offset'); 4654var current_date = new Date(); 4655var time_offset = current_date.getTimezoneOffset(); 4656if (time_offset != old_time_offset) { 4657 time_offset_changed = true; 4658 setCookie('time_offset', time_offset); 4659}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.