par
GeGaX » 26 févr. 2018, 12:17
Bonjour,
Plusieurs vues mais pas de pistes, je me dis qu'il doit manquer quelque chose ...
Après réflexion, je me dis que qu'il est peut être opportun d'indiquer comment ce fait l'extraction des données, elle peut indiquer surement certaines choses qui aiderait à comprendre.
Je met donc le code complet, les commentaires du code concernent uniquement ttw et twa.
"use strict";
const pattern = /updi\(event,'([0-9]{4}-[0-9]{2}-[0-9]{2}) ([0-9]{2}:[0-9]{2}) ([A-Z]{3,4}).*(T[+-]{1}.*?[0-9]{1,}:[0-9]{2}).*<br>Distances:.*?([0-9]{1,}\.[0-9]{1,}nm)\/([0-9]{1,}\.[0-9]{1,}nm)<br><b>Wind:<\/b> ([0-9]*?.*) (.*? kt).*\(<b>TWA(.*?)<\/b>\)<br><b>Heading:<\/b>(.*?)<b>Sail:<\/b>(.*?)<br><b>Boat Speed:<\/b>(.*?)'/g
const points = [];
try {
Array.prototype.slice.call(document.getElementsByTagName("img")).forEach(function (element) {
var event = element.getAttribute("onmouseover");
if (event !== null) {
var match = pattern.exec(event);
const date = match[1];
const time = match[2];
const timezone = match[3];
const ttw = match[4]; // ici l'extraction de la valeur ttw de chaque ligne d'instruction
const dtw = match[5];
const dtg = match[6];
const twd = match[7];
const tws = match[8];
const twa = match[9]; // ici l'extraction de la valeur twa de chaque ligne d'instruction
const btw = match[10];
const sail = match[11];
const stw = match[12];
points.push({
date : date,
time : time,
timezone : timezone,
ttw : ttw, // ici on envoie la valeur extraite
dtw : dtw,
dtg : dtg,
twd : twd,
tws : tws,
twa : twa, // idem pour twa
btw : btw,
sail : sail,
stw : stw
});
pattern.lastIndex = 0;
}
});
var background = chrome.extension.getBackgroundPage();
/* Ce code concerne l'ancienne méthode de calcul de twam (et btwm)
var hour_actu = 0;
var hour_change = 0;
var hour_prec = 0;
var nb_step = 0;
var twam = 0;
var twa_prec = 0;
var tot_twa_prec = 0;
var tot_twa = 0;
var btwm = 0;
var btw_prec = 0;
var tot_btw_prec = 0;
var tot_btw = 0;
var twa_btw_change = 0;
*/
function createCell(value, row) {
var cell = document.createElement("td");
cell.innerHTML = value;
row.appendChild(cell);
}
/* ici c'est juste une modification visuel de la valeur dans le tableau
function ttwStyling(value, cell) {
cell.align = "left";
cell.innerHTML = value;
}
*/
function dtwStyling(value, cell) {
cell.align = "left";
cell.innerHTML = value;
}
function dtgStyling(value, cell) {
cell.align = "left";
cell.innerHTML = value;
}
function twsStyling(value1, value2, cell) {
var tws_foil = value1.replace(" kt", "");
var twa_bd = value2.replace("\u00B0", "");
if (tws_foil >= 11.1 && tws_foil <= 39.9 && Math.abs(twa_bd) >= 71 && Math.abs(twa_bd) <= 169) {
cell.style.backgroundColor = "black";
cell.style.color = "white";
} else {
cell.style.backgroundColor = "white";
cell.style.color = "black";
}
cell.innerHTML = tws_foil + " kt";
}
/* Ici la valeur twa est soit négative ou positive, on prends la valeur absolue et on la colore (rouge : négative, vert : positive)
function twaStyling(value, cell) {
var twa_bd = value.replace("\u00B0", "");
if (twa_bd >= 0) {
cell.style.color = "green";
} else {
cell.style.color = "red";
}
cell.innerHTML = Math.abs(twa_bd) + "\u00B0";
}
*/
function btwStyling(value, cell) {
cell.style.color = "blue";
cell.innerHTML = value;
}
function sailStyling(value, cell) {
switch (value.trim()) {
// Upwind sail
case "Jib":
cell.style.backgroundColor = "#FFD479";
break;
case "LJ":
cell.style.backgroundColor = "#FFFC79";
break;
case "Stay":
cell.style.backgroundColor = "#D4FB79";
break;
// Downwind sail
case "Spi":
cell.style.backgroundColor = "#76D6FF";
break;
case "LG":
cell.style.backgroundColor = "#7A81FF";
break;
case "HG":
cell.style.backgroundColor = "#D783FF";
break;
// Reaching sail
case "C0":
cell.style.backgroundColor = "#FF7E79";
break;
}
cell.innerHTML = value;
}
/* Idem que pour valeurs twa
function twamStyling(value, cell) {
if (value >= 0) {
cell.style.color = "green";
} else {
cell.style.color = "red";
}
if (value !== "-") {
cell.innerHTML = Math.abs(value) + "\u00B0";
} else {
cell.style.color = "black";
cell.innerHTML = value;
}
}
*/
function btwmStyling(value, cell) {
cell.style.color = "blue";
if (value !== "-") {
cell.innerHTML = value + "\u00B0";
} else {
cell.style.color = "black";
cell.innerHTML = value;
}
}
function createCellWithCustomStyling(value, row, customStyling) {
var cell = document.createElement("td");
customStyling(value, cell);
row.appendChild(cell);
}
function createCellWithCustomStyling2(value1, value2, row, customStyling) {
var cell = document.createElement("td");
customStyling(value1, value2, cell);
row.appendChild(cell);
}
/* Ancien code pour déterminer twam (il est faux, il faut passer par un calcul trigo)
function calc_nb_ite(value) {
var delta_t = value.match(/.*?([0-9]{1,}):([0-9]{2})/);
hour_prec = hour_actu;
hour_actu = delta_t[1] * 6 + delta_t[2] / 10;
nb_step = hour_actu - hour_prec;
}
function calc_twam(value) {
var ss_tot = parseFloat(value.replace("\u00B0", ""));
tot_twa = tot_twa_prec + (twa_prec * nb_step);
if (hour_actu === hour_change) {
twam = "-";
} else {
twam = tot_twa / (hour_actu - hour_change);
twam = Math.round(twam);
}
tot_twa_prec = tot_twa;
twa_btw_change = 0;
if ((twa_prec * ss_tot) <= 0) {
tot_twa_prec = 0;
twa_btw_change = 1;
}
twa_prec = ss_tot;
}
*/
var twalist = []; // Raison du topic ( comment alimenter cette variable avec les 3 contraintes du 'cahier des charges' )
/* Nouveau code de calcul twam (trigo)
function twamCalc() {
const
twaData = twalist;
Math.radians = function (degrees) {
return degrees * Math.PI / 180.0;
},
Math.degrees = function (radians) {
return radians * 180.0 / Math.PI;
};
let
arX = [],
arY = [],
somX = 0.0,
somY = 0.0,
moyX = 0.0,
moyY = 0.0,
twam = 0.0;
for (const [i, angle] of twaData.entries()) {
arX[i] = Math.cos(Math.radians(angle));
arY[i] = Math.sin(Math.radians(angle));
}
for (const value of arX) {
somX += value;
}
moyX = somX / arX.length;
for (const value of arY) {
somY += value;
}
moyY = somY / arY.length;
twam = Math.round((Math.degrees(Math.atan2(moyY, moyX)) * 10)) / 10;
return twam;
}
*/
function calc_btwm(value) {
var ss_tot = parseFloat(value.replace("\u00B0", ""));
// N1
if (btwm >= 270 && btw_prec <= 90) {
btw_prec = btw_prec + 360;
} else {
if (btwm <= 90 && btw_prec >= 270) {
btw_prec = btw_prec - 360;
}
}
// End N1
tot_btw = tot_btw_prec + (btw_prec * nb_step);
if (hour_actu === hour_change) {
btwm = "-";
} else {
btwm = tot_btw / (hour_actu - hour_change);
// N2
if (btwm >= 360) {
btwm = btwm - 360;
} else {
if (btwm < 0) {
btwm = btwm + 360;
}
}
// End N2
btwm = Math.round(btwm);
}
tot_btw_prec = tot_btw;
if (twa_btw_change === 1) {
tot_btw_prec = 0;
nb_step = 0;
hour_prec = hour_actu;
hour_change = hour_actu;
}
btw_prec = ss_tot;
}
function reinitializeDisplay() {
document.getElementById("pointsTable").innerHTML = "";
}
function UtcToLocal(date, time) {
var utcYear = date.split("-")[0];
var utcMonth = (date.split("-")[1]) - 1;
var utcDay = date.split("-")[2];
var utcHour = time.split(":")[0];
var utcMinutes = time.split(":")[1];
var dateUtc = Date.UTC(utcYear, utcMonth, utcDay, utcHour, utcMinutes, 0, 0);
var localDate = new Date(dateUtc);
var year = localDate.getFullYear();
var month = ("0" + (localDate.getMonth() + 1)).slice(-2);
var day = ("0" + localDate.getDate()).slice(-2);
var hours = ("0" + localDate.getHours()).slice(-2);
var minutes = ("0" + localDate.getMinutes()).slice(-2);
var offset = -localDate.getTimezoneOffset();
var absOffset = Math.abs(offset);
var sign = (offset > 0) ? "+" : "-";
var hoursOffset = Math.trunc(absOffset) / 60;
var MinutesHoursOffset = (hoursOffset === 0) ? "\u00b1" + "0" : sign + hoursOffset;
var minutesOffset = absOffset % 60;
var HoursMinutesOffset = (minutesOffset === 0) ? MinutesHoursOffset : sign + hoursOffset + ":" + minutesOffset;
var formattedDate = year + "-" + month + "-" + day;
var formattedTime = hours + ":" + minutes;
var formattedTimeZone = "UTC" + HoursMinutesOffset;
return [formattedDate, formattedTime, formattedTimeZone];
}
function getTimeZone(timezone) {
if (timezone === "CET") {
return "UTC+1";
} else if (timezone === "CEST") {
return "UTC+2";
}
}
function displayTable(localTime) {
points.forEach(function (element) {
var row = document.createElement("tr");
document.getElementById("pointsTable").appendChild(row);
if ((localTime && element.timezone === "CET") || (localTime && element.timezone === "CEST")) {
var ceZ = getTimeZone(element.timezone);
createCell(element.date, row);
createCell(element.time, row);
createCell(ceZ, row);
} else if (localTime && element.timezone === "UTC") {
var localDTZ = UtcToLocal(element.date, element.time, element.timezone);
createCell(localDTZ[0], row);
createCell(localDTZ[1], row);
createCell(localDTZ[2], row);
} else {
createCell(element.date, row);
createCell(element.time, row);
createCell(element.timezone, row);
}
createCellWithCustomStyling(element.ttw, row, ttwStyling); // creation des cellules ttw avec formatage visuel
calc_nb_ite(element.ttw); // ancien code pour deteminer twam
createCellWithCustomStyling(element.dtw, row, dtwStyling);
createCellWithCustomStyling(element.dtg, row, dtgStyling);
createCell(element.twd, row);
createCellWithCustomStyling2(element.tws, element.twa, row, twsStyling);
createCellWithCustomStyling(element.twa, row, twaStyling); //
calc_twam(element.twa); // ancien code twam
createCellWithCustomStyling(element.btw, row, btwStyling);
calc_btwm(element.btw);
createCellWithCustomStyling(element.sail, row, sailStyling);
createCell(element.stw, row);
createCellWithCustomStyling(twam, row, twamStyling);
createCellWithCustomStyling(btwm, row, btwmStyling);
var manifest = chrome.runtime.getManifest();
document.getElementById("version").innerHTML = manifest.version;
});
}
var displayLocal = function () {
reinitializeDisplay();
if (document.getElementById("localtime").checked) {
chrome.storage.local.set({"localTime" : true});
displayTable(true);
} else {
chrome.storage.local.set({"localTime" : false});
displayTable(false);
}
};
document.getElementById("localtime").addEventListener("change", displayLocal);
chrome.storage.local.get("localTime", function (result) {
if (result.localTime === true) {
document.getElementById("localtime").checked = true;
displayLocal();
} else {
document.getElementById("localtime").checked = false;
}
});
reinitializeDisplay();
var points = background.points[background.currentTab];
displayTable(false);
Voilà y'a tout je peux pas faire mieux ...
Si il manque encore quelque chose, faites le moi savoir, je le fournirais
Je sais que vous allez pas me donner un code tout fait comme ça ( je suis pas contre ) mais je veux bien des infos / conseils concernant l'approche / la méthode pour y arriver.
Comme dit dans le post précédent, je ne suis pas développeur c'est un métier et pas le miens, mais je cherche (énormément) et j'apprends en même temps, c'est passionnant mais j'ai peu de connaissances d'ou la demande de coup de pouce.
Merci d'avance
Cdlt
Bonjour,
Plusieurs vues mais pas de pistes, je me dis qu'il doit manquer quelque chose ...
Après réflexion, je me dis que qu'il est peut être opportun d'indiquer comment ce fait l'extraction des données, elle peut indiquer surement certaines choses qui aiderait à comprendre.
Je met donc le code complet, les commentaires du code concernent uniquement ttw et twa.
[PHP]"use strict";
const pattern = /updi\(event,'([0-9]{4}-[0-9]{2}-[0-9]{2}) ([0-9]{2}:[0-9]{2}) ([A-Z]{3,4}).*(T[+-]{1}.*?[0-9]{1,}:[0-9]{2}).*<br>Distances:.*?([0-9]{1,}\.[0-9]{1,}nm)\/([0-9]{1,}\.[0-9]{1,}nm)<br><b>Wind:<\/b> ([0-9]*?.*) (.*? kt).*\(<b>TWA(.*?)<\/b>\)<br><b>Heading:<\/b>(.*?)<b>Sail:<\/b>(.*?)<br><b>Boat Speed:<\/b>(.*?)'/g
const points = [];
try {
Array.prototype.slice.call(document.getElementsByTagName("img")).forEach(function (element) {
var event = element.getAttribute("onmouseover");
if (event !== null) {
var match = pattern.exec(event);
const date = match[1];
const time = match[2];
const timezone = match[3];
const ttw = match[4]; // ici l'extraction de la valeur ttw de chaque ligne d'instruction
const dtw = match[5];
const dtg = match[6];
const twd = match[7];
const tws = match[8];
const twa = match[9]; // ici l'extraction de la valeur twa de chaque ligne d'instruction
const btw = match[10];
const sail = match[11];
const stw = match[12];
points.push({
date : date,
time : time,
timezone : timezone,
ttw : ttw, // ici on envoie la valeur extraite
dtw : dtw,
dtg : dtg,
twd : twd,
tws : tws,
twa : twa, // idem pour twa
btw : btw,
sail : sail,
stw : stw
});
pattern.lastIndex = 0;
}
});
var background = chrome.extension.getBackgroundPage();
/* Ce code concerne l'ancienne méthode de calcul de twam (et btwm)
var hour_actu = 0;
var hour_change = 0;
var hour_prec = 0;
var nb_step = 0;
var twam = 0;
var twa_prec = 0;
var tot_twa_prec = 0;
var tot_twa = 0;
var btwm = 0;
var btw_prec = 0;
var tot_btw_prec = 0;
var tot_btw = 0;
var twa_btw_change = 0;
*/
function createCell(value, row) {
var cell = document.createElement("td");
cell.innerHTML = value;
row.appendChild(cell);
}
/* ici c'est juste une modification visuel de la valeur dans le tableau
function ttwStyling(value, cell) {
cell.align = "left";
cell.innerHTML = value;
}
*/
function dtwStyling(value, cell) {
cell.align = "left";
cell.innerHTML = value;
}
function dtgStyling(value, cell) {
cell.align = "left";
cell.innerHTML = value;
}
function twsStyling(value1, value2, cell) {
var tws_foil = value1.replace(" kt", "");
var twa_bd = value2.replace("\u00B0", "");
if (tws_foil >= 11.1 && tws_foil <= 39.9 && Math.abs(twa_bd) >= 71 && Math.abs(twa_bd) <= 169) {
cell.style.backgroundColor = "black";
cell.style.color = "white";
} else {
cell.style.backgroundColor = "white";
cell.style.color = "black";
}
cell.innerHTML = tws_foil + " kt";
}
/* Ici la valeur twa est soit négative ou positive, on prends la valeur absolue et on la colore (rouge : négative, vert : positive)
function twaStyling(value, cell) {
var twa_bd = value.replace("\u00B0", "");
if (twa_bd >= 0) {
cell.style.color = "green";
} else {
cell.style.color = "red";
}
cell.innerHTML = Math.abs(twa_bd) + "\u00B0";
}
*/
function btwStyling(value, cell) {
cell.style.color = "blue";
cell.innerHTML = value;
}
function sailStyling(value, cell) {
switch (value.trim()) {
// Upwind sail
case "Jib":
cell.style.backgroundColor = "#FFD479";
break;
case "LJ":
cell.style.backgroundColor = "#FFFC79";
break;
case "Stay":
cell.style.backgroundColor = "#D4FB79";
break;
// Downwind sail
case "Spi":
cell.style.backgroundColor = "#76D6FF";
break;
case "LG":
cell.style.backgroundColor = "#7A81FF";
break;
case "HG":
cell.style.backgroundColor = "#D783FF";
break;
// Reaching sail
case "C0":
cell.style.backgroundColor = "#FF7E79";
break;
}
cell.innerHTML = value;
}
/* Idem que pour valeurs twa
function twamStyling(value, cell) {
if (value >= 0) {
cell.style.color = "green";
} else {
cell.style.color = "red";
}
if (value !== "-") {
cell.innerHTML = Math.abs(value) + "\u00B0";
} else {
cell.style.color = "black";
cell.innerHTML = value;
}
}
*/
function btwmStyling(value, cell) {
cell.style.color = "blue";
if (value !== "-") {
cell.innerHTML = value + "\u00B0";
} else {
cell.style.color = "black";
cell.innerHTML = value;
}
}
function createCellWithCustomStyling(value, row, customStyling) {
var cell = document.createElement("td");
customStyling(value, cell);
row.appendChild(cell);
}
function createCellWithCustomStyling2(value1, value2, row, customStyling) {
var cell = document.createElement("td");
customStyling(value1, value2, cell);
row.appendChild(cell);
}
/* Ancien code pour déterminer twam (il est faux, il faut passer par un calcul trigo)
function calc_nb_ite(value) {
var delta_t = value.match(/.*?([0-9]{1,}):([0-9]{2})/);
hour_prec = hour_actu;
hour_actu = delta_t[1] * 6 + delta_t[2] / 10;
nb_step = hour_actu - hour_prec;
}
function calc_twam(value) {
var ss_tot = parseFloat(value.replace("\u00B0", ""));
tot_twa = tot_twa_prec + (twa_prec * nb_step);
if (hour_actu === hour_change) {
twam = "-";
} else {
twam = tot_twa / (hour_actu - hour_change);
twam = Math.round(twam);
}
tot_twa_prec = tot_twa;
twa_btw_change = 0;
if ((twa_prec * ss_tot) <= 0) {
tot_twa_prec = 0;
twa_btw_change = 1;
}
twa_prec = ss_tot;
}
*/
var twalist = []; // Raison du topic ( comment alimenter cette variable avec les 3 contraintes du 'cahier des charges' )
/* Nouveau code de calcul twam (trigo)
function twamCalc() {
const
twaData = twalist;
Math.radians = function (degrees) {
return degrees * Math.PI / 180.0;
},
Math.degrees = function (radians) {
return radians * 180.0 / Math.PI;
};
let
arX = [],
arY = [],
somX = 0.0,
somY = 0.0,
moyX = 0.0,
moyY = 0.0,
twam = 0.0;
for (const [i, angle] of twaData.entries()) {
arX[i] = Math.cos(Math.radians(angle));
arY[i] = Math.sin(Math.radians(angle));
}
for (const value of arX) {
somX += value;
}
moyX = somX / arX.length;
for (const value of arY) {
somY += value;
}
moyY = somY / arY.length;
twam = Math.round((Math.degrees(Math.atan2(moyY, moyX)) * 10)) / 10;
return twam;
}
*/
function calc_btwm(value) {
var ss_tot = parseFloat(value.replace("\u00B0", ""));
// N1
if (btwm >= 270 && btw_prec <= 90) {
btw_prec = btw_prec + 360;
} else {
if (btwm <= 90 && btw_prec >= 270) {
btw_prec = btw_prec - 360;
}
}
// End N1
tot_btw = tot_btw_prec + (btw_prec * nb_step);
if (hour_actu === hour_change) {
btwm = "-";
} else {
btwm = tot_btw / (hour_actu - hour_change);
// N2
if (btwm >= 360) {
btwm = btwm - 360;
} else {
if (btwm < 0) {
btwm = btwm + 360;
}
}
// End N2
btwm = Math.round(btwm);
}
tot_btw_prec = tot_btw;
if (twa_btw_change === 1) {
tot_btw_prec = 0;
nb_step = 0;
hour_prec = hour_actu;
hour_change = hour_actu;
}
btw_prec = ss_tot;
}
function reinitializeDisplay() {
document.getElementById("pointsTable").innerHTML = "";
}
function UtcToLocal(date, time) {
var utcYear = date.split("-")[0];
var utcMonth = (date.split("-")[1]) - 1;
var utcDay = date.split("-")[2];
var utcHour = time.split(":")[0];
var utcMinutes = time.split(":")[1];
var dateUtc = Date.UTC(utcYear, utcMonth, utcDay, utcHour, utcMinutes, 0, 0);
var localDate = new Date(dateUtc);
var year = localDate.getFullYear();
var month = ("0" + (localDate.getMonth() + 1)).slice(-2);
var day = ("0" + localDate.getDate()).slice(-2);
var hours = ("0" + localDate.getHours()).slice(-2);
var minutes = ("0" + localDate.getMinutes()).slice(-2);
var offset = -localDate.getTimezoneOffset();
var absOffset = Math.abs(offset);
var sign = (offset > 0) ? "+" : "-";
var hoursOffset = Math.trunc(absOffset) / 60;
var MinutesHoursOffset = (hoursOffset === 0) ? "\u00b1" + "0" : sign + hoursOffset;
var minutesOffset = absOffset % 60;
var HoursMinutesOffset = (minutesOffset === 0) ? MinutesHoursOffset : sign + hoursOffset + ":" + minutesOffset;
var formattedDate = year + "-" + month + "-" + day;
var formattedTime = hours + ":" + minutes;
var formattedTimeZone = "UTC" + HoursMinutesOffset;
return [formattedDate, formattedTime, formattedTimeZone];
}
function getTimeZone(timezone) {
if (timezone === "CET") {
return "UTC+1";
} else if (timezone === "CEST") {
return "UTC+2";
}
}
function displayTable(localTime) {
points.forEach(function (element) {
var row = document.createElement("tr");
document.getElementById("pointsTable").appendChild(row);
if ((localTime && element.timezone === "CET") || (localTime && element.timezone === "CEST")) {
var ceZ = getTimeZone(element.timezone);
createCell(element.date, row);
createCell(element.time, row);
createCell(ceZ, row);
} else if (localTime && element.timezone === "UTC") {
var localDTZ = UtcToLocal(element.date, element.time, element.timezone);
createCell(localDTZ[0], row);
createCell(localDTZ[1], row);
createCell(localDTZ[2], row);
} else {
createCell(element.date, row);
createCell(element.time, row);
createCell(element.timezone, row);
}
createCellWithCustomStyling(element.ttw, row, ttwStyling); // creation des cellules ttw avec formatage visuel
calc_nb_ite(element.ttw); // ancien code pour deteminer twam
createCellWithCustomStyling(element.dtw, row, dtwStyling);
createCellWithCustomStyling(element.dtg, row, dtgStyling);
createCell(element.twd, row);
createCellWithCustomStyling2(element.tws, element.twa, row, twsStyling);
createCellWithCustomStyling(element.twa, row, twaStyling); //
calc_twam(element.twa); // ancien code twam
createCellWithCustomStyling(element.btw, row, btwStyling);
calc_btwm(element.btw);
createCellWithCustomStyling(element.sail, row, sailStyling);
createCell(element.stw, row);
createCellWithCustomStyling(twam, row, twamStyling);
createCellWithCustomStyling(btwm, row, btwmStyling);
var manifest = chrome.runtime.getManifest();
document.getElementById("version").innerHTML = manifest.version;
});
}
var displayLocal = function () {
reinitializeDisplay();
if (document.getElementById("localtime").checked) {
chrome.storage.local.set({"localTime" : true});
displayTable(true);
} else {
chrome.storage.local.set({"localTime" : false});
displayTable(false);
}
};
document.getElementById("localtime").addEventListener("change", displayLocal);
chrome.storage.local.get("localTime", function (result) {
if (result.localTime === true) {
document.getElementById("localtime").checked = true;
displayLocal();
} else {
document.getElementById("localtime").checked = false;
}
});
reinitializeDisplay();
var points = background.points[background.currentTab];
displayTable(false);
[/PHP]
Voilà y'a tout je peux pas faire mieux ...
Si il manque encore quelque chose, faites le moi savoir, je le fournirais
Je sais que vous allez pas me donner un code tout fait comme ça ( je suis pas contre ) mais je veux bien des infos / conseils concernant l'approche / la méthode pour y arriver.
Comme dit dans le post précédent, je ne suis pas développeur c'est un métier et pas le miens, mais je cherche (énormément) et j'apprends en même temps, c'est passionnant mais j'ai peu de connaissances d'ou la demande de coup de pouce.
Merci d'avance
Cdlt