
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.version = navigator.appVersion
	this.v = parseInt(this.version)
	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 = (this.version.indexOf('MSIE 4')>0)
	this.ie5 = (this.version.indexOf('MSIE 5')>0)
	this.min = (this.ns||this.ie)
}
is = new BrowserCheck()


function idxInit() {
	if (is.ns && !is.ns5) {
		document.idxForm = document.layer.document.window.document.layer1Div.document.idxForm
		document.fLogin = document.layer.document.window.document.layer0Div.document.fLogin
      }
}


// Validation pour numerique plus simple que val_num
//-=================================================-
//Utilisation : onKeyPress="javascript:numSeul();"
// ex.: <input type="text" name="heure_cue" size="5" maxlength="5"onKeyPress="javascript:numSeul();">


// 65 a 90 lettre Majuscuel
// 97 a 122 minuscule

// Pas de decimal

// onKeyUp="javascript:this.value=this.value.toUpperCase();"

function numSeul() 
{
    if (window.event.keyCode<48 || window.event.keyCode >57) {
	window.event.keyCode = 0
    } 
}

function elimCarac() 
{    //alert (window.event.keyCode)
    if (window.event.keyCode==39) { window.event.keyCode = 0 } // '
}


//mettre en majuscule un champ
// on change="toMaj(this)"

function toMaj(val)
{
   val.value = val.value.toUpperCase();
}
function upCase() 
{
// corriger bug ici...

//   chr2 = new String (window.event.keyCode)
//   chr2 = window.event.keyCode

//   var num2 = chr2.charCodeAt(0);

//   num2.toUpperCase();
//   alert (chr2);

//   alert (num2);
   //   alert (num2);
   // convertir en char
   // faire le upcase
   // covertire en ascii


   window.event.keyCode = 65;

}
      
// Validation pour conserver seulement les valeurs numeriques
//-==========================================================-

// Permet les decimal
function val_num(num)
{
   var strPass = num.value;
 while (!isFinite(strPass))
 {
   var strLength = strPass.length;
     var tst = num.value.substring(0,(strLength) - 1 );
     num.value= tst;
     strPass=num.value;
   };
}

function val_heure (num)   //HHMM  mais HH->0-24 et MM-> 0-59
   {
      var myRegExp =  /[0-2][0-9][0-5][0-9]/	//HHMM
      inputNum = num.value
      if(!myRegExp.test(inputNum) && inputNum != '')
         {
         alert("HHMM");
         num.focus()
         return
         }
      if (inputNum.substring(0,1)=="2")
         {
         if (inputNum.substring(1,2) >= "4")

          {
             alert("HHMM");
             num.focus()
          }
      }
   }
  
function valUcaseNum(chp)
   {
      var myRegExp =  ([A-Z,0-9])
      inputNum = chp.value
      if(!myRegExp.test(inputNum) && inputNum != '')
         {
         alert("erreur");
         chp.focus()
         return
         }
   }

// Valider la longeur d'un textarea (onKeyUp)
function valLen(ele,longeur)
{
   var strPass = ele.value;
 while (longeur < strPass.length )
 {
   var strLength = strPass.length;
     var tst = ele.value.substring(0,(strLength) - 1 );
     ele.value= tst;
     strPass=ele.value;
   };
}
   
// Valider la longeur d'un textarea (onBlur)
function valLen2(ele,longeur)
{
   var strPass = ele.value;
   var strLength = strPass.length;
   var tst=ele.value.substring(0,longeur-1);
   ele.value=tst;
   strPass = ele.value;
}

  

// Valider pour ne pas accepter zero dans une saisie
//-=================================================-

function valNumPasZero(num)
{
   if (num.value*1 == 0 )
      {
      num.value="";
      num.focus();
      }
}

//  au cas ou le client aime pas le backspace automatique.
function valnum2(num)
{
   var strPass = num.value;
   var strLength = strPass.length;
   if (!isFinite(strPass))
   {
      num.value= 0;
      num.focus();

   }
}


