var moving = false
var videoContainerHeight = 300
var videoContainerStartPos = 10
var checkTimer
var lasthash = 0
var xmlDoc
var main
var teller = 0
var LiveStream = true
var Category="live"
var StreamID = 0
var OverlayID = 0
var _root_xmouse=0
var _root_ymouse=0
var OverlayLogoScale = 0.053
var selectedItem = "live"
var fullscreen = false
var dragging = false
var mouseCheckerVolumeInt
var mouseCheckerPositionInt
var updateTimeCodesInt
var volume_toggle=1
var volume_slider_length=75
var position_slider_length=120
var controlsTimer
var objsArr=new Array()

function InitMain(sender,args)
{
	main = sender
	plugin = sender.getHost()
	plugin.content.onfullScreenChange = onFullScreenChanged
	vid=main.findName("videoElement")
	dpcToken=vid.addEventListener("downloadProgressChanged", updateDownloadProgress)
	vid.addEventListener("bufferingProgressChanged", handleBufferProgressChanged)
	objsArr["volumeSlider"]=new Object()
	objsArr["volumeSlider"].el=sender.findName("volumeSlider")
	objsArr["volumeSlider"].world_offset=10
	objsArr["positionSlider"]=new Object()
	objsArr["positionSlider"].el=sender.findName("positionSlider")
	clearTimeout (controlsTimer)
	controlsTimer = setTimeout("setControlsInvisible()",3000)
}

function updateDownloadProgress(s,e) 
{
}

function handleBufferProgressChanged (s,e) 
{
	infotext = s.findName("bufferMsgText")
	if (infotext != null)
	{
		infotext.Text=Math.floor(s.bufferingProgress*100)+"%"
	}
}

function mediaLoaded(sender)
{ 
	if (LiveStream == true)
	{
		positionControl = sender.findName("positionControl")
		positionControl.visibility = "Collapsed"
	}
	else
	{
		positionControl = sender.findName("positionControl")
		positionControl.visibility = "Visible"
	}
}

function mediaEnd(s)
{ 
	if (LiveStream == true)
	{
		// Live streams stoppen niet.. die haperen, opnieuw starten dus!
   		mySource = s.source
   		s.stop()
		s.Source=mySource
	}
	else
	{
		s.stop()
		togglePlayPauseBtn(s.findName("thePlayBtn"))
	}
}

function loadVideo(sender,args)
{
	LiveStream = false
	OverlayContainer = sender.findName("OverlayContainer")
	OverlayContainer.visibility = "Collapsed"
	player = sender.findName('videoElement')
	player.stop()
	player.Source=sender.Tag
	titleTextBlock = sender.findName("titleTextBlock")
	titleTextBlock.visibility = "Collapsed"
	itemText = sender.findName("itemText")
	itemTitel = sender.findName(sender.name + "_text")
	itemText.Text = itemTitel.Text
}

function loadLive(sender,args)
{
	OverlayContainer = sender.findName("OverlayContainer")
	OverlayContainer.visibility = "Visible"
	LiveStream = true
	player = sender.findName('videoElement')
	player.stop()
	player.Source=sender.Tag
	titleTextBlock = sender.findName("titleTextBlock")
	titleTextBlock.visibility = "Visible"
	titleText = sender.findName("titleText")
	titleText.Text = ""
	itemText = sender.findName("itemText")
	itemTitel = sender.findName(sender.name + "_text")
	itemText.Text = itemTitel.Text
}

function loadMIDNR(sender,args)
{
	OverlayContainer = sender.findName("OverlayContainer")
	OverlayContainer.visibility = "Visible"
	LiveStream = true
	StreamID = 0
	checkStream()
	titleTextBlock = sender.findName("titleTextBlock")
	titleTextBlock.visibility = "Visible"
	titleText = sender.findName("titleText")
	titleText.Text = ""
	itemText = sender.findName("itemText")
	itemTitel = sender.findName(sender.name + "_text")
	itemText.Text = itemTitel.Text
}

function MediaOpened(sender,args)
{
	sender.Play()
	var TitelText = sender.findName("TitelText")
	if (TitelText != null)
	{
		TitelText.text = "Playing.."
	}
}

