// inits
	
	var scrollActive = false;
	var scrollStop = true;
	var scrollIncrement = 1;
	var scrollInterval = 10;
	tire = false;

function onScrollDnStart()
{
  if (!scrollActive) {
    scrollStop = false;
    onScrollDn();
  }
}
function onScrollDn()
{
  if (!scrollStop) {
    scrollActive = true;
    setTimeout('onScrollDn()', scrollInterval);
    var sc = xGetElementById('contenu');
    var y = xTop(sc) - scrollIncrement;
    if (y >= -(xHeight(sc) - xHeight('contenant'))) {
      xTop(sc, y);
	  
	  var valpos = -y;
	  var hauttexte = xHeight(sc);
	  
	  var sx = xGetElementById('contenant');
	  var hautcadre = xHeight(sx);
	  
	  var diff = hauttexte - hautcadre;
	  
	  var quotient = diff / trajet;
	  var posdyn = Math.round(valpos / quotient);
	  var posdyn2 = barretop_y + posdyn;

	  var th = xGetElementById('thumb');
	  var gauche = xPageX(th);
	  xMoveTo(th, gauche, posdyn2);
	  
    }
    else {
      scrollStop = true;
      scrollActive = false;
    }
  }
}
function onScrollUpStart()
{
  if (!scrollActive) {
    scrollStop = false;
    onScrollUp();
  }
}
function onScrollUp()
{
  if (!scrollStop) {
    scrollActive = true;
    setTimeout('onScrollUp()', scrollInterval);
    var sc = xGetElementById('contenu');
    var y = xTop(sc) + scrollIncrement;
    if (y <= 0) {
      xTop(sc, y);
	  
	  var valpos = -y;
	  var hauttexte = xHeight(sc);
	  
	  var sx = xGetElementById('contenant');
	  var hautcadre = xHeight(sx);
	  
	  var diff = hauttexte - hautcadre;
	  
	  var quotient = diff / trajet;
	  var posdyn = Math.round(valpos / quotient);
	  var posdyn2 = barretop_y + posdyn;
	  
	  var th = xGetElementById('thumb');
	  var gauche = xPageX(th);
	  xMoveTo(th, gauche, posdyn2);
	  
    }
    else {
      scrollStop = true;
      scrollActive = false;
    }
  }
}
function onScrollStop()
{
  scrollStop = true;
  scrollActive = false;
}

// fonctions drag

function presse(objet,evt){
	
	//position de la souris par rapport à l'objet
	var sourisY = evt.clientY;
	var thumbY = xTop(objet);
	diff = sourisY - thumbY;
	//alert(diff);
	
	tire = true;
}
function bouge(evt){
	
	if (tire == true){
		var thumb = xGetElementById('thumb');
		var contenu = xGetElementById('contenu');
		var contenant = xGetElementById('contenant');
		
		var sourisY = evt.clientY;
		var thumbY = xTop(thumb);
		
		var posnouv = sourisY - diff;
		var direction = posnouv - thumbY;
		
		move = true
		document.onselectstart = new Function ("return false");
		if (thumbY <= barretop_y && direction <= 0){
			move = false;
		}
		if (thumbY >= (barrebot_y - xHeight(thumb)) && direction >= 0){
			move = false;
		}
		if (move == true){
		
			xMoveTo(thumb, xLeft(thumb), posnouv);
			
			var hauttexte = xHeight(contenu);
			var hautcadre = xHeight(contenant);
			var diffcont = hauttexte - hautcadre;
			
			var quotient = diffcont / trajet;
			
			var position = posnouv - barretop_y;
			
	  		var posdyn = Math.round(position * quotient);
	  
	  		xTop(contenu, -posdyn);
			
		}
		
		
	}
}
function lache(objet,evt){
	tire = false;
	document.onselectstart=new Function ("return true");
}

// fonctions click dans la barre

function click_barre(barre,evt){
// la barre doit avoir une couleur pour ie
	
	var sourisY = evt.clientY;
	var thumb = xGetElementById('thumb');
	var thumbY = xTop(thumb);
	
	var contenu = xGetElementById('contenu');
	var contenant = xGetElementById('contenant');
	
	var contenuY = xTop(contenu);
	
	var hauttexte = xHeight(contenu);
	var hautcadre = xHeight(contenant);
	
	var hautbarre = xHeight(barre);
	var hautthumb = xHeight(thumb);
	

	var quotient = (hauttexte - hautcadre) / (hautbarre - hautthumb);
	
	
	
	if (sourisY <= thumbY){
		var posnouv = (contenuY + hautcadre) - 10; // les 10 pour un petit chevauchement
		//haut;
		
		if (posnouv < 0){
			xTop(contenu, posnouv);
			posobj = (Math.abs(posnouv) / quotient) + barretop_y;
			xTop(thumb, posobj);
		}
		else
		{
			xTop(contenu, 0);
			xTop(thumb, barretop_y);
		}
	}
	else
	{
		//bas;
		var posnouv = (contenuY - hautcadre) + 10; // les 10 pour un petit chevauchement
		var max_h = ((-hauttexte) + hautcadre);
		
		if (posnouv > max_h){
			xTop(contenu, posnouv);
			posobj = (Math.abs(posnouv) / quotient) + barretop_y;
			xTop(thumb, posobj);
		}
		else
		{
			xTop(contenu, (-hauttexte) + hautcadre);
			xTop(thumb, (hautbarre - hautthumb) + barretop_y);
			
		}
	}
	
}

function positionne(){
	var contenant = xGetElementById('contenant');
	var contenu = xGetElementById('contenu');
	var up = xGetElementById('upBtn');
	var dn = xGetElementById('dnBtn');
	var Thumb = xGetElementById("thumb");
	var barre = xGetElementById("barre");
	
	var posY = xPageY(contenant);
	var posX = xPageX(contenu);
	
	var largeur = xWidth(contenu);
	var hauteur = xHeight(contenant);
	
	// fleche haut
	up.onmouseover = onScrollUpStart;
	up.onmouseout = onScrollStop;
	xMoveTo(up, posX + largeur, posY);
	
	// fleche bas
	dn.onmouseover = onScrollDnStart;
	dn.onmouseout = onScrollStop;
	
	var posYdn = posY + hauteur - xHeight(dn);
	xMoveTo(dn, posX + largeur, posYdn);
	
	// thumb
	
	xMoveTo(Thumb, posX + largeur, posY + xHeight(up));
	
	// barre
	barretop_y = xPageY(up) + xHeight(up);
	barrebot_y = xPageY(dn);
	h_barre = barrebot_y - barretop_y;
	
	xHeight(barre,h_barre);
	
	trajet = h_barre - xHeight(Thumb);
	
	xMoveTo(barre, posX + largeur, posY + xHeight(up));
	
}
