﻿// Copyright 2007. Adobe Systems Incorporated. All Rights Reserved.
package com.adobe.captivate.events 
{
	import flash.events.Event;
	import com.adobe.captivate.enums.CPQuestionScoringTypeEnum;

	/**
	 * The CaptivateEvent class defines the base class for all events that will be fired by a captivate movie. 
     *
     *
     * @langversion 3.0
     * @playerversion Flash 9.0.28.0
	 */
	public class CPQuestionEventData
	{
		protected var m_SlideNumber:Number;
		protected var m_QuestionNumber:Number;
		protected var m_QuestionScoringType:CPQuestionScoringTypeEnum;
		protected var m_QuestionType:String;
		protected var m_QuestionAnswered:Boolean;
		protected var m_QuestionAnsweredCorrectly:Boolean;
		protected var m_QuestionMaxScore:Number;
		protected var m_QuestionScore:Number;
		protected var m_QuestionMaxAttempts:Number;
		protected var m_QuestionAttempts:Number;
		protected var m_InteractionID:String;
		protected var m_QuizName:String;
		protected var m_ObjectiveID:String;
		
		public function CPQuestionEventData(slideNumber:Number,questionNumber:Number,questionScoringType:CPQuestionScoringTypeEnum,questionType:String,
		questionAnswered:Boolean,questionAnsweredCorrectly:Boolean,questionMaxScore:Number,questionScore:Number,questionMaxAttempts:Number,questionAttempts:Number,interactionID:String,
		quizName:String,objectiveID:String)
		{
			m_SlideNumber = slideNumber;
			m_QuestionScoringType = questionScoringType;
			m_QuestionNumber = questionNumber;
			m_QuestionType = questionType;
			m_QuestionAnswered = questionAnswered;
			m_QuestionAnsweredCorrectly = questionAnsweredCorrectly;
			m_QuestionMaxScore = questionMaxScore;
			m_QuestionScore = questionScore;
			m_QuestionMaxAttempts = questionMaxAttempts;
			m_QuestionAttempts = questionAttempts;
			m_InteractionID = interactionID;
			m_QuizName = quizName;
			m_ObjectiveID = objectiveID;
		}
		public function get slideNumber():Number
		{
			return m_SlideNumber;
		}
		public function get questionNumber():Number
		{
			return m_QuestionNumber;
		}
		public function get questionScoringType():CPQuestionScoringTypeEnum
		{
			return m_QuestionScoringType;
		}
		public function get questionType():String
		{
			return m_QuestionType;
		}
		public function get questionAnswered():Boolean
		{
			return m_QuestionAnswered;
		}
		public function get questionAnsweredCorrectly():Boolean
		{
			return m_QuestionAnsweredCorrectly;
		}
		public function get questionMaxScore():Number
		{
			return m_QuestionMaxScore;
		}
		public function get questionScore():Number
		{
			return m_QuestionScore;
		}
		public function get questionMaxAttempts():Number
		{
			return m_QuestionMaxAttempts;
		}
		public function get questionAttempts():Number
		{
			return m_QuestionAttempts;
		}
		public function get interactionID():String
		{
			return m_InteractionID;
		}
		public function get quizName():String
		{
			return m_QuizName;
		}
		public function get objectiveID():String
		{
			return m_ObjectiveID;
		}
		public function get	infiniteAttempts():Boolean
		{
			return (questionMaxAttempts == -1);
		}
		public function toString():String
		{
			return ("[CPQuestionEventData slideNumber="+slideNumber+" questionNumber="+questionNumber+" questionScoringType="+questionScoringType+" questionType="+
			questionType+" questionAnswered="+questionAnswered+" questionAnsweredCorrectly="+questionAnsweredCorrectly+" questionMaxScore="+questionMaxScore+" questionScore="+questionScore+
			" infiniteAttempts="+infiniteAttempts+" questionMaxAttempts="+questionMaxAttempts+" questionAttempts="+questionAttempts+" interactionID="+interactionID+" quizName="+quizName+
			" objectiveID="+objectiveID+"]");
			
		}
	}
}