function media_state_changed(sender, args)
{
    var mediaStateTextBlock = sender.findName("mediaStateTextBlock") // Textblock
    var bufferMsgTextBlock = sender.findName("bufferMsgTextBlock") // Textblock
    var mediaStateText = sender.findName("mediaStateText") // Run
    var bufferMsgText = sender.findName("bufferMsgText") // Run
    var media = sender.findName("videoElement")
    mediaStateText.Text = media.CurrentState
    if (media.CurrentState == "Buffering")
    {
    	bufferMsgTextBlock.Visibility="Visible"
		}
		else
		{
			bufferMsgTextBlock.Visibility="Collapsed"
		}
    if (media.CurrentState == "Playing")
    {
			updateTimeCodesInt=setInterval("updateTimeCodes()", 100)
			dragging = false
		}
		else
		{
			clearInterval(updateTimeCodesInt)
		}
    if ( (media.CurrentState == "Stopped" || media.Currentstate == "Closed") && LiveStream == true)
    {
    	// Onzin, Livestreams stoppen niet, die haperen! OPNIEUW!
	    	//mySource = media.source
	    	//media.stop()
		//media.Source=mySource
    }
    else
    {
    	logmsg("ok: LiveStream=" + LiveStream + " en state: " + media.CurrentState)
    }
}

function PlayPause(sender,args)
{
	player = sender.findName('videoplayer')
	if (player.CurrentState != "Playing")
	{
		sender.setValue("Fill", "#FFFFFFFF")
		player.Play()
	}
	else
	{
		sender.setValue("Fill", "#FFFF0000")
		player.Pause()
	}
}

function MediaEnded(sender,args)
{
	sender.Stop()
}

function MediaFailed(sender,args)
{
	alert('Error downloading media in ' + sender.name)
}

function BufferingProgressChanged(sender,args)
{
	if(sender.bufferingProgress >= 0 && sender.bufferingProgress < 1)
	{
		var percentage = Math.floor(sender.bufferingProgress  * 100)
		var TitelText = sender.findName("TitelText")
		if (TitelText != null)
		{
			TitelText.text = percentage + "%"
		}
	}
}

function scrollItemsUp(sender, args)
{
	if (!moving)
	{
		container = sender.findName("lijst_items")
		numItems = container["Tag"]
		yMax = 0
		yPos = container["Canvas.Top"]
		if (yPos < yMax)
		{
				moving = true
				tSchuify = new Tween(container, 'Canvas.Top', Tween.strongEaseOut,yPos,yPos+300,1)
				tSchuify.onMotionFinished = function()
				{
	  	 		moving = false
	  	 	}
				tSchuify.start()
		}
	}
}

function scrollItemsDown(sender, args)
{
	if (!moving)
	{
		container = sender.findName("lijst_items")
		numItems = container["Tag"]
		yMax = 0 - (numItems * 60) + videoContainerHeight
		yPos = container["Canvas.Top"]
		if (yPos > yMax)
		{
				moving = true
				tSchuify = new Tween(container, 'Canvas.Top', Tween.strongEaseOut,yPos,yPos-300,1)
				tSchuify.onMotionFinished = function()
				{
	  	 		moving = false
	  	 	}
				tSchuify.start()
		}
	}
}

function loadItems(sender, args)
{
	resetMenu()
	selectedItem = sender.name
	bg = sender.name + "_bg"
	bg = sender.findName(bg)
	bg.Fill = "#FF00AEEF"
	tekst = sender.name + "_text"
	tekst = sender.findName(tekst)
	tekst.Foreground = "#FFFFFFFF"
	Category = sender.tag
	handleItems()
}

function menuOver(sender,args)
{
	if (sender.name != selectedItem)
	{
		bg = sender.name + "_bg"
		bg = sender.findName(bg)
		bg.Fill = "#FFFFFFFF"
		tekst = sender.name + "_text"
		tekst = sender.findName(tekst)
		tekst.Foreground = "#FF00AEEF"
	}
}

