
Media = null;
MoveTarget = null;
mouseDownX = 0;
mouseDownY = 0;
Status = null;
repeatF = null;

function Main(sender, e)
{
	Media = sender.FindName("media");
}

function rootMove(sender, e)
{
	if(MoveTarget == "progressThumb"){
		var left = 1 + mouseDownX + e.getPosition(null).x;
		//alert(sender.findName("downloadProgressRect").width);
		if(left <= (sender.findName("downloadProgressRect").width) && left >= 1){
			Move(sender.FindName(MoveTarget), left, "x");
			sender.FindName("playbackProgressRect").Width = left;
			
			if((sender.FindName(MoveTarget)["Canvas.Left"] - 1) / 280 <= 1){
				timeChange(Media.naturalDuration.seconds * ((sender.FindName(MoveTarget)["Canvas.Left"] - 1) / 280));
			}
			playTime(sender.FindName("time"), Media.position.seconds);
		}
	}else if(MoveTarget == "volThumb"){
		var left = mouseDownX + e.getPosition(null).x;
		if(left <= 50 && left >= 0){
			var viewVol = left * 2;
			if(viewVol == 100){
				viewVol = 99;
			}else if(viewVol < 10){
				viewVol = "0" + viewVol;
			}
			viewVol = viewVol.toString();
			Move(sender.FindName(MoveTarget), left, "x");
			sender.FindName("vol").Text = viewVol;
			Media.volume = left / 50;
		}
	}
}

function rootButtonUp(sender, e)
{
	MoveTarget = null;
}

function onMediaEnded(sender, e)
{
	if(repeatF == null){
		Media.stop();
	}else{
		timeChange(0);
		Media.play();
	}
}

function button_enter(sender, e)
{
	sender.children.getItem(1).Foreground = "#FFCCCC";
}

function button_leave(sender, e)
{
	sender.children.getItem(1).Foreground = "white";
}

function button_down(sender)
{
	sender.children.getItem(1).Foreground = "red";
}

function media_start(sender, e)
{
	if(Media.naturalDuration.seconds == Media.position.seconds){
		Media.stop();
	}else{
		Media.play();
	}
	button_down(sender);
}

function media_pause(sender, e)
{
	Media.pause();
	button_down(sender);
}

function media_stop(sender, e)
{
	Media.stop();
	button_down(sender);
}

function media_change(sender, e)
{
	Status = "Change";
	Media.Source = "media/" + sender.Name;
	sender.FindName("now_playing").Text= sender.Text;
}

function media_repeat(sender, e)
{
	if(repeatF == null){
		sender.FindName("Repeat").Foreground = "red";
		repeatF = 1;
	}else{
		sender.FindName("Repeat").Foreground = "white";
		repeatF = null;
	}
}

function onMediaOpened(sender, e)
{
	sender.FindName("timer").begin();
}


function timer(sender, e)
{
	var time = Media.position.seconds;
	
	sender.findName("downloadProgressRect").width = 1 + (Media.downloadProgress * 280);
	if(MoveTarget != "progressThumb" && Status != "Change"){
		sender.findName("playbackProgressRect").width = 1 + ((time / Media.naturalDuration.seconds) * 280);
		sender.findName("progressThumb")["Canvas.Left"] =1 +((time /Media.naturalDuration.seconds) * 280);
		playTime(sender.FindName("time"), time);
	}
	Status = null;
	//alert();
	sender.begin();
}

function playTime(sender, time)
{
	var min = Math.floor(time / 60);
	var sec = Math.floor(time % 60);
	if(sec < 10) sec = "0" + sec;
	if(min < 10) min = "0" + min;
	sender.Text = min + ":" + sec;
}

function timeMove(sender, e)
{
	Move_objs(sender, e, "progressThumb");
}

function vol_move(sender, e)
{
	Move_objs(sender, e, "volThumb");
}

function timeChange(val)
{
	var timeSpan = Media.position;
        timeSpan.seconds = val;
        Media.position = timeSpan;
}

function Move_objs(sender, e, name)
{
	MoveTarget = name;
	mouseDownX = sender.FindName(name)["Canvas.Left"] - e.getPosition(null).x;
	mouseDownY = sender.FindName(name)["Canvas.Top"] - e.getPosition(null).y;
}

function Move(sender, val, target)
{
	if(target == "x"){
		sender["Canvas.Left"] = val;
	}else{
		sender["Canvas.Top"] = val;
	}
}
