1//Last update : 31.01.23 2const months_en = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', "Dec"] 3const months_th = ['ม.à¸.', 'à¸.à¸.', 'มี.à¸.', 'à¹à¸¡.ย.', 'à¸.à¸.', 'มิ.ย.', 'à¸.à¸.', 'ส.à¸.', 'à¸.ย.', 'à¸.à¸.', 'à¸.ย.', 'à¸.à¸.'] 4const months_cn = ['䏿', 'äºæ', '䏿', 'åæ', 'äºæ', 'å æ', '䏿', 'å «æ', '乿', 'åæ', 'å䏿', 'åäºæ'] 5 6const days_en = ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'] 7const days_th = ['à¸.', 'à¸.', 'à¸.', 'à¸à¸¤.', 'ศ.', 'ส.', 'à¸à¸².'] 8const days_cn = ['ææä¸', 'ææäº', 'ææä¸', 'ææå', 'ææäº', 'ææå ', 'æææ¥'] 9 10const nights_en = ['Night'] 11const nights_th = ['à¸à¸·à¸'] 12 13var months = months_en 14var monthsShow = 3 15var days = days_en 16var nights = nights_en 17 18if (current_language === 'th') { 19 months = months_th 20 monthsShow = 5 21 days = days_th 22 nights = nights_th 23} 24else if (current_language === 'cn') { 25 var months = months_cn 26 monthsShow = 4 27 var days = days_cn 28} 29 30function newDayAdd(inputDate, addDay) { 31 var d = new Date(inputDate); 32 d.setDate(d.getDate() + addDay); 33 mkMonth = d.getMonth() + 1; 34 mkMonth = new String(mkMonth); 35 if (mkMonth.length == 1) { 36 mkMonth = "0" + mkMonth; 37 } 38 mkDay = d.getDate(); 39 mkDay = new String(mkDay); 40 if (mkDay.length == 1) { 41 mkDay = "0" + mkDay; 42 } 43 mkYear = d.getFullYear(); 44 return mkYear + "-" + mkMonth + "-" + mkDay; // à¹à¸ªà¸à¸à¸à¸¥à¸¥à¸±à¸à¸à¹à¹à¸à¸£à¸¹à¸à¹à¸à¸ à¹à¸à¸·à¸à¸/วัà¸/à¸à¸µ 45} 46// var NumCalendar = (window.innerWidth < '1280') ? 1 : 2; 47(function($) { 48 'use strict'; 49 var Defaults = { 50 autoClose: false, 51 durationArrowTop: 200, 52 numCalendar: 1, 53 titleCheckIn: 'Check-in', 54 titleCheckOut: 'Check-out', 55 titleToday: 'Today', 56 titleDateRange: title_night, 57 titleDateRanges: CONSTANT.TITLE_DATE_RANGES, 58 // titleDays: ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'], 59 titleDays:days, 60 titleMonths: months, 61 titleMonthsLimitShow: monthsShow, 62 showFullMonth: false, 63 replaceTitleMonths: null, 64 showDateTheme: null, 65 iconArrowTop: true, 66 iconDate: '', 67 arrowPrev: '❮', 68 arrowNext: '❯', 69 toDayShowTitle: false, 70 dateRangesShowTitle: true, 71 dateRangesHover: true, 72 toDayHighlighted: false, 73 nextDayHighlighted: false, 74 daysOfWeekHighlighted: [0, 6], 75 formatDate: 'yyyy-mm-dd', 76 dateCheckIn: null, 77 dateCheckOut: null, 78 startDate: null, 79 endDate: null, 80 limitPrevMonth: 0, 81 limitNextMonth: 12, 82 limitDateRanges: 365, 83 showFullDateRanges: false, 84 fnDataEvent: null 85 }; 86 87 var update_options; 88 $.fn.tDatePicker = function(pr_el, options) { 89 var d = new Date(); 90 var m = d.getMonth(); 91 var y = d.getFullYear(); 92 var toDay = Date.UTC(d.getFullYear(), d.getMonth(), d.getDate()); 93 94 function getToday() { 95 return Date.UTC(d.getFullYear(), d.getMonth(), d.getDate()); 96 } 97 98 function getNextDay(currentDay) { 99 var nextDay = currentDay + (24 * 60 * 60 * 1000); 100 return nextDay; 101 } 102 103 if (options === undefined && typeof(pr_el) !== 'string') { 104 update_options = pr_el; 105 } 106 107 update_options.formatDate = update_options.formatDate || Defaults.formatDate; 108 update_options.startDate = update_options.startDate || toDay; 109 110 //Define Start Date 111 if (update_options.startDate === '' || update_options.startDate === 'null') { 112 update_options.startDate = toDay; 113 } 114 115 update_options.startDate = convertDateUTC(convertFormatDf(update_options.startDate)); // 1555632000000 116 var sd = new Date(update_options.startDate); //Fri Apr 19 2019 07:00:00 GMT+0700 (Indochina Time) 117 var nextDay = Date.UTC(sd.getFullYear(), sd.getMonth(), sd.getDate() + 1); // 1555632000000 118 119 if (pr_el === 'setStartDate' && typeof(pr_el) === 'string') { 120 update_options.startDate = convertDateUTC(convertFormatDf(options)) 121 } 122 if (pr_el === 'setEndDate' && typeof(pr_el) === 'string') { 123 update_options.endDate = convertDateUTC(convertFormatDf(options)) 124 } 125 if (update_options.dateCheckIn === '' || update_options.dateCheckIn === 'null') { 126 update_options.dateCheckIn = null; 127 } 128 if (update_options.dateCheckOut === '' || update_options.dateCheckOut === 'null') { 129 update_options.dateCheckOut = null; 130 } 131 if (update_options.endDate === '' || update_options.endDate === 'null') { 132 update_options.endDate = null; 133 } 134 135 if (options !== undefined) { 136 update_options.numCalendar = update_options.numCalendar || 2; 137 var num_Limit = update_options.limitDateRanges || 31; 138 var num_month_Limit = update_options.limitNextMonth || 11; 139 var limitEndDate = new Date(sd.getFullYear(), sd.getMonth() + update_options.numCalendar + num_month_Limit - 1, sd.getDate()); 140 limitEndDate = convertDateUTC(convertFormatDf(limitEndDate)); 141 142 console.log(pr_el); 143 if (pr_el === 'update') { 144 if (options.length === 2) { 145 checkCI(options[0]); 146 checkCO(options[1]); 147 } else { 148 checkCI(options); 149 } 150 if (options === '') { 151 update_options.dateCheckIn = null; 152 update_options.dateCheckOut = null; 153 } 154 } 155 if (pr_el === 'updateCI') { 156 checkCI(options); 157 } 158 if (pr_el === 'updateCO') { 159 checkCO(options) 160 } 161 } 162 163 function checkCI(pr_options) { 164 if (pr_options === '') { 165 update_options.dateCheckIn = null; 166 update_options.dateCheckOut = null; 167 return; 168 } 169 var CI = convertDateUTC(convertFormatDf(pr_options)); 170 var date = new Date(CI); 171 var dateLimit = new Date(date.getFullYear(), date.getMonth(), date.getDate() + num_Limit); 172 dateLimit = convertDateUTC(convertFormatDf(dateLimit)) 173 var op_CO = convertDateUTC(convertFormatDf(update_options.dateCheckOut)); 174 update_options.dateCheckIn = CI; 175 if (CI < update_options.startDate) { 176 update_options.dateCheckIn = update_options.startDate; 177 } 178 if (CI > limitEndDate) { 179 update_options.dateCheckIn = limitEndDate; 180 } 181 if (CI >= op_CO || op_CO > dateLimit) { 182 update_options.dateCheckOut = null; 183 } 184 } 185 186 function checkCO(pr_options) { 187 var op_CI = convertDateUTC(convertFormatDf(update_options.dateCheckIn)); 188 if (pr_options === '') { 189 update_options.dateCheckIn = op_CI; 190 if (isNaN(op_CI)) { 191 update_options.dateCheckIn = null; 192 } 193 update_options.dateCheckOut = null; 194 return; 195 } 196 var CO = convertDateUTC(convertFormatDf(pr_options)); 197 var date = new Date(CO); 198 var CO_dateLimit = new Date(date.getFullYear(), date.getMonth(), date.getDate() - num_Limit); 199 CO_dateLimit = convertDateUTC(convertFormatDf(CO_dateLimit)) 200 if (CO > limitEndDate) { 201 update_options.dateCheckOut = limitEndDate; 202 update_options.dateCheckIn = CO_dateLimit; 203 return; 204 } 205 if (CO > update_options.startDate) { 206 if (update_options.dateCheckIn === undefined || update_options.dateCheckIn === null) { 207 update_options.dateCheckOut = CO; 208 if (update_options.startDate > CO_dateLimit) { 209 update_options.dateCheckIn = update_options.startDate; 210 } else { 211 update_options.dateCheckIn = CO_dateLimit; 212 } 213 } else { 214 update_options.dateCheckOut = CO; 215 if (update_options.startDate > CO_dateLimit) { 216 update_options.dateCheckIn = op_CI; 217 if (CO < op_CI) { 218 update_options.dateCheckIn = update_options.startDate; 219 } 220 } else { 221 if (op_CI > CO_dateLimit) { 222 update_options.dateCheckIn = op_CI; 223 } else { 224 update_options.dateCheckIn = CO_dateLimit; 225 } 226 if (op_CI > CO) { 227 update_options.dateCheckIn = CO_dateLimit; 228 } 229 } 230 } 231 } else { 232 update_options.dateCheckIn = update_options.startDate; 233 update_options.dateCheckOut = nextDay; 234 } 235 } 236 237 238 var findValueCI = this.find('.t-input-check-in').val(); 239 var findValueCO = this.find('.t-input-check-out').val(); 240 241 if (typeof(pr_el) === 'string') { 242 if (pr_el === 'show' || pr_el === 'hide') { 243 if (findValueCI !== 'null') { 244 update_options.dateCheckIn = findValueCI; 245 } 246 if (findValueCO !== 'null') { 247 update_options.dateCheckOut = findValueCO; 248 } 249 } 250 if (findValueCI === 'null') { 251 if (pr_el === 'getDate' || pr_el === 'getDateInput' || pr_el === 'getDateUTC') { 252 return null; 253 } 254 if (pr_el === 'getDates' || pr_el === 'getDateInputs' || pr_el === 'getDateUTCs') { 255 return [null, null]; 256 } 257 } 258 if (findValueCI !== 'null') { 259 if (findValueCO === 'null') { 260 if (pr_el === 'getDates') { 261 return [new Date(findValueCI), null] 262 } 263 if (pr_el === 'getDateInputs') { 264 return [findValueCI, null] 265 } 266 if (pr_el === 'getDateUTCs') { 267 var d_CI = convertDateUTC(convertFormatDf(findValueCI)); 268 return [d_CI, null] 269 } 270 } 271 if (pr_el === 'getDate') { 272 return new Date(findValueCI) 273 } 274 if (pr_el === 'getDates') { 275 return [new Date(findValueCI), new Date(findValueCO)] 276 } 277 if (pr_el === 'getDateInput') { 278 return findValueCI; 279 } 280 if (pr_el === 'getDateInputs') { 281 return [findValueCI, findValueCO] 282 } 283 if (pr_el === 'getDateUTC') { 284 return convertDateUTC(convertFormatDf(findValueCI)); 285 } 286 if (pr_el === 'getDateUTCs') { 287 var d_CI = convertDateUTC(convertFormatDf(findValueCI)); 288 var d_CO = convertDateUTC(convertFormatDf(findValueCO)); 289 return [d_CI, d_CO] 290 } 291 } 292 } 293 294 var this_el = this; 295 var settings = $.extend({}, Defaults, update_options); 296 settings.durationArrowTop = Number(settings.durationArrowTop) 297 settings.limitPrevMonth = Number(settings.limitPrevMonth) 298 settings.limitNextMonth = Number(settings.limitNextMonth) 299 settings.numCalendar = Number(settings.numCalendar)
300 settings.limitDateRanges = Number(settings.limitDateRanges) 301 settings.titleMonthsLimitShow = Number(settings.titleMonthsLimitShow) 302 if (typeof(pr_el) === 'string') { 303 var get_startDate = settings.startDate || settings.dateCheckIn; 304 if (pr_el === 'getStartDate') { 305 return new Date(get_startDate) 306 } 307 if (pr_el === 'getStartDateUTC') { 308 return convertDateUTC(convertFormatDf(get_startDate)) 309 } 310 var get_endDate = settings.endDate || new Date(sd.getFullYear(), sd.getMonth() + settings.numCalendar + settings.limitNextMonth - 1, sd.getDate()); 311 if (pr_el === 'getEndDate') { 312 return new Date(get_endDate); 313 } 314 if (pr_el === 'getEndDateUTC') { 315 return convertDateUTC(convertFormatDf(get_endDate)); 316 } 317 } 318 319 //transform to two digit 320 function check_num_10(pr_el) { 321 if (pr_el < 10) { 322 return pr_el = '0' + pr_el //01 323 } else { 324 return pr_el; //10 325 } 326 } 327 328 //Mo Tu We Th Fr Sa Su 329 function convertArrayToString(pr_array) { 330 pr_array = pr_array.toString(); 331 pr_array = pr_array.replace(/,/g, ''); 332 return pr_array; 333 } 334 335 //Function Parents when hover on td -> <td class="t-day t-highlighted" data-t-date="1557619200000">12</td>, "t-datepicker" 336 function fnParents(pr_el_parent, pr_el_class) { 337 var i = 0; 338 while (pr_el_parent.className.match(pr_el_class) === null) { 339 if (pr_el_parent.className === pr_el_class) { 340 return pr_el_parent; 341 } 342 if (pr_el_parent.nodeName === 'HTML') { 343 return pr_el_parent; 344 } 345 pr_el_parent = pr_el_parent.parentElement; 346 if (pr_el_parent === null) { 347 return document.body.parentElement; 348 } 349 i++; 350 if (i > 500) { 351 return; 352 } 353 } 354 return pr_el_parent; 355 } 356 357 // Function Append for toDay, hover day show num night 358 // <td class="t-day t-highlighted" data-t-date="1558742400000">25</td> "t-hover-day" "t-hover-day-content" "12 nights" 359 function appendSpan(pr_el, pr_class, pr_class_span, pr_text_node) { 360 if (pr_class != '') { 361 pr_el.className = pr_el.className + ' ' + pr_class; 362 } else { 363 pr_el.className = pr_el.className + pr_class; 364 } 365 var node = document.createElement("span"); 366 node.className = pr_class_span; 367 var textnode = document.createTextNode(pr_text_node); 368 node.appendChild(textnode); 369 pr_el.appendChild(node); 370 } 371 372 // GLOBAL VARIABLE 373 // titleDays => ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'] 374 var aDays = settings.titleDays; 375 376 // Theme Function set type day of week 377 //<th>Mo</th><th>Tu</th><th>We</th><th>Th</th><th>Fr</th><th>Sa</th><th>Su</th> 378 function setDayOfWeek() { 379 for (var i = 0; i < aDays.length; i++) { 380 if (aDays[i].indexOf('<th>') === -1) { 381 aDays[i] = '<th>' + aDays[i] + '</th>'; 382 } else { 383 aDays[i] = aDays[i]; 384 } 385 } 386 return convertArrayToString(aDays) 387 } 388 389 // Create Calendar 390 var setTemplate = '<div class="t-table-wrap"><table class="t-table-condensed">' + '<thead>' + '<tr>' + '<th class="t-arrow t-prev">' + settings.arrowPrev + '</th>' + '<th colspan="5" class="t-month"></th>' + '<th class="t-arrow t-next">' + settings.arrowNext + '</th>' + '</tr>' + '<tr>' + 391 setDayOfWeek() + '</tr>' + '</thead>' + '<tbody></tbody>' + '</table></div>'; 392 393 var numCalendar = settings.numCalendar; 394 395 var checkNumCalendar = ''; 396 397 if (Number(numCalendar) > 1) { 398 var checkNumCalendar = ' t-datepicker-days' 399 } 400 401 var dataTheme = []; 402 var setNumTheme = numCalendar; 403 while (setNumTheme > 0) { 404 dataTheme.push(setTemplate); 405 setNumTheme--; 406 } 407 numCalendar = numCalendar - 1; 408 409 function AppendDaysInMonth(pr_num) { 410 var i = 0; 411 var setTr = ''; 412 while (i < pr_num) { 413 setTr = setTr + '<tr>' + '<td class="t-day">1</td>' + '<td class="t-day">2</td>' + '<td class="t-day">3</td>' + '<td class="t-day">4</td>' + '<td class="t-day">5</td>' + '<td class="t-day">6</td>' + '<td class="t-day">0</td>' + '</tr>'; 414 i++; 415 } 416 return setTr; 417 } 418 419 // Theme t-check-in && t-check-out default show for website 420 // 8 January 2020, check-in, 1579737600000, "check_in", "2020-01-23"
421 // 8 January 2020, check-in, 1579996800000, "check_out", "2020-01-26" 422 function setThemeCheckDate(pr_title, pr_class, pr_data_utc, pr_input, pr_fm_input) { 423 if (pr_fm_input === null && pr_class === 'check-in') { 424 const dateInDefault = new Date().getFullYear() + '-' + (new Date().getMonth() + 1) + '-' + new Date().getDate(); 425 pr_fm_input = dateInDefault 426 } else if (pr_fm_input === null && pr_class === 'check-out') { 427 const dateOutDefault = new Date().getFullYear() + '-' + (new Date().getMonth() + 1) + '-' + (new Date().getDate()); 428 pr_fm_input = dateOutDefault 429 } 430 431 var d = new Date() 432 let day = '.t-day-' + pr_class 433 let month = '.t-month-' + pr_class 434 let year = '.t-year-' + pr_class 435 if (pr_class == 'check-in') { 436 $(day).html(d.getDate()) 437 $(month).html(months[d.getMonth()]) 438 $(year).html(d.getFullYear()) 439 } else { 440 var addDay = new Date(newDayAdd(pr_fm_input, 1)); 441 $(day).html(addDay.getDate()) 442 $(month).html(months[addDay.getMonth()]) 443 $(year).html(addDay.getFullYear()) 444 } 445 // return '<div class="t-dates t-date-' + pr_class + '">' + 446 // settings.iconDate + '<label class="t-date-info-title">' + pr_title + '</label>' + 447 // showThemeDate(pr_class, pr_data_utc) + '</div>' + '<input type="hidden" class="t-input-' + pr_class + '"' + ' value="' + pr_fm_input + '" name="' + pr_input + '">' 448 $('.t-date-' + pr_class).remove() 449 $('.t-input-' + pr_class).remove() 450 setTimeout(function() { 451 dateDifference() 452 }, 500) 453 if (pr_class == 'check-in') { 454 return '<div class="t-dates t-date-' + pr_class + '">' + showThemeDate(pr_class, pr_data_utc) + '</div>' + '<input id="' + pr_class + '" type="hidden" class="t-input-' + pr_class + '"' + ' value="' + pr_fm_input + '" name="' + pr_input + '">' 455 } else { 456 return '<div class="t-dates t-date-' + pr_class + '">' + showThemeDate(pr_class, pr_data_utc) + '</div>' + '<input id="' + pr_class + '" type="hidden" class="t-input-' + pr_class + '"' + ' value="' + newDayAdd(pr_fm_input, 0) + '" name="' + pr_input + '">' 457 } 458 459 /* 460 return '<div class="t-dates t-date-' + pr_class + '">' + 461 // setInfoTitle(pr_title, 't-date-info-title') 462 // settings.iconDate + 463 '<label class="t-date-info-title">' + pr_title + '</label>' + 464 showThemeDate(pr_class, pr_data_utc) + 465 '</div>' + 466 '<input type="hidden" class="t-input-' + pr_class + '"' + ' value="' + pr_fm_input + '" name="' + pr_input + '">' 467 // +'<div class="datepicker"></div>' 468 */ 469 } 470 471 function showThemeDate(pr_class, pr_data_utc) { 472 if (pr_data_utc !== 0 && pr_data_utc !== null) { 473 var d = new Date(pr_data_utc) 474 if (settings.showFullMonth) { 475 var showMonths = settings.titleMonths[d.getMonth()]; // 19 July 2018 476 } else var showMonths = settings.titleMonths[d.getMonth()].slice(0, settings.titleMonthsLimitShow); // 19 Jul 2018 477 if (settings.replaceTitleMonths !== null) { 478 showMonths = settings.replaceTitleMonths + ' ' + check_num_10(d.getMonth() + 1); 479 } 480 if (settings.showDateTheme === 'dd') { 481 return '<span class="t-day-' + pr_class + '"> ' + check_num_10(d.getDate()) + '</span>' 482 } else if (settings.showDateTheme === 'dd/mm' || settings.showDateTheme === 'dd-mm') { 483 return '<span class="t-day-' + pr_class + '"> ' + check_num_10(d.getDate()) + '</span>' + '<span class="t-month-' + pr_class + '"> ' + showMonths + ' </span>' 484 } else { 485 486 let day = '.t-day-' + pr_class 487 let month = '.t-month-' + pr_class 488 let year = '.t-year-' + pr_class 489 $(day).html(check_num_10(d.getDate())) 490 $(month).html(showMonths) 491 $(year).html(check_num_10(d.getFullYear())) 492 493 return ''; 494 // return '<span class="t-day-' + pr_class + '"> ' + check_num_10(d.getDate()) + '</span>' + '<span class="t-month-' + pr_class + '"> ' + showMonths + ' </span>' + '<span class="t-year-' + pr_class + '"> ' + check_num_10(d.getFullYear()) + '</span>' 495 } 496 } else { 497 return ''; 498 } 499 500 /* 501 if (pr_data_utc !== 0 && pr_data_utc !== null) { 502 var d = new Date(pr_data_utc) 503 if(settings.showFullMonth) { 504 var showMonths = settings.titleMonths[d.getMonth()]; // 19 July 2018 505 }else var showMonths = settings.titleMonths[d.getMonth()].slice(0, settings.titleMonthsLim
505itShow); // 19 Jul 2018 506 if (settings.replaceTitleMonths !== null) { 507 showMonths = settings.replaceTitleMonths + ' ' + check_num_10(d.getMonth() + 1); 508 } 509 if (settings.showDateTheme === 'dd') { 510 return '<span class="t-day-' + pr_class + '"> ' + check_num_10(d.getDate()) + '</span>' 511 } else if (settings.showDateTheme === 'dd/mm' || settings.showDateTheme === 'dd-mm') { 512 return '<span class="t-day-' + pr_class + '"> ' + check_num_10(d.getDate()) + '</span>' + 513 '<span class="t-month-' + pr_class + '"> ' + showMonths + ' </span>' 514 } else { 515 return '<span class="t-day-' + pr_class + '"> ' + check_num_10(d.getDate()) + '</span>' + 516 '<span class="t-month-' + pr_class + '"> ' + showMonths + ' </span>' + 517 '<span class="t-year-' + pr_class + '"> ' + check_num_10(d.getFullYear()) + '</span>' 518 } 519 } else { 520 return ''; 521 } 522 */ 523 } 524 525 // fn convert to date_utc: 2018/02/27 -> 1519689600000 // YY/MM/DD 526 function convertDateUTC(pr_date_utc) { 527 var date = new Date(pr_date_utc); 528 var date_utc = Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()); 529 if (date_utc === 0) { 530 date_utc = null 531 } 532 return date_utc; 533 } 534 535 // pr_date 1519689600000 536 function convertFormatDf(pr_date) { 537 if (typeof(pr_date) === 'object' && pr_date !== null) { 538 return pr_date = convertDateUTC(pr_date) 539 } 540 541 if (typeof(pr_date) === 'string' && pr_date !== 'null') { 542 var yyyy_mm_dd; 543 if (pr_date.indexOf('/') !== -1) { 544 pr_date = pr_date.replace(/\//g, '-') 545 } 546 var dd = pr_date.split('-'); 547 if (update_options.formatDate === 'mm-dd-yyyy' && dd[2].length === 4 && dd[0] < 13) { 548 yyyy_mm_dd = dd[2] + '-' + dd[0] + '-' + dd[1]; 549 } 550 if (update_options.formatDate === 'dd-mm-yyyy' && dd[2].length === 4 && dd[1] < 13) { 551 yyyy_mm_dd = dd[2] + '-' + dd[1] + '-' + dd[0]; 552 } 553 if (update_options.formatDate === 'yyyy-dd-mm' && dd[0].length === 4 && dd[2] < 13) { 554 yyyy_mm_dd = dd[0] + '-' + dd[2] + '-' + dd[1]; 555 } 556 if (update_options.formatDate === 'yyyy-mm-dd' && dd[0].length === 4 && dd[1] < 13) { 557 yyyy_mm_dd = dd[0] + '-' + dd[1] + '-' + dd[2]; 558 } 559 if (isNaN(new Date(yyyy_mm_dd))) { 560 return console.log("'Thank you for using t-datepicker. Please, check formatDate :'%c " + settings.formatDate + ' ', 'background: #f16d99; color: #fff'); 561 } 562 return yyyy_mm_dd; 563 } 564 return pr_date; 565 } 566 567 // pr_date to 2020-01-29 568 function showValueInput(pr_date) { 569 if (pr_date !== null) { 570 var d = new Date(pr_date); 571 572 pr_date = check_num_10(d.getDate()) + '-' + (check_num_10(d.getMonth() + 1)) + '-' + d.getFullYear(); 573 if (settings.formatDate === 'mm-dd-yyyy') { 574 pr_date = (check_num_10(d.getMonth() + 1)) + '-' + check_num_10(d.getDate()) + '-' + d.getFullYear(); 575 } 576 if (settings.formatDate === 'yyyy-dd-mm') { 577 pr_date = d.getFullYear() + '-' + check_num_10(d.getDate()) + '-' + (check_num_10(d.getMonth() + 1)); 578 } 579 if (settings.formatDate === 'yyyy-mm-dd') { 580 pr_date = d.getFullYear() + '-' + (check_num_10(d.getMonth() + 1)) + '-' + check_num_10(d.getDate()); 581 } 582 } 583 return pr_date; 584 } 585 586 // Function get && show default theme for website include (2018/02/27 || 1519689600000) 587 var tmp_out; 588 589 function getDateUTC(pr_in, pr_out) { 590 console.log(pr_in, pr_out); 591 if (pr_in === null && pr_out === null) { 592 pr_in = getToday(); 593 pr_out = getNextDay(pr_in); 594 tmp_out = pr_out; 595 } else { 596 if (pr_in >= tmp_out) { 597 pr_out = pr_out = getNextDay(pr_in); 598 tmp_out = pr_out; 599 } 600 } 601 602 var Array_In_Out = ['check-in', 'check-out']; 603 Array_In_Out.forEach(function(e) { 604 var label_title = settings.titleCheckIn; 605 var getDay = pr_in; 606 var Input = 'check_in' 607 if (pr_in !== null) { 608 label_title = ''; 609 } 610 if (e === 'check-out') { 611 label_title = settings.titleCheckOut; 612 getDay = pr_out; 613 if (pr_in === pr_out) { 614 getDay = null; 615 } else if (pr_out !== null) { 616 label_title = ''; 617 } 618 Input = 'check_out' 619 } 620 getDay = convertFormatDf(getDay) 621 var formatDate = showValueInput(getDay); 622 getDay = convertDateUTC(getDay); 623 this_el.find('.t-' + e).append(setThemeCheckDate(label_title, e, getDay, Input, formatDate)) 624 // this_el.find('.t-' + e).html(setThemeCheckDate(label_title, e, getDay, Input, formatDate)) 625 }) 626 if (pr_in === null && pr_out === null) { 627 pr_in = settings.startDate; 628 var date = new Date(pr_in); 629 pr_out = Date.UTC(date.getFullYear(), date.getMonth(), date.getDate() + 1); 630 } 631 if (pr_in !== null && pr_out !== null) { 632 if (convertDateUTC(convertFormatDf(pr_in)) > convertDateUTC(convertFormatDf(pr_out))) { 633 pr_in = pr_out; 634 } 635 } 636 if (pr_in !== null && pr_out === null) { 637 pr_out = pr_in; 638 } 639 if (pr_in === null && pr_out !== null) { 640 pr_in = pr_out; 641 } 642 pr_in = convertFormatDf(pr_in) 643 pr_out = convertFormatDf(pr_out) 644 return [convertDateUTC(pr_in), convertDateUTC(pr_out)]; 645 } 646 647 var dataUTC = getDateUTC(settings.dateCheckIn, settings.dateCheckOut); 648 649 function setDaysInMonth(pr_el, pr_data_utc) { 650 var tswitch = pr_el.find('.t-month'); 651 if (numCalendar >= 0) { 652 for (var i_num = 0; i_num <= numCalendar; i_num++) { 653 var date = new Date(pr_data_utc) 654 var newDate = new Date(Date.UTC(date.getFullYear(), (date.getMonth() + i_num))); 655 tswitch[i_num].innerHTML = settings.titleMonths[newDate.getMonth()] + ' ' + newDate.getFullYear(); 656 var dataDays = []; 657 var dataUTCDate = []; 658 var days = []; 659 var nextDate = Date.UTC(date.getFullYear(), (date.getMonth() + i_num)); 660 var date = new Date(nextDate) 661 while (Date.UTC(date.getFullYear(), (date.getMonth())) === nextDate) { 662 days.push(date.getDay()); 663 dataDays.push(date.getDate()); 664 dataUTCDate.push(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate())) 665 date.setDate(date.getDate() + 1); 666 } 667 var beforeDay = days[0]; 668 if (beforeDay === 0) { 669 while (beforeDay < 6) { 670 dataDays.unshift(''); 671 dataUTCDate.unshift(''); 672 beforeDay++; 673 } 674 } else { 675 while (beforeDay > 1) { 676 dataDays.unshift(''); 677 dataUTCDate.unshift(''); 678 beforeDay--; 679 } 680 } 681 var afterDay = days[days.length - 1]; 682 while (afterDay < 7) { 683 dataDays.push(''); 684 dataUTCDate.push(''); 685 afterDay++; 686 } 687 setThemeData(dataDays, dataUTCDate, i_num, pr_el) 688 } 689 } 690 getStyleDays(pr_el, pr_data_utc); 691 } 692 693 function setThemeData(dataDays, dataUTCDate, pr_num, pr_el) { 694 var checkdataDays = dataDays.slice(-7)[0] 695 if (checkdataDays === '') { 696 dataDays = dataDays.slice(0, -7) 697 } 698 var getTH = pr_el.find('tbody') 699 getTH[pr_num].innerHTML = AppendDaysInMonth(Math.round(dataDays.length / 7)); 700 var getTD = getTH[pr_num].querySelectorAll('td') 701 for (var td = 0; td < getTD.length; td++) {
702 getTD[td].setAttribute('data-t-date', dataUTCDate[td]); 703 getTD[td].innerHTML = dataDays[td]; 704 } 705 } 706 707 function getStyleDays(pr_el, pr_data_utc) { 708 709 var limitdateN = clickEvent(pr_el, pr_data_utc) 710 var limitEndDate = convertDateUTC(convertFormatDf(settings.endDate)) || limitdateN; 711 var toDayElement = pr_el.find('td') 712 var d_utc = new Date(dataUTC[0]); 713 var d_utc_co = new Date(dataUTC[1]); 714 var limitRange = Date.UTC(d_utc.getFullYear(), d_utc.getMonth(), d_utc.getDate() + settings.limitDateRanges); 715 var limitRangeCO = Date.UTC(d_utc_co.getFullYear(), d_utc_co.getMonth(), d_utc_co.getDate() - settings.limitDateRanges); 716 717 for (var i = 0; i < toDayElement.length; i++) { 718 var dayselect = toDayElement[i].getAttribute('data-t-date'); 719 720 //Date in calendar less than startDate can't choose 721 if (Number(dayselect) < settings.startDate) { 722 toDayElement[i].className = 't-disabled'; 723 } 724 725 if (pr_el.hasClass('t-check-out') === true) { 726 if (Number(dayselect) < dataUTC[0]) { 727 toDayElement[i].className = 't-disabled'; 728 } 729 if (Number(dayselect) > dataUTC[1] || Number(dayselect) >= limitRange) { 730 toDayElement[i].className = 't-disabled'; 731 } 732 if (Number(dayselect) != 0 && Number(dayselect) > dataUTC[0] && Number(dayselect) < limitRange && Number(dayselect) != dataUTC[1]) { 733 toDayElement[i].className = 't-day'; 734 } 735 if (Number(dayselect) === dataUTC[0]) { 736 var Arrow = pr_el.parent().find('.t-arrow'); 737 Arrow[0].className = Arrow[0].className.replace(' t-disabled', '') + ' t-disabled' 738 Arrow[0].onclick = function() { 739 return; 740 } 741 } 742 var CI_Arrow = settings.dateCheckIn || toDay; 743 var ci_d = new Date(CI_Arrow); 744 var co_n = Date.UTC(ci_d.getFullYear(), ci_d.getMonth(), ci_d.getDate() + settings.limitDateRanges)
745 if ($(pr_el).find('[data-t-date="' + co_n + '"]')[0] !== undefined) { 746 var Arrow = pr_el.parent().find('.t-arrow'); 747 Arrow[Arrow.length - 1].className = Arrow[Arrow.length - 1].className.replace(' t-disabled', '') + ' t-disabled' 748 Arrow[Arrow.length - 1].onclick = function() { 749 return; 750 } 751 } 752 } 753 754 if (Number(dayselect) > dataUTC[0] && Number(dayselect) < dataUTC[1] && dataUTC[0] >= settings.startDate && dataUTC[1] <= limitEndDate) { 755 toDayElement[i].className = 't-range'; 756 } 757 758 //Date in calendar more than limitEndDate can't choose 759 if (Number(dayselect) > limitEndDate) { 760 toDayElement[i].className = 't-disabled'; 761 } 762 763 if (Number(dayselect) === dataUTC[0]) { 764 var this_picker = $(toDayElement[i]).parents('.t-datepicker') 765 if (this_picker.find('.t-input-check-in').val() !== 'null' || settings.toDayHighlighted !== false) { 766 toDayElement[i].className = 'check_in'; 767 } 768 } 769 if (Number(dayselect) === dataUTC[1]) { 770 var this_picker = $(toDayElement[i]).parents('.t-datepicker') 771 if (this_picker.find('.t-input-check-out').val() !== 'null' || settings.nextDayHighlighted !== false) { 772 toDayElement[i].className = 'check_out'; 773 } 774 } 775 if (Number(dayselect) === toDay) { 776 if (settings.toDayShowTitle === true || settings.toDayShowTitle === 'true') { 777 appendSpan(toDayElement[i], 't-hover-day', 't-hover-day-content', settings.titleToday) 778 toDayElement[i].className = toDayElement[i].className.replace(' t-today', '') + ' t-today'; 779 } 780 } 781 var Cn = new Date(Number(dayselect)) 782 Cn = Cn.getDay() 783 settings.daysOfWeekHighlighted.forEach(function(e) { 784 if (Cn == e) { 785 toDayElement[i].className = toDayElement[i].className.replace(' t-highlighted', '') + ' t-highlighted'; 786 } 787 }) 788 toDayElement[i].onclick = function(e) { 789 e.stopPropagation(); 790 if ($(this).hasClass('t-disabled') === true) { 791 return; 792 } 793 var data_utc_in, data_utc_out; 794 var get_utc = $(this).attr('data-t-date') 795 var datepicker = $(this).parents('.t-check-out'); 796 get_utc = Number(get_utc) 797 if ($(this).parents('.t-check-in').hasClass('t-check-in') === true) { 798 if (Number($(this).attr('data-t-date')) > limitEndDate) { 799 return; 800 } 801 $(pr_el).trigger('selectedCI', Number(get_utc)) 802 var setChangeDate = $(this).parents('.t-check-in').find('.t-input-check-in').val(); 803 if (convertDateUTC(convertFormatDf(setChangeDate)) != get_utc) { 804 $(pr_el).trigger('onChangeCI', Number(get_utc)) 805 } 806 var d = new Date(dataUTC[1]); 807 var limitdate = Date.UTC(d.getFullYear(), d.getMonth(), d.getDate() - settings.limitDateRanges); 808 data_utc_in = get_utc; 809 data_utc_out = dataUTC[1]; 810 if (get_utc === settings.startDate && $(this).hasClass('check_in') === false && dataUTC[0] >= settings.startDate) { 811 data_utc_out = dataUTC[0]; 812 } 813 if (get_utc > dataUTC[1] || get_utc === dataUTC[1] || get_utc <= limitdate) { 814 data_utc_out = get_utc; 815 } 816 if ($(this).parents('.t-picker-only').hasClass('t-picker-only') === true) { 817 data_utc_out = data_utc_in; 818 } 819 datepicker = $(this).parents('.t-datepicker').find('.t-check-out') 820 if (datepicker.length === 0) { 821 datepicker = $(this_el).find('.t-picker-only') 822 setTimeout(function() { 823 if ($('.t-datepicker-day').length !== 0 && settings.autoClose === true) { 824 $('.t-datepicker-day').remove() 825 $('.t-arrow-top').remove() 826 } 827 }, 10) 828 } 829 } 830 if ($(this).parents('.t-check-out').hasClass('t-check-out') === true) { 831 if ($(this).hasClass('check_in') === true) { 832 return; 833 } 834 if ($(this).parents('.t-datepicker').find('.check_in').length === 0 && $(this).hasClass('check_out') === true) { 835 return; 836 } 837 $(pr_el).trigger('selectedCO', Number(get_utc)) 838 var setChangeDate = $(this).parents('.t-check-out').find('.t-input-check-out').val(); 839 if (convertDateUTC(convertFormatDf(setChangeDate)) != get_utc) { 840 $(pr_el).trigger('onChangeCO', Number(get_utc)) 841 } 842 data_utc_in = dataUTC[0]; 843 data_utc_out = get_utc; 844 $(pr_el).trigger('afterCheckOut', [ 845 [data_utc_in, data_utc_out] 846 ]) 847 setTimeout(function() { 848 if ($('.t-datepicker-day').length !== 0 && settings.autoClose === true) { 849 $('.t-datepicker-day').remove() 850 $('.t-arrow-top').remove() 851 } 852 }, 3000) 853 } 854 dataUTC = getDateUTC(data_utc_in, data_utc_out) 855 $(pr_el).trigger('eventClickDay', [dataUTC]) 856 callEventClick(datepicker, dataUTC) 857 } 858 if ('ontouchstart' in window === false) { 859 toDayElement[i].onmouseover = function(e) { 860 if ($(this).hasClass('t-special-day') === true && $(this).parents('.t-datepicker-day').length != 0) { 861 $(this).parents('.t-datepicker-day').append('<p class="t-date-title">' + $(this).attr('t-date-title') + '</p>') 862 } 863 864 function checkNumNight(pr_el, pr_date_utc) { 865 var el_hover = Number($(pr_el).attr('data-t-d
865ate')); 866 var numDay = 0; 867 if (e.target.className.indexOf('t-hover-day-content') !== -1 || e.target.className.indexOf('t-disabled') !== -1) { 868 return; 869 } 870 if ($(pr_el).parents('.t-check-in').hasClass('t-check-in') === true) { 871 var nd = new Date(pr_date_utc[1]); 872 if (el_hover === settings.startDate) { 873 if ($(pr_el).parents('.t-check-in').find('.check_out').length === 0 && $(pr_el).parents('.t-check-in').find('.check_in').length === 0) { 874 nd = new Date(pr_date_utc[0]); 875 } 876 } 877 var nd_1 = Date.UTC(nd.getFullYear(), nd.getMonth(), nd.getDate()); 878 var limitday = Date.UTC(nd.getFullYear(), nd.getMonth(), nd.getDate() - settings.limitDateRanges); 879 if (el_hover <= limitday) { 880 return; 881 } 882 while (el_hover < nd_1) { 883 nd_1 = Date.UTC(nd.getFullYear(), nd.getMonth(), nd.getDate() - numDay); 884 var t_this = $(pr_el).parents('.t-check-in').find('[data-t-d
884ate="' + nd_1 + '"]')[0]; 885 if (t_this != undefined) { 886 t_this.className = t_this.className.replace(' t-range-limit', '') + ' t-range-limit'; 887 } 888 numDay++; 889 if (numDay > 1000) { 890 return; 891 } 892 } 893 } 894 if ($(pr_el).parents('.t-check-out').hasClass('t-check-out') === true) { 895 var nd = new Date(pr_date_utc[0]); 896 var nd_1 = Date.UTC(nd.getFullYear(), nd.getMonth(), nd.getDate()); 897 var limitday = Date.UTC(nd.getFullYear(), nd.getMonth(), nd.getDate() + settings.limitDateRanges); 898 if (el_hover >= limitday) { 899 return; 900 } 901 while (el_hover != nd_1) { 902 nd_1 = Date.UTC(nd.getFullYear(), nd.getMonth(), nd.getDate() + numDay); 903 var t_this = $(pr_el).parents('.t-check-out').find('[data-t-d
903ate="' + nd_1 + '"]')[0]; 904 if (t_this != undefined) { 905 t_this.className = t_this.className.replace(' t-range-limit', '') + ' t-range-limit'; 906 } 907 numDay++; 908 if (numDay > 5000) { 909 return; 910 } 911 } 912 } 913 return numDay; 914 } 915 916 if (settings.dateRangesHover === true || settings.dateRangesHover === 'true') { 917 var numDay = checkNumNight(this, dataUTC) 918 if (settings.dateRangesShowTitle === true) { 919 var num_full = 1; 920 if (settings.showFullDateRanges === true) { 921 num_full = 0; 922 settings.titleDateRange = settings.titleDateRanges; 923 } 924 if (numDay === 2) { 925 appendSpan(this, 't-hover-day', 't-hover-day-content', ((numDay - num_full) + ' ' + settings.titleDateRange)) 926 } else if (numDay > 2) { 927 appendSpan(this, 't-hover-day', 't-hover-day-content', ((numDay - num_full) + ' ' + settings.titleDateRanges)) 928 } 929 } 930 } 931 this.onmouseout = function() { 932 if (this.getElementsByClassName('t-hover-day-content').length != 0) { 933 var node = this.getElementsByClassName('t-hover-day-content')[0] 934 node.parentNode.removeChild(node); 935 this.className = this.className.replace(' t-hover-day', ''); 936 } 937 if (document.getElementsByClassName('t-range-limit').length != 0) { 938 var a = document.getElementsByClassName('t-range-limit'); 939 a = [].slice.call(a) 940 for (var i = 0; i < a.length; i++) { 941 a[i].className = a[i].className.replace(' t-range-limit', ''); 942 } 943 } 944 if (this.className.indexOf('t-today') !== -1) { 945 if (this.getElementsByClassName('t-hover-day-content').length != 0) { 946 var node = this.getElementsByClassName('t-hover-day-content')[0] 947 node.parentNode.removeChild(node); 948 } 949 appendSpan(this, 't-hover-day', 't-hover-day-content', settings.titleToday); 950 this.className = this.className.replace(/\ t-hover-day/g, '') + ' t-hover-day'; 951 } 952 if (fnParents(this, 't-datepicker').getElementsByClassName('t-date-title').length != 0) { 953 var elem = fnParents(this, 't-datepicker').getElementsByClassName('t-date-title'); 954 elem = [].slice.call(elem) 955 for (var i = 0; i < elem.length; i++) { 956 elem[i].parentNode.removeChild(elem[i]); 957 } 958 } 959 } 960 } 961 } 962 } 963 if (settings.fnDataEvent != undefined && 'ontouchstart' in window === false) { 964 for (var cl = 0; cl < settings.numCalendar; cl++) { 965 var t = new Date(pr_data_utc).getMonth(); 966 var m = t + 1 + cl; 967 if (m === 13) { 968 m = m - 12 969 } 970 var gMonth = m; 971 var gYear = new Date(pr_data_utc).getFullYear(); 972 for (var i = 0; i < toDayElement.length; i++) { 973 var getNum = Number(toDayElement[i].textContent) 974 if (isNaN(getNum)) { 975 getNum = new Date(toDay).getDate(); 976 } 977 var getDays = Number(toDayElement[i].getAttribute('data-t-d
977ate')); 978 var getMonths = new Date(getDays).getMonth() + 1; 979 var key = gYear + '-' + check_num_10(gMonth) + '-' + check_num_10(getNum); 980 if (settings.fnDataEvent[key] != undefined && getMonths === m) { 981 var cln = toDayElement[i].className; 982 toDayElement[i].className = toDayElement[i].className.replace(' t-special-day', '') + ' t-special-day'; 983 toDayElement[i].setAttribute('t-date-title', check_num_10(getNum) + ' ' + settings.titleMonths[new Date(getDays).getMonth()] + ' - ' + settings.fnDataEvent[key]) 984 } 985 } 986 } 987 } 988 } 989 990 function clickEvent(pr_el, pr_data_utc) { 991 var tArrow = pr_el.find('.t-arrow'); 992 var df_toDay = new Date(settings.startDate); 993 var end_Date = new Date(convertFormatDf(settings.endDate)) 994 var limitPrevMonth = Date.UTC(df_toDay.getFullYear(), df_toDay.getMonth() - settings.limitPrevMonth); 995 var limitNextMonth = Date.UTC(end_Date.getFullYear(), end_Date.getMonth()) || Date.UTC(df_toDay.getFullYear(), df_toDay.getMonth() + numCalendar + settings.limitNextMonth); 996 var newDate = new Date(pr_data_utc) 997 var y = newDate.getFullYear(); 998 var m = newDate.getMonth(); 999 var d = newDate.getDate(); 1000 if (tArrow.length != 0) { 1001 for (var i = 1; i < tArrow.length - 1; i++) { 1002 tArrow[i].innerHTML = ''; 1003 tArrow[i].className = tArrow[i].className.replace(' t-disabled', '') + ' t-disabled'; 1004 } 1005 tArrow[0].onclick = function(e) { 1006 e.stopPropagation() 1007 if (Date.UTC(y, m) > limitPrevMonth) { 1008 m = m - 1; 1009 setDaysInMonth(pr_el, Date.UTC(y, m)) 1010 } 1011 } 1012 tArrow[tArrow.length - 1].onclick = function(e) { 1013 e.stopPropagation() 1014 if (Date.UTC(y, m + numCalendar) < limitNextMonth) { 1015 m = m + 1; 1016 setDaysInMonth(pr_el, Date.UTC(y, m)) 1017 } 1018 } 1019 } 1020 var Arrow_2 = pr_el.find('.t-arrow'); 1021 if (Date.UTC(y, m + numCalendar) != limitNextMonth && Date.UTC(y, m) === limitPrevMonth) { 1022 Arrow_2[Arrow_2.length - 1].className = 't-arrow t-next' 1023 Arrow_2[0].className = 't-arrow t-prev t-disabled' 1024 } else { 1025 Arrow_2[0].className = 't-arrow t-prev' 1026 } 1027 if (Date.UTC(y, m + numCalendar) === limitNextMonth || new Date(Date.UTC(y, m + numCalendar)).getMonth() === new Date(dataUTC[0]).getMonth() + 1) { 1028 Arrow_2[Arrow_2.length - 1].className = 't-arrow t-next t-disabled' 1029 } 1030 if (Date.UTC(y, m + numCalendar) < limitNextMonth) { 1031 Arrow_2[Arrow_2.length - 1].className = 't-arrow t-next' 1032 } 1033 return Date.UTC(df_toDay.getFullYear(), df_toDay.getMonth() + numCalendar + settings.limitNextMonth, df_toDay.getDate()); 1034 } 1035 1036 function getTableCalendar(pr_el, pr_date_utc) { 1037 if ($(pr_el).find('.t-datepicker-day').length !== 0) { 1038 $('.t-datepicker-day').remove(); 1039 $('.t-arrow-top').css({ 'display': 'none' }) 1040 $('html').removeClass('t-datepicker-open') 1041 } else { 1042 if ($(pr_el).parents('.t-datepicker').hasClass('t-datepicker').length !== 0) { 1043 $('.t-datepicker-day').remove(); 1044 $('.t-arrow-top').css({ 'display': 'none' }) 1045 } 1046 if (settings.iconArrowTop === true) { 1047 var this_el_arrow = $(pr_el).parents('.t-datepicker'); 1048 if (this_el_arrow.find('.t-arrow-top').length === 0) { 1049 this_el_arrow.append('<span class="t-arrow-top"></span>') 1050 } 1051 var CI_CO_width = $(pr_el).position().left + $(pr_el).outerWidth() / 2 1052 var leftArrTop = this_el_arrow.find('.t-arrow-top').outerWidth() / 2 1053 if (this_el_arrow.find('.t-arrow-top').css('display') === 'block') { 1054 this_el_arrow.find('.t-arrow-top').css({ 'left': CI_CO_width - leftArrTop + 'px' }) 1055 this_el_arrow.find('.t-arrow-top').css({ 'bottom': '-14px' }) 1056 } 1057 this_el_arrow.find('.t-arrow-top').css({ 'display': 'block' }) 1058 this_el_arrow.find('.t-arrow-top').animate({ 'left': CI_CO_width - leftArrTop + 'px' }, settings.durationArrowTop) 1059 } 1060 $(pr_el).find('.t-dates').parent().append('<div class="t-datepicker-day' + checkNumCalendar + '">' + convertArrayToString(dataTheme) + '<script>setPopupPosition()</script></div>') 1061 setDaysInMonth($(pr_el).find('.t-dates').parent(), pr_date_utc) 1062 $('html').addClass('t-datepicker-open') 1063 } 1064 } 1065 1066 var pr_callback = ''; 1067 1068 function callEventClick(pr_callback, pr_date_utc) { 1069 this_el.find('.t-dates').on('click', function(e) { 1070 if ($(e.target).parents('.t-check-in').hasClass('t-check-in') === true) { 1071 $(e.target).trigger('clickDateCI', [pr_date_utc]); 1072 } 1073 if ($(e.target).parents('.t-check-out').hasClass('t-check-out') === true) { 1074 $(e.target).trigger('clickDateCO', [pr_date_utc]); 1075 } 1076 if ($('.t-datepicker-day').length === 0) { 1077 $(this).trigger('beforeShowDay'); 1078 } 1079 var click = $(this).parent(); 1080 if ($(this).parents('.t-datepicker').find('.t-input-check-in').val() === 'null' && $(this).parents('.t-check-out').find('.t-input-check-out').val() === 'null') { 1081 click = $(e.target).parents('.t-datepicker').find('.t-check-in'); 1082 $(e.target).trigger('clickDateCI', [pr_date_utc]); 1083 } 1084 getTableCalendar(click, pr_date_utc[0]) 1085 setTimeout(function() { 1086 if ($('.t-datepicker-day').length !== 0) { 1087 $(e.target).trigger('afterShowDay'); 1088 } else { 1089 $(e.target).trigger('toggleAfterHideDay'); 1090 } 1091 }, 1) 1092 }) 1093 if (pr_callback != '') { 1094 getTableCalendar(pr_callback, pr_date_utc[0]); 1095 } 1096 } 1097 1098 callEventClick(pr_callback, dataUTC) 1099 setTimeout(function() { 1100 if (typeof(pr_el) === 'string' && pr_el === 'show') { 1101 if (this_el.find('.t-datepicker-day').length === 0) { 1102 this_el.each(function(e) { 1103 if (settings.iconArrowTop === true) { 1104 if ($(this).find('.t-arrow-top').length === 0) { 1105 $(this).append('<span class="t-arrow-top"></span>') 1106 } 1107 var CI_width = $(this).find('.t-check-in').outerWidth() 1108 $(this).find('.t-arrow-top').css({ 'left': CI_width / 2 - 10 + 'px', 'display': 'block' }) 1109 } 1110 $(this).find('.t-check-in').append('<div class="t-datepicker-day' + checkNumCalendar + '">' + convertArrayToString(dataTheme) + '</div>') 1111 setDaysInMonth($(this).find('.t-check-in'), dataUTC[0]) 1112 $('html').addClass('t-datepicker-open') 1113 }) 1114 } 1115 } 1116 }, 5) 1117 if (typeof(pr_el) === 'string' && pr_el === 'hide') { 1118 $('html').removeClass('t-datepicker-open') 1119 setTimeout(function() { 1120 $('html').addClass('t-datepicker-open') 1121 }, 5) 1122 } 1123 return this; 1124 } 1125 $('html').on('click', function(e) { 1126 if ($(this).hasClass('t-datepicker-open') === true) { 1127 setTimeout(function() { 1128 if ($(e.target).parents('.t-datepicker').hasClass('t-datepicker') === false && $('.t-datepicker-day').length > 0) { 1129 $('.t-datepicker-open').removeClass('t-datepicker-open') 1130 $('.t-datepicker-day').remove() 1131 $('.t-arrow-top').remove() 1132 } 1133 }, 1) 1134 } 1135 }); 1136}(jQuery));
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.