
/*-----------------------------------------------------------------------------------------
fonction 	: Entree
Auteur		: AM
Date		: 20/10/04

Return		: effectue le code javascript passé en paramètre si le bouton entrée est enfoncé
					il faut appeler la fonction de cette manière :
					<body onkeypress="Entree('Mon Code Javascript')">

-------------------------------------------------------------------------------------------
Modifications:
	-  Auteur	Date		Commentaires
-----------------------------------------------------------------------------------------*/

function Entree(MonJs)
{
	if ((event.which ? event.which : event.keyCode) == 13)
	{
		eval(MonJs);
	}
}


/*-----------------------------------------------------------------------------------------
fonction 	: BrowserCheck
Auteur		: AM
Date		: 20/10/04

Return		: Détermine le navigteur (safari(ns) ou ie)

-------------------------------------------------------------------------------------------
Modifications:
	-  Auteur	Date		Commentaires
-----------------------------------------------------------------------------------------*/

function BrowserCheck()
{ 
	var b = navigator.appName 
	if (b=="Netscape") this.b = "ns" 
	else if (b=="Microsoft Internet Explorer") this.b = "ie" 
	else this.b = b 
	this.v = parseInt(navigator.appVersion) 
	this.ns = (this.b=="ns" && this.v>=4) 
	this.ns4 = (this.b=="ns" && this.v==4) 
	this.ns5 = (this.b=="ns" && this.v==5) 
	this.ie = (this.b=="ie" && this.v>=4) 
	this.ie4 = (navigator.userAgent.indexOf('MSIE 4')>0) 
	this.ie5 = (navigator.userAgent.indexOf('MSIE 5')>0) 
	if (this.ie5) this.v = 5 
	this.min = (this.ns||this.ie) 
 } 


/*-----------------------------------------------------------------------------------------
fonction 	: Styles
Auteur		: AM
Date		: 20/10/04

Return		: Va chercher la bonne feuille de styles (entre mac et pc)

-------------------------------------------------------------------------------------------
Modifications:
	-  Auteur	Date		Commentaires
-----------------------------------------------------------------------------------------*/

function Styles(CheminCssImg)
{
	var is = new BrowserCheck();
	
	if(is.ie){
	var chemin = '<link rel="stylesheet" type="text/css" href="'+ CheminCssImg +'/css/styles.css">';
	//document.write('<link rel="stylesheet" type="text/css" href="'+ CheminCssImg +'/css/styles.css">');
	}else if(is.ns || is.ns5){
	var chemin = '<link rel="stylesheet" type="text/css" href="'+ CheminCssImg +'/css/styles_mac.css">';
	//document.write('<link rel="stylesheet" type="text/css" href="'+ CheminCssImg +'/css/styles_mac.css">');
	}
	document.write(chemin);
	//alert('is.ns5 : ' + is.ns5 + '\nis.ns : ' + is.ns + '\nis.ie : ' + is.ie + '\nChemin css sélectionné : ' + chemin);
}


/*-----------------------------------------------------------------------------------------
fonction 	: Entier
Auteur		: AM
Date		: 29/07/04

Return		: Le nombre entier si c'est un nombre et false sinon

-------------------------------------------------------------------------------------------
Modifications:
	-  Auteur	Date		Commentaires
-----------------------------------------------------------------------------------------*/

function Entier(MonNum)
{
	if (isNaN(MonNum))
	{
		return false;
	}else{
		return parseInt(MonNum);
	}
}

/*-----------------------------------------------------------------------------------------
fonction 	: ScrollDiv()
Auteur		: AM
Date		: 04/10/04

Return		: vide
					sert à positionner le scroll d'un div
					

-------------------------------------------------------------------------------------------
Modifications:
	-  Auteur	Date		Commentaires
-----------------------------------------------------------------------------------------*/

function ScrollDiv(ObjetDiv, ValeurScroll)
{
	ObjetDiv.scrollTop = ValeurScroll;
}


/*-------------------------------------------------------------------------------------------
Modifications:
	-  Auteur	Date		Commentaires
-----------------------------------------------------------------------------------------*/

document.write("<form name='FormAide' action='/TCScript/App/Aide.asp' target='Aide'>")
document.write("</form>")
function Aide() {
window.open('','Aide','width=1012,height=700,scrollbars=no,resizable=yes,top=0,left=0');;
FormAide.submit();
}

