function saisirCIDP(vChampName, vChampCIDP){
    numeriqueseul(vChampName,vChampName.value);
    
	if(document.getElementById('cidp1').value.length==3 && document.getElementById('cidp2').value.length==0){
	    document.getElementById('cidp2').focus();	    	    	    
	}
	if(document.getElementById('cidp1').value.length==3 && document.getElementById('cidp2').value.length==3 && document.getElementById('cidp3').value.length==0){
        document.getElementById('cidp3').focus();
    }
	if(document.getElementById('cidp1').value.length==3 && document.getElementById('cidp2').value.length==3 && document.getElementById('cidp3').value.length==3){
        vChampCIDP.value = document.getElementById('cidp1').value + document.getElementById('cidp2').value + document.getElementById('cidp3').value;
    }
}

function Get_Cookie(name) { 
   var start = document.cookie.indexOf(name+"="); 
   var len = start+name.length+1; 
   if ((!start) && (name != document.cookie.substring(0,name.length))) return null; 
   if (start == -1) return null; 
   var end = document.cookie.indexOf(";",len); 
   if (end == -1) end = document.cookie.length; 
   return unescape(document.cookie.substring(len,end)); 
}

function ChangeCookie(cookieName){
	var i = Get_Cookie(cookieName);
	var exdate=new Date()
	exdate.setDate(365);
	if(i==1){
		document.cookie = cookieName +"=0;expires="+exdate;
	}
	else{
		document.cookie = cookieName +"=1;expires="+exdate;
	}
}

// limiter au chiffre seulement noter que le \ ne marche pas. faire un check quand meme dans la form avant submit
function numeriqueseul(vChampName,vChampValue){
	//celui-ci pour l'apostrophe (dernier caractère)
	var alphaCheck = " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZàéèçùÀÉÈÇÙ!@#$%?&*()_-+=/\|{}[]<>,:;`^¸'";
	//celui-ci c'est pour le guillemet (dernier caractère)
	var alphaCheck2 = ' abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZàéèçùÀÉÈÇÙ!@#$%?&*()_-+=/\|{}[]<>,:;`^¸"';
	if ((alphaCheck.indexOf(vChampValue.substr(vChampValue.length-1,1)) >= 1) || (alphaCheck2.indexOf(vChampValue.substr(vChampValue.length-1,1)) >= 1)) {
	vChampName.value = vChampName.value.substr(0, (vChampValue.length-1));
	}
	if ((alphaCheck.indexOf(vChampValue.substr(0,1)) >= 1) || (alphaCheck2.indexOf(vChampValue.substr(0,1)) >= 1)) {
	vChampName.value = vChampName.value.substr(1, (vChampValue.length));
	}
}
function numeriqueseulOLD(vChampName,vChampValue){
	if(!(event.keyCode==8 || event.keyCode==46 || event.keyCode==37 || event.keyCode==39)){
		//celui-ci pour l'apostrophe (dernier caractère)
		var alphaCheck = " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZàéèçùÀÉÈÇÙ!@#$%?&*()_-+=/\|{}[]<>,:;`^¸'";
		//celui-ci c'est pour le guillemet (dernier caractère)
		var alphaCheck2 = ' abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZàéèçùÀÉÈÇÙ!@#$%?&*()_-+=/\|{}[]<>,:;`^¸"';
		var texte = "";
		for (i = 0; i < vChampValue.length; i++){   
			if((alphaCheck.indexOf(vChampValue.charAt(i)) == -1) || (alphaCheck2.indexOf(vChampValue.charAt(i)) == -1)){
				texte = texte + vChampValue.charAt(i);
			}
		}
		vChampName.value = texte;
	}
}

// ADOUNE : pour valider une date
// fonction qui vérifie la date
// DHTML date validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
// Declaring valid date character, minimum year and maximum year
var dtCh= "-";
var minYear=1900;
var maxYear=2100;
 
