var mouseCheckInt
var updateScrubberInt
var scrollLeftRightInt
var scrollUpDownInt

var _root_xmouse
var _root_ymouse

function mouseChecker(s,me,obj) {

	if(me.mouse_down) {

		if(obj.direction=="H") {
			new_val=_root_xmouse-obj.world_offset+obj.local_offset-obj.click_x
			calc_scroll_end=obj.track_length+obj.local_offset-s.width
			//equates to...
			//var calc_right_edge=(obj.track_length+obj.world_offset)-(obj.world_offset-obj.local_offset)-s.width
		
			val=((new_val-obj.start_scroll)/(obj.track_length-s.width))*100
			per=val/100
			canvas_prop="Canvas.Left"
		}
		else {
			new_val=_root_ymouse-obj.world_offset+obj.local_offset-obj.click_y
			calc_scroll_end=obj.track_length+obj.local_offset-s.height
		
			val=((new_val-obj.start_scroll)/(obj.track_length-s.height))*100
			per=val/100
			canvas_prop="Canvas.Top"			
		}
		
		if(new_val>obj.start_scroll && new_val<calc_scroll_end) {
			s[canvas_prop]=new_val
			s.findName(obj.container)[canvas_prop]=((obj.content_length - obj.mask_length)*per)*-1
		}
		else if(new_val<=obj.start_scroll) {
			s[canvas_prop]=obj.start_scroll
			s.findName(obj.container)[canvas_prop]=0
		}
		else if(new_val>=calc_scroll_end) {
			s[canvas_prop]=calc_scroll_end
			s.findName(obj.container)[canvas_prop]=-obj.content_length+obj.mask_length
		}
		
	}
	else {
		clearInterval(mouseCheckInt)
		s.releaseMouseCapture()
	}
}



function scrollerArrowPress(s,e) {

	this.mouse_down=1		
	sender=s
	me=this	
	
	var key=s.name.split("_")[0]
	obj=scrollerConstraints[key]	
	
	if(obj.direction=="H") {
		scrollLeftRightInt=setInterval("scrollLeftRight(sender,me)",10)
	}
	else {
		scrollUpDownInt=setInterval("scrollUpDown(sender,me)",10)
	}
	
	s.captureMouse()
}


function scrollerArrowRelease(s,e) {

	this.mouse_down=0
	sender=s
	me=this	
	
	clearInterval(scrollLeftRightInt)
	clearInterval(scrollUpDownInt)
	
	s.releaseMouseCapture()
}


function scrollLeftRight(s,me) {

	var key=s.name.split("_")[0]
	var btn_name=s.name.split("_")[1]
	
	obj=scrollerConstraints[key]
	
	scrubber=s.findName(key+"_Scrubber")
	
	var scroll_amount=obj.scroll_amount
	
	if(btn_name=="Left") {
	
		var pre_check=scrubber["Canvas.Left"]-scroll_amount
		
		if(pre_check>obj.local_offset) {
			scrubber["Canvas.Left"]=scrubber["Canvas.Left"]-scroll_amount
		}
		else {
			scrubber["Canvas.Left"]=obj.local_offset
		}
	}
	else {
		var calc_right_edge=obj.track_length+obj.local_offset-scrubber.width
		
		var pre_check=scrubber["Canvas.Left"]+scroll_amount
		
		if(pre_check<calc_right_edge) {
			scrubber["Canvas.Left"]=scrubber["Canvas.Left"]+scroll_amount
		}
		else {
			scrubber["Canvas.Left"]=calc_right_edge
		}
	}
	
	updatePanel(scrubber["Canvas.Left"],s,obj)
}



function updatePanel(new_val,s,obj) {

	var scroll_width=s.findName(obj.container).width
	key=s.name.split("_")[0]
	
	scrubber=s.findName(key+"_Scrubber")
	
	//duplicate code as in "mouseChecker", should consolidate into new function
	if(obj.direction=="H") {
		val=((new_val-obj.start_scroll)/(obj.track_length-scrubber.width))*100
		canvas_prop="Canvas.Left"
	}
	else {
		val=((new_val-obj.start_scroll)/(obj.track_length-scrubber.height))*100
		canvas_prop="Canvas.Top"
	}
	var per=val/100
	s.findName(obj.container)[canvas_prop]=((obj.content_length - obj.mask_length)*per)*-1
}






function whenMouseMoves(s, e) {
	
    _root_xmouse = e.getPosition(null).x
    _root_ymouse = e.getPosition(null).y
    
    //window.status=_root_xmouse+" - "+_root_ymouse
}


