// set variables
var upH = 15;
var upW = 15;
var downH = 15;
var downW = 15;
var dragW = 13;
var boxH = 28;
var speed = 6;
var mouseY;
var mouseX;
var timer = setTimeout("",500);

var scrollH = new Array();
var ok = new Array();
var clickUp = new Array();
var clickDown = new Array();
var clickDrag = new Array();
var clickAbove = new Array();
var clickBelow = new Array();
var startY = new Array();
var upL = new Array();
var upT = new Array();
var downL = new Array();
var downT = new Array();
var dragL = new Array();
var dragT = new Array();
var rulerL = new Array();
var rulerT = new Array();
var contentT = new Array();
var contentH = new Array();
var contentClipH = new Array();
var scrollLength = new Array();
var dragH = new Array();

for (i=0;i<amoutScrollers;i++){
	scrollH[i] = eval("row"+i+"height");
	ok[i] = false;
	clickUp[i] = false;
	clickDown[i] = false;
	clickDrag[i] = false;
	clickAbove[i] = false;
	clickBelow[i] = false;
	dragH[i] = 1;
}

function mouseDown(e){
	if((document.layers && e.which!=1) || (document.all && event.button!=1)) {
		return true;
	}
	getMouse(e);
	// scrollers
	for (i=0;i<amoutScrollers;i++){
		if(ok[i]){
			startY[i] = (mouseY - dragT[i]);
			if(mouseX >= upL[i] && (mouseX <= (upL[i] + upW)) && mouseY >= upT[i] && (mouseY <= (upT[i] + upH))){
				clickUp[i] = true;
				return scrollUp();
			}	
			else if(mouseX >= downL[i] && (mouseX <= (downL[i] + downW)) && mouseY >= downT[i] && (mouseY <= (downT[i] + downH))){
				clickDown[i] = true;
				return scrollDown();	
			}
			else if(mouseX >= dragL[i] && (mouseX <= (dragL[i] + dragW)) && mouseY >= dragT[i] && (mouseY <= (dragT[i] + dragH[i]))){
				if(contentH[i] <= contentClipH[i]){
					return true;
				}
				else{
					clickDrag[i] = true;
					return false;
				}
			}
		}
	}
	// if do nothing
	for (i=0;i<amoutScrollers;i++){
		if(ok[i]){
			var temp = true;
		}
	}
	if (!temp){
		return true;
	}
}

function mouseMove(e){
	getMouse(e)
	for (i=0;i<amoutScrollers;i++){
		if(clickDrag[i]){
			dragT[i] = (mouseY - startY[i]);
			if(dragT[i] < (rulerT[i])){
				dragT[i] = rulerT[i];
			}
			if(dragT[i] > (rulerT[i] + scrollH[i] - dragH[i])){
				dragT[i] = (rulerT[i] + scrollH[i] - dragH[i]);
			}
			contentT[i] = ((dragT[i] - rulerT[i])*(1/scrollLength[i]));
			contentT[i] = eval('-' + contentT[i]);
			eval("moveTo("+i+")");
			if(check.b=="ie") {
				return false;
			}
		}
	}
}

function mouseUp(){
	clearTimeout(timer);
	for (i=0;i<amoutScrollers;i++){
		clickUp[i] = false;
		clickDown[i] = false;
		clickDrag[i] = false;
		clickAbove[i] = false;
		clickBelow[i] = false;
	}
	return true;
}

function getTop(){
	for (i=0;i<amoutScrollers;i++){
		contentT[i] = parseInt(eval("r"+i+"content.get_top()"));
	}
}

function getMouse(e){
	if(check.b=="ie"){
		Yscroll = document.body.scrollTop;
		Xscroll = document.body.scrollLeft;
		mouseY = event.clientY + Yscroll;
		mouseX = event.clientX + Xscroll;
	}
	else if(check.b=="opera"){
		mouseY = event.clientY;
		mouseX = event.clientX;
	}
	else if(check.b=="ns" || check.b=="dom"){
		mouseY = e.pageY;
		mouseX = e.pageX;
	}
//	bub1.move("t",mouseY-30);
//	bub1.move("l",mouseX-20);
}

function moveTo(i){
	eval("r"+i+"content.move('t',contentT["+i+"])");
	eval("r"+i+"ruler.move('t',dragT["+i+"])");
	eval("r"+i+"drag.move('t',dragT["+i+"])");
}

function scrollUp(){
	getTop();
	for (i=0;i<amoutScrollers;i++){
		if(clickUp[i]) {
			if(contentT[i] < 0) {		
				dragT[i] = dragT[i] - (speed*scrollLength[i]);
				if(dragT[i] < (rulerT[i])){
					dragT[i] = rulerT[i];
				}
				contentT[i] = contentT[i] + speed;
				if(contentT[i] > 0){
					contentT[i] = 0;
				}
				eval("moveTo("+i+")");
				timer = setTimeout("scrollUp()",25);
			}
		}
	}
	return false;
}