function isInteger(s){
 var i;
    for (i = 0; i < s.length; i++){   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}
 
function stripCharsInBag(s, bag){
 var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}
 
function daysInFebruary (year){
 // February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
 for (var i = 1; i <= n; i++) {
  this[i] = 31
  if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
  if (i==2) {this[i] = 29}
   } 
   return this
}
 
function isDate(dtStr){
 var daysInMonth = DaysArray(12)
 var pos1=dtStr.indexOf(dtCh)
 var pos2=dtStr.indexOf(dtCh,pos1+1)
 var strYear=dtStr.substring(0,pos1)
 var strMonth=dtStr.substring(pos1+1,pos2)
 var strDay=dtStr.substring(pos2+1)

 strYr=strYear
 if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
 if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
 for (var i = 1; i <= 3; i++) {
  if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
 }
 month=parseInt(strMonth)
 day=parseInt(strDay)
 year=parseInt(strYr)
 if (pos1==-1 || pos2==-1){
  alert("Veuillez vérifier le format de date:\raaaa-mm-jj (ex. 2000-12-31)\r\rPlease check the date format:\ryyyy-mm-dd (ex. 2000-12-31)")
  return false
 }
 if (strMonth.length<1 || month<1 || month>12){
  alert("Date invalide\r\rInvalid Date")
  return false
 }
 if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
  alert("Date invalide\r\rInvalid Date")
  return false
 }
 if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
  alert("Date invalide\r\rInvalid Date")
  return false
 }
 if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
  alert("Date invalide")
  return false
 }
return true
}
 //FIN DE VALIDER UNE DATE
 
 function saisirCodeRegional(champNom,nbChar,nomChampNext){
	var texte = '';
	if(!(event.keyCode==8 || event.keyCode==46)){
		for (i = 0; i <= champNom.value.length; i++){
		   if (!(isNaN(champNom.value.charAt(i)))){texte = texte + champNom.value.charAt(i);}
		}
		if(champNom.value!=texte){champNom.value = texte;}
		if(champNom.value.length==nbChar){document.getElementById(nomChampNext).focus();}
	}
}

function saisirNoTel_court(champNom){
	var texte = '';
	if(!(event.keyCode==8 || event.keyCode==46)){
		for (i = 0; i <= champNom.value.length; i++){
		   if (!(isNaN(champNom.value.charAt(i)))){texte = texte + champNom.value.charAt(i);}
		}
		partie1 = texte.substring(0,3);	partie2 = texte.substring(3,7);	separateur = '-';
		if(partie1.length<3){separateur='';}
		noTel = partie1 + separateur + partie2;
		if(champNom.value!=(noTel)){champNom.value = noTel;}
	}
}
 function saisirNoTel_long(champNom){
			var texte = '';
			if(!(event.keyCode==8 || event.keyCode==46)){
				for (i = 0; i <= champNom.value.length; i++){
				   if (!(isNaN(champNom.value.charAt(i)))){texte = texte + champNom.value.charAt(i);}
				}
				partie1a = texte.substring(0,3); partie1 = texte.substring(3,6);	partie2 = texte.substring(6,10);	separateur = '-';
				if(partie1.length<3){separateur='';}
				noTel = partie1a + separateur + partie1 + separateur + partie2;
				if(champNom.value!=(noTel)){champNom.value = noTel;}
			}
		}
function saisirCodePostal(champNom){
	var texte = '';
	if(!(event.keyCode==8 || event.keyCode==46)){
	    for (i = 0; i <= champNom.value.length; i++){
		   if ((i==0) || (i==2) || (i==5)) {
		      if ((champNom.value.charAt(i).toLowerCase() <= 'z') && (champNom.value.charAt(i).toLowerCase() >= 'a')){
		      texte = texte + champNom.value.charAt(i);
		      }
		   }
		   else if (!(isNaN(champNom.value.charAt(i)))){texte = texte + champNom.value.charAt(i);}  
		}
		partie1 = texte.substring(0,3);	partie2 = texte.substring(3,6);	separateur = '-';
		if(partie1.length<3){separateur='';}
		codePostal = partie1 + separateur + partie2;
		if(champNom.value!=(codePostal)){champNom.value = codePostal;}
	}
}

/*La fonction fait en sorte que
 - l'usager ne peut entrer que des chiffres et des points(pour les fractions)
 - il ne peut pas entrer plus que un point
 - Les virgules se transforment en point automatiquement
 - Il ne peut pas y avoir plus de deux chiffres après le point
 - met un 0 avant le point si le premier caractère entré est un point
 - Isaé août 2005
 */
