var globale_plateforme = navigator.userAgent.toLowerCase();
var globale_est_mac    = (globale_plateforme.indexOf("mac")!=-1);

// A développer (pour d'autres navigateurs, pour les num de version)
var globale_est_Netscape=(navigator.appName == "Netscape" );
var globale_est_IE=(navigator.appName.substring(0,4) == "Micr");

function alertSicav(codeMsg) {
	var msg ="";

	switch (codeMsg) {
		case "CO":  msg = "Un champs obligatoire n'est pas renseigné"; break;
		case "CIV": msg = "Veuillez sélectionner votre civilité"; break;
		case "NaN": msg = "Ce champs doit être de type numérique, sans point ni virgule !"; break;
		case "CON": msg = "Le numéro du contrat doit être un numérique"; break;
		case "CPN": msg = "Le code postal doit être numérique"; break;
		case "TEF": msg = "Un numéro de téléphone ou de fax ne peut comporter que des chiffres, des espaces, des points, le symbole + ou des parenthèses !"; break;
		case "TL":  msg = "Un numéro de téléphone ou de fax doit comporter au moins 10 caractères!"; break;
		case "DATE": msg = "La date initiale doit être inférieure à la date finale!"; break;
		default: msg = "code de message <" + codeMsg  + "> inconnu !"; break;
	}
	alert(msg);
	return;
}

//************************************************************************
// renvoi true si le control est de type numérique, sinon false
//************************************************************************

function IsNumeric(control)
//vérifie si la chaine envoyée est de type numérique
{
var ValidChars = "0123456789";
var IsNumber=true;
var Char;

sText=control.value;

for (i = 0; i < sText.length && IsNumber == true; i++)
{
Char = sText.charAt(i);
if (ValidChars.indexOf(Char) == -1)
{
IsNumber=false;
alertSicav("NaN");      
control.value = "";     
control.focus();
return false;           

}                
}                
return true; 

}       


function isNumerique(control) {
	if (isNaN(control.value)) {
    	alertSicav("NaN");
    	control.value = "";
		control.focus();
    	return false;
	}
  	else return true;
}

//************************************************************************
// renvoi true si le control est renseigné, sinon false
//************************************************************************
function isObligatoireRempli(control) {
	if (trim(control.value)=="") {
    	alert("Merci de bien vouloir remplir tous les champs obligatoires du formulaire.");
    	control.focus();
		return false;
	}
	else return true;
}

//************************************************************************
// controle la taille maxi d'un champs
//************************************************************************
function SupMaxLength(control, maxlen) {
	if (trim(control.value).length>maxlen) {
		alert("La taille maximum de ce champs est de " + maxlen + " caract\u00E8res. (Taille actuelle : "+trim(control.value).length+")");
		control.focus();
		return false;
	  }
	  else return true;
}

//************************************************************************
// retourne vrai si la chaine comporte que des chiffres, des espaces,
// des points ou des parenthèses, sinon false
//************************************************************************
function isTelephoneFax(control) {
	var lettre;
	var masque = "0123456789(). +-";
	var i;

	if((control.value.length<10)&&(control.value.length>0)) {
			alertSicav("TL");
			//control.value="";
			control.focus();
			return false;
	}
	for(i=0; i<control.value.length; i++) {
		lettre = control.value.substring(i,i+1);
		if  (masque.indexOf(lettre)==-1) {
			alertSicav("TEF");
			//control.value="";
			control.focus();
			return false;
		}
	}
	return true;
}

//************************************************************************
// efface les blancs en début et fin de chaine
//************************************************************************
function trim(str) {
	var tmp = "";
	if (str) tmp = str;

	var i = tmp.length;

	while (i>0 && tmp.charAt(0)==" ") {
		tmp= tmp.substring(1, i);
		i= tmp.length;
	}
	
	while (i>0 && tmp.charAt(i-1)==" ") {
		tmp= tmp.substring(0, i-1);
		i= tmp.length;
	}
	return tmp;
}

//************************************************************************
// demande une confirmation lors d'une suppresion

//************************************************************************
function ConfirmerSuppression() {
	var agree = false ;
	
	if (globale_est_mac && globale_est_Netscape) {
		agree = confirm("Confirmer la suppression ?");
	} else {
		agree = confirm("Êtes vous sûr(e) de vouloir supprimer ?");
	}
	return (agree) ;
}