// Formater numerique avec 2 decimals
// usage : onblur="javascript:mask2(this)"
function mask2( XX ) {
   XX.value = String( (Math.round(XX.value*100) + (XX.value<0?-0.1:+0.1) ) / 100 ).replace(/(.*\.\d\d)\d*/, '$1')
   if (XX.value=="0.00") {XX.value=""}
}

// Formater numerique resultat de fonction
// usage : result =mask2f ( 2.45 * 33.566)
function mask2f( X ) {
//   return String( (Math.round(X*100) + (X<0?-0.1:+0.1) ) / 100 ).replace(/(.*\.\d\d)\d*/, '$1') 
   aaa=String( (Math.round(X*100) + (X<0?-0.1:+0.1) ) / 100 ).replace(/(.*\.\d\d)\d*/, '$1') 
   if (aaa=="0.00") {aaa=""}
   return aaa


}

//function maskChamp(num,mask)
//{
// #=numero, ?=lettre, !=numero ou lettre
   

//!!!
//   if (lon==0) {return}
   
/*   var strPass = num.value;
   var zero = "000000000000000000000";
   var out="";
   var lonstr=strPass.length;
   if (lonstr==0) {return}
   var diff = lon-lonstr;
   if (diff==0) {return}
   num.value = zero.substring(0,diff)+strPass.substring(0,lonstr);
   strPass=num.value;
*/
//!!!   
   
//   var strPass = num.value;
// while (!isFinite(strPass))
// {
//   var strLength = strPass.length;
//     var tst = num.value.substring(0,(strLength) - 1 );
//     num.value= tst;
//     strPass=num.value;
//   };
//}


//fonction pour saisie obligatoire
//function saisie(num)
//{
// var champ = num.value;
//   if (champ == 0 || champ =="")
//   {
//      alert("valeur requise !!");
//      num.value= 0;
//      num.focus();
//   }
//}

// Valider les champs obligatoire.
//-===============================-

function checkrequired(which) {
	var pass=true;
   var first=true;
	if (document.images)
	  {
	   for (i=0;i<which.length;i++)
		{
		var tempobj=which.elements[i];
//		if (tempobj.name.substring(0,8)=="required")
      if (tempobj.name.substring(0,3)=="req")
		{
		if (((tempobj.type=="text"||tempobj.type=="textarea"||tempobj.type=="select")&&
			tempobj.value=='')||(tempobj.type.toString().charAt(0)=="s"&&
			tempobj.selectedIndex==0))
			{
			pass=false;
         if (first==true)
            {
              first = false;
              which.elements[i].focus();
            }
         which.elements[i+1].value="*";
//         which.elements[i+1].src="images_site/etoile_on.gif";
   
//	break;
         }
      else
      {
         which.elements[i+1].value="";
//         which.elements[i+1].src="etoile_off.gif";

      }
      }
   }
}
if (!pass) {
shortFieldName=tempobj.name.substring(3,30).toUpperCase();
//alert("Le champ "+shortFieldName+" est obligatoire.");
alert("Champ requis.  Veuillez effectuer les correctifs.");
//which.elements[kep_i].focus();
//which.elements[kep_i+1].value="*";
//which.elements[kep_i+1].style="";
}
return pass;
}

function getCookie(name) { // use: getCookie("name");
// alert ("getcookie")
 var re = new RegExp(name + "=([^;]+)");
 var value = re.exec(document.cookie);
 return (value != null) ? unescape(value[1]) : null;
}


function setCookie(name, value) { // use: setCookie("name", value);
//alert ("avant")
var today = new Date();
var expiry = new Date(today.getTime() + 28 * 24 * 60 * 60 * 1000); // plus 28 days
 document.cookie=name + "=" + escape(value) + "; expires=" + expiry.toGMTString();
//alert ("apre")
}

