document.onmousemove = mouseMove; 
document.onmouseup   = mouseUp; 
 
var tailleBarre;
var racine = '';
var limiteGauche;
var limiteDroite;
var debutReglette = 0;
var finReglette   = 50000;
var tailleReglette;
var pasReglette;
var minReglette;
var maxReglette;
var entreGauche;
var entreDroite;
var dragObject    = null; 
var mouseOffset   = null;
var decalage;
var posBloc; 
var blocDroite    = 'reglette_droite';
var blocGauche    = 'reglette_gauche';
var blocContour   = 'contour_reglette';
var blocEntre     = 'entre_reglette';
var alea1;
var alea2;
 
function initialisation()
{
  tailleBarre    = document.getElementById(blocGauche).offsetWidth;
  limiteGauche   = 0 - tailleBarre;
  limiteDroite   = document.getElementById(blocContour).offsetWidth + tailleBarre;
  tailleReglette = document.getElementById(blocContour).offsetWidth;
  pasReglette    = (finReglette-debutReglette)/tailleReglette;
  decalage       = document.getElementById('td_contour').offsetLeft + document.getElementById(blocContour).offsetLeft;
  entreGauche    = document.getElementById(blocGauche).offsetLeft + tailleBarre;
  entreDroite    = document.getElementById(blocDroite).offsetLeft;
  makeDraggableGauche(document.getElementById(blocGauche));
  makeDraggableDroite(document.getElementById(blocDroite));
  adaptEntre(entreGauche,entreDroite);
  if(min && max)
  {
    setReglette(min,max);
  }
  valeurReglette();
  if(document.getElementById('div_selec_index'))
  {
    majActu();
  }
}
function setReglette(mini,maxi)
{
  var xMin = mini/pasReglette;
  var xMax = maxi/pasReglette;
  document.getElementById(blocGauche).style.left  = (xMin-tailleBarre)+"px";
  document.getElementById(blocDroite).style.left  = xMax+"px";
  entreGauche    = document.getElementById(blocGauche).offsetLeft + tailleBarre;
  entreDroite    = document.getElementById(blocDroite).offsetLeft;
  adaptEntre(entreGauche,entreDroite);
}
function adaptEntre(leftVal,rightVal)
{
  document.getElementById(blocEntre).style.left  = leftVal+"px";
  document.getElementById(blocEntre).style.width = (rightVal - leftVal)+"px";
}
function valeurReglette()
{
  minReglette = (document.getElementById(blocGauche).offsetLeft + tailleBarre) * pasReglette;
  maxReglette = document.getElementById(blocDroite).offsetLeft * pasReglette;
  document.getElementById('prixMin').value = minReglette;
  document.getElementById('prixMax').value = maxReglette;
  nbVoReglette(racine);
}
function mouseCoords(ev){ 
    if(ev.pageX || ev.pageY){ 
	        return {x:ev.pageX, y:ev.pageY}; 
	    } 
	    return { 
	        x:ev.clientX + document.body.scrollLeft - document.body.clientLeft, 
	        y:ev.clientY + document.body.scrollTop  - document.body.clientTop 
	    }; 
	}
function getMouseOffset(target, ev){ 
    ev = ev || window.event; 
 
	    var docPos    = getPosition(target); 
	    var mousePos  = mouseCoords(ev); 
	    return {x:mousePos.x - docPos.x, y:mousePos.y - docPos.y}; 
	} 
	 
	function getPosition(e){ 
	    var left = 0; 
	    var top  = 0; 
	 
	    while (e.offsetParent){ 
	        left += e.offsetLeft; 
	        top  += e.offsetTop; 
	        e     = e.offsetParent; 
	    } 
	 
	    left += e.offsetLeft; 
	    top  += e.offsetTop; 
	 
	    return {x:left, y:top}; 
	} 
	 
	function mouseMove(ev){ 
	    ev           = ev || window.event; 
	    var mousePos = mouseCoords(ev); 
	    if(dragObject)
      {
	        dragObject.style.position = 'absolute'; 
          if(mousePos.x - mouseOffset.x + 1 > limiteGauche + decalage && mousePos.x - mouseOffset.x + tailleBarre < limiteDroite + decalage + 1)
          {
            dragObject.style.left = (mousePos.x - mouseOffset.x - decalage)+"px";
            
            if(posBloc == 'gauche')
            {
              entreGauche = mousePos.x - mouseOffset.x + tailleBarre - decalage;
            }
            if(posBloc == 'droite')
            {
              entreDroite = mousePos.x - mouseOffset.x - decalage;
            }
          }
          if(mousePos.x - mouseOffset.x + 1 <= limiteGauche + decalage)
          {
            dragObject.style.left = limiteGauche+"px"; 
            if(posBloc == 'gauche')
            {
              entreGauche = limiteGauche + tailleBarre;
            }
            if(posBloc == 'droite')
            {
              entreDroite = limiteGauche;
            }
          }
          if(mousePos.x - mouseOffset.x + tailleBarre >= limiteDroite + decalage + 1)
          {
            dragObject.style.left = (limiteDroite - tailleBarre)+"px"; 
            if(posBloc == 'gauche')
            {
              entreGauche = limiteDroite;
            }
            if(posBloc == 'droite')
            {
              entreDroite = limiteDroite - tailleBarre;
            }
          }
          adaptEntre(entreGauche,entreDroite);
          valeurReglette();
	        return false; 
	    } 
	} 
	function mouseUp(){ 
      if(document.getElementById('div_selec_index') && dragObject != null)
      {
        majActu();
      }
	    dragObject = null; 
	} 
	 
	function makeDraggableDroite(item)
  { 
    item.onmousedown = function(ev)
    { 
      var gaucheOffset;
      gaucheOffset = document.getElementById(blocGauche).offsetLeft;
      limiteGauche = gaucheOffset + tailleBarre;
      entreGauche  = gaucheOffset + tailleBarre;
      limiteDroite = document.getElementById(blocContour).offsetWidth + tailleBarre;
      posBloc      = 'droite';

      dragObject  = this; 
      mouseOffset = getMouseOffset(this, ev); 
      adaptEntre(entreGauche,entreDroite)
      return false; 
    } 
	}
	function makeDraggableGauche(item)
  { 
    if(!item) return;
    item.onmousedown = function(ev)
    { 
      var droiteOffset;
      limiteGauche = 0 - tailleBarre;
      droiteOffset = document.getElementById(blocDroite).offsetLeft;
      limiteDroite = droiteOffset;
      entreDroite  = droiteOffset;
      posBloc      = 'gauche';
      
      dragObject  = this; 
      mouseOffset = getMouseOffset(this, ev); 
      adaptEntre(entreGauche,entreDroite)
      return false; 
    } 
	}