function menuOut(sender,args)
{
	if (sender.name != selectedItem)
	{
		bg = sender.name + "_bg"
		bg = sender.findName(bg)
		bg.Fill = "#FF00AEEF"
		tekst = sender.name + "_text"
		tekst = sender.findName(tekst)
		tekst.Foreground = "#FFFFFFFF"
	}
}

function resetMenu()
{
	var menuitems = new Array("live", "ondemand")
	for (i = 0 ; i < menuitems.length ; i++)
	{
		bg = main.findName(menuitems[i] + "_bg")
		bg.Fill = "#FFFFFFFF"
		tekst = main.findName(menuitems[i] + "_text")
		tekst.Foreground = "#FF00AEEF"
	}
}

function LoadLogo(sender)
{
	uniqid = MD5_hexhash("str" + new Date().getTime())
	var slPlugin = sender.getHost()
	var downloader = slPlugin.createObject("downloader")
	downloader.addEventListener("completed", onLogoCompleted)
	downloader.open("GET", sender.tag + "?rnd=" + uniqid)
	var container = sender.findName("OverlayLogoContainer")
	container.children.clear()
	downloader.send()
}

/*function onLogoCompleted(sender, eventArgs)
{
	var slPlugin = sender.getHost()
  var xamlFragment = slPlugin.content.createFromXamlDownloader(sender, "logo.xaml")
	var container = sender.findName("OverlayLogoContainer")
	container.children.add(xamlFragment)
}*/

function onLogoCompleted(sender, eventArgs)
{
	var slPlugin = sender.getHost()
  var responseText = sender.responseText
	var xamlFragment = plugin.content.createFromXaml(responseText)
	var container = sender.findName("OverlayLogoContainer")
	container.children.add(xamlFragment)
}

function handleItems() 
{
	clearTimeout (checkTimer)
	checkItems()
	checkStream()
	checkOverlay()
}

function checkItems()
{
	if (main != undefined)
	{
		uniqid = MD5_hexhash("str" + new Date().getTime())
		var slPlugin = main.getHost()
		var downloader = slPlugin.createObject("downloader")
		downloader.addEventListener("completed", onItemsCompleted)
		downloader.open("GET", "items.asp?category=" + Category + "&rnd=" + uniqid)
		logmsg("items.asp?category=" + Category + "&rnd=" + uniqid)
		downloader.send()
	}
	else
	{
		//nog niet klaar met init, over 50ms nog eens proberen
		checkTimer = setTimeout("handleItems()",50)
	}
}

function onItemsCompleted(sender, eventArgs)
{
	var xamlFragment = sender.ResponseText
	var plugin = sender.getHost()
	var items = plugin.content.createFromXaml(xamlFragment)
	thehash = items.findName("hash")["tag"]
	if (lasthash != thehash)
	{
		//nieuwe content..
		lasthash = thehash
		var container = sender.findName("itemContainer")
		tContainerUit = new OpacityTween(container,Tween.EaseOut,100,0,0.5)
		tContainerUit.onMotionFinished = function()
		{
			container.children.clear()
			container.children.add(items)
			tContainerIn = new OpacityTween(container,Tween.EaseOut,0,100,0.5)
			tContainerIn.start()
 	 	}	
		tContainerUit.start()
		logmsg ("New content loaded")
	}
	timeout = 5000 + Math.floor(Math.random()*10000)
	logmsg ("Next check in " + timeout + "ms")
	checkTimer = setTimeout("handleItems()",timeout)
}

function checkStream()
{
	if (main != undefined)
	{
		uniqid = MD5_hexhash("str" + new Date().getTime())
		var slPlugin = main.getHost()
		var downloader = slPlugin.createObject("downloader")
		downloader.addEventListener("completed", onStreamCompleted)
		downloader.open("GET", "stream.asp?rnd=" + uniqid)
		logmsg("stream.asp?rnd=" + uniqid)
		downloader.send()
	}
}

