2009-02-27 14:49:40 +00:00

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
*/