$(function () { /* ÉXECUTION DES FONCTONS */ // Touche entrer génère un clique sur les classes .btn à part sur la page convertEncoding $("body").keydown(function(e){ if(e.which === 13 && chemin !== '/views/function-views/convertEncoding.php'){ $(".btn").click(); } }); $("#submitWeatherRequest").click(() => { const city = $('#cityName').val(); const cityName = city.split(' ').join('+'); if(isEmptyValue(cityName)) { $('.results').html(emptyMessageError); } else { createSessionCookie("city", cityName); weatherRequest(); } }); $("#submitRandomNumber").click(() => { const minEntered = $('#minValue').val(); const maxEntered = $('#maxValue').val(); if(isEmptyValue(minEntered) || isEmptyValue(maxEntered)) { $('.results').html(emptyMessageError); } else { const result = randomNumber(minEntered, maxEntered); if(result === messageError) { $('.results').html(messageError); } else { $('.results').html("Nombre aléatoire compris entre " + minEntered + " inclus et " + maxEntered + " inclus : " + formatNumberResult(result)); } } }); $("#birthDateValue").bind("keyup change", () => { $('.results').html(calculateAge($('#birthDateValue').val())); }); $("#submitConvertTemperature").click(() => { const temperatureValue = $('#temperatureValue').val(); const degree = parseFloat(temperatureValue.slice(0, temperatureValue.length - 2)); const unit = temperatureValue.slice(temperatureValue.length - 2); if(isEmptyValue(temperatureValue)) { $('.results').html(emptyMessageError); } else { $('.results').html(convertTemperature(degree, unit)); } }); $("#submitConvertDistance").click(() => { let firstValue = $('#firstValue').val(); const unitFirstValue = $("#firstValueUnit option:selected").text(); const secondValue = $("#secondValue option:selected").text(); if(isEmptyValue(firstValue) || isEmptyValue(secondValue)) { $('.results').html(emptyMessageError); } else { firstValue = parseFloat(firstValue.replace(/\s/g,'')); $('.results').html(convertDistance(firstValue, unitFirstValue, secondValue)); } }); $("#submitFilterStudents").click(() => { const nameEntered = $('#nameEntered').val(); let filteredLetter = $("#filteredLetter").val(); if(isEmptyValue(nameEntered) || isEmptyValue(filteredLetter)) { $('.results').html(emptyMessageError); } else if(filteredLetter.length === 1) { const students = nameEntered.split(', '); filteredLetter = capitalize(filteredLetter); $('.results').html(filterStudents(filteredLetter, students)); } else { $('.results').html(messageError); } }); let randomQuoteClicked; $("#submitRandomQuote").click(() => { randomQuoteClicked = true; $('.resultsRandomQuote').html(getRandomQuote()); }); // Affichage d'une citation au chargement de la page if (randomQuoteClicked != true && chemin === '/views/function-views/randomQuote.php') { $('.resultsRandomQuote').html(getRandomQuote()); } /* Permet d'afficher la liste des citations/proverbes */ if(chemin === "/views/quote-list.php") { window.onload = $('.totalLengthQuote').html('Total de ' + quotes.length + ' citations.'); let resultat = ""; for (index in quotes) { resultat = resultat + ` ${quotes[index]["source"]} ${quotes[index]["quote"]} `; } $(".quote-list").append(resultat); } $("#submitConvertCurrency").click(() => { let value = $('#value').val(); const currencyOfTheValue = $("#currencyOfTheValue option:selected").val(); const currencyAfter = $("#currencyAfter option:selected").val(); if(isEmptyValue(value) || isNaN(parseFloat(value))) { $('.results').html(emptyMessageError); } else { const url = 'https://api.exchangeratesapi.io/latest?base=' + currencyOfTheValue; value = parseFloat(value); convertCurrency(value, currencyAfter, url); } }); $("#submitConvertEncoding").click(() => { const value = $('#value').val(); const option = $("#option option:selected").val(); if(isEmptyValue(value)) { $('.results').html(messageError); } else { // Objet qui recense toutes les fonctions de convertEncoding const convertEncoding = { decimalToBinary, binaryToDecimal, decimalToHexadecimal, hexadecimalToDecimal, binaryToHexadecimal, hexadecimalToBinary, textToNumberUnicode, numberUnicodeToText, textToBinary, binaryToText, textToHexadecimal, hexadecimalToText }; try { function executionFunction(option, value) { return convertEncoding[option](value) } $('.results').html(executionFunction(option, value)); } catch (error) { $('.results').html(messageError); } } }); $("#submitConvertRomanArabicNumbers").click(() => { let numbersValue = $('#numbersArabic').val(); numbersValue = numbersValue.replace(/\s/g,''); const convertNumberType = $("#convertNumberType option:selected").text(); if(isEmptyValue(numbersValue)) { $('.results').html(emptyMessageError); } else if (!isNaN(Number(numbersValue))) { if (convertNumberType === "Nombre Romain") { const result = convertArabicToRoman(parseInt(numbersValue)); let numbersValueFormat = formatNumberResult(numbersValue); if (result === messageError || isFloat(numbersValue)) { $('.results').html(messageError); } else { $('.results').html(`${numbersValueFormat} s'écrit ${result} en chiffres romains.`); } } else { $('.results').html(`${numbersValue} est déjà en chiffres arabes.`); } } else if (convertNumberType === "Nombre Arabe") { const result = convertRomanToArabic(numbersValue.toUpperCase()); if (result === 0) { $('.results').html(messageError); } else { $('.results').html(`${numbersValue} s'écrit ${formatNumberResult(result)} en chiffres arabes.`); } } else { $('.results').html(messageError); } }); $("#numberToTest").bind("keyup change", () => { let numbersValue = $('#numberToTest').val(); numbersValue = parseInt(numbersValue.replace(/\s/g,'')); if (!isNaN(numbersValue) && numbersValue >= 0) { $('.results').html(armstrongNumber(numbersValue)); } else { $('.results').html(messageError); } }); $("#submitHeapAlgorithm").click(() => { const value = $('#value').val(); if(isEmptyValue(value)) { $('.results').html(emptyMessageError); } else { const start = new Date(); const stringPermutationsResult = stringPermutations(value); let result = ""; for (element in stringPermutationsResult) { result = result + stringPermutationsResult[element] + "
"; } const end = new Date(); $('.results').html(`Temps d'éxecution du script : ${end - start} ms.
Il y a ${formatNumberResult(stringPermutationsResult.length)} possibilités d'anagramme pour le mot "${value}" qui contient ${value.length} caractères, la liste :

${result}`); } }); if (chemin === "/views/function-views/convertMarkdown.php" && localStorage.getItem('convertedHTML') && localStorage.getItem('texteMarkdown')) { $('.results').html(localStorage.getItem('convertedHTML')); $('#texteMarkdown').val(localStorage.getItem('texteMarkdown')); } $("#texteMarkdown").bind("keyup change", () => { const textMarkdown = $('#texteMarkdown').val(); const convertedHTML = marked(textMarkdown); localStorage.setItem("convertedHTML", convertedHTML); localStorage.setItem("texteMarkdown", textMarkdown); $('.results').html(convertedHTML); }); /* Changement du texte accueil (exemples de fonction) */ if(chemin === "/" || chemin === '/index.php') { let index=-1; function change() { if(index === texteFonctionChange.length-1) { index = 0; } else { index++; } document.getElementById("change").innerHTML = texteFonctionChange[index]; } setInterval(change,10000); } /* Changement du logo du header selon la largeur de la fenêtre */ $(window).resize(function() { const windowWidth = $(window).width(); if(windowWidth < 463){ $('#logo-header').attr('src', '/img/FunctionProject_icon.png'); $('#logo-header').attr('style', 'display: inline-block;width: 80%;'); $('.navbar-brand').attr('style', 'width: 30%;'); } else { $('#logo-header').attr('src', '/img/FunctionProject_brand-logo.png'); $('#logo-header').removeAttr('style'); $('.navbar-brand').removeAttr('style'); } }); /* Permet d'afficher l'heure en temps réel sur le footer */ window.onload = realDateTime('realDateTime'); /* Window Scroll Top Button */ const $btnScrollTop = $('.scroll-top-arrow'); $btnScrollTop.on('click', function () { $('html, body').animate({scrollTop: 0}, 800); return false; }); /* Date Picker */ $.fn.datepicker.dates['fr'] = { days: ["dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"], daysShort: ["dim.", "lun.", "mar.", "mer.", "jeu.", "ven.", "sam."], daysMin: ["d", "l", "ma", "me", "j", "v", "s"], months: ["janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"], monthsShort: ["janv.", "févr.", "mars", "avril", "mai", "juin", "juil.", "août", "sept.", "oct.", "nov.", "déc."], today: "Aujourd'hui", monthsTitle: "Mois", clear: "Effacer", weekStart: 1, format: "dd/mm/yyyy" }; $('.datepicker').datepicker({ language: 'fr', autoclose: false, todayHighlight: true }); });