//************************************************************************
// vérifie que l'email saisi par l'utilisateur est correct syntaxiquement
//************************************************************************
//
// PAS TOUT COMPRIS LA...
//
function emailCheck (email) {
	var emailStr = email.value ;
	if ((trim(emailStr)=="")) {
		return false;
	}
	
	var emailPat=/^(.+)@(.+)$/
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
	var validChars="\[^\\s" + specialChars + "\]"
	var quotedUser="(\"[^\"]*\")"
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
	var atom=validChars + '+'
	var word="(" + atom + "|" + quotedUser + ")"
	
	//Possibilité d'avoir un nom finissant par un "." :
	//var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
	var userPat=new RegExp("^" + word + "(\\." + "(" + word + ")*" + ")*$")
	
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
	var matchArray=trim(emailStr).match(emailPat)
	
	if (matchArray==null) {
		alert("Votre adresse email est incorrecte (ex: MonAdress@LeDomaine.fr )")
		email.focus();
		return false;
	}
	var user=matchArray[1]
	var domain=matchArray[2]
	
	if (user.match(userPat)==null) {
		// user is not valid
		alert("Votre adresse email est incorrecte.")
		return false
	}
	
	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) {
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				alert("Votre adresse mail est incorrecte")
				return false
			}
		}
		return true
	}
	
	var domainArray=domain.match(domainPat)
	if (domainArray==null) {
		alert("votre adresse email est incorrecte")
		return false
	}
	
	var atomPat=new RegExp(atom,"g")
	var domArr=domain.match(atomPat)
	var len=domArr.length
	
	/* Enleve test partie domaine, peut donner des problèmes*/
	if (domArr[domArr.length-1].length<2 ||
		domArr[domArr.length-1].length>3) {
		alert("L'adresse doit se terminer par un nom de domaine en trois lettres, ou un pays ")
		return false
	}
	
	if (len<2) {
		var errStr="Votre nom de domaine est incorrect"
		alert(errStr)
		return false
	}
	
	return true;
}

//************************************************************************
// cree une date AAAAMMJJ a partir d'une date JJ/MM/AAAA
//************************************************************************
function dateFromJJMMAAAAToAAAAMMJJ(sDate) {
	var theJour,theMois,theAnnee;
	var theStepA,theStepB;

	theStepA = sDate.indexOf("/");
	theJour  = sDate.substring(0, theStepA);
	theStepA = theStepA+1;
	theStepB = sDate.indexOf("/", theStepA);
	theMois  = sDate.substring(theStepA, theStepB);
	theStepA = theStepB+1;
	theAnnee = sDate.substring(theStepA, sDate.length);
	return theAnnee + theMois + theJour;
}

function dateFromJJMMAAAAToAAAAMMJJ2(sDate) {
	var theJour,theMois,theAnnee;
	var theStepA,theStepB;

	theStepA = sDate.indexOf("/");
	theAnnee  = sDate.substring(0, theStepA);
	theStepA = theStepA+1;
	theStepB = sDate.indexOf("/", theStepA);
	theMois  = sDate.substring(theStepA, theStepB);
	theStepA = theStepB+1;
	theJour = sDate.substring(theStepA, sDate.length);
	return theAnnee + theMois + theJour;
}


//************************************************************************
// compare 2 dates
//************************************************************************
function compareDate(sDate1, sDate2) {
	var sDateInv1, sDateInv2

	sDateInv1 = dateFromJJMMAAAAToAAAAMMJJ(sDate1);
	sDateInv2 = dateFromJJMMAAAAToAAAAMMJJ(sDate2);

	if (sDateInv1 < sDateInv2) {
		return -1;
	} else if (sDateInv1 > sDateInv2) {
		return 1;
	} else {
		return 0;
	}
}

function compareDate2(sDate1, sDate2) {
	var sDateInv1, sDateInv2

	sDateInv1 = dateFromJJMMAAAAToAAAAMMJJ2(sDate1);
	sDateInv2 = dateFromJJMMAAAAToAAAAMMJJ2(sDate2);

	if (sDateInv1 < sDateInv2) {
		return -1;
	} else if (sDateInv1 > sDateInv2) {
		return 1;
	} else {
		return 0;
	}
}



