<!--
// ***************************************************
// *********** VARIABLES "GLOBALES" DES PAGES ********
// ***************************************************
// Message pour confirmer la fermeture de la fenetre d'inscription.
// Une fermeture provoque l'interruption du process
// et la perte des donnees saisies
var msgccel = "Are you sure you want to cancel?\n(Data could be lost)";
function switchmsg(idlg) {
  var msgccellg = new Array("Are you sure you want to cancel?\n(Data could be lost)",
                            "Abandonner ?\n(Les données seront perdues)",
                            "Cancelar ?\n(Se perderán los datos)")
  switch(idlg) {
  	case 'EN' : return msgccellg[0]; break;
  	case 'FR' : return msgccellg[1]; break;
  	case 'SP' : return msgccellg[2]; break;
  }
}

// ***************************************************
// ******** NAVIGATEURS / PARAMETRES MATERIELS *******
// ***************************************************
var brw, brwver, pltf, brwOK;

if (navigator.appName.indexOf('Netscape') != -1)
  brw="NSc";
else
  brw=(navigator.appName.indexOf('Microsoft') != -1) ? "IEx" : "Oth";
if (navigator.userAgent.indexOf('Firefox') != -1) brw="FFx";
brwver = parseInt(navigator.appVersion);
if ((brw=="IEx") && (brwver == 4)) {
  var p = navigator.appVersion.indexOf("MSIE");
  var vers = navigator.appVersion.substring(p+5);
  brwver = parseFloat(vers);
}
if (navigator.platform.indexOf("Win") != -1)
  pltf="PC";
else
  pltf=(navigator.platform.indexOf("Mac") != -1) ? "Mc" : "Ot";
brwOK = false;
if (((brw=="NSc") && (brwver>=3)) ||
    ((brw=="IEx") && (brwver>=4)) ||
    ((brw=="FFx") && (brwver>=5)))
      brwOK = true;

// ***************************************************
// ********** FONCTIONS GENERIQUES POUR CALQUES ******
// ***************************************************
// Les 2 fonctions suivantes sont extraites de Macromedia Dreamweaver
// Elles sont utilisees sans modification de code
// by courtesy of Macromedia Inc.
function MM_findObj(n, d) { //v4.0
  var p, i, x;
  if (!d)
     d = document;
  if ((p = n.indexOf("?")) > 0 && parent.frames.length) {
     d = parent.frames[n.substring(p+1)].document;
     n = n.substring(0,p)
  }
  if(!(x = d[n]) && d.all) x = d.all[n];
  for (i=0; !x && i < d.forms.length; i++)
     x = d.forms[i][n];
  for (i=0; !x && d.layers && i < d.layers.length; i++)
     x = MM_findObj(n,d.layers[i].document);
  if (!x && document.getElementById)
     x = document.getElementById(n);
  return x;
}

function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true)
    with (navigator) {
       if ((appName=="Netscape") && (parseInt(appVersion)==4)) {
         document.MM_pgW=innerWidth;
         document.MM_pgH=innerHeight;
         onresize=MM_reloadPage;
       }
    }
  else
    if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH)
      location.reload();
}

MM_reloadPage(true);

// ***************************************************
// *********************** SHOW / HIDE CALQUES *******
// ***************************************************
// variables globales utilisees dans les fonctions de calque
var bl;	            // "objet" sur lequel s'applique le calque delivery adress

// ****** fonctions conc le calque numero de membre
function initml() {
  if ((o=MM_findObj('calqml'))!=null) {
    bl=(document.layers)?o:o.style;
/*    bl.visibility = 'hidden'; */
    bl.display = 'none';
  }
  else bl=null;
}

function showml() {
/*  if (bl!=null) bl.visibility = 'visible'; */
  if (bl!=null) bl.display = 'block';
}

function hideml() {
/*  if (bl!=null) bl.visibility = 'hidden'; */
  if (bl!=null) bl.display= 'none';
}

// ***************************************************
// ***** Parametrage de l'autosoumission *************
// ***************************************************
// transfere des param ordonnes d'autosoumission php
// sur une insctruction javascript
// a utiliser premierement pour les listes declenchant une action
function send(f, asmfield, noasm, parmfield, valparm) {
  f.elements[asmfield].value = noasm;
  if (parmfield != "") f.elements[parmfield].value = valparm;
  f.submit();
}