function onStreamCompleted(sender, eventArgs)
{
	var xamlFragment = sender.ResponseText
	var plugin = sender.getHost()
	var items = plugin.content.createFromXaml(xamlFragment)
	thestreamid = items.findName("streamid")["tag"]
	if (StreamID != thestreamid && LiveStream == true)
	{
		logmsg ("Switching to stream: " + thestreamid)
		StreamID = thestreamid
		player = sender.findName('videoElement')
		player.stop()
		player.Source="http://www.garnierstreamingmedia.com/asx/StreamerSwitch_new.asp?stream=" + thestreamid + "&#38;sl=a"
	}
}

function checkOverlay()
{
	if (main != undefined)
	{
		uniqid = MD5_hexhash("str" + new Date().getTime())
		var slPlugin = main.getHost()
		var downloader = slPlugin.createObject("downloader")
		downloader.addEventListener("completed", onOverlayCompleted)
		downloader.open("GET", "overlay.asp?rnd=" + uniqid)
		logmsg("overlay.asp?rnd=" + uniqid)
		downloader.send()
	}
}

function onOverlayCompleted(sender, eventArgs)
{
	var xamlFragment = sender.ResponseText
	var plugin = sender.getHost()
	var items = plugin.content.createFromXaml(xamlFragment)
	theoverlayid = items.findName("OverlayID")["tag"]
	if (OverlayID != theoverlayid)
	{
		logmsg ("Loading Overlay: " + theoverlayid)
		OverlayID = theoverlayid
		container = sender.findName("OverlayContainer")
		
		tContainerUit = new OpacityTween(container,Tween.EaseOut,100,0,0.5)
		tContainerUit.onMotionFinished = function()
		{
			container.children.clear()
			container.children.add(items)
			if (fullscreen)
			{
				// Ok.. de overlay.... 
				// We moeten de scale van het logo aanpassen (= actualHeight / 240 * 0.053)
				// We moeten de y positie van het logo aanpassen actualheight - 50 * scale
				// We moeten de x positie van het logo aanpassen = 
	
				var silverlightPlugin = sender.getHost()

				if ( (silverlightPlugin.content.actualHeight / 240) < (silverlightPlugin.content.actualWidth / 320) )
				{ 			
					scale = (silverlightPlugin.content.actualHeight / 240)
				}
				else
				{
					scale = (silverlightPlugin.content.actualWidth / 320)
				}
				Overlay = sender.findName("Overlay")
				var videowidth = 320 * scale
				var leftpos = (silverlightPlugin.content.actualWidth - videowidth) / 2
				Overlay["Canvas.Left"] = leftpos
				OverlayScale = sender.findName("OverlayScale")
				OverlayScale.scaleX = scale
				OverlayScale.scaleY = scale
			}

			// Hier moeten we de tekst onderin beeld passend maken!
			
			OverlayText1 = sender.findName("OverlayText1")
			if (OverlayText1.ActualWidth <= 310)
			{
				//ok niks aan de hand, fontsize op 18
				OverlayText1.FontSize="18"
			}
			else
			{
				// net zo lang kleiner maken tot het wel past...
				
				while (OverlayText1.ActualWidth > 310)
				{
					OverlayText1.fontSize = OverlayText1.fontSize - 0.1
				}
			}
			
			OverlayText2 = sender.findName("OverlayText2")
			if (OverlayText2.ActualWidth <= 310)
			{
				//ok niks aan de hand, fontsize op 18
				OverlayText2.FontSize="18"
			}
			else
			{
				// net zo lang kleiner maken tot het wel past...
				
				while (OverlayText2.ActualWidth > 310)
				{
					OverlayText2.fontSize = OverlayText2.fontSize - 0.1
				}
			}
			tContainerIn = new OpacityTween(container,Tween.EaseOut,0,100,0.5)
			tContainerIn.start()
 	 	}	
		tContainerUit.start()
		logmsg ("New overlay loaded")
	}
}

function logmsg(msg)
{
	var logText = document.getElementById("logLocation")
	if (teller > 20)
	{
		logText.innerHTML = ""
		teller = 0
	}
	logText.innerHTML = new Date().getTime() + " - " + msg + "<br />" + logText.innerHTML
	teller++
}

/**
*
* Javascript trim, ltrim, rtrim
* http://www.webtoolkit.info/
*
*
**/

function trim(str, chars) 
{
    return ltrim(rtrim(str, chars), chars)
}