/*-----------------------------------------------------------------------------------------
fonction 	: Count
Auteur		: SMN
Date		: 13/02/01
Argument	:
		  - form (nom du formulaire)
		  - List (nom de la liste)
Return		: Le nombre de champ sélectionné dans la liste

-------------------------------------------------------------------------------------------
Modifications:
	-  Auteur	Date		Commentaires
-----------------------------------------------------------------------------------------*/

function Count(formname, List) {
nb = 0;
for (k=0;k<document.forms[formname].elements[List].length;k++) {
	if (document.forms[formname].elements[List].options[k].selected == true) {
	  	nb = nb + 1;
	}
}
return nb;
}

/*-----------------------------------------------------------------------------------------
fonction 	: Trim
Auteur		: SMN
Date		: 20/02/01
Argument	:
		  - str (chaine)
Return		: La chaine sans espace

-------------------------------------------------------------------------------------------
Modifications:
	-  Auteur	Date		Commentaires
-----------------------------------------------------------------------------------------*/
function Trim(str) {
Newstr = "";
if (str.length != 0) {
for (k=0;k<str.length;k++) {
  if (str.charAt(k) != " ") {
  Newstr = Newstr + str.charAt(k);
}
}
}
return(Newstr.length)
}

/*-----------------------------------------------------------------------------------------
fonction 	: SansEspace
Auteur		: SMN
Date		: 20/02/01
Argument	:
		  - str (chaine)
Return		: La chaine sans espace

-------------------------------------------------------------------------------------------
Modifications:
	-  Auteur	Date		Commentaires
-----------------------------------------------------------------------------------------*/
function SansEspace(str) {
Newstr = "";
if (str.length != 0) {
for (k=0;k<str.length;k++) {
  if (str.charAt(k) != " ") {
  Newstr = Newstr + str.charAt(k);
}
}
}
return(Newstr)
}

/*-----------------------------------------------------------------------------------------
fonction 	: VerifSaisie
Auteur		: AM
Date		: 11/10/2004
Argument	:
		         chaine à vérifier , mode
Return		: true ou false

-------------------------------------------------------------------------------------------
Modifications:
	-  Auteur	Date		Commentaires
-----------------------------------------------------------------------------------------*/

function VerifSaisie(StrSaisie,ModeVerif)
{
	// on vérifie que la saisie n'est pas vide
	if (ModeVerif == 0)
	{
		if ((StrSaisie.indexOf('|',0) != -1) || (StrSaisie.indexOf(';',0) != -1) || (StrSaisie.indexOf('<',0) != -1) || (StrSaisie.indexOf('>',0) != -1))
		{
			return false;
		}else{
			return true;
		}
	}else if(ModeVerif == 1){
	// on ne vérifie pas que la saisie n'est pas vide
		if ((StrSaisie.indexOf('|',0) != -1) || (StrSaisie.indexOf(';',0) != -1) || (StrSaisie.indexOf('<',0) != -1) || (StrSaisie.indexOf('>',0) != -1) || (Trim(StrSaisie) < 1))
		{
			return false;
		}else{
			return true;
		}
	}
}


/*-----------------------------------------------------------------------------------------
fonction 	: Imprim
Auteur		: SMN
Date		: 26/02/01
Argument	:
		  - TheURL (URL du document à charger)
		  - Nom (Nom de la fenêtre à ouvrir)
		  - Param (Paramètre de la fenêtre à ouvrir)

-------------------------------------------------------------------------------------------
Modifications:
	-  Auteur	Date		Commentaires
-----------------------------------------------------------------------------------------*/
function Imprim(TheURL,Nom,Param) {
window.open(TheURL,Nom,Param);
}

function Imprimliste(TheURL,Nom,Param) {
window.open(TheURL,Nom,Param);
}

/*-----------------------------------------------------------------------------------------
fonction 	: RadioCheck
Auteur		: SMN
Date		: 06/03/01
Argument	:
		  - Objet Radio
Return		: Renvoie true si il y a un bouton radio de coché, false sinon

-------------------------------------------------------------------------------------------
Modifications:
	-  Auteur	Date		Commentaires
-----------------------------------------------------------------------------------------*/
function RadioCheck(objRadio) {
select = false;
for (i=0;i<objRadio.length;i++) {
  if (objRadio(i).checked == true) {
    select = true;
  }
}
return(select);
}

