var detect = navigator.userAgent.toLowerCase();
var OS,browser,version,total,thestring;

if (checkIt('konqueror'))
{
  browser = "Konqueror";
  OS = "Linux";
}
else if (checkIt('safari')) browser = "Safari"
else if (checkIt('omniweb')) browser = "OmniWeb"
else if (checkIt('opera')) browser = "Opera"
else if (checkIt('webtv')) browser = "WebTV";
else if (checkIt('icab')) browser = "iCab"
else if (checkIt('msie')) browser = "Internet Explorer"
else if (!checkIt('compatible'))
{
  browser = "Netscape Navigator"
  version = detect.charAt(8);
}
else browser = "An unknown browser";

if (!version) version = detect.charAt(place + thestring.length);

if (!OS)
{
  if (checkIt('linux')) OS = "Linux";
  else if (checkIt('x11')) OS = "Unix";
  else if (checkIt('mac')) OS = "Mac"
  else if (checkIt('win')) OS = "Windows"
  else OS = "an unknown operating system";
}

function checkIt(string)
{
  place = detect.indexOf(string) + 1;
  thestring = string;
  return place;
}

  

  var vis = new Array();
  var memo_obj = new Array();

  function findObj_test_forcer(n, forcer) { 
    var p,i,x;

    // Voir si on n'a pas deja memoriser cet element    
    if (memo_obj[n] && !forcer) {
      return memo_obj[n];
    }
    
    d = document; 
    if((p = n.indexOf("?"))>0 && parent.frames.length) {
      d = parent.frames[n.substring(p+1)].document; 
      n = n.substring(0,p);
    }
    if(!(x = d[n]) && d.all) {
      x = d.all[n]; 
    }
    for (i = 0; !x && i<d.forms.length; i++) {
      x = d.forms[i][n];
    }
    for(i=0; !x && d.layers && i<d.layers.length; i++) x = findObj(n,d.layers[i].document);
    if(!x && document.getElementById) x = document.getElementById(n); 
    
    // Memoriser l'element
    memo_obj[n] = x;
    
    return x;
  }

  function findObj(n) { 
    return findObj_test_forcer(n, false);
  }
  // findObj sans memorisation de l'objet - avec Ajax, les elements se deplacent dans DOM
  function findObj_forcer(n) { 
    return findObj_test_forcer(n, true);
  }
  
  function changeclass(objet, myClass) { 
    objet.className = myClass;
  }

  function hide_obj(obj) {
    element = findObj(obj);
    if(element) {
      if (element.style.visibility != "hidden") element.style.visibility = "hidden";
    }
  }
  function show_obj(obj) {
    element = findObj(obj);
    if(element) {
      if (element.style.visibility != "visible") element.style.visibility = "visible";
    }
  }

  var time = new Array();
  var valeur = new Array();

  function slide_style_etape (obj, st, val, fin, diff) {

      layer = findObj(obj);
      if (!layer) return;
      
      
      val = parseInt(val);
      diff = parseInt(diff);
      fin = parseInt(fin);
      
    val = val + diff;
    if (OS == "Mac") val = val + diff;


    if (diff > 0) {
        if (val > fin) val = fin;
      } else {
        if (val < fin) val = fin;
      }
      valeur[obj+"-"+st] = val;
            
      if (st != "opacity") val = val + "px";
      
      
      if (st == "opacity") {
        layer.style.opacity = (val / 101);
          layer.style.MozOpacity = (val / 100);
          layer.style.KhtmlOpacity = (val / 100);
          layer.style.filter = "alpha(opacity=" + val + ")";


        if (val != 0) { layer.style.visibility = "visible"; }
        else { layer.style.visibility = "hidden"; }
      
      } else {
        layer.style[st] = val;
      }
      
      if (val != fin) time[obj+"-"+st] = setTimeout("slide_style_etape('"+obj+"','"+st+"','"+val+"','"+fin+"','"+diff+"')", 100);
        
  }


  function slide_style (obj, st, fin, diff, delai) {
  
    layer = findObj_forcer(obj);
    if (!layer) return;
    
    if (valeur[obj+"-"+st]) {
      val = valeur[obj+"-"+st];
    }
    else { 
      val = eval("layer.style."+st);
    }
    val = parseInt(val);
    
    clearTimeout (time[obj+"-"+st]);
    
    if (delai > 0) time[obj+"-"+st] = setTimeout("slide_style_etape('"+obj+"','"+st+"','"+val+"','"+fin+"','"+diff+"')", delai);
    else slide_style_etape (obj, st, val, fin, diff) ;

  }
  