function ltrim(str, chars) 
{
    chars = chars || "\\s"
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "")
}

function rtrim(str, chars) 
{
    chars = chars || "\\s"
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "")
}

// ------- CONTROLS ---------

function mainCanvasMouseLeave(s) 
{
	clearInterval(mouseCheckerVolumeInt)
	clearInterval(mouseCheckerPositionInt)
	s.releaseMouseCapture()
	dragging = false
}

function whenMouseMoves(s,e) 
{
	var silverlightPlugin = s.getHost()
	var pt = e.getPosition(null)
	_root_xmouse = pt.x
	_root_ymouse = pt.y	
	
	playControls = s.findName("PlayControls")
	
	if (playControls.Opacity == 0)
	{
		tControls = new OpacityTween(playControls,Tween.EaseOut,0,100,0.5)
		tControls.start()
	}
	clearTimeout (controlsTimer)
	controlsTimer = setTimeout("setControlsInvisible()",3000)
}

function setControlsInvisible() 
{
	clearTimeout (controlsTimer)
	playControls = main.findName("PlayControls")
	tControls = new OpacityTween(playControls,Tween.EaseOut,100,0,1)
	tControls.start()
}

// -------- FULLSCREEN --------

function VideoKlik(sender,args)
{
	var silverlightPlugin = sender.getHost()
	var videoElement = sender.findName('videoElement')
	if (videoElement.NaturalVideoWidth > 0 && silverlightPlugin.content.fullScreen == false)	
	{
		//Fullscreen gaan dan maar als er een video speelt?
		silverlightPlugin.content.fullScreen = true
	}
	else
	{
		//Das raar, nou dan dus niet fullscreen!
		silverlightPlugin.content.fullScreen = false
	}
}

function onFullScreenChanged(sender, args)
{
	var silverlightPlugin = sender.getHost()
	var mediaelement = sender.findName("videoElement")

	if (mediaelement != null)
	{
		if (silverlightPlugin.content.fullScreen == true)
		{
			fullscreen = true
			playlist = sender.findName("playlist")
			playlist.visibility = "Collapsed"

			trackinformation = sender.findName("trackinformation")
			trackinformation.visibility = "Collapsed"

			Logo = sender.findName("Logo")
			Logo.visibility = "Collapsed"

			LogoBG = sender.findName("LogoBG")
			LogoBG.visibility = "Collapsed"

			PlayControls = sender.findName("PlayControls")
			PlayControls.visibility = "Collapsed"

			page = sender.findName("Page")
			page.Background = "#FFFFFFFF"

			// Ok.. de overlay.... 
			// We moeten de scale van het logo aanpassen (= actualHeight / 240 * 0.053)
			// We moeten de y positie van het logo aanpassen actualheight - 50 * scale
			// We moeten de x positie van het logo aanpassen = 

			if ( (silverlightPlugin.content.actualHeight / 240) < (silverlightPlugin.content.actualWidth / 320) )
			{ 			
				scale = (silverlightPlugin.content.actualHeight / 240)
			}
			else
			{
				scale = (silverlightPlugin.content.actualWidth / 320)
			}
			
			Overlay = sender.findName("Overlay")
			var videowidth = 320 * scale
			var leftpos = (silverlightPlugin.content.actualWidth - videowidth) / 2
			Overlay["Canvas.Left"] = leftpos

			OverlayScale = sender.findName("OverlayScale")
			OverlayScale.scaleX = scale
			OverlayScale.scaleY = scale

			mediaelement.width = silverlightPlugin.content.actualWidth
			mediaelement.height = silverlightPlugin.content.actualHeight
		}
		else
		{
			fullscreen = false
			playlist = sender.findName("playlist")
			playlist.visibility = "Visible"

			trackinformation = sender.findName("trackinformation")
			trackinformation.visibility = "Visible"

			Logo = sender.findName("Logo")
			Logo.visibility = "Visible"

			LogoBG = sender.findName("LogoBG")
			LogoBG.visibility = "Visible"

			PlayControls = sender.findName("PlayControls")
			PlayControls.visibility = "Visible"

			page = sender.findName("Page")
			page.Background = "#FF58B71D"
			
			Overlay = sender.findName("Overlay")
			Overlay["Canvas.Left"] = 0

			OverlayScale = sender.findName("OverlayScale")
			OverlayScale.scaleX = 1
			OverlayScale.scaleY = 1
			
			mediaelement.width = 320
			mediaelement.height = 240
		}
	}
}
//------- VOLUME ----------

