
function startDrag(s,e) {	
	this.mouse_down=1
	sender=s
	me=this
	
	key=s.name.split("_")[0]	
	objInfo=scrollerConstraints[key]
	objInfo.click_x=e.getPosition(s).x	
	objInfo.click_y=e.getPosition(s).y	
	
	mouseCheckInt=setInterval("mouseChecker(sender,me,objInfo)",10)	
	s.captureMouse()
}


function endDrag(s,e) {
	this.mouse_down=0
	clearInterval(mouseCheckInt)
	s.releaseMouseCapture()
}

function mouseChecker(s,me,obj) {
	if(me.mouse_down) {		
		new_val=_root_xmouse-obj.local_offset+obj.local_offset-obj.click_x
		calc_scroll_end=(obj.track_length + obj.local_offset)-(s.width)
		val=((new_val-obj.start_scroll)/(obj.track_length-s.width))*100
		
		per=val/100
		canvas_prop="Canvas.Left"
		
		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 pressTrackBar(s,e) {
	key=s.name.split("_")[0]
	obj=scrollerConstraints[key]	
	scrubber=s.findName(key+"_Scrubber")
	
	var click_x=e.getPosition(s).x
	var click_y=e.getPosition(s).y
	
	click_prop =click_x
	canvas_prop="Canvas.Left"
	scrubber_prop = scrubber.width
	scrubber_width_mid = scrubber.width/2
	time_to_scroll= 1.0
	
	if(click_prop < scrubber[canvas_prop]) {
		scrollTween = new Tween(new Object(),'st',Tween.strongEaseOut,scrubber[canvas_prop],(click_prop+obj.local_offset-scrubber_width_mid),time_to_scroll)
	}
	else {
		scrollTween = new Tween(new Object(),'st',Tween.strongEaseOut,scrubber[canvas_prop],(click_prop-scrubber_prop+obj.local_offset+scrubber_width_mid),time_to_scroll)
	}
	
	scrollTween.onMotionChanged = function(event){
		scrubber[canvas_prop] = event.target._pos		
		new_val=event.target._pos
		val=((new_val-obj.start_scroll)/(obj.track_length-scrubber.width))*100
		canvas_prop="Canvas.Left"
		var per=val/100
		s.findName(obj.container)[canvas_prop]=((obj.content_length - obj.mask_length)*per)*-1		
	}
	scrollTween.start()
}

function scrollerArrowPress(s,e) {
	this.mouse_down=1		
	sender=s
	me=this	
		
	var key=s.name.split("_")[0]
	obj=scrollerConstraints[key]	
	
	scrollLeftRightInt = setInterval("scrollLeftRight(sender,me)",10)
	s.captureMouse()
}

function scrollerArrowRelease(s,e) {
	this.mouse_down=0
	sender=s
	me=this	
	clearInterval(scrollLeftRightInt)
	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=="LeftArrow") {		
		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")
	val=((new_val-obj.start_scroll)/(obj.track_length-scrubber.width))*100
	canvas_prop="Canvas.Left"
	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(s).x
    _root_ymouse = e.getPosition(s).y    
}

function buildVerticalBars(arfromxml) {	
	tis_verticalbarsArray = arfromxml;
	brs = main.findName("verticalBars");
	brs.children.clear();
	trackLength = brs.width
	cnt=1
		for(i=0;i<((tis_verticalbarsArray.length)-1);i++) {		
        var loader_rect_str =  '<Rectangle Name="verticalbar_'+ i +'" Height="16" Width="1" Canvas.Left="'+ (cnt*(trackLength/(tis_verticalbarsArray[i][3]))) +'">';            
            loader_rect_str +=  '<Rectangle.Fill>';
            loader_rect_str += 		'<LinearGradientBrush StartPoint="0,0" EndPoint="0,1">';
            loader_rect_str += 			'<GradientStop Color="#555" Offset="0.0" />';
            loader_rect_str += 			'<GradientStop Color="#FFF" Offset="0.5" />';
            loader_rect_str += 			'<GradientStop Color="#555" Offset="1.0" />';
            loader_rect_str += 		'</LinearGradientBrush>';
            loader_rect_str += 	'</Rectangle.Fill>';
            loader_rect_str +='</Rectangle>';	
	
			loaderRectTag=plugin.content.createFromXaml(loader_rect_str)
			brs.children.add(loaderRectTag)
						
			cnt++	
		}		
}

function buildCercleMarks(arfromxml) {	
	tis_cerclemarksArray = arfromxml
	brs = main.findName("verticalBars")	
	this_width = brs.width	
	
	for(i=0;i<(tis_cerclemarksArray.length);i++) {
			var loader_rect_str ='';
		    loader_rect_str =  '<Ellipse Name="cercleMark_'+ i +'" Height="7" Width="7" Canvas.Top="4" Fill="#'+ (tis_cerclemarksArray[i][1]) +'" Canvas.Left="'+ (((this_width/100)*(tis_cerclemarksArray[i][0]))-3.5) +'"/>';
		   	loaderRectTag=plugin.content.createFromXaml(loader_rect_str)
			brs.children.add(loaderRectTag)			
		}		

}
