AP23/vues/proceduresJava.js
2022-03-17 15:33:52 +01:00

248 lines
9.9 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// version modifiée le 17 decembre 2013 par Pascal Blain
var ongletActif=1;
// ========================= passer le focus à un champ
function donner_focus(frm,champ) {
document.forms[frm].elements[champ].focus();
}
// ========================= fonctions de navigation dans la liste de choix
function premier(frm, liste) {
document.forms[frm].elements[liste].value = document.forms[frm].elements[liste].options[0].value;
document.forms[frm].submit();
}
function precedent(frm, liste) {
document.forms[frm].elements[liste].value = document.forms[frm].elements[liste].options[Math.max(0,document.forms[frm].elements[liste].selectedIndex-1)].value;
document.forms[frm].submit();
}
function suivant(frm, liste) {
document.forms[frm].elements[liste].value = document.forms[frm].elements[liste].options[(Math.min((document.forms[frm].elements[liste].options.length-1),document.forms[frm].elements[liste].selectedIndex+1))].value;
document.forms[frm].submit();
}
function dernier(frm, liste) {
document.forms[frm].elements[liste].value = document.forms[frm].elements[liste].options[(document.forms[frm].elements[liste].options.length-1)].value;
document.forms[frm].submit();
}
// =========================
function faire(frm, action) {
document.forms[frm].action.value = action;
if(action=="supprimer") {alert("ATTENTION : \n demande de suppression \n cette action est irreversible !");}
document.forms[frm].submit();
}
// =========================
function validerAutre(frm, ordreAc, ordreCe, onglet)
{
document.getElementById("zOrdreAc").value=ordreAc;
document.getElementById("zOrdreCe").value=ordreCe;
document.getElementById("zOnglet").value=onglet;
document.forms[frm].submit();
}
// =========================
function voirListe(type, indice, colonne)
{
document.forms["choixP"].zType.value=type;
document.forms["choixP"].zIndice.value=indice;
document.forms["choixP"].zColonne.value=colonne;
document.forms["choixP"].action.value = "liste";
document.forms["choixP"].submit();
}
// ========================= fonction annulation de saisie ou modification
function annuler(frm){
document.forms[frm].elements["zOk"].value="nonOk";
document.forms[frm].submit();
}
// ========================= validation des données d'un usager (version 2)
function validerUsager(frm)
{ //var champ=frm.elements["ztNom"];
if(!verifTexte(frm, frm.elements["ztNom"], 40)) {return false;}
else {if(!verifTexte(frm, frm.elements["ztPrenom"], 24)) {return false;}
else {if(!verifMail(frm, frm.elements["ztEMail"])) {return false;}
else {return true;}
}
}
}
// =========================
function verifMail(frm, champ)
{
var regex = /^[a-zA-Z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$/;
if(regex.test(champ.value) || champ.value.length<1)
{surligne(champ, false); return true;}
else
{surligne(champ, true); return false;}
}
// ========================= fonctions de controle de validité d'un champ
function surligne(frm, champ, erreur)
{
if(erreur)
{champ.style.backgroundColor = "#f55"; alert("Champ '"+champ.id+"' incorrect ...\nMerci de corriger"); document.getElementById(champ.id).focus(); frm.elements["zOk"].value="nonOk";}
else
{champ.style.backgroundColor = "#fff"; frm.elements["zOk"].value="OK";}
}
// ========================= fonctions de controle de validité d'un champ texte (longueur)
function verifTexte(frm, champ,longueur)
{
if(champ.value.length < 2 || champ.value.length > longueur)
{surligne(frm, champ, true); return false;}
else
{surligne(frm, champ, false); return true;}
}
// ========================= fonctions de controle de validité du code postal
function verifCP(frm, champ)
{ var str = champ.value;
var insee = str.substring(0,5);
var dep = str.substring(0,2);
var cPostal = str.substring(6,11);
var secteur= str.substring(12,16);
var ville = str.substring(17,57);
var cp = parseInt(cPostal);
if(isNaN(cp) || cp < 1000 || cp > 99999) {surligne(frm, champ, true); alert(cp); return false;} //
else { surligne(frm, champ, false);
frm.elements["ztCP"].value =cPostal;
frm.elements["ztVille"].value =ville;
frm.elements["ztCommune"].value =insee;
frm.elements["departement"].value =dep;
if(frm.name="frmUsager")
{
for (var i=0;i<frm.elements["ldrSecteur"].length;i++)
{
if(frm.elements["ldrSecteur"].options[i].value==secteur) {frm.elements["ldrSecteur"].selectedIndex=i; i=9999;}
}
}
return true;}
}
// ========================= fonctions de controle de validité d'une date
function verifDate(laDate)
{
var ok=true;
var d=laDate.value;
laDate.style.backgroundColor="#fff";
if(d != null && d != "")
{
var amini=1900; // année mini
var amax=2030; // année maxi
var separateur="/"; // separateur entre jour/mois/annee
var j=(d.substring(0,2));
var m=(d.substring(3,5));
var a=(d.substring(6));
if ( ((isNaN(j))||(j<1)||(j>31)) && (ok==1) ) {alert(j+" n'est pas un jour correct..."); laDate.style.backgroundColor="#f55"; ok=false;}
if ( ((isNaN(m))||(m<1)||(m>12)) && (ok==1) ) {alert(m+" n'est pas un mois correct ..."); laDate.style.backgroundColor="#f55"; ok=false;}
if ( ((isNaN(a))||(a<amini)||(a>amax)) && (ok==1) ) {alert(a+" n'est pas une année correcte: utiliser 4 chiffres, \n elle doit être comprise entre "+amini+" et "+amax); laDate.style.backgroundColor="#f55"; ok=false;}
if ( ((d.substring(2,3)!=separateur)||(d.substring(5,6)!=separateur)) && (ok==1) ) {alert("Les séparateurs doivent être des "+separateur); laDate.style.backgroundColor="#f55"; ok=false;}
if (ok==true) {
var d2=new Date(a,m-1,j);
j2=d2.getDate();
m2=d2.getMonth()+1;
a2=d2.getFullYear();
if (a2<=100) {a2=1900+a2}
if ( (j!=j2)||(m!=m2)||(a!=a2) ) {alert("La date "+d+" n'existe pas !"); laDate.style.backgroundColor="#f55"; ok=false;}
}
}
return ok;
}
// ========================= formate un nombre avec 2 chiffres après la virgule et un espace separateur de milliers
function format_euro(valeur) {
var ndecimal=2;
var separateur=' ';
var deci=Math.round( Math.pow(10,ndecimal)*(Math.abs(valeur)-Math.floor(Math.abs(valeur)))) ;
var val=Math.floor(Math.abs(valeur));
if ((ndecimal==0)||(deci==Math.pow(10,ndecimal))) {val=Math.floor(Math.abs(valeur)); deci=0;}
var val_format=val+"";
var nb=val_format.length;
for (var i=1;i<4;i++)
{
if (val>=Math.pow(10,(3*i)))
{
val_format=val_format.substring(0,nb-(3*i))+separateur+val_format.substring(nb-(3*i));
}
}
if (ndecimal>0)
{
var decim="";
for (var j=0;j<(ndecimal-deci.toString().length);j++) {decim+="0";}
deci=decim+deci.toString();
val_format=val_format+","+deci;
}
if (parseFloat(valeur)<0) {val_format="-"+val_format;}
return val_format;
}
// ========================= affiche l'onglet choisi
function Affiche(ongletChoisi, nb)
{
for(i=1;i<nb+1;i++)
{
document.getElementById('onglet'+i).className = 'inactif onglet';
document.getElementById('contenuOnglet'+i).style.display = 'none';
}
document.getElementById('onglet'+ongletChoisi).className = 'actif onglet';
document.getElementById('contenuOnglet'+ongletChoisi).style.display = 'block';
document.getElementById('zOnglet').value=ongletChoisi;
document.getElementById('zNbOnglets').value=nb;
ongletActif=ongletChoisi;
}
// ========================= transfert des données dune liste à une autre
function deplacer_elements(frm, origine, destination) {
if (origine.options.selectedIndex >= 0)
{
while (origine.options.selectedIndex >= 0) /* boucle tant qu'il reste des éléments sélectionnés */
{
valeur = origine.options[origine.options.selectedIndex].value; /* valeur de l'élément sélectionné */
texte = origine.options[origine.options.selectedIndex].text; /* texte de l'élément sélectionné */
origine.options[origine.options.selectedIndex] = null; /* suppression de l'element selectione dans la liste d'origine */
destination.options[destination.options.length] = new Option(texte, valeur);/* ajout dans la liste destination */
}
var nbElements=destination.length;
var tbl = new Array(nbElements, 2)
for(ligne=0;ligne<nbElements;ligne++){
tbl[ligne] = new Array(destination.options[ligne].text, destination.options[ligne].value);
}
tbl.sort(triAlpha);
destination.options.length=0; /* efface la liste */
for(ligne=0;ligne<nbElements;ligne++){
destination.options[destination.options.length]=new Option(tbl[ligne][0],tbl[ligne][1]); //rempli la liste avec les données triees
}
}
else
alert("choisissez au moins un participant !");
return(false);
}
// =========================
function triAlpha(a,b) {
a = a[0];
b = b[0];
return a == b ? 0 : (a < b ? -1 : 1)
}
// =========================
function tester(frm, liste) {
var nbElements=liste.length;
var tbl = new Array(nbElements, 2)
for(ligne=0;ligne<nbElements;ligne++){
tbl[ligne] = new Array(liste.options[ligne].text, liste.options[ligne].value);
//alert("Valeur : " + tbl[ligne][1] + " Texte :" + tbl[ligne][0]);
}
tbl.sort(triAlpha);
liste.options.length=0; //efface la liste
for(ligne=0;ligne<nbElements;ligne++){
liste.options[liste.options.length]=new Option(tbl[ligne][0],tbl[ligne][1]); //rempli la liste avec les données triees
// alert("Valeur : " + tbl[element,1] + " libellé : " + tbl[element,0]);
}
result = tbl.join('\n');
alert(result);
return (false);
}
// =========================trouver un code postal en france, ou une commune
// parametres d'entrée : (L'un des 2 champs ne doit pas être vide. Sinon, c'est Paris qui est pris par défaut.)
// - codePostal : l'ID du champs contenant le code postal
// - ville : l'ID du champs contenant le nom de la commune
function openCodesPostaux(codePostal, ville){
var leCodePostal = document.getElementById(codePostal).value;
var laVille = document.getElementById(ville).value;
if(laVille == ""){ laVille = leCodePostal;}
window.open( 'http://www.codes-postaux.org/outils/module.php?Choix=' + escape(laVille) ,'CodePostal','scrollbars=yes, width=300, height=550');
}