//*******************************************************
//This JS class control the Sonnettic players events
//*******************************************************
//global variables
var currentState = false; //plays only from specified times -set to true using ClearTimeRange() or PlayWholeEvent()
//var currentLoad;
var currentPosition = 0; //global current position
//var loadFlag;
var TotTime = 0; //global total runtime
var StopTime = 0; // assigned stop time
var Scrub = 0; //assigned start time
var nPlayerId = null; //global ID for player

function setPlayerId(nPlayer){
 if(nPLayer != 	nPlayerId){
	 nPlayerId = nPLayer
 }
}

function setInTime(val){
	//split the time string
	var str = val
	var d = new Date('1/1/2008 ' + str)
	var nSeconds = d.getMinutes() * 60;
	nSeconds += d.getHours() * 60 * 60 + d.getSeconds();
	Scrub = Math.floor(nSeconds);
	//document.write('Start ' + Scrub +'<br>');
}
function getScrubTime(){
	return Scrub;
}
function getFormattedScrubTime(){
	return secs2hms(Math.floor(Scrub));
}
	
function setEndTime(val){
	var d = new Date('1/1/2008 ' + val)
	
	var nSeconds = d.getMinutes() * 60;
	nSeconds += d.getHours() * 60 * 60 + d.getSeconds();
	StopTime = Math.floor(nSeconds);
	//document.write('End ' + StopTime+'<br>');
}
function getEndTime(){
	return StopTime;	
}
function getFormattedEndTime(){
	return secs2hms(Math.floor(StopTime));
}

function ScubFormattedTime(fTime){
	var d = new Date('1/1/2008 ' + fTime)
	
	var nSeconds = d.getMinutes() * 60;
	nSeconds += d.getHours() * 60 * 60 + d.getSeconds();
	return Math.floor(nSeconds);
}

function UpdateTimeRange(sVal, eVal){
	   	setInTime(sVal);
   		setEndTime(eVal);
	if (StopTime > Scrub) {
		//alert("End time is less than the start time, Please correct");	
		currentState = false;
   		setPosition('TVW-MEDIA-Player', Scrub);
   		//var ldiv = document.getElementById('stat1');
		//ldiv.innerHTML = 'Start ' + Scrub + '<br>' + 'End ' + StopTime;
	}
	else {
		currentState = true;
		alert("End time is less than the start time, Please correct");	
	}
}

function ClearTimeRange(){
	currentState = true;
}

function setMedia(playerName, videoPath) {
		var SonetticPlayer;
		   if (navigator.appName.indexOf("Microsoft") != -1) {
			  SonetticPlayer= window[playerName]
			}else {
			   SonetticPlayer= window.document[playerName]
			}
	SonetticPlayer.setMedia(videoPath);
}

function setPosition(playerName, positiontime) {
		var SonetticPlayer;
		   if (navigator.appName.indexOf("Microsoft") != -1) {
			  SonetticPlayer= window[playerName]
			}else {
			   SonetticPlayer= window.document[playerName]
			}
SonetticPlayer.setPosition(positiontime);
//SonetticPlayer.pauseMedia();
}


function stopMedia(playerName, positiontime) {
		var SonetticPlayer;
		   if (navigator.appName.indexOf("Microsoft") != -1) {
			  SonetticPlayer= window[playerName]
			}else {
			   SonetticPlayer= window.document[playerName]
			}
	SonetticPlayer.stopMedia();
	
}

function pauseMedia(playerName, positiontime) {
	try {
		var SonetticPlayer; 
		 if (navigator.appName.indexOf("Microsoft") != -1) {
			  SonetticPlayer= window[playerName]
			}else {
			   SonetticPlayer= window.document[playerName]
			}
		SonetticPlayer.pauseMedia();
	} catch (e) {
alert("An exception occurred in the script. Error name: " + e.name 
+ ". Error message: " + e.message); }
}

function playMedia(playerName, positiontime) {
		var SonetticPlayer;
		   if (navigator.appName.indexOf("Microsoft") != -1) {
			  SonetticPlayer= window[playerName]
			}else {
			   SonetticPlayer= window.document[playerName]
			}
	SonetticPlayer.playMedia();
}
function getMovieName(movieName) {
     if (window.document[movieName])
   {
       return window.document.getElementById(movieName);
   }
     if (navigator.appName.indexOf("Microsoft") != -1) {
     return window[movieName]
     }
     else {
     return document[movieName]
     }
 } 

function cinemaEventListener(mediastatus){
	var MediaItem=mediastatus;
	currentPosition = Math.floor(MediaItem.position);
	TotTime = Math.floor(MediaItem.duration); //alert(MediaItem.duration);
	//send to start place
	TimeListener()

	//variables available
	//var mediaDuration=eventObject.duration;
	//var mediaPosition=eventObject.position;
	//var mediaBytestotal=eventObject.bytestotal;
	//var mediaBytesloaded=eventObject.bytesloaded;
}

function TimeListener(){
if (currentState == false) {
	if (Math.floor(currentPosition + 2) < Math.floor(Scrub)) {
		setPosition('TVW-MEDIA-Player', Scrub);
		//pauseMedia('TVW-MEDIA-Player', Scrub);
		//pauseMedia();
		}
	else if (Math.floor(currentPosition) > StopTime) {
		pauseMedia('TVW-MEDIA-Player', StopTime);
		currentState = true;
		//alert('hey');
		}
	else
		UpdateStuff('debug',TotTime,currentPosition);
	}	
}

function PlayWholeEvent() {
	currentState = true;
 	setPosition('TVW-MEDIA-Player', 0);
}

function ReSetIt() {
 currentState = false;
 setPosition('TVW-MEDIA-Player', Scrub);
}

function UpdateStuff(divid, dur, pos){
	var ldiv = document.getElementById(divid);
	ldiv.innerHTML = currentPosition +' '+ StopTime;
	//ldiv.innerHTML = 'BASE: ' + Math.floor(pos) + ' / ' + Math.floor(dur) + ' | FORMATED: ' + getCurrentTime() + ' / ' + secs2hms(Math.floor(dur));
}

function getCurrentTime(){
return secs2hms(currentPosition);
}
function getTotalTime(){
	return TotTime;
}
function secs2hms(secs) {
var iHours = Math.floor(secs/3600);
var iMinutes = Math.floor((secs/60) - (iHours*60));
var iSeconds = Math.floor(secs % 60);

if (iSeconds == 60) { iMinutes++; iSeconds = 0; }
if (iMinutes == 60) { iHours++; iMinutes = 0; }

return(iHours+':'+iMinutes+':'+iSeconds);
}
