1var $ = jQuery.noConflict(); 2 3var recentlyViews = document.getElementById("recentlyViews"); 4if (recentlyViews) { 5 let symbols = getCookie('id_symbol'); 6 $.get({ 7 url: '/wp-json/naftemporiki/get-recently-views', 8 data: { "symbols": JSON.stringify(symbols) }, 9 success: function (data) { 10 if (data) { 11 recentlyViews.innerHTML = data; 12 } 13 } 14 }); 15} 16 17function containsObject(obj, list) { 18 var i; 19 for (i = 0; i < list.length; i++) { 20 if (JSON.stringify(list[i]) === JSON.stringify(obj)) { 21 return true; 22 } 23 } 24 25 return false; 26} 27 28var chEckIfSingle = document.querySelector('.single-symbol'); 29 30function setCookie(name, value, days) { 31 var expires = ""; 32 if (days) { 33 var date = new Date(); 34 date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); 35 expires = "; expires=" + date.toUTCString(); 36 } 37 document.cookie = name + "=" + (value || "") + expires + "; path=/"; 38} 39 40function getCookie(name) { 41 let a = `; ${document.cookie}`.match(`;\\s*${name}=([^;]+)`); 42 return a ? JSON.parse(a[1]) : []; 43} 44 45if (chEckIfSingle) { 46 let arr = getCookie('id_symbol'); 47 var id = chEckIfSingle.getAttribute('id'); 48 var dataClass = chEckIfSingle.getAttribute('data-class') 49 50 var obj = {}; 51 obj[id] = dataClass 52 var field = obj; 53 54 if (!containsObject(field, arr)) { 55 arr.push(field); 56 } 57 var test = []; 58 setCookie("id_symbol", JSON.stringify(arr), 5) 59} 60 61var taxMenu = document.querySelector('#tax-menu') 62 63if (taxMenu) { 64 taxMenu.addEventListener('click', function (e) { 65 e.preventDefault(); 66 var myTaxDropdown = document.getElementById('myTaxDropdown'); 67 if (myTaxDropdown) { 68 if (myTaxDropdown.classList.contains('show')) { 69 myTaxDropdown.classList.remove('show') 70 } else { 71 myTaxDropdown.classList.add('show') 72 } 73 } 74 if (this.classList.contains('open')) { 75 this.classList.remove('open') 76 } else { 77 this.classList.add('open') 78 } 79 }) 80} 81 82var widtht, containerwidth, left, way = 1, timer1, flag = false, t = 5; 83 84function toggleL() { 85 way = 1; 86 left -= 250; 87} 88 89function toggleR() { 90 way = 0; 91 left += 250; 92} 93 94function tick() { 95 if (way) { 96 if (--left < -widtht) { 97 left = containerwidth; 98 } 99 } else { 100 if (++left > containerwidth) { 101 left = -widtht; 102 } 103 } 104 105 $(".ticker-list").css("margin-left", left + "px"); 106 timer1 = setTimeout(tick, t); 107} 108 109jQuery(document).ready(function ($) { 110 111 var clickableCell = document.querySelectorAll('.clickable-cell tr'); 112 clickableCell.forEach(cell => { 113 cell.addEventListener('click', function (e) { 114 var link = this.getAttribute('data-link'); 115 var id = this.getAttribute('id'); 116 window.location.href = link + '?id=' + id; 117 }) 118 }) 119 120 var realtimepage = document.getElementById('realtime-page'); 121 if (realtimepage) { 122 document.addEventListener("keyup", function (event) { 123 if (event.code === 'Enter') { 124 GetSymbolInfo('realTimeCategory') 125 } 126 }) 127 128 var popupRealTimeCard = document.querySelectorAll('.popupRealTimeCard[data-card]'); 129 popupRealTimeCard.forEach(card => { 130 card.addEventListener('click', function (event) { 131 var key = this.getAttribute('data-card'); 132 var detect = document.querySelector('.ticker-list [data-id = "' + key + '"]'); 133 var sym = detect.querySelector('.stock-charts-label') 134 var symbolTickerPosition = detect.getBoundingClientRect().x 135 left = left - symbolTickerPosition + (containerwidth / 2) 136 sym.classList.add('ticker-highlight'); 137 setTimeout(function () { 138 sym.classList.remove('ticker-highlight'); 139 }, 1000); 140 }) 141 }) 142 143 } 144 var scrollTicker = document.querySelector('.scrollTicker') 145 if (scrollTicker) { 146 widtht = $('.ticker-list').width(); 147 containerwidth = $('.bn-news').width(); 148 left = containerwidth; 149 150 tick(t); 151 152 scrollTicker.addEventListener('mouseover', (event) => { 153 if (!flag) { 154 clearTimeout(timer1) 155 t = 25; 156 tick(t); 157 flag = true; 158 } 159 }); 160 161 scrollTicker.addEventListener('mouseout', (event) => { 162 if (flag) { 163 clearTimeout(timer1) 164 t = 7 165 tick(t); 166 flag = false 167 } 168 }); 169 } 170 171 var cleanfilters = document.querySelectorAll("#cleanfilters"); 172
173 cleanfilters.forEach(filter => { 174 175 filter.addEventListener("click", (event) => { 176 const urlParams = new URLSearchParams(window.location.search); 177 178 const paramKeys = Array.from(urlParams.keys()); 179 paramKeys.forEach(key => { 180 if (key !== 's') { 181 urlParams.delete(key); 182 } 183 }); 184 185 // Get the clean query string 186 const cleanQueryString = urlParams.toString(); 187 // Redirect or use the clean query string as needed 188 window.location.href = window.location.pathname + '?' + cleanQueryString; 189 190 }) 191 }) 192 193 194 $(".form-desk .filter-option").click(function () { 195 $(".auto-submit-form").submit(); 196 }) 197 198 $(".filters-mobile-content .filter-option").click(function () { 199 $(".auto-submit-form-mobile").submit(); 200 }) 201 // $.get({ 202 // url: 'https://services.naftemporiki.gr/finance/HistoryAreaChart.aspx', 203 // data: {"symbol":"GD.ATH","width":"134","height":"110","showtitle":"0","showgrid":"0","period":"1m"}, 204 // success: function(data) { 205 // console.log(data); 206 // } 207 // }); 208 209 var iframesContent = document.querySelectorAll('.post-content iframe'); 210 211 iframesContent.forEach(iframe => { 212 if (iframe) { 213 iframe.parentElement.classList.add('iframe-wrapper') 214 } 215 }) 216 217 var tablesContent = document.querySelectorAll('.post-content table') 218 tablesContent.forEach(tables => { 219 if (tables) { 220 if (!tables.parentElement.classList.contains('post-content')) { 221 tables.parentElement.classList.add('table-responsive') 222 } else { 223 var parent = tables.parentNode; 224 var wrapper = document.createElement('div'); 225 wrapper.setAttribute('class', 'table-responsive'); 226 parent.replaceChild(wrapper, tables); 227 wrapper.appendChild(tables); 228 } 229 } 230 }) 231 232 $('#newsTicker1').breakingNews(); 233 234 if ($('statsXa')) { 235 statisticsTable = $('#statsXa').DataTable({ 236 paging: false, 237 ordering: true, 238 info: false, 239 searching: true, 240 "iDisplayLength": 100, 241 "search": { regex: true }, 242 "columnDefs": [ 243 { "orderable": false, "targets": "noSort" } 244 ] 245 }); 246 } 247 248 249 if ($('#ratesTables')) { 250 ratesTables = $('#ratesTables').DataTable({ 251 paging: false, 252 ordering: true, 253 info: false, 254 searching: true, 255 "iDisplayLength": 100, 256 "search": { regex: true }, 257 "columnDefs": [ 258 { "orderable": false, "targets": "noSort" } 259 ] 260 }); 261 } 262 263 if ($('#capXa')) { 264 capXaTable = $('#capXa').DataTable({ 265 paging: false, 266 ordering: true, 267 info: false, 268 searching: true, 269 "iDisplayLength": 100, 270 "search": { regex: true }, 271 "columnDefs": [ 272 { "orderable": false, "targets": "noSort" } 273 ] 274 }); 275 } 276 277 if ($('#metalsTable')) { 278 metalsTable = $('#metalsTable').DataTable({ 279 paging: false, 280 ordering: true, 281 info: false, 282 searching: true, 283 "iDisplayLength": 100, 284 "search": { regex: true }, 285 "columnDefs": [ 286 { "orderable": false, "targets": "noSort" } 287 ] 288 }); 289 } 290 291 if ($('#realmetalsTable')) { 292 metalsTable = $('#realmetalsTable').DataTable({ 293 info: false, 294 ajax: { 295 url: "/wp-json/naftemporiki/get-realtime-metals", 296 data: { 297 "currency": "USD", 298 "functionName": "GetRealTimeExtendedMetalQuote", 299 "lng": "GR" 300 } 301 }, 302 columns: [ 303 { 304 data: 'Symbol', 305 render: function (data, type, row, meta) { 306 var html = '<a href="?id=' + data + row.Currency + '">' + 307 '<span class="d-block name text-bold">' + metal_name(row.Name) + '</span>' + 308 '</a>' + 309 '<small class="market d-block">' + data + row.Currency + '</span>' 310 return html; 311 } 312 }, 313 { 314 data: 'PercentChange', 315 render: function (data, type, row, meta) { 316 var classColor; 317 change = parseFloat(row.Change).toFixed(2); 318 pchange = parseFloat(data).toFixed(2); 319 if (Number(pchange) < 0) { 320 classColor = 'text-danger' 321 } else if (Number(pchange) > 0) { 322 classColor = 'text-success'; 323 } 324 var html = '<span class="value d-block text-bold ml-auto">' + convertFloatNumbers(row.Close) + '</span>' + 325 '<div class="d-flex justify-content-end">' + 326 '<small class="Change text-small d-block ' + classColor + ' " style="margin-right:5px;">' + convertFloatNumbers(change.toString()) + '</small>' + 327 '<small class="PercentChange text-small d-block ' + classColor + ' ">' + convertFloatNumbers(pchange.toString()) + ' %</small>' + 328 '</div>'; 329 return html; 330 } 331 }, 332 333 { 334 data: 'Time', 335 render: function (data, type, row, meta) { 336 var html = '<div class="d-flex justify-content-end"><span class="date" style="margin-right:5px;">' + ConvertDate(row.Date) + '</span>' + 337 '<span class="time">' + convertUTCtime(row.Date + " " + data) + '</span></div> '; 338 return html; 339 } 340 } 341 ], 342 processing: true, 343 serverSide: true, 344 "iDisplayLength": 10, 345 searching: true, 346 "columnDefs": [ 347 { "orderable": false, "targets": "noSort" } 348 ] 349 }); 350 } 351 352 function symbolType(instrument) { 353 var types = { 354 'DER': 'ΠαÏάγÏγο', 355 'BND': 'ÎμÏλογο', 356 'EQ': 'ÎεÏοÏή', 357 'COMM': 'ÎμÏÏÏιο', 358 'FIDX': 'ÎÏμιÏμα (Î£Ï Î½Î¬Î»Î»Î±Î³Î¼Î±)', 359 'MTF': 'Îμοιβαίο κεÏάλαιο', 360 } 361 362 if (instrument in types) { 363 return types[instrument]; 364 } 365 366 return instrument; 367 368 } 369 370 if ($('#inactiveTable')) {
371 inactiveTable = $('#inactiveTable').DataTable({ 372 info: false, 373 order: [[2, 'desc']], 374 ajax: { 375 url: "/wp-json/naftemporiki/get-inactive-symbols", 376 data: { 377 "lng": "GR" 378 } 379 }, 380 columns: [ 381 { 382 data: 'instrCode', 383 render: function (data, type, row, meta) { 384 var html = 385 '<span class="d-block name text-bold">' + row.instrName + '</span>' + 386 '<small class="market d-block">' + data + '</small>'; 387 return html; 388 } 389 }, 390 { 391 data: 'instrumentSysName', 392 render: function (data, type, row, meta) { 393 var html = '<span class="type-symbol d-block ms-auto">' + symbolType(data) + '</span>'; 394 return html; 395 } 396 }, 397 { 398 data: 'tradeDate', 399 render: function (data, type, row, meta) { 400 var html = '<span class="updated-at ">' + ConvertDate(data) + '</span>'; 401 return html; 402 } 403 } 404 ], 405 processing: true, 406 serverSide: true, 407 "iDisplayLength": 30, 408 searching: true, 409 "columnDefs": [ 410 { "orderable": false, "targets": "noSort" } 411 ] 412 }); 413 } 414 415 if ($('#newSymbolsTable')) { 416 newSymbolsTable = $('#newSymbolsTable').DataTable({ 417 info: false, 418 order: [[2, 'desc']], 419 ajax: { 420 url: "/wp-json/naftemporiki/get-new-symbols", 421 data: { 422 "lng": "GR" 423 } 424 }, 425 columns: [ 426 { 427 data: 'instrCode', 428 render: function (data, type, row, meta) { 429 var html = 430 '<span class="d-block name text-bold">' + row.instrName + '</span>' + 431 '<small class="market d-block">' + data + '</small>'; 432 return html; 433 } 434 }, 435 { 436 data: 'instrumentSysName', 437 render: function (data, type, row, meta) { 438 var html = '<span class="type-symbol d-block ms-auto">' + symbolType(data) + '</span>'; 439 return html; 440 } 441 }, 442 { 443 data: 'added_at', 444 render: function (data, type, row, meta) { 445 var html = '<span class="updated-at ">' + ConvertDate(data) + '</span>'; 446 return html; 447 } 448 } 449 ], 450 processing: true, 451 serverSide: true, 452 "iDisplayLength": 30, 453 searching: true, 454 "columnDefs": [ 455 { "orderable": false, "targets": "noSort" } 456 ] 457 }); 458 } 459 460 function metal_name(metal_symbol) { 461 var cur_name; 462 if (metal_symbol) { 463 switch (metal_symbol) { 464 case "Silver 1 Oz": 465 cur_name = 'ÎÏήμι'; 466 break; 467 case "Gold 1 Oz": 468 cur_name = 'ΧÏÏ ÏÏÏ'; 469 break; 470 case "Palladium 1 Oz 999": 471 cur_name = 'Παλλάδιο'; 472 break; 473 case "Platinum 1 Oz 999": 474 cur_name = 'ΠλαÏίνα'; 475 break; 476 } 477 } else { 478 cur_name = 'Metal not found'; 479 } 480 return cur_name; 481 } 482 483 if ($('#foreign')) { 484 foreignTable = $('#foreign').DataTable({ 485 paging: false, 486 ordering: true, 487 info: false, 488 searching: true, 489 "iDisplayLength": 100, 490 "search": { regex: true }, 491 "columnDefs": [ 492 { "orderable": false, "targets": "noSort" } 493 ] 494 }); 495 } 496 497 if ($('symbolsStatistcs')) { 498 statisticsTable = $('#symbolsStatistcs').DataTable({ 499 pagingType: 'full_numbers', 500 ordering: true, 501 info: false, 502 searching: true, 503 "iDisplayLength": 10, 504 "search": { regex: true }, 505 "columnDefs": [ 506 { "orderable": false, "targets": "noSort" } 507 ] 508 }); 509 } 510 511 if ($('forwardRates')) { 512 forwardRates = $('#forwardRates').DataTable({ 513 paging: false, 514 ordering: true, 515 info: false, 516 searching: true, 517 "iDisplayLength": 100, 518 "search": { regex: true }, 519 "columnDefs": [ 520 { "orderable": false, "targets": "noSort" } 521 ] 522 }); 523 } 524 525 if ($('#bonds')) { 526 bondsTable = $('#bonds').DataTable({ 527 paging: false, 528 ordering: false, 529 info: false, 530 searching: true, 531 "iDisplayLength": 100, 532 "search": { regex: true }, 533 "columnDefs": [ 534 { "orderable": false, "targets": "noSort" } 535 ] 536 }); 537 } 538 539 if ($('#stockrates')) { 540 ratesTable = $('#stockrates').DataTable({ 541 paging: false, 542 ordering: false, 543 info: false, 544 searching: false, 545 "iDisplayLength": 100, 546 "search": { regex: true }, 547 "columnDefs": [ 548 { "orderable": false, "targets": "noSort" } 549 ] 550 }); 551 } 552 553 if ($('#crossrates')) { 554 crossratesTable = $('#crossrates').DataTable({ 555 paging: false, 556 ordering: false, 557 info: false, 558 searching: false, 559 "iDisplayLength": 100, 560 "search": { regex: true }, 561 "columnDefs": [ 562 { "orderable": false, "targets": "noSort" } 563 ] 564 }); 565 } 566 567 if ($('#sector')) { 568 sectorTable = $('#sector').DataTable({ 569 paging: false, 570 ordering: false, 571 info: false, 572 searching: true, 573 "columnDefs": [ 574 { "orderable": false, "targets": "noSort" } 575 ] 576 }); 577 } 578 579 if ($('#announcements')) { 580 announcements = $('#announcements').DataTable({ 581 pagingType: 'full_numbers', 582 ordering: false, 583 info: false, 584 searching: true, 585 "iDisplayLength": 30, 586 "columnDefs": [ 587 { "orderable": false, "targets": "noSort" } 588 ] 589 }); 590 } 591 592 if ($('#deroptions')) { 593 deroptions = $('#deroptions').DataTable({ 594 paging: false, 595 ordering: false, 596 info: false, 597 searching: true, 598 "columnDefs": [ 599 { "orderable": false, "targets": "noSort" } 600 ] 601 }); 602 } 603 604 if ($('#futures')) { 605 derCategor = $('#futures').DataTable({ 606 paging: false, 607 ordering: false, 608 info: false, 609 searching: true, 610 "columnDefs": [ 611 { "orderable": false, "targets": "noSort" } 612 ] 613 614 }); 615 } 616 617 if ($('#stockfutures')) { 618 derCategorStock = $('#stockfutures').DataTable({ 619 paging: false, 620 ordering: false, 621 info: false, 622 searching: true, 623 "columnDefs": [ 624 { "orderable": false, "targets": "noSort" } 625 ] 626 }); 627 } 628 629 if ($('#stockrepos')) { 630 stockRepos = $('#stockrepos').DataTable({ 631 paging: false, 632 ordering: false, 633 info: false, 634 searching: true, 635 "columnDefs": [ 636 { "orderable": false, "targets": "noSort" } 637 ] 638 }); 639 } 640 641 if ($('#symbolHistoryAll')) { 642 symbolHistoryAll = $('#symbolHistoryAll').DataTable({ 643 pagingType: 'full_numbers', 644 ordering: false, 645 info: false, 646 searching: true, 647 "iDisplayLength": 30, 648 dom: 'Bfrtip', 649 buttons: [ 650 // { 651 // extend: 'csv', 652 // text: 'DOWNLOAD', 653 // attr: { class: 'btn btn-outline-danger downloadbtn' }, 654 // charset: 'utf-8', 655 // extension: '.csv', 656 // filename: 'History', 657 // bom: true 658 // }, 659 { 660 extend: 'csv', 661 text: 'ÎήÏη αÏÏÎµÎ¯Î¿Ï .xls', 662 attr: { class: 'btn downloadbtn' }, 663 charset: 'utf-8', 664 extension: '.csv', 665 filename: 'History', 666 bom: true 667 } 668 ], 669 "columnDefs": [ 670 { "orderable": false, "targets": "noSort" } 671 ] 672 }); 673 } 674 675 if ($('#symbolHistory')) { 676 symbolHistory = $('#symbolHistory').DataTable({ 677 paging: true, 678 info: false, 679 ordering: false, 680 dom: 'Bfrtip', 681 "iDisplayLength": 10, 682 buttons: [ 683 { 684 extend: 'csv', 685 text: 'DOWNLOAD', 686 attr: { class: 'btn btn-outline-danger downloadbtn' }, 687 charset: 'utf-8', 688 extension: '.csv', 689 filename: 'History', 690 bom: true 691 } 692 ], 693 }); 694 } 695 696 if ($('#symbolIntraday')) { 697 var symbolIntraday = $('#symbolIntraday').DataTable({ 698 dom: 'Bfrtip', 699 buttons: [ 700 { 701 extend: 'csv', 702 text: 'DOWNLOAD', 703 attr: { class: 'btn btn-outline-danger downloadbtn' }, 704 charset: 'utf-8', 705 extension: '.csv', 706 filename: 'Intraday', 707 bom: true 708 } 709 ], 710 paging: false, 711 ordering: false, 712 info: false, 713 searching: false, 714 "iDisplayLength": 10, 715 "search": { regex: true }, 716 }); 717 } 718 719 if ($('#symbolsCurrent')) { 720 symbolsCurrent = $('#symbolsCurrent').DataTable({ 721 paging: false, 722 ordering: false, 723 info: false, 724 searching: true, 725 "columnDefs": [ 726 { "orderable": false, "targets": "noSort" } 727 ] 728 }); 729 } 730 731 if ($('#packages')) { 732 var country = $('#packages').attr('data-country'); 733 packagesTable = $('#packages').DataTable({ 734 info: false, 735 order: [[1, 'desc']], 736 ajax: { 737 url: "/wp-json/naftemporiki/get-packages-table", 738 data: { 739 "market": country, 740 "lng": "GR" 741 } 742 }, 743 columns: [ 744 { 745 data: 'instrCode', 746 render: function (data, type, row, meta) { 747 var link; 748 var country = $('#packages').attr('data-country'); 749 switch (country) { 750 case 'ATH': 751 link = "/chrimatistirio/symvola?id=" + row.instrSysName; 752 break; 753 case 'CYP': 754 link = "/kypros/symvola?id=" + row.instrSysName; 755 break; 756 } 757 var html = '<a href="' + link + '">' + 758 '<span class="d-block name text-bold">' + row.instrName + '</span>' + 759 '</a>' + 760 '<small class="symbol d-block">' + data + '</small>'; 761 return html; 762 } 763 }, 764 { 765 data: 'ptime', 766 render: function (data, type, row, meta) { 767 var time; 768 var d1 = new Date(); 769 var d2 = new Date(row.pdate); 770 var today = d1.getDate() + '/' + d1.getMonth(); 771 var currentDay = d2.getDate() + '/' + d2.getMonth(); 772 if (today != currentDay) { 773 time = ConvertDate(row.pdate) 774 } else { 775 time = ConvertTime(data); 776 } 777 var html = '<span class="last-updated">' + time + '</span>'; 778 return html; 779 } 780 }, 781 { 782 data: 'pprice', 783 render: function (data, type, row, meta) { 784 785 var html = '<span class="pprice text-bold">' + convertFloatNumbers((parseFloat(data).toFixed(2)).toString()); + '</span>'; 786 return html; 787 } 788 }, 789 { 790 data: 'pvolume', 791 render: function (data, type, row, meta) { 792 var html = '<span class="pvolume text-normal">
792' + numberWithCommas(parseInt(data).toString()) + '</span>'; 793 return html; 794 } 795 }, 796 { 797 data: 'pvalue', 798 render: function (data, type, row, meta) { 799 var html = '<span class="pvalue text-normal">' + convertFloatNumbers((parseFloat(Number(row.pvolume) * Number(row.pprice)).toFixed(3)).toString()) + '</span>'; 800 return html; 801 } 802 }, 803 { 804 data: 'pricePrevClosePricePDeltaOTC', 805 render: function (data, type, row, meta) { 806 var html = '<span class="pricePrevClosePricePDeltaOTC text-normal">' + convertFloatNumbers((parseFloat(data).toFixed(3)).toString()) + '</span>'; 807 return html; 808 } 809 }, 810 { 811 data: 'pricePrevClosePricePDelta', 812 render: function (data, type, row, meta) { 813 var price, delta, pdelta; 814 if (parseFloat(row.price) != 0) { 815 price = convertFloatNumbers((parseFloat(row.price).toFixed(2)).toString()); 816 pdelta = convertFloatNumbers((parseFloat(data).toFixed(2)).toString()); 817 } else { 818 price = convertFloatNumbers((parseFloat(row.prevClosePrice).toFixed(2)).toString()); 819 pdelta = convertFloatNumbers((parseFloat(row.prevClosePDelta).toFixed(2)).toString()); 820 } 821 822 var classColor; 823 if (Number(pdelta) < 0) { 824 classColor = 'text-danger' 825 } else if (Number(pdelta) > 0) { 826 classColor = 'text-success'; 827 } 828 829 var html = '<span class="value d-block text-bold ml-auto">' + price + '</span>' + 830 '<small class="pricePrevClosePricePDelta ' + classColor + '">' + pdelta + ' %</small>'; 831 return html; 832 } 833 } 834 ], 835 processing: true, 836 serverSide: true, 837 "iDisplayLength": 10, 838 searching: true, 839 "columnDefs": [ 840 { "orderable": false, "targets": "noSort" } 841 ] 842 }); 843 } 844 845 if ($('#symbols')) { 846 var country = $('#symbols').attr('data-country'); 847 var datatype = $('#symbols').attr('data-type'); 848 var sid = $('.compositionTables').attr('data-sid') 849 var url, data; 850 switch (datatype) { 851 case 'stock_symbols': 852 url = "/wp-json/naftemporiki/get-stock-symbols-info-table"; 853 data = { 854 "market": country, 855 "instrument": "EQ", 856 "lng": "GR" 857 } 858 break; 859 case 'composition': 860 861 url = "/wp-json/naftemporiki/get-indices-composition-symbols-table"; 862 data = { 863 "idxSid": sid, 864 "lng": "GR" 865 } 866 break; 867 case 'sector': 868 var categorySysName = $('.sectorsTable').attr('data-sector') 869 url = "/wp-json/naftemporiki/get-categories-bonds-table"; 870 data = { 871 "categorySysName": categorySysName, 872 "lng": "GR" 873 } 874 break; 875 case 'exchange_market': 876 var market = $('.marketTable').attr('data-market') 877 url = "/wp-json/naftemporiki/get-market-table"; 878 data = { 879 "market": market, 880 "lng": "GR" 881 } 882 break; 883 case 'der': 884 var underlyingInstrumentCode = $('#symbols').attr('data-under') 885 url = "/wp-json/naftemporiki/get-underlying-symbols-table"; 886 data = { 887 "underlyingInstrumentCode": underlyingInstrumentCode, 888 "lng": "GR" 889 } 890 break; 891 case 'eqder': 892 var instrCode = $('#symbols').attr('data-instrCode'); 893 url = "/wp-json/naftemporiki/get-common-symbols-master"; 894 data = { 895 "instrCode": instrCode, 896 "sid": sid, 897 "lng": "GR" 898 } 899 break; 900 } 901 902 oTable = $('#symbols').DataTable({ 903 // paging: false, 904 // ordering: true, 905 info: false, 906 // searching: true, 907 ajax: { 908 url: url, 909 data: data 910 }, 911 columns: [ 912 { 913 data: 'instrCode', 914 render: function (data, type, row, meta) { 915 var link; 916 switch (country) { 917 case 'ATH': 918 link = "/chrimatistirio/symvola?id=" + row.instrSysName; 919 break; 920 case 'CYP': 921 link = "/kypros/symvola?id=" + row.instrSysName; 922 break; 923 } 924 if (datatype == 'der' || datatype == 'eqder') {
925 if (row.categorySysName == 'StockFuture.ADEX' || row.categorySysName == 'IndexFuture.ADEX') { 926 link = "/paragoga/futures/?id=" + row.instrSysName; 927 } else if (row.categorySysName == 'IndexOption.ADEX' || row.categorySysName == 'StockOption.ADEX') { 928 link = "/paragoga/options/?id=" + row.instrSysName; 929 } else if (row.categorySysName == 'StockRepo.ADEX') { 930 link = "/paragoga/repos-metochon/?id=" + row.instrSysName; 931 } 932 } 933 var html = '<a href="' + link + '">' + 934 '<span class="d-block name text-bold">' + row.instrName + '</span>' + 935 '</a>' + 936 '<small class="symbol d-block">' + data + '</small>'; 937 return html; 938 } 939 }, 940 { 941 data: 'pricePrevClosePricePDelta', 942 render: function (data, type, row, meta) { 943 var price, delta, pdelta; 944 if (parseFloat(row.price) != 0) { 945 price = parseFloat(row.price).toFixed(2); 946 delta = parseFloat(row.pricePrevClosePriceDelta).toFixed(2); 947 pdelta = parseFloat(data).toFixed(2); 948 } else { 949 price = parseFloat(row.prevClosePrice).toFixed(2); 950 delta = parseFloat(row.prevCloseDelta).toFixed(2); 951 pdelta = parseFloat(row.prevClosePDelta).toFixed(2); 952 } 953 954 var classColor; 955 if (Number(pdelta) < 0) { 956 classColor = 'text-danger' 957 } else if (Number(pdelta) > 0) { 958 classColor = 'text-success'; 959 } 960 961 var html = '<span class="value d-block text-bold ml-auto">' + convertFloatNumbers(price.toString()) + '</span>' + 962 '<small class="pricePrevClosePriceDelta mr-5 ' + classColor + '">' + convertFloatNumbers(delta.toString()) + '</small>' + 963 '<small class="pricePrevClosePricePDelta ' + classColor + '">' + convertFloatNumbers(pdelta.toString()) + ' %</small>'; 964 return html; 965 } 966 }, 967 { 968 data: 'totalVolume', 969 render: function (data, type, row, meta) { 970 var html = '<span class="volume text-normal">' + numberWithCommas(parseInt(data).toString()) + '</span>'; 971 return html; 972 } 973 }, 974 { 975 data: 'openInterest', 976 render: function (data, type, row, meta) { 977 var html = '<span class="interest text-normal">' + numberWithCommas(parseInt(data).toString()) + '</span>'; 978 return html; 979 } 980 }, 981 { 982 data: 'bidPrice', 983 render: function (data, type, row, meta) { 984 var html; 985 if (parseInt(row.bidSize) != 0) { 986 html = '<div class="d-flex align-items-center justify-content-end">' + 987 '<span class="bidSize">' + numberWithCommas(parseInt(row.bidSize).toString()) + '</span>' + 988 '<span>x</span>' + 989 '<span class="bidPrice">' + convertFloatNumbers((parseFloat(data).toFixed(3)).toString()) + '</span>'; 990 } else { 991 html = '<span>x</span>'; 992 } 993 return html; 994 } 995 }, 996 { 997 data: 'askPrice', 998 render: function (data, type, row, meta) { 999 var html; 1000 if (parseInt(row.askSize) != 0) { 1001 html = '<div class="d-flex align-items-center justify-content-end">' + 1002 '<span class="askSize">' + numberWithCommas(parseInt(row.askSize).toString()) + '</span>' + 1003 '<span>x</span>' + 1004 '<span class="askPrice">' + convertFloatNumbers((parseFloat(data).toFixed(3)).toString()) + '</span>' 1005 } else { 1006 html = '<span>x</span>'; 1007 1008 } 1009 1010 return html; 1011 } 1012 }, 1013 { 1014 data: 'time', 1015 render: function (data, type, row, meta) { 1016 var time; 1017 if (parseFloat(row.price) != 0) { 1018 time = ConvertTime(data); 1019 } else { 1020 time = ConvertDate(row.prevCloseDate) 1021 } 1022 var html = '<span class="last-updated">' + time + '</span>'; 1023 return html; 1024 } 1025 } 1026 ], 1027 processing: true, 1028 serverSide: true, 1029 "iDisplayLength": 40, 1030 searching: true, 1031 "columnDefs": [ 1032 { "orderable": false, "targets": "noSort" } 1033 ] 1034 }); 1035 } 1036 1037 if ($('#mtfSymbols')) { 1038 var type = $('#mtfSymbols').attr('data-type'); 1039 var info = $('#mtfSymbols').attr('data-info'); 1040 switch (type) { 1041 case 'companies': 1042 url = "/wp-json/naftemporiki/get-mtf-company-symbols-table"; 1043 data = { 1044 "company": info, 1045 "lng": "GR" 1046 } 1047 break; 1048 case 'categories':
1049 url = "/wp-json/naftemporiki/get-mtf-category-symbols-table"; 1050 data = { 1051 "category": info, 1052 "lng": "GR" 1053 } 1054 break; 1055 } 1056 mtfTables = $('#mtfSymbols').DataTable({ 1057 pagingType: 'full_numbers', 1058 info: false, 1059 // searching: true, 1060 ajax: { 1061 url: url, 1062 data: data 1063 }, 1064 columns: [ 1065 { 1066 data: 'instrName', 1067 render: function (data, type, row, meta) { 1068 var link = "/amoivaia?id=" + row.instrSysName; 1069 var html = '<a href="' + link + '">' + 1070 '<span class="d-block name text-bold">' + data + '</span>' + 1071 '</a>'; 1072 return html; 1073 } 1074 }, 1075 { 1076 data: 'currCode', 1077 render: function (data, type, row, meta) { 1078 var html = '<span class="currCode d-block text-bold">' + data + '</span>'; 1079 return html; 1080 } 1081 }, 1082 { 1083 data: 'prevClosePrice', 1084 render: function (data, type, row, meta) { 1085 1086 var html = '<span class="prevClosePrice text-bold">' + convertFloatNumbers((parseFloat(data).toFixed(2)).toString()) + '</span>'; 1087 return html; 1088 } 1089 }, 1090 { 1091 data: 'prevCloseDelta', 1092 render: function (data, type, row, meta) { 1093 var classColor = ""; 1094 if (Number(row.prevClosePDelta) < 0) { 1095 classColor = 'text-danger' 1096 } else if (Number(row.prevClosePDelta) > 0) { 1097 classColor = 'text-success'; 1098 } 1099 var html = '<span class="prevCloseDelta ' + classColor + '">' + convertFloatNumbers((parseFloat(data).toFixed(2)).toString()) + '</span>'; 1100 return html; 1101 } 1102 }, 1103 { 1104 data: 'prevClosePDelta', 1105 render: function (data, type, row, meta) { 1106 var classColor = ""; 1107 if (Number(data) < 0) { 1108 classColor = 'text-danger' 1109 } else if (Number(data) > 0) { 1110 classColor = 'text-success'; 1111 } 1112 var html = '<span class="prevClosePDelta ' + classColor + '">' + convertFloatNumbers((parseFloat(data).toFixed(2)).toString()) + '</span>'; 1113 return html; 1114 } 1115 }, 1116 { 1117 data: 'yearToDateReturn', 1118 render: function (data, type, row, meta) { 1119 var html = '<span class="yearToDateReturn ">' + data + '</span>'; 1120 return html; 1121 } 1122 }, 1123 { 1124 data: 'prevCloseDate', 1125 render: function (data, type, row, meta) { 1126 var html = ''; 1127 if (data != '0000-00-00') { 1128 html = '<span class="prevCloseDate text-normal">' + ConvertDate(data) + '</span>'; 1129 } 1130 1131 return html; 1132 } 1133 1134 } 1135 ], 1136 processing: true, 1137 serverSide: true, 1138 "iDisplayLength": 50, 1139 "lengthMenu": [[10, 25, 50, 100, -1], [10, 25, 50, 100, "Îλα"]], 1140 searching: true, 1141 "columnDefs": [ 1142 { "orderable": false, "targets": "noSort" } 1143 ] 1144 }); 1145 } 1146 1147 if ($('#listing')) { 1148 var market = $('#listing').attr('data-market'); 1149 var instrument = $('#listing').attr('data-instrument'); 1150 var table = $('#listing').DataTable({ 1151 info: false, 1152 searching: false, 1153 "iDisplayLength": 20, 1154 ajax: { 1155 url: "/wp-json/naftemporiki/get-stats-table", 1156 data: { 1157 "market": market, 1158 "instrument": instrument, 1159 "lng": "GR" 1160 } 1161 }, 1162 columns: [ 1163 { 1164 data: 'instrCode', 1165 render: function (data, type, row, meta) { 1166 var link; 1167 switch (market) { 1168 case 'ATH': 1169 link = "/chrimatistirio/symvola?id=" + row.instrSysName; 1170 break; 1171 case 'ENAX': 1172 link = "/chrimatistirio/symvola?id=" + row.instrSysName; 1173 break; 1174 case 'CYP': 1175 link = "/kypros/symvola?id=" + row.instrSysName; 1176 break; 1177 case 'ADEX':
1178 if (row.categorySysName == 'StockFuture.ADEX' || row.categorySysName == 'IndexFuture.ADEX') { 1179 link = "/paragoga/futures?id=" + row.instrSysName; 1180 } else if (row.categorySysName == 'IndexOption.ADEX' || row.categorySysName == 'StockOption.ADEX') { 1181 link = "/paragoga/options?id=" + row.instrSysName; 1182 } else if (row.categorySysName == 'StockRepo.ADEX') { 1183 link = "/paragoga/repos-metochon?id=" + row.instrSysName; 1184 } 1185 break; 1186 } 1187 var html = '<a href="' + link + '">' + 1188 '<span class="d-block name text-bold">' + row.instrName + '</span>' + 1189 ' </a>' + 1190 '<small class="symbol text-small d-block">' + data + '</small>'; 1191 return html; 1192 } 1193 }, 1194 { 1195 data: 'pricePrevClosePricePDelta', 1196 render: function (data, type, row, meta) { 1197 var classColor = ""; 1198 if (Number(row.pricePrevClosePriceDelta) < 0) { 1199 classColor = 'text-danger' 1200 } else if (Number(row.pricePrevClosePriceDelta) > 0) { 1201 classColor = 'text-success'; 1202 } 1203 1204 var html = '<span class="value d-block text-bold ml-auto">' + convertFloatNumbers((parseFloat(row.price).toFixed(2)).toString()) + '</span>' + 1205 '<small class="pricePrevClosePriceDelta mr-5 ' + classColor + '">' + convertFloatNumbers((parseFloat(row.pricePrevClosePriceDelta).toFixed(2)).toString()) + '</small>' + 1206 '<small class="pricePrevClosePricePDelta ' + classColor + '">' + convertFloatNumbers((parseFloat(data).toFixed(2)).toString()) + ' %</small>'; 1207 return html; 1208 } 1209 }, 1210 { 1211 data: 'totalVolume', 1212 render: function (data, type, row, meta) { 1213 var html = '<span class="volume text-normal">' + numberWithCommas(parseInt(data).toString()) + '</span>'; 1214 return html; 1215 } 1216 }, 1217 { 1218 data: 'totalTurnover', 1219 render: function (data, type, row, meta) { 1220 var html = '<span class="turnover text-normal">' + numberWithCommas(parseInt(data).toString()) + '</span>'; 1221 return html; 1222 } 1223 1224 } 1225 ], 1226 processing: true, 1227 serverSide: true, 1228 }); 1229 } 1230 1231 $('#ratesSearch').keyup(function () { 1232 ratesTables.search($(this).val()).draw(); 1233 }) 1234 $('#metalsSearch').keyup(function () { 1235 metalsTable.search($(this).val()).draw(); 1236 }) 1237 $('#inactiveSearch').keyup(function () { 1238 inactiveTable.search($(this).val()).draw(); 1239 }) 1240 $('#newSymbolsSearch').keyup(function () { 1241 newSymbolsTable.search($(this).val()).draw(); 1242 }) 1243 1244 1245 $('#capXaSearch').keyup(function () { 1246 capXaTable.search($(this).val()).draw(); 1247 }) 1248 $('#foreignSearch').keyup(function () { 1249 foreignTable.search($(this).val()).draw(); 1250 }) 1251 $('#mtfSymbolSearch').keyup(function () { 1252 mtfTables.search($(this).val()).draw(); 1253 }) 1254 $('#bondsSearch').keyup(function () { 1255 var whatsSelected = [] 1256 if (!$(this).val()) { 1257 1258 bondsTable.column(0).search(whatsSelected.join('|'), true, false).draw(); 1259 } else { 1260 var names = document.querySelectorAll('[data-name]') 1261 var data = $(this).val() 1262 names.forEach(name => { 1263 var d = name.getAttribute('data-name') 1264 var g = name.getAttribute('data-code') 1265 if (d.includes(data) || g.includes(data)) { 1266 var c = name.querySelector('.name') 1267 whatsSelected.push(c.innerHTML); 1268 } 1269 }) 1270 bondsTable.column(0).search(whatsSelected.join('|'), true, false).draw(); 1271 } 1272 }) 1273 $('#stockreposSearch').keyup(function () { 1274 stockRepos.search($(this).val()).draw(); 1275 }) 1276 $('#stockfuturesSearch').keyup(function () { 1277 derCategorStock.search($(this).val()).draw(); 1278 }) 1279 $('#deroptions').keyup(function () { 1280 derCategor.search($(this).val()).draw(); 1281 }) 1282 $('#futuresSearch').keyup(function () { 1283 derCategor.search($(this).val()).draw(); 1284 }) 1285 $('#symbolSearch').keyup(function () { 1286 oTable.search($(this).val()).draw(); 1287 }) 1288 $('#packagesSearch').keyup(function () { 1289 packagesTable.search($(this).val()).draw(); 1290 }) 1291 $('#announcementsSearch').keyup(function () { 1292 announcements.search($(this).val()).draw(); 1293 }) 1294 1295 $('#sectorsSelectCountry').on('change', function () { 1296 if ($(this).val() == 'all') { 1297 sectorTable.search("").draw(); 1298 } else { 1299 sectorTable.search($(this).val()).draw(); 1300 } 1301 }); 1302 1303 1304 $('#idxFselect').on('change', function () { 1305 derCategor.column(0).search("").draw(); 1306 1307 if ($(this).val() != 'all') { 1308 var symbols = document.querySelectorAll(".symbolInfo[data-group='" + $(this).val() + "']"); 1309 var whatsSelected = [];
1310 symbols.forEach(symbol => { 1311 var name = symbol.querySelector('.symbol'); 1312 if (name) { 1313 name = name.innerHTML; 1314 whatsSelected.push(name); 1315 } 1316 }) 1317 derCategor.column(0).search(whatsSelected.join('|'), true, false).draw(); 1318 } 1319 }); 1320 1321 $('#stockFselect').on('change', function () { 1322 derCategorStock.column(0).search("").draw(); 1323 if ($(this).val() != 'all') { 1324 var symbols = document.querySelectorAll(".symbolInfo[data-group='" + $(this).val() + "']"); 1325 var whatsSelected = []; 1326 symbols.forEach(symbol => { 1327 var name = symbol.querySelector('.symbol'); 1328 if (name) { 1329 name = name.innerHTML; 1330 whatsSelected.push(name); 1331 } 1332 }) 1333 derCategorStock.column(0).search(whatsSelected.join('|'), true, false).draw(); 1334 } 1335 }); 1336 1337 $('#sectorsSymbolsSelect').on('change', function () { 1338 var value = $(this).val(); 1339 oTable.column(0).search("").draw(); 1340 if (value != 'all') { 1341 var symbols = document.querySelectorAll(".symbolInfo[data-category='" + value + "']"); 1342 var whatsSelected = []; 1343 symbols.forEach(symbol => { 1344 var name = symbol.querySelector('.categoryId'); 1345 if (name) { 1346 name = name.innerHTML; 1347 whatsSelected.push(name); 1348 } 1349 }) 1350 oTable.column(0).search(whatsSelected.join('|'), true, false).draw(); 1351 } 1352 }); 1353 1354 $('#sectorSearch').keyup(function () { 1355 sectorTable.search($(this).val()).draw(); 1356 }) 1357 1358 1359 // Mega Menu - hamburger toggle 1360 var stickyHeader = document.querySelector('.sticky-header') 1361 window.addEventListener('scroll', (e) => { 1362 if (stickyHeader) { 1363 if (window.scrollY > 0) { 1364 stickyHeader.classList.add('fixed-header') 1365 } else { 1366 stickyHeader.classList.remove('fixed-header') 1367 } 1368 } 1369 }); 1370 1371 var root = document.getElementsByTagName('html')[0]; 1372 $('.burger-menu').on('click', function (e) { 1373 e.preventDefault() 1374 var megaMenu = document.querySelector('.mega-menu'); 1375 if (megaMenu) { 1376 if (megaMenu.classList.contains('active')) { 1377 megaMenu.classList.remove('active'); 1378 root.classList.remove('is-noscroll'); 1379 } else { 1380 megaMenu.classList.add('active'); 1381 root.classList.add('is-noscroll'); 1382 } 1383 } 1384 1385 if ($(this).hasClass('is-active')) { 1386 $(this).removeClass('is-active'); 1387 } else { 1388 $(this).addClass('is-active'); 1389 } 1390 }); 1391 1392 if ($(".preview-template").hasClass("archive")) { 1393 $("body").removeClass("error404"); 1394 $("title").html($(".cat-menu li.is-active a").text() + " - " + $(".filter.btn-dark").data("type")); 1395 $(".filter").on("click", function (e) { 1396 var url = window.location.href; 1397 var filter = "" + $(this).data("type"); 1398 if (filter == "recently") 1399 url = (url.indexOf("popular") >= 0) ? url.replace("popular", filter) : url + filter; 1400 else 1401 url = (url.indexOf("recently") >= 0) ? url.replace("recently", filter) : url + filter; 1402 window.location.href = url; 1403 }); 1404 $(".load-more").on("click", function (res) { 1405 var posts_ignore = [0]; 1406 $(".preview-container .post_preview").each(function () { 1407 posts_ignore.push($(this).data("id")); 1408 }); 1409 $.post(BWTTHEME_SETTINGS.ajax_url, { 1410 "action": "bwttheme_get_preview_posts", 1411 "filter": $(".filter.btn-dark").attr("data-type"), 1412 "category": $(".cat-menu li.is-active").attr("data-id"), 1413 "post_type": $(".preview-template").data("type"), 1414 "limit": 12, 1415 "ignore": posts_ignore, 1416 "id": 0 1417 }, function (res) { 1418 if (res.data.length <= 0) { 1419 $(".load-more").hide(); 1420 return; 1421 } 1422 $(".preview-container").hide(); 1423 for (var i = 0; i < res.data.length; i++) { 1424 var el = $(".preview-template>div").clone(); 1425 var row = res.data[i]; 1426 $(el).attr("data-id", row[0]); 1427 $(el).find(".category").html(row[1]); 1428 $(el).find(".title").html(row[2]); 1429 $(el).find(".source").html(row[3]); 1430 $(el).find(".image").attr("src", row[4]); 1431 $(el).find(".image").attr("title", row[2]); 1432 $(el).find(".image").attr("alt", row[2]);
1433 $(el).find(".image-link").attr("href", row[5]); 1434 $(el).find(".image-link").attr("title", row[2]); 1435 $(".preview-container").append($(el)); 1436 } 1437 $(".preview-container").show(); 1438 }); 1439 }); 1440 } else { 1441 $(".cat-menu li").on("click", function (e) { 1442 $(".cat-menu li").removeClass("is-active"); 1443 $(this).addClass("is-active"); 1444 $.post(BWTTHEME_SETTINGS.ajax_url, { 1445 "action": "bwttheme_get_preview_posts", 1446 "filter": $(".filter.is-active").attr("data-type"), 1447 "category": $(".cat-menu li.is-active").attr("data-id"), 1448 "limit": 12, 1449 "id": BWTTHEME_SETTINGS.post_id 1450 }, function (res) { 1451 $(".preview-container").html("").hide(); 1452 for (var i = 0; i < res.data.length; i++) { 1453 var el = $(".preview-template>div").clone(); 1454 var row = res.data[i]; 1455 $(el).attr("data-id", row[0]); 1456 $(el).find(".category").html(row[1]); 1457 $(el).find(".title").html(row[2]); 1458 $(el).find(".source").html(row[3]); 1459 $(el).find(".image").attr("src", row[4]); 1460 $(el).find(".image").attr("title", row[2]); 1461 $(el).find(".image").attr("alt", row[2]); 1462 $(el).find(".image-link").attr("href", row[5]); 1463 $(el).find(".image-link").attr("title", row[2]); 1464 $(".preview-container").append($(el)); 1465 } 1466 $(".preview-container").show(); 1467 }); 1468 }); 1469 1470 $(".filter").on("click", function (e) { 1471 $(".filter").removeClass("is-active").removeClass("btn-dark").addClass("btn-outline-dark"); 1472 $(this).addClass("is-active").removeClass("btn-outline-dark").addClass("btn-dark"); 1473 $(".cat-menu li.is-active").trigger("click"); 1474 }); 1475 1476 $('.filter[data-type="popular"]').trigger("click"); 1477 } 1478 1479 $(".news-row-quick").hover(function () { 1480 var args = { 1481 "padding": "1em", 1482 "position": "absolute", 1483 "border": "1px solid #000", 1484 "background-color": "#fff", 1485 "left": $(this).find(".news-header-quick").offset().left + $(this).find(".news-header-quick").width(), 1486 "top": "calc(" + $(this).find(".news-header-quick").offset().top + " - 1em)", 1487 }; 1488 $(this).find(".news-content-quick").css(args).show(); 1489 }, function () { 1490 $(".news-content-quick").hide(); 1491 }); 1492}); 1493 1494var searchwrap = document.querySelector('.search-wrap') 1495var opensearch = document.querySelector('.open-search') 1496if (opensearch) { 1497 opensearch.addEventListener('click', function (e) { 1498 e.preventDefault(); 1499 if (searchwrap.classList.contains('is-active')) { 1500 searchwrap.classList.remove('is-active'); 1501 } else { 1502 searchwrap.classList.add('is-active'); 1503 } 1504 }) 1505} 1506 1507function ConvertTime(time) { 1508 if (time == "00:00:00.000") { 1509 return "00:00"; 1510 } 1511 time = time.split('.')[0]; 1512 const now = new Date("December 14, 2026 " + time); 1513 var minutes = now.getMinutes(); 1514 if (minutes < 10) { 1515 minutes = '0' + minutes 1516 } 1517 const current = now.getHours() + ':' + minutes; 1518 return current; 1519} 1520 1521function convertUTCtime(date) { 1522 var d = new Date(date + ' UTC'); 1523 var time = d.getHours() + ":" + d.getMinutes() 1524 return time; 1525} 1526 1527function ConvertDate(date) { 1528 var formattedDate = new Date(date); 1529 var d = formattedDate.getDate(); 1530 var m = formattedDate.getMonth(); 1531 m += 1; // JavaScript months are 0-11 1532 var y = formattedDate.getFullYear(); 1533 var fulldate = d + "/" + m + "/" + y 1534 return fulldate; 1535} 1536 1537/** Finance Indices */ 1538window.addEventListener('load', (event) => { 1539 GetSymbolInfo('symbolInfo'); 1540 updateGDSymbol(); 1541 getAllLondonFixing(); 1542 getRates(); 1543 getMetals(); 1544 getForeign(); 1545}); 1546 1547setInterval(function () { 1548 getPackages(); 1549}, 900000) 1550 1551setInterval(function () { 1552 getRates(); 1553 getMetals(); 1554 getForeign(); 1555}, 900000) 1556 1557setInterval(function () { 1558 GetSymbolInfo('symbolInfo'); 1559}, 900000) 1560 1561setInterval(function () { 1562 updateGDSymbol(); 1563}, 30000) 1564 1565function getPackages() { 1566 var symbolsLocation = document.querySelectorAll('.package'); 1567 var locationS = []; 1568 symbolsLocation.forEach(symbol => { 1569 locationS.push(symbol.getAttribute("id")); 1570 }) 1571 locationS = locationS.filter((v, i, a) => a.indexOf(v) === i); 1572 var symbolsLoc = locationS.join(','); 1573 if (symbolsLocation.length) { 1574 $.get({ 1575 url: '/wp-json/naftemporiki/get-packages-info', 1576 data: { "symbols": symbolsLoc, "lng": "GR" }, 1577 success: function (s_data) { 1578 if (s_data && s_data.length) { 1579 s_data.forEach(data => { 1580 if (data) { 1581 var ids = '[id="' + data.instrSysName + '"]'; 1582 var symbolIds = document.querySelectorAll(ids); 1583 symbolIds.forEach(symbolId => { 1584 if (symbolId) { 1585 var pprice = symbolId.querySelector('.pprice'); 1586 var ptime = symbolId.querySelector('.ptime'); 1587 var pricePrevClosePricePDelta = symbolId.querySelector('.pricePrevClosePricePDelta') 1588 var price = symbolId.querySelector('.price'); 1589 var pvolume = symbolId.querySelector('.pvolume') 1590 var pvalue = symbolId.querySelector('.pvalue') 1591 var pricePrevClosePricePDeltaOTC = symbolId.querySelector('.pricePrevClosePricePDeltaOTC') 1592 var date = data.pdate; 1593 if (pricePrevClosePricePDeltaOTC) { 1594 pricePrevClosePricePDeltaOTC.innerHTML = data.pricePrevClosePricePDeltaOTC 1595 } 1596 if (pvalue) { 1597 pvalue.innerHTML = Number(data.pvolume) * Number(data.pprice) 1598 } 1599 if (pvolume) { 1600 pvolume.innerHTML = parseInt(data.pvolume) 1601 } 1602 if (price) { 1603 price.innerHTML = data.price 1604 } 1605 if (pprice) { 1606 pprice.innerHTML = data.pprice; 1607 } 1608 if (ptime) { 1609 1610 if (date) { 1611 if (ConvertDate(date) === ConvertDate(d)) { 1612 ptime.innerHTML = ConvertTime(data.ptime) 1613 } else { 1614 ptime.innerHTML = ConvertDate(date); 1615 } 1616 } else { 1617 ptime.innerHTML = ConvertTime(data.ptime) 1618 } 1619 } 1620 if (pricePrevClosePricePDelta) { 1621 if (Number(checkChange) < 0) { 1622 pricePrevClosePricePDelta.classList.add('text-danger') 1623 pricePrevClosePricePDelta.classList.remove('text-success') 1624 } else if (Number(checkChange) > 0) { 1625 pricePrevClosePricePDelta.classList.add('text-success'); 1626 pricePrevClosePricePDelta.classList.remove('text-danger') 1627 } else { 1628 pricePrevClosePricePDelta.classList.remove('text-danger') 1629 pricePrevClosePricePDelta.classList.remove('text-success') 1630 } 1631 pricePrevClosePricePDelta.innerHTML = parseFloat(data.pricePrevClosePricePDelta).toFixed(2) + "%"; 1632 } 1633 1634 fillAllSelectors(data, symbolId); 1635 } 1636 }) 1637 } 1638 }); 1639 } 1640 } 1641 }); 1642 } 1643} 1644 1645 1646function getAllLondonFixing() { 1647 1648 var londonFix = document.querySelectorAll('.londonFix'); 1649 var london = [];
1650 londonFix.forEach(symbol => { 1651 london.push(symbol.getAttribute("id")); 1652 }) 1653 if (londonFix.length) { 1654 $.get({ 1655 url: '/wp-json/naftemporiki/get-london-all-fixing', 1656 data: { "functionName": "GetLondonFixing" }, 1657 success: function (s_data) { 1658 if (s_data && s_data.length) { 1659 s_data.forEach(data => { 1660 var ids = '[id="' + data.Symbol + data.Currency + '"]'; 1661 var symbolIds = document.querySelectorAll(ids); 1662 1663 symbolIds.forEach(symbolId => { 1664 if (symbolId) { 1665 var time = symbolId.querySelector('.time'); 1666 if (time) { 1667 if (data.Time) { 1668 time.innerHTML = convert12hTo24h(data.Date, data.Time); 1669 } 1670 } 1671 } 1672 }) 1673 }) 1674 } 1675 } 1676 }) 1677 } 1678} 1679 1680function convert12hTo24h(date, time) { 1681 var sHours = new Date(date + ' ' + time + ' ').getHours(); 1682 var sMinutes = new Date(date + ' ' + time + ' ').getMinutes() 1683 if (sHours < 10) sHours = "0" + sHours; 1684 if (sMinutes < 10) sMinutes = "0" + sMinutes; 1685 return sHours + ":" + sMinutes 1686} 1687function tConvert(time) { 1688 // Check correct time format and split into components 1689 time = time.toString().match(/^([01]\d|2[0-3])(:)([0-5]\d)(:[0-5]\d)?$/) || [time]; 1690 1691 if (time.length > 1) { // If time format correct 1692 time = time.slice(1); // Remove full string match value 1693 time[5] = +time[0] < 12 ? 'AM' : 'PM'; // Set AM/PM 1694 time[0] = +time[0] % 12 || 12; // Adjust hours 1695 } 1696 return time[0]; // return adjusted time or original string 1697} 1698 1699 1700function getForeign() { 1701 var symbolsLocation = document.querySelectorAll('.foreignInfo'); 1702 var locationS = []; 1703 symbolsLocation.forEach(symbol => { 1704 locationS.push(symbol.getAttribute("id")); 1705 }) 1706 locationS = locationS.filter((v, i, a) => a.indexOf(v) === i); 1707 var symbolsLoc = locationS.join(','); 1708 if (symbolsLocation.length) { 1709 $.get({ 1710 url: '/wp-json/naftemporiki/get-indices-values', 1711 data: { "identifier": symbolsLoc, "functionName": "GetDelayedIndicesValue" }, 1712 success: function (s_data) { 1713 if (s_data && s_data.length) { 1714 s_data.forEach(data => { 1715 if (data) { 1716 var ids = '[id="' + data.Identifier + '"]'; 1717 var symbolIds = document.querySelectorAll(ids); 1718 symbolIds.forEach(symbolId => { 1719 1720 if (symbolId) { 1721 var symbolValue = symbolId.querySelector('.value'); 1722 var symbolChange = symbolId.querySelector('.change'); 1723 var ChangeFromPreviousClose = symbolId.querySelector('.ChangeFromPreviousClose') 1724 var lastupdated = symbolId.querySelector('.last-updated') 1725 var time = symbolId.querySelector('.time') 1726 var pricePrevClosePriceDelta = symbolId.querySelector('.pricePrevClosePriceDelta') 1727 var pricePrevClosePricePDelta = symbolId.querySelector('.pricePrevClosePricePDelta') 1728 var open = symbolId.querySelector('.open'); 1729 var date = symbolId.querySelector('.date') 1730 var prevClosePrice = symbolId.querySelector('.prevClosePrice') 1731 if (data.Value) { 1732 if (prevClosePrice) { 1733 prevClosePrice.innerHTML = convertFloatNumbers(data.Value.PreviousClose) 1734 } 1735 if (date) { 1736 date.innerHTML = data.Value.Date; 1737 } 1738 1739 if (open) { 1740 open.innerHTML = data.Value.Open; 1741 } 1742 if (symbolValue) { 1743 symbolValue.innerHTML = convertFloatNumbers(parseFloat(data.Value.Last).toString()); 1744 } 1745 if (symbolChange) { 1746 if (Number(data.Value.PercentChangeFromPreviousClose) < 0) { 1747 symbolChange.classList.add('text-danger') 1748 symbolChange.classList.remove('text-success') 1749 } else if (Number(data.Value.PercentChangeFromPreviousClose) > 0) { 1750 symbolChange.classList.add('text-success'); 1751 symbolChange.classList.remove('text-danger') 1752 } else { 1753 symbolChange.classList.remove('text-danger') 1754 symbolChange.classList.remove('text-success') 1755 } 1756 symbolChange.innerHTML = convertFloatNumbers((parseFloat(data.Value.PercentChangeFromPreviousClose).toFixed(2)).toString()) + '%'; 1757 } 1758 const d = new Date(); 1759 if (lastupdated) {
1760 if (data.Value.Date) { 1761 if (ConvertDate(data.Value.Date) === ConvertDate(d) && data.Value.Time) { 1762 1763 lastupdated.innerHTML = convert12hTo24h(data.Value.Date, data.Value.Time); 1764 } else { 1765 lastupdated.innerHTML = ConvertDate(data.Value.Date); 1766 } 1767 } else if (data.Value.Time) { 1768 lastupdated.innerHTML = convert12hTo24h(data.Value.Date, data.Value.Time); 1769 } 1770 } 1771 1772 if (time) { 1773 if (data.Value.Date) { 1774 if (ConvertDate(data.Value.Date) === ConvertDate(d) && data.Value.Time) { 1775 time.innerHTML = convert12hTo24h(data.Value.Date, data.Value.Time); 1776 } else { 1777 time.innerHTML = ConvertDate(data.Value.Date); 1778 } 1779 } else if (data.Value.Time) { 1780 time.innerHTML = convert12hTo24h(data.Value.Date, data.Value.Time); 1781 } 1782 } 1783 1784 if (ChangeFromPreviousClose) { 1785 if (Number(data.Value.PercentChangeFromPreviousClose) < 0) { 1786 ChangeFromPreviousClose.classList.add('text-danger') 1787 ChangeFromPreviousClose.classList.remove('text-success') 1788 } else if (Number(data.Value.PercentChangeFromPreviousClose) > 0) { 1789 ChangeFromPreviousClose.classList.add('text-success'); 1790 ChangeFromPreviousClose.classList.remove('text-danger') 1791 } else { 1792 ChangeFromPreviousClose.classList.remove('text-danger') 1793 ChangeFromPreviousClose.classList.remove('text-success') 1794 } 1795 ChangeFromPreviousClose.innerHTML = convertFloatNumbers((parseFloat(data.Value.ChangeFromPreviousClose).toFixed(2)).toString()) 1796 } 1797 1798 if (pricePrevClosePricePDelta) { 1799 if (Number(data.Value.PercentChangeFromPreviousClose) < 0) { 1800 pricePrevClosePricePDelta.classList.add('text-danger') 1801 pricePrevClosePricePDelta.classList.remove('text-success') 1802 } else if (Number(data.Value.PercentChangeFromPreviousClose) > 0) { 1803 pricePrevClosePricePDelta.classList.add('text-success'); 1804 pricePrevClosePricePDelta.classList.remove('text-danger') 1805 } else { 1806 pricePrevClosePricePDelta.classList.remove('text-danger') 1807 pricePrevClosePricePDelta.classList.remove('text-success') 1808 } 1809 pricePrevClosePricePDelta.innerHTML = convertFloatNumbers((parseFloat(data.Value.PercentChangeFromPreviousClose).toFixed(2)).toString()) + '%'; 1810 1811 } 1812 1813 if (pricePrevClosePriceDelta) { 1814 if (Number(data.Value.PercentChangeFromPreviousClose) < 0) { 1815 pricePrevClosePriceDelta.classList.add('text-danger') 1816 pricePrevClosePriceDelta.classList.remove('text-success') 1817 } else if (Number(data.Value.PercentChangeFromPreviousClose) > 0) { 1818 pricePrevClosePriceDelta.classList.add('text-success'); 1819 pricePrevClosePriceDelta.classList.remove('text-danger') 1820 } else { 1821 pricePrevClosePriceDelta.classList.remove('text-danger') 1822 pricePrevClosePriceDelta.classList.remove('text-success') 1823 } 1824 pricePrevClosePriceDelta.innerHTML = convertFloatNumbers(data.Value.ChangeFromPreviousClose); 1825 } 1826 } 1827 } 1828 }) 1829 } 1830 }); 1831 } 1832 } 1833 }); 1834 } 1835} 1836 1837function getMetals() { 1838 var symbolsInfo = document.querySelectorAll('.metals'); 1839 var infoarray = []; 1840 symbolsInfo.forEach(symbol => { 1841 infoarray.push(symbol.getAttribute("id")); 1842 }) 1843 infoarray = infoarray.filter((v, i, a) => a.indexOf(v) === i); 1844 1845 if (infoarray.length) { 1846 infoarray.forEach(id => { 1847 $.get({ 1848 url: '/wp-json/naftemporiki/get-metal-quotes-info', 1849 data: { "symbols": id.substring(0, 3), "currency": id.substring(3, 7), "functionName": "GetRealTimeExtendedMetalQuote" }, 1850 success: function (s_data) { 1851 if (s_data && s_data.length) { 1852 s_data.forEach(data => { 1853 var ids = '[id="' + data.Symbol + data.Currency + '"]'; 1854 var symbolIds = document.querySelectorAll(ids); 1855 symbolIds.forEach(symbolId => { 1856 if (symbolId) { 1857 var symbolValue = symbolId.querySelector('.value'); 1858 var symbolChange = symbolId.querySelector('.change'); 1859 var bid = symbolId.querySelector('.bid') 1860 var ask = symbolId.querySelector('.ask') 1861 var date = symbolId.querySelector('.date') 1862 1863 var pricePrevClosePriceDelta = symbolId.querySelector('.pricePrevClosePriceDelta') 1864 var pricePrevClosePricePDelta = symbolId.querySelector('.pricePrevClosePricePDelta') 1865 var time = symbolId.querySelector('.time'); 1866 var prevClosePrice = symbolId.querySelector('.prevClosePrice') 1867 1868 if (symbolValue) { 1869 symbolValue.innerHTML = convertFloatNumbers(data.Close); 1870 } 1871 if (symbolChange) { 1872 if (Number(data.PercentChange) < 0) { 1873 symbolChange.classList.add('text-danger') 1874 symbolChange.classList.remove('text-success') 1875 } else if (Number(data.PercentChange) > 0) { 1876 symbolChange.classList.add('text-success'); 1877 symbolChange.classList.remove('text-danger') 1878 } else { 1879 symbolChange.classList.remove('text-danger') 1880 symbolChange.classList.remove('text-success') 1881 } 1882 symbolChange.innerHTML = convertFloatNumbers((parseFloat(data.PercentChange).toFixed(2)).toString()) + '%'; 1883 } 1884 1885 if (pricePrevClosePricePDelta) { 1886 if (Number(data.PercentChange) < 0) { 1887 pricePrevClosePricePDelta.classList.add('text-danger') 1888 pricePrevClosePricePDelta.classList.remove('text-success') 1889 } else if (Number(data.PercentChange) > 0) { 1890 pricePrevClosePricePDelta.classList.add('text-success'); 1891 pricePrevClosePricePDelta.classList.remove('text-danger') 1892 } else { 1893 pricePrevClosePricePDelta.classList.remove('text-danger') 1894 pricePrevClosePricePDelta.classList.remove('text-success') 1895 } 1896 pricePrevClosePricePDelta.innerHTML = convertFloatNumbers((parseFloat(data.PercentChange).toFixed(2)).toString()) + '%'; 1897 } 1898 1899 if (pricePrevClosePriceDelta) { 1900 if (Number(data.PercentChange) < 0) { 1901 pricePrevClosePriceDelta.classList.add('text-danger') 1902 pricePrevClosePriceDelta.classList.remove('text-success') 1903 } else if (Number(data.PercentChange) > 0) { 1904 pricePrevClosePriceDelta.classList.add('text-success'); 1905 pricePrevClosePriceDelta.classList.remove('text-danger') 1906 } else { 1907 pricePrevClosePriceDelta.classList.remove('text-danger') 1908 pricePrevClosePriceDelta.classList.remove('text-success') 1909 } 1910 pricePrevClosePriceDelta.innerHTML = convertFloatNumbers((parseFloat(data.Change).toFixed(2)).toString()); 1911 } 1912 const d = new Date(); 1913 if (time) { 1914 if (data.Date) { 1915 if (ConvertDate(data.Date) === ConvertDate(d) && data.Time) { 1916 time.innerHTML = convert12hTo24h(data.Date, data.Time); 1917 } else { 1918 //time.innerHTML = ConvertDate(data.Date); 1919 time.innerHTML = ""; 1920 } 1921 } else if (data.Time) { 1922 time.innerHTML = convert12hTo24h(data.Date, data.Time); 1923 } 1924 } 1925 1926 if (ask) { 1927 ask.innerHTML = convertFloatNumbers(data.Ask); 1928 } 1929 1930 if (bid) { 1931 bid.innerHTML = convertFloatNumbers(data.Bid); 1932 } 1933 1934 if (prevClosePrice) { 1935 prevClosePrice.innerHTML = convertFloatNumbers(data.PreviousClose); 1936 } 1937 1938 if (date) { 1939 date.innerHTML = ConvertDate(data.Date); 1940 } 1941 } 1942 }) 1943 }); 1944 } 1945 } 1946 }); 1947 }) 1948 } 1949} 1950 1951function getRates() { 1952 var symbolsInfo = document.querySelectorAll('.ratesInfo'); 1953 var infoarray = []; 1954 symbolsInfo.forEach(symbol => { 1955 infoarray.push(symbol.getAttribute("id")); 1956 }) 1957 infoarray = infoarray.filter((v, i, a) => a.indexOf(v) === i); 1958 var symbols = infoarray.join(','); 1959 if (infoarray.length) { 1960 $.get({ 1961 url: '/wp-json/naftemporiki/get-rates2', 1962 data: { "symbols": symbols, "functionName": "Rates" }, 1963 success: function (s_data) { 1964 if (s_data && s_data.length) { 1965 s_data.forEach(data => { 1966 var ids = '[id="' + data.Symbol + '"]'; 1967 var symbolIds = document.querySelectorAll(ids); 1968 symbolIds.forEach(symbolId => { 1969 if (symbolId) { 1970 var symbol = data.Symbol; 1971 var askR = symbolId.querySelector('.ask'); 1972 var aksC = symbolId.querySelector('.aksC'); 1973 var forexSapn = symbolId.querySelector('.forex'); 1974 var forexldSpan = symbolId.querySelector('.forexld'); 1975 var BidC = symbolId.querySelector('.BidC'); 1976 var forexBid = symbolId.querySelector('.forexBid'); 1977 var forexldBid = symbolId.querySelector('.forexldBid'); 1978 var spread = symbolId.querySelector('.spread'); 1979 var mid = symbolId.querySelector('.mid'); 1980 var bid = symbolId.querySelector('.bid'); 1981 var time = symbolId.querySelector('.time'); 1982 var value = symbolId.querySelector('.value'); 1983 var lastupdated = symbolId.querySelector('.lastupdated'); 1984 1985 var decimal = 4; 1986 var decimal1 = 5; 1987 if (symbol == "BTCUSD") { 1988 decimal = 2; 1989 decimal1 = 2; 1990 } 1991 1992 if (value) { 1993 value.innerHTML = convertFloatNumbers((parseFloat(data.Mid).toFixed(2)).toString()); 1994 } 1995 1996 if (aksC) { 1997 var num = String(data.Ask) 1998 var ask = parseFloat(data.Ask); 1999 var forex = parseFloat(data.Ask); 2000 var forexld = parseFloat(data.Ask); 2001 if (parseFloat(data.Ask)) { 2002 var val = num.replace('.', ''); 2003 var pos1 = num.indexOf('.'); 2004 if (pos1 != -1) { 2005 if (data.QuoteCurrency != 'JPY' && data.Symbol != 'BTCUSD') { 2006 ask = val.substring(0, pos1 + 2); 2007 forex = val.substring(pos1 + 2, pos1 + 4); 2008 forexld = val.substring(pos1 + 4, pos1 + 5); 2009 2010 if (!forexld) { 2011 if (pos1 + 4 > val.length) { 2012 forexld = 0; 2013 } else { 2014 if (pos1 + 5 > val.length) { 2015 forexld = 0; 2016 } else { 2017 forexld = val[pos1 + 5]; 2018 } 2019 } 2020 } 2021 } else { 2022 ask = val.substring(0, pos1); 2023 forex = val.substring(pos1, pos1 + 2); 2024 forexld = val.substring(pos1 + 2, pos1 + 3); 2025 2026 if (!forexld) { 2027 if (pos1 + 2 > val.length) { 2028 forexld = 0; 2029 } else { 2030 if (pos1 + 3 > val.length) { 2031 forexld = 0; 2032 } else { 2033 forexld = val[pos1 + 3]; 2034 } 2035 } 2036 } 2037 } 2038 } else { 2039 ask = num; 2040 forex = 0; 2041 forexld = 0; 2042 } 2043 var pos = num.indexOf('.'); 2044 if (pos != -1) { 2045 ask = [ask.slice(0, pos), '.', ask.slice(pos)].join('') 2046 } 2047 } 2048 2049 aksC.innerHTML = ask; 2050 forexSapn.innerHTML = forex; 2051 forexldSpan.innerHTML = forexld; 2052 } 2053 if (BidC) { 2054 var num = String(data.Bid) 2055 var ask = parseFloat(data.Bid); 2056 var forex = parseFloat(data.Bid); 2057 var forexld = parseFloat(data.Bid); 2058 if (parseFloat(data.Bid)) { 2059 var val = num.replace('.', ''); 2060 var pos1 = num.indexOf('.'); 2061 if (pos1 != -1) { 2062 if (data.QuoteCurrency != 'JPY' && data.Symbol != 'BTCUSD') { 2063 ask = val.substring(0, pos1 + 2); 2064 forex = val.substring(pos1 + 2, pos1 + 4); 2065 forexld = val.substring(pos1 + 4, pos1 + 5); 2066 if (!forexld) { 2067 if (pos1 + 4 > val.length) { 2068 forexld = 0; 2069 } else { 2070 if (pos1 + 5 > val.length) { 2071 forexld = 0; 2072 } else { 2073 forexld = val[pos1 + 5]; 2074 } 2075 } 2076 } 2077 } else { 2078 ask = val.substring(0, pos1); 2079 forex = val.substring(pos1, pos1 + 2); 2080 forexld = val.substring(pos1 + 2, pos1 + 3); 2081 if (!forexld) { 2082 if (pos1 + 2 > val.length) { 2083 forexld = 0; 2084 } else { 2085 if (pos1 + 3 > val.length) { 2086 forexld = 0; 2087 } else { 2088 forexld = val[pos1 + 3]; 2089 } 2090 } 2091 } 2092 } 2093 } else { 2094 ask = num; 2095 forex = 0; 2096 forexld = 0; 2097 } 2098 var pos = num.indexOf('.'); 2099 if (pos != -1) { 2100 ask = [ask.slice(0, pos), '.', ask.slice(pos)].join('') 2101 } 2102 } 2103 2104 BidC.innerHTML = ask; 2105 forexBid.innerHTML = forex; 2106 forexldBid.innerHTML = forexld; 2107 } 2108 if (spread) { 2109 var spreadVar = parseFloat(data.Ask) - parseFloat(data.Bid) 2110 spread.innerHTML = convertFloatNumbers((parseFloat(spreadVar).toFixed(3)).toString()); 2111 } 2112 if (askR) { 2113 askR.innerHTML = convertFloatNumbers((parseFloat(data.Ask).toFixed(decimal)).toString
2113()); 2114 } 2115 if (mid) { 2116 mid.innerHTML = convertFloatNumbers((parseFloat(data.Mid).toFixed(decimal1)).toString()); 2117 } 2118 if (bid) { 2119 bid.innerHTML = convertFloatNumbers((parseFloat(data.Bid).toFixed(decimal)).toString()); 2120 } 2121 const d = new Date(); 2122 let tmpTime = ""; 2123 let tmpDate = ""; 2124 2125 if (time) { 2126 if (data.Date) { 2127 if (ConvertDate(data.Date) === ConvertDate(d) && data.Time) { 2128 tmpTime = convert12hTo24h(data.Date, data.Time); 2129 } else { 2130 //tmpTime = ConvertDate(data.Date); 2131 } 2132 } else if (data.Time) { 2133 tmpTime = convert12hTo24h(data.Date, data.Time); 2134 } 2135 time.innerHTML = tmpTime; 2136 } 2137 if (lastupdated) { 2138 if (data.Date) { 2139 if (ConvertDate(data.Date) === ConvertDate(d) && data.Time) { 2140 tmpDate = convert12hTo24h(data.Date, data.Time); 2141 } else { 2142 tmpDate = ConvertDate(data.Date); 2143 } 2144 } else if (data.Time) { 2145 tmpDate = convert12hTo24h(data.Date, data.Time); 2146 } 2147 lastupdated.innerHTML = tmpDate; 2148 } 2149 2150 } 2151 }) 2152 }); 2153 } 2154 } 2155 }); 2156 } 2157} 2158 2159function updateGDSymbol() { 2160 SymbolInfoUpdate('GD.ATH'); 2161} 2162 2163function GetSymbolInfo(classname) { 2164 var symbolsInfo = document.querySelectorAll('.' + classname); 2165 var infoarray = []; 2166 symbolsInfo.forEach(symbol => { 2167 infoarray.push(symbol.getAttribute("id")); 2168 }) 2169 infoarray = infoarray.filter((v, i, a) => a.indexOf(v) === i); 2170 var symbols = infoarray.join(','); 2171 if (symbolsInfo.length) { 2172 SymbolInfoUpdate(symbols); 2173 } 2174} 2175 2176function GetGDTurnover(symbolTurnover) { 2177 $.get({ 2178 url: '/wp-json/naftemporiki/get-gd-turnover', 2179 data: {}, 2180 success: function (data) { 2181 symbolTurnover.innerHTML = turnoverInMillions(data); 2182 } 2183 }); 2184} 2185 2186function formatNumber(number) { 2187 // Split the number into integer and decimal parts 2188 let [integerPart, decimalPart] = number.toFixed(2).split('.'); 2189 2190 // Format the integer part by adding periods as thousand separators 2191 integerPart = integerPart.replace(/\B(?=(\d{3})+(?!\d))/g, '.'); 2192 2193 // Return the formatted number with the comma as the decimal separator 2194 return `${integerPart},${decimalPart}`; 2195} 2196 2197function SymbolInfoUpdate(symbols) { 2198 $.get({ 2199 url: '/wp-json/naftemporiki/get-symbols-info-level', 2200 data: { "symbols": symbols, "lng": "GR" }, 2201 success: function (s_data) { 2202 s_data.forEach(data => { 2203 var ids = '[id="' + data.instrSysName + '"]'; 2204 var symbolIds = document.querySelectorAll(ids); 2205 symbolIds.forEach(symbolId => { 2206 if (symbolId) { 2207 var symbolValue = symbolId.querySelector('.value'); 2208 var symbolupdate = symbolId.querySelector('.last-updated'); 2209 var symbolChange = symbolId.querySelector('.change'); 2210 var symbolTurnover = symbolId.querySelector('.turnover'); 2211 var symbolpricePrevClosePriceDelta = symbolId.querySelector('.pricePrevClosePriceDelta'); 2212 var pricePrevClosePricePDelta = symbolId.querySelector('.pricePrevClosePricePDelta') 2213 var volume = symbolId.querySelector('.volume'); 2214 var interest = symbolId.querySelector('.interest'); 2215 var bidSize = symbolId.querySelector('.bidSize'); 2216 var bidPrice = symbolId.querySelector('.bidPrice'); 2217 var askSize = symbolId.querySelector('.askSize'); 2218 var askPrice = symbolId.querySelector('.askPrice'); 2219 var capitalization = symbolId.querySelector('.capitalization'); 2220 var time = symbolId.querySelector('.time'); 2221 var tradeDate = symbolId.querySelector('.date') 2222 var prevClosePrice = symbolId.querySelector('.prevClosePrice'); 2223 var pricePrevClosePricePDeltaOTC = symbolId.querySelector('.pricePrevClosePricePDeltaOTC') 2224 var totalTurnover = symbolId.querySelector('.totalTurnover') 2225 var totalpieces = symbolId.querySelector('.totalpieces') 2226 2227 fillAllSelectors(data, symbolId) 2228 if (totalpieces) { 2229 var num = parseFloat(data.volumeOTC) * parseFloat(data.priceOTC) 2230 if (num) { 2231 totalpieces.innerHTML = convertFloatNumbers((num.toFixed(2)).toString()) 2232 } else { 2233 totalpieces.innerHTML = "" 2234 } 2235 } 2236 if (totalTurnover) { 2237 totalTurnover.innerHTML = convertFloatNumbers((parseFloat(data.totalTurnover).toFixed(2)).toString()) 2238 } 2239 2240 var bg = symbolId.querySelectorAll('.bg'); 2241 2242 if (pricePrevClosePricePDeltaOTC) { 2243 pricePrevClosePricePDeltaOTC.innerHTML = convertFloatNumbers(data.pricePrevClosePricePDeltaOTC) 2244 } 2245 2246 var checkChange, pricedelta, date; 2247 2248 if (symbolValue) { 2249 if (Number(data.price) != 0) {
2250 if (data.instrumentSysName == 'EQ' || data.instrumentSysName == 'MTF') { 2251 symbolValue.innerHTML = convertFloatNumbers((parseFloat(data.price).toFixed(4)).toString()); 2252 } else { 2253 symbolValue.innerHTML = convertFloatNumbers((parseFloat(data.price).toFixed(2)).toString()); 2254 } 2255 checkChange = data.pricePrevClosePricePDelta; 2256 pricedelta = data.pricePrevClosePriceDelta; 2257 date = data.tradeDate 2258 } else { 2259 if (data.instrumentSysName == 'EQ' || data.instrumentSysName == 'MTF') { 2260 symbolValue.innerHTML = convertFloatNumbers((parseFloat(data.prevClosePrice).toFixed(4)).toString()); 2261 } else { 2262 symbolValue.innerHTML = convertFloatNumbers((parseFloat(data.prevClosePrice).toFixed(2)).toString()); 2263 } 2264 checkChange = data.prevClosePDelta; 2265 pricedelta = data.prevCloseDelta; 2266 date = data.prevCloseDate 2267 } 2268 2269 if (symbolValue.classList.contains('arrow-up') || symbolValue.classList.contains('arrow-down')) { 2270 if (Number(checkChange) < 0) { 2271 symbolValue.classList.add('arrow-down') 2272 symbolValue.classList.remove('arrow-up') 2273 } else { 2274 symbolValue.classList.remove('arrow-down') 2275 symbolValue.classList.add('arrow-up') 2276 } 2277 } 2278 } 2279 const d = new Date(); 2280 if (time) { 2281 if (date) { 2282 if (ConvertDate(date) === ConvertDate(d)) { 2283 time.innerHTML = ConvertTime(data.time); 2284 } else { 2285 time.innerHTML = ConvertDate(date); 2286 } 2287 } else { 2288 time.innerHTML = ConvertTime(data.time); 2289 } 2290 } 2291 2292 if (tradeDate) { 2293 tradeDate.innerHTML = ConvertDate(date); 2294 } 2295 2296 if (symbolupdate) { 2297 if (date) { 2298 if (ConvertDate(date) === ConvertDate(d)) { 2299 symbolupdate.innerHTML = ConvertTime(data.time); 2300 } else { 2301 //symbolupdate.innerHTML = ConvertDate(date); 2302 symbolupdate.innerHTML = ""; 2303 } 2304 } else { 2305 symbolupdate.innerHTML = ConvertTime(data.time); 2306 } 2307 2308 } 2309 2310 if (symbolChange) { 2311 bg.forEach(item => { 2312 var prev_value = (symbolChange.innerHTML).replace("%", "") 2313 var changeCheck = parseFloat(checkChange).toFixed(2); 2314 if (Number(prev_value) < Number(changeCheck)) { 2315 item.style.backgroundColor = '#FFEDEF' 2316 2317 } else if (Number(prev_value) > Number(changeCheck)) { 2318 item.style.backgroundColor = '#EDFFF1' 2319 } else { 2320 // item.style.backgroundColor = '#F3F4F5' 2321 } 2322 2323 setTimeout(function () { 2324 item.style.backgroundColor = ''; 2325 }, 1000); 2326 }) 2327 } 2328 2329 if (symbolChange) { 2330 if (Number(checkChange) < 0) { 2331 symbolChange.classList.add('text-danger') 2332 symbolChange.classList.remove('text-success') 2333 } else if (Number(checkChange) > 0) { 2334 symbolChange.classList.add('text-success'); 2335 symbolChange.classList.remove('text-danger') 2336 } else { 2337 symbolChange.classList.remove('text-danger') 2338 symbolChange.classList.remove('text-success') 2339 } 2340 symbolChange.innerHTML = convertFloatNumbers((parseFloat(checkChange).toFixed(2)).toString()) + '%'; 2341 } 2342 2343 if (symbolTurnover) { 2344 symbolTurnover.innerHTML = turnoverInMillions(data.totalTurnover); 2345 } 2346 2347 if (symbolpricePrevClosePriceDelta) { 2348 if (Number(checkChange) < 0) { 2349 symbolpricePrevClosePriceDelta.classList.add('text-danger') 2350 symbolpricePrevClosePriceDelta.classList.remove('text-success') 2351 } else if (Number(checkChange) > 0) { 2352 symbolpricePrevClosePriceDelta.classList.add('text-success'); 2353 symbolpricePrevClosePriceDelta.classList.remove('text-danger') 2354 } else { 2355 symbolpricePrevClosePriceDelta.classList.remove('text-danger') 2356 symbolpricePrevClosePriceDelta.classList.remove('text-success') 2357 } 2358 symbolpricePrevClosePriceDelta.innerHTML = convertFloatNumbers((parseFloat(pricedelta).toFixed(2)).toString()); 2359 } 2360 2361 if (pricePrevClosePricePDelta) { 2362 if (Number(checkChange) < 0) { 2363 pricePrevClosePricePDelta.classList.add('text-danger') 2364 pricePrevClosePricePDelta.classList.remove('text-success') 2365 } else if (Number(checkChange) > 0) { 2366 pricePrevClosePricePDelta.classList.add('text-success'); 2367 pricePrevClosePricePDelta.classList.remove('text-danger') 2368 } else { 2369 pricePrevClosePricePDelta.classList.remove('text-danger') 2370 pricePrevClosePricePDelta.classList.remove('text-success') 2371 } 2372 pricePrevClosePricePDelta.innerHTML = convertFloatNumbers((parseFloat(checkChange).toFixed(2)).toString()) + "%"; 2373 } 2374 2375 if (volume) { 2376 volume.innerHTML = numberWithCommas(parseInt(data.totalVolume).toString()) 2377 } 2378 if (interest) { 2379 if (Number(data.openInterest) <= 0 || !data.openInterest) { 2380 interest.innerHTML = " " 2381 } else { 2382 interest.innerHTML = numberWithCommas(parseInt(data.openInterest).toString()) 2383 } 2384 } 2385 2386 if (bidSize) { 2387 if (Number(data.bidSize) != 0) { 2388 bidSize.innerHTML = numberWithCommas(parseInt(data.bidSize).toString()) 2389 } else { 2390 bidSize.innerHTML = '' 2391 } 2392 } 2393 2394 if (bidPrice) { 2395 if (Number(data.bidPrice) != 0) { 2396 bidPrice.innerHTML = convertFloatNumbers((parseFloat(data.bidPrice).toFixed(3)).toString()); 2397 } else { 2398 bidPrice.innerHTML = "" 2399 } 2400 } 2401 2402 if (askSize) { 2403 if (Number(data.askSize) != 0) { 2404 askSize.innerHTML = numberWithCommas(parseInt(data.askSize).toString()) 2405 } else { 2406 askSize.innerHTML = "" 2407 } 2408 } 2409 2410 if (askPrice) { 2411 if (Number(data.askPrice) != 0) { 2412 askPrice.innerHTML = convertFloatNumbers((parseFloat(data.askPrice).toFixed(3)).toString()); 2413 } else { 2414 askPrice.innerHTML = "" 2415 } 2416 } 2417 2418 if (capitalization) { 2419 capitalization.innerHTML = formatNumber(Number(data.capitalization)); 2420 } 2421 if (prevClosePrice) { 2422 prevClosePrice.innerHTML = convertFloatNumbers((parseFloat(data.prevClosePrice).toFixed(2)).toString()); 2423 } 2424 2425 2426 } 2427 }) 2428 }); 2429 } 2430 }); 2431} 2432 2433function fillAllSelectors(data, symbolId) { 2434 // Automatically fill all ajaxPopulate selectors 2435 const ajaxPopulate = symbolId.querySelectorAll('.ajaxPopulate'); 2436 [].forEach.call(ajaxPopulate, function (target) { 2437 let key = target.dataset.key; 2438 let type = target.dataset.type; 2439 if (data.hasOwnProperty(key)) { 2440 let val = data[key]; 2441 2442 if (type === 'int') { 2443 val = parseInt(val); 2444 val = numberWithCommas(val.toString()) 2445 } 2446 if (type === 'float') { 2447 val = parseFloat(val).toFixed(parseInt(target.dataset.digits)); 2448 val = convertFloatNumbers(val.toString()) 2449 } 2450 target.innerHTML = val; 2451 } 2452 }); 2453} 2454 2455 2456function turnoverInMillions(num) { 2457 return convertFloatNumbers((Math.abs(Number(num)) / 1000000).toFixed(2)); 2458} 2459 2460function convertFloatNumbers(num) { 2461 num = (num.toString()).replace('.', ','); 2462 let tmp, str = ""; 2463 if (num.indexOf(',') > -1) { 2464 tmp = num.split(',') 2465 num = tmp[0].toString(); 2466 } 2467 if (tmp) { 2468 str = ',' + tmp[1].toString() 2469 } 2470 return numberWithCommas(num) + str; 2471} 2472 2473function numberWithCommas(num) { 2474 return num.replace(/\B(?=(\d{3})+(?!\d))/g, '.'); 2475} 2476 2477function DotWithCommas(num) { 2478 return num.replace(/\./g, ','); 2479} 2480 2481var boxperformance = document.querySelectorAll('.box-range') 2482 2483boxperformance.forEach(box => { 2484 var seperator = box.querySelector('.seperator') 2485 if (seperator) { 2486 var num = seperator.getAttribute('data-num'); 2487 seperator.style.setProperty("--bar-length", num + '%') 2488 } 2489}) 2490 2491var sectorRow = document.querySelectorAll('.sectorRow'); 2492 2493sectorRow.forEach(sector => { 2494 sector.addEventListener('click', () => { 2495 var symTbale = document.querySelector('.sectorTable'); 2496 var secors_list = document.querySelector('.secors-list'); 2497 var sectorssymbollist = document.querySelector('.sectors-symbol-list') 2498 if (sectorssymbollist) { 2499 sectorssymbollist.classList.remove('d-none'); 2500 } 2501 if (secors_list) { 2502 secors_list.classList.add('d-none'); 2503 } 2504 if (symTbale) { 2505 symTbale.classList.add('d-none'); 2506 } 2507 var singleTable = document.querySelector('.singleTable'); 2508 if (singleTable) { 2509 singleTable.classList.remove('d-none'); 2510 } 2511 2512 var value = sector.getAttribute('data-category') 2513 var symbols = document.querySelectorAll(".symbolInfo[data-category='" + value + "']"); 2514 var whatsSelected = [];
2515 symbols.forEach(symbol => { 2516 var name = symbol.querySelector('.categoryId'); 2517 if (name) { 2518 name = name.innerHTML; 2519 whatsSelected.push(name); 2520 } 2521 }) 2522 oTable.column(0).search(whatsSelected.join('|'), true, false).draw(); 2523 var select = document.querySelector('#sectorsSymbolsSelect'); 2524 select.value = value 2525 }) 2526}) 2527var swiperOpinions = new Swiper(".slider-opinions", { 2528 // slidesPerView: 1, 2529 spaceBetween: 24, 2530 watchSlidesProgress: true, 2531 loop: true, 2532 rewind: true, 2533 navigation: { 2534 nextEl: ".swiper-button-next", 2535 prevEl: ".swiper-button-prev", 2536 }, 2537 autoplay: { 2538 delay: 5000, 2539 disableOnInteraction: false 2540 }, 2541 pagination: { 2542 el: ".swiper-pagination", 2543 clickable: true, 2544 }, 2545 breakpoints: { 2546 // when window width is >= 480px 2547 575: { 2548 slidesPerView: 2, 2549 }, 2550 767: { 2551 slidesPerView: 2, 2552 }, 2553 // when window width is >= 640px 2554 991: { 2555 slidesPerView: 3, 2556 }, 2557 // when window width is >= 640px 2558 1399: { 2559 slidesPerView: 4, 2560 } 2561 }, 2562}); 2563 2564// Initialize homepage slider when DOM is ready 2565var home_slideshow; // Define globally so it's accessible to click handlers 2566 2567document.addEventListener('DOMContentLoaded', function() { 2568 // Check if slider has videos 2569 var sliderElement = document.querySelector('.hero2'); 2570 var hasVideo = sliderElement && sliderElement.getAttribute('data-has-video') === 'true'; 2571 2572 // Configure autoplay based on video presence 2573 var autoplayConfig = hasVideo ? false : { 2574 delay: 5000, 2575 disableOnInteraction: false 2576 }; 2577 2578 home_slideshow = new Swiper('.hero2', { 2579 // Optional parameters 2580 slidesPerView: 1, 2581 loop: true, 2582 spaceBetween: 0, 2583 effect: 'fade', 2584 autoplay: autoplayConfig, 2585 // Navigation arrows 2586 navigation: { 2587 nextEl: '.swiper-button-next.hero-next', 2588 prevEl: '.swiper-button-prev.hero-prev', 2589 }, 2590 // Pagination 2591 pagination: { 2592 el: '.navigation', 2593 type: 'custom', 2594 renderCustom: function (swiper, current, total) { 2595 var $nav_data = []; 2596 2597 // slide data 2598 $.each(swiper.slides, function (index) { 2599 var $cat = $(this).find('.category'); 2600 var $title = $(this).find('.title'); 2601 2602 $nav_data[index + 1] = { 2603 category_html: $cat.length ? $cat.text() : '', 2604 title_html: $title.length ? $title.get(0).outerHTML : '', 2605 }; 2606 }); 2607 var elem = $nav_data.splice(1, 1)[0]; 2608 $nav_data.splice(5, 0, elem) 2609 // navigation html 2610 var elements_html = ''; 2611 for (let i = 1; i <= total; i++) { 2612 var $item_class = 'nav-item custom-nav-item'; 2613 2614 if (current == i) { 2615 $item_class += ' active'; 2616 } 2617 2618 elements_html += 2619 '<div class="' + $item_class + '" data-slide-index="' + i + '">' + 2620 '<span class="category">' + $nav_data[i].category_html + '</span>' + 2621 $nav_data[i].title_html + 2622 '</div>'; 2623 } 2624 2625 return elements_html; 2626 }, 2627 }, 2628 2629}); 2630 2631 $(document.body).on('click', '.navigation .custom-nav-item', function (e) { 2632 e.preventDefault(); 2633 var clicked = $(this); 2634 var target_slide = $(clicked).data('slide-index'); 2635 if (!$(clicked).hasClass('active')) { 2636 home_slideshow.slideTo(target_slide); 2637 } 2638 }); 2639}); 2640 2641var mobileFilters = document.querySelector('.mobile-filters'); 2642 2643if (mobileFilters) { 2644 mobileFilters.addEventListener('click', function (e) { 2645 e.preventDefault(); 2646 var filterContent = document.querySelector('.filters-mobile-content'); 2647 if (filterContent) { 2648 if (filterContent.classList.contains('open')) { 2649 filterContent.classList.remove('open'); 2650 } else { 2651 filterContent.classList.add('open'); 2652 } 2653 } 2654 }) 2655} 2656 2657var der_categories = document.querySelectorAll('input[name="derivatives_category"]'); 2658 2659der_categories.forEach(input => { 2660 if (input.checked) { 2661 var classname = input.getAttribute('id') 2662 var showTable = document.querySelectorAll('.' + classname); 2663 showTable.forEach(elem => { 2664 if (elem.classList.contains('d-none')) { 2665 elem.classList.remove('d-none') 2666 } 2667 }) 2668 } 2669 input.addEventListener('change', function (e) {
2670 der_categories.forEach(input => { 2671 var classname = input.getAttribute('id') 2672 var showTable = document.querySelectorAll('.' + classname); 2673 showTable.forEach(elem => { 2674 if (!elem.classList.contains('d-none')) { 2675 elem.classList.add('d-none') 2676 } 2677 }) 2678 }) 2679 if (input.checked) { 2680 var classname = input.getAttribute('id') 2681 var showTable = document.querySelectorAll('.' + classname); 2682 showTable.forEach(elem => { 2683 if (elem.classList.contains('d-none')) { 2684 elem.classList.remove('d-none') 2685 } 2686 }) 2687 } 2688 }) 2689}) 2690 2691var mtf_options = document.querySelectorAll('input[name="mtf_options"]'); 2692 2693mtf_options.forEach(option => { 2694 option.addEventListener('change', function (e) { 2695 const urlParams = new URLSearchParams(); 2696 urlParams.set('mtfType', this.value); 2697 window.location.search = urlParams; 2698 }) 2699}) 2700 2701var mtfSelect = document.querySelector('#mtfSelect') 2702 2703if (mtfSelect) { 2704 mtfSelect.addEventListener('change', function (e) { 2705 var type = this.getAttribute('data-type') 2706 const urlParams = new URLSearchParams(window.location.search); 2707 var val = ''; 2708 if (this.value != 'all') { 2709 val = this.value 2710 } 2711 if (type == 'companies') { 2712 urlParams.set('company', val); 2713 } else if (type == 'categories') { 2714 urlParams.set('category', val); 2715 } 2716 window.location.search = urlParams; 2717 }) 2718} 2719 2720 2721var dropdownStockCharts = document.getElementById('dropdownStockCharts') 2722var dropdownTopBar = document.querySelector('.dropdown-top-bar') 2723var scrollTicker = document.querySelector('.scrollTicker') 2724var topNav = document.getElementById('menu-top-menu') 2725if (dropdownStockCharts) { 2726 dropdownStockCharts.addEventListener('click', function (e) { 2727 if (dropdownStockCharts.classList.contains('expanded')) { 2728 dropdownStockCharts.classList.remove('expanded') 2729 if (dropdownTopBar) { 2730 dropdownTopBar.classList.add('collapsed') 2731 } 2732 if (topNav) { 2733 topNav.classList.add('d-none') 2734 if (scrollTicker) { 2735 scrollTicker.classList.remove("mobileTicker") 2736 } 2737 } 2738 } else { 2739 if (dropdownTopBar) { 2740 dropdownTopBar.classList.remove('collapsed') 2741 } 2742 if (topNav) { 2743 topNav.classList.remove('d-none') 2744 if (scrollTicker) { 2745 scrollTicker.classList.add("mobileTicker") 2746 } 2747 dropdownStockCharts.classList.add('expanded') 2748 } 2749 } 2750 }) 2751} 2752 2753var photos_swiper = new Swiper('.photos-swiper', { 2754 slidesPerView: 1, 2755 autoplay: { 2756 delay: 3500, 2757 }, 2758 pagination: { 2759 el: '#photos-pagination', 2760 type: 'bullets', 2761 clickable: true, 2762 }, 2763 navigation: { 2764 nextEl: '#photos-next', 2765 prevEl: '#photos-prev', 2766 }, 2767}); 2768 2769var posts = new Swiper('.post-swiper2', { 2770 slidesPerView: 4, 2771 slidesPerGroup: 4, 2772 autoplay: { 2773 delay: 3500, 2774 }, 2775 breakpoints: { 2776 320: { 2777 slidesPerView: 1, 2778 slidesPerGroup: 1, 2779 spaceBetween: 24 2780 }, 2781 480: { 2782 slidesPerView: 2, 2783 slidesPerGroup: 2, 2784 spaceBetween: 24 2785 }, 2786 992: { 2787 slidesPerView: 3, 2788 slidesPerGroup: 3, 2789 spaceBetween: 24 2790 }, 2791 1200: { 2792 slidesPerView: 4, 2793 slidesPerGroup: 4, 2794 spaceBetween: 24 2795 } 2796 }, 2797 pagination: { 2798 el: '#epiloges-pagination', 2799 type: 'bullets', 2800 clickable: true, 2801 }, 2802}); 2803 2804var jobs = new Swiper('.jobs', { 2805 //slideClass: 'slide', 2806 slidesPerView: 4, 2807 spaceBetween: 20, 2808 autoplay: { 2809 delay: 3500, 2810 }, 2811 breakpoints: { 2812 // when window width is >= 320px 2813 320: { 2814 slidesPerView: 2, 2815 }, 2816 // when window width is >= 480px 2817 768: { 2818 slidesPerView: 4, 2819 }, 2820 1024: { 2821 slidesPerView: 6, 2822 }, 2823 // when window width is >= 640px 2824 1200: { 2825 slidesPerView: 8, 2826 } 2827 }, 2828 pagination: { 2829 el: '#jobs-pagination', 2830 type: 'bullets', 2831 clickable: true, 2832 }, 2833}); 2834 2835var categories = new Swiper('.categoriesSwiper', { 2836 //slideClass: 'slide', 2837 slidesPerView: 4, 2838 spaceBetween: 20, 2839 breakpoints: { 2840 // when window width is >= 320px 2841 320: { 2842 slidesPerView: 2, 2843 }, 2844 // when window width is >= 480px 2845 768: { 2846 slidesPerView: 4, 2847 }, 2848 1024: { 2849 slidesPerView: 6, 2850 }, 2851 // when window width is >= 640px 2852 1200: { 2853 slidesPerView: 8, 2854 } 2855 }, 2856 pagination: { 2857 el: '#categories-pagination', 2858 type: 'bullets', 2859 clickable: true, 2860 }, 2861}); 2862 2863var postStream = new Swiper('.postStream', { 2864 //slideClass: 'slide', 2865 slidesPerView: 4, 2866 spaceBetween: 24, 2867 breakpoints: { 2868 // when window width is >= 320px 2869 320: { 2870 slidesPerView: 1, 2871 spaceBetween: 15, 2872 }, 2873 // when window width is >= 480px 2874 768: { 2875 slidesPerView: 2, 2876 spaceBetween: 20, 2877 }, 2878 1024: { 2879 slidesPerView: 3, 2880 spaceBetween: 24, 2881 }, 2882 // when window width is >= 640px 2883 1400: { 2884 slidesPerView: 4, 2885 } 2886 }, 2887 navigation: { 2888 nextEl: '.swiper-button-next.post-stream', 2889 prevEl: '.swiper-button-prev.post-stream', 2890 }, 2891 2892}); 2893 2894addEventListener('load', (event) => { 2895 2896 function DailyPrice() { 2897 2898 var rangeBar = document.querySelector('.rangeBar') 2899 if (rangeBar) { 2900 var outer = rangeBar.querySelector('.outer') 2901 if (outer && rangeBar) { 2902 var width = outer.offsetWidth; 2903 var max = Number(rangeBar.getAttribute("data-hight")) 2904 var min = Number(rangeBar.getAttribute("data-low")) 2905 var price = Number(rangeBar.getAttribute("data-price")) 2906 var previousPrice = Number(rangeBar.getAttribute("data-previous")) 2907 var rangePointer = rangeBar.querySelector('.rangePointer'); 2908 var inner = outer.querySelector('.inner'); 2909 2910 var tmp = max - min; 2911 var lines 2912 2913 if (max) { 2914 if (tmp) { 2915 lines = width / tmp 2916 } else { 2917 lines = width / max 2918 } 2919 } else { 2920 lines = 0 2921 } 2922 2923 var rangePrice = width * (1 - (previousPrice / min)) 2924 if (rangePrice < 0) { 2925 rangePrice = rangePrice * (-1) 2926 } 2927 var innerPrice = lines * (price - min) 2928 2929 if (rangePointer) { 2930 if (rangePrice > 372) { 2931 rangePrice = 372 2932 } 2933 rangePointer.style.paddingLeft = rangePrice + "%" 2934 } 2935 if (inner) { 2936 inner.style.width = innerPrice + "px" 2937 } 2938 } 2939 } 2940 } 2941 2942 function HistoryPrice() { 2943 var rangeBarHistory = document.querySelector('.rangeBarHistory') 2944 2945 if (rangeBarHistory) { 2946 var outerHistory = rangeBarHistory.querySelector('.outerHistory') 2947 if (outerHistory) { 2948 var widthHistory = outerHistory.offsetWidth;
2949 var maxHistory = Number(rangeBarHistory.getAttribute("data-hight")) 2950 var minHistory = Number(rangeBarHistory.getAttribute("data-low")) 2951 var priceHistory = Number(rangeBarHistory.getAttribute("data-price")) 2952 var previous = rangeBarHistory.getAttribute("data-previous") 2953 var tmp = maxHistory - minHistory; 2954 var lines 2955 2956 if (maxHistory) { 2957 if (tmp) { 2958 lines = widthHistory / tmp 2959 } else { 2960 lines = widthHistory / maxHistory 2961 } 2962 } else { 2963 lines = 0 2964 } 2965 2966 var rangePrice = widthHistory * (1 - ((priceHistory) / (minHistory))) 2967 if (rangePrice < 0) { 2968 rangePrice = rangePrice * (-1) 2969 } 2970 var innerPrice = lines * (priceHistory - minHistory) 2971 2972 var rangePointerHistory = rangeBarHistory.querySelector('.rangePointer'); 2973 var innerHistoryHistory = outerHistory.querySelector('.innerHistory'); 2974 if (rangePrice, rangePointerHistory) { 2975 if (rangePrice > maxHistory || rangePrice > 98) { 2976 rangePrice = 98 2977 } 2978 2979 rangePointerHistory.style.marginLeft = rangePrice + "%" 2980 } 2981 if (innerHistoryHistory) { 2982 innerHistoryHistory.style.width = innerPrice + "px" 2983 } 2984 } 2985 } 2986 } 2987 2988 var singleS = document.querySelector('.single-symbol') 2989 if (singleS) { 2990 HistoryPrice() 2991 DailyPrice() 2992 } 2993}); 2994 2995var popularNews = document.querySelectorAll(".popular-posts [data-type]"); 2996 2997popularNews.forEach(news => { 2998 news.addEventListener('click', function (e) { 2999 e.preventDefault(); 3000 var elem = news.getAttribute('data-type') 3001 var tabs = document.querySelectorAll('.popular-posts .tab'); 3002 news.classList.add('active')
3003 tabs.forEach(tab => { 3004 var id = tab.getAttribute('id'); 3005 if (id == elem) { 3006 tab.classList.remove('d-none') 3007 } else { 3008 tab.classList.add('d-none') 3009 var type = document.querySelector(".popular-posts [data-type='" + id + "']"); 3010 if (type) { 3011 type.classList.remove('active') 3012 } 3013 } 3014 }) 3015 }) 3016}) 3017 3018var loginDropdowns = document.querySelectorAll('.loginDropdown'); 3019 3020loginDropdowns.forEach(loginDropdown => { 3021 loginDropdown.addEventListener('click', function (e) { 3022 e.preventDefault(); 3023 var logInBoxs = document.querySelectorAll('.logInBox'); 3024 logInBoxs.forEach(logInBox => { 3025 if (logInBox.classList.contains('show')) { 3026 logInBox.classList.remove('show') 3027 } else { 3028 logInBox.classList.add('show') 3029 } 3030 }) 3031 }) 3032}) 3033 3034var symbolType = document.querySelectorAll('[name="symbolType"]'); 3035 3036symbolType.forEach(type => { 3037 type.addEventListener('change', function (e) { 3038 var types = document.querySelectorAll(".symbolinstrCode .fade") 3039 types.forEach(text => { 3040 if (text.getAttribute('data-type') == type.value) { 3041 text.classList.add('show') 3042 } else { 3043 text.classList.remove('show') 3044 } 3045 }) 3046 }) 3047}) 3048 3049var popups = document.querySelectorAll('.popupRealTimeCard') 3050 3051popups.forEach(popup => { 3052 popup.addEventListener('click', function (e) { 3053 var id = this.querySelector('#myPopup') 3054 if (id) { 3055 if (id.classList.contains('show')) { 3056 id.classList.remove('show') 3057 } else { 3058 id.classList.add('show') 3059 } 3060 } 3061 popups.forEach(pop => { 3062 var ids = pop.querySelector('#myPopup'); 3063 if (ids) { 3064 if (ids != id) { 3065 ids.classList.remove('show') 3066 } 3067 } 3068 }) 3069 }) 3070}) 3071 3072var realTimeSectorsSelect = document.querySelector('.realTime #sectors'); 3073var realTimeIndicesSelect = document.querySelector('.realTime #indices'); 3074var realTimeDerivativesSelect = document.querySelector('.realTime #der'); 3075 3076if (realTimeSectorsSelect) { 3077 realTimeSectorsSelect.addEventListener('change', function () { 3078 const urlParams = new URLSearchParams(); 3079 urlParams.set('sector', this.value); 3080 window.location.search = urlParams; 3081 }) 3082} 3083 3084if (realTimeIndicesSelect) { 3085 realTimeIndicesSelect.addEventListener('change', function () { 3086 const urlParams = new URLSearchParams(); 3087 urlParams.set('indices', this.value); 3088 window.location.search = urlParams; 3089 }) 3090} 3091 3092if (realTimeDerivativesSelect) { 3093 realTimeDerivativesSelect.addEventListener('change', function () { 3094 const urlParams = new URLSearchParams(window.location.search); 3095 urlParams.set('der', this.value); 3096 window.location.search = urlParams; 3097 }) 3098} 3099 3100var sectorsSelect = document.querySelector('#sectorsSelect'); 3101 3102if (sectorsSelect) { 3103 sectorsSelect.addEventListener('change', function () { 3104 const urlParams = new URLSearchParams(); 3105 urlParams.set('sector', this.value); 3106 window.location.search = urlParams; 3107 }) 3108} 3109 3110var indicesSelect = document.querySelector('#indicesSelect'); 3111 3112if (indicesSelect) { 3113 indicesSelect.addEventListener('change', function () { 3114 const urlParams = new URLSearchParams(); 3115 urlParams.set('indices', this.value); 3116 window.location.search = urlParams; 3117 }) 3118} 3119 3120const searchBar = document.querySelector('#realtimesearch'); 3121if (searchBar) { 3122 searchBar.addEventListener('keyup', function (e) { 3123 const term = e.target.value.toLocaleLowerCase(); 3124 const symbols = document.querySelectorAll('.popupRealTimeCard .tableText.show'); 3125 Array.from(symbols).forEach(function (text) { 3126 const title = text.textContent; 3127 if (title.toLowerCase().indexOf(term) != -1) { 3128 text.parentElement.parentElement.style.display = 'block'; 3129 } else { 3130 text.parentElement.parentElement.style.display = 'none'; 3131 } 3132 }) 3133 }) 3134} 3135 3136var symbol_category = document.querySelectorAll("[name='symbol_category']") 3137 3138symbol_category.forEach(cat => { 3139 cat.addEventListener('change', function (e) { 3140 var category = this.value 3141 var sections = document.querySelectorAll("[data-cat]"); 3142 sections.forEach(section => { 3143 if (section.getAttribute("data-cat") == category) { 3144 section.classList.remove('d-none') 3145 } else { 3146 section.classList.add('d-none') 3147 } 3148 }) 3149 3150 }) 3151}) 3152 3153var symbol_category_stats = document.querySelectorAll("[name='symbol_category_stats']") 3154
3155symbol_category_stats.forEach(cat => { 3156 cat.addEventListener('change', function (e) { 3157 const urlParams = new URLSearchParams(); 3158 urlParams.set('stats', this.value); 3159 window.location.search = urlParams; 3160 }) 3161}) 3162 3163var indicesComposition = document.getElementById('indicesComposition'); 3164 3165if (indicesComposition) { 3166 indicesComposition.addEventListener('change', function (e) { 3167 const urlParams = new URLSearchParams(); 3168 urlParams.set('idx', this.value); 3169 window.location.search = urlParams; 3170 }) 3171} 3172 3173var sectorSelect = document.getElementById('sectorSelect') 3174 3175if (sectorSelect) { 3176 sectorSelect.addEventListener('change', function (e) { 3177 const urlParams = new URLSearchParams(); 3178 urlParams.set('sector', this.value); 3179 window.location.search = urlParams; 3180 }) 3181} 3182 3183var locationCategory = document.querySelector('#locationCategory'); 3184if (locationCategory) { 3185 locationCategory.addEventListener('change', function (e) { 3186 const urlParams = new URLSearchParams(); 3187 urlParams.set('location', this.value); 3188 window.location.search = urlParams; 3189 }) 3190} 3191 3192var symbol_type = document.querySelectorAll("[name='symbol_type']"); 3193 3194symbol_type.forEach(type => { 3195 type.addEventListener('change', function (e) { 3196 3197 var category = this.value 3198 var sections = document.querySelectorAll("[data-rateType]"); 3199 sections.forEach(section => { 3200 if (section.getAttribute("data-rateType") == category) { 3201 section.classList.remove('d-none') 3202 } else { 3203 section.classList.add('d-none') 3204 } 3205 }) 3206 }) 3207}) 3208 3209const searchBarRates = document.querySelector('#symbolSearchTable'); 3210if (searchBarRates) { 3211 searchBarRates.addEventListener('keyup', function (e) { 3212 const term = e.target.value.toLocaleLowerCase(); 3213 const symbols = document.querySelectorAll('.ratesSearchSymbol .name'); 3214 Array.from(symbols).forEach(function (text) { 3215 const title = text.textContent; 3216 if (title.toLowerCase().indexOf(term) != -1) { 3217 if (text.parentElement.parentElement.parentElement.previousElementSibling) { 3218 text.parentElement.parentElement.parentElement.style.display = 'flex'; 3219 } else { 3220 text.parentElement.parentElement.parentElement.parentElement.style.display = 'block'; 3221 } 3222 } else { 3223 if (text.parentElement.parentElement.parentElement.previousElementSibling) { 3224 text.parentElement.parentElement.parentElement.style.display = 'none'; 3225 } else { 3226 text.parentElement.parentElement.parentElement.parentElement.style.display = 'none'; 3227 } 3228 } 3229 }) 3230 }) 3231} 3232 3233var bannersBorders = document.querySelectorAll('.banners-border') 3234 3235if (bannersBorders.length) { 3236 bannersBorders[0].classList.remove('banners-border') 3237} 3238 3239var openSearchs = document.querySelectorAll('.open-search'); 3240var closeSearchs = document.querySelectorAll('.search-container .close-icon'); 3241var searchWrap = document.querySelectorAll('.search-wrap'); 3242var searchContainer = document.querySelectorAll('.search-container') 3243openSearchs.forEach(openSearch => { 3244 openSearch.addEventListener('click', function (e) { 3245 e.preventDefault(); 3246 searchContainer.forEach(cont => { 3247 cont.classList.add('open-form') 3248 }) 3249 searchWrap.forEach(cont => { 3250 cont.classList.add('is-active') 3251 }) 3252 this.classList.add('open'); 3253 }) 3254}) 3255 3256closeSearchs.forEach(closeSearch => { 3257 3258 closeSearch.addEventListener('click', function (e) { 3259 searchWrap.forEach(cont => { 3260 cont.classList.remove('is-active') 3261 }) 3262 openSearchs.forEach(openSearch => { 3263 openSearch.classList.remove('open'); 3264 }) 3265 searchContainer.forEach(cont => { 3266 cont.classList.remove('open-form') 3267 }) 3268 }) 3269}) 3270 3271var mtfSearch = document.querySelector('#mtfSearch') 3272if (mtfSearch) { 3273 mtfSearch.addEventListener('keyup', function (e) { 3274 const term = e.target.value.toLocaleLowerCase(); 3275 const symbols = document.querySelectorAll('.mtfList .name'); 3276 Array.from(symbols).forEach(function (text) { 3277 const title = text.textContent; 3278 if (title.toLowerCase().indexOf(term) != -1) { 3279 text.parentElement.parentElement.style.display = 'flex'; 3280 } else { 3281 text.parentElement.parentElement.style.display = 'none'; 3282 } 3283 }) 3284 }) 3285} 3286 3287var hasChildren = document.getElementById('has-children') 3288 3289if (hasChildren) { 3290 hasChildren.addEventListener('click', function (e) { 3291 var bounds = this.getBoundingClientRect(); 3292 var subMenu = hasChildren.querySelector('.sub-menu'); 3293 if (subMenu) { 3294 subMenu.style.top = (bounds.top + 40) + 'px'; 3295 subMenu.style.left = (bounds.left - subMenu.offsetWidth + 68) + 'px'; 3296 subMenu.classList.add('open') 3297 } 3298 }) 3299} 3300 3301document.body.addEventListener('click', function (e) { 3302 if (hasChildren) { 3303 if (!e.target.getAttribute('id') || e.target.getAttribute('id') != 'menu-link') { 3304 var subMenu = hasChildren.querySelector('.sub-menu'); 3305 if (subMenu && subMenu.classList.contains('open')) { 3306 subMenu.classList.remove('open') 3307 } 3308 } 3309 } 3310}); 3311 3312document.addEventListener("scroll", (event) => { 3313 if (hasChildren) { 3314 var subMenu = hasChildren.querySelector('.sub-menu'); 3315 if (subMenu && subMenu.classList.contains('open')) { 3316 subMenu.classList.remove('open') 3317 } 3318 } 3319});
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.