var _player;
var _experienceModule;
var _advertisingModule;
var _videoPlayerModule;
var _contentModule;
var _cuePointsModule;

var _videoPosition = "0";

function onTemplateLoaded(experienceID) {	
//trace("template loaded: " + experienceID);
    _player = brightcove.getExperience(experienceID);
	_advertisingModule = _player.getModule(APIModules.ADVERTISING);
	_videoPlayerModule =  _player.getModule(APIModules.VIDEO_PLAYER);
	_experienceModule = _player.getModule(APIModules.EXPERIENCE);
	_contentModule = _player.getModule(APIModules.CONTENT);
	_cuePointsModule = _player.getModule(APIModules.CUE_POINTS);
	
	_experienceModule.addEventListener(BCExperienceEvent.TEMPLATE_READY, onTemplateReady);
}

function onTemplateReady(evt){
//	trace(evt.type);
	_videoPlayerModule.addEventListener(BCMediaEvent.PROGRESS, progressTracker);
	_videoPlayerModule.addEventListener(BCMediaEvent.BEGIN, eventHandler);
	_videoPlayerModule.addEventListener(BCMediaEvent.BUFFER_BEGIN, eventHandler);
	_videoPlayerModule.addEventListener(BCMediaEvent.BUFFER_COMPLETE, eventHandler);
	_videoPlayerModule.addEventListener(BCMediaEvent.PLAY, eventHandler);
	_videoPlayerModule.addEventListener(BCMediaEvent.SEEK, eventHandler);
	_videoPlayerModule.addEventListener(BCMediaEvent.STOP, eventHandler);
	_videoPlayerModule.addEventListener(BCMediaEvent.COMPLETE, eventHandler);	
	_cuePointsModule.addEventListener(BCCuePointEvent.CUE, onCuePoint);
	_advertisingModule.addEventListener(BCAdvertisingEvent.EXTERNAL_AD, eventHandler);
	_advertisingModule.addEventListener(BCAdvertisingEvent.AD_START, eventHandler);
	_advertisingModule.addEventListener(BCAdvertisingEvent.AD_COMPLETE, eventHandler);
	_contentModule.addEventListener(BCContentEvent.MEDIA_LOAD, eventHandler);
}

function progressTracker(evt){
	_videoPosition = _videoPlayerModule.getVideoPosition();
}

function eventHandler(evt){
//	trace(evt.type + " : " + _videoPosition);	
	
	switch (evt.type)
	{
		case "adStart":
			expandPlayer("out");
			break;
		case "adComplete":
			expandPlayer("in");
			break;
	}
}

function onCuePoint(evt){
//	trace("cue point: " + evt.cuePoint.name);
}