package com.guru.component.quiz 
{
	/**
	 * ...
	 * @author Eddy Lee
	 */
	public class QuizData
	{
		private var mData_xml:XML;
		
		private var mSelected_array:Array;
		private var mCustomText_array:Array;
		
		public function QuizData(pData_xml:XML)
		{
			mData_xml = pData_xml;
			
			mCustomText_array = new Array();
			mSelected_array = new Array();
			for (var i:Number = 0; i < mData_xml.option.length(); i++ )
			{
				mCustomText_array.push("");
				mSelected_array.push(false);
			}
		}
		
		public function isSelected(pIndex_num:Number):Boolean
		{
			return mSelected_array[pIndex_num];
		}
		
		public function select(pIndex_num:Number, pSelect_bol:Boolean):void
		{
			mSelected_array[pIndex_num] = pSelect_bol;
		}
		
		public function getCustomText(pIndex_num:Number):String
		{
			return mCustomText_array[pIndex_num];
		}
		
		public function setCustomText(pIndex_num:Number, pText_str:String):void
		{
			mCustomText_array[pIndex_num] = pText_str;
		}
		
		public function dispose():void
		{
			
		}
		
		public function getQuestionText():String
		{
			return mData_xml.question[0];
		}
		
		public function getNumberOfOption():Number
		{
			return mData_xml..option.length();
		}
		
		public function getOptionIndex(pIndex_num:Number):String
		{
			return mData_xml.option[pIndex_num].index[0];
		}
		
		public function getOptionType(pIndex_num:Number):String
		{
			return mData_xml.option[pIndex_num].type[0];
		}
		
		public function getOptionDefaultText(pIndex_num:Number):String
		{
			return mData_xml.option[pIndex_num].defaultText[0];
		}
		
		public function getOptionDescription(pIndex_num:Number):String
		{
			return mData_xml.option[pIndex_num].description[0];
		}
		
		public function isFinished():Boolean
		{
			var selected_num:Number = 0;
			for (var i:Number = 0; i < mSelected_array.length; i++ )
			{
				if (mSelected_array[i])
				{
					selected_num++;
					
					//if(this.getOptionType(i) == "0")
						//selected_num++;
					//else if (this.getOptionType(i) == "1" && this.getCustomText(i).length > 0)
						//selected_num++;
				}
			}
			return getMin() <= selected_num && selected_num <= getMax();
		}
		
		public function getMin():Number
		{
			return Number(mData_xml.min[0]);
		}
		
		public function getMax():Number
		{
			return Number(mData_xml.max[0]);
		}
		
	}

}