// inclusion librairie DHTML
libDir="dhtml";
OBJLIB=1;
document.write('<script language="javascript" src="dhtml/launcher.js"></script>');

// validation formulaire de recherche
// force affichage valeur par défaut si champ vide
function checkRecherche(obj, def) {
  if( obj.recherche.value == def )
    obj.recherche.value = '';
  setTimeout('finSaisie(document.forms[1].recherche,"'+def+'")', 500);
  return true;
}

// début de saisie de la recherche
// efface valeur par défaut
function debutSaisie(obj, def) {
  if( obj.name == 'recherche' ) {
    if( obj.value == def )
      obj.value = '';
  }
}

// fin de saisie de la recherche
// force affichage valeur par défaut si champ vide
function finSaisie(obj, def) {
  if( obj.name == 'recherche' ) {
    if( obj.value == '' )
      obj.value = def;
  }
}

// affichage bordure sur lien image
function imageOver(obj) {
  if( obj._clic )
  {
    obj.style.borderLeft='1px solid #666666';
    obj.style.borderTop='1px solid #666666';
    obj.style.borderRight='1px solid #DDDDDD';
    obj.style.borderBottom='1px solid #DDDDDD';
  }
  else
  {
    obj.style.borderLeft='1px solid #DDDDDD';
    obj.style.borderTop='1px solid #DDDDDD';
    obj.style.borderRight='1px solid #666666';
    obj.style.borderBottom='1px solid #666666';
  }
}

// masquage bordure sur lien image
function imageOut(obj) {
  obj.style.border='1px solid white';
}

// simulation bouton enfoncé sur lien image
function imageClickDown(obj) {
  obj._clic = true;
  imageOver(obj);
  obj._cto = setTimeout("imageClickUp(document.images['"+obj.name+"'])", 5000);
}

// simulation bouton relaché sur lien image
function imageClickUp(obj) {
  if( obj._cto ) clearTimeout(obj._cto);
  obj._cto = null;
  obj._clic = false;
  imageOver(obj);
}

// renvoie "true" si la variable "val" est vide ou nulle
function empty(val, empty0) {
  empty0 = empty0 ? true : false;
  return (val == null) || (val == '') || ((val == 0) && empty0);
}

// validation sur un champ obligatoire (s'il existe !)
function validChamp(champ) {
  if( typeof(champ) == 'undefined' ) return true;
  champ.focus();
  if( champ.type.substr(0,6) == "select" )
  {
    if( champ.selectedIndex < 0 ) return false;
    return !empty(champ.options[ champ.selectedIndex ].value);
  }
  else if(typeof(champ.value) != 'undefined' )
    return !empty(champ.value);
  return true;
}

// bascule du libelle d'un champ de liste vers un champ texte
function copierLibelle(champSelect, champTexte) {
  if( champSelect.selectedIndex < 0 ) return;
  champTexte.value = champSelect.options[ champSelect.selectedIndex ].text;
}

// bascule de la valeur interne d'un champ de liste vers un champ texte
function copierValeur(champSelect, champTexte) {
  if( champSelect.selectedIndex < 0 ) return;
  champTexte.value = champSelect.options[ champSelect.selectedIndex ].value;
}

// bascule de la valeur interne d'un champ de liste vers un élément
function copierValeurElement(champSelect, elem) {
  if( champSelect.selectedIndex < 0 ) return;
  if( elem )
  {
    var ref = new RefElementObj(elem);
    writeLayer(ref, champSelect.options[ champSelect.selectedIndex ].value);
  }
}

// vérifie la saisie en temps réél
// s'assure que l'on ne saisit bien que des chiffres
// doit remplacer le gestionnaire d'événement du champ de saisie
function saisieNumerique(e) {
  var k = '';
  if( e.charCode ) k = e.charCode;
  else k = e.keyCode;
  if( (k==8) ||                 // touche ret. arr.
      (k==9) ||                 // touche tab.
      (k==13) ||                // touche entrée
      (k==27) ||                // touche echap
      (k==45) ||                // touche insert
      (k==46) ||                // touche suppr.
      ((k>=35) && (k<=40)) ||   // touches déplacement
      ((k>=48) && (k<=57)) )    // touche 0..9
      return true;
  return false;
}

