var youTubePlayerLoggers = {}; //http://groups.google.com/group/youtube-api-gdata/browse_thread/thread/e8a8c85b801b9e25
var totalvideos = 0;
var videoid = new Array();
var videoplayed = new Array();

function onYouTubePlayerReady(id)
{
	var video = document.getElementById(id);

	//State constants
	var unstarted = -1;
	var ended 	  = 0;
	var playing   = 1;
	var paused    = 2;
	var buffering = 3;
	var cued      = 5; //Page loaded, video has not been played yet

	//Video array default values being set for first time
	videoid[totalvideos] = id;
	videoplayed[totalvideos] = false;

	totalvideos = totalvideos + 1;

	youTubePlayerLoggers[id] = function(state)
	{
		var el = document.getElementById(id);
		var url = "http://www.youtube.com/watch?v=" + getYoutubeVideoID(el.getVideoUrl());
		var arrayindex = arraySearch(id);
		var currenttime = Math.ceil(el.getCurrentTime());

		if (state == playing)
		{
			if (videoplayed[arrayindex] == false)
			{
				pageTracker._trackEvent('video', 'unique_play_per_page', url, 0);
			}

			pageTracker._trackEvent('video', 'play', url, 0);

			//Flag video as having been played once
			videoplayed[arrayindex] = true;
		}

		if (state == ended)
		{
			pageTracker._trackEvent('video', 'ended', url, currenttime);
		}

		if (state == paused)
		{
			pageTracker._trackEvent('video', 'paused', url, currenttime);
		}
	};

	video.addEventListener("onStateChange", "youTubePlayerLoggers."+id);
	video.addEventListener('onError', 'onPlayerError');
}

function onPlayerError(errorCode)
{
	alert(errorCode);
}

function getYoutubeVideoID(url)
{
	var urlArr = url.split("v=");
	var urlArr2 = urlArr[1].split("&");
	return urlArr2[0];
}

function arraySearch(what)
{
	for (var i=0, len=totalvideos; i<len; ++i)
	{
		if(videoid[i].indexOf(what) >= 0) return i;
	}
}