function saisirPrix(champNom) {
      var texte = "";
	  var point = 0;
	  var posPoint = 999;
      for (i = 0; i <= champNom.value.length; i++){
		   if ((!(isNaN(champNom.value.charAt(i)))) && (i - posPoint <= 2) && (champNom.value.charAt(i) != " ")){texte = texte + champNom.value.charAt(i);}
		   if (((champNom.value.charAt(i) == ".") || (champNom.value.charAt(i) == ",")) && (point == 0) && (i < 6)){
			   if (i == 0) {
				  texte = texte + "0.";
			   }
			   else{
			      texte = texte + ".";
			   }
			   point = 1;
			   posPoint = i;
		   }
	  }
	  champNom.value = texte;
}


function trim(chaine) {
    return chaine.replace(/^\s+/, '').replace(/\s+$/, '');
}


/*
fonction générique de validation de formulaire (Isaé 8 mai 2007)

****************************************MODE D'EMPLOI***************************************************

1) Pour les champs obligatoires: mettez 'obligatoire' comme propriété du input
	ex: <input type="text" name="text2" obligatoire>
	
2) Pour les listes qui contiennent une valeur non permise(comme ==veuillez choisir...==) mettez nonvalide comme propriété de option
	ex:<select name="list1" obligatoire>
			<option value="0" nonvalide>==veuillez choisir une option==</option>
			<option value="1">Oui</option>
			<option value="2">Non</option>
	</select>
		
3) Lorsqu'un seul élément d'un groupe d'élément doit être complété(ex:groupe de checkbox),mettez le groupe d'élément à l'intérieur d'un div et mettez choix comme propriété
	ex:<div choix>
			<input type="text" name="text1">
			<input type="text" name="text2">
			<input type="text" name="text3">
		</div>
		
paramètres:
tag:nom du formulaire
langue:fr ou en
*/