function scrollDown(){
	getTop();
	for (i=0;i<amoutScrollers;i++){
		if(clickDown[i]){
			if(contentT[i] > -(contentH[i] - contentClipH[i])){			
				dragT[i] = dragT[i] + (speed*scrollLength[i]);
				if(dragT[i] > (rulerT[i] + scrollH[i] - dragH[i])){
					dragT[i] = (rulerT[i] + scrollH[i] - dragH[i]);
				}
				contentT[i] = contentT[i] - speed;
				if(contentT[i] < -(contentH[i] - contentClipH[i])){
					contentT[i] = -(contentH[i] - contentClipH[i]);
				}
				eval("moveTo("+i+")");
				timer = setTimeout("scrollDown()",25);
			}
		}
	}
	return false;
}

function init_scrollers(){
	for (i=0;i<amoutScrollers;i++){
		upL[i] = parseInt(eval("r"+i+"up.get_left()"));
		upT[i] =  parseInt(eval("r"+i+"up.get_top()"));
		downL[i] = parseInt(eval("r"+i+"down.get_left()"));
		downT[i] = parseInt(eval("r"+i+"down.get_top()"));
		dragL[i] = parseInt(eval("r"+i+"drag.get_left()"));
		dragT[i] = parseInt(eval("r"+i+"drag.get_top()"));
		rulerT[i] = parseInt(eval("r"+i+"ruler.get_top()"));
		contentH[i] = parseInt(eval("r"+i+"content.get_offsetheight()"));
		contentClipH[i] = parseInt(eval("r"+i+"square.get_offsetheight()"));
	}
	for (i=0;i<amoutScrollers;i++){
	// if scroller not needed
	if (contentH[i] <= contentClipH[i]){


	}
	// if scroller needed
	else{
		temp = scrollH[i] / (((contentH[i]-contentClipH[i])/contentClipH[i])+1)
		dragH[i] = Math.ceil(temp);
		scrollLength[i] = ((scrollH[i]-dragH[i])/(contentH[i]-contentClipH[i]));
		if (dragH[i] < 28) {
		dragH[i] = 29;
		scrollLength[i] = ((scrollH[i]-dragH[i])/(contentH[i]-contentClipH[i]));
		}
		if(check.b=="ie"){
			eval("document.all.row"+i+"drag.style.height = dragH["+i+"]");
			eval("document.all.row"+i+"drag.innerHTML = '<img src=\"images/scroll/scroller_box1.gif\" alt=\"\" width=\"13\" height=\"14\" border=\"0\"><br><img src=\"images/scroll/scroller_box2.gif\" alt=\"\" width=\"13\" height=\""+(dragH[i]-28)+"\" border=\"0\"><br><img src=\"images/scroll/scroller_box3.gif\" alt=\"\" width=\"13\" height=\"14\" border=\"0\">'");
		}
		else if(check.b=="ns"){
			with (eval("document.row"+i+"drag.document")){
				open();
				write('<img src="images/scroll/scroller_box1.gif" alt="" width="13" height="14" border="0"><br>');
				write('<img src="images/scroll/scroller_box2.gif" alt="" width="13" height="'+(dragH[i]-28)+'" border="0"><br>');
				write('<img src="images/scroll/scroller_box3.gif" alt="" width="13" height="14" border="0">');
				close();
			}
		// document.row2box.top = ((dragT[i] + (dragH[i] / 2)) - boxH/2);
		}
		else if(check.b=="dom"){
			eval("document.getElementById('row"+i+"drag').style.height = dragH["+i+"]");
			eval("document.getElementById('row"+i+"drag').innerHTML = '<img src=\"images/scroll/scroller_box1.gif\" alt=\"\" width=\"13\" height=\"14\" border=\"0\"><br><img src=\"images/scroll/scroller_box2.gif\" alt=\"\" width=\"13\" height=\""+(dragH[i]-28)+"\" border=\"0\"><br><img src=\"images/scroll/scroller_box3.gif\" alt=\"\" width=\"13\" height=\"14\" border=\"0\">'");
		// eval("document.getElementById('row"+i+"content').style.height =  90 + 'px'");
		}
		else if (check.b=="opera"){
			eval("document.getElementById('row"+i+"drag').style.pixelHeight = dragH["+i+"]");
			eval("document.getElementById('row"+i+"drag').innerHTML = '<img src=\"images/scroll/scroller_box1.gif\" alt=\"\" width=\"13\" height=\"14\" border=\"0\"><br><img src=\"images/scroll/scroller_box2.gif\" alt=\"\" width=\"13\" height=\""+(dragH[i]-28)+"\" border=\"0\"><br><img src=\"images/scroll/scroller_box3.gif\" alt=\"\" width=\"13\" height=\"14\" border=\"0\">'");
		// eval("document.getElementById('row"+i+"content').style.pixelHeight = 90 + 'px'");
		}
		ok[i] = true;
		eval("r"+i+"up.show()");
		eval("r"+i+"down.show()");
		eval("r"+i+"scrollbg.show()");
		eval("r"+i+"drag.show()");
		eval("r"+i+"ruler.show()");
	}
	}
	// init mouse-events
	mouseEvents();
}

function mouseEvents(){
	if(check.b=="ns" || check.b=="opera"){
		document.captureEvents(Event.MOUSEDOWN | Event.MOUSEMOVE | Event.MOUSEUP)
	}
	document.onmousedown = mouseDown;
	document.onmouseup = mouseUp;
	document.onmousemove = mouseMove;
}