/*-------------------------------------------------------------------------------------------
Modifications:
	-  Auteur	Date		Commentaires
-----------------------------------------------------------------------------------------*/
function RadioValue(objRadio) {
	var Valeur = '';
	if(objRadio)
	{
		//alert(objRadio.name + ' ' +objRadio.length + '\n');
		if(objRadio.length > 0)
		{
			for (i=0;i<objRadio.length;i++) 
			{
				if (objRadio[i].checked) 
				{
					Valeur = objRadio[i].value; 
					break;
				}
			}
		}else{
			if (objRadio.checked)
			{
				Valeur = objRadio.value;
			}
		}
	}
	return Valeur;
}

/*-----------------------------------------------------------------------------------------
fonction 	: calpopup
Auteur		: SMN
Date		: 12/03/01
Argument	:
		  - lnk		 : Chemin du composant calendrier avec la valeur du champ texte datename
		  - formname : nom du formulaire dans lequel se trouve le champ texte (datename)
		  - datename : nom du champ texte dans lequel doit s'afficher la date
Objet		: Ouvre le composant calendrier

-------------------------------------------------------------------------------------------
Modifications:
	-  Auteur	Date		Commentaires
-----------------------------------------------------------------------------------------*/
function calpopup(lnk,formname,datename)
{
DateValue= document.forms[formname].elements[datename].value;
lnk = lnk + "&Date=" + DateValue ;
window.open(lnk, "calendar","height=251,width=250,scrollbars=no");
}

/*-----------------------------------------------------------------------------------------
fonction 	: Cache et Cache2
Auteur		: SMN
Date		: 15/02/01
Argument	:
		  - Bloc
		  - CheminCssImgPictoOuvert
		  - CheminCssImgPictoFerme
Return		: Affiche le bloc si celui ci est cache
		  Masque le bloc si celui ci est affiché

-------------------------------------------------------------------------------------------
Modifications:
	-  Auteur	Date		Commentaires
-----------------------------------------------------------------------------------------*/

function Cache(Bloc,CheminCssImgPictoOuvert,CheminCssImgPictoFerme,Inverse) {

	if (document.getElementById && document.getElementById("Block" + Bloc))
    {

			if (document.getElementById("Indice" + Bloc).value == "1") 
			{
				
				document.getElementById("Indice" + Bloc).value = "0";
				if (document.images["Cache" + Bloc])
				{
				  document.images["Cache" + Bloc].src = CheminCssImgPictoFerme;
				  document.images["Cache" + Bloc].alt = "Afficher";
				  document.images["Cache" + Bloc].title = "Afficher";
				}
				document.getElementById("Block" + Bloc).style.display = "none";
				
			} else {
				
				document.getElementById("Indice" + Bloc).value = "1";
				if (document.images["Cache" + Bloc])
				{
				  document.images["Cache" + Bloc].src = CheminCssImgPictoOuvert;
				  document.images["Cache" + Bloc].alt = "Cacher";
				  document.images["Cache" + Bloc].title = "Cacher";
                }
				document.getElementById("Block" + Bloc).style.display = "block";
				
			}

		
    }
}

