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

	/**
	 * The CPInteractiveItemSubmitEvent class describes the event object passed to the event listener when an interactive item is submitted
	 */
	 
	public class CPInteractiveItemSubmitEvent extends CaptivateEvent 
	{
		/**
		*  The <code>CPInteractiveItemSubmitEvent.CPINTERACTIVEITEMSUBMITEVENT</code> constant defines the value of the
		*  <code>type</code> property of the event object for an <code>CPInteractiveItemSubmitEvent</code> event.
		*  <p>The properties of the event object have the following values:</p>
		*  <table class="innertable">
		*     <tr><th>Property</th><th>Value</th></tr>
		*     <tr><td><code>bubbles</code></td><td><code>true</code></td></tr>
		*     <tr><td><code>includedInQuiz</code></td><td><code>true</code> if the interactive item is part of the quiz,<code>false</code> otherwise</td></tr>
		*     <tr><td><code>questionEventData</code></td><td>The question event data if the interactive item is part of the quiz</td></tr>
		*     <tr><td><code>itemName</code></td><td>The name of the item that was attempted</td></tr>
		*     <tr><td><code>slideNumber</code></td><td>The slide number of the slide the item is present upon</td></tr>
		*     <tr><td><code>frameNumber</code></td><td>The frame number upon which the item was attempted</td></tr>
		*     <tr><td><code>isSuccess</code></td><td><code>true</code> if the interactive item was correctly answered,<code>false</code> otherwise</td></tr>
		*     <tr><td><code>cancelable</code></td><td><code>false</code></td></tr>
		*	  </table>
		*  @eventType CPInteractiveItemSubmitEvent	
		*/
		public static const CPINTERACTIVEITEMSUBMITEVENT:String = "CPInteractiveItemSubmitEvent";
		/**
		* @private
		*/
		protected var m_QuestionEventData:CPQuestionEventData;
		/**
		* @private
		*/
		protected var m_ItemName:String;
		/**
		* @private
		*/
		protected var m_SlideNumber:Number;
		/**
		* @private
		*/
		protected var m_FrameNumber:Number;
		/**
		* @private
		*/
		protected var m_IsSuccess:Boolean;
		/**
		* @private
		*/
		protected var m_ObjectType:Number;

		public function CPInteractiveItemSubmitEvent(captivateVersion:String="",
			itemName:String="",slideNumber:Number=0,frameNumber:Number=0,isSuccess:Boolean=false,questionEventData:CPQuestionEventData=null,cancelable:Boolean=false, objectType:Number = -1)
		{
			super(CPInteractiveItemSubmitEvent.CPINTERACTIVEITEMSUBMITEVENT,captivateVersion,cancelable);
			m_QuestionEventData = questionEventData;
			m_ItemName = itemName;
			m_SlideNumber = slideNumber;
			m_FrameNumber = frameNumber;
			m_IsSuccess = isSuccess;
			m_ObjectType = objectType;
		}
		/**
		* @private
		*/
		public override function clone():Event
		{
			return new CPInteractiveItemSubmitEvent(captivateVersion,itemName,slideNumber,frameNumber,isSuccess,questionEventData,cancelable);
		}
		/**
		* The question event data if the interactive item is part of the quiz
		* @see CPQuestionEventData
		*/
		public function get questionEventData():CPQuestionEventData
		{
			return m_QuestionEventData;
		}
		/**
		* The name of the item that was attempted
		*/
		public function get itemName():String
		{
			return m_ItemName;
		}
		/**
		* The slide number of the slide the item is present upon
		*/
		public function get slideNumber():Number
		{
			return m_SlideNumber;
		}
		/**
		* The frame number upon which the item was attempted
		*/
		public function get frameNumber():Number
		{
			return m_FrameNumber;
		}
		/**
		* <code>true</code> if the interactive item was correctly answered,<code>false</code> otherwise
		*/
		public function get isSuccess():Boolean
		{
			return m_IsSuccess;
		}
		/**
		* <code>true</code> if the interactive item is part of the quiz,<code>false</code> otherwise
		*/
		public function get includedInQuiz():Boolean
		{
			return m_QuestionEventData!=null;
		}	
		/*
		* @private	
		*/
		public override function toString():String
		{
			return formatToString("CPInteractiveItemSubmitEvent","type","bubbles","cancelable","eventPhase","captivateVersion","itemName","slideNumber","frameNumber",
			"isSuccess","includedInQuiz","questionEventData");
		}
		public function getObjectType():Number
		{
			return m_ObjectType;
		}
	}
}
