var objCourant = ""; //Id Courant
var valeurs = new Array(); //Informations pour chacun des scrollbar
var w; //hauteur du clic dans le bouton de scroll
var scrollTopIE = 0;

function appuie(event,id)
{
    objCourant = id;
    
	if(navigator.appName.indexOf("Microsoft") != -1) {
         w = window.event.y;
         var db;
         db = !document.documentElement.clientWidth? document.body:document.documentElement; // quirk IE6
         scrollTopIE = db.scrollTop;
    }
    else {
         w = event.layerY;
         scrollTopIE = 0;
    }
}
function relache(event)
{
    objCourant = "";
}

function getOffset(el) {
	if(el) {
		var offset = getOffset(el.offsetParent)
		offset+=el.offsetTop
		return offset
	}else {
		return 0;
	}
}

function deplacement(event) //lorsque la souris se déplace
{
    id = objCourant;

    if(id != "")
    {
        if(navigator.appName.indexOf("Microsoft") != -1) {
            y = window.event.clientY;
        }
        else {
            y = event.pageY;
        }

		var decalage = getOffset(document.getElementById("s"+objCourant).parentNode) - scrollTopIE;
        if(y-decalage-w < 0) y=decalage+w;
        if(y-decalage-w+valeurs[id][1] > valeurs[id][2]) y=valeurs[id][2]+decalage-valeurs[id][1]+w;
            
        document.getElementById("s"+objCourant).style.top = y-decalage-w;
        
        valeurs[id][0] = y-decalage-w;
    	var pourcentage = valeurDe(id)/(valeurs[id][2]-valeurs[id][1]);
        valeurs[id][6].style.top=(0-(valeurs[id][6].offsetHeight-valeurs[id][5].offsetHeight))*pourcentage;
        
        /** Empecher les actions par defaut */
        if (event.preventDefault)
                event.preventDefault();
	event.returnValue = false;
    }
}


/** fonction gestion du déplacement par la molette */
function handle(delta, id) {

		var y = 20*-delta;
		
        if(valeurDe(id)+y < 0) y=0-valeurDe(id);
        if(valeurDe(id)+y+valeurs[id][1] > valeurs[id][2]) y=valeurs[id][2]-valeurs[id][1]- valeurDe(id);
            
        document.getElementById("s"+id).style.top = valeurDe(id)+y;
        
        valeurs[id][0] = valeurDe(id)+y;
    	var pourcentage = valeurDe(id)/(valeurs[id][2]-valeurs[id][1]);
        valeurs[id][6].style.top=(0-(valeurs[id][6].offsetHeight-valeurs[id][5].offsetHeight))*pourcentage;
		
}

/** Evènement molette */
function molette(event, id){
        var delta = 0;
        
        if (!event) /** IE. */
                event = window.event;
        if (event.wheelDelta) { /** IE/Opera. */
                delta = event.wheelDelta/120;
                /** Opera 9 */
                if (window.opera)
                        delta = -delta;
        } else if (event.detail) { /** Mozilla. */
                delta = -event.detail/3;
        }
        /** delta>0 si molette vers le haut,
         * <0 sinon.
         */
        if (delta)
                handle(delta, id);
        /** Empecher les actions par defaut */
        if (event.preventDefault)
                event.preventDefault();
	event.returnValue = false;
}

function initScrollbar(id,hauteurPoignee,largeur,longueur,valeurDep,X,Y)
{
    valeurs[id] = new Array();
    valeurs[id][0] = valeurDep;
    valeurs[id][1] = hauteurPoignee;
    valeurs[id][2] = longueur;
    valeurs[id][3] = X;
    valeurs[id][4] = Y;

    //Dessin du scrollbar
    //Div de fond
    document.write("<DIV id='f"+id+"' style='background-color:#eff3f6;position:relative;margin-top:"+Y+";margin-left:"+X+";")
    document.write("width:"+largeur+"px;height:"+longueur+"px;");
    document.write("'>");
	    //Poignée
	    document.write("<DIV id='s"+id+"' style='position:relative;");
	    document.write("margin-top:"+valeurDep+"px;width:"+largeur+"px;height:"+hauteurPoignee+"px;");
	    document.write("' onmousedown='appuie(event,"+id+")'>");
	    document.write("</DIV>");
    document.write("</DIV>");
}

function setContainer(id, nomContainerEXT, nomContainerINT) {
    valeurs[id][5] = document.getElementById(nomContainerEXT);
    valeurs[id][6] = document.getElementById(nomContainerINT);
    if((valeurs[id][6].offsetHeight-valeurs[id][5].offsetHeight)<=0) {
    	document.getElementById("f"+id).style.display = 'none';
    }
    else {
	    if (valeurs[id][5].addEventListener)
	        /** DOMMouseScroll is for mozilla. */
	        valeurs[id][5].addEventListener('DOMMouseScroll', function(e) {molette(e, id);}, false);
		/** IE/Opera. */
		valeurs[id][5].onmousewheel = function(e) {molette(e, id);};
	}
}

function valeurDe(id)
{
    return valeurs[id][0];
}