var IE = document.all?true:false

if (!IE) document.captureEvents(Event.MOUSEMOVE)

document.onmousemove = mouseMove;

var overObject = null;
var sliderOffset = 30;
var sliderMoveTo = 0;
var sliderCurrentTop = 0;
var sliderOverYPos = null;
var sliderTimer = 0;
var sliderMoveStep = 30;

function animateSlider() {
	stopSlider();
	if (overObject == null)
		return;
	if (sliderCurrentTop > sliderMoveTo + sliderMoveStep)
		sliderCurrentTop = sliderCurrentTop - sliderMoveStep;
	else if (sliderCurrentTop < sliderMoveTo - sliderMoveStep) 
		sliderCurrentTop = sliderCurrentTop + sliderMoveStep;
	else 
		sliderCurrentTop = sliderMoveTo;
	
	overObject.style.top = sliderCurrentTop + "px";
	
		var time = Math.abs(sliderCurrentTop - sliderMoveTo);
		if (time > img_holder_height / 3) {
			time = 10;
			sliderMoveStep = 50;
		}
		else if (time > img_holder_height / 5) {
			time = 20;
			sliderMoveStep = 30;
		}
		else {
			time = 20;
			sliderMoveStep = 20;
		}

		sliderTimer = setInterval(animateSlider, time);
}

function stopSlider() {
	clearInterval(sliderTimer);
}

function getMouseY(e) {
  if (IE) { // grab the x-y pos.s if browser is IE
	if (document.documentElement && !document.documentElement.scrollTop)
		return  event.clientY;
	else if (document.documentElement && document.documentElement.scrollTop)
		return  event.clientY + document.documentElement.scrollTop;
	else if (document.body && document.body.scrollTop)
	    return  event.clientY + document.body.scrollTop;
  } else {  // grab the x-y pos.s if browser is NS
    return e.pageY;
  } 
}

function mouseMove(ev){
	ev = ev || window.event;
	if(overObject){
		var y = getMouseY(ev) - sliderOverYPos - sliderOffset;
		if (y < 0)
			sliderMoveTo = 0;
		else if (y > img_holder_height - 2 * sliderOffset)
			sliderMoveTo = img_holder_height - img_scroller_height;
		else
			sliderMoveTo = Math.floor(y * (img_holder_height - img_scroller_height) / (img_holder_height - 2 * sliderOffset));
		return false;
	}
}

function getYPosition(obj){
    var topValue= 0,leftValue= 0;
    while(obj){
		leftValue+= obj.offsetLeft;
		topValue+= obj.offsetTop;
		obj= obj.offsetParent;
    }
    return topValue;
}

function makeDraggable(item,container){
	if(!item) return;
	item.onmouseover = function(ev){
		overObject = this;
		sliderOverYPos = getYPosition(container);
		animateSlider();
		return false;
	}
	item.onmouseout = function(ev){
		overObject = null;
		return false;
	}
}