function msg00 (no)
{
var lab = new Array 
lab[0] = "Client";
lab[1] = "Customer";
lab[2] = "R&eacute;sum&eacute;";
lab[3] = "Summary order";
lab[4] = "Confirmation";
lab[5] = "Confirm order";
lab[6] = "Acceptation";
lab[7] = "Accept order";

var lan
lan = 0
//lan = getCookie("Clangue")
if (lan == null) { lan = 0}
//alert ("langue:"+lan)
document.write(lab[no+parseInt(lan)]);
//document.write("test");
}

function mask (InString, Mask)  {
	alert ("inmask")
   LenStr = InString.length;
	LenMsk = Mask.length;
	if ((LenStr==0) || (LenMsk==0))
		return(0);
	if (LenStr!=LenMsk)
		return(0);
	TempString=""
	for (Count=0; Count<=InString.length; Count++)  {
		StrChar = InString.substring(Count, Count+1);
		MskChar = Mask.substring(Count, Count+1);
		if (MskChar=='#') {
			if(!isNumberChar(StrChar))
				return(0);
		}
		else if (MskChar=='?') {
			if(!isAlphabeticChar(StrChar))
				return(0);
		}
		else if (MskChar=='!') {
			if(!isNumOrChar(StrChar))
				return(0);
		}
		else if (MskChar=='*') {
		}
		else {
			if (MskChar!=StrChar) 
				return(0);
		}
	}
   alert ("outmask")
	return (1);
}

// Masquer les numerique avec les zero significatifs

function maskNum(num,lon)
{
   if (lon==0) {return}
   var strPass = num.value;
   var zero = "000000000000000000000";
   var out="";
   var lonstr=strPass.length;
   if (lonstr==0) {return}
   var diff = lon-lonstr;
   if (diff==0) {return}
   num.value = zero.substring(0,diff)+strPass.substring(0,lonstr);
   strPass=num.value;
}


//re-loader page a toutes les secondes
function refreshPeriodic()
{ 
   location.reload(); 
   timerID = setTimeout("refreshPeriodic()",1000);	//1000
} 

// Loader page vide
function loadBlank()
{ document.location = "blank.asp"; }


// Retourne la position d'un champ dans un form
// what:  est le form  (this.form)
// which: est le champ (this.name)
function getIndex(what,which)
 {
    for (var i=0;i < what.elements.length;i++)
        if (what.elements[i].name == which)
            return i;
    return -1;
}

   // Masquer un champ selon une masque bien precis
// pour utiliser cette fonction, il doit avoir un champ hidden tout de suite 
// apres le champ de travail.  Il doit avoir aussi un onblur(1) et onfocus(0)
// <input type="text" onblur="javascript:maskChamp(this,'##:##',1);" onfocus="javascript:maskChamp(this,'##:##',0);">

function maskChamp(num,mask,mode) {
   pos = getIndex(num.form, num.name)

   forme = num.form
   // focus   
   if (mode==0) {
       num.value = forme.elements[pos+1].value
       return 0
      }
   
   //blur
   if (mode==1) { forme.elements[pos+1].value = num.value }
   
   var lonValMask = 0 // Longeur donnee du champ mask ex. XX:XX est 4
   var lonVal = 0     // Longeur du champ passer
   
   for (a=0;a<mask.length;a++) { if (mask.charAt(a)=='#') lonValMask++; }
   lonVal = num.value.length;

   var tmp = '';

   for (a=0;a<( lonValMask-num.value.length );a++) { tmp=tmp+"0" }
   tmp = tmp + num.value
      
   var out='';
   var posOut = 0;
 
   for (posMask=0;posMask<mask.length;posMask++) {
      if (mask.charAt(posMask)=='#') {
         out=out+tmp.charAt(posOut);
         posOut++;
         }
      else {
         out=out+mask.charAt(posMask);
         }
      }
   num.value= out;
}