function startDragVolume(s,e) 
{
	var objRef=objsArr[s.name]
	objRef.is_dragging=true
	mouseCheckerVolumeInt=setInterval("mouseCheckerVolume('"+s.name+"')",10)	
	s.captureMouse()
}


function endDragVolume(s,e) 
{
	objsArr[s.name].is_dragging=false
	clearInterval(mouseCheckerVolumeInt)
	s.releaseMouseCapture()
}


function mouseCheckerVolume(str) 
{
	var obj=objsArr[str]
	if(obj.is_dragging) 
	{
		var pre_check=_root_xmouse-obj.world_offset-obj.el.width/2
		if(pre_check>0 && pre_check<volume_slider_length) {
			obj.el["Canvas.Left"]=pre_check
			obj.el.findName("soundWaves").opacity=1
			obj.el.findName("muteBtn").opacity=1
			volume_toggle=1
		}
		else if(pre_check<=0) 
		{
			volume_toggle=-1
			obj.el["Canvas.Left"]=0
			obj.el.findName("soundWaves").opacity=0
			obj.el.findName("muteBtn").opacity=0.3	
		}
		else 
		{
			obj.el["Canvas.Left"]=volume_slider_length
		}
		setVolume(pre_check)
	}
	else {
		clearInterval(mouseCheckerVolumeInt)
		s.releaseMouseCapture()
	}
}

function muteBtnPress(s) {

	if(volume_toggle>0) {
		s.opacity=0.3
		s.findName("soundWaves").opacity=0
		s.findName("volumeSlider")["Canvas.Left"]=0
		setVolume(0)
	}
	else {
		s.opacity=1
		s.findName("soundWaves").opacity=1
		s.findName("volumeSlider")["Canvas.Left"]=60
		setVolume(60)
	}
	volume_toggle*=-1
}


function setVolume(val) 
{
	var per=val/volume_slider_length
	if (!isNaN(per))
	{
		main.findName("videoElement").volume=per
	}
}

// Track Info

function onMarkerReached(sender, markerEventArgs)
{
  if (markerEventArgs.marker.type == "CAPTION")
  {
		titleText = sender.findName("titleText")
		titleTextBlock = sender.findName("titleTextBlock")
		tTitleUit = new OpacityTween(titleTextBlock,Tween.EaseOut,100,0,0.5)
		tTitleUit.onMotionFinished = function()
		{
			titleText.text = markerEventArgs.marker.text
			tTitleIn = new OpacityTween(titleTextBlock,Tween.EaseOut,0,100,0.5)
			tTitleIn.start()
 	 	}	
		tTitleUit.start()
	}
  else if (markerEventArgs.marker.type == "xaml_title")
  {
		//alert("xaml_title: " + markerEventArgs.marker.text)
  }
  else if (markerEventArgs.marker.type == "download_artist")
  {
		//alert("download_artist: " + markerEventArgs.marker.text)
  }
  else if (markerEventArgs.marker.type == "download_track")
	{
		//alert("download_track: " + markerEventArgs.marker.text)
	}
	else if (markerEventArgs.marker.type == "trackimage")
	{
		//alert("trackimage: " + markerEventArgs.marker.text)
	}
	else
	{
		//alert("raar type: " + markerEventArgs.marker.type + "  ****** Value: " + markerEventArgs.marker.text)       
	}
}     

// Positie Slider

function seekTo(xpos) 
{
	var me=main.findName("videoElement")
	me.pause()
	var mediaDuration = me.naturalDuration.seconds
	var playAreaWidth = 120
	var currentPlayTime = (xpos  / playAreaWidth) * mediaDuration
	if (currentPlayTime > mediaDuration) 
	{
		currentPlayTime = mediaDuration
	}
	else if (currentPlayTime < 0) 
	{
		currentPlayTime = 0
	}
	var pos = me.position
	pos.seconds = currentPlayTime
	me.position = pos
	me.play()
}

