1(function( $ ) { 2 'use strict'; 3 4 /** 5 * All of the code for your common JavaScript source 6 * should reside in this file. 7 * 8 * Note: It has been assumed you will write jQuery code here, so the 9 * $ function reference has been prepared for usage within the scope 10 * of this function. 11 * 12 * This enables you to define handlers, for when the DOM is ready: 13 * 14 * $(function() { 15 * 16 * }); 17 * 18 * When the window is loaded: 19 * 20 * $( window ).load(function() { 21 * 22 * }); 23 * 24 * ...and/or other possibilities. 25 * 26 * Ideally, it is not considered best practise to attach more than a 27 * single DOM-ready or window-load handler for a particular page. 28 * Although scripts in the WordPress core, Plugins and Themes may be 29 * practising this, we should strive to set a better example in our own work. 30 */ 31 $(document).ready(function(){ 32 if ( $('.mbfw_time_picker').length > 0 ) { 33 $('.mbfw_time_picker').timepicker(); 34 } 35 36 $(document).on('change', 'form.cart :input', function(e){ 37 var form_data = new FormData( $('form.cart')[0] ); 38 if ('twelve_hour' == mwb_mbfw_public_obj.wps_diaplay_time_format ) { 39 for (let [key, value] of form_data.entries()) { 40 if (key === 'wps_booking_single_calendar_form' && key != null ) { 41 form_data.set('wps_booking_single_calendar_form', convertTimeFormat(value)); 42 } else if (key === 'mwb_mbfw_booking_to_time' && key != null ) { 43 if( ( '' != value ) ){ 44 45 form_data.set('mwb_mbfw_booking_to_time', convertTimeFormatDual(value)); 46 } else{ 47 form_data.set('mwb_mbfw_booking_to_time', ''); 48 } 49 } else if (key === 'mwb_mbfw_booking_from_time' && key != null ) { 50 51 form_data.set('mwb_mbfw_booking_from_time', convertTimeFormatDual(value)); 52 } 53 54 } 55 } 56 57 if ( $('.mwb_mbfw_booking_product_id').val() ) { 58 retrieve_booking_total_ajax( form_data ); 59 } 60 }); 61 62 63 $(document).on('focusout blur keydown paste focus mousedown mouseover mouseout', '.mwb-mbfw-cart-page-data', function () { 64 65 var form_data = new FormData( $('form.cart')[0] ); 66 if ('twelve_hour' == mwb_mbfw_public_obj.wps_diaplay_time_format ) { 67 68 for (let [key, value] of form_data.entries()) { 69 if (key === 'wps_booking_single_calendar_form' && key != null ) { 70 form_data.set('wps_booking_single_calendar_form', convertTimeFormat(value)); 71 } else if (key === 'mwb_mbfw_booking_to_time' && key != null ) { 72 73 form_data.set('mwb_mbfw_booking_to_time', convertTimeFormatDual(value)); 74 75 } else if (key === 'mwb_mbfw_booking_from_time' && key != null ) { 76 77 form_data.set('mwb_mbfw_booking_from_time', convertTimeFormatDual(value)); 78 } 79 } 80 } 81 82 if ( $('.mwb_mbfw_booking_product_id').val() ) { 83 retrieve_booking_total_ajax( form_data ); 84 } 85 }); 86 87 $('#mwb-mbfw-booking-from-time, #mwb-mbfw-booking-to-time').on('keydown paste focus mousedown',function(e){ 88 89 e.preventDefault(); 90 91 92 }); 93 $('.mwb_mbfw_time_date_picker_frontend').datetimepicker({ 94 format : 'd-m-Y H:00', 95 minDate : mwb_mbfw_common_obj.minDate, 96 }); 97 $('.mwb_mbfw_date_picker_frontend').datetimepicker({ 98 format : 'd-m-Y', 99 timepicker : false, 100 minDate : mwb_mbfw_common_obj.minDate, 101 }); 102 103 104 $('#mwb_mbfw_choose_holiday').datepicker({ 105 dateFormat : 'dd-mm-yy', 106 minDate: mwb_mbfw_common_obj.minDate, 107 108 }); 109 $('.mwb_mbfw_time_picker_frontend').datetimepicker({ 110 format : 'H:i', 111 datepicker : false, 112 }); 113 $('#mwb-mbfw-booking-from-time').on('change', function(){ 114 115 var from_time = $(this).val(); 116 var to_time = $('#mwb-mbfw-booking-to-time').val(); 117 118 if ( from_time == '' ) { 119 return; 120 } 121 var date_array = from_time.split(" "); 122 var date = date_array[0]; var flag = 0; 123 if ( isToday(date) ) { 124 if ( mwb_mbfw_public_obj.is_pro_active != ''){ 125 var upcoming_holiday = bfwp_public_param.upcoming_holiday; 126 if( upcoming_holiday.length > 0 ) { 127 if(isDateInArray(date, upcoming_holiday)) { 128 if (jQuery(jQuery('.flatpickr-calendar')).length > 1 ) { 129 jQuery(jQuery('.flatpickr-calendar')[0]).removeClass('open'); 130 jQuery(jQuery('.flatpickr-calendar')[0]).addClass('close'); 131 $('#mwb-mbfw-booking-from-time').val(''); 132 return; 133 } 134 } else { 135 if ( from_time && to_time ) { 136 if ('twelve_hour' == mwb_mbfw_public_obj.wps_diaplay_time_format ) { 137 from_time = convertTimeFormatDual(from_time); 138 to_time = convertTimeFormatDual(to_time); 139 } 140 141 if ( moment( from_time, 'DD-MM-YYYY HH:mm' ) >= moment( to_time, 'DD-MM-YYYY HH:mm' ) ) { 142 $(this).val(''); 143 144 if (jQuery(jQuery('.flatpickr-calendar')).length > 1 ) { 145 if (jQuery(jQuery('.flatpickr-calendar')[0]).hasClass('open')){ 146 jQuery(jQuery('.flatpickr-calendar')[0]).removeClass('open'); 147 jQuery(jQuery('.flatpickr-calendar')[0]).addClass('close'); 148 $(this).val(''); 149 alert( mwb_mbfw_public_obj.wrong_order_date_2 ); 150 } 151 } 152 153 } 154 } 155 } 156 } 157 } else { 158 var upcoming_holiday = mwb_mbfw_public_obj.upcoming_holiday; 159 if( upcoming_holiday.length > 0 ) { 160 if(isDateInArray(date, upcoming_holiday)) { 161 if (jQuery(jQuery('.flatpickr-calendar')).length > 1 ) { 162 jQuery(jQuery('.flatpickr-calendar')[0]).removeClass('open'); 163 jQuery(jQuery('.flatpickr-calendar')[0]).addClass('close'); 164 $('#mwb-mbfw-booking-from-time').val(''); 165 return; 166 } 167 } else { 168 if ( from_time && to_time ) { 169 if ('twelve_hour' == mwb_mbfw_public_obj.wps_diaplay_time_format ) { 170 from_time = convertTimeFormatDual(from_time); 171 to_time = convertTimeFormatDual(to_time); 172 } 173 174 if ( moment( from_time, 'DD-MM-YYYY HH:mm' ) >= moment( to_time, 'DD-MM-YYYY HH:mm' ) ) { 175 $(this).val(''); 176 177 if (jQuery(jQuery('.flatpickr-calendar')).length > 1 ) { 178 if (jQuery(jQuery('.flatpickr-calendar')[0]).hasClass('open')){ 179 jQuery(jQuery('.flatpickr-calendar')[0]).removeClass('open'); 180 jQuery(jQuery('.flatpickr-calendar')[0]).addClass('close'); 181 $(this).val(''); 182 alert( mwb_mbfw_public_obj.wrong_order_date_2 ); 183 } 184 } 185 186 } 187 } 188 } 189 } 190 } 191 } else { 192 193 if ( from_time && to_time ) { 194 if ('twelve_hour' == mwb_mbfw_public_obj.wps_diaplay_time_format ) { 195 from_time = convertTimeFormatDual(from_time); 196 to_time = convertTimeFormatDual(to_time); 197 } 198 if ( moment( from_time, 'DD-MM-YYYY HH:mm' ) >= moment( to_time, 'DD-MM-YYYY HH:mm' ) ) { 199 $(this).val(''); 200 201 if (jQuery(jQuery('.flatpickr-calendar')).length > 1 ) { 202 if (jQuery(jQuery('.flatpickr-calendar')[0]).hasClass('open')){ 203 jQuery(jQuery('.flatpickr-calendar')[0]).removeClass('open'); 204 jQuery(jQuery('.flatpickr-calendar')[0]).addClass('close'); 205 $(this).val(''); 206 alert( mwb_mbfw_public_obj.wrong_order_date_2 ); 207 } 208 } 209 210 } 211 }} 212 }); 213 $('#mwb-mbfw-booking-to-time').on('change', function(){ 214 215 var from_time = $('#mwb-mbfw-booking-from-time').val(); 216 var to_time = $(this).val(); 217 218 var date_array = to_time.split(" "); 219 var date = date_array[0]; 220 if ( isToday(date) ) { 221 if ( mwb_mbfw_public_obj.is_pro_active != ''){ 222 223 var upcoming_holiday = bfwp_public_param.upcoming_holiday; 224 if( upcoming_holiday.length > 0 ) { 225 if(isDateInArray(date, upcoming_holiday)) { 226 if (jQuery(jQuery('.flatpickr-calendar')).length > 1 ) { 227 jQuery(jQuery('.flatpickr-calendar')[0]).removeClass('open'); 228 jQuery(jQuery('.flatpickr-calendar')[0]).addClass('close'); 229 $('#mwb-mbfw-booking-to-time').val(''); 230 } 231 } else { 232 if ( from_time && to_time ) { 233 if ('twelve_hour' == mwb_mbfw_public_obj.wps_diaplay_time_format ) { 234 from_time = convertTimeFormatDual(from_time); 235 to_time = convertTimeFormatDual(to_time); 236 } 237 if ( moment( from_time, 'DD-MM-YYYY HH:mm' ) >= moment( to_time, 'DD-MM-YYYY HH:mm' ) ) { 238 $('#mwb-mbfw-booking-to-time').val(''); 239 240 if (jQuery(jQuery('.flatpickr-calendar')).length > 1 ) { 241 if (jQuery(jQuery('.flatpickr-calendar')[1]).hasClass('open')){ 242 jQuery(jQuery('.flatpickr-calendar')[1]).removeClass('open'); 243 jQuery(jQuery('.flatpickr-calendar')[1]).addClass('close'); 244 $(this).val(''); 245 alert( mwb_mbfw_public_obj.wrong_order_date_1 ); 246 } 247 } 248 249 250 } 251 } 252 } 253 } 254 } else{ 255 var upcoming_holiday = mwb_mbfw_public_obj.upcoming_holiday; 256 if( upcoming_holiday.length > 0 ) { 257 if(isDateInArray(date, upcoming_holiday)) { 258 if (jQuery(jQuery('.flatpickr-calendar')).length > 1 ) { 259 jQuery(jQuery('.flatpickr-calendar')[0]).removeClass('open'); 260 jQuery(jQuery('.flatpickr-calendar')[0]).addClass('close'); 261 $('#mwb-mbfw-booking-to-time').val(''); 262 } 263 } else { 264 if ( from_time && to_time ) { 265 if ('twelve_hour' == mwb_mbfw_public_obj.wps_diaplay_time_format ) { 266 from_time = convertTimeFormatDual(from_time); 267 to_time = convertTimeFormatDual(to_time); 268 } 269 if ( moment( from_time, 'DD-MM-YYYY HH:mm' ) >= moment( to_time, 'DD-MM-YYYY HH:mm' ) ) { 270 $('#mwb-mbfw-booking-to-time').val(''); 271 272 if (jQuery(jQuery('.flatpickr-calendar')).length > 1 ) { 273 if (jQuery(jQuery('.flatpickr-calendar')[1]).hasClass('open')){ 274 jQuery(jQuery('.flatpickr-calendar')[1]).removeClass('open'); 275 jQuery(jQuery('.flatpickr-calendar')[1]).addClass('close'); 276 $(this).val(''); 277 alert( mwb_mbfw_public_obj.wrong_order_date_1 ); 278 } 279 } 280 281 282 } 283 } 284 } 285 } 286 } 287 }else { 288 289 if ( from_time && to_time ) { 290 if ('twelve_hour' == mwb_mbfw_public_obj.wps_diaplay_time_format ) { 291 from_time = convertTimeFormatDual(from_time); 292 to_time = convertTimeFormatDual(to_time); 293 } 294 if ( moment( from_time, 'DD-MM-YYYY HH:mm' ) >= moment( to_time, 'DD-MM-YYYY HH:mm' ) ) { 295 $('#mwb-mbfw-booking-to-time').val(''); 296 297 if (jQuery(jQuery('.flatpickr-calendar')).length > 1 ) { 298 if (jQuery(jQuery('.flatpickr-calendar')[1]).hasClass('open')){ 299 jQuery(jQuery('.flatpickr-calendar')[1]).removeClass('open'); 300 jQuery(jQuery('.flatpickr-calendar')[1]).addClass('close'); 301 $(this).val(''); 302 alert( mwb_mbfw_public_obj.wrong_order_date_1 ); 303 } 304 } 305 306 307 } 308 } 309 } 310 }); 311 $('#mwb-mbfw-booking-to-time').on('click', function(){ 312 if (jQuery(jQuery('.flatpickr-calendar')).length > 1 ) { 313 if (jQuery(jQuery('.flatpickr-calendar')[1]).hasClass('close')){ 314 jQuery(jQuery('.flatpickr-calendar')[1]).removeClass('close'); 315 jQuery(jQuery('.flatpickr-calendar')[1]).addClass('open') 316 } 317 } 318 }); 319 $('#mwb-mbfw-booking-from-time').on('click', function(){ 320 ; 321 if (jQuery(jQuery('.flatpickr-calendar')).length > 1 ) { 322 if (jQuery(jQuery('.flatpickr-calendar')[0]).hasClass('close')){ 323 jQuery(jQuery('.flatpickr-calendar')[0]).removeClass('close'); 324 jQuery(jQuery('.flatpickr-calendar')[0]).addClass('open') 325 } 326 } 327 }); 328 }); 329 330 // cancel order from my account page. 331 jQuery(document).on('click', '#wps_bfw_cancel_order', function(){ 332 333 if (confirm(mwb_mbfw_common_obj.cancel_booking_order) == true) { 334 335 var product_id = jQuery(this).attr('data-product'); 336 var order_id = jQuery(this).attr('data-order'); 337 var data = { 338 'action' : 'bfw_cancelled_booked_order', 339 'nonce' : mwb_mbfw_common_obj.nonce, 340 'product_id' : product_id, 341 'order_id' : order_id, 342 } 343 344 jQuery.ajax({ 345 url : mwb_mbfw_common_obj.ajax_url, 346 method : 'POST', 347 data : data, 348 success : function( response ) { 349 window.location.reload(); 350 } 351 }); 352 } 353 354 355 }); 356 jQuery(document).on('change', '.mwb-mbfw-additional-service-quantity', function () { 357 358 var $input = jQuery(this); 359 var termId = $input.data('term-id'); 360 var qty = parseInt($input.val(), 10); 361 362 if (!termId || isNaN(qty)) { 363 return; 364 } 365 366 jQuery.ajax({ 367 url: mwb_mbfw_common_obj.ajax_url, 368 type: 'POST', 369 dataType: 'json', 370 data: { 371 action: 'mwb_check_service_max_qty', 372 term_id: termId, 373 qty: qty, 374 nonce: mwb_mbfw_common_obj.nonce 375 }, 376 success: function (response) { 377 if (!response.success) { 378 alert(response.data.message); 379 380 // reset to allowed max 381 if (response.data.allowed.max !== null) { 382 $input.val(response.data.allowed.max); 383 } else if (response.data.allowed.min !== null) { 384 $input.val(response.data.allowed.min); 385 } else { 386 $input.val(0); 387 } 388 } 389 } 390 }); 391}); 392
393 jQuery('#wps_booking_single_calendar_form').on('blur',function(){ 394 var calendar_dataa = jQuery('#wps_booking_single_calendar_form').val(); 395 396 var bodyClasses = $('body').attr('class'); 397 398 // Use a regular expression to find the product ID in the body class 399 // var productIDMatch = bodyClasses.match(/postid-(\d+)/); 400 var prod_id = jQuery('.mwb_mbfw_booking_product_id').val(); 401 if (prod_id) { 402 var productId = prod_id; 403 404 // You can use productId here for further processing 405 } else { 406 console.log('Product ID not found.'); 407 } 408 409 410 jQuery.ajax({ 411 method: 'POST', 412 url: mwb_mbfw_common_obj.ajax_url, 413 data: { 414 nonce: mwb_mbfw_common_obj.nonce, 415 action: 'mbfw_get_cart_data', 416 product_id: productId, 417 slot_selected : calendar_dataa, 418 slot_left:mwb_mbfw_public_obj.booking_slot_array_max_limit 419 }, 420 success: function(msg) { 421 if ('undefined'!= msg){ 422 423 if('no'==msg){ 424 jQuery('.cart .single_add_to_cart_button').prop('disabled', false); 425 } else if (msg <= 0) { 426 jQuery('.cart .single_add_to_cart_button').prop('disabled', true); 427 } else{ 428 429 jQuery('.qty').attr('max',msg); 430 jQuery('.cart .single_add_to_cart_button').prop('disabled', false); 431 432 } 433 } 434 435 436 437 }, 438 }); 439 }); 440 441})( jQuery ); 442function convertTimeFormat(input) { 443 // Extract date and time using regex 444 let match = input.match(/^(\d{1,2}-\d{2}-\d{4}) (\d{1,2}:\d{2} [APM]{2}) - (\d{1,2}:\d{2} [APM]{2})$/); 445 if (!match) return input; 446 447 let date = match[1]; // Extract the date 448 let startTime = moment(match[2], "h:mm A").format("HH:mm"); // Convert start time to 24-hour format 449 let endTime = moment(match[3], "h:mm A").format("HH:mm"); // Convert end time to 24-hour format 450 451 return `${date} ${startTime} - ${endTime}`; 452} 453 454function convertTimeFormatDual(input) { 455 input_val = input; 456 // if ('twelve_hour' == mwb_mbfw_public_obj.wps_diaplay_time_format ) { 457 458 currentLang = mwb_mbfw_public_obj.lang; 459 460 461 // Replace localized AM/PM markers with standard AM/PM 462 var map = timeChangeLanguage(currentLang) || timeChangeLanguage('default'); // Use default map if lang not found 463 if (currentLang == 'az') { 464 var map = { 'GÆ': 'AM', 'GS': 'PM' } 465 } 466 if (currentLang == 'be') { 467 var map = { 'ÐÐ': 'AM', 'ÐÐ': 'PM' } 468 } 469 input = input.replace(new RegExp(Object.keys(map).join("|"), "gi"), function(match) {console.log(match,1); 470 return map[match]; 471 }); 472 // } 473 // Extract date and time using regex 474 let match = input.match(/^(\d{1,2}-\d{2}-\d{4}) (\d{1,2}:\d{2} [APM]{2})$/); 475 if (!match) return input; 476 477 let date = match[1]; // Extract the date 478 479 let startTime = moment(match[2], "hh:mm A").format("HH:mm"); // Convert start time to 24-hour format 480 481 return `${date} ${startTime}`; 482} 483 484function isToday(dateTimeStr) { 485 // Parse the input using the known format 486 const inputDate = moment(dateTimeStr, "DD-MM-YYYY"); 487 488 // Compare only the date (ignores time) 489 return inputDate.isSame(moment(), 'day'); 490} 491 492function isDateInArray(dateStr, dateArray) { 493 // Convert input date to the array's format: YYYY-MM-DD 494 const formatted = moment(dateStr, "DD-MM-YYYY").format("YYYY-MM-DD"); 495 496 return dateArray.includes(formatted); 497} 498 499function retrieve_booking_total_ajax( form_data ) { 500 501 var condition = true; 502 data_from = jQuery('#mwb-mbfw-booking-from-time').val(); 503 data_to =jQuery('#mwb-mbfw-booking-to-time').val(); 504 505 if ('twelve_hour' == mwb_mbfw_public_obj.wps_diaplay_time_format ) { 506 data_from = (undefined == data_from ) ? undefined : convertTimeFormatDual( data_from ); 507 data_to = (undefined == data_to ) ? undefined :convertTimeFormatDual( data_to ); 508 } 509 510 if ( data_from != undefined && data_to != undefined ){ 511 var datesBetween = getDatesBetween(data_from, data_to); 512 for (let index = 0; index < datesBetween.length; index++) { 513 var originalDate = datesBetween[index]; 514 var upcoming_holiday = mwb_mbfw_public_obj.upcoming_holiday[0]; 515 var formattedDate = convertDateFormat(originalDate); 516 517 if (upcoming_holiday.includes(formattedDate)) { 518 condition = false; 519 } 520 } 521 } 522 if ( $('.mwb-mbfw-total-area').length > 0 && condition == true ) { 523 524 form_data.append('action', 'mbfw_retrieve_booking_total_single_page'); 525 form_data.append('nonce', mwb_mbfw_common_obj.nonce); 526 jQuery.ajax({ 527 url : mwb_mbfw_common_obj.ajax_url, 528 method : 'post', 529 data : form_data, 530 processData : false, 531 contentType : false, 532 success : function( msg ) { 533 534 var str1 = msg; 535 536 var str2 = "rror establishing a database connectio"; 537 if(str1.indexOf(str2) != -1){ 538 msg = ''; 539 } 540 if (msg == 'fail'){ 541 $('#mwb-mbfw-booking-to-time').val(''); 542 jQuery('.cart .single_add_to_cart_button').prop('disabled', true); 543 if ( $('#alert_msg_client').val() == undefined){ 544 jQuery('.mwb-mbfw-cart-page-data').append('<span id="alert_msg_client" style="color:red">'+mwb_mbfw_common_obj.holiday_alert+'</span>') 545 546 return; 547 } 548 } else{ 549 if ( $('#alert_msg_client').val() != undefined){ 550 551 setTimeout(function(){ 552 $('#alert_msg_client').remove(); 553 }, 4000); 554 555 } 556 $('.mwb-mbfw-total-area').html(msg); 557 jQuery('.cart .single_add_to_cart_button').prop('disabled', false); 558 559 } 560 561 } 562 }); 563 } else{ 564 565 if ( condition == false ){ 566 if ( $('#alert_msg_client').val() == undefined){ 567 jQuery('.mwb-mbfw-cart-page-data').append('<span id="alert_msg_client" style="color:red">'+mwb_mbfw_common_obj.holiday_alert+'</span>') 568 $('#mwb-mbfw-booking-to-time').val(''); 569 } 570 } 571 } 572} 573 574 575function getDatesBetween(startDate, endDate) { 576 var dates = []; 577 var currentDate = parseDate(startDate); 578 endDate = parseDate(endDate); 579 580 while (currentDate <= endDate) { 581 dates.push(formatDate(currentDate)); 582 currentDate.setDate(currentDate.getDate() + 1); 583 } 584 585 return dates; 586} 587 588function parseDate(dateString) { 589 var parts = dateString.split("-"); 590 return new Date(parts[2], parts[1] - 1, parts[0]); 591} 592 593function formatDate(date) { 594 var day = date.getDate();
595 var month = date.getMonth() + 1; 596 var year = date.getFullYear(); 597 return pad(day) + "-" + pad(month) + "-" + year; 598} 599 600function pad(number) { 601 return number < 10 ? "0" + number : number; 602} 603 604function convertDateFormat(dateString) { 605 var parts = dateString.split("-"); 606 return parts[2] + "-" + parts[1] + "-" + parts[0]; 607} 608 609function timeChangeLanguage( lang ){ 610 const amPmMap = { 611 'default': { 'AM': 'AM', 'PM': 'PM' }, 612 'ar': { 'ص': 'AM', 'Ù ': 'PM' }, // Arabic 613 'at': { 'AM': 'AM', 'PM': 'PM' }, // Austria (uses similar to English) 614 'az': { 'AM': 'AM', 'PM': 'PM' }, // Azerbaijani 615 'be': { 'AM': 'AM', 'PM': 'PM' }, // Belarusian 616 'bg': { 'AM': 'AM', 'PM': 'PM' }, // Bulgarian 617 'bn': { 'AM': 'AM', 'PM': 'PM' }, // Bengali 618 'bs': { 'AM': 'AM', 'PM': 'PM' }, // Bosnian 619 'cat': { 'AM': 'AM', 'PM': 'PM' }, // Catalan 620 'cs': { 'AM': 'AM', 'PM': 'PM' }, // Czech 621 'cy': { 'AM': 'AM', 'PM': 'PM' }, // Welsh 622 'da': { 'AM': 'AM', 'PM': 'PM' }, // Danish 623 'de': { 'AM': 'AM', 'PM': 'PM' }, // German 624 'eo': { 'AM': 'AM', 'PM': 'PM' }, // Esperanto 625 'es': { 'AM': 'AM', 'PM': 'PM' }, // Spanish 626 'et': { 'AM': 'AM', 'PM': 'PM' }, // Estonian 627 'fa': { 'AM': 'AM', 'PM': 'PM' }, // Persian 628 'fi': { 'AM': 'AM', 'PM': 'PM' }, // Finnish 629 'fr': { 'AM': 'AM', 'PM': 'PM' }, // French 630 'gr': { 'AM': 'AM', 'PM': 'PM' }, // Greek 631 'he': { 'AM': 'AM', 'PM': 'PM' }, // Hebrew 632 'hi': { 'पà¥à¤°à¥à¤µà¤¾à¤¹à¥à¤¨': 'AM', 'ठपराहà¥à¤¨': 'PM' }, // Hindi 633 'hr': { 'AM': 'AM', 'PM': 'PM' }, // Croatian 634 'hu': { 'AM': 'AM', 'PM': 'PM' }, // Hungarian 635 'id': { 'AM': 'AM', 'PM': 'PM' }, // Indonesian 636 'is': { 'AM': 'AM', 'PM': 'PM' }, // Icelandic 637 'it': { 'AM': 'AM', 'PM': 'PM' }, // Italian
638 'ja': { 'åå': 'AM', 'åå¾': 'PM' }, // Japanese 639 'ka': { 'AM': 'AM', 'PM': 'PM' }, // Georgian 640 'km': { 'AM': 'AM', 'PM': 'PM' }, // Khmer 641 'ko': { 'AM': 'AM', 'PM': 'PM' }, // Korean 642 'kz': { 'AM': 'AM', 'PM': 'PM' }, // Kazakh 643 'lt': { 'AM': 'AM', 'PM': 'PM' }, // Lithuanian 644 'lv': { 'AM': 'AM', 'PM': 'PM' }, // Latvian 645 'mk': { 'AM': 'AM', 'PM': 'PM' }, // Macedonian 646 'mn': { 'AM': 'AM', 'PM': 'PM' }, // Mongolian 647 'my': { 'AM': 'AM', 'PM': 'PM' }, // Burmese 648 'nl': { 'AM': 'AM', 'PM': 'PM' }, // Dutch 649 'no': { 'AM': 'AM', 'PM': 'PM' }, // Norwegian 650 'pa': { 'AM': 'AM', 'PM': 'PM' }, // Punjabi 651 'pl': { 'AM': 'AM', 'PM': 'PM' }, // Polish 652 'pt': { 'AM': 'AM', 'PM': 'PM' }, // Portuguese 653 'ro': { 'AM': 'AM', 'PM': 'PM' }, // Romanian 654 'ru': { 'AM': 'AM', 'PM': 'PM' }, // Russian 655 'si': { 'AM': 'AM', 'PM': 'PM' }, // Sinhala 656 'sk': { 'AM': 'AM', 'PM': 'PM' }, // Slovak 657 'sl': { 'AM': 'AM', 'PM': 'PM' }, // Slovenian 658 'sq': { 'AM': 'AM', 'PM': 'PM' }, // Albanian 659 'sr': { 'AM': 'AM', 'PM': 'PM' }, // Serbian 660 'sv': { 'AM': 'AM', 'PM': 'PM' }, // Swedish 661 'th': { 'AM': 'AM', 'PM': 'PM' }, // Thai 662 'tr': { 'AM': 'AM', 'PM': 'PM' }, // Turkish 663 'uk': { 'AM': 'AM', 'PM': 'PM' }, // Ukrainian 664 'uz': { 'AM': 'AM', 'PM': 'PM' }, // Uzbek 665 'vn': { 'AM': 'AM', 'PM': 'PM' }, // Vietnamese 666 'zh': { 'AM': 'AM', 'PM': 'PM' }, // Chinese (Simplified) 667 }; 668 return amPmMap[lang]; 669 670}
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.