
var plugin
var video

var updateTimeCodesInt
var controlsTimer
var checkMediaInt

var objsArr=new Array()
var _root_xmouse=0
var _root_ymouse=0

var media_fully_downloaded=false


window.onresize = resize;


checkMediaInt=setInterval("checkMedia()",100)

function createVideoViewer()
{
    
    Silverlight.createObjectEx({
        source: "SilverlightControls/videoPlayer/video.xaml",
        parentElement: document.getElementById("SilverlightControlHost"),
        id: "SilverlightControl",
        properties: {
            width: "320",
            height: "240",
            background:"#000",
            isWindowless: "false",
            framerate:"30",
            version: "1.0"
        },
        events: {
        }
    });
}

function videoCanvasLoaded(s) {

	//alert("video loaded")
	
	video=s.findName("videoCanvas")
	video.opacity=0 //hide while resizing
	plugin = s.getHost()
	
	objsArr["Playhead"]=new Object()
	objsArr["Playhead"].el=s.findName("Playhead")
	
	objsArr["volumeSlider"]=new Object()
	objsArr["volumeSlider"].el=s.findName("volumeSlider")
	
	vid=video.findName("videoElement")
	vid.Source=ucVideoViewer_video

	dpcToken=vid.addEventListener("downloadProgressChanged", updateDownloadProgress)
	vid.addEventListener("bufferingProgressChanged", handleBufferProgressChanged)
		
	plugin.content.onResize = resize
	
    controlsTimer = setTimeout("setControlsInvisible()",500)
}


function updateDownloadProgress(s,e) {

	bgBar=s.findName("ToBeLoadedPath")
	progressBar=s.findName("LoadedPath")
	//window.status=s.downloadProgress
	progressBar.width = bgBar.width * s.downloadProgress
	if(s.downloadProgress==1) {
		media_fully_downloaded=true	
	}
}

function checkMedia() {
	if(media_fully_downloaded) {
        //alert("checkMedia")
		
		var ph=video.findName("Playhead")
		ph.addEventListener("mouseLeftButtonDown", PlayheadPress)
		ph.addEventListener("mouseLeftButtonUp", PlayheadRelease)
		ph.addEventListener("mouseEnter", PlayheadEnter)
		
		var lp=video.findName("LoadedPath")
		lp.addEventListener("mouseLeftButtonDown", progressBarPress)
		lp.addEventListener("mouseEnter", PlayheadEnter)		
		
		clearInterval(checkMediaInt)
	}
}

function handleBufferProgressChanged (s,e) {

	s.findName("bufferMsgText").Text="Buffering Video: "+Math.floor(s.bufferingProgress*100)+"%"
		
	if(s.bufferingProgress >0 && s.bufferingProgress <1) {
		s.findName("bufferMsg").opacity=0.8
	}
	else {
		s.findName("bufferMsg").opacity=0
	}
}


function mediaLoaded(s){ 

	//alert("mediaLoaded")	
	
	vid=s.findName("videoElement")
	resize()
	
	updateTimeCodesInt=setInterval("updateTimeCodes()", 100)
}


function mediaEnd(s){ 
	s.stop()
	togglePlayPauseBtn(s.findName("thePlayBtn"))
}


function videoCanvasMouseLeave(s) {

	clearInterval(objsArr["Playhead"].playHeadInt)
	clearInterval(mouseCheckerVolumeInt)
	s.releaseMouseCapture()
}


function videoCanvasMouseMoves(s,e) {

	var pt = e.getPosition(null);
	_root_xmouse = pt.x
	_root_ymouse = pt.y	
	
	s.findName("PlayControls").opacity = 1
	clearTimeout ( controlsTimer );
	controlsTimer = setTimeout("setControlsInvisible()",500)
}


function setControlsInvisible() {
	clearTimeout ( controlsTimer );
	if(_root_ymouse<plugin.content.actualHeight-100) {
		video.findName("PlayControls").opacity = 0
	}
}



