var laytplayer = null;// youtube video player ref object
var vendor_sitecatalyst = {};

TBSLAvideo = {
	isAuroStart: false,
	/***********************
	#Callbacks START#
	************************/
	onPlayerReady: function() {
	},
	onContentPlay: function(videoDataObj) {
		var sitecatalyst = vendor_sitecatalyst;
		omniture_videoEvent(videoDataObj,"video-start",sitecatalyst);
		vendor_sitecatalyst = {};
	},
	onVideoPlayerError: function(errorMessage) {
	},
	/*************************
	Additional callbacks
	**************************/
	onAdPrerollUrl: function(videoDataObj, adUrl) { 
		//omniture_videoEvent(videoDataObj, "video-preroll");
	},
	onAdPostrollUrl: function(videoDataObj, adUrl) { 
	},
	onAdStarted: function(token) {
	},
	onAdFinished: function(token) {
	},
	onContentBegin: function(videoDataObj) {
	},
	onContentPause : function(videoDataObj, paused) {
		omniture_videoEvent(videoDataObj, "video-pause");
	},
	onContentCompleted: function(videoDataObj) {
		var sitecatalyst = vendor_sitecatalyst;
		omniture_videoEvent(videoDataObj,"video-complete",sitecatalyst);
		vendor_sitecatalyst = {};
	},
	onAdError: function(message) {},
	onContentVolume: function(muted, volume) {},
	onContentTrackingAdCountdown: function(secs) {},
	/************************
	Video Tracking callbacks
	************************/
	onVideoTrackingAdClick: function(videoDataObj, url) {
	},
	onVideoTrackingProgress: function(videoDataObj, percent) {
	},
	onVideoTrackingLifetime: function(seconds) {
	},
	onVideoTrackingFullscreen: function(videoDataObj, fullscreen) {
	},
	onVideoTrackingMuted: function(videoDataObj, muted) {
	},
	onVideoTrackingPaused: function(videoDataObj, paused) {
	},
	onVideoTrackingCompleted: function(videoDataObj) {
	},
	onVideoTrackingReplay: function(videoDataObj) {
	},
	onVideoTrackingPlay: function(videoDataObj) {
	},
	checkAutoSart: function(){
		var v = window.vAutoStart;
		if (v === "true" || v === "t") {			
			this.isAuroStart = true;
		}
	}	
};

/*
:::::: YOUTUBE VIDEO ::::::::::::::::::::::::
*/
 function gtranslateYTPState(state) {
  switch (state) {
	case -1: return "unstarted";
	case 0 : return "ended";
	case 1 : return "playing";
	case 2 : return "paused";
	case 3 : return "buffering";
	case 5 : return "video cued";
  }
  return;
}

function gYTVideoID(_vURL){
	var vu = _vURL;
	var n = vu.indexOf("v=");
	if(n==-1){return vu;}
	vu = vu.substr(n+2);
	n = vu.indexOf("&");
	vu = vu.substr(0,n);
	return vu;
}

function onytplayerStateChange(newState) {
	try{
	var pstate = gtranslateYTPState(newState);
	//vtitle = vtitle.replace(/\n/g,"");
	//vtitle = vtitle.replace(/^\s+|\s+$/g,"");
	
	/* Returns the YouTube.com URL for the currently loaded/playing video. */
	var callbackURL = laytplayer.getVideoUrl();
	//alert("URL: " + callbackURL);
	
	var vid = gYTVideoID(callbackURL);
	//alert("id: " + vid);
	
	/* Returns the duration in seconds of the currently playing video. Note that getDuration() will return 0 until the video's metadata is loaded, which normally happens just after the video starts playing. */
	var vduration = laytplayer.getDuration();
	//alert("Duration: " + vduration);
	
	/*Returns the embed code for the currently loaded/playing video.*/
	//var embCode = laytplayer.getVideoEmbedCode();
	//alert("EmbedCode: " + embCode);
	
	switch(pstate){
	case "playing":
		var videoData = {id:vid, headline:(callbackURL+""), clickbackUrl:callbackURL, trt:vduration};
		TBSLAvideo.onContentPlay(videoData);
	break;
	case "paused":
		var videoData = {};
		TBSLAvideo.onContentPause(videoData);
	break;
	case "ended":
		var videoData = {id:vid, headline:(callbackURL+""), clickbackUrl:callbackURL, trt:vduration};
		TBSLAvideo.onContentCompleted(videoData);
	break;
	}
	}catch(e){}
}

function onYouTubePlayerReady(_playerId) {
	var playerID = _playerId+"";
	laytplayer = document.getElementById("tbslaplayer");
	laytplayer.addEventListener("onStateChange", "onytplayerStateChange");
}