function Cache2(Bloc,Bloc2,CheminCssImgPictoOuvert,CheminCssImgPictoFerme) {

	if (document.getElementById && document.getElementById("Block" + Bloc))
    {
		if (Bloc2 != "" && document.getElementById("Block" + Bloc2))
		{
			if (document.getElementById("Indice" + Bloc).value == "1") 
			{
				
				document.getElementById("Indice" + Bloc).value = "0";
				if (CheminCssImgPictoOuvert!="" && CheminCssImgPictoFerme!="")
				{
					document.images["Cache" + Bloc].src = CheminCssImgPictoFerme;
					document.images["Cache" + Bloc].alt = "Afficher";
					document.images["Cache" + Bloc].title = "Afficher";
				}
				document.getElementById("Block" + Bloc).style.display = "none";
				document.getElementById("Block" + Bloc2).style.display = "block";
			}else{
				
				document.getElementById("Indice" + Bloc).value = "1";
				if (CheminCssImgPictoOuvert!="" && CheminCssImgPictoFerme!="")
				{
					document.images["Cache" + Bloc].src = CheminCssImgPictoOuvert;
					document.images["Cache" + Bloc].alt = "Cacher";
					document.images["Cache" + Bloc].title = "Cacher";
				}
				document.getElementById("Block" + Bloc).style.display = "block";
				document.getElementById("Block" + Bloc2).style.display = "none";
			}
		}else{
			if (document.getElementById("Indice" + Bloc).value == "1") 
			{
				
				document.getElementById("Indice" + Bloc).value = "0";
				if (CheminCssImgPictoOuvert!="" && CheminCssImgPictoFerme!="")
				{
					document.images["Cache" + Bloc].src = CheminCssImgPictoFerme;
					document.images["Cache" + Bloc].alt = "Afficher";
					document.images["Cache" + Bloc].title = "Afficher";
				}
				document.getElementById("Block" + Bloc).style.display = "none";
			}else{
				
				document.getElementById("Indice" + Bloc).value = "1";
				if (CheminCssImgPictoOuvert!="" && CheminCssImgPictoFerme!="")
				{
					document.images["Cache" + Bloc].src = CheminCssImgPictoOuvert;
					document.images["Cache" + Bloc].alt = "Cacher";
					document.images["Cache" + Bloc].title = "Cacher";
				}
				document.getElementById("Block" + Bloc).style.display = "block";
			}
		}	
    }
}

/*-----------------------------------------------------------------------------------------
fonction 	: Bloc2Styles
Auteur		: AM
Date		: 03/06/04
Argument	:
		  - Bloc
		  - Style1
		  - Style2
Return		: Modifie le style du bloc selon 2 tailles styles possibles

-------------------------------------------------------------------------------------------
Modifications:
	-  Auteur	Date		Commentaires
-----------------------------------------------------------------------------------------*/

function Bloc2Styles(Bloc, Style1, Style2) {
  if (document.getElementById(Bloc))
  {
	if (document.getElementById("Indice" + Bloc).value == "1")
	{
		document.getElementById("Indice" + Bloc).value = "0";
		document.getElementById(Bloc).className = Style1;
	}else{
		document.getElementById("Indice" + Bloc).value = "1";
		document.getElementById(Bloc).className = Style2;
	}
  }
}

/*-----------------------------------------------------------------------------------------
fonction 	: SelCheck
Auteur		: VB
Date		: 18/04/03
Argument	:
		  - Bloc
		  - Tout
		  - Formulaire
Return		: Coche toutes checkbox d'un groupe de checkbox ou inverse 
			  la sélection selon que le paramètre 'Tout' est à 1 ou à 0

-------------------------------------------------------------------------------------------
Modifications:
	-  Auteur	Date		Commentaires
	-  AM		08/06/04	Désormais cette fonction marche aussi avec des checkbox qui portent
							le même nom mais une valeur différente
-----------------------------------------------------------------------------------------*/

function SelCheck(Bloc,Tout,Formulaire) {

for (i=0;i<document.forms[Formulaire].length;i++) {
	bouton = 'document.forms[Formulaire].elements[' + i + '].name' 
	nom = eval(bouton) 
	if (nom.substr(0,Bloc.length) == Bloc) { 
		if (Tout == 1) {
	        if (document.forms[Formulaire].elements[i].checked == false && document.forms[Formulaire].elements[i].disabled == false && document.forms[Formulaire].elements[i].type == "checkbox")
	          {
			  document.forms[Formulaire].elements[i].checked = true
	          }	
		}
		else {
			if (document.forms[Formulaire].elements[i].disabled == false && document.forms[Formulaire].elements[i].type == "checkbox") {
				if (document.forms[Formulaire].elements[i].checked == true) {
					document.forms[Formulaire].elements[i].checked = false
				} else {
					document.forms[Formulaire].elements[i].checked = true
				}
			}
		}
	}
}
}

/*-----------------------------------------------------------------------------------------
fonction 	: VerifCheck
Auteur		: AM
Date		: 22/06/04
Argument	:
		  - Formulaire
		  - NomCheckBox
		  - NomElementMini
		  - NbElementMini
Return		: Vérifie dans un élément de formulaire de type cases à coher si un
					Nombre minimum à été coché

-------------------------------------------------------------------------------------------
Modifications:
	-  Auteur	Date		Commentaires
	
-----------------------------------------------------------------------------------------*/

