1// Pack List Rank 2$('body').on('click','*[data-pack_rank]',function(){ 3 var type = $(this).data("pack_rank"); 4 var order = $(this).data("rate"); 5 var items = $(".pack--list .pack--item"); 6 switch (type) { 7 case "quantity": 8 items.sort(function(a, b) { 9 var aValue = $(a).data("quantity"); 10 var bValue = $(b).data("quantity"); 11 return order === "asc" ? aValue - bValue : bValue - aValue; 12 }); 13 break; 14 case "price": 15 items.sort(function(a, b) { 16 var aValue = $(a).data("price"); 17 var bValue = $(b).data("price"); 18 return order === "asc" ? aValue - bValue : bValue - aValue; 19 }); 20 break; 21 default: 22 break; 23 } 24 $(".pack--list").empty().append(items); 25}); 26 27function data_compilation(response){ 28 if(response.statu){ 29 if(response.balance_order){ 30 $('input[name="order[balance_token]"]').val(response.balance_order.token); 31 $('.full-alert').addClass("show"); 32 $('.full-alert').find(".description").html(response.balance_order.text); 33 } 34 if(response.alert){ 35 console.log(response.alert); 36 toastify_start({ 37 text: response.alert.text, 38 duration: 3000, 39 close: true, 40 gravity: "top", 41 position: 'center', 42 stopOnFocus: true, 43 class: response.alert.statu, 44 style: { 45 background: response.alert.statu, 46 }, 47 }); 48 } 49 if(response.favorite_change){ 50 switch (response.favorite_change) { 51 case 'delete': 52 $('*[data-favori_package="'+response.package_id+'"]').removeClass("active"); 53 break; 54 case 'add': 55 $('*[data-favori_package="'+response.package_id+'"]').addClass("active"); 56 break; 57 } 58 } 59 if(response.cart_add){ 60 $(".full-alert").addClass("show"); 61 } 62 if(response.html_element){ 63 $('*[data-outhtml="'+response.html_element+'"]').html(response.html_output); 64 } 65 if(response.verify_email_adress){ 66 $('*[data-verify="mail"]').removeClass("d-block").addClass("d-none"); 67 $('*[data-verify="code"]').removeClass("d-none").addClass("d-block"); 68 $('*[data-verify="code"]').find('input[name="customer[mail]"]').val(response.verify_email_adress); 69 } 70 if(response.forgot_password_code){ 71 $('*[data-forgat="request"]').addClass("d-none"); 72 $('*[data-forgat="code"]').removeClass("d-none"); 73 $('input[name="customer[forgot_mail]"]').val(response.forgot_password_code); 74 } 75 if(response.forgot_password_new){ 76 $('*[data-forgat="request"]').removeClass("d-none").attr("style",""); 77 $('*[data-forgat="code"]').removeClass("d-none").attr("style",""); 78 $('*[data-forgat="newpass"]').removeClass("d-none"); 79 $('*[data-forgat="newpass"]').find("b").html(response.forgot_password_new); 80 setTimeout(function(){ 81 $('*[data-forgat="newpass"]').addClass("d-none").attr("style",""); 82 $('*[data-forgat="code"]').addClass("d-none").attr("style",""); 83 $('*[data-forgat="request"]').addClass("d-none").attr("style",""); 84 },10000); 85 } 86 if(response.cart_detail){ 87 if(response.cart_detail.cart_count < 1){ 88 $("*[data-cart_action] .coupon").addClass("d-none"); 89 $("*[data-cart_action] button[data-next_button]").removeClass("butto-success"); 90 $("*[data-cart_action] button[data-next_button]").addClass("butto-light"); 91 $("*[data-cart_action] button[data-next_button]").html("Your Cart is Empty!"); 92 } else { 93 $("*[data-cart_action] .coupon").removeClass("d-none"); 94 $("*[data-cart_action] button[data-next_button]").removeClass("butto-light"); 95 $("*[data-cart_action] button[data-next_button]").addClass("butto-success"); 96 } 97 $('*[data-cart_detail="cart_price"]').html(response.cart_detail.amount_detail.cart_price_view); 98 $('*[data-cart_detail="service_price"]').html(response.cart_detail.amount_detail.service_price_view); 99 $('*[data-cart_detail="cart_count"]').html(response.cart_detail.cart_count); 100 $('*[data-cart_detail="total_price"]').html(response.cart_detail.amount_detail.total_price_view); 101 $('*[data-cart_detail="total_price_back"]').html(response.cart_detail.amount_detail.total_price_view); 102 $('*[data-cart_detail="discount_price"]').html(response.cart_detail.amount_detail.discount_price_view); 103 // ADIM 1 Genel Toplam: her zaman NET (base) â yöntem seçilse bile gross gösterme. 104 var _ad = response.cart_detail.amount_detail; 105 var _step1 = (typeof _ad.net_price_view !== "undefined") ? _ad.net_price_view 106 : ((typeof _ad.cart_price_view !== "undefined") ? _ad.cart_price_view : _ad.total_price_view); 107 $('*[data-cart_detail="step1_total"]').html(_step1); 108 // KDV + Komisyon: yalnızca ödeme yöntemi seçilince (base_amount set) göster 109 var _paid = (typeof _ad.base_amount !== "undefined"); 110 if(typeof _ad.kdv_price_view !== "undefined"){ 111 $('*[data-cart_detail="kdv_price"]').html(_ad.kdv_price_view); 112 } 113 if(typeof _ad.kdv_rate !== "undefined"){ 114 $('*[data-cart_detail="kdv_rate_view"]').html("(%" + String(_ad.kdv_rate).replace(".",",") + ")"); 115 } 116 if(typeof _ad.commission_rate !== "undefined"){ 117 $('*[data-cart_detail="commission_rate_view"]').html("(%" + String(_ad.commission_rate).replace(".",",") + ")"); 118 } 119 $('*[data-cart_detail="kdv_row"]').css("display", _paid ? "flex" : "none"); 120 $('*[data-cart_detail="commission_row"]').css("display", _paid ? "flex" : "none"); 121 } 122 if(response.customer_register_action || response.customer_login_action || response.redirect){ 123 $('body').addClass("none_click"); 124 setTimeout(function(){ 125 window.location.href = response.redirect; 126 },response.redirect_time ? response.redirect_time : 3000); 127 return true; 128 } 129 130 if(response.coupon_add){ 131 if(response.cart_detail.amount_detail.discount_price > 0){ 132 $('input[name="order[coupon_code]"]').prop("readonly",true); 133 $('*[data-cart_coupon_code]').html($('*[data-cart_coupon_code]').attr("data-remove_text")); 134 $('*[data-cart_coupon_code]').attr("data-cart_coupon_code","success"); 135 } 136 } 137 if(response.freetool_process_token){ 138 startFreeCountdown(response.freetool_process_token,response.freetool_delay_minute); 139 } 140 if(response.freetool_process_success){ 141 startFreeCountdown("finished",response.freetool_process_success); 142 } 143 } else if(response.jsonStatu){ 144 } 145 146} 147$('body').on('submit', '.ns_ajax_form', function (event) { 148 event.preventDefault(); 149 if(this.dataset.ns_statu && this.dataset.ns_statu == "none_click") 150 return false; 151 $('body').addClass("none_click"); 152 const ns_data = $(this).serialize(); 153 const submit_url = this.dataset.ns_action; 154 const $form = $(this); 155 const $submitBtn = $form.find('button[type="submit"]'); 156 const originalBtnText = $submitBtn.html(); 157 158 $.ajax({
159 type: 'POST', 160 url: submit_url, 161 data: ns_data, 162 dataType: "json", 163 success: function (response) { 164 $('body').removeClass("none_click"); 165 if(typeof grecaptcha !== 'undefined'){ try { grecaptcha.reset(); } catch(e){} } 166 if(response && typeof response === 'object') { 167 data_compilation(response); 168 } else { 169 console.error('Invalid response format:', response); 170 if(typeof toastify_start === 'function') { 171 toastify_start({ 172 text: 'Beklenmeyen bir hata oluÅtu. Lütfen tekrar deneyin.', 173 duration: 3000, 174 close: true, 175 gravity: "top", 176 position: 'center', 177 stopOnFocus: true, 178 class: 'danger', 179 style: { 180 background: '#dc3545', 181 }, 182 }); 183 } else { 184 alert('Beklenmeyen bir hata oluÅtu. Lütfen tekrar deneyin.'); 185 } 186 } 187 if($submitBtn.length) { 188 $submitBtn.prop('disabled', false).html(originalBtnText); 189 } 190 }, 191 error: function (jqXHR, textStatus, errorThrown) { 192 $('body').removeClass("none_click"); 193 if(typeof grecaptcha !== 'undefined'){ try { grecaptcha.reset(); } catch(e){} } 194 console.error('AJAX Error:', textStatus, errorThrown, jqXHR); 195 196 let errorMessage = 'Bir hata oluÅtu. Lütfen tekrar deneyin.'; 197 198 // Response'dan hata mesajını almaya çalıŠ199 if(jqXHR.responseJSON && jqXHR.responseJSON.alert) { 200 errorMessage = jqXHR.responseJSON.alert.text || errorMessage; 201 } else if(jqXHR.responseText) { 202 try { 203 const errorResponse = JSON.parse(jqXHR.responseText); 204 if(errorResponse.alert && errorResponse.alert.text) { 205 errorMessage = errorResponse.alert.text; 206 } 207 } catch(e) { 208 // JSON parse edilemezse default mesaj kullan 209 } 210 } 211 212 if(typeof toastify_start === 'function') { 213 toastify_start({ 214 text: errorMessage, 215 duration: 5000, 216 close: true, 217 gravity: "top", 218 position: 'center', 219 stopOnFocus: true, 220 class: 'danger', 221 style: { 222 background: '#dc3545', 223 }, 224 }); 225 } else { 226 alert(errorMessage); 227 } 228 229 if($submitBtn.length) { 230 $submitBtn.prop('disabled', false).html(originalBtnText); 231 } 232 } 233 }); 234}); 235 236$('body').on('click','*[data-close_head]',function(){ 237 $(this).addClass("active"); 238 const ns_data = { 239 ns_action_theme: "close_head" 240 }; 241 submit_url = this.dataset.close_head; 242 $.ajax({
243 type: 'POST', 244 url: submit_url, 245 data: ns_data, 246 success: function (response) { 247 $('.notification--header').remove(); 248 }, 249 error: function (jqXHR, textStatus, errorThrown) { 250 console.error(textStatus, errorThrown); 251 } 252 }); 253}); 254/** SİLİNECEK */ 255$('body').on('submit', '.ns_ajax_form_test', function (event) { 256 event.preventDefault(); 257 const ns_data = $(this).serialize(); 258 const submit_url = this.dataset.ns_action+"?conError=1"; 259 $.ajax({ 260 type: 'POST', 261 url: submit_url, 262 data: ns_data, 263 /*dataType: "json",*/ 264 success: function (response) { 265 console.log(response); 266 alert(response); 267 }, 268 error: function (jqXHR, textStatus, errorThrown) { 269 console.error(textStatus, errorThrown); 270 } 271 }); 272}); 273 274$('body').on('click', '*[data-removecartitem]',function(){ 275 const ns_data = {ns_action:'remove_cart', key:this.dataset.removecartitem}; 276 const submit_url = this.dataset.ns_action+"?conError=1"; 277 $.ajax({
278 type: 'POST', 279 url: submit_url, 280 data: ns_data, 281 dataType: "json", 282 success: function (response) { 283 data_compilation(response); 284 }, 285 error: function (jqXHR, textStatus, errorThrown) { 286 console.error(textStatus, errorThrown); 287 } 288 }); 289}); 290$('body').on('click','*[data-favori_package]',function(){ 291 const submit_url = this.dataset.ns_action; 292 const ns_data = { 293 ns_action_theme:'add_favori', 294 package_id:this.dataset.favori_package 295 } 296 $.ajax({ 297 type: 'POST', 298 url: submit_url, 299 data: ns_data, 300 dataType: "json", 301 success: function (response) { 302 data_compilation(response); 303 }, 304 error: function (jqXHR, textStatus, errorThrown) { 305 console.error(textStatus, errorThrown); 306 } 307 }) 308}) 309$('body').on('click','*[data-cart_coupon_code]',function(){ 310 code = $('input[name="order[coupon_code]"]').val(); 311 const submit_url = this.dataset.ns_action+"?conError=1"; 312 switch (this.dataset.cart_coupon_code) { 313 case 'success': 314 $('input[name="order[coupon_code]"]').val(""); 315 $('input[name="order[coupon_code]"]').prop("readonly",false); 316 ns_data = {ns_action:'remove_coupon'}; 317 $(this).attr("data-cart_coupon_code",""); 318 $(this).html(this.dataset.apply_text); 319 $(this).removeClass("butto-success"); 320 break; 321 default: 322 ns_data = {ns_action:'add_coupon', code:code}; 323 break; 324 } 325 $.ajax({
326 type: 'POST', 327 url: submit_url, 328 data: ns_data, 329 dataType: "json", 330 success: function (response) { 331 data_compilation(response); 332 }, 333 error: function (jqXHR, textStatus, errorThrown) { 334 console.error(textStatus, errorThrown); 335 } 336 }); 337}); 338$('body').on('click','*[data-dial-code]',function(){ 339 if($('input[name="customer[phone_code]"]').length>0){ 340 $('input[name="customer[phone_code]"]').val($(this).attr("data-dial-code")); 341 $('input[name="customer[country_code]"]').val($(this).attr("data-country-code")); 342 } 343}); 344$("body").on("click", ".selected-payment .item", function(){ 345 $(".selected-payment .item").removeClass("selected"); 346 $(this).addClass("selected"); 347 if($('input[name="order[payment_method]"]').length) 348 $('input[name="order[payment_method]"]').val(this.dataset.uniq); 349 const submit_url = this.dataset.ns_action; 350 $('.select-payment-desc p').html(this.dataset.description); 351 ns_data = {ns_action:'select_payment', uniq:this.dataset.uniq}; 352 $.ajax({
353 type: 'POST', 354 url: submit_url, 355 data: ns_data, 356 dataType: "json", 357 success: function (response) { 358 data_compilation(response); 359 }, 360 error: function (jqXHR, textStatus, errorThrown) { 361 console.error(textStatus, errorThrown); 362 } 363 }); 364}); 365$("body").on("click", ".select-payment-method .item", function(){ 366 $(".select-payment-method .item").removeClass("selected"); 367 $(this).addClass("selected"); 368 if($('input[name="order[payment_method]"]').length) 369 $('input[name="order[payment_method]"]').val(this.dataset.funds_method); 370 const submit_url = this.dataset.ns_action; 371 $('.select-payment-desc p').html(this.dataset.description); 372 ns_data = {ns_action:'select_payment', uniq:this.dataset.funds_method}; 373 $.ajax({ 374 type: 'POST', 375 url: submit_url, 376 data: ns_data, 377 dataType: "json", 378 success: function (response) { 379 data_compilation(response); 380 }, 381 error: function (jqXHR, textStatus, errorThrown) { 382 console.error(textStatus, errorThrown); 383 } 384 }); 385}); 386$('body').on('change','select[name="customer[type]"]',function(){ 387 switch (this.value) { 388 case 'corporate': 389 $('input[name="customer[name]"]').prop("placeholder","Firma Adı"); 390 $('#customerCorporate').removeClass("d-none"); 391 break; 392 default: 393 $('input[name="customer[name]"]').prop("placeholder","Adınız Soyadınız"); 394 $('#customerCorporate').addClass("d-none"); 395 break; 396 } 397}); 398$('body').on('change','select[name="order[customer_type]"]',function(){ 399 switch (this.value) { 400 case 'corporate': 401 $('input[name="order[customer_name]"]').prop("placeholder","Firma Adı"); 402 $('#customerCorporate').removeClass("d-none"); 403 break; 404 default: 405 $('input[name="order[customer_name]"]').prop("placeholder","Adınız Soyadınız"); 406 $('#customerCorporate').addClass("d-none"); 407 break; 408 } 409}); 410$("body").on("click", "[step-next]", function(){ 411 $(".order-step-area .step-one").slideUp(200); 412 $(".order-step-area .step-two").slideDown(200); 413 414}); 415$("body").on("click", "[step-prev]", function(){ 416 $(".order-step-area .step-one").slideDown(200); 417 $(".order-step-area .step-two").slideUp(200); 418}); 419function toastify_start(toastify) { 420 Toastify({ 421 newWindow: !0, 422 text: toastify.text ? toastify.text:'Hatalı bir iÅlem gerçekleÅtirdiniz!', 423 gravity: toastify.gravity ? toastify.gravity:'bottom', 424 position: toastify.position ? toastify.position:'right', 425 className: toastify.class ? "bg-"+toastify.class:'bg-danger', 426 stopOnFocus: !0, 427 offset: { x: 50, y: 10 }, 428 duration: toastify.duration ? toastify.duration:3000, 429 close: toastify.close ? true:false, 430 }).showToast(); 431} 432$('body').on('click','*[data-fast_order_select]',function(){ 433 var fast_type = this.dataset.fast_order_select; 434 var submit_url = document.querySelector(".fastOrder").dataset.submit_url; 435 if(!$(this).hasClass("active")){ 436 switch (fast_type) { 437 case 'platform': 438 var ns_fast_data = { 439 ns_tax: this.dataset.id, 440 ns_type: fast_type, 441 ns_action: "fast_order_next" 442 }; 443 $('*[data-fast_order_area="platform_list"]').find(".desc").text(this.dataset.name); 444 $('*[data-fast_order_area="category_list"]').addClass("active"); 445 $('*[data-fast_order_area="category_list"]').find(".desc").text("Seçim Yapılmadı"); 446 $('*[data-fast_order_area="package_list"]').attr("style","opacity: 0.6;pointer-events: none;"); 447 $('*[data-fast_order_area="package_list"]').removeClass("active"); 448 $('*[data-fast_order_area="package_list"]').find(".desc").text("Seçim Yapılmadı"); 449 $('*[data-fast_order_area="fast_buy_button"]').attr("style","opacity: 0.4;pointer-events: none;"); 450 $('*[data-fast_order_area="fast_buy_button"]').find("span").html($('*[data-fast_order_area="fast_buy_button"]').attr("data-text")); 451 break; 452 case 'category': 453 $('*[data-fast_order_area="category_list"]').find(".desc").text(this.dataset.name); 454 $('*[data-fast_order_area="package_list"]').addClass("active"); 455 $('*[data-fast_order_area="package_list"]').find(".desc").text("Seçim Yapılmadı!"); 456 $('*[data-fast_order_area="package_list"]').attr("style","opacity: 0.6;pointer-events: none;"); 457 $('*[data-fast_order_area="fast_buy_button"]').attr("style","opacity: 0.4;pointer-events: none;"); 458 $('*[data-fast_order_area="fast_buy_button"]').find("span").html($('*[data-fast_order_area="fast_buy_button"]').attr("data-text")); 459 var ns_fast_data = { 460 ns_tax: this.dataset.id, 461 ns_type: fast_type, 462 ns_action: "fast_order_next" 463 }; 464 break; 465 case 'package': 466 $('*[data-fast_order_area="fast_buy_button"]').attr("style",""); 467 $('*[data-fast_order_area="package_list"]').find(".desc").text(this.dataset.name); 468 $('*[data-fast_order_area="fast_buy_button"]').attr("data-fast_order_url",this.dataset.id); 469 $('*[data-fast_order_area="fast_buy_button"]').find("span").html($('*[data-fast_order_area="fast_buy_button"]').attr("data-text")+" ("+this.dataset.price+")"); 470 $('*[data-fast_order_area="package_list"]').find(".fastDrop").removeClass("show"); 471 return false; 472 break; 473 case 'fast_buy_button': 474 const fast_order_url = this.dataset.fast_order_url; 475 if(fast_order_url.length > 5){ 476 window.location.href = fast_order_url; 477 return false; 478 } 479 break; 480 } 481 $.ajax({
482 type: 'POST', 483 url: submit_url, 484 data: ns_fast_data, 485 dataType: 'JSON', 486 success: function (response) { 487 if(response.fast_area){ 488 $('*[data-fast_order_area="'+response.fast_area+'"]').html(response.fast_content); 489 $('*[data-fast_order_area="'+response.fast_area+'"]').attr("style",""); 490 } 491 }, 492 error: function (jqXHR, textStatus, errorThrown) { 493 console.log(textStatus, errorThrown); 494 } 495 }); 496 } 497}); 498 499$('body').on('click','*[data-coupon_copy]',function(){ 500 var copyText = $(this).parent().find(".text span").text(); 501 navigator.clipboard.writeText(copyText); 502 this.style = 'background: #FF9800;color: #fff;'; 503 setTimeout(() => { 504 document.querySelector('.copy').style = ''; 505 },220); 506}); 507 508$("[data-freeinp]").on("input", function () { 509 if ($("[data-freeinp='userinfo']").val().length > 3 && $("[data-freeinp='amount']").val() !== "") { 510 $(".free-start-btn").prop("disabled", false); 511 } else { 512 $(".free-start-btn").prop("disabled", true); 513 } 514}); 515function startFreeCountdown(token, minutesToWait) { 516 $('*[data-free_step="process_enter_area"]').slideUp(100); 517 $('*[data-free_step="process_waiting_area"]').slideDown(100); 518 const timer = document.getElementById("progress-bar"); 519 switch (token) { 520 case 'finished': 521 alert("ıo"); 522 timer.setAttribute("aria-valuenow", 100); 523 timer.style.background = "#0ea77a"; 524 timer.style.width = "100%"; 525 $('*[data-free_step="process_enter_area"]').remove(); 526 $('*[data-free_step="process_waiting_area"] #prepare').text(minutesToWait.head); 527 $('*[data-free_step="process_waiting_area"] #timer').text(minutesToWait.text); 528 break; 529 default: 530 const minutesToWaitInt = minutesToWait ? parseInt(minutesToWait):0.2; 531 const endDate = new Date(Date.now() + minutesToWaitInt * 60 * 1000); 532 const remainingTimeStart = endDate.getTime() - new Date().getTime(); 533 const timers = setInterval(function () { 534 const now = new Date().getTime(); 535 const t = endDate - now; 536 if (t >= 0) { 537 const setValue = (100 - parseInt((t / remainingTimeStart) * 100)).toString(); 538 const percentage = timer.querySelector("span"); 539 timer.setAttribute("aria-valuenow", setValue); 540 timer.style.width = setValue+"%"; 541 $('*[data-free_count]').text((Math.floor(t / 1000 / 60)).toString().padStart(2, '0') + ":" + (Math.floor(t / 1000) % 60).toString().padStart(2, '0')); 542 $('*[data-free_step="process_enter_area"]').find('button[type="submit"]').prop("disabled", true); 543 } else { 544 $('input[name="freetool[token]"]').val(token); 545 clearInterval(timers); 546 $('*[data-free_step="process_enter_area"]').find('button[type="submit"]').prop("disabled", false); 547 $('*[data-free_step="process_enter_area"]').find('button[type="submit"]').click(); 548 } 549 }, 1000); 550 break; 551 } 552} 553// Sepet adim gecisinde sayfayi adim alaninin basina kaydirir. 554// Aksi halde mobilde scroll pozisyonu oldugu yerde kalir ve Adim 2'nin 555// ustundeki "Kisisel Bilgiler Alani" ekran disinda kalir. 556// Kaydirma, animasyon BASLAMADAN once ve anlik yapilir. Animasyon 557// sonrasi animasyonlu kaydirma denendi; once icerik asagi akip sonra 558// sayfa yukari ciktigi icin iki ayri hareket olarak goruluyordu. 559// Adim alaninin ustune sabitlendigi icin alttaki yukseklik degisimi 560// gorunumu bozmaz. 561function cart_step_scroll_now(){ 562 try { 563 var $a = $('.step-one').is(':visible') ? $('.step-one') : $('.step-two'); 564 if(!$a.length) return; 565 $('html,body').stop(true); 566 window.scrollTo(0, Math.max(0, $a.offset().top - 120)); 567 } catch(e){} 568} 569$('body').on('click','*[data-cart_step]',function(){ 570 cart_step_scroll_now(); 571 switch (this.dataset.cart_step) { 572 case 'two': 573 $('.step-one').slideUp(200); 574 $('.step-two').slideDown(200); 575 break; 576 default:
577 $('.step-two').slideUp(200); 578 $('.step-one').slideDown(200); 579 break; 580 } 581}); 582 583$('body').on('click','*[data-ns_modal_open]',function(){ 584 var ns_modal_open = this.dataset.ns_modal_open; 585 var modal = document.getElementById(ns_modal_open); 586 modal.style.display = "block"; 587}); 588$('body').on('click','.ns-closeBtn',function(){ 589 var modal = this.parentElement.parentElement; 590 modal.style.display = "none"; 591}); 592document.addEventListener('DOMContentLoaded', function() { 593 var modals = document.getElementsByClassName("ns-modal"); 594 window.onclick = function(event) { 595 for (var i = 0; i < modals.length; i++) { 596 if (event.target == modals[i]) { 597 modals[i].style.display = "none"; 598 } 599 } 600 } 601});
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.