/* Limite le nombre de caractères d'un textarea  */
function limitText(limitField, limitCount, limitNum) {
	if (limitField.value.length > limitNum) {
		limitField.value = limitField.value.substring(0, limitNum);
	} else {
		limitCount.value = limitNum - limitField.value.length;
	}
}


// Modifie la couleur de fond d'un objet
function setBgColor(color,obj){
	obj.style.backgroundColor=color;
}
// Modifie la couleur d'un text objet
function setTextColor(color,obj){
	obj.style.color=color;
}
// Modifie l'aspect (souligné..etc) d'un text objet
function setTextDecoration(textDecoration,obj){
	obj.style.textDecoration = textDecoration;
}


// Affecte une sélection sur une combo depuis la valeur et non l'index.
function setSelValueInSelect(form, selectObject, val){
	var i=0;
	
	for(i=0; i<document.forms[form].elements[selectObject].length; i++){
		if(document.forms[form].elements[selectObject].options[i].value == val){
			document.forms[form].elements[selectObject].options[i].selected=true;
			document.forms[form].elements[selectObject].selectedIndex = i;
		}else {
			document.forms[form].elements[selectObject].options[i].selected=false;
		}
	}
}


/*********************************************************************************/
/*** Contrôle un caractère tappé au clavier pour une valeur numérique décimale ***/
/*** ou non suivant le nombre de décimales (nbDec), le séparateur pour les *******/
/*** nombres décimaux (sepDec).					      ************/
/*** Utilisation : onkeypress="numberCtrlKey(event,'.');"> ***********************/
/*********************************************************************************/
numberCtrlKey = function(e, nbDec, sepDec)
{
	var oEvt = null, iKey = null;
	if ( !e ) {
		oEvt = window.event;
	} else {
		oEvt = e;
	}

	if ( oEvt.which ) {
		iKey = oEvt.which;
	} else if ( oEvt.keyCode ) {
		iKey = oEvt.keyCode;
	} else if( e.charCode )  {
		iKey = e.charCode;
	} else {
		return;
	}


	//window.alert('iKey='+iKey);
	// Les chiffres (48-57) et séparateur de décimal (46 pour '.' et 44 pour ',') et SUP (8) ENTER (13)
	// Les touches left (37) right (39) ne sont pas permis car "'" (=37 aussi) et "%" (=39 aussi)
	var b = (iKey != 48)&&(iKey != 49)&&(iKey != 50)&&(iKey != 51)&(iKey != 52)&&(iKey != 53)&&(iKey != 54)&&(iKey != 55)&&(iKey != 56)
	&&(iKey != 57)&&(iKey != 13)&&(iKey != 8);

	if(nbDec>0){
		if(sepDec == '.') {
			b = b&&(iKey != 46)
		}else if(sepDec == ','){
			b = b&&(iKey != 44)
		}
	}

	if(b){

		if ( oEvt.preventDefault ) { // FIREFOX
			oEvt.preventDefault();
			oEvt.stopPropagation();
			oEvt.which = 0;
			return false;
		} else if ( document.all ) { // IE
			oEvt.keyCode = 0;
			window.event.returnValue = 0;
			return false;
		} else {
			return false;
		}
	}else{
		return true;
	}
}


// Ajoute un item dans une combo (select)
function addItemInCbo(selectObject, item){
  selectObject.options[selectObject.length] = new Option(item, item, false, false);
}

// Retire l'item sélectionné dans une combo (select)
function delItemInCbo(selectObject){
  if(selectObject.options.selectedIndex<=selectObject.options.length)
  {
    selectObject.options[selectObject.options.selectedIndex] = null;
  }
}

// Affecte une sélection sur une combo depuis la valeur et non l'index.
function setSelValueInSelect(form, selectObject, val){
	var i=0;
	
	for(i=0; i<document.forms[form].elements[selectObject].length; i++){
		if(document.forms[form].elements[selectObject].options[i].value == val){
			document.forms[form].elements[selectObject].options[i].selected=true;
			document.forms[form].elements[selectObject].selectedIndex = i;
		}else {
			document.forms[form].elements[selectObject].options[i].selected=false;
		}
	}
}