function VerifCheck(Formulaire,NomCheckBox,NomElementMini,NbElementMini)
{
	var u = 0;
	
	if (document.forms[Formulaire].elements[NomCheckBox].length > 0)
	{
		for (i=0;i<document.forms[Formulaire].elements[NomCheckBox].length;i++)
		{
			if (document.forms[Formulaire].elements[NomCheckBox][i].checked == true)
			{
				u++;
			};
		};
	}else if(document.forms[Formulaire].elements[NomCheckBox]){
		if (document.forms[Formulaire].elements[NomCheckBox].checked == true)
		{
			u++;
		};
	}else{
		alert('Il n\'existe aucun élément à sélectionner');
		return false;
	};
	
	if (u < NbElementMini)
	{
		alert('Vous devez sélectionner au moins ' + NbElementMini + ' ' + NomElementMini);
		return false;
	} else {
		return true;
	};
	
}
/*-----------------------------------------------------------------------------------------
fonction 	: AleatoireCheckbox
Auteur		: AM
Date		: 08/06/04
Argument	:
		  - valeur
		  - total
		  - Formulaire
		  - Bloc
		  	
Return		: Sélectionne aléatoirement un nombre d'éléments
			  déterminé dans une liste de checkbox

-------------------------------------------------------------------------------------------
Modifications:
	-  Auteur	Date		Commentaires
-----------------------------------------------------------------------------------------*/


function AleatoireCheckbox(valeur,total,Formulaire,Bloc) 
{
	// remplissage du tableau aléatoire
	var tableau = new Array;
	
	for (i=0;i<valeur;i++)
	{
		index = Math.floor(Math.random() * total)
		dejavu = 0
		for (j=0;j<tableau.length;j++)
		{
			if (tableau[j] == index)
			{
				dejavu = 1
			}
		}
		if (dejavu != 1)
		{
			tableau[i] = index
		}
		else
		{
			i = i - 1
		}
	}
	// on décoche toutes les checkbox de l'élément passé en paramètre
	for (u=0;u<document.forms[Formulaire].elements[Bloc].length;u++)	
	{
		document.forms[Formulaire].elements[Bloc][u].checked = false;
	}
	
	// on coche toutes les checkbox de l'élément passé en paramètre et 
	// contenues dans le tableau aléatoire générer juste avant
	for (k=0;k<tableau.length;k++)
	{	
		document.forms[Formulaire].elements[Bloc][tableau[k]].checked = true;
	}

	//alert('coches des checkbox de l\'élément ' + Bloc + ' terminée avec ' + valeur + ' éléments aléatoires');
}

/*-----------------------------------------------------------------------------------------
fonction 	: EffaceChampTxt
Auteur		: AM
Date		: 10/06/2004
Argument	:
		  - NomForm (nom du formulaire)
		  - NomChamp (nom du champ texte à vider)

Return		: 

-------------------------------------------------------------------------------------------
Modifications:
	-  Auteur	Date		Commentaires
-----------------------------------------------------------------------------------------*/
function EffaceChamp(NomForm,NomChamp)
{
	document.forms[NomForm].elements[NomChamp].value = "";
}

/*-----------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------
Modifications:
	-  Auteur	Date		Commentaires
-----------------------------------------------------------------------------------------*/
function EffaceChampSelect(NomForm,NomChamp)
{

	for (i=0;i<document.forms[NomForm].elements[NomChamp].length;i++) 
	{
		document.forms[NomForm].elements[NomChamp].options[i].selected=false; 
	}

}


/*-----------------------------------------------------------------------------------------
fonction 	: calCompare
Auteur		: SMN
Date		: 15/02/01
Argument	:
		  - lnk (chemin du fichier asp pour le composant calendrier
		  - formname (nom du formulaire)
		  - DatDu (nom du champ texte de la date DU)
		  - DatAu (nom du champ texte de la date AU)
		  - NomDate (Valeur : du ou au, correspond au nom du champ texte qui appelle le composant
Return		: si le composant est appelé par le champ AU alors il retourne la date sélectionné
		  sinon si la date AU est renseigné le composant se place sur la date AU sinon sur la date d'aujourd'hui
		  et il retourne la date sélectionné

-------------------------------------------------------------------------------------------
Modifications:
	-  Auteur	Date		Commentaires
-----------------------------------------------------------------------------------------*/