/*function maskChampF(,mask)
{
   alert ("ici")
}
*/

// masquer un champ mais a partire d'une fonction
function maskChampF(num,mask) {
/*   if (num==0) {
      num=1111111
   }
*/   
   var lonValMask = 0 // Longeur donnee du champ mask ex. XX:XX est 4
   var lonVal = 0     // Longeur du champ passer
   
   for (a=0;a<mask.length;a++)
       {
       if (mask.charAt(a)=='#') lonValMask++; }
   lonVal = num.length;

   var tmp = '';
   for (a=0;a<( lonValMask-num.length );a++) { tmp=tmp+"0" }
   tmp = tmp + num
      
   var out='';
   var posOut = 0;
 
   for (posMask=0;posMask<mask.length;posMask++) {
      if (mask.charAt(posMask)=='#') {
         out=out+tmp.charAt(posOut);
         posOut++;
         }
      else {
         out=out+mask.charAt(posMask);
         }
      }
   num = out;
   return num;
}

// Pas tester encore. 

   // CONSTANTS
  var separator = ",";  // use comma as 000's separator
  var decpoint = ".";  // use period as decimal point
  var percent = "%";
  var currency = "$";  // use dollar sign for currency

  function formatNumber(number, format, print) {  // use: formatNumber(number, "format")
    if (print) document.write("formatNumber(" + number + ", \"" + format + "\")<br>");

    if (number - 0 != number) return null;  // if number is NaN return null
    var useSeparator = format.indexOf(separator) != -1;  // use separators in number
    var usePercent = format.indexOf(percent) != -1;  // convert output to percentage
    var useCurrency = format.indexOf(currency) != -1;  // use currency format
    var isNegative = (number < 0);
    number = Math.abs (number);
    if (usePercent) number *= 100;
    format = strip(format, separator + percent + currency);  // remove key characters
    number = "" + number;  // convert number input to string

     // split input value into LHS and RHS using decpoint as divider
    var dec = number.indexOf(decpoint) != -1;
    var nleftEnd = (dec) ? number.substring(0, number.indexOf(".")) : number;
    var nrightEnd = (dec) ? number.substring(number.indexOf(".") + 1) : "";

     // split format string into LHS and RHS using decpoint as divider
    dec = format.indexOf(decpoint) != -1;
    var sleftEnd = (dec) ? format.substring(0, format.indexOf(".")) : format;
    var srightEnd = (dec) ? format.substring(format.indexOf(".") + 1) : "";

     // adjust decimal places by cropping or adding zeros to LHS of number
    if (srightEnd.length < nrightEnd.length) {
      var nextChar = nrightEnd.charAt(srightEnd.length) - 0;
      nrightEnd = nrightEnd.substring(0, srightEnd.length);
      if (nextChar >= 5) nrightEnd = "" + ((nrightEnd - 0) + 1);  // round up

 // patch provided by Patti Marcoux 1999/08/06
      while (srightEnd.length > nrightEnd.length) {
        nrightEnd = "0" + nrightEnd;
      }

      if (srightEnd.length < nrightEnd.length) {
        nrightEnd = nrightEnd.substring(1);
        nleftEnd = (nleftEnd - 0) + 1;
      }
    } else {
      for (var i=nrightEnd.length; srightEnd.length > nrightEnd.length; i++) {
        if (srightEnd.charAt(i) == "0") nrightEnd += "0";  // append zero to RHS of number
        else break;
      }
    }

     // adjust leading zeros
    sleftEnd = strip(sleftEnd, "#");  // remove hashes from LHS of format
    while (sleftEnd.length > nleftEnd.length) {
      nleftEnd = "0" + nleftEnd;  // prepend zero to LHS of number
    }

    if (useSeparator) nleftEnd = separate(nleftEnd, separator);  // add separator
    var output = nleftEnd + ((nrightEnd != "") ? "." + nrightEnd : "");  // combine parts
    output = ((useCurrency) ? currency : "") + output + ((usePercent) ? percent : "");
    if (isNegative) {
      // patch suggested by Tom Denn 25/4/2001
      output = (useCurrency) ? "(" + output + ")" : "-" + output;
    }
    return output;
  }

  function strip(input, chars) {  // strip all characters in 'chars' from input
    var output = "";  // initialise output string
    for (var i=0; i < input.length; i++)
      if (chars.indexOf(input.charAt(i)) == -1)
        output += input.charAt(i);
    return output;
  }

  function separate(input, separator) {  // format input using 'separator' to mark 000's
    input = "" + input;
    var output = "";  // initialise output string
    for (var i=0; i < input.length; i++) {
      if (i != 0 && (input.length - i) % 3 == 0) output += separator;
      output += input.charAt(i);
    }
    return output;
  }