function valideFormulaire(tag,langue) {
	var couleurNormale = '#FFFFFF';
	var couleurErreur = '#FF3333';	
	var retour,estUnChoix,messageValidation,nonvalide,objDiv,divId,cptId;
	var objTag = document.getElementById(tag);
	var largeurFormulaire = objTag.offsetWidth;

	var objetsFormulaire = objTag.all;
	
	
	if (langue == "fr") {
		messageValidation = "Veuillez compléter les champs colorés";
	}
	else {
		messageValidation = "Please complete the colored fields";
	}	
	
	//réinitialise pour une nouvelle vérification
	for (var x = 0; x < objetsFormulaire.length; x++) {
		var objInput = objetsFormulaire[x];
		objInput.verif = false;
	}
	
	//valeur par défaut du retour

	if (objTag.choix != undefined)  {
		estUnChoix = true;
	}
	retour = !estUnChoix;
	
	
	//div choix
	var tabDiv = objTag.getElementsByTagName('div');
	for (var i=0;i<tabDiv.length;i++) {
		objDiv = tabDiv[i];
		
		choixObligatoire = objDiv.choix != undefined;
		
		//si on a un div 'choix' (c'est-à-dire un div ou il faut remplir au moins un des champs qu'il contient)
		if (choixObligatoire) {
			divId = objDiv.id;
			//donne un Id au div s'il n'en a pas
			if (divId == "") {
				cptId = 1;
				while (document.getElementById("choix"+cptId) != undefined) {
					cptId++;
				}
				divId = "choix" + cptId;
				objDiv.id = divId;
	
			}
			
			objDiv.style.border = "0px";
			//alert(objDiv.parentNode.getAttribute("className").style.backgroundColor);
			//var valueClass = objDiv.parentNode.getAttribute("className")
			//objDiv.parentNode.setAttribute("className",valueClass);
			nonvalide = !valideFormulaire(divId,langue);
			
			if (nonvalide) {
				objDiv.style.border = "solid 2px " + couleurErreur;
				objDiv.style.padding = "2px";
				retour = false;
			}
		}
	}
	
	//parcourt les objets à l'intérieur du tag entré en paramètre
	for (var x = 0; x < objetsFormulaire.length; x++) {
		var objInput = objetsFormulaire[x];
		//alert('nomDiv='+tag + '\r' + 'type objet=' + objInput.type + '\r' + 'vérifié=' + objInput.verif);
		//si l'objet n'a pas été vérifié et qu'il est de type défini..
		if ((!objInput.verif) && (objInput.type != undefined)) {
			nonvalide = null;
			//s'il y a eu un champ incomplet dans un précédent appel de la fonction, on remet la couleur normale
			if (objInput.erreur == true) {
				objInput.style.backgroundColor = couleurNormale;
			}
			switch(objInput.type) {
				
				case "text":
					nonvalide = (((objInput.obligatoire != undefined) || (estUnChoix)) && (trim(objInput.value) == ""));
				break;
				case "textarea":
					nonvalide = (((objInput.obligatoire != undefined) || (estUnChoix)) && (trim(objInput.value) == ""));
				break;
				case "select-one":
					nonvalide = (((objInput[0].nonvalide != undefined) || (estUnChoix)) && (objInput.selectedIndex == 0));
				break;
				case "checkbox":
					nonvalide = ((!objInput.checked) && (estUnChoix));
				break;
				
				case "radio":
					nonvalide = ((!objInput.checked) && (estUnChoix));
				break;
				
			}
			if ((nonvalide) && (!estUnChoix)){
				objInput.style.backgroundColor = couleurErreur
				objInput.erreur = true;
				//enlève la couleur d'erreur lorsque la propriété value du input change
				
				retour = false;
			}
			if ((!nonvalide) && (estUnChoix)){
				retour = true;
				
			}
			objInput.attachEvent('onpropertychange',function(e) {  
													if ((e.propertyName == 'value') || (e.propertyName == 'checked')) {
														e.srcElement.style.backgroundColor = couleurNormale;
														if (estUnChoix){
															objTag.style.border = '0px';
														}	
													}	
													});
			
			
			objInput.verif = true;
		}	
		
	}
	

	//enlève l'ancien message d'erreur
	if ((objOldMessageErreur = document.getElementById(tag+"lblMessageErreur")) != undefined) {
		objTag.removeChild(objOldMessageErreur);
	}
	
	//place un message en haut du formulaire s'il y a des champs imcomplets et que le tag entré en paramètre est un formulaire
	if 	((retour == false) && (!estUnChoix)){
		var objMessageErreur = document.createElement('span');
		objMessageErreur.setAttribute('id', tag+'lblMessageErreur');
		objMessageErreur.style.setAttribute('cssText','background-color:#FFFFCF; margin-bottom:8px; font-size:11px;color:#000000; width:' + largeurFormulaire + 'px; border:1px solid #333333; padding:2px;');
		objMessageErreur.innerHTML = "<span style='color:#FF0000'>!!</span>" + messageValidation;
		objTag.insertBefore(objMessageErreur,objTag.firstChild);
		window.scroll(0,objMessageErreur.scrollHeight);
	}
	return retour;
	
}	






/* Début - Infobulle */
/* Exemple d'utilisation: */
/* <a href="http://www.google.ca" class="definition"><span onMouseOver="poplink('<b>Mot à expliquer ici</b><br />Mon message ici');" onMouseOut="killlink()">lien vers définition ici</span></a> */
/* Fin: infobulle */
/* -- Yannick - 25/04/2005 -- */
function poplink_init(){
	domok = document.getElementById;
	if (domok)
	{
	skn = document.getElementById("topdecklink").style;
	if(navigator.appName.substring(0,3) == "Net")
		document.captureEvents(Event.MOUSEMOVE);
	document.onmousemove = get_mouse;
	}
}

function poplink(msg)
{

var content ="<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0 BGCOLOR=#000000 width=200><TR><TD><TABLE WIDTH=100% BORDER=0 CELLPADDING=3 CELLSPACING=1><TR><TD BGCOLOR=#FFFFCC><span class=infobulle_dossier>"+msg+"</span></TD></TR></TABLE></TD></TR></TABLE>";

	if (domok)
		{
	  	document.getElementById("topdecklink").innerHTML = content;
	  	skn.visibility = "visible";
  		}
}
function get_mouse(e)
	{
	var x = (navigator.appName.substring(0,3) == "Net") ? e.pageX : event.x+document.body.scrollLeft;
	var y = (navigator.appName.substring(0,3) == "Net") ? e.pageY : event.y+document.body.scrollTop;
	skn.left = x-100;
	skn.top = y+20;
	}