// complète une URL de manière à avoir une URL absolue si possible
function fullURL(url) {
  if( url.substr(0, 4).toLowerCase() != 'http' ) {
    var base = location.href;
    var pos = base.lastIndexOf('/');
    if( pos > -1 ) base = base.substr(0, pos);
    if( url.charAt(0) != '/' ) base += '/';
    url = base + url;
  }
  return url;
}

// ajoute les paramètres de la page en cours a l'url cliquée
function completeURL(lnk) {
  if( typeof(lnk) == 'undefined' ) return;
  var base = location.href;
  var pos = base.indexOf('?');
  if( pos > -1 ) var param = base.substr(pos + 1);
  if( lnk.href.indexOf('?') > -1 )  lnk.href += '&' + param;
  else lnk.href += '?' + param;
}

// ouverture d'une fenêtre surgissante à la taille souhaitée
// la fenêtre est centrée sur l'écran
function ouvrirPopup(url,w,h,wname,scroll) {
  var width = w;
  var height = h;
  var left = (screen.availWidth - width) / 2;
  var top = (screen.availHeight - height) / 2;
  param="width="+width+",height="+height+",left="+left+",top="+top+","+(scroll?"scrollbars=yes":"scrollbars=no")+",resizable=yes";
  window.open(url,wname,param);
}      

// ouverture d'une fenêtre surgissante à la taille souhaitée
// la fenêtre est positionnée à l'emplacement souhaité sur l'écran
function ouvrirPopupPos(url,x,y,w,h,wname,scroll) {
  var width = w;
  var height = h;
  var left = x!=null ? x : (screen.availWidth - width) / 2;
  var top = y!=null ? y : (screen.availHeight - height) / 2;
  param="width="+width+",height="+height+",left="+left+",top="+top+","+(scroll?"scrollbars=yes":"scrollbars=no")+",resizable=yes";
  window.open(url,wname,param);
}

// ouvre une url en popup à partir d'une saisie dans un champ texte
// la fenêtre est centrée sur l'écran
function testUrl(champ,w,h,wname,scroll) {
  if( typeof(champ) == 'undefined' ) return;
  var width = w;
  var height = h;
  var left = (screen.availWidth - width) / 2;
  var top = (screen.availHeight - height) / 2;
  param="width="+width+",height="+height+",left="+left+",top="+top+","+(scroll?"scrollbars=auto":"scrollbars=no")+",resizable=yes";
  window.open(champ.value,wname,param);
}

// définit la classe d'un élément
function setClass(id, css) {
  var el = typeof(id) == 'string' ? document.getElementById(id) : id;
  if( el )
  {
    el.className = css;
  }
}

// ajoute une classe sur un élément
function addClass(id, css) {
  var el = typeof(id) == 'string' ? document.getElementById(id) : id;
  if( el )
  {
    if( el.className.indexOf(css) < 0 )
      el.className += ' ' + css;
  }
}

// retire une classe sur un élément
function removeClass(id, css) {
  var el = typeof(id) == 'string' ? document.getElementById(id) : id;
  if( el )
  {
    reg = new RegExp('/\s*' + css + '\s*/');
    el.className = el.className.replace(reg, "");
  }
}

// remplace une classe sur un élément
function replaceClass(id, oldCss, newCss) {
  var el = typeof(id) == 'string' ? document.getElementById(id) : id;
  if( el )
  {
    reg = new RegExp('/\s*' + oldCss + '\s*/');
    el.className = el.className.replace(reg, newCss);
  }
}

// teste la présence d'une classe sur un élément
function hasClass(id, css) {
  var el = typeof(id) == 'string' ? document.getElementById(id) : id;
  if( el )
    return el.className.indexOf('invisible') >= 0 ? true : false;
  return false;
}
