// FUNCTIONS THAT CONTROL THE CONCEPT LIST ACCORDION
package com.digitec.cee
{
import flash.display.Sprite
import flash.events.*;
//import fl.data.DataProvider;
//import fl.controls.List
//import fl.controls.Label
//import fl.controls.Button
public class ConceptList extends Sprite
{
// private var clearButton:Button;
// private var availableItems:List;
// private var selectedItemList:List;
// private var selectedItemsList:List;
private var catList:Array = new Array();
// define the categories
private var activeCat:Number;
public function ConceptList()
{
//createComponents();
//setupComponents();
catList = ["Fundamental Economics","Macroeconomics","Microeconomics","International Economics","Personal Finance Economics"];
}
//initConceptList = function() {
//conceptList_mc.selectCategory = function(cat:Number):Void {
public function selectCategory( cat:Number ):void
{
//trace("! Select category : " + this.catList[cat]);
this.activeCat = cat;
//appRoot.cList_current = cat;
// tween all MCs to their proper position
for (var i=0; i<this.catList.length; i++)
{
var theMC = this["cat" + i + "_mc"];
var offset = 10 + (20*this["cat" + cat + "_mc"].listHeight);
theMC.stopTween();
theMC.arrow_mc.stopTween();
if (i == cat)
{
var theFunc = function()
{
this.showConcepts();
}
callback = {scope: theMC, func: theFunc};
theMC.arrow_mc.tween("rotation",90,.25);
theMC.tween("y",theMC.baseY,.5,"easeOutExpo",0,callback);
} else if (i > cat) {
theMC.arrow_mc.tween("rotation",0,.25);
theMC.tween("y",theMC.baseY+offset,0.5,"easeOutExpo");
theMC.hideConcepts();
} else {
theMC.arrow_mc.tween("rotation",0,.25);
theMC.tween("y",theMC.baseY,0.5,"easeOutExpo");
theMC.hideConcepts();
}
}
}
public function hideConcepts()
{
//trace("hide");
this.col1_mc._visible = false;
this.col2_mc._visible = false;
}
public function showConcepts()
{
//trace("show");
this.col1_mc._visible = true;
this.col2_mc._visible = true;
}
public function showActive()
{
this["cat" + this.activeCat + "_mc"].showConcepts();
}
// Begin setting up a category
// tweak the textfields by applying some styles
for (var j=0; j<conceptList_mc.catList.length; j++)
{
conceptList_mc["cat" + j + "_mc"].col1_mc.col_txt.styleSheet = appRoot.cssLib.conceptList_css;
conceptList_mc["cat" + j + "_mc"].col2_mc.col_txt.styleSheet = appRoot.cssLib.conceptList_css;
}
conceptList_mc.my_styleSheet.load("conceptList.css");
// populate the categories
for (var j=0; j<conceptList_mc.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 = conceptList_mc.catList[j];
var cList:Array = new Array();
cList = appRoot.getConceptsByCategory(j); // get concept list for a category
theCategory.col1_mc.col_txt.htmlText = "";
theCategory.col2_mc.col_txt.htmlText = "";
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);
// assign button actions
theCategory.cat_btn.onRelease = function() {
this._parent._parent.selectCategory(this._parent.myCat);
}
}
// set the back button
/*
back_mc.back_txt.text = "BACK TO MAIN";
back_mc.back_btn.onRelease = function() {
appRoot.gotoMain();
}
*/
if (appRoot.cList_current != undefined)
{
conceptList_mc.selectCategory(appRoot.cList_current);
}
} //end of class
} //end of package