function calCompare(lnk, formname, DatDu, DatAu, NomDate)
{
if (NomDate == "du") {
	DateValue= document.forms[formname].elements[DatDu].value;
}
if (NomDate == "au") {
	if (document.forms[formname].elements[DatAu].value == "") {
		DateValue=document.forms[formname].elements[DatDu].value
		}
		else {
		DateValue=document.forms[formname].elements[DatAu].value
		}
	}
lnk = lnk + "&Date=" + DateValue;
window.open(lnk, "calendar","height=281,width=250,scrollbars=no")
}

/*-----------------------------------------------------------------------------------------
fonction 	: PreDef
Auteur		: SMN
Date		: 15/02/01
Argument	:
		  - formname (nom du formulaire)
		  - DatDu (nom du champ texte de la date DU)
		  - DatAu (nom du champ texte de la date AU)
		  - NomListe (Nom de la liste)
Return		: ce composant permet de remplir les deux champs texte DU et AU en fonction de l'option 
		  sélectionné dans la liste

-------------------------------------------------------------------------------------------
Modifications:
	-  Auteur	Date		Commentaires
-----------------------------------------------------------------------------------------*/
function PreDef(formname,DatDu,DatAu,NomListe) {
  ValeurListe = document.forms[formname].elements[NomListe].options[document.forms[formname].elements[NomListe].selectedIndex].value;
  if (ValeurListe == "") {
  	document.forms[formname].elements[DatDu].value = "";
  	document.forms[formname].elements[DatAu].value = "";
  }
  else
  {
  	DatePreDef = ValeurListe.split("|");
  	document.forms[formname].elements[DatDu].value = DatePreDef[0];
  	document.forms[formname].elements[DatAu].value = DatePreDef[1];
  }
}

/*-----------------------------------------------------------------------------------------
fonction 	: haut et bas
Auteur		: SMN
Date		: 16/02/01
Argument	:
		  - Formname (nom du formulaire)
		  - Liste (Nom de la liste)
Return		: cette fonction permet de modifier l'ordre de tri d'une option dans une liste;

-------------------------------------------------------------------------------------------
Modifications:
	-  Auteur	Date		Commentaires
-----------------------------------------------------------------------------------------*/
/*function haut(Formname,Liste) {
if (Count(Formname,Liste) !=0) {
if (document.forms[Formname].elements[Liste].selectedIndex != 0) {
  tempValue = document.forms[Formname].elements[Liste].options[document.forms[Formname].elements[Liste].selectedIndex].value
  tempText = document.forms[Formname].elements[Liste].options[document.forms[Formname].elements[Liste].selectedIndex].text
  document.forms[Formname].elements[Liste].options[document.forms[Formname].elements[Liste].selectedIndex] = new Option(document.forms[Formname].elements[Liste].options[document.forms[Formname].elements[Liste].selectedIndex - 1].text,document.forms[Formname].elements[Liste].options[document.forms[Formname].elements[Liste].selectedIndex - 1].value,true,true)
  document.forms[Formname].elements[Liste].options[document.forms[Formname].elements[Liste].selectedIndex - 1] = new Option(tempText,tempValue,true,true)
}
}
}

function bas(Formname,Liste) {
if (Count(Formname,Liste) != 0) {
if (document.forms[Formname].elements[Liste].selectedIndex != document.forms[Formname].elements[Liste].length - 1) {
  tempValue = document.forms[Formname].elements[Liste].options[document.forms[Formname].elements[Liste].selectedIndex].value
  tempText = document.forms[Formname].elements[Liste].options[document.forms[Formname].elements[Liste].selectedIndex].text
  document.forms[Formname].elements[Liste].options[document.forms[Formname].elements[Liste].selectedIndex] = new Option(document.forms[Formname].elements[Liste].options[document.forms[Formname].elements[Liste].selectedIndex + 1].text,document.forms[Formname].elements[Liste].options[document.forms[Formname].elements[Liste].selectedIndex + 1].value,true,true)
  document.forms[Formname].elements[Liste].options[document.forms[Formname].elements[Liste].selectedIndex + 1] = new Option(tempText,tempValue,true,true)
}
}
}
*/

/*-----------------------------------------------------------------------------------------
fonction 	: Annee4Chiffre
Auteur		: AM
Date		: 19/07/2004
Argument	:
		  - MaDate : Date a transformer (JJ/MM/AA)
Return		: Date au format (JJ/MM/AAAA)
				(si les 2 chiffres de l'année sont < 80 on considère qu'on est dans les années 2000)

-------------------------------------------------------------------------------------------
Modifications:
	-  Auteur	Date		Commentaires
-----------------------------------------------------------------------------------------*/