function startDragPosition(s,e) 
{
	clearInterval(updateTimeCodesInt)
	me=main.findName("videoElement")
	var objRef=objsArr[s.name]
	objRef.is_dragging=true
	dragging = true
	mouseCheckerPositionInt=setInterval("mouseCheckerPosition('"+s.name+"')",10)	
	s.captureMouse()
}

function endDragPosition(s,e) 
{
	me=main.findName("videoElement")
	clearInterval(mouseCheckerPositionInt)
	s.releaseMouseCapture()
	xpos = _root_xmouse - 145
	if(xpos>=0 && xpos<=position_slider_length) 
	{
		seekTo(xpos)
	}
	objsArr[s.name].is_dragging=false
	dragging = false
}

function mouseCheckerPosition(str) 
{
	var obj=objsArr[str]
	
	xpos = _root_xmouse - 145
	
	if(obj.is_dragging) 
	{
		if(xpos>=0 && xpos<=position_slider_length) 
		{
			obj.el["Canvas.Left"]=xpos
		}
		else if (xpos <= 0)
		{
			obj.el["Canvas.Left"] = 0
		}
		else if (xpos >= position_slider_length)
		{
			obj.el["Canvas.Left"] = position_slider_length
		}
	}
	else 
	{
		clearInterval(mouseCheckerPositionInt)
		s.releaseMouseCapture()
		dragging = false
	}
}

function updateTimeCodes() 
{ 
	vid = main.findName("videoElement")
	var pos = vid.position
	if (pos != null) 
	{
		currentPosition = pos.seconds
	}
	vidTime1=main.findName("timeBlock")
	vidTime1.Text = formatTime(currentPosition * 1000)
	if (dragging == false)
	{
		updatePlayhead(currentPosition)
	}
}

function updatePlayhead(time) 
{
	vid = main.findName("videoElement")
	var offset = 0
	var naturalDuration = vid.naturalDuration
	if (naturalDuration != null) 
	{
		var mediaDuration = naturalDuration.seconds	
		var percent = time / mediaDuration		
		
		var playAreaWidth = 120
		offset = (playAreaWidth * percent)
	}
	
	if (isNaN(offset) == false && offset != Infinity)
	{
		main.findName("positionSlider")["Canvas.left"] = offset	
	}
}


//Play/Pause
function playPauseBtn(s) 
{
	togglePlayPauseBtn(s)  
}

function togglePlayPauseBtn(s) 
{
  if(s.findName("PlaySymbol").opacity == 0) 
  {
  	s.findName("videoElement").pause()
		s.findName("PauseSymbol").opacity = 0
		s.findName("PlaySymbol").opacity = 1
  }
  else 
  {
  	s.findName("videoElement").play()
		s.findName("PauseSymbol").opacity = 1
		s.findName("PlaySymbol").opacity = 0
  }   
}

//formatters...
function formatTime(time) 
{
	var timeString = ""
	timeString += Math.floor(time / 60000)
	if (timeString.length == 1) 
	{
		timeString = "0" + timeString
	}
	timeString += ":"
	var seconds = Math.floor(time / 1000.0) % 60
	if (seconds < 10) 
	{
		timeString += "0"
	}
	timeString += seconds
	return timeString
}


function formatTime2(time) 
{
	vid = main.findName("videoElement")
	time_num=Math.ceil(vid.naturalDuration.seconds)-time
	elapsedM = Math.floor(time_num/60)
	remaining = time_num-(elapsedM*60)
	elapsedS = Math.floor(remaining)
	remaining = time_num-(elapsedS)
	if (elapsedM<10) 
	{
		minutes = "0"+elapsedM.toString()
	} 
	else 
	{
		minutes = elapsedM.toString()
	}
	if (elapsedS<10) 
	{
		seconds = "0"+elapsedS.toString()
	} 
	else 
	{
		seconds = elapsedS.toString()
	}
	return minutes+":"+seconds
}