 		private function videoAPIStateChangeHandler(evt:CustomEvent):void {
             trace('videoAPIStateChangeHandler dispatched');
 			trace('state:', evt.data.state);
+			stopVideoViewTimeTracker();
 			switch(evt.data.state) {
 				case video.STATE_PLAYING:
+					startVideoViewTimeTracker();
 					controls.updatePlayState(true);			// update controls
 					playOverlay.visible = false;			// hide overlay icon
 					posterImgContainer.visible = false;		// hide poster img
 					hideLoading();							// hide loader
 					hideHeader();							// hide header overlay
-					trackPlayEvent();						// analytics
+					trackEvent('Play');						// analytics
 					break;
 				case video.STATE_PAUSED:
 					controls.updatePlayState(false);		// update controls

			if(ExternalInterface.available) {
				ExternalInterface.addCallback("getCurrentTime", getCurrentTime);
				ExternalInterface.addCallback("seekToSegment", seekToSegment);
			}
		}

		// EXTERNAL METHOD
		public function getCurrentTime():Number {
			
			var currentTime:Number = 0
			try {
				currentTime = video.getCurrentTime();
			} catch(e:Error) {
				currentTime = 0;
			}
			
			return currentTime;
			
		}
		
		// EXTERNAL METHOD
		public function seekToSegment(id:String):void {
			
			trace("seekToSegment, id:" + id);
						
			var seekTime:Number = 0;
			for each(var segment:Object in videoSegments) {
				if(segment.id == id) {

			}
		}
		
		// EXTERNAL METHOD
		public function trackViewTime():void {
			trace("trackViewTime");
			try {
				var videoViewSecs:uint = Math.round(stopVideoViewTimeTracker()/1000);
				if(!videoViewSecs) return;
				trackEvent("Time Watched", videoViewSecs);
				var viewPercent:uint = Math.round((videoViewSecs/videoDuration)*100);
				trackEvent("Percent Watched", viewPercent);
			} catch(e:Error) {
				trace('trackViewTime error', e);
			}
		}
		
	}
	
