function getWidth(element)  { return (document.all ? element.offsetWidth : element.clientWidth); }
function getHeight(element) { return (document.all ? element.offsetHeight : element.clientHeight); }
function getXpos(obj) {
 
		var elem = obj;
		var xPos = 0; 
 
		while (elem) {
			xPos += elem.offsetLeft; 
			elem = elem.offsetParent;
		}
 
		return xPos;
	}
 
 
	function getYpos(obj) {
 
		var elem = obj;
		var yPos = 0;
 
		while (elem) {
			yPos += elem.offsetTop;
			elem = elem.offsetParent;
		}
 
	return yPos;
 
}
function getXmouse(eve) {
 
var xm = 0;
var isIE = document.all ? 1 : 0;
var isMZ = document.layers ? 1 : 0;
 
if (isIE) xm = eve.clientX + document.documentElement.scrollLeft;
else xm = eve.clientX + pageXOffset;
 
return xm;
}
 
function getYmouse(eve) {
 
var ym = 0;
var isIE = document.all ? 1 : 0;
var isMZ = document.layers ? 1 : 0;
 
if (isIE) ym = eve.clientY + document.documentElement.scrollTop;
else ym = eve.clientY + pageYOffset;
 
return eve.pageY;
} 
function ImplementScroll(scrollId){
	function mousemovement(eve)
		{
		  if (!eve) var eve = window.event;
			
		  if (isIE) xM = eve.clientX;
		  else  xM = eve.clientX;
		 
		  if (isIE) yM = eve.clientY;
		  else  yM = eve.clientY;
	      return eve.clientY;
		}
		var isIE = document.all;
		
		function MozillaScroll(){
			var inaltimeAux = 0;
			inaltimeAux = (document.getElementById("leftBasket").scrollTop*getHeight(document.getElementById("leftBasket"))/document.getElementById("continutBasket").scrollHeight)+getYpos(document.getElementById("leftBasket"));
			document.getElementById("scroll_bar_"+scrollId).style.top = inaltimeAux+"px";
		}
		function ypoz(eve) {
			document.getElementById("leftBasket").scrollTop = (getYmouse(eve)-getYpos(document.getElementById("leftBasket")))*document.getElementById("continutBasket").scrollHeight/getHeight(document.getElementById("leftBasket"));
		}
		if((!isIE)&&(document.getElementById("leftBasket").scrollHeight>getHeight(document.getElementById("leftBasket")))){
		document.getElementById("leftBasket").onscroll = MozillaScroll;
		var delay_scroll_up;
		var delay_scroll_down;
		var activate = false;
		var offTrack;
		var offScroll;
		var track = document.createElement("div");
		track.id = "track";
		track.style.position="absolute";
		track.style.borderLeft = "1px solid #008BA8";
		track.style.width = 15+"px";
		track.style.height= getHeight(document.getElementById("leftBasket"))-1+"px";
		track.style.backgroundColor = "#ffffff";
		track.style.top = getYpos(document.getElementById("leftBasket"))+2+"px";
		track.style.left = getXpos(document.getElementById("leftBasket"))+getWidth(document.getElementById("leftBasket"))+2+"px";
		
		//window.status = getYpos(document.getElementById("leftBasket"))+2+"px "+(getXpos(document.getElementById("leftBasket"))+getWidth(document.getElementById("leftBasket"))+2)+"px";
		track.onmousedown = ypoz;
		track.onmouseover = function(){offTrack = false;}
		track.onmouseout = function(){if(clicked){offTrack = true;}}
		document.getElementById("leftBasket").appendChild(track);
			
		var scroll_bar = document.createElement("div");
		scroll_bar.style.position = "absolute";
		scroll_bar.id="scroll_bar_"+scrollId;
		scroll_bar.style.width = 15+"px";
		var scroll_bar_Height = getHeight(document.getElementById("leftBasket"))/document.getElementById("continutBasket").scrollHeight*getHeight(document.getElementById("leftBasket"));
		window.status = getHeight(document.getElementById("leftBasket"))+"/"+document.getElementById("continutBasket").scrollHeight+"*"+getHeight(document.getElementById("leftBasket"));
		if(scroll_bar_Height<12){
			scroll_bar.style.height = 12+"px";
		}else{
			scroll_bar.style.height = scroll_bar_Height+"px";
		}
		
		//scroll_bar.style.backgroundColor = "#08A3AE";
		scroll_bar.style.top   = getYpos(track)+10+"px";
		scroll_bar.style.left  = getXpos(track)+1+"px";
		document.getElementById("leftBasket").appendChild(scroll_bar);

		var clicked=false;

	function mouseMove(eve){

		if(clicked){
			document.getElementById("leftBasket").scrollTop = (getYmouse(eve)-getYpos(document.getElementById("leftBasket")))*document.getElementById("continutBasket").scrollHeight/getHeight(document.getElementById("leftBasket"));
			document.onselect = function(){return false;}
			if(offTrack&&offScroll){
				clicked = false;
				//document.getElementById("continutBasket").onselect = function(){return false;}
				document.getElementById("scroll_bar_"+scrollId).style.cursor = "default";
			}
		}
	}

	function mDown(eve){
		clicked=true;
		document.getElementById("scroll_bar_"+scrollId).style.cursor = "-moz-grabbing";
	}

	function mUp(){
			clicked=false;
			document.getElementById("scroll_bar_"+scrollId).style.cursor = "default";
			
		}

		window.onresize = function(){
			MozillaScroll();
			track.style.top = getYpos(document.getElementById("leftBasket"))+2+"px";
			track.style.left = getXpos(document.getElementById("leftBasket"))+getWidth(document.getElementById("leftBasket"))+2+"px";
			scroll_bar.style.top   = getYpos(track)+10+"px";
			scroll_bar.style.left  = getXpos(track)+1+"px";
		}
		
		document.getElementById("scroll_bar_"+scrollId).onmousedown = mDown;

		document.getElementById("scroll_bar_"+scrollId).onmouseup = mUp;
		
		document.getElementById("scroll_bar_"+scrollId).onmouseover = function(){offScroll = false;}
		document.getElementById("scroll_bar_"+scrollId).onmouseout = function(){if(clicked){offScroll = true;}}
		
		document.onmousemove = mouseMove;
		document.onclick = function(){if(clicked) clicked = false;}
	}
}