//var navName = navigator.appName ;
//var brVer = navigator.userAgent; var brNum; var reg = new RegExp('/');

//   function verNumIE() {
//      var brVerId = brVer.indexOf('MSIE');
//      brNum = brVer.substr(brVerId,8);
//   }
//   function verNumOt() {
//      var brVerId = brVer.search(reg);
//      brNum = brVer.substring(brVerId+1);
//   }

   function tstBrowser_lload(flg)
   {
//       alert ("tstbrowser")
       var isExpl = 0
      var isPc = 0
      if (navigator.appName == 'Microsoft Internet Explorer') 
         {
         isExpl = 1
//        verNumIE() ;
   }
//    else
//        {
//      verNumOt() ;
//      }
//   alert (navigator.platform)
      if (navigator.platform=="Win32") {
         isPc = 1
      }

      if (flg && (isPc==0 || isExpl==0)) {
         alert ("Desole Explorer 5.5 et plus sur PC")
         document.location="errVersion.html"
      }
      lload();
   //document.location="blank.asp"
  }

   // changer la valeur d'un select
   // Parametres : 
   // element form.nom_select
   // Valeur a selectionner

   function changeSelectedItem(elem,ppp) {
   var longeur
   var a;
   longeur = elem.length
   for (a=0;a<longeur;a++ ) {
      if (elem[a].value==ppp) {
            elem.selectedIndex = a
      }
    }
   }

/*
 function trim(a){
	var tmp=new Array();
	for(j=0;j<a.length;j++)
		if(a[j]!='')
			tmp[tmp.length]=a[j];
	a.length=tmp.length;
	for(j=0;j<tmp.length;j++)
		a[j]=tmp[j];
	return a;
 }
function trim2(inputString) {
   // Removes leading and trailing spaces from the passed string. Also removes
   // consecutive spaces and replaces it with one space. If something besides
   // a string is passed in (null, custom object, etc.) then return the input.
   if (typeof inputString != "string") { return inputString; }
   var retValue = inputString;
   var ch = retValue.substring(0, 1);
   while (ch == " ") { // Check for spaces at the beginning of the string
      retValue = retValue.substring(1, retValue.length);
      ch = retValue.substring(0, 1);
   }
   ch = retValue.substring(retValue.length-1, retValue.length);
   while (ch == " ") { // Check for spaces at the end of the string
      retValue = retValue.substring(0, retValue.length-1);
      ch = retValue.substring(retValue.length-1, retValue.length);
   }
   while (retValue.indexOf("  ") != -1) { // Note that there are two spaces in the string - look for multiple spaces within the string
      retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length); // Again, there are two spaces in each of the strings
   }
   return retValue; // Return the trimmed string back to the user
} // Ends the "trim" function
*/


// create the prototype on the String object

/*String.prototype.trim = function() {

// skip leading and trailing whitespace
// and return everything in between
  var x=this;
  x=x.replace(/^\s*(.*)/, "$1");
  x=x.replace(/(.*?)\s*$/, "$1");
  return x;
}

*/