1/* 2 * Gestion des datepickers et des calendriers 3 */ 4 5// Adrien 10/05/23 : Attention, ce fichier n'est plus utilisé sur la majorité des sites web excepté sur le compte client et le script de résa 6 7/** 8 * Fonction permettant d'initialiser 2 datepickers pour sélectionner des dates de séjour 9 */ 10function initDatePickers_datesSejour(){ 11 (function($){ 12 //si on est sur la fiche, on a pas initialisé la langue 13 var langue = initLangueForDatePicker(); 14 $.datepicker.setDefaults($.datepicker.regional[langue]); 15 })(jQuery); 16 17 // TODO : vérifier si on a des dates de sélectionnées dans les champs input 18 // Si c'est le cas il faut lancer un verifDates directement 19 20 jQuery('#inpt_resaDateDebCal').unbind('click'); 21 jQuery('#inpt_resaDateDebCal').bind('click', function (e) { 22 ouvreDatepickerDeb(); 23 e.stopPropagation(); 24 }); 25 26 jQuery('#inpt_resaDateFinCal').unbind('click'); 27 jQuery('#inpt_resaDateFinCal').bind('click', function (e) { 28 var dateArrivee = jQuery('#inpt_resaDateDebCal').val(); 29 var regexDate = new RegExp("[0-9]{2}\/[0-9]{2}\/[0-9]{4}"); 30 if (regexDate.test(dateArrivee)) { 31 ouvreDatepickerFin(); 32 } else { 33 ouvreDatepickerDeb(); 34 } 35 e.stopPropagation(); 36 }); 37 38 if (jQuery('#inpt_resaDateFinCal').length === 0) { 39 initInputDateDeb(); 40 initInputDateFin(); 41 } 42} 43 44function initInputDateDeb(){ 45 var langue = initLangueForDatePicker(); 46 jQuery.datepicker.setDefaults(jQuery.datepicker.regional[langue]); 47 48 ouvreDatepickerDeb(); 49 return false; 50} 51 52function ouvreDatepickerDeb(){ 53 (function($){ 54 var params = { 55 action: 'getPlanningDebPourDatepicker', 56 ident: $('#div_choixDates_packDivDatesTarifs').attr('data-ident') 57 }; 58 if ($('.inpt_modeVte').length>0){ 59 params.modeResa=$('.inpt_modeVte:checked').val(); 60 } 61 //370230 62 if(window.location.href.indexOf('modeResa=G')>0){ 63 params.modeResa='G'; 64 } 65 if(window.location.href.indexOf('modeResa=H')>0){ 66 params.modeResa='H'; 67 } 68 $.ajax({ 69 type: 'POST', 70 url: '/lib_2/ajax/gereCalendrier.php', 71 dataType: 'json', 72 data: params, 73 beforeSend: function(){ 74 $('#div_calendrierFin').hide().removeClass('open'); 75 $('#div_roueDatepickerDeb').show(); 76 }, 77 complete: function(){ 78 $('#div_calendrierDeb').show().addClass('open'); 79 $('#div_roueDatepickerDeb').hide(); 80 }, 81 success: function(JSONResult){ 82 initDatepickerDateDeb(JSONResult); 83 jQuery('#inpt_resaDateDebCal').addClass("focus"); 84 jQuery('#inpt_resaDateFinCal').removeClass("focus"); 85 }, 86 error: function(xhr, errorText, errorStatus){ 87 $('#div_calendrierDeb').hide().removeClass('open'); 88 $('#div_roueDatepickerDeb').hide(); 89 } 90 }); 91 })(jQuery); 92} 93 94function initInputDateFin(){ 95 (function($){ 96 var langue = initLangueForDatePicker(); 97 $.datepicker.setDefaults($.datepicker.regional[langue]); 98 99 var dateArrivee = $('#inpt_resaDateDebCal').val(); 100 var regexDate = new RegExp("[0-9]{2}\/[0-9]{2}\/[0-9]{4}"); 101 if (regexDate.test(dateArrivee)) { 102 ouvreDatepickerFin(); 103 } else { 104 ouvreDatepickerDeb(); 105 } 106 return false; 107 })(jQuery); 108} 109 110function ouvreDatepickerFin(){ 111 (function($){ 112 $('#div_calendrierDeb').hide().removeClass('open'); 113 var params = { 114 action: 'getPlanningFinPourDatepicker', 115 ident: $('#div_choixDates_packDivDatesTarifs').attr('data-ident'), 116 dateDeb: $('#inpt_resaDateDebCal').val() 117 }; 118 if ($('.inpt_modeVte').length>0){ 119 params.modeResa=$('.inpt_modeVte:checked').val(); 120 } 121 if(window.location.href.indexOf('modeResa=G')>0){ 122 params.modeResa='G'; 123 } 124 if(window.location.href.indexOf('modeResa=H')>0){ 125 params.modeResa='H'; 126 } 127 $.ajax({ 128 type: 'POST', 129 url: '/lib_2/ajax/gereCalendrier.php', 130 dataType: 'json', 131 data: params, 132 beforeSend: function(){ 133 $('#div_roueDatepickerFin').show(); 134 }, 135 complete: function(){ 136 $('#div_roueDatepickerFin').hide(); 137 $('#div_calendrierFin').show().addClass('open'); 138 }, 139 success: function(JSONResult){ 140 initDatepickerDateFin(JSONResult); 141 jQuery('#inpt_resaDateDebCal').removeClass("focus"); 142 jQuery('#inpt_resaDateFinCal').addClass("focus"); 143 }, 144 error: function(xhr, errorText, errorStatus){ 145 $('#div_calendrierFin').hide().removeClass('open'); 146 $('#div_roueDatepickerFin').hide(); 147 } 148 }); 149 })(jQuery); 150} 151 152function initDatepickerDateDeb(JSONResult){ 153 (function($){
154 var date = $('#inpt_resaDateDebCal').val(); 155 if ($('#inpt_resaDateDebCal').attr('data-dateposition')) { 156 date = $('#inpt_resaDateDebCal').attr('data-dateposition'); 157 } 158 $('#div_datepickerDeb').datepicker('destroy'); 159 $('#div_datepickerDeb').addClass('notranslate'); 160 $('#div_datepickerDeb').datepicker({ 161 numberOfMonths: [1, 1], 162 dateFormat: 'dd/mm/yy', 163 minDate: JSONResult.dateDeb, 164 maxDate: JSONResult.dateFin, 165 defaultDate: date, 166 beforeShowDay: function (date) { 167 // 327548 168 var objDateFin = new Date(JSONResult.dateFin.substr(6,4), JSONResult.dateFin.substr(3,2)-1, JSONResult.dateFin.substr(0,2)); 169 if(date.getTime() > objDateFin.getTime()){ 170 return ''; 171 } 172 return setJourDatepicker(date, JSONResult.dateDeb, JSONResult.chaineDispo, true); 173 }, 174 onSelect: function (dateDeb) { 175 setInputDateDeb(dateDeb); 176 } 177 }); 178 })(jQuery); 179} 180 181function initDatepickerDateFin(JSONResult){ 182 (function($){ 183 // La date minimale du datepicker doit correspondre à la date de début plus un jour 184 var dateDeb = $('#inpt_resaDateDebCal').val(); 185 var objDateDeb = new Date(dateDeb.substr(6,4), parseInt(dateDeb.substr(3,2))-1, parseInt(dateDeb.substr(0,2))+1); 186 $("#div_datepickerFin").datepicker('destroy'); 187 $('#div_datepickerFin').addClass('notranslate'); 188 $("#div_datepickerFin").datepicker({ 189 numberOfMonths: [1, 1], 190 dateFormat: 'dd/mm/yy', 191 minDate: objDateDeb, 192 maxDate: JSONResult.dateFin, 193 beforeShowDay: function (date) { 194 // 327548 195 var objDateFin = new Date(JSONResult.dateFin.substr(6,4), JSONResult.dateFin.substr(3,2)-1, JSONResult.dateFin.substr(0,2)); 196 if(date.getTime() > objDateFin.getTime()){ 197 return ''; 198 } 199 return setJourDatepicker(date, JSONResult.dateDeb, JSONResult.chaineDispo); 200 }, 201 onSelect: function (dateFin) { 202 setInputDateFin(dateFin); 203 if (typeof foncQdFiniSelectDatepickerDateFin === 'function') { 204 foncQdFiniSelectDatepickerDateFin(); 205 } 206 } 207 }); 208 })(jQuery); 209} 210 211function setJourDatepicker(date, dateDebPlanning, chainePlanning, datepickerDeb){ 212 var objDateDebPlanning = new Date(dateDebPlanning.substr(6,4), dateDebPlanning.substr(3,2)-1, dateDebPlanning.substr(0,2)); 213 var ecart = Math.round(ecartDate(date, objDateDebPlanning)); 214 var caractere = chainePlanning.charAt(ecart); 215 var sejour = ''; 216 217 218 // TODO : ajout de la classe sur les dates sélectionnées 219 var dateDeb = jQuery('#inpt_resaDateDeb').val(); 220 var dateFin = jQuery('#inpt_resaDateFin').val(); 221 if (jQuery('#inpt_resaDateDebCal').length>0) { 222 dateDeb = jQuery('#inpt_resaDateDebCal').val(); 223 dateFin = jQuery('#inpt_resaDateFinCal').val(); 224 } 225 var autoriseClicSejourNonReservable = true; 226 if(jQuery('#inpt_resaDateDebCal').length>0 && jQuery('#inpt_resaDateDebCal').attr('data-autoriseDemandeNonReservable') == 'false'){ 227 autoriseClicSejourNonReservable = false; 228 } 229 230 var regexDate = new RegExp("[0-9]{2}\/[0-9]{2}\/[0-9]{4}"); 231 if (regexDate.test(dateDeb) && regexDate.test(dateFin)) { 232 var objDateDeb = new Date(dateDeb.substr(6,4), dateDeb.substr(3,2)-1, dateDeb.substr(0,2)); 233 var objDateFin = new Date(dateFin.substr(6,4), dateFin.substr(3,2)-1, dateFin.substr(0,2)); 234 var ecartDateDeb = Math.round(ecartDate(objDateDeb, objDateDebPlanning)); 235 var ecartDateFin = Math.round(ecartDate(objDateFin, objDateDebPlanning)); 236 if (ecartDateDeb <= ecart && ecartDateFin >= ecart){ 237 sejour = 'sejour'; 238 if(ecart === ecartDateDeb){ 239 sejour+= ' dateArrivee'; 240 } 241 if(ecart === ecartDateFin){
242 sejour+= ' dateFin'; 243 } 244 } 245 } 246 247 var classe = sejour+' '; 248 249 var caracterePrecedent = chainePlanning.charAt(ecart-1); 250 var caractereSuivant = chainePlanning.charAt(ecart+1); 251 var tabCaracteresNonCliquables = ['i', 'o', 'r', 'n', 'd','e']; 252 if (caractere.length>0 && caracterePrecedent.length>0) { 253 if (datepickerDeb===true && (!jQuery('#inpt_affichePlanningsIdentiques') || jQuery('#inpt_affichePlanningsIdentiques').length===0)) { 254 if (jQuery.inArray(caractere, tabCaracteresNonCliquables)>-1 && jQuery.inArray(caracterePrecedent, tabCaracteresNonCliquables)===-1) { 255 classe += 'debutResa '; 256 } 257 if (jQuery.inArray(caractere, tabCaracteresNonCliquables)===-1 && jQuery.inArray(caracterePrecedent, tabCaracteresNonCliquables)>-1) { 258 classe += 'finResa '; 259 } 260 } else { 261 if (jQuery.inArray(caractere, tabCaracteresNonCliquables)===-1 && jQuery.inArray(caractereSuivant, tabCaracteresNonCliquables)>-1) { 262 classe += 'debutResa '; 263 } 264 if (jQuery('#inpt_affichePlanningsIdentiques').length>0 && jQuery.inArray(caractere, tabCaracteresNonCliquables)===-1 && jQuery.inArray(caracterePrecedent, tabCaracteresNonCliquables)>-1) { 265 classe += 'finResa '; 266 } 267 } 268 } 269 270 var nonCliquable = estSurBureauPropOuITEA(); // cliquable quand on est sur le bureau ITEA ou Prop 271 // 328809 : dans le cas des dates supérieures à celles qu'on reçoit, on autorise également pour le buro prop 272 var nonCliquableExeNonOuvertWeb = estSurBureauITEA() || estResaBureauProp(); 273 274 if (caractere==='A' || caractere==='.') { 275 classe += 'cliquable'; 276 return [true, classe]; 277 } else if (caractere==='L' || caractere==='l') { 278 classe += 'libre'; 279 return [autoriseClicSejourNonReservable, classe]; 280 } else if (caractere === '?'|| caractere === 'a') { 281 classe += 'inconnu'; 282 return [true, classe]; 283 } else if (caractere === 'r' || caractere === 'R'){ 284 classe += 'resa'; 285 return [nonCliquable,classe]; 286 } else if (caractere === 'o'|| caractere === 'O'){ 287 classe += 'option'; 288 return [nonCliquable, classe]; 289 } else if (caractere === 'i'){ 290 classe += 'intention'; 291 return [nonCliquable, classe]; 292 } else if (caractere === 'n' || caractere === 'e' || caractere === 'd'){ 293 classe += 'occupe'; 294 return [nonCliquable, classe]; 295 } else if (caractere === "j") { 296 //CORR 229745 297 classe+='dateArrivee'; 298 return [nonCliquable, classe]; 299 } else if(caractere == "f"){ 300 classe+='forcage'; 301 return [true, classe]; 302 } else if(!caractere && ecart>=chainePlanning.length){ 303 //classe+='inconnu'; // fiche 242595 304 classe+='occupe plusDePlanning'; 305 return [nonCliquableExeNonOuvertWeb, classe]; 306 } else if (ecart>=0){ 307 return [nonCliquable, "inconnu"]; 308 } else { 309 return [nonCliquable, "avantDatesPossibles"]; 310 } 311} 312 313function setInputDateDeb(date){ 314 (function($){ 315 $('#inpt_resaDateDebCal').val(date); 316 jQuery('#inpt_resaDateDebCal').removeClass("focus"); 317 ouvreDatepickerFin(); 318 })(jQuery); 319} 320 321function setInputDateFin(date){ 322 (function($){ 323 $('#inpt_resaDateFinCal').val(date); 324 $('#div_calendrierFin').hide().removeClass('open'); 325 jQuery('#inpt_resaDateFinCal').removeClass("focus"); 326 327 var dateDeb = $('#inpt_resaDateDebCal').val(); 328 var dateFin = date; 329 330 if ($('#div_choixDates_packDivDatesTarifs').attr('data-gestprod')) { 331 $('.div_btnResa a').each(function () { 332 var href = $(this).attr('href') + '&date_deb=' + dateDeb.toString() + '&date_fin=' + dateFin.toString(); 333 $(this).attr('href', href); 334 }); 335 return; 336 } 337 if ($('#div_choixModeResaGEGS').length>0) { 338 var modeResa = $('.inpt_modeVte:checked').val(); 339 } 340 341 // Affichage du message de confirmation/erreur en fonction des dates choisies 342 var tabData = {type: 'verifDates', 343 dateDeb: dateDeb, 344 dateFin: dateFin, 345 ident : $('#div_choixDates_packDivDatesTarifs').attr('data-ident'), 346 instance : $('#div_choixDates_packDivDatesTarifs').attr('data-instance'), 347 exercice : $('#div_choixDates_packDivDatesTarifs').attr('data-exercice'), 348 estPresentSurFiche : true, 349 avecQTipFD : $('#sp_infoBulleAideFraisDossiers').length, 350 modeResa: modeResa}; 351 // TODO : enlever cette variable globale! 352 modeCalculPrixSurFiche = true; 353 if ($('#widgetFNGF_selectCapacite').length > 0) { 354 $('#widgetFNGF_selectCapacite').attr('updated', 'N'); 355 } 356 ajaxVerifDates(tabData); 357 })(jQuery); 358} 359 360function getValInputDateDebFiche() { 361 if (jQuery('#inpt_resaDateDeb').length>0) { 362 return jQuery('#inpt_resaDateDeb').val(); 363 } 364 return jQuery('#inpt_resaDateDebCal').val(); 365} 366function getValInputDateFinFiche() { 367 if (jQuery('#inpt_resaDateFin').length>0) { 368 return jQuery('#inpt_resaDateFin').val(); 369 } 370 return jQuery('#inpt_resaDateFinCal').val(); 371} 372function dateDebEtFin_VideOuDefault() { 373 if (jQuery('#inpt_resaDateDeb').length==0 && jQuery('#inpt_resaDateDebCal').length==0) { 374 return false;
375 } 376 if (jQuery('#inpt_resaDateFin').length==0 && jQuery('#inpt_resaDateFinCal').length==0) { 377 return false; 378 } 379 if (jQuery('#inpt_resaDateDeb').length>0) { 380 var dateDebDefault = jQuery('#inpt_resaDateDeb').attr('data-lblDefautArrivee'); 381 } else if (jQuery('#inpt_resaDateDebCal').length>0) { 382 var dateDebDefault = jQuery('#inpt_resaDateDebCal').attr('data-lblDefautArrivee'); 383 } 384 385 if (jQuery('#inpt_resaDateFin').length>0) { 386 var dateFinDefault = jQuery('#inpt_resaDateFin').attr('data-lblDefautDepart'); 387 } else if (jQuery('#inpt_resaDateFinCal').length>0) { 388 var dateFinDefault = jQuery('#inpt_resaDateFinCal').attr('data-lblDefautDepart'); 389 } 390 391 if (getValInputDateDebFiche() == "" || getValInputDateFinFiche() == "" || getValInputDateDebFiche() == dateDebDefault || getValInputDateFinFiche() == dateFinDefault) { 392 return true; 393 } 394 return false; 395} 396function btnReserverFicheCalendrier(element){ 397 (function ($) { 398 if (dateDebEtFin_VideOuDefault()) { // que ce soit widget fngf ou site normal on ouvre le calendrier pour que le bouton se mette à jour ensuite. 465225 399 initInputDateDeb(); 400 } else { 401 majHrefBoutonReserver(true); 402 if(window.dataLayer){ 403 var tabParamsGTM = JSON.parse($(element).attr('data-paramsTrackEvent')); 404 405 dataLayer.push({ 406 'Label_Event': tabParamsGTM.label, 407 'Categorie_Event': tabParamsGTM.categorie, 408 'event': tabParamsGTM.action 409 }); 410 411 var prix = $(element).attr('data-prix'); 412 var TransactionId = tabParamsGTM.prefixe+tabParamsGTM.label; 413 dataLayer.push({ 414 'Transaction_Id': TransactionId, 415 'Product_Id': tabParamsGTM.ident, 416 'Price': prix, 417 'event': 'Criteo_Contact' 418 }); 419 } 420 } 421 })(jQuery); 422} 423 424function initDatepickersResa(){ 425 jQuery('#inpt_resaDateDeb').unbind('click'); 426 jQuery('#inpt_resaDateDeb').bind('click', function(e){ 427 ouvreDatepickerDebResa(); 428 e.stopPropagation(); 429 }); 430 jQuery('#inpt_resaDateFin').unbind('click'); 431 jQuery('#inpt_resaDateFin').bind('click', function(e){ 432 ouvreDatepickerFinResa(); 433 e.stopPropagation(); 434 }); 435 jQuery('.sp_fermerCal').click(function(){ 436 jQuery(this).parents(".div_calendDateDebFin").hide(); 437 }); 438 initDatepickersDateNaissance(); 439} 440 441function initDatepickersDateNaissance(){ 442 if (jQuery('.inpt_dateNaissance').length===0) { 443 return; 444 } 445 jQuery('.inpt_dateNaissance').datepicker('destroy'); 446 if (jQuery('#inpt_resaDateDeb').val()==='' || jQuery('#inpt_resaDateDeb').val()==='Arrivée') { 447 return; 448 } 449 var dateNaissanceMinEnfants = getObjDateNaissanceMin('enfant'); 450 var dateNaissanceMaxEnfants = getObjDateNaissanceMax('enfant'); 451 var dateNaissanceMinBebes = getObjDateNaissanceMin('bebe'); 452 var dateNaissanceMaxBebes = getObjDateNaissanceMax('bebe'); 453 454 var paramsBouton = {}; 455 if (estResaBureauProp() || estResaBureauGestloc()) { 456 paramsBouton = { 457 showOn: 'button', 458 buttonImage: '/css_defaut/v5/resa/bureau/images/calend.png', 459 buttonImageOnly: true, 460 buttonText: 'Sélectionner une date' 461 }; 462 } 463 464 jQuery('.inpt_dateNaissance.enfant').datepicker(jQuery.extend({}, { 465 numberOfMonths: [1, 2], 466 dateFormat: 'dd/mm/yy', 467 minDate: dateNaissanceMinEnfants.toString('dd/mm/yyyy'), 468 maxDate: dateNaissanceMaxEnfants.toString('dd/mm/yyyy'), 469 changeMonth: true, 470 changeYear: true, 471 yearRange: dateNaissanceMinEnfants.getAnnee()+':'+dateNaissanceMaxEnfants.getAnnee(), 472 beforeShow: function(){jQuery('#ui-datepicker-div').addClass('notranslate');} 473 }, paramsBouton)); 474 475 jQuery('.inpt_dateNaissance.bebe').datepicker(jQuery.extend({}, { 476 numberOfMonths: [1, 2], 477 dateFormat: 'dd/mm/yy', 478 minDate: dateNaissanceMinBebes.toString('dd/mm/yyyy'), 479 maxDate: dateNaissanceMaxBebes.toString('dd/mm/yyyy'), 480 changeMonth: true, 481 changeYear: true, 482 yearRange: dateNaissanceMinBebes.getAnnee()+':'+dateNaissanceMaxBebes.getAnnee(), 483 beforeShow: function(){jQuery('#ui-datepicker-div').addClass('notranslate');} 484 }, paramsBouton)); 485 486 if (estResaBureauProp() || estResaBureauGestloc()) { 487 jQuery('.inpt_dateNaissance.enfant').unbind('change'); 488 jQuery('.inpt_dateNaissance.enfant').bind('change', function(){ 489 corrigeSaisieDateNaissance(this, 'enfant'); 490 }); 491 } 492} 493 494function ouvreDatepickerDebResa(){ 495 (function($){ 496 $("#div_calendrierDeb").show().addClass('open'); 497 $("#div_calendrierFin").hide().removeClass("open"); 498 // On créé la requête ajax permettant de récupérer les disponibilités de cette structure 499 $.ajax({ 500 type: 'POST', 501 url: urlAJAX, 502 data: { 503 type : 'getPlanningDebResa', 504 modeResa : $('input:radio[name=modeResa]:checked').val() 505 }, 506 dataType: 'json', 507 beforeSend: function(){ 508 $('#div_roueDatepickerDeb').show(); 509 }, 510 // Quand la requête Ajax s'est terminée correctement, 511 // On met à jour chainePlanning et dateDebPlanning pour paramétrer les datepicker 512 success: function(JSONResult){ 513 if (JSONResult.code == 'dossierNull') { 514 retourEtape1(JSONResult.msg); 515 } else if (JSONResult.errTechnq) { 516 afficheMsgErrTechnq(JSONResult.msg, JSONResult.titre, JSONResult.ident, true); 517 } else if (JSONResult.code == 'OK'){ 518 initDatePickerDebResa(JSONResult); 519 } else { 520 alertAMalibu(JSONResult.msg); 521 $("#div_calendrierDeb").hide().removeClass("open");
522 $("#div_uneEtape_date").find(".inpt_validEtape").val("Non"); 523 } 524 $("#div_roueDatepickerDeb").hide(); 525 } 526 }); 527 })(jQuery); 528} 529 530function fermeDatepickerDebResa(){ 531 (function($){ 532 $("#div_calendrierDeb").hide().removeClass('open'); 533 })(jQuery); 534} 535 536function ouvreDatepickerFinResa(){ 537 (function($){ 538 var regexDate = new RegExp("[0-9]{2}\/[0-9]{2}\/[0-9]{4}"); 539 if (!regexDate.test($('#inpt_resaDateDeb').val())) { 540 ouvreDatepickerDebResa(); 541 return; 542 } 543 $('#div_calendrierDeb').hide().removeClass('open'); 544 $("#div_calendrierFin").show().addClass('open'); 545 $.ajax({ 546 type: 'POST', 547 url: urlAJAX, 548 dataType: 'json', 549 async: false, // Nécessaire quand on arrive sur la page avec des dates et qu'on simule la sélection des dates 550 data: { 551 type: 'getPlanningFinResa', 552 dateDeb: $('#inpt_resaDateDeb').val() 553 }, 554 beforeSend: function(){ 555 $('#div_roueDatepickerFin').show(); 556 }, 557 complete: function(){ 558 $('#div_roueDatepickerFin').hide(); 559 $('#div_calendrierFin').show().addClass('open'); 560 }, 561 success: function(JSONResult){ 562 initDatePickerFinResa(JSONResult); 563 }, 564 error: function(xhr, errorText, errorStatus){ 565 $('#div_calendrierFin').hide().removeClass('open'); 566 $('#div_roueDatepickerFin').hide(); 567 } 568 }); 569 })(jQuery); 570} 571 572function fermeDatepickerFinResa(){ 573 (function($){ 574 $("#div_calendrierFin").hide().removeClass('open'); 575 })(jQuery); 576} 577 578function initDatePickerDebResa(JSONResult){ 579 (function($){ 580 $('#div_datepickerDeb').datepicker('destroy'); 581 $('#div_datepickerDeb').datepicker({ 582 numberOfMonths: [1, 2], 583 dateFormat: 'dd/mm/yy', 584 minDate: JSONResult.dateDeb, 585 maxDate: JSONResult.dateFin, 586 defaultDate: $('#inpt_resaDateDeb').val(), 587 beforeShowDay: function (date) { 588 return setJourDatepicker(date, JSONResult.dateDeb, JSONResult.chaineDispo); 589 }, 590 onSelect: function (dateDeb) { 591 setInputDateDebResa(dateDeb); 592 initDatepickersDateNaissance(); 593 } 594 }); 595 })(jQuery); 596} 597 598function setInputDateDebResa(date){ 599 (function($){ 600 $('#inpt_resaDateDeb').val(date); 601 ouvreDatepickerFinResa(); 602 })(jQuery); 603} 604 605function initDatePickerFinResa(JSONResult){ 606 (function($){ 607 // La date minimale du datepicker doit correspondre à la date de début plus un jour 608 var dateDeb = $('#inpt_resaDateDeb').val(); 609 var objDateDeb = new Date(dateDeb.substr(6,4), parseInt(dateDeb.substr(3,2))-1, parseInt(dateDeb.substr(0,2))+1); 610 $("#div_datepickerFin").datepicker('destroy'); 611 $("#div_datepickerFin").datepicker({ 612 numberOfMonths: [1, 2], 613 dateFormat: 'dd/mm/yy', 614 minDate: objDateDeb, 615 defaultDate: objDateDeb, 616 maxDate: JSONResult.dateFin, 617 beforeShowDay: function (date) { 618 return setJourDatepicker(date, JSONResult.dateDeb, JSONResult.chaineDispo); 619 }, 620 onSelect: function (dateFin) { 621 setInputDateFinResa(dateFin); 622 } 623 }); 624 })(jQuery); 625} 626 627function setInputDateFinResa(date){ 628 (function($){ 629 $('#inpt_resaDateFin').val(date); 630 $('#div_calendrierFin').hide().removeClass('open'); 631 var dateDeb = $('#inpt_resaDateDeb').val(); 632 var dateFin = date; 633 634 // Affichage du message de confirmation/erreur en fonction des dates choisies 635 var tabData = {type: 'verifDates', dateDeb: dateDeb, dateFin: dateFin}; 636 ajaxVerifDates(tabData); 637 })(jQuery); 638} 639 640function initDatepickersLies(idElemDateDeb, idElemDateFin, tabOptions) { 641 (function($) { 642 if (!idElemDateDeb || $('#'+idElemDateDeb).length === 0 643 || !idElemDateFin || $('#'+idElemDateFin).length === 0 ) { 644 return; 645 } 646 647 $.datepicker.setDefaults($.datepicker.regional[initLangueForDatePicker()]); 648 649 if (tabOptions.dateDeb) { 650 var objDateDeb = new OBJDate(tabOptions.dateDeb); 651 $('#'+idElemDateDeb).val(objDateDeb.toString()); 652 if (tabOptions.dureeSejour) { 653 var objDateFin = new OBJDate(tabOptions.dateDeb); 654 objDateFin.ajoutJour(tabOptions.dureeSejour); 655 $('#'+idElemDateFin).val(objDateFin.toString()); 656 delete objDateFin; 657 } 658 } 659 660 $('#'+idElemDateDeb).datepicker({minDate: 0, dateFormat: 'dd/mm/yy', firstDay: 1}); 661 $('#'+idElemDateFin).datepicker({minDate: 0, dateFormat: 'dd/mm/yy', firstDay: 1}); 662 663 if (objDateDeb) { 664 $('#'+idElemDateFin).datepicker('option', 'minDate', objDateDeb.toString()); 665 } 666 667 $('#'+idElemDateDeb).datepicker('option', 'onSelect', function (selectedDate) { 668 var dateDebut = new OBJDate(selectedDate); 669 dateDebut.ajoutJour(1);
670 // on fait en sorte de ne pas choisir une date de fin inférieure à la date de début 671 $('#'+idElemDateFin).datepicker('option', 'minDate', dateDebut.toString()); 672// $('#inpt_formPropmailDateFin').datepicker('setDate', dateDebut.toString()); 673 delete dateDebut; 674 setTimeout(function () { 675 $('#'+idElemDateFin).focus(); 676 }, 0); 677 }); 678 679 $('.datepicker').datepicker({minDate: 0, 680 dateFormat: 'dd/mm/yy', 681 firstDay: 1 682 }); 683 })(jQuery); 684} 685 686function test_alljs_20190430_4(){ 687 console.log('ok test_alljs_20190430_4'); 688}
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.