/***********************************************************
 * @author Maria A. Zamora
 * @company Digitec Interactive Inc.
 * @version 0.1
 * @date 12/14/2010
 * 
 *Category class for conceptsFrame3 movie of the CEE application
 * CS5 version of com.digitec.cee.Category  
**********************************************************/
package com.digitec.cee
{
	//import flash.display.MovieClip;	
	//import flash.events.*;	
	//import flash.display.SimpleButton;
	
	public class Category 
	{				 
		//private var _xml:XML;								
		private var catId:int;
		private var catName:String;
		private var concept_Count:int = 0;
		private var is_Active:Boolean;
		private var catConcepts_arr:Array;
		private var base_Y:Number;
		
		 
		// public function Category(id:int, catname:String, basey:Number; xml:XML)
		 public function Category(id:int, catname:String, basey:Number, conceptcount:int)
		 {			
		 	catId = id;
			catName = catname;												
			base_Y = basey;
			catConcepts_arr = new Array();
			concept_Count = conceptcount;
		}							
		
		/*******************************************************************
	 	* SET FUNCTIONS
		*******************************************************************/				
		public function set isActive( active:Boolean ):void{ is_Active = active; }		
		
		public function set conceptCount( count:int ):void	{ concept_Count =count; }				
		
		/*******************************************************************
	 	* GET FUNCTIONS
		*******************************************************************/				
		public function get isActive():Boolean{ return is_Active; }
			
		public function get categoryID():int{ return catId; }
		
		public function get categoryName():String	{ return catName; }				
		
		public function get conceptCount():int	{ return concept_Count; }				
		
		public function get baseY():Number	{	return base_Y; 	}		
		
		//for(var i:int = 0; i< allAnswers_arr.length; i++){trace("allAnswers_arr = " + allAnswers_arr[i]);}
		public function get conceptArray():Array { return catConcepts_arr; }		
		
		
		/*******************************************************************
	 	* FUNCTION: PUSH CONCEPTS ITEMS IN THE CONCEPT
		* ARRAY OF THE SPECIFIC CATEGORY		
		*******************************************************************/				
		public function insertConceptToArray( item:ConceptItem ):void
		{			
			catConcepts_arr.push(item);
			conceptCount = catConcepts_arr.length;			
		}
				
		/*******************************************************************
		 * FUNCTION: SET CONCEPTS  FROM XML
		 *******************************************************************/
		public function setConcepts(_xml:XML ):void
		{						
			/*
			// populate the categories
			//for (var j=0; j<conceptList_mc.catList.length; j++) {
			for (var j=0; j<catList.length; j++) {
				var theCategory = conceptList_mc["cat" + j + "_mc"];
				//theCategory.hideConcepts = conceptList_mc.hideConcepts;
				//theCategory.showConcepts = conceptList_mc.showConcepts;
				theCategory.myCat = j;
				theCategory.baseY = theCategory.y;		
				theCategory.catName_txt.text = catList[j];//theCategory.catName_txt.text = conceptList_mc.catList[j];
				var cList:Array = new Array();
				cList = getConceptsByCategory(j); // get concept list for a category
				theCategory.col1_mc.col_txt.htmlText = "";
				theCategory.col2_mc.col_txt.htmlText = "";
				this.hideConcepts(j);//theCategory.hideConcepts();
				theCategory.conceptCount_txt.text = cList.length + " concepts";
				for (var i=0; i<cList.length; i++) {
					var theField;
					if (i<Math.ceil(cList.length/2)) {
						theField = theCategory.col1_mc.col_txt;
					} else {
						theField = theCategory.col2_mc.col_txt;
					}
					theField.htmlText += "<p><a href=\"asfunction:appRoot.showConcept," + cList[i].id + "\">" + cList[i].name + "</a></p>\n";
					}
				theCategory.listHeight = Math.ceil(cList.length/2);
				
				//theCategory.cat_btn.onRelease = function() {	this._parent._parent.selectCategory(this._parent.myCat);	}
			}		
			*/
		}							
		
		/*
		// FUNCTIONS FOR MANIPULATION AND RETREIVAL OF CONCEPT DATA
	private function getConceptsByCategory(cat:Number):Array
	{		
		// takes a category id as the argument (0-4)
		// returns an array of objects with the properties "id" and "name"
		// create and apply a filter to the dataSet
		appRoot.concept_ds.filtered = false;
		appRoot.catToFetch = cat;
		function catFunc(item:Object):Boolean
		{
			if (item.category == cat)	{	return true;
			} else {	return false;}
		}
		appRoot.concept_ds.filterFunc = catFunc;
		appRoot.concept_ds.filtered = true;	// apply the filter
		appRoot.concept_ds.applyUpdates();
		// now move through the ds and create the array to return
		var c:Array = new Array();
		appRoot.concept_ds.first();
		while(appRoot.concept_ds.hasNext())
		{
			c.push({name:appRoot.concept_ds.currentItem.name,id:appRoot.concept_ds.id});
			//trace(appRoot.concept_ds.currentItem.id + " : " + appRoot.concept_ds.currentItem.name);
			appRoot.concept_ds.next();
		}
		// remove the filter
		appRoot.concept_ds.filtered = false;
		appRoot.concept_ds.applyUpdates();
		// sort it alphabetically
		c.sortOn("name", 1); // case insensitive
		return c;
	}
		*/
		
		
		
 
	} // Main class
 
} //end package