//************************************************************************
// Verifie si l'utilisateur saisit bien une date au format DD/MM/YYYY
//************************************************************************
function isDateJJMMAAAA(aJJ,aMM,aAAAA,sDate) {
    var longueur = sDate.length;
    if(longueur>0){
		if (longueur != 10) {
			alert('Veuillez saisir la date au format JJ/MM/AAAA !');
			return false;
		} else if (aMM==1 || aMM==3 || aMM==5 || aMM==7 || aMM==8 || aMM==10 || aMM==12) {
			if (aJJ<1 || aJJ>31) {
				alert("la date " + sDate + " est invalide!");
				return false;
			} else
				return true;
		} else if (aMM==4 || aMM==6 || aMM==9 || aMM==11) {
			if (aJJ<1 || aJJ>30) {
				alert("la date " + sDate + " est invalide!");
				return false;
			} else
				return true;
		} else if (aMM==2) {
			var nbj =28;
			if (isBissextile(aAAAA)) nbj=29;
	
			if (aJJ<1 || aJJ>nbj) {
				alert("la date " + sDate + " est invalide!");
				return false;
			} else
				return true;
		} else {
			alert("la date " + sDate + " est invalide!");
			return false;
		}
		if (isNaN(aAAAA) || aAAAA < 1900 || aAAAA > 2100) {
			alert("l'ann\u00E9e de la date " + sDate + " doit \u00EAtre comprise entre 1900 et 2100!");
			return false;
		}
	}
}

/*
* renvoie true si l'annee en parametre est bissextile
*/
function isBissextile(annee) {
	if (annee % 4 == 0) {
		if ((annee % 100 ==0) && (annee%400!=0))
			return false;
		else
			return true;
	} else
		return false;
}

//************************************************************************
// Verifie si l'utilisateur saisit bien une date au format DD/MM/YYYY
//************************************************************************
function isDate(sDate) {
	var theStepA,theStepB;
	var theJour,theMois,theAnnee;
	var sDateCopy = sDate;

	theStepA = sDate.indexOf("/");
	theJour  = sDate.substring(0, theStepA);
	theStepA = theStepA+1;
	theStepB = sDate.indexOf("/", theStepA);
	theMois  = sDate.substring(theStepA, theStepB);
	theStepA = theStepB+1;
	theAnnee = sDate.substring(theStepA, sDate.length);

	return (isDateJJMMAAAA(parseInt(theJour,10), parseInt(theMois,10), parseInt(theAnnee,10), sDateCopy));
}

function isDate2(sDate) {
	var theStepA,theStepB;
	var theJour,theMois,theAnnee;
	var sDateCopy = sDate.value;

	theStepA = sDate.value.indexOf("/");
	theJour  = sDate.value.substring(0, theStepA);
	theStepA = theStepA+1;
	theStepB = sDate.value.indexOf("/", theStepA);
	theMois  = sDate.value.substring(theStepA, theStepB);
	theStepA = theStepB+1;
	theAnnee = sDate.value.substring(theStepA, sDate.value.length);

	//return (isDateJJMMAAAA(parseInt(theJour,10), parseInt(theMois,10), parseInt(theAnnee,10), sDateCopy));
	if(sDate.value.length!=0)
	{
		if(!(isDateJJMMAAAA(parseInt(theJour,10), parseInt(theMois,10), parseInt(theAnnee,10), sDateCopy)))
		{
			sDate.focus();
			return;	
		}
	}
}


function isHour(sHour) {
	var theStepA,theStepB;
	var theHour,theMinute;
	var sHourCopy = sHour;

	theStepA = sHour.indexOf(":");
	theHour  = sHour.substring(0, theStepA);
	theStepA = theStepA+1;
	theMinute = sHour.substring(theStepA, sHour.length);

	return (isHourHHMM(parseInt(theHour,10), parseInt(theMinute,10), sHourCopy));
}

function isHourHHMM(aHH,aMM,sHour) {
    var longueur = sHour.length;
    if (longueur != 5) {
		alert("Veuillez saisir l'heure au format hh:mm !");
      	return false;
    } else if (isNaN(aHH) || aHH < 0 || aHH > 23) {
		alert("l'heure de l'heure " + sHour + " doit \u00EAtre comprise entre 0 et 23!");
		return false;
	} else if (isNaN(aMM) || aMM < 0 || aMM > 59) {
		alert("la minute de l'heure " + sHour + " doit \u00EAtre comprise entre 0 et 59!");
		return false;
	} else {
		return true;
	}
}


//************************************************************************
// renvoie la chaine modifiée avec les caractères accentués au format HTML
//************************************************************************
function htmlEncode(str) {
	if (str==null)
		return null;
	else {	
		str = str.replace(/'/g, "&rsquo;");        // ' - apostrophe
		str = str.replace(/"/g, "\u0022");       // " - double-quote
		str = str.replace(/©/g,	"&copy;");	// © - copyright
		str = str.replace(/®/g,	"&reg;");	// ® - registered trademark
		str = str.replace(/£/g, "\u00A3");	// £
		str = str.replace(/À/g,	"&Agrave;");	// À - uppercase A, grave accent
		str = str.replace(/Á/g,	"&Aacute;");	// Á - uppercase A, acute accent
		str = str.replace(/À/g,	"&Agrave;");	// À - uppercase A, grave accent
		str = str.replace(/Á/g,	"&Aacute;");	// Á - uppercase A, acute accent
		str = str.replace(/Â/g,	"&Acirc;");	// Â - uppercase A, circumflex accent
		str = str.replace(/Ã/g,	"&Atilde;");	// Ã - uppercase A, tilde
		str = str.replace(/Ã/g,	"&Auml;");	// Ã - uppercase A, umlaut
		str = str.replace(/Ã/g,	"&Aring;");	// Ã - uppercase A, ring
		str = str.replace(/Æ/g,	"&AElig;");	// Æ - uppercase AE
		str = str.replace(/Ç/g,	"&Ccedil;");	// Ç - uppercase C, cedilla
		str = str.replace(/È/g,	"&Egrave;");	// È - uppercase E, grave accent
		str = str.replace(/É/g,	"&Eacute;");	// É - uppercase E, acute accent
		str = str.replace(/Ê/g,	"&Ecirc;");	// Ê - uppercase E, circumflex accent
		str = str.replace(/Ë/g,	"&Euml;");	// Ë - uppercase E, umlaut
		str = str.replace(/Ì/g,	"&Igrave;");	// Ì - uppercase I, grave accent
		str = str.replace(/Í/g,	"&Iacute;");	// Í - uppercase I, acute accent
		str = str.replace(/Î/g,	"&Icirc;");	// Î - uppercase I, circumflex accent
		str = str.replace(/Ï/g,	"&Iuml;");	// Ï - uppercase I, umlaut
		str = str.replace(/Ð/g,	"&ETH;");	// Ð - uppercase Eth, Icelandic
		str = str.replace(/Ñ/g,	"&Ntilde;");	// Ñ - uppercase N, tilde
		str = str.replace(/Ò/g,	"&Ograve;");	// Ò - uppercase O, grave accent
		str = str.replace(/Ó/g,	"&Oacute;");	// Ó - uppercase O, acute accent
		str = str.replace(/Ô/g,	"&Ocirc;");	// Ô - uppercase O, circumflex accent
		str = str.replace(/Õ/g,	"&Otilde;");	// Õ - uppercase O, tilde
		str = str.replace(/Ö/g,	"&Ouml;");	// Ö - uppercase O, umlaut
		str = str.replace(/Ø/g,	"&Oslash;");	// Ø - uppercase O, slash
		str = str.replace(/Ù/g,	"&Ugrave;");	// Ù - uppercase U, grave accent
		str = str.replace(/Ú/g,	"&Uacute;");	// Ú - uppercase U, acute accent
		str = str.replace(/Û/g,	"&Ucirc;");	// Û - uppercase U, circumflex accent
		str = str.replace(/Ü/g,	"&Uuml;");	// Ü - uppercase U, umlaut
		str = str.replace(/Ý/g,	"&Yacute;");	// Ý - uppercase Y, acute accent
		str = str.replace(/Þ/g,	"&THORN;");	// Þ - uppercase THORN, Icelandic
		str = str.replace(/ß/g,	"&szlig;");	// ß - lowercase sharps, German
		str = str.replace(/à/g,	"&agrave;");	// à - lowercase a, grave accent
		str = str.replace(/á/g,	"&aacute;");	// á - lowercase a, acute accent
		str = str.replace(/â/g,	"&acirc;");	// â - lowercase a, circumflex accent
		str = str.replace(/ã/g,	"&atilde;");	// ã - lowercase a, tilde
		str = str.replace(/ä/g,	"&auml;");	// ä - lowercase a, umlaut
		str = str.replace(/å/g,	"&aring;");	// å - lowercase a, ring
		str = str.replace(/æ/g,	"&aelig;");	// æ - lowercase ae
		str = str.replace(/ç/g,	"&ccedil;");	// ç - lowercase c, cedilla
		str = str.replace(/è/g,	"&egrave;");	// è - lowercase e, grave accent
		str = str.replace(/é/g,	"&eacute;");	// é - lowercase e, acute accent
		str = str.replace(/ê/g,	"&ecirc;");	// ê - lowercase e, circumflex accent
		str = str.replace(/ë/g,	"&euml;");      // ë - lowercase e, umlaut
		str = str.replace(/ì/g,	"&igrave;");	// ì - lowercase i, grave accent
		str = str.replace(/í/g,	"&iacute;");	// í - lowercase i, acute accent
		str = str.replace(/î/g,	"&icirc;");	// î - lowercase i, circumflex accent
		str = str.replace(/ï/g,	"&iuml;");	// ï - lowercase i, umlaut
		str = str.replace(/ð/g,	"&eth;");	// ð - lowercase eth, Icelandic
		str = str.replace(/ñ/g,	"&ntilde;");	// ñ - lowercase n, tilde
		str = str.replace(/ò/g,	"&ograve;");	// ò - lowercase o, grave accent
		str = str.replace(/ó/g,	"&oacute;");	// ó - lowercase o, acute accent
		str = str.replace(/ô/g,	"&ocirc;");	// ô - lowercase o, circumflex accent
		str = str.replace(/õ/g,	"&otilde;");	// õ - lowercase o, tilde
		str = str.replace(/ö/g,	"&ouml;");	// ö - lowercase o, umlaut
		str = str.replace(/ø/g,	"&oslash;");	// ø - lowercase o, slash
		str = str.replace(/ù/g,	"&ugrave;");	// ù - lowercase u, grave accent
		str = str.replace(/ú/g,	"&uacute;");	// ú - lowercase u, acute accent
		str = str.replace(/û/g,	"&ucirc;");	// û - lowercase u, circumflex accent
		str = str.replace(/ü/g,	"&uuml;");	// ü - lowercase u, umlaut
		str = str.replace(/ý/g,	"&yacute;");	// ý - lowercase y, acute accent
		str = str.replace(/þ/g,	"&thorn;");	// þ - lowercase thorn, Icelandic
		str = str.replace(/ÿ/g,	"&yuml;");	// ÿ - lowercase y, umlaut
		str = str.replace(/€/g,"&euro;");	// ÿ - lowercase y, umlaut
		
		return str;
	}
}


//************************************************************************
// fait un alert avec accents en format unicode
//************************************************************************
function ualert(myString) {
	uString = transformunicode(myString);
	alert(uString);
}

//************************************************************************
// fait un confirm avec accents en format unicode
//************************************************************************
function uconfirm(myString) {
	uString = transformunicode(myString);
 	return confirm(uString);
}

//************************************************************************
// transforme les caractères spéciaux en format unicode
//************************************************************************
function transformunicode(myString) {
	newString = "";

	for (var i=0; i < myString.length; i++) {
    	myChar = myString.charCodeAt(i);
    	if (myChar < 33 || myChar>255) {
      		newString += myString.charAt(i);
    	} else {
      		myUnicodeStr = '"' + "\\u00" + hexfromdec(myChar) + '"';
        	newString +=  eval(myUnicodeStr);
    	}
  	}
  	return newString;
}

//************************************************************************
// transforme un numéro en hex
//************************************************************************
function hexfromdec(num) {
	if (num > 65535) { return ("err!") }
	// on a le N°1
	first = Math.floor(num/4096);
	temp1 = num - first * 4096;
	// on a le N°2
	second = Math.floor(temp1/256);
	temp2 = temp1 - second * 256;
	// on a le N°3
	third = Math.floor(temp2/16);
	fourth = temp2 - third * 16;
	// on a le N°4
	return (""+getletter(third)+getletter(fourth));
}

function getletter(num) {
	if (num < 10) {
		return num;
	} else {
		if (num == 10) { return "A" }
		if (num == 11) { return "B" }
		if (num == 12) { return "C" }
		if (num == 13) { return "D" }
		if (num == 14) { return "E" }
		if (num == 15) { return "F" }
	}
}


//************************************************************************
//   function ouvrirPopupScrollbars(fichier, width, height)
//************************************************************************
function ouvrirPopupScrollbars(fichier, width, height) {
	if (typeof(width) == 'undefined') width=600;
	if (typeof(height) == 'undefined') height=500;
	var param='toolbar=0,location=0,directories=0,menuBar=0,scrollbars=1,resizable=1,width=' + width + ',height=' + height +',left=100,top=100';
	
	if (fichier.substring(fichier.length,fichier.length-3)=="xls"){
		menubar="yes";
	}
	window.open(fichier,'popup_perso', param);
}

//************************************************************************
//   function OpenWin(lien,nom,largeur,hauteur)
//************************************************************************
function OpenWin(lien,nom,largeur,hauteur) {
	var left=(screen.width-largeur)/2;
	var top=(screen.height-hauteur)/2;
	
	// fichier excel -> menu activé
	var menubar="no";
	if (lien.substring(lien.length,lien.length-3)=="xls"){
		menubar="yes";
	}
	
	if (lien.substring(lien.length,lien.length-3)=="csv"){
		menubar="yes";
	}
	
	var param='width='+largeur+',height='+hauteur+',resizable=yes,scrollbars=yes,status=yes,menubar='+menubar+',toolbar=no,personalbar=no,left='+left+',top='+top;
	var win = window.open(lien, nom, param);
}

//************************************************************************
//   function ouvrirPopupFixe(lien,nom,largeur,hauteur)
//************************************************************************
function ouvrirPopupFixe(lien,nom,largeur, hauteur) {
	if (typeof(largeur) == 'undefined') width=550;
	if (typeof(hauteur) == 'undefined') height=400;
	var left=20;//(screen.width-largeur)/2;
	var top=20;//(screen.height-hauteur)/2;
	var param='width='+largeur+',height='+hauteur+',toolbar=0,location=0,directories=0,menuBar=0,scrollbars=0,resizable=1,left='+left+',top='+top;
	var win = window.open(lien, nom, param);
	win.focus();
}
function ouvrirPopupFixe2(lien,nom,largeur, hauteur) {
	if (typeof(largeur) == 'undefined') width=550;
	if (typeof(hauteur) == 'undefined') height=400;
	var left=20;//(screen.width-largeur)/2;
	var top=20;//(screen.height-hauteur)/2;
	var param='width='+largeur+',height='+hauteur+',toolbar=0,location=0,directories=0,menuBar=0,scrollbars=yes,resizable=no,left='+left+',top='+top;
	var win = window.open(lien, nom, param);
	win.focus();
}

//************************************************************************
//   function OpenWinResize(lien,nom,largeur,hauteur)
//   ouvre une fenêtre, retaille la fenêtre
//   principale afin d'avoir les 2 fenêtres sous les yeux simultanément
//************************************************************************
function OpenWinResize(lien,nom) {
	var largeur=screen.availWidth;
	var hauteur=screen.availHeight;
	var top=0;
	var left=0.5*largeur;
	
	// retaille de la fenetre principale
	this.resizeTo(0.5*largeur,hauteur);
	// ouverture de la fenetre secondaire
	var param='width='+0.5*largeur+',height='+hauteur+',resizable=yes,scrollbars=yes,status=no,menubar=no,toolbar=no,personalbar=no,left='+left+',top='+top;
	var win=window.open(lien, nom, param);
	win.resizeTo(0.5*largeur,hauteur);
}

//************************************************************************
//   function wait4Me( addresse, texte a afficher)
//   ouvre une fenêtre d'attente avec un message paramétrable
//   et redirection vers l'adresse spécifiée
//************************************************************************
function wait4Me( address, txtAttente) {
	myUrl = '';
	OpenWin( myUrl,'attente',400,130);
	
	/* gestion des formulaires*/
	if (typeof(address) == 'string') {
		document.location=address;
	} else {
		address.submit();
	}
}



// Tri d'un tableau multi dimensionnel
/*function MultiSort(inARRAY[][], inCOL, inORDER) {
	var p = true;
	while(p) {
		p = false;
		for(i=0; i<inARRAY.length; i++) {
			//if(inORDER == "1") {
				if(inARRAY[i][inCOL] > inARRAY[i+1][inCOL]) {
					for(j=0; inARRAY[i].length; j++) {
						var tmp = inARRAY[i][j];
						inARRAY[i][j] = inARRAY[i+1][j];
						inARRAY[i+1][j] = inARRAY[i][j];
						p = true;
					}
				}
			} else {
				if(inARRAY[i][inCOL] > inARRAY[i+1][inCOL]) {
					for(j=0; inARRAY[i].length; j++) {
						var tmp = inARRAY[i][j];
						inARRAY[i][j] = inARRAY[i+1][j];
						inARRAY[i+1][j] = inARRAY[i][j];
						p = true;
					}
				}
			}
		}
	}
	return inARRAY[][];
}*/