// LISTE d'EXCLUSION : Retrait des prefix pour permettre l'afficher de donnees chez Omniture. 
// Ceci evite de tracker tous les medias sous un meme nom.
// Reference: BUG RT#759 - GAG 
var excludePrefix;
excludePrefix = "media-www.cirquedusoleil.com/QA/;media-streaming-www.cirquedusoleil.com/QA/;media-world-www.cirquedusoleil.com/QA/;media-www.cirquedusoleil.com/PROD/;media-streaming-www.cirquedusoleil.com/PROD/;media-world-www.cirquedusoleil.com/PROD/;media-world-www.cirquedusoleil.com/;cirquedusoleil/refonte/QA;cirquedusoleil/refonte/PROD;dev-cms-static01.connect.cirquedusoleil.com;media.cirquedusoleil.com;media.cirquedusoleil.com/QA/;media.cirquedusoleil.com/PROD/";

// VARIABLES 
var totalDuration = 0;	 
var currentPosition = 0;
var currentState = "NONE";       
var	playerName = "player";
var videoFileName = "";

window.onbeforeunload = exitNow;

	function  mediaReadyEvent() { 
		videoFileName = getFileName(jwplayer("player").config['file']);	
	};
	
	function mediaBufferChangeEvent(event) { };
	
	function mediaPlayEvent(event) {
		if (currentState == "NONE") {
			currentState = "started";
			updateTimeValue();
		} 				
		if (currentPosition  != "0"){  
			omniMediaTrackingResume(videoFileName, currentPosition);
		}
	};
	
	function mediaPauseEvent(event) {
		omniMediaTrackingStop(videoFileName, currentPosition);					
	};
	
	function mediaCompleteEvent() {
		omniMediaTrackingDone(videoFileName, currentPosition);
		//currentPosition = 0.1;				
	};
	
	function mediaTimeEvent(aDuration, aOffset, aPosition) {
		//FORWARD
		if(((aPosition - currentPosition) > 1)  ){
			omniMediaTrackingStop(videoFileName, currentPosition);
			omniMediaTrackingResume(videoFileName, aPosition);
		};
		//BACKWARD
		if(((currentPosition - aPosition) > 1)  ){
			omniMediaTrackingStop(videoFileName, currentPosition);
			omniMediaTrackingResume(videoFileName, aPosition);			
		};
		currentPosition = aPosition;					
		totalDuration = aDuration;
	};

	function updateTimeValue(){  
		if (currentPosition  == "0"){ 
			//needed to allow the video to load in in order to capture the parameters
			setTimeout("updateTimeValue()",100);
		}else{
			omniInitMediaTracking(videoFileName, totalDuration, 'jwplayer');
		}
	};	

	function getFileName(filePath){  
		var fileName = "";
		if(filePath.length > 0){
			var endPath;
			if(filePath.lastIndexOf(".") == -1){
				endPath = filePath.length;
			}else{
				endPath = filePath.lastIndexOf(".");
			}
			fileName = filePath.substring(filePath.lastIndexOf("/"), endPath);
			if(fileName.indexOf("/") == 0) fileName = fileName.substring(1, fileName.length);//drop the first slash	
		}
		return fileName;
	};	
	
s.loadModule("Media");

function omniInitMediaAutoTracking(mediaName, mediaLength, playerName) {
    s.Media.autoTrack = true;
    s.Media.trackWhilePlaying = true;
    s.Media.trackMilestones = "25,50,75,100";
    s.Media.open(mediaName, mediaLength, playerName);
    s.Media.play(mediaName, 0);
}

function omniInitMediaTracking(mediaName, mediaLength, playerName) {
    s.Media.autoTrack = false;
    s.Media.trackWhilePlaying = true;
    s.Media.trackMilestones = "25,50,75,100";
    s.Media.open(mediaName, mediaLength, playerName);
    s.Media.play(mediaName, 0);
}     

function omniMediaTrackingStop(mediaName, mediaPosition) {
    s.Media.stop(mediaName, mediaPosition);
}
     
function omniMediaTrackingResume(mediaName, mediaPosition) {
    s.Media.play(mediaName, mediaPosition);
}
     
function omniMediaTrackingDone(mediaName, mediaPosition) {
    s.Media.stop(mediaName, mediaPosition);
    s.Media.close(mediaName);
	currentState = "NONE";
	currentPosition = "0";
}

function exitNow() {
	if(currentState != "COMPLETED") {
		s.Media.stop( playerName, currentPosition);
	}
}

function secondsToMinutes(seconds) {
	// Parse the minutes
	minVar = parseInt(Math.floor(seconds/60));
	minVar = minVar <10 ? '0' + minVar : minVar;
	// Parse the seconds
	secVar = parseInt(seconds % 60);
	// The balance of seconds
	secVar = secVar <10 ? '0' + secVar : secVar;
	return minVar + ':' + secVar;
}

function fixVideoName(video_name) {
  try{
    if (video_excludePrefix != undefined) {
      if ((excludePrefix != undefined) && (video_excludePrefix.length > 4)) {
		excludePrefix = excludePrefix + ";" + video_excludePrefix;
	  }

	  if (excludePrefix != undefined) {
	 	var arr_prefix = excludePrefix.split(';');
		for (var i = 0; i < arr_prefix.length; i++) {
		  if (arr_prefix[i] != undefined) {
			video_name = video_name.replace(arr_prefix[i], "");
		  }
		}	
	  }
	}	
  }catch(e){
    //do nothing
  }	
  if(video_name.indexOf("./") == 0) video_name = video_name.substring(2, video_name.length);//drop the first dot slash	
  if(video_name.indexOf("/") == 0) video_name = video_name.substring(1, video_name.length);//drop the first 
  video_name= getFileName(video_name);
  video_name = video_name.replace("http:\/\/", "").replace(/\//g, " : ");
  video_name = video_name.split(".")[0];
  return video_name.replace("/", "").replace(/\//g, " : ");
}


function removeURLParam(url, param){
  var urlparts= url.split('?');
  if (urlparts.length>=2)	{
	var prefix= encodeURIComponent(param)+'=';
	var pars= urlparts[1].split(/[&;]/g);
	for (var i=pars.length; i-- > 0;)
	if (pars[i].indexOf(prefix, 0)==0)
		pars.splice(i, 1);
	if (pars.length > 0)
		return urlparts[0]+'?'+pars.join('&');
	else
		return urlparts[0];
  }else
	  return url;
}