// ***************************************************
// ***** Impression de la page ***********************
// ***************************************************
// les boutons sont rendus invisibles le temps de l'impression
function printPage()
{
//    hidebutt();
    // Do print the page
    if (typeof(window.print) != 'undefined') window.print();
//    showbutt();
}

// ***************************************************
// ********** OUVERTURE FENETRE PAR-DESSUS ***********
// ***************************************************
var fen;
fen = null;

var attr;
attr = "dependent=yes,scrollbars=yes,directories=no,menubar=no,status=no,";
attr+= "toolbar=no,hotkeys=no,location=no,titlebar=no,resizable=yes,";
attr+= "width=700,height=600,";

function pop(URL) {
  attr+= "";
  fen = window.open(URL, "wdw", attr);
  fen.focus();  
}

function sizeXY(max_wdth, max_hgth, iniX, iniY) {
  if (brwOK) {
      var larg = (screen.availWidth < max_wdth + iniX) ? screen.availWidth - iniX : max_wdth;
      var haut = (screen.availHeight < max_hgth + iniY) ? screen.availHeight - iniY : max_hgth;
      window.moveTo(iniX, iniY);
      window.resizeTo(larg, haut-5);
  }
}

// ***************************************************
// ** VARIABLES GLOBALES POUR VERIF INTEGRITE SAISIE *
// ******************* NEW VERSION *******************
// ***************************************************
// expressions régulières utilisées pour vérifier contenu données saisies
// tous les signes toleres comme separateurs dans numero tel => pour filtrage
  var modNum1 = new RegExp('[\.\ \,]', 'g');
// pas de chiffres, pour tester par négation si autre chose que des chiffres
  var modNum2 = new RegExp('[^0-9]');
// seulement chiffres et lettres
  var modAlph3 = new RegExp('[^a-zA-Z0-9]');
// caractères autorisés dans adresse mail ou URL Website
// imperatif: mettre - a la fin sinon le - dans adr email pas permis!
// carac echapp \ pas indispensable malgre indications de la doc
  var regAlph1 = new RegExp('[^a-zA-Z0-9\._\-]');
  var regAlph1bis = new RegExp('[^a-zA-Z0-9\.\-]');
// caractéres alpha restreints pour tld dans domain name adresse mail
  var regAlph2 = new RegExp('[^a-zA-Z]');
// caract non autorisés dans adresse mail ou URL Website
  var regpb1 = '"';
  var regpb2 = "'";
  var regpb3 = ' ';
// caract non autorisés dans adresse mail
  var regpb4 = '/';

// ***************************************************
// *** VERIF INTEGRITE ADRESSE MAIL / NEW VERSION ****
// ***************************************************
// vérifie l'intégrité d'une adresse mail
function verifmel(ch) {
  if (ch.indexOf(regpb1) != -1) return false;
  if (ch.indexOf(regpb2) != -1) return false;
  if (ch.indexOf(regpb3) != -1) return false;
  if (ch.indexOf(regpb4) != -1) return false;
// recherche caract @
  var pos = ch.indexOf("@");
// si existe dans la chaine => découpage en chaine avant/apres
  if (pos > 0 && pos < ch.length) {
    var part1 = ch.substr(0, pos);
    var part2 = ch.substr(pos+1);
    if (part2.indexOf("@") != -1) return false;  // si 2° occ de @ => erreur
  } else return false;                           // si pas de caract @
  if (regAlph1.test(part1)) return false;        // si autre chose que alphanum ds part1
// recherche . dans 2° partie
  pos = part2.lastIndexOf(".");
  if (pos > 0 && pos < part2.length) {
    var part21 = part2.substr(0, pos);           // avant tld
    var part22 = part2.substr(pos+1);            // tld
  } else return false;
  if (regAlph1bis.test(part21)) return false;    // si autre chose que alphanum ds av tld
  if (part21.length < 2) return false;           // si longueur av tld < 2 caract
  if (regAlph2.test(part22)) return false;       // si autre chose que alpha dans tld
  if (part22.length < 2) return false;           // si longueur tld < 2 caract
  return true;
}

// ***************************************************
// ***** Fonction portee globale verif integrite *****
// ***************************************************
// supprime espaces devant et derriere chaine caracteres
// Thanks Martin Honnen, Vijay Solanki, http://faqts.com/
function trimString (str) {
  str = this != window? this : str;
  return str.replace(/^\s+/g, '').replace(/\s+$/g, '');
}

// ***************************************************
//-->
