function mOvr(src,clrOver){
  src.bgColor = clrOver;
}
function mOut(src,clrIn){
  src.bgColor = clrIn;
}
// Fonction qui affiche le div passé en paramètre si elle est cachée, et réciproquement.
// srcElement : la div a afficher
function displayDiv(srcElement)
{
	if(srcElement.style.display == '')
		srcElement.style.display = 'none';
	else
		srcElement.style.display = '';
}//function afficheDiv

function trim(string) 
{ 
	return string.replace(/(^\s*)|(\s*$)/g,''); 
} 

// Fonction qui test si une date est au bon format JJ/MM/AAAA, et que celle-ci est valide.
// chaine la date à tester
function verifDate(chaine)
{
	if( chaine.length<10 )
		return false;
		
	var jour  = chaine.substring(0,2);
	var mois  = chaine.substring(3,5);
	var annee = chaine.substring(6,10);


	if(mois>00 && mois <13)
	{
		//alert(jour+" "+dernier_jour_mois(mois,annee));
		if(jour>0 && jour <= dernierJourMois(mois,annee))
		{
			return true;
		}// if jour
		else
			return false;
	}//if mois
	else
		return false;
}

//renvoi le dernier jour du mois, en fonction de l'année
function dernierJourMois(mois,annee)
{
	if(mois == "01" || mois == "03" || mois == "05" || mois == "07" || mois == "08" || mois == "10" || mois == "12")
		return 31;
	else
		if( mois != "02")
			return 30;
		else
			if((annee%4)==0)
				return 29;
			else
				return 28;
}

function verifHeure(val)
{
	 if(val.length!=5)
	 {
	 		return false;
	 }
	 
	 if( val.substring(2,3).toUpperCase() != "H" )
	 {
	 		return false;
	 }
	 
	 var heure   = parseInt(val.substring(0,2));
	 var minutes = parseInt(val.substring(3,5));
	 
	 if(heure<0 || heure>23)
	 {
	 		return false;
	 }
	 
	 if(minutes <0 || minutes>59)
	 {
	 		return false;
	 }
	 
	 return true;
}

// Fonction qui compare deux date
// renvoi 0  si les deux dates sont égales
//        1  si date1 < date2
//        -1 si date1 > date2

function compareDate(date1,date2)
{
	var heure1  = 0,minute1 = 0, heure2 = 0, minute2 = 0;

	var jour1  = date1.substring(0,2);
	var mois1  = date1.substring(3,5);
	var annee1 = date1.substring(6,10);

	try {
	 heure1  = date1.substring(11,13);
	 minute1 = date1.substring(14,16);
	}
	catch(E){;}

	var jour2  = date2.substring(0,2);
	var mois2  = date2.substring(3,5);
	var annee2 = date2.substring(6,10);

	try {
	 heure2  = date2.substring(11,13);
	 minute2 = date2.substring(14,16);
	}
	catch(E){;}

	if(annee2 <= annee1)
	{
		if(annee2 == annee1)
		{
		  if (mois2 <= mois1)
			{
				if (mois2 == mois1)
				{
					 if(jour2 <= jour1)
					 {
					 	if(jour2 == jour1)
					 	{
					 		if(heure2 <= heure1)
					 		{
					 			if(heure2 == heure1)
					 			{
					 				if(minute2 <= minute1)
					 				{
					 					if(minute2 == minute1)
					 						return 0;
					 					else
					 						return -1;
					 				}
					 				else
					 					return 1;
					 			}
					 			else
					 				return -1;
					 		}
					 		else
					 			return 1;
						}
						else
							return -1;
					}
					else
						return 1;
				}
				else
					return -1;
			}
			else
				return 1;
		}
		else
			return -1;
	}
	else
		return 1;
}//compare_deb_fin

// Fonction qui renvoi la date d'aujourd'hui
function getDateToday()
{
 	var today = new Date();
 	var jour = today.getDate();
 	if(jour<10)
 		jour = "0"+jour;
 	var mois = today.getMonth();
 	if((mois+1)<10)
 		mois = "0"+(mois+1);
 	else mois = mois+1;

 	return jour+"/"+mois+"/"+today.getFullYear();
}//majDate

function aveil(Date)
{
   var annee = parseInt(Date.substring(6,10),10);
   var mois  = parseInt(Date.substring(3,5),10);
   var jour  = parseInt(Date.substring(0,2),10);

   var sep = Date.charAt(2);

   if( jour==1 )
   {
        if(mois==1)
        {
            annee--;
            mois = 12;
        }
        else
          mois --;
        jour = dernierJourMois(mois,annee);
   }//if jour == 1
   else
      jour--;

	if(jour<10)
 		jour = "0"+jour;
 	
	if(mois<10)
 		mois = "0"+mois;
 		
   return jour+sep+mois+sep+annee;
   
}//aveil

function lendemain(Date)
{
   var annee = parseInt(Date.substring(6,10),10);
   var mois  = parseInt(Date.substring(3,5),10);
   var jour  = parseInt(Date.substring(0,2),10);

   var sep = Date.charAt(2);

  //on augment l'annee de 1 quand on est le dernier jour de l'annee
  if(jour==31 && mois==12)
  {
      annee++;
      mois = 1;
      jour = 1;
  }
  else
      if(dernierJourMois(mois,annee)==jour)
      {
          jour = 1;
          mois ++;
      }
      else
        jour ++;

	if(jour<10)
 		jour = "0"+jour;
 	
	if(mois<10)
 		mois = "0"+mois;
 		
   return jour+sep+mois+sep+annee;
}//aveil

// fonction qui permet de mettre la date deux automatiquement (date1 + 1 mois)
function dateMoreOneMonth(Date)
{
  var renv = "";
  if(Date!= "")
  {
		var date1 = Date;

		if(verifDate(date1)==true)
		{
			var jour = date1.substring(0,2);
			var mois = date1.substring(3,5);
			var an   = date1.substring(6,10);
			var sep  = date1.charAt(2);

			if(mois!= "12")
			{
				var dern_jour_mois = dernierJourMois(mois,an);
				mois = parseInt(mois,10)+1;
				if(parseInt(mois,10)<10)
					mois ="0"+mois;

				if(jour == dern_jour_mois)
					jour = dernier_jour_mois(mois,an);
			}
			else
			{
				mois = "01";
				an = parseInt(an)+1;
			}//else
		        renv = jour+sep+mois+sep+an;
		}
  }//if
  return renv;
}//change_date


// Laurent 02/12/2005
// fonction qui permet de supprimer un mois (date1 - 1 mois)
function dateLessOneMonth(Date)
{
  var renv = "";
  if(Date!= "")
  {
		var date1 = Date;
		if(verifDate(date1)==true)
		{
			var jour = date1.substring(0,2);
			var mois = date1.substring(3,5);
			var an   = date1.substring(6,10);
			var sep  = date1.charAt(2);

			if(mois!= "01")
			{
				var dern_jour_mois = dernierJourMois(mois,an);
				mois = parseInt(mois,10)-1;
				if(parseInt(mois,10)<10)
					mois ="0"+mois;

				if(jour == dern_jour_mois)
					jour = dernier_jour_mois(mois,an);
			}
			else
			{
				mois = "12";
				an = parseInt(an)-1;
			}//else
	    renv = jour+sep+mois+sep+an;
		}
  }//if(Date!= "")
  return renv;
}//dateLessOneMonth




function getDayOfWeek(dte)
{
	if(dte.length >= 10)
	{
		tabJour = new Array(" Dimanche"," Lundi"," Mardi"," Mercredi"," Jeudi"," Vendredi"," Samedi");

		today = new Date(dte.substring(6,10),(dte.substring(3,5)-1),dte.substring(0,2));
		jourFct = today.getDay();

		return tabJour[ jourFct ];
	}
	else
		return "";
}// getDayOfWeek



//Fonction qui renvoi en toutes lettres
function date_en_lettre(dte)
{
	navvers = navigator.appVersion.substring(0,1);
	if (navvers > 3)
		navok = true;
	else
		navok = false;

	today = new Date(dte.substring(6,10),(dte.substring(3,5)-1),dte.substring(0,2));
	today.setDate( dte.substring(0,2) );

	jour = today.getDay();

	numero = today.getDate();
	if (numero<10)
		numero = "0"+numero;
	mois = today.getMonth();
	if (navok)
		annee = today.getFullYear();
	else
		annee = today.getYear();

	TabJour = new Array("Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi");
	TabMois = new Array("janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre");
	messageDate = TabJour[jour] + " " + numero + " " + TabMois[mois] + " " + annee;

	return messageDate;

}//date_en_lettre


function getNumMois(nomMois)
{
	nomMois = nomMois.toLowerCase();
	if( nomMois == "janv" || nomMois == "janvier"  )
		return 1;
	if( nomMois == "fev" || nomMois == "fevrier" || nomMois == "février" )
		return 2;
	if( nomMois == "mar" || nomMois == "mars" )
		return 3;
	if( nomMois == "avr" || nomMois == "avril" )
		return 4;
	if( nomMois == "mai" )
		return 5;
	if( nomMois == "juin" )
		return 6;
	if( nomMois == "jui" || nomMois == "juillet" )
		return 7;
	if( nomMois == "aou" || nomMois == "aout" || nomMois == "août" )
		return 8;
	if( nomMois == "sep" || nomMois == "septembre" )
		return 9;
	if( nomMois == "oct" || nomMois == "octobre" )
		return 10;
	if( nomMois == "nov" || nomMois == "novembre" )
		return 11;
	if( nomMois == "dec" || nomMois == "decembre" || nomMois == "décembre" )
		return 12;
}//getNumMois












//Fonction qui teste si la chaine est numerique ou non
// Chaine : la liste à tester
// liste  : chaine de caractère contenant la liste des carartéres que l'on autorise (les uns à la suite des autres)

// par exemple  liste =",." -> si la chaine contient d'autre caractère que des chiffres ou des points ou des virgules, on renvoi faux.
function isNumeric(chaine,liste)
{
	// les char autorisés
	var charAllow = "0123456789"+liste;

	var test = true;
	if(chaine.length==0)
		test = false;
	for(var i=0;i<chaine.length;i++)
	{
		if( charAllow.indexOf(chaine.charAt(i))==-1)
			test = false;
	}
	return test;
}

function isNumerique(chaine,liste)
{
	// les char autorisés
	var charAllow = "0123456789"+liste;

	var test = true;
	if(chaine.length==0)
		test = false;
	for(var i=0;i<chaine.length;i++)
	{
		if( charAllow.indexOf(chaine.charAt(i))==-1)
			test = false;
	}
	return test;
}

//chaine la chaine à tester
//listeUnic Liste de caractéres qui ne doivent etre present au maximum une fois dans la chaine
//listeUnic Liste de caractéres qui peuvent etre present une fois ou plus dans la chaine
function isNumeric1(chaine,listeUnic,listePlusieur)
{
	var listeNb = "0123456789";
	var test = true;

	//On ajoute les caractéres de listePlusieur, et de tabUnic a listeNb.
	listeNb += listePlusieur + listeUnic;

	// on verifie chaque caractère de chaine.
	for(var i=0;i<chaine.length;i++)
	{
		var charAtI = chaine.charAt(i);
		if(listeNb.indexOf(charAtI)==-1)
			test = false;
		else
		{
			var indUnic = listeUnic.indexOf(charAtI);
			if(indUnic !=-1 && listeInic.indexOf(charAtI,indUnic)!=-1 )
				test = false;
		}//else
	}//for i

	//alert(test+"'"+chaine.charAt(0)+"'"+chaine.charAt(chaine.length-1)+"'");

	// on vérifie que le premier et de dernier char est un chiffre.
	if(test == true)
	{
		if( (listeNb.indexOf(chaine.charAt(0)) == -1) || (listeNb.indexOf(chaine.charAt(chaine.length-1)) == -1) )
			test = false;
	}
	//alert(test);

	return test;
}

//chaine : le nombre à tester
function isNumericEntier(chaine)
{
	return isNumeric1(chaine,"","");
}

//chaine le nombre à tester
//Point le caractère pour les décimaux (. ou ,)
function isNumericDecimal(chaine,Point)
{
	return isNumeric1(chaine,Point,"");
}

// fonction qui test la validité d'un email.
function verifEmail(chaine)
{

	var char_interdit = " é'èçà;:!öôûüùëê,";
	var valid = true;
	// présence d'au moins un point
	if(chaine.indexOf(".")==-1)
		valid = false;
	//on compte le nombre de @ et si different de 1 --> mauvais email
	cmp = 0;
	i=0;
	while(cmp<2 && i<chaine.length)
	{
		if(chaine.charAt(i)=="@")
			cmp++;
		i++;
	}//while
	if(cmp!=1)
		valid = false;
	//on verifie la présence d'aucun charactère interdit
	for(i=0;i<char_interdit.length;i++)
	{
		if(chaine.indexOf(char_interdit.charAt(i))!=-1)
		       valid = false;
	}//for j
	return valid;

	//return /^[\w\._]+@[\w]{2,}[.][A-Za-z]{1,6}$/.test(chaine);
}



function verifNumTel(chaine)
{
 	return /^(0\d{9)|(0\d[ \.-]\d{2}[ \.-]\d{2}[ \.-]\d{2}[ \.-]\d{2})$/.test(chaine);
}


function makevisible(idImg,which)
{
	cur = document.getElementById(idImg);
	if (which==0)
		cur.filters.alpha.opacity=90;
	else
		cur.filters.alpha.opacity=30
}

function fctGras(srcElem,cas)
{
   if(cas == "0")
      srcElem.style.fontWeight = "bold";
   else
      srcElem.style.fontWeight = "normal";
}

function fctCoche(nomForm,nomElem,num)
{
  var objForm = document.forms[nomForm];

  var obj = objForm.elements[nomElem];

  if(obj)
  {
      if(obj.length)
        obj[num].checked = (!obj[num].checked);
      else
        obj.checked = (!obj.checked);
  }
}//coche

function fctDecoche(nomForm,nomElem,num)
{
   var objForm = document.forms[nomForm];

  var obj = objForm.elements[nomElem];

  if(obj)
  {
      if(obj.length)
        obj[num].checked = false;
      else
        obj.checked = false;
  }
}

function windowResize(larg,haut,cache)
{
   window.resizeTo(larg,haut)
   window.moveTo((screen.width/2)-(larg/2),(screen.height/2)-(haut/2))
   document.body.style.overflow=cache;
}

function testSourisInElem(event,Elem)
{
	var posElemX = getAbsolutePosLeft(Elem,false);
	var posElemY = getAbsolutePosTop(Elem,false);
	
	var	posX = Event.pointerX(event);
	var	posY = Event.pointerY(event);
	
	var retour = false;
	
	if(Elem.style.display == '' && ( posX>= posElemX && posX<= parseInt( posElemX + Elem.offsetWidth ,10) && posY>= posElemY && posY<= parseInt( posElemY + Elem.offsetHeight ,10) )  )
		retour = true;
		
	return retour;	
}//testSourisInElem

function Position(x, y) {
	this.x = x;this.y = y;
}

function getAbsolutePos(el, stopIfAbsolute) 
{
	var res = new Position(el.offsetLeft, el.offsetTop);
	if (el.offsetParent)
	{
		if ((stopIfAbsolute != true ) || ((el.offsetParent.currentStyle.position != 'absolute') && (el.offsetParent.currentStyle.position != 'relative') && (el.offsetParent.currentStyle.overflow != 'auto') && (el.offsetParent.currentStyle.overflow != 'scroll')))
		{
			var tmp = getAbsolutePos(el.offsetParent, stopIfAbsolute);
			res.x += tmp.x;
			res.y += tmp.y;
		}
	}
	return res;
}

function getAbsolutePosLeft(el, stopIfAbsolute) {

	var res = el.offsetLeft;
	if (el.offsetParent)
	{
		if ((stopIfAbsolute != true ) || ((el.offsetParent.currentStyle.position != 'absolute') && (el.offsetParent.currentStyle.position != 'relative') && (el.offsetParent.currentStyle.overflow != 'auto') && (el.offsetParent.currentStyle.overflow != 'scroll')))
		{
			var tmp = getAbsolutePosLeft(el.offsetParent, stopIfAbsolute);
			res += tmp;
		}
	}
	return res;
}

function getAbsolutePosTop(el, stopIfAbsolute) {

	var res = el.offsetTop;
	if (el.offsetParent)
	{
		if ((stopIfAbsolute != true ) )
		{
			var tmp = getAbsolutePosTop(el.offsetParent, stopIfAbsolute);
			res += tmp;
		}
	}
	return res;
}

function fctTousAucun(nomForm, nomElem, nomCheckRef)
{
	var objForm = document.forms[nomForm];
	var objElem = objForm.elements[nomElem];

	var objRef = objForm.elements[nomCheckRef];

	if(objElem)
	{
		if(objElem.length)
		{
			for(var i=0;i<objElem.length;i++)
			{
				objElem[i].checked = (objRef.checked);
			}//for i
		}//if length
		else
			objElem.checked = (objRef.checked);
	}//objElem

}//fctTousAucun

function mon_erreur(message,fichier,ligne)
{
 var erreur = "";
 erreur = "Fichier : "+fichier;
 erreur += "\nLigne : "+ligne;
 erreur += "\nMessage : "+ message;
 alert(erreur);
 return true;
}


//window.onerror = mon_erreur;


function fctAfficheMasqueSelect(affiche)
{
	try
	{
		var objSelect = document.getElementsByTagName("select");
		var strAffiche =(affiche)? "":"none";

		if(objSelect)
		{
			if(objSelect.length)
			{
				for(i=0;i<objSelect.length;i++)
					objSelect[i].style.display = strAffiche;
			}
			else
				objSelect.style.display = strAffiche;
		}
	}	
	catch(e){;}
	
	try
	{	
		var objSelect = document.getElementsByTagName("embed");
		
		if(objSelect)
		{
			if(objSelect.length)
			{
				for(i=0;i<objSelect.length;i++)
					objSelect[i].style.display = strAffiche;//.style.visibility = (strAffiche==true)? 'visible':'hidden';
			}
			else
				objSelect.style.display = strAffiche;//.style.visibility = (strAffiche==true)? 'visible':'hidden';
		}		
	}//try
	catch(e){;}
	
}//fctAfficheMasqueSelect

function ajoutEventOnElement( elem, evnmt, fct )
{
  try{ elem.attachEvent( evnmt,   fct  ); }
  catch(e)
  {
  	elem.addEventListener(evnmt.substring(2), fct,  false);
  }
}//ajoutEventOnElemen

function detachEventOnElement(elem, evnmt, fct)
{
	try { elem.detachEvent( evnmt, fct ); }
	catch(E)
	{ elem.removeEventListener(evnmt.substring(2), fct,  false); }
}//detachEventOnElement

/*
if(!window.clipboardData) {
    window.clipboardData = {
        setData : function(mode,content) {
            var clipboard = document.body;
            var flashclipboard = clipboard.flashclipboard;
            if(flashclipboard == null) {
                flashclipboard = document.createElement('div');
                clipboard.flashclipboard = flashclipboard;
                clipboard.appendChild(flashclipboard);
            }
            flashclipboard.innerHTML = '<embed src="/intranet/swf/clipboard.swf" FlashVars="clipboard='+encodeURIComponent(content)+'" width="0" height="0" type="application/x-shockwave-flash"></embed>';
        }
    }
}
*/
function copy_clip(meintext)
{
 	 if (window.clipboardData) 
   {
   
   		// the IE-manier
   		window.clipboardData.setData("Text", meintext);
   
   		// waarschijnlijk niet de beste manier om Moz/NS te detecteren;
   		// het is mij echter onbekend vanaf welke versie dit precies werkt:
   }
   else if (window.netscape) 
   { 
   
   		// dit is belangrijk maar staat nergens duidelijk vermeld:
   		netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
   
   		// maak een interface naar het clipboard
   		var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
   		if (!clip) return;
   
   		// maak een transferable
   		var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
   		if (!trans) return;
   
  		// specificeer wat voor soort data we op willen halen; text in dit geval
   		trans.addDataFlavor('text/unicode');
   
   		// om de data uit de transferable te halen hebben we 2 nieuwe objecten nodig   om het in op te slaan
   		var str = new Object();
   		var len = new Object();
   
   		var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
   
   		var copytext=meintext;
   
   		str.data=copytext;
   
   		trans.setTransferData("text/unicode",str,copytext.length*2);
   
   		var clipid=Components.interfaces.nsIClipboard;
   
   		if (!clip) return false;
   
   		clip.setData(trans,null,clipid.kGlobalClipboard);
   
   }
   //alert("Following info was copied to your clipboard:\n\n" + meintext);
   return false;
}