function Annee4Chiffre(MaDate)
{	
	var Dt = '';
	if (MaDate.length == 8)
	{
		var LaDate = MaDate.split("/");
		if (LaDate [2] < 80)
		{
			Dt = LaDate[0] + '/' + LaDate[1] + '/' + '20' + LaDate[2];
		}else{
			Dt = LaDate[0] + '/' + LaDate[1] + '/' + '19' + LaDate[2];
		}
	}else{
		Dt = MaDate;
	}
	return Dt;
}

/*-----------------------------------------------------------------------------------------
fonction 	: VerifDate
Auteur		: SMN
Date		: 19/02/01
Argument	:
		  - Du : Date de début (JJ/MM/AAAA)
		  - Au : Date de fin (JJ/MM/AAAA)
Return		: cette fonction compare deux dates et renvoie vrai si Du < Au, Faux sinon;

-------------------------------------------------------------------------------------------
Modifications:
	-  Auteur	Date		Commentaires
-----------------------------------------------------------------------------------------*/
function VerifDate(Du,Au) 
{
if (Du == "" && Au == "") 
  {
  return true;
  }
else
  {
  if (Du == "" && Au != "")
	{
	Du = Au
	}
  else if (Du != "" && Au == "")
	{
	Au = Du
	}
  aDateDu = Du.split("/");
  aDateAu = Au.split("/");
  if (aDateDu.length > 2) 
	{
	if (aDateDu[2].length != 4) 
	  {
	  return "Form";
	  }
	}
  if (aDateAu.length > 2) 
	{
	if (aDateAu[2].length != 4) 
	  {
	  return "Form";
	  }
	}
  DateDu = new Date(aDateDu[2], aDateDu[1] - 1, aDateDu[0])
  DateAu = new Date(aDateAu[2], aDateAu[1] - 1, aDateAu[0])

  if (DateDu < DateAu) 
 	{
	return true;
	}
  else 
	{
	if (Du == Au) 
	  {
	  return "Egale";
      }
	else 
	  {
	  return false;
 	  }
	}
  }
}

/*-----------------------------------------------------------------------------------------
fonction 	: DesactiveRadio
Auteur		: SMN
Date		: 06/04/01
Argument	:
		  NomRadio   : nom du bouton radio
Return		: Désactive tous les boutons radio

-------------------------------------------------------------------------------------------
Modifications:
	-  Auteur	Date		Commentaires
-----------------------------------------------------------------------------------------*/
function DesactiveRadio(NomRadio) {
for (j=0;j<document.forms.length;j++) {
  for (i=0;i<document.forms[j].elements.length;i++) {
    if (document.forms[j].elements[i].name == NomRadio) {
      document.forms[j].elements[i].checked = false;
    }
  }
}
}

function Modif() {
document.forms[0].Modification.value = 1;
}

function Selectionne() {
for (i=0;i<document.FORMNAME.elements.length;i++) {
NomElement = document.FORMNAME.elements[i].name;
aNomElement = NomElement.split("_");
if (aNomElement[0] == "Check") {
  document.FORMNAME.elements[i].checked = true;
}
}
}

function DeSelectionne() {
for (i=0;i<document.FORMNAME.elements.length;i++) {
NomElement = document.FORMNAME.elements[i].name;
aNomElement = NomElement.split("_");
if (aNomElement[0] == "Check") {
  document.FORMNAME.elements[i].checked = false;
}
}
}

/*-----------------------------------------------------------------------------------------
fonction 	: Entite
Auteur		: SMN
Date		: 06/04/01
Argument	:
		  Identifiant   : Identifiant
		  EntiteLocale  : Entite locale
Return		: true si l'Identifiant appartient à l'entité locale
		  false sinon

-------------------------------------------------------------------------------------------
Modifications:
	-  Auteur	Date		Commentaires
-----------------------------------------------------------------------------------------*/
function Entite(Identifiant,EntiteLocale) {
if (Math.floor(Identifiant/1000000) == Math.floor(EntiteLocale) || Identifiant == "New") {
  return ("True");
}
else {
return ("False");
}
}


/*-----------------------------------------------------------------------------------------
fonction 	: RefreshList
Auteur		: SMN
Date		: 04/10/01
Argument	:
		  Liste
		  Param : 0 --> on désélectionne tous les éléments de la liste (à faire)
			  1 --> on désélectionne uniquement l'élément de la liste (plus rapide car on ne parcours pas toutes la liste)
Return		: Désélectionne tous les éléments d'une liste

-------------------------------------------------------------------------------------------
Modifications:
	-  Auteur	Date		Commentaires
-----------------------------------------------------------------------------------------*/
function RefreshList(Liste1,Liste2,Param) {
IndexSelected = Liste2.selectedIndex;
if (IndexSelected != -1) {
  Liste2.options[IndexSelected].selected = false;
}
IndexSelected = Liste1.selectedIndex;
for (i=0;i<Liste1.length;i++) {
  if (IndexSelected != i) {
    Liste1.options[i].selected = false;    
  }
}
}

/*-----------------------------------------------------------------------------------------
fonction 	: Compare
Auteur		: VB
Date		: 24/06/2004
Argument	: chaine1
		  chaine2
		  
Return		: ChaineType = true ou false

exemple         : 
		
-------------------------------------------------------------------------------------------
Modifications:
	-  Auteur	Date		Commentaires
-----------------------------------------------------------------------------------------*/

function Compare(chaine1, chaine2)
{
var s1 = new String(chaine1);
var s2 = new String(chaine2);
boo = true;
j = 0;
while (boo = true)
{
ch1 = s1.substr(j,1);
ch2 = s2.substr(j,1);
if (ch1 == "" || ch2 == "")break;
if(ch1 == ch2) 
	boo=true;
else {
	if(ch1 != ch2)
		{boo=false; 
		break;}
	else
		break;}
j++;
}
return boo;
}


/*-----------------------------------------------------------------------------------------
fonction 	: istype
Auteur		: VB
Date		: 25/02/2003
Argument	:
		  str : Chaine du champ saisi à tester 
		  ChNum : Chaine à comparer
Return		: ChaineType = true ou false

exemple         : istype("12t","0123456789,") => False Ce champ n'est pas numérique
		
-------------------------------------------------------------------------------------------
Modifications:
	-  Auteur	Date		Commentaires
-----------------------------------------------------------------------------------------*/
function istype(str,ChNum) 
{
Newstr = "";
ChaineType = false
if (str.length != 0) 
	{for (k=0;k<str.length;k++) 
		{for (j=0;j<ChNum.length;j++)
			{if (str.charAt(k) == ChNum.charAt(j))
				{Newstr = Newstr + str.charAt(k);}
			}
		}
	}
{if (Newstr == str)
	ChaineType = true
}
return(ChaineType)
}


/*-------------------------------------------------------------------------------------------
Modifications:
	-  Auteur	Date		Commentaires
-----------------------------------------------------------------------------------------*/

// Fonction permettant de décocher un bouton radio
var radioCoche1 = true; 
var ancienChamp1; 
function coche_decoche(champ) 
{ 
  if (champ == ancienChamp1) 
  { 
    champ.checked = !radioCoche1 
    radioCoche1 = !radioCoche1; 
  } 
  else 
  { 
    ancienChamp1 = champ; 
    radioCoche1 = true; 
  } 
} 


/*-----------------------------------------------------------------------------------------
fonction 	: VerifMail
Auteur		: Véronique PIERRE
Date		: 07/10/2004
Argument	:
				Adresse mail à vérifier
Return		: message 

-------------------------------------------------------------------------------------------
Modifications:
	-  Auteur	Date		Commentaires
-----------------------------------------------------------------------------------------*/
function VerifMail(a)
{
var Valide, i, k, b, j
i=0;
k=0;
Valide = 1
if (a.indexOf("@")< 0)
{
	Valide = 0
}
if (a.indexOf(".")< 0)
{
	Valide = 0
}
if (Valide == 1)
{
	b = "'!§:?&{}[]+*"
	for (j=0; j<b.length-1;j++)
	{
		if (a.indexOf(b.charAt(j))>= 0)
		{
			Valide = 0
			break;
		}
	}
	if (Valide == 0)
	{
		alert("L'adresse email que vous avez saisi n'est pas valide !");
		return false;
	}
}
else
{
	alert("L'adresse email que vous avez saisi n'est pas valide !");
	return false;
}
return true;
}


