var tournamentList; var thisWeek; $( document ).ready(function() { LoadWeek(); var d1 = new Date(); numOfdaysPastSinceLastMonday = eval(d1.getDay()- 1); d1.setDate(d1.getDate() - numOfdaysPastSinceLastMonday); thisWeek = d1.getWeek(); }); $(document).on('change', '#chkAllDates', function() { $("#waiting").show(); setTimeout(() => { if($("#typeRev option:selected").val()!="") { $("#week").val(""); $("#type").val(""); $("#region").attr("disabled",true); $("#region").val(""); $("#type").attr("disabled",true); $("#tournaments").empty(); $("#weekRev").empty(); $("#weekRev").append(""); $("#weekRev").attr("disabled",false); $("#regionRev").attr("disabled",true); $('#regionRev option:first').prop('selected', true); $("#typeRev").val(""); LoadAgendaByCatRev($("#typeRev option:selected").val()); } else { $("#typeRev").empty(); $("#typeRev").append(""); $("#typeRev").val(""); $("#weekRev").val(""); $("#weekRev").attr("disabled",true); $("#regionRev").val(""); $("#regionRev").attr("disabled",true); $("#tournaments").empty(); $("#type").val(""); $("#region").val(""); $("#type").attr("disabled",true); $("#region").attr("disabled",true); } LoadWeek(); }, 500); }); $(document).on('change', '#type', function() { $("#tournaments").empty(); $("#waiting").show(); LoadAgenda($("#week option:selected").val(),$("#type option:selected").val()); $("#region").attr("disabled",false); $('#region option:first').prop('selected', true); }); $(document).on('change', '#typeRev', function() { $("#week").val(""); $("#type").val(""); $("#region").attr("disabled",true); $("#region").val(""); $("#type").attr("disabled",true); $("#tournaments").empty(); $("#weekRev").empty(); $("#weekRev").append(""); $("#weekRev").attr("disabled",true); $("#regionRev").attr("disabled",true); $('#regionRev option:first').prop('selected', true); if($("#typeRev option:selected").val()!="") { $("#waiting").show(); setTimeout(() => { LoadAgendaByCatRev($("#typeRev option:selected").val()); $("#weekRev").attr("disabled",false); }, 500); } else{ $(".agenda h2").remove(); } }); $(document).on('change', '#week', function() { $("#typeRev").val(""); $("#weekRev").val(""); $("#weekRev").attr("disabled",true); $("#regionRev").val(""); $("#regionRev").attr("disabled",true); $("#tournaments").empty(); $("#type").empty(); $("#type").append(""); $("#type").attr("disabled",true); $("#region").attr("disabled",true); $('#region option:first').prop('selected', true); if($("#week option:selected").val()!="") { $("#waiting").show(); setTimeout(() => { LoadAgenda($("#week option:selected").val()); $("#type").attr("disabled",false); }, 500); } else { $(".agenda h2").remove(); } }); $(document).on('change', '#region', function() { $("#tournaments").empty(); $("#waiting").show(); setTimeout(() => { LoadAgenda($("#week option:selected").val(),$("#type option:selected").val(),$("#region option:selected").val()); }, 500); }); $(document).on('change', '#regionRev', function() { $("#tournaments").empty(); $("#waiting").show(); setTimeout(() => { LoadAgendaByCatRev($("#typeRev option:selected").val(),$("#weekRev option:selected").val(),$("#regionRev option:selected").val()); }, 500); }); $(document).on('change', '#weekRev', function() { $("#tournaments").empty(); $("#waiting").show(); $('#regionRev option:first').prop('selected', true); $("#regionRev").attr("disabled",false); setTimeout(() => { LoadAgendaByCatRev($("#typeRev option:selected").val(),$("#weekRev option:selected").val(),$("#regionRev option:selected").val()); }, 500); }); const FillWeek=(tournamentList)=>{ let weeks = [...new Set(tournamentList.map(item => item.Week))]; weeks.sort(function(a, b){return a - b}); for (var i = 0; i < weeks.length; i++) { if($('#week option[value="'+weeks[i]).length ==0) { if($("#chkAllDates").prop("checked") == true) { if(weeks[i] >=thisWeek) { $("#week").append(""); } } else { $("#week").append(""); } } } if($("#typeRev option:selected").val()=="") { $("#typeRev").empty(); $("#typeRev").append(''); let categories = [...new Set(tournamentList.map(item => item.Cat))]; for (var i = 0; i < categories.length; i++) { $("#typeRev").append(""); } sortDropDown("#typeRev"); } $("#waiting").hide(); } const LoadWeek=async () => { $("#week").empty(); $("#week").append(''); $("#type").attr("disabled",true); $(".agenda h2").remove(); $("#tournaments").empty(); if(tournamentList==undefined) { //var jsonSrc ="csvjson.txt"; var jsonSrc ="https://www.aftnet.be/Aftnet/media/Media/json/2023/csvjson.txt"; var xhr = new XMLHttpRequest(); xhr.open('GET', jsonSrc, true); xhr.responseType = 'json'; xhr.onload = function() { var jsonResponse = xhr.response; tournamentList = jsonResponse; FillWeek(tournamentList); }; xhr.send(); } else { FillWeek(tournamentList); } } const LoadAgenda=(week,type,region) => { var jsonResponse = tournamentList; var objret = $.grep(jsonResponse, function (n, i) { if(type==undefined || type=="") { return n.Week == week; } else { return n.Week == week && n.Cat == type; } }); let categories = [...new Set(objret.map(item => item.Cat))]; $(".agenda h2").remove(); $("#tournaments").empty(); for (var i = 0; i < categories.length; i++) { //let trainingDay = formatDueDate(array[i]. ); $("#type").append(""); } //$("#type").sort(function(a, b){return a - b}); sortDropDown("#type"); $(".agenda").prepend("

Semaine "+ $("#week option[value='"+week+"']").html() + "

"); //$(".agenda").prepend("

Double / Simple

"); let arrClubs = {clubs:[]}; for (var i = 0; i < objret.length; i++) { const obj={club:objret[i].Club,tournois:[objret[i]],id:objret[i].ID}; if(!arrClubs.clubs.some(item => item.club ===objret[i].Club )) { arrClubs['clubs'].push(obj); } else { let clubFound = arrClubs.clubs.find(item => item.club ===objret[i].Club ); if(clubFound) { clubFound.tournois.push(objret[i]) } } } arrClubs.clubs.forEach(club=> { if(region!= undefined && region!="") { switch(parseInt(region)) { case 1000: { if(club.id.toString().startsWith("1")) { FillClub(club,false); } break; } case 3000: { if(club.id.toString().startsWith("3")) { FillClub(club,false); } break; } case 4000: { if(club.id.toString().startsWith("4")) { FillClub(club,false); } break; } case 6000: { if(club.id.toString().startsWith("6")) { FillClub(club,false); } break; } } } else { FillClub(club); } }); //console.log("Tournoi--> " + $("#tournaments").html() ); if($("#tournaments").html() =="") { $("#tournaments").append("

Pas de tournoi(s) pour ces critères.

"); } $("#waiting").hide(); } const FillClub=(club,isRev)=>{ let clubName = club.club; let tournaments = club.tournois; let output ="
  • " + clubName +"

    "; if (tournaments.length> 0) { output+=""; } output+="
  • "; $("#tournaments").append(output); } const LoadAgendaByCatRev=(Cat,Week,region) => { var jsonResponse =tournamentList; if($("#chkAllDates").prop("checked") == true) { let tournamentListCleaned = tournamentList.filter((element) => { return parseInt(element.Week) >= thisWeek; }); tournamentListCleaned = tournamentListCleaned.filter(element => { return !element.Start.includes('2022'); }); jsonResponse = tournamentListCleaned; } var objret = $.grep(jsonResponse, function (n, i) { if(Week==undefined || Week=="") { return n.Cat == Cat; } else { return n.Week == Week && n.Cat == Cat; } }); let weeks = [...new Set(objret.map(item => item.Week))]; weeks.sort(function(a, b){return a - b}); $(".agenda H2").remove(); $("#tournaments").empty(); for (var i = 0; i < weeks.length; i++) { //let trainingDay = formatDueDate(array[i]. ); //$("#weekRev").append(""); if($("#chkAllDates").prop("checked") == true) { if(weeks[i] >=thisWeek) { $("#weekRev").append(""); } } else { $("#weekRev").append(""); } } //sortDropDown("#weekRev"); let tournamentTitle = "

    "; if($("#typeRev option[value='"+Cat+"']").html().toUpperCase().includes("DM")|| $("#typeRev option[value='"+Cat+"']").html().toUpperCase().includes("DM")) { tournamentTitle+= " "; } else { tournamentTitle+= " "; } tournamentTitle+="Categorie "+ $("#typeRev option[value='"+Cat+"']").html() + "

    "; // $(".agenda").prepend("

    Double / Simple

    "); //$(".agenda").prepend("

    Categorie "+ $("#typeRev option[value='"+Cat+"']").html() + "

    "); $(".agenda").prepend(tournamentTitle); let arrClubs = {clubs:[]}; for (var i = 0; i < objret.length; i++) { const obj={club:objret[i].Club,tournois:[objret[i]],id:[objret[i].ID]}; if(!arrClubs.clubs.some(item => item.club ===objret[i].Club )) { arrClubs['clubs'].push(obj); } else { let clubFound = arrClubs.clubs.find(item => item.club ===objret[i].Club ); if(clubFound) { clubFound.tournois.push(objret[i]) } } } arrClubs.clubs.forEach(club=> { if(region!= undefined && region!="") { switch(parseInt(region)) { case 1000: { if(club.id.toString().startsWith("1")) { FillClub(club,true); } break; } case 3000: { if(club.id.toString().startsWith("3")) { FillClub(club,true); } break; } case 4000: { if(club.id.toString().startsWith("4")) { FillClub(club,true); } break; } case 6000: { if(club.id.toString().startsWith("6")) { FillClub(club,true); } break; } } } else { FillClub(club,true); } }); if($("#tournaments").html() =="") { $("#tournaments").append("

    Pas de tournoi(s) pour ces critères.

    "); } $("#waiting").hide(); } const sortDropDown=(theDropDown)=> { $(function() { // choose target dropdown var select = $(theDropDown); select.html(select.find('option').sort(function(x, y) { return $(x).text() > $(y).text() ? 1 : -1; })); }); } function getDateRangeOfWeek(weekNo){ var d1 = new Date(); numOfdaysPastSinceLastMonday = eval(d1.getDay()- 1); d1.setDate(d1.getDate() - numOfdaysPastSinceLastMonday); var weekNoToday = d1.getWeek(); var weeksInTheFuture = eval( weekNo - weekNoToday ); d1.setDate(d1.getDate() + eval( 7 * weeksInTheFuture )); var rangeIsFrom = d1.getDate() +"/" + eval(d1.getMonth()+1)+ "/" + d1.getFullYear(); d1.setDate(d1.getDate() + 6); var rangeIsTo = d1.getDate() +"/" +eval(d1.getMonth()+1) + "/" + d1.getFullYear() ; return rangeIsFrom + " au "+rangeIsTo; }; Date.prototype.getWeek = function () { var target = new Date(this.valueOf()); var dayNr = (this.getDay() + 6) % 7; target.setDate(target.getDate() - dayNr + 3); var firstThursday = target.valueOf(); target.setMonth(0, 1); if (target.getDay() != 4) { target.setMonth(0, 1 + ((4 - target.getDay()) + 7) % 7); } return 1 + Math.ceil((firstThursday - target) / 604800000); }