1064 lines
31 KiB
JavaScript
1064 lines
31 KiB
JavaScript
|
|
/**
|
|
* Description : Bibliothèque de fonctions Javascript en version 1.2
|
|
* Copyright : Copyright (c) 2002</p>
|
|
* Charset du fichier texte à utiliser: ISO-8859-1
|
|
*/
|
|
|
|
|
|
//=======================================
|
|
// VERIFIE LES CARACTERES INTERDITS
|
|
// Dev : PAI
|
|
//=======================================
|
|
function CheckBadChar(sChaine, sFlag, sMsg){
|
|
var i;
|
|
var sBadString = '';
|
|
var bReturn = true;
|
|
|
|
// Chaine de comparaison pour les e-mail
|
|
switch(sFlag){
|
|
case "e":
|
|
sBadString = "' /*+;?!:%#{([|éèêàôïùç~)]=}&<>,";
|
|
break;
|
|
case "t":
|
|
sBadString = "'/*;?!:%#{[|?????]=}&abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
|
break;
|
|
case "d":
|
|
sBadString = "/*+;?!:%#{([|)]=}&?@?";
|
|
break;
|
|
case "n":
|
|
sBadString = "/*+;,:.?!%#{([|)]\=}&?@?0123456789";
|
|
break;
|
|
case "s":
|
|
sBadString = "/*+;,:?!%#{([|éèêàôïù)]\=}&?@?0123456789";
|
|
break;
|
|
case "ed": // Caractères interdits pour le domaine
|
|
sBadString = "' _/*+;?!:%#{([|éèêàôïù)]=}&";
|
|
break;
|
|
default: // Chaine de comparaison pour les URL
|
|
sBadString = "' *+;?!%#{([|éèêàôïù)]=}&\^@";
|
|
}
|
|
|
|
for (i=0; i<sChaine.length && bReturn; i++){
|
|
if(sBadString.indexOf(sChaine.charAt(i)) > -1) {
|
|
bReturn = false;
|
|
alert(sMsg + " " + sChaine.charAt(i));
|
|
}
|
|
}
|
|
return bReturn;
|
|
}
|
|
|
|
/**
|
|
* Fonction : formaterSiren(numeroSiren)
|
|
* @param numeroSiren String
|
|
* Description : supprime tous les caracteres autre que numerique
|
|
* date : 22.01.2003
|
|
**/
|
|
function formaterSiren(numeroSiren){
|
|
return formaterNumerique(numeroSiren);
|
|
}
|
|
|
|
/**
|
|
* Fonction : formaterNumerique(strNum)
|
|
* @param strNum chaine a formatter
|
|
* Description : supprime tous les caract?res autre que num?rique
|
|
* date : 11.04.2007
|
|
**/
|
|
function formaterNumerique(strNum) {
|
|
var tmp = strNum;
|
|
var num = '';
|
|
for (var i = 0; i < strNum.length; i++) {
|
|
var c = strNum.substring(i,i+1);
|
|
if ( c <= '9' && c >= '0') {
|
|
num = num + c;
|
|
}
|
|
}
|
|
return num;
|
|
}
|
|
|
|
/**
|
|
* Modification du nom de domaine + nom de la webapp de http en https
|
|
* afe - 02.07.2003
|
|
* Permutation http a https
|
|
*/
|
|
function httpToHttps(){
|
|
tmp = "" + window.location;
|
|
tmp = tmp.substring(0,tmp.indexOf("/infogreffe/"));
|
|
tmp = tmp.replace("http://","https://");
|
|
return tmp;
|
|
}
|
|
|
|
/**
|
|
* Gestion de la feuille de style selon le navigateur
|
|
*
|
|
*/
|
|
function style(){
|
|
|
|
if (document.getElementById) { //IE5
|
|
document.write("<LINK REL=STYLESHEET TYPE='text/css' HREF='/infogreffe/styles/style_ie.css'>");
|
|
}
|
|
|
|
if ((document.all)&&(!document.getElementById)) { //IE4 seul
|
|
document.write("<LINK REL=STYLESHEET TYPE='text/css' HREF='/infogreffe/styles/style_ie.css'>");
|
|
}
|
|
if ((document.getElementById)&&(!document.all)) { //NS6
|
|
document.write("<LINK REL=STYLESHEET TYPE='text/css' HREF='/infogreffe/styles/style_netscape6.css'>");
|
|
}
|
|
if (document.layers) { //NS4.X seul
|
|
document.write("<LINK REL=STYLESHEET TYPE='text/css' HREF='/infogreffe/styles/style_netscape.css'>");
|
|
}
|
|
|
|
/* Navigateur = navigator.appName;
|
|
if (Navigateur == 'Netscape') {
|
|
document.write("<LINK REL=STYLESHEET TYPE='text/css' HREF='/infogreffe/styles/style_netscape.css'>");
|
|
}
|
|
if (Navigateur == 'Microsoft Internet Explorer') {
|
|
document.write("<LINK REL=STYLESHEET TYPE='text/css' HREF='/infogreffe/styles/style_ie.css'>");
|
|
}*/
|
|
}
|
|
|
|
/**
|
|
*
|
|
* Pour Changer le titre de la fenetre
|
|
*
|
|
*/
|
|
function changeTitreFenetre(nouveauTitre) {
|
|
document.title = nouveauTitre;
|
|
}
|
|
/**
|
|
* v?rifie que la valeur pass?e en param?tre est bien un num?ro d'identification(RCS) ou SIREN
|
|
* 9 chiffres successif
|
|
* afe
|
|
*/
|
|
function valideSiren(numeroSiren){
|
|
if (numeroSiren.length!=9){
|
|
return false;
|
|
}
|
|
else {
|
|
if (isNaN(numeroSiren)){
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* verifie que la valeur passee en parametre est bien un numero d'abonne
|
|
* 8 chiffres successif
|
|
* cro
|
|
*/
|
|
function valideNumAbonne(numero){
|
|
|
|
if (numero.length!=8){
|
|
return false;
|
|
}
|
|
else {
|
|
if (isNaN(numero)){
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
* afe - 6-01-2002
|
|
* Une version de la methode toFix supportee par l'ensemble des navigateurs
|
|
* La valeur passee doit etre une chaine au format Number, decimale representee par un point (.) et non une virgule a
|
|
* la francaise (,).
|
|
*/
|
|
|
|
function toFixValueDecimale(valeur){
|
|
if(!valeur.NaN){
|
|
chaineValeur = "" + valeur;
|
|
pos = chaineValeur.indexOf(".");
|
|
if (pos==-1){
|
|
return valeur+",00";
|
|
}
|
|
else {
|
|
partieEntiere = chaineValeur.substr(0,pos);
|
|
partieDecimale = chaineValeur.substr(pos+1);
|
|
switch(partieDecimale.length){
|
|
case 0:
|
|
partieDecimale = "00";
|
|
break;
|
|
case 1:
|
|
partieDecimale = partieDecimale + "0";
|
|
break;
|
|
case 2:
|
|
break;
|
|
default:
|
|
tabVal = new Array(3);
|
|
for (var i=0;i<3;i++){
|
|
tabVal[i] = partieDecimale.substr(i,1);
|
|
}
|
|
if (parseInt(tabVal[2])>5){
|
|
tailleChaine = (chaineValeur.substr(0,pos+3)).length;
|
|
tabValue = new Array(tailleChaine);
|
|
for (var k=0;k<tailleChaine;k++){
|
|
tabValue[k]=chaineValeur.substr(k,1);
|
|
}
|
|
|
|
retenue = false;
|
|
tabValue[tailleChaine-1] = parseInt(tabValue[tailleChaine-1])+1;
|
|
valToAdd = 1;
|
|
if (parseInt(tabValue[tailleChaine-1])==10){
|
|
tabValue[tailleChaine-1]=0;
|
|
retenue=true;
|
|
for (var j=tailleChaine-2;j>0;j--){
|
|
if (tabValue[j].indexOf(".")==-1){
|
|
if (retenue){
|
|
tabValue[j] = parseInt(tabValue[j]) + valToAdd;
|
|
if (tabValue[j]==10){
|
|
retenue=true;
|
|
tabValue[j]=0;
|
|
}
|
|
else retenue=false;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
tmp2 = "";
|
|
for (var z=0;z<tailleChaine;z++){
|
|
tmp2 = tmp2 + ((tabValue[z]=='.')?',':tabValue[z]);
|
|
}
|
|
return tmp2;
|
|
}
|
|
else partieDecimale = tabVal[0] + tabVal[1];
|
|
break;
|
|
}
|
|
}
|
|
|
|
valeurFormate = partieEntiere + "," + partieDecimale;
|
|
return valeurFormate;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* V?rifie qu'une chaine de caract?re pass?es en param?tre
|
|
* correspond bien ? un numero RCS :
|
|
* code statut sur 1 caract?re + 9 chiffres
|
|
* afe
|
|
*/
|
|
function valideNumeroRCS (chaine) {
|
|
rcsFormate = chaine;
|
|
tabCodeStatut = ['A','B','C','D','F','M','P','a','b','c','d','f','m','p'];
|
|
tailleRcsFormate = rcsFormate.length();
|
|
if (rcsFormate!=null){
|
|
if (tailleRcsFormate==10){
|
|
cs = rcsFormate.charAt(0);
|
|
csTrouve = false;
|
|
for (i= 0;i<tailleTabCodeStatut;i++){
|
|
if (cs==tabCodeStatut[i]){
|
|
csTrouve = true;
|
|
break;
|
|
}
|
|
}
|
|
if (csTrouve){
|
|
for (j=1;j<tailleRcsFormate;j++){
|
|
valeurChar = -1;
|
|
valeurChar = parseInt(rcsFormate.charAt(j));
|
|
if (valeurChar<0 && valeurChar>9){
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
else return false;
|
|
}
|
|
else return false;
|
|
}
|
|
else return false;
|
|
}
|
|
|
|
/*
|
|
Vérifie si un champ est vide
|
|
@param champ de formulaire (nom d'un objet dom de type input text)
|
|
Ne pas oublier de passer le nom du formulaire !!!!
|
|
Et ne pas l'appeller directement avec : formulaire.champ.value
|
|
Ex: estVide(monFormulaire.codePostal)
|
|
*/
|
|
function estVide(champ) {
|
|
if((trim(champ.value)).length == 0) {
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* D'aprés l'url positionne la liste en haut des pages sur le nom de la
|
|
* section ou se trouve l'utilisateur (membre et abonne uniquement)
|
|
*/
|
|
function selectIdListeNavigation(strUrl){
|
|
if ( strUrl.indexOf("afficherMesAchats.do")!=-1 ||
|
|
strUrl.indexOf("mesAchats")!=-1){
|
|
return 3;
|
|
}
|
|
if ( strUrl.indexOf("listeFacture.jsp")!=-1){
|
|
return 5;
|
|
}
|
|
if (strUrl.indexOf("debitEnCours")!=-1){
|
|
return 4;
|
|
}
|
|
if (strUrl.indexOf("afficherPortefeuilleAction")!=-1){
|
|
return 2;
|
|
}
|
|
if (strUrl.indexOf("afficherDetailsEvt")!=-1){
|
|
return 2;
|
|
}
|
|
if (strUrl.indexOf("afficherPortefeuilleMinitel")!=-1){
|
|
return 2;
|
|
}
|
|
if (strUrl.indexOf("preRemplisAbonnement")!=-1 ||
|
|
strUrl.indexOf("chargerMembre")!=-1 ||
|
|
strUrl.indexOf("profil/membre/Tprofil") != -1){
|
|
return 1;
|
|
}
|
|
}
|
|
/**
|
|
*
|
|
*/
|
|
function estValeurVide(valeur){
|
|
if (valeur.length==0) return true;
|
|
return false;
|
|
}
|
|
|
|
|
|
/*
|
|
V?rifie si un champ est num?rique
|
|
Ne pas oublier de passer le nom du formulaire !!!!
|
|
Ex: estNumerique(monFormulaire.codePostal)
|
|
*/
|
|
function estNumerique(champ) {
|
|
for (var k = 0; k < champ.value.length;k++) {
|
|
var c = champ.value.substring(k,k+1);
|
|
if (c > '9' || c < '0') {
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/*
|
|
*V?rifie si une chaine est num?rique
|
|
*Modif afe sur le nommage.
|
|
*/
|
|
function isNumeric(valeur) {
|
|
for (var k = 0; k < valeur.length;k++) {
|
|
var c = valeur.substring(k,k+1);
|
|
if (c > '9' || c < '0') {
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/*
|
|
Valider le code postal :
|
|
@param champ le champ du formulaire
|
|
@param sMsgLength Message en cas d'erreur sur la longueur
|
|
@param sMsgFormat Message en cas d'erreur de format
|
|
*/
|
|
function validerCodePostal(champ, sMsgLength, sMsgFormat) {
|
|
if (champ.value.length != 5) {
|
|
window.alert(sMsgLength);
|
|
champ.focus();
|
|
return false;
|
|
}
|
|
for (var k = 0; k < champ.value.length;k++) {
|
|
var c = champ.value.substring(k,k+1);
|
|
if (c > '9' || c < '0') {
|
|
window.alert(sMsgFormat);
|
|
champ.focus();
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/*
|
|
Valider le numero de voie de l adresse :
|
|
Ne pas oublier de passer le nom du formulaire !!!!
|
|
Ex: validerCodePostal(monFormulaire.numVoie)
|
|
@param sMsg Message en cas d'erreur de format
|
|
*/
|
|
function validerVoieNumero(champ, sMsg) {
|
|
for (var k = 0; k < champ.value.length;k++) {
|
|
var c = champ.value.substring(k,k+1);
|
|
if (c > '9' || c < '0') {
|
|
window.alert(sMsg);
|
|
champ.focus();
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
/*
|
|
Cette fonction verifie le format JJ/MM/AAAA saisi et la validite de la date
|
|
Ne pas oublier de passer le nom du formulaire !!!!
|
|
Ex: verifierDate(monFormulaire, dateJJ, dateMM, dateAA )
|
|
@param sMsgJourIncorrect Message si la donn?e jour est incorrecte
|
|
@param sMsgMoisIncorrect Message si la donn?e mois est incorrecte
|
|
@param sMsgAnneeIncorrecte Message si la donnée année est incorrecte
|
|
@param sMsgDateInvalide Message si la date saisie n'existe pas
|
|
@param sMsgApresLimite Message si la date est superieure a la date limite requise
|
|
*/
|
|
function verifierDate( form, dateJJ, dateMM, dateAA, sMsgJourIncorrect, sMsgMoisIncorrect, sMsgAnneeIncorrecte, sMsgDateInvalide, sMsgApresLimite) {
|
|
var amin=1900; // ann?e min
|
|
var amax=1999; // ann?e max
|
|
var ok=1;
|
|
|
|
var j = form.dateJJ.value;
|
|
var m = form.dateMM.value;
|
|
|
|
if (form.dateAA.value.length == 2) {
|
|
var a = 19 + form.dateAA.value;
|
|
}
|
|
else {
|
|
var a = form.dateAA.value;
|
|
}
|
|
|
|
|
|
if ( ((isNaN(j))||(j<1)||(j>31)) && (ok==1) ) {
|
|
window.alert(sMsgJourIncorrect); ok=0; form.dateJJ.focus();
|
|
}
|
|
if ( ((isNaN(m))||(m<1)||(m>12)) && (ok==1) ) {
|
|
window.alert(sMsgMoisIncorrect); ok=0; form.dateMM.focus();
|
|
}
|
|
if ( ((isNaN(a))||(a<amin)||(a>amax)) && (ok==1) ) {
|
|
window.alert(sMsgAnneeIncorrecte); ok=0; form.dateAA.focus();
|
|
}
|
|
|
|
if (ok==1) {
|
|
var d2=new Date(a,m-1,j);
|
|
j2=d2.getDate();
|
|
m2=d2.getMonth()+1;
|
|
a2=d2.getYear();
|
|
if (a2<=100) {a2=1900+a2}
|
|
if ( (j!=j2)||(m!=m2)||(a!=a2) ) {
|
|
window.alert(sMsgDateInvalide+" : "+j+"."+m+"."+a);
|
|
ok=0;
|
|
form.dateJJ.focus();
|
|
}
|
|
var vmax = a + m + j;
|
|
if (vmax > 19860331) {
|
|
window.alert(sMsgApresLimite);
|
|
ok=0;
|
|
form.dateJJ.focus();
|
|
}
|
|
}
|
|
if (ok == 0) return false;
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
Pour rappel, les popups se resize automatiquement apres chargement maintenant et doivent etre créer avec l'option scrollbar a on
|
|
Depuis la refonte, toutes les popup inclue la partie jsp includeSimpleTop.jsp qui
|
|
sur le onLoad() du document rappelle une methode javascript 'adapterDimensions('conteneur') avec le conteneur <div> global
|
|
afin de remettre ou cacher les scrollbars et positionner une taille correcte qqsoit l'ecran et la resolution.
|
|
|
|
@param page String URL du contenu de la page
|
|
@param nomFenetre (target ou nom de fenetre ? cr?er, cf <A target>)
|
|
@param largeur int par defaut (ne sert presque a rien avec le resize automatique)
|
|
@param hauteur int par defaut (ne sert presque a rien avec le resize automatique)
|
|
@param options String pouvant contenir plein de parametres d'affichage (nullable)
|
|
@param myWindow object window qui doit faire l'ouverture (nullable)
|
|
*/
|
|
function popupCentrerScroll(page, nomFenetre, largeur, hauteur, options, myWindow){
|
|
|
|
var top=(screen.availHeight-hauteur)/2;
|
|
var left=(screen.width-largeur)/2;
|
|
|
|
// Pour IE on diminue les largeur et hauteur
|
|
if (document.all) {
|
|
largeur = largeur - 5;
|
|
hauteur = hauteur - 10;
|
|
}
|
|
|
|
// pour un affichage adapter des popup en cas de 800x600
|
|
// en fonction des dimensions retrouvées dans la page palette.jsp
|
|
if( (screen.height == 600) && (largeur < 790) && (hauteur > 500) && (hauteur < 600) ){
|
|
var top = 5;
|
|
}
|
|
var parametre;
|
|
|
|
//------------tbr.pourNetscape6+-----------------
|
|
if ((document.getElementById)&&(!document.all)) {
|
|
if((screen.height == 600) && (largeur < 790) && (hauteur > 500) && (hauteur < 600) ){
|
|
var top = 5;
|
|
}
|
|
else{
|
|
var top=(screen.height-hauteur)/2;
|
|
var left=(screen.width-largeur)/2;
|
|
}
|
|
parametre = "top="+20+",left="+left+",width="+largeur+",height="+hauteur+",menubar=no,scrollbars=yes,resizable=yes,status=yes";
|
|
}
|
|
//------------tbr.pour les autres navigateurs-----
|
|
else {
|
|
parametre = "top="+top+",left="+left+",width="+largeur+",height="+hauteur+",directories=no,menubar=no,scrollbars=yes,resizable=yes,status=yes";
|
|
}
|
|
//------------tbr.fin test navigateur-------------
|
|
|
|
if (options != "") {
|
|
parametre += "," + options;
|
|
}
|
|
if (myWindow != null){
|
|
var fenetre = myWindow.open(page, nomFenetre, parametre);
|
|
} else {
|
|
// window objet global
|
|
var fenetre = window.open(page, nomFenetre, parametre);
|
|
}
|
|
return fenetre;
|
|
}
|
|
|
|
/**
|
|
* meme principe que la méthode précedente sans scrollbar
|
|
*/
|
|
function popupCentrerNoScroll(page, nomFenetre, largeur, hauteur, options, myWindow){
|
|
|
|
var top=(screen.availHeight-hauteur)/2;
|
|
var left=(screen.width-largeur)/2;
|
|
|
|
// Pour IE on diminue les largeur et hauteur
|
|
if (document.all) {
|
|
largeur = largeur - 5;
|
|
hauteur = hauteur - 10;
|
|
}
|
|
|
|
// pour un affichage adapter des popup en cas de 800x600
|
|
// en fonction des dimensions retrouv?es dans la page palette.jsp
|
|
if( (screen.height == 600) && (largeur < 790) && (hauteur > 500) && (hauteur < 600) ){
|
|
var top = 5;
|
|
}
|
|
var parametre;
|
|
|
|
//------------tbr.pourNetscape6+-----------------
|
|
if ((document.getElementById)&&(!document.all)) {
|
|
if((screen.height == 600) && (largeur < 790) && (hauteur > 500) && (hauteur < 600) ){
|
|
var top = 5;
|
|
}
|
|
else{
|
|
var top=(screen.height-hauteur)/2;
|
|
var left=(screen.width-largeur)/2;
|
|
}
|
|
parametre = "top="+20+",left="+left+",width="+largeur+",height="+hauteur+",menubar=no,scrollbars=no,resizable=yes,status=yes";
|
|
}
|
|
//------------tbr.pour les autres navigateurs-----
|
|
else {
|
|
parametre = "top="+top+",left="+left+",width="+largeur+",height="+hauteur+",directories=no,menubar=no,scrollbars=no,resizable=yes,status=yes";
|
|
}
|
|
//------------tbr.fin test navigateur-------------
|
|
|
|
if (options != "") {
|
|
parametre += "," + options;
|
|
}
|
|
if (myWindow != null){
|
|
var fenetre = myWindow.open(page, nomFenetre, parametre);
|
|
} else {
|
|
// window objet global
|
|
var fenetre = window.open(page, nomFenetre, parametre);
|
|
}
|
|
return fenetre;
|
|
}
|
|
|
|
|
|
function FormaterMontant(champ) {
|
|
|
|
if (champ != null)
|
|
{
|
|
var k = champ.indexOf(",");
|
|
if (k>=0)
|
|
{
|
|
var mnt1 = champ.substring(0,k);
|
|
var mnt2 = champ.substring(k+1,champ.length);
|
|
champ = mnt1 + "." + mnt2;
|
|
}
|
|
return champ;
|
|
}
|
|
return champ;
|
|
}
|
|
|
|
/*
|
|
valide le montant saisi via l'interface
|
|
*/
|
|
function validerMontant(champ) {
|
|
|
|
var k = champ.indexOf(',');
|
|
var l = champ.indexOf('.');
|
|
|
|
if (k>=0)
|
|
{
|
|
return validerMontantSeparateur(champ,',');
|
|
|
|
} else {
|
|
|
|
return validerMontantSeparateur(champ,'.');
|
|
}
|
|
}
|
|
|
|
/*
|
|
Valider montant en euro
|
|
Ne pas oublier de passer le nom du formulaire !!!!
|
|
Ex: validerTelephone(formulaire.telephone)
|
|
*/
|
|
function validerMontantSeparateur(champ,strg) {
|
|
|
|
var k = champ.indexOf(strg);
|
|
|
|
// si le montant saisi possede une virgule ou un point
|
|
if (k>=0) {
|
|
|
|
if (champ.length <2)
|
|
return false;
|
|
|
|
var mnt1 = champ.substring(0,k);
|
|
var mnt2 = champ.substring(k+1,champ.length);
|
|
//window.alert(" mnt1 " + mnt1 + "mnt2 " + mnt2);
|
|
if (mnt2.indexOf(strg)!=-1)
|
|
{
|
|
return false;
|
|
|
|
} else {
|
|
if (!isNumeric(mnt2)) {
|
|
return false;
|
|
} else if (mnt2.length > 2)
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
if (!isNumeric(mnt1))
|
|
{
|
|
return false;
|
|
}
|
|
|
|
} else {
|
|
if (!isNumeric(champ)) {
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
|
|
/*
|
|
Valider un numero de telephone
|
|
Ne pas oublier de passer le nom du formulaire !!!!
|
|
Ex: validerTelephone(formulaire.telephone)
|
|
@param sMsgLength Message en cas d'erreur sur la longueur
|
|
@param sMsgFormat Message en cas d'erreur sur le format
|
|
*/
|
|
function validerTelephone(champ, sMsgLength, sMsgFormat) {
|
|
|
|
if( champ.value.length < 8 ) {
|
|
window.alert(sMsgLength);
|
|
champ.focus();
|
|
return false;
|
|
}
|
|
|
|
for (var k = 0; k < champ.value.length;k++) {
|
|
var c = champ.value.substring(k,k+1);
|
|
if (c > '9' || c < '0') {
|
|
window.alert(sMsgFormat);
|
|
champ.focus();
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
* Retourne TRUE si le format de l'e-mail est correcte
|
|
* DEPRECATED use isEmailCorrect instead
|
|
*/
|
|
function isEmail(champ) {
|
|
if ( (champ.indexOf("@")>0) &&
|
|
(champ.indexOf(".")>=0) &&
|
|
(champ.lastIndexOf(".")<champ.length-1) &&
|
|
(champ.lastIndexOf(".")>champ.indexOf("@")+1) &&
|
|
(champ.indexOf("@") == champ.lastIndexOf("@")) &&
|
|
(champ.indexOf("..") == -1)
|
|
) {
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Verifie si un email est correct (non vide, test de format, test sur les caracteres interdits)
|
|
* @param champ La valeur a controler
|
|
* @param bChampObligatoire true indique qu'on effectue les controles du champ vide, false qu'on ne genere pas d'alerte si champ blanc
|
|
* @param sMsgVide Message d'alerte si le champ est vide
|
|
* @param sMsgFormat message en cas d'erreur de format
|
|
* @param sMsgCaracteresInterdit Message si le champ contient des caracteres interdits
|
|
**/
|
|
function isEmailCorrect(champ, bChampObligatoire, sMsgVide, sMsgFormat, sMsgCaracteresInterdits){
|
|
bRetour = true;
|
|
if (champ == null || trim(champ).length <1){
|
|
if (bChampObligatoire) {
|
|
alert(sMsgVide);
|
|
}
|
|
bRetour = !bChampObligatoire;
|
|
} else {
|
|
champ = trim(champ);
|
|
if (isEmail(champ) == false){
|
|
alert(sMsgFormat);
|
|
bRetour = false;
|
|
} else {
|
|
bRetour = CheckBadChar(champ, 'e', sMsgCaracteresInterdits);
|
|
}
|
|
}
|
|
return bRetour;
|
|
}
|
|
|
|
/**
|
|
* Verifie si c'est un num de tel portable (commencant par 06)
|
|
* Prend en parametre la valeur à tester et les messages d'erreurs (champ vide et format non valide)
|
|
*
|
|
* Exemple d'utilisation (cf selectPoseSurveillance.jsp) :
|
|
* isTelephonePortableCorrect(f.elements['telephonePortable'].value, "vous devez renseigner votre no de portable", "le format du num?ro de portable n'est pas valide")
|
|
*/
|
|
function isTelephonePortableCorrect(champ, sMsgEmpty, sMsgFormat){
|
|
// Utilisation d'une expression r?guli?re pour le contr?le du num?ro de t?l?phone
|
|
var telephonePortableMotif = /^06[0-9]{8}$/;
|
|
retour = true;
|
|
if (champ == null || trim(champ).length <1){
|
|
window.alert(sMsgEmpty);
|
|
retour = false;
|
|
}else if (champ != null && trim(champ).length > 0 && !telephonePortableMotif.test(trim(champ))){
|
|
window.alert(sMsgFormat);
|
|
retour = false;
|
|
}
|
|
return retour;
|
|
}
|
|
|
|
/**
|
|
* retire tous les espaces à gauche et à droite d'une chaine de caractères.
|
|
*/
|
|
function trim(chaine){
|
|
if (chaine==null)
|
|
return "";
|
|
if (!(typeof chaine == "string")) // returns object if it is not a string
|
|
return chaine;
|
|
return chaine.replace(/^\s*|\s*$/g,'');
|
|
}
|
|
|
|
|
|
function browserEcrisCookie(){
|
|
var expire = new Date();
|
|
var unAn = expire.getTime() + (365*24*60*60*1000);
|
|
expire.setTime(unAN);
|
|
document.cookie = "infoGRF=Test;expires=" + expire.toGMTString();
|
|
}
|
|
|
|
function browserAccepteCookie(){
|
|
var search = "infoGRF";
|
|
|
|
if (document.cookie.length > 0) {
|
|
offset = document.cookie.indexOf(search);
|
|
if (offset != -1) { // if cookie exists
|
|
return true;
|
|
}
|
|
else return false;
|
|
}
|
|
return false;
|
|
|
|
}
|
|
|
|
/* close la popup
|
|
et renvoie sur insertValue(ville, departement)
|
|
*/
|
|
function closeAndInsertValue(ville, departement){
|
|
close();
|
|
insertValue(ville, departement);
|
|
}
|
|
|
|
/*
|
|
*
|
|
*/
|
|
function insertValue(ville, departement){
|
|
if(window.opener.document.rechercheListeActualiteForm != null){
|
|
if ( window.opener.document.rechercheListeActualiteForm.commune != null ) {
|
|
// dans la page actifs a ceder cet element n'existe pas
|
|
window.opener.document.rechercheListeActualiteForm.commune.value=ville;
|
|
}
|
|
window.opener.document.rechercheListeActualiteForm.departement.value=departement;
|
|
}
|
|
if(window.opener.document.rechercheRegComForm != null){
|
|
window.opener.document.rechercheRegComForm.elements['commune'].value=ville;
|
|
window.opener.document.rechercheRegComForm.elements['departement'].value=departement;
|
|
}
|
|
if(window.opener.document.reportCommandeForm != null){
|
|
//dans ce cas la le numero de greffe est stocke dans le departement
|
|
window.opener.document.reportCommandeForm.elements['commune'].value=ville;
|
|
window.opener.document.reportCommandeForm.elements['numeroGreffe'].value=departement;
|
|
}
|
|
if(window.opener.document.GageSansDepossessionForm != null){
|
|
f = window.opener.document.GageSansDepossessionForm;
|
|
f.elements['numeroGreffe'].value=departement;
|
|
|
|
var radiosTypesConstituants = f.elements['constituant'];
|
|
var selectedTypeConstituant = 'PPI';
|
|
for (i=0 ; i<radiosTypesConstituants.length ; i++) {
|
|
var current = radiosTypesConstituants[i];
|
|
if (current.checked) {
|
|
selectedTypeConstituant = current.value;
|
|
}
|
|
}
|
|
f.elements['commune'+selectedTypeConstituant].value=ville;
|
|
}
|
|
}
|
|
|
|
function divVisible(elementid){
|
|
chg = elementid.style;
|
|
largeur = window.top.screen.width;//screen.availWidth;
|
|
hauteur = window.top.screen.height;//screen.availHeight;
|
|
|
|
chg.left = "35%";
|
|
chg.top = "50%";
|
|
|
|
chg.position = "absolute";
|
|
chg.visibility = "visible";
|
|
}
|
|
|
|
function divInvisible(elementid){
|
|
chgt = document.getElementById(elementid).style;
|
|
chgt.visibility = "hidden";
|
|
}
|
|
|
|
/* ------------ Nouvelles fonctions suite a refonte ergonomique ------- */
|
|
|
|
/* V?rifie que le date pass?e comme string est conforme au format JJ/MM/DDDD et est valide (jour/mois)
|
|
* @return true si la date est valide, false si la date est incorrecte
|
|
*/
|
|
function isDateValid(d){
|
|
if (d == "") return false;
|
|
e = new RegExp("^[0-9]{1,2}\/[0-9]{1,2}\/([0-9]{4})$");
|
|
if (!e.test(d)) return false;
|
|
// split de la date en trois entiers
|
|
j = parseInt(d.split("/")[0], 10); // jour
|
|
m = parseInt(d.split("/")[1], 10); // mois
|
|
a = parseInt(d.split("/")[2], 10); // ann?e
|
|
// définition des nombres de jours par mois (ann?es bisextiles comprises)
|
|
if (a%4 == 0 && a%100 !=0 || a%400 == 0) fev = 29;
|
|
else fev = 28;
|
|
nbJours = new Array(31,fev,31,30,31,30,31,31,30,31,30,31);
|
|
// retourne vrai si tout est correct
|
|
return ( m >= 1 && m <=12 && j >= 1 && j <= nbJours[m-1] );
|
|
}
|
|
|
|
/* Permet d'afficher les messages d'erreurs
|
|
* Cache les onglets
|
|
*/
|
|
function showError (msgErreur) {
|
|
showElement("struct-erreur");
|
|
document.getElementById("struct-erreur").innerHTML=msgErreur;
|
|
}
|
|
|
|
/* Cache l'élément dont l'id est passé en paramètre (utiliser de préférence sur un DIV)
|
|
*/
|
|
function hideElement(id) {
|
|
if (document.getElementById(id)!=null) {
|
|
document.getElementById(id).style.visibility='hidden';
|
|
document.getElementById(id).style.display='none';
|
|
}
|
|
}
|
|
|
|
/* (Re)montre l'element dont l'id est passe en parametre (utiliser de preference sur un DIV)
|
|
*/
|
|
function showElement(id) {
|
|
if (document.getElementById(id)!=null) {
|
|
document.getElementById(id).style.visibility='visible';
|
|
document.getElementById(id).style.display='block';
|
|
}
|
|
}
|
|
|
|
/*
|
|
* Resize automatique des popups. Compatible IE, netscape, firefox et safari.
|
|
* Adapte la taille d'une popup a son contenu.
|
|
* @param nomConteneur id du DIV qui doit contraindre la taille de la fenetre
|
|
* @param scrollbar à true pour forcer la présence des scrollbar. Utile dans le
|
|
* cas de la fiche entreprise en popup. On reçoit null si l'includetop de préciser rien.
|
|
*/
|
|
function adapterDimensions(nomConteneur, forceScrollbar) {
|
|
if (!document.getElementById(nomConteneur))
|
|
return;
|
|
var hauteurMax = screen.height - 150;
|
|
var winWidth=document.getElementById(nomConteneur).offsetWidth;
|
|
var winHeight=document.getElementById(nomConteneur).offsetHeight;
|
|
var offsetHauteur = 0;
|
|
var offsetLargeur = 0;
|
|
var offsetScrollbar = 0;
|
|
var agt=navigator.userAgent.toLowerCase();
|
|
|
|
if (winHeight > hauteurMax || forceScrollbar == true) {
|
|
if (winHeight > hauteurMax) {
|
|
winHeight = hauteurMax;
|
|
}
|
|
if (document.all) {
|
|
offsetScrollbar = 17;
|
|
} else {
|
|
offsetScrollbar = 16;
|
|
}
|
|
}
|
|
|
|
if (agt.indexOf("msie 7.0", 0) > 0) {
|
|
offsetLargeur = 30;
|
|
offsetHauteur = 84;
|
|
}else if (document.all) {
|
|
offsetLargeur = 8;
|
|
offsetHauteur = 32+23; // 23 = statusbar
|
|
} else if (agt.indexOf("firefox", 0) > 0) {
|
|
offsetLargeur = 9;
|
|
offsetHauteur = 50;
|
|
} else if (agt.indexOf("netscape", 0) > 0) {
|
|
offsetLargeur = 8;
|
|
offsetHauteur = 36;
|
|
} else if (agt.indexOf("safari", 0) > 0) {
|
|
offsetLargeur = 12;
|
|
offsetHauteur = 40;
|
|
}
|
|
|
|
if ( window.moveTo ) {
|
|
var left=(screen.width-winWidth)/2;
|
|
var top=(screen.availHeight-winHeight)/2;
|
|
window.moveTo(left,top);
|
|
}
|
|
|
|
if ( window.resizeTo ) {
|
|
var w = winWidth+offsetLargeur+offsetScrollbar;
|
|
var h = winHeight+offsetHauteur;
|
|
window.resizeTo(w,h);
|
|
}
|
|
|
|
// On affiche ou pas la scrollbar
|
|
if (offsetScrollbar==0) {
|
|
//alert('hidden');
|
|
document.body.style.overflow='hidden';
|
|
} else {
|
|
document.body.style.overflow='';
|
|
//alert('overflow = ' + document.body.style.overflow);
|
|
}
|
|
if (document.getElementById(nomConteneur).style.backgroundColor && document.getElementById(nomConteneur).style.backgroundColor != "")
|
|
document.body.style.backgroundColor = document.getElementById(nomConteneur).style.backgroundColor;
|
|
else
|
|
document.body.style.backgroundColor = "#f1f1f1";
|
|
}
|
|
|
|
/* ------------ Fonctions utilisées par la taglib CheckJs ------- */
|
|
function __trim(f) {
|
|
if (f.value!=null)
|
|
f.value = f.value.replace(/^\s*|\s*$/g,'');
|
|
}
|
|
|
|
function __fSiren(f) {
|
|
if (f.value!=null)
|
|
f.value = f.value.replace(/\s/g,'');
|
|
}
|
|
|
|
/* ------------------------------------------------------------------------------------------------------
|
|
Cross browser Marquee script- ? Dynamic Drive (www.dynamicdrive.com)
|
|
For full source code, 100's more DHTML scripts, and Terms Of Use, visit http://www.dynamicdrive.com
|
|
Credit MUST stay intact
|
|
*/
|
|
|
|
var actualwidth='';
|
|
var cross_marquee, ns_marquee;
|
|
var copyspeed;
|
|
var pausespeed;
|
|
var iedom=document.all||document.getElementById;
|
|
|
|
function marquee_populate(){
|
|
if (iedom){
|
|
cross_marquee=document.getElementById? document.getElementById("iemarquee") : document.all.iemarquee;
|
|
cross_marquee.style.left=parseInt(marqueewidth)+8+"px";
|
|
cross_marquee.innerHTML=marqueecontent;
|
|
actualwidth=document.all? temp.offsetWidth : document.getElementById("temp").offsetWidth;
|
|
} else if (document.layers){
|
|
ns_marquee=document.ns_marquee.document.ns_marquee2;
|
|
ns_marquee.left=parseInt(marqueewidth)+8;
|
|
ns_marquee.document.write(marqueecontent);
|
|
ns_marquee.document.close();
|
|
actualwidth=ns_marquee.document.width;
|
|
}
|
|
lefttime=setInterval("marquee_scrollmarquee()",40);
|
|
}
|
|
|
|
function marquee_scrollmarquee(){
|
|
if (iedom){
|
|
if (parseInt(cross_marquee.style.left)>(actualwidth*(-1)+8))
|
|
cross_marquee.style.left=parseInt(cross_marquee.style.left)-copyspeed+"px";
|
|
else
|
|
cross_marquee.style.left=parseInt(marqueewidth)+8+"px";
|
|
} else if (document.layers){
|
|
if (ns_marquee.left>(actualwidth*(-1)+8))
|
|
ns_marquee.left-=copyspeed;
|
|
else
|
|
ns_marquee.left=parseInt(marqueewidth)+8;
|
|
}
|
|
}
|
|
|
|
function marquee_init(){
|
|
marqueespeed=(document.all)? marqueespeed : Math.max(1, marqueespeed-1); //slow speed down by 1 for NS
|
|
copyspeed=marqueespeed;
|
|
pausespeed=(pauseit==0)? copyspeed: 0;
|
|
if (iedom)
|
|
document.write('<span id="temp" style="visibility:hidden;position:absolute;top:-100px;left:-9000px">'+marqueecontent+'</span>');
|
|
window.onload=marquee_populate;
|
|
if (iedom||document.layers){
|
|
with (document){
|
|
document.write('<table border="0" cellspacing="0" cellpadding="0"><td>');
|
|
if (iedom){
|
|
write('<div style="position:relative;width:'+marqueewidth+';height:'+marqueeheight+';overflow:hidden">');
|
|
write('<div style="position:absolute;width:'+marqueewidth+';height:'+marqueeheight+';background-color:'+marqueebgcolor+'" onMouseover="copyspeed=pausespeed" onMouseout="copyspeed=marqueespeed">');
|
|
write('<div id="iemarquee" style="position:absolute;left:0px;top:0px"></div>');
|
|
write('</div></div>');
|
|
} else if (document.layers){
|
|
write('<ilayer width='+marqueewidth+' height='+marqueeheight+' name="ns_marquee" bgColor='+marqueebgcolor+'>');
|
|
write('<layer name="ns_marquee2" left=0 top=0 onMouseover="copyspeed=pausespeed" onMouseout="copyspeed=marqueespeed"></layer>');
|
|
write('</ilayer>');
|
|
}
|
|
document.write('</td></table>');
|
|
}
|
|
}
|
|
}
|
|
|
|
/*
|
|
* Propose d'ouvrir de différentes manière une nouvelle fenêtre :
|
|
* @param int N° de la solution choisie
|
|
* @param String URL de la page cible
|
|
*/
|
|
function ouvrirNouvellePage(solution, url){
|
|
switch (solution) {
|
|
case 1 :
|
|
// Solution 1 : charger l'URL dans une nouvelle popup et fermer celle du Login
|
|
window.open(url);
|
|
window.close();
|
|
break;
|
|
case 2 :
|
|
// Solution 2 : charger l'URL dans la popup du Login
|
|
window.location = url;
|
|
break;
|
|
case 3 :
|
|
// Solution 3 : charger l'URL dans la frame principale et fermer la popup du login
|
|
window.opener.location = url;
|
|
window.close();
|
|
break;
|
|
}
|
|
}
|
|
|
|
/* ------------------------------------------------------------------------------------------------------
|
|
* End of cross-browser marquee script
|
|
*/
|
|
|
|
|