function killlink()
{
if (domok)
	skn.visibility = "hidden";
}
/* Fin - Infobulle */


/* Permet de formatter le texte à la Word */
/*
callFormatting('Createlink')
callFormatting('Bold')
callFormatting('Italic')
callFormatting('Underline')
callFormatting('Cut')
callFormatting('Copy')
callFormatting('Paste')
callFormatting('InsertOrderedList')
callFormatting('InsertUnorderedList')
callFormatting('JustifyLeft')
callFormatting('JustifyCenter')
callFormatting('JustifyRight')

Pour afficher le texte provenant d'une BD dans le DIV de l'éditeur Word, voici la ligne à mettre à la fin de la page en question:
document.all.oDiv_fr.innerHTML = '<%=(replace(HTMLDecode(NomDuRecordSet.Fields.Item("NomDuChamps").Value),"'", "\'"))%>';
oDiv_fr=le DIV de l'éditeur Word.

Créer un input de type hidden et exécuter ce code avant de soumettre le formulaire:
document.LeNomDuFormulaire.LeNomDuChampsHidden.value = document.all.oDiv_fr.innerText;

*/
function callFormatting(sFormatString){
	document.execCommand(sFormatString);
}
/*  onpaste="formatTextBeforePaste(this);" */
function formatTextBeforePaste(obj) {
	event.returnValue = false;
	obj.innerHTML = obj.innerHTML + window.clipboardData.getData("Text");
}


/* Affiche une zone qui est masquée */
/* Yannick - 23/08/2005 */
function AfficheZone(champs){
	if(document.getElementById(champs).style.display== 'block'){
		document.getElementById(champs).style.display= 'none';
	}
	else{
		document.getElementById(champs).style.display= 'block';
	}
}

function confirmer_suppression(sMsg, link) {
	if(confirm(sMsg)){
		location.href=link;
	}
}

<!-- Begin
// Check browser version
var isNav4 = false, isNav5 = false, isIE4 = false
var strSeperator = "-"; 
// If you are using any Java validation on the back side you will want to use the / because 
// Java date validations do not recognize the dash as a valid date separator.
var vDateType = 3; // Global value for type of date format
//                1 = mm/dd/yyyy
//                2 = yyyy/dd/mm  (Unable to do date check at this time)
//                3 = dd/mm/yyyy
var vYearType = 4; //Set to 2 or 4 for number of digits in the year for Netscape
var vYearLength = 2; // Set to 4 if you want to force the user to enter 4 digits for the year before validating.
var err = 0; // Set the error code to a default of zero
if(navigator.appName == "Netscape") {
if (navigator.appVersion < "5") {
isNav4 = true;
isNav5 = false;
}
else
if (navigator.appVersion > "4") {
isNav4 = false;
isNav5 = true;
   }
}
else {
isIE4 = true;
}
function DateFormat(vDateName, vDateValue, e, dateCheck, dateType) {
vDateType = dateType;
// vDateName = object name
// vDateValue = value in the field being checked
// e = event
// dateCheck 
// True  = Verify that the vDateValue is a valid date
// False = Format values being entered into vDateValue only
// vDateType
// 1 = mm/dd/yyyy
// 2 = yyyy/mm/dd
// 3 = dd/mm/yyyy
//Enter a tilde sign for the first number and you can check the variable information.
if (vDateValue == "~") {
alert("AppVersion = "+navigator.appVersion+" \nNav. 4 Version = "+isNav4+" \nNav. 5 Version = "+isNav5+" \nIE Version = "+isIE4+" \nYear Type = "+vYearType+" \nDate Type = "+vDateType+" \nSeparator = "+strSeperator);
vDateName.value = "";
vDateName.focus();
return true;
}
var whichCode = (window.Event) ? e.which : e.keyCode;
// Check to see if a seperator is already present.
// bypass the date if a seperator is present and the length greater than 8
if (vDateValue.length > 8 && isNav4) {
if ((vDateValue.indexOf("-") >= 1) || (vDateValue.indexOf("/") >= 1))
return true;
}
//Eliminate all the ASCII codes that are not valid
var alphaCheck = " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/-";
if (alphaCheck.indexOf(vDateValue) >= 1) {
if (isNav4) {
vDateName.value = "";
vDateName.focus();
vDateName.select();
return false;
}
else {
vDateName.value = vDateName.value.substr(0, (vDateValue.length-1));
return false;
   }
}
if (whichCode == 8) //Ignore the Netscape value for backspace. IE has no value
return false;
else {
//Create numeric string values for 0123456789/
//The codes provided include both keyboard and keypad values
var strCheck = '47,48,49,50,51,52,53,54,55,56,57,58,59,95,96,97,98,99,100,101,102,103,104,105';
if (strCheck.indexOf(whichCode) != -1) {
if (isNav4) {
if (((vDateValue.length < 6 && dateCheck) || (vDateValue.length == 7 && dateCheck)) && (vDateValue.length >=1)) {
alert("Veuillez vérifier le format de date:\raaaa-mm-jj (ex. 2000-12-31)\r\rPlease check the date format:\ryyyy-mm-dd (ex. 2000-12-31)");
vDateName.value = "";
vDateName.focus();
vDateName.select();
return false;
}
if (vDateValue.length == 6 && dateCheck) {
var mDay = vDateName.value.substr(2,2);
var mMonth = vDateName.value.substr(0,2);
var mYear = vDateName.value.substr(4,4)
//Turn a two digit year into a 4 digit year
if (mYear.length == 2 && vYearType == 4) {
var mToday = new Date();
//If the year is greater than 30 years from now use 19, otherwise use 20
var checkYear = mToday.getFullYear() + 30; 
var mCheckYear = '20' + mYear;
if (mCheckYear >= checkYear)
mYear = '19' + mYear;
else
mYear = '20' + mYear;
}
var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
if (!dateValid(vDateValueCheck)) {
alert("Veuillez vérifier le format de date:\raaaa-mm-jj (ex. 2000-12-31)\r\rPlease check the date format:\ryyyy-mm-dd (ex. 2000-12-31)");
vDateName.value = "";
vDateName.focus();
vDateName.select();
return false;
}
return true;
}
else {
// Reformat the date for validation and set date type to a 1
if (vDateValue.length >= 8  && dateCheck) {
if (vDateType == 1) // mmddyyyy
{
var mDay = vDateName.value.substr(2,2);
var mMonth = vDateName.value.substr(0,2);
var mYear = vDateName.value.substr(4,4)
vDateName.value = mMonth+strSeperator+mDay+strSeperator+mYear;
}
if (vDateType == 2) // yyyymmdd
{
var mYear = vDateName.value.substr(0,4)
var mMonth = vDateName.value.substr(4,2);
var mDay = vDateName.value.substr(6,2);
vDateName.value = mYear+strSeperator+mMonth+strSeperator+mDay;
}
if (vDateType == 3) // ddmmyyyy
{
var mMonth = vDateName.value.substr(2,2);
var mDay = vDateName.value.substr(0,2);
var mYear = vDateName.value.substr(4,4)
vDateName.value = mDay+strSeperator+mMonth+strSeperator+mYear;
}
//Create a temporary variable for storing the DateType and change
//the DateType to a 1 for validation.
var vDateTypeTemp = vDateType;
vDateType = 1;
var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
if (!dateValid(vDateValueCheck)) {
alert("Veuillez vérifier le format de date:\raaaa-mm-jj (ex. 2000-12-31)\r\rPlease check the date format:\ryyyy-mm-dd (ex. 2000-12-31)");
vDateType = vDateTypeTemp;
vDateName.value = "";
vDateName.focus();
vDateName.select();
return false;
}
vDateType = vDateTypeTemp;
return true;
}
else {
if (((vDateValue.length < 8 && dateCheck) || (vDateValue.length == 9 && dateCheck)) && (vDateValue.length >=1)) {
alert("Veuillez vérifier le format de date:\raaaa-mm-jj (ex. 2000-12-31)\r\rPlease check the date format:\ryyyy-mm-dd (ex. 2000-12-31)");
vDateName.value = "";
vDateName.focus();
vDateName.select();
return false;
         }
      }
   }
}
else {
// Non isNav Check
if (((vDateValue.length < 8 && dateCheck) || (vDateValue.length == 9 && dateCheck)) && (vDateValue.length >=1)) {
alert("Veuillez vérifier le format de date:\raaaa-mm-jj (ex. 2000-12-31)\r\rPlease check the date format:\ryyyy-mm-dd (ex. 2000-12-31)");
vDateName.value = "";
vDateName.focus();
return true;
}
// Reformat date to format that can be validated. mm/dd/yyyy
if (vDateValue.length >= 8 && dateCheck) {
// Additional date formats can be entered here and parsed out to
// a valid date format that the validation routine will recognize.
if (vDateType == 1) // mm/dd/yyyy
{
var mMonth = vDateName.value.substr(0,2);
var mDay = vDateName.value.substr(3,2);
var mYear = vDateName.value.substr(6,4)
}
if (vDateType == 2) // yyyy/mm/dd
{
var mYear = vDateName.value.substr(0,4)
var mMonth = vDateName.value.substr(5,2);
var mDay = vDateName.value.substr(8,2);
}
if (vDateType == 3) // dd/mm/yyyy
{
var mDay = vDateName.value.substr(0,2);
var mMonth = vDateName.value.substr(3,2);
var mYear = vDateName.value.substr(6,4)
}
if (vYearLength == 4) {
if (mYear.length < 4) {
alert("Veuillez vérifier le format de date:\raaaa-mm-jj (ex. 2000-12-31)\r\rPlease check the date format:\ryyyy-mm-dd (ex. 2000-12-31)");
vDateName.value = "";
vDateName.focus();
return true;
   }
}
// Create temp. variable for storing the current vDateType
var vDateTypeTemp = vDateType;
// Change vDateType to a 1 for standard date format for validation
// Type will be changed back when validation is completed.
vDateType = 1;
// Store reformatted date to new variable for validation.
var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
if (mYear.length == 2 && vYearType == 4 && dateCheck) {
//Turn a two digit year into a 4 digit year
var mToday = new Date();
//If the year is greater than 30 years from now use 19, otherwise use 20
var checkYear = mToday.getFullYear() + 30; 
var mCheckYear = '20' + mYear;
if (mCheckYear >= checkYear)
mYear = '19' + mYear;
else
mYear = '20' + mYear;
vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
// Store the new value back to the field.  This function will
// not work with date type of 2 since the year is entered first.
if (vDateTypeTemp == 1) // mm/dd/yyyy
vDateName.value = mMonth+strSeperator+mDay+strSeperator+mYear;
if (vDateTypeTemp == 3) // dd/mm/yyyy
vDateName.value = mDay+strSeperator+mMonth+strSeperator+mYear;
} 
if (!dateValid(vDateValueCheck)) {
alert("Veuillez vérifier le format de date:\raaaa-mm-jj (ex. 2000-12-31)\r\rPlease check the date format:\ryyyy-mm-dd (ex. 2000-12-31)");
vDateType = vDateTypeTemp;
vDateName.value = "";
vDateName.focus();
return true;
}
vDateType = vDateTypeTemp;
return true;
}
else {
if (vDateType == 1) {
if (vDateValue.length == 2) {
vDateName.value = vDateValue+strSeperator;
}
if (vDateValue.length == 5) {
vDateName.value = vDateValue+strSeperator;
   }
}
if (vDateType == 2) {
if (vDateValue.length == 4) {
vDateName.value = vDateValue+strSeperator;
}
if (vDateValue.length == 7) {
vDateName.value = vDateValue+strSeperator;
   }
} 
if (vDateType == 3) {
if (vDateValue.length == 2) {
vDateName.value = vDateValue+strSeperator;
}
if (vDateValue.length == 5) {
vDateName.value = vDateValue+strSeperator;
   }
}
return true;
   }
}
if (vDateValue.length == 10&& dateCheck) {
if (!dateValid(vDateName)) {
// Un-comment the next line of code for debugging the dateValid() function error messages
//alert(err);  
alert("Veuillez vérifier le format de date:\raaaa-mm-jj (ex. 2000-12-31)\r\rPlease check the date format:\ryyyy-mm-dd (ex. 2000-12-31)");
vDateName.focus();
vDateName.select();
   }
}
return false;
}
else {
// If the value is not in the string return the string minus the last
// key entered.
if (isNav4) {
vDateName.value = "";
vDateName.focus();
vDateName.select();
return false;
}
else
{
vDateName.value = vDateName.value.substr(0, (vDateValue.length-1));
return false;
         }
      }
   }
}
function dateValid(objName) {
var strDate;
var strDateArray;
var strDay;
var strMonth;
var strYear;
var intday;
var intMonth;
var intYear;
var booFound = false;
var datefield = objName;
var strSeparatorArray = new Array("-"," ","/",".");
var intElementNr;
// var err = 0;
var strMonthArray = new Array(12);
strMonthArray[0] = "Jan";
strMonthArray[1] = "Feb";
strMonthArray[2] = "Mar";
strMonthArray[3] = "Apr";
strMonthArray[4] = "May";
strMonthArray[5] = "Jun";
strMonthArray[6] = "Jul";
strMonthArray[7] = "Aug";
strMonthArray[8] = "Sep";
strMonthArray[9] = "Oct";
strMonthArray[10] = "Nov";
strMonthArray[11] = "Dec";
//strDate = datefield.value;
strDate = objName;
if (strDate.length < 1) {
return true;
}
for (intElementNr = 0; intElementNr < strSeparatorArray.length; intElementNr++) {
if (strDate.indexOf(strSeparatorArray[intElementNr]) != -1) {
strDateArray = strDate.split(strSeparatorArray[intElementNr]);
if (strDateArray.length != 3) {
err = 1;
return false;
}
else {
strDay = strDateArray[0];
strMonth = strDateArray[1];
strYear = strDateArray[2];
}
booFound = true;
   }
}
if (booFound == false) {
if (strDate.length>5) {
strDay = strDate.substr(0, 2);
strMonth = strDate.substr(2, 2);
strYear = strDate.substr(4);
   }
}
//Adjustment for short years entered
if (strYear.length == 2) {
strYear = '20' + strYear;
}
strTemp = strDay;
strDay = strMonth;
strMonth = strTemp;
intday = parseInt(strDay, 10);
if (isNaN(intday)) {
err = 2;
return false;
}
intMonth = parseInt(strMonth, 10);
if (isNaN(intMonth)) {
for (i = 0;i<12;i++) {
if (strMonth.toUpperCase() == strMonthArray[i].toUpperCase()) {
intMonth = i+1;
strMonth = strMonthArray[i];
i = 12;
   }
}
if (isNaN(intMonth)) {
err = 3;
return false;
   }
}
intYear = parseInt(strYear, 10);
if (isNaN(intYear)) {
err = 4;
return false;
}
if (intMonth>12 || intMonth<1) {
err = 5;
return false;
}
if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1)) {
err = 6;
return false;
}
if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intday > 30 || intday < 1)) {
err = 7;
return false;
}
if (intMonth == 2) {
if (intday < 1) {
err = 8;
return false;
}
if (LeapYear(intYear) == true) {
if (intday > 29) {
err = 9;
return false;
   }
}
else {
if (intday > 28) {
err = 10;
return false;
      }
   }
}
return true;
}
function LeapYear(intYear) {
if (intYear % 100 == 0) {
if (intYear % 400 == 0) { return true; }
}
else {
if ((intYear % 4) == 0) { return true; }
}
return false;
}
//  End -->

/* PLACER EN COMMENTAIRE PAR YANNICK - N'ÉTAIT PAS UTILISÉ*/
//get un cookie : adoune
/*function getcookie(cookiename) {
	 var cookiestring=""+document.cookie;
	 var index1=cookiestring.indexOf(cookiename);
	 if (index1==-1 || cookiename=="") return ""; 
	 var index2=cookiestring.indexOf(';',index1);
	 if (index2==-1) index2=cookiestring.length; 
	 return unescape(cookiestring.substring(index1+cookiename.length+1,index2));
}

//set un cookie : adoune
function setcookie(cookieName,cookieValue,nDays) {
	 var today = new Date();
	 var expire = new Date();
	 if (nDays==null || nDays==0) nDays=1;
	 expire.setTime(today.getTime() + 3600000*24*nDays);
	 document.cookie = cookieName+"="+escape(cookieValue) + ";expires="+expire.toGMTString();
}*/