// Fonction d'ajout au Favoris sous IE et FIREFOX
function favoris(site_name, site_url) {
	if ( navigator.appName != 'Microsoft Internet Explorer' )
	{
		window.sidebar.addPanel(site_name,site_url,'');
	}
	else {
		window.external.AddFavorite(site_url, site_name);
	}
}




/* Cache un DIV */
function hideDIV(id) {
	//safe function to hide an element with a specified id
	if (document.getElementById) { // DOM3 = IE5, NS6
		if(document.getElementById(id))
			document.getElementById(id).style.display = 'none';
	} else {
		if (document.layers) { // Netscape 4
			if(document.id) document.id.display = 'none';
		} else { // IE 4
			if(document.all.id) document.all.id.style.display = 'none';
		}
	}
}

/* Affiche un DIV */
function showDIV(id) {
	//safe function to show an element with a specified id
		  
	if (document.getElementById) { // DOM3 = IE5, NS6
		if(document.getElementById(id))
			document.getElementById(id).style.display = 'block';
	} else {
		if (document.layers) { // Netscape 4
			if(document.id) document.id.display = 'block';
		} else { // IE 4
			if(document.all.id) document.all.id.style.display = 'block';
		}
	}
}



/* Cache un LAYER DIV*/
function hideLayerDiv(layer_ref) {

  var browserType;

  if (document.layers) {browserType = "nn4"}
  if (document.all) {browserType = "ie"}
  if (window.navigator.userAgent.toLowerCase().match("gecko")) {browserType= "gecko"}

  if (browserType == "gecko" )
     document.poppedLayer = eval('document.getElementById(layer_ref)');
  else if (browserType == "ie")
     document.poppedLayer = eval('document.all[layer_ref]');
  else
     document.poppedLayer = eval('document.layers[layer_ref]');
  document.poppedLayer.style.visibility = "hidden";
}



/* Affiche un LAYER DIV*/
function showLayerDiv(layer_ref) {
  var browserType;

  if (document.layers) {browserType = "nn4"}
  if (document.all) {browserType = "ie"}
  if (window.navigator.userAgent.toLowerCase().match("gecko")) {browserType= "gecko"}

  if (browserType == "gecko" )
     document.poppedLayer = eval('document.getElementById(layer_ref)');
  else if (browserType == "ie")
     document.poppedLayer = eval('document.all[layer_ref]');
  else
     document.poppedLayer = eval('document.layers[layer_ref]');
  document.poppedLayer.style.visibility = "visible";
}



/* Cache une ligne d'un table <TR>*/ 
function hideTR(rowId){
	if (document.getElementById(rowId) != null){
       	document.getElementById(rowId).style.display = 'none';
	}
}
 
/* Affiche une ligne d'un table <TR>*/ 
function showTR(rowId){
	if (document.getElementById(rowId) != null){
//       	document.getElementById(rowId).style.display = 'table-row'; //PB sous IE
       	document.getElementById(rowId).style.display = '';
	}
} 



// Effect on the button
function makeEffectButton(cur,which)
{
	var strength=(which==0)? 1 : 0.5;

	if (cur.style.MozOpacity)
		cur.style.MozOpacity=strength;
	else if (cur.filters)
		cur.filters.alpha.opacity=strength*100;
}



// Block the buttons
function formOnSubmitBlockButtons(myform, lang) 
{
    lang = (lang) ? lang : 'fr';

	for (i=0 ; i<= myform.length-1 ; i++)
	{
		if (myform[i].type == 'submit' || myform[i].type == 'reset' || myform[i].type == 'button')
		{
			if(lang == 'fr')
				myform[i].value='Patientez SVP...';
			else if(lang == 'en')
				myform[i].value='Please wait...';
			else
				myform[i].value='Patientez SVP...';
			myform[i].disabled=true;
		}
	}
}


