Newer
Older
CEE_VE50 / com / digitec / cee / LessonsCEE.as
@cwolsen cwolsen on 29 Aug 2019 52 KB Syncing changes to FLA files
/******************************************
 * @author Maria A. Zamora
 * @company Digitec Interactive Inc.
 * @version 0.1
 * @date 12/14/2010
 *
 * LessonsCEE class for lessonsFrame5 movie of the CEE application
 * CS5 version of com.digitec.cee.LessonsCEE
 *
 *******************************************/
package com.digitec.cee {
	import flash.printing.*;
	import flash.display.MovieClip;
	import flash.display.Sprite;
	import flash.events.*;
	import flash.text.StyleSheet;
	import flash.net.URLLoader;
	import flash.net.URLRequest;
	import flash.text.TextField;
	import flash.text.TextFieldAutoSize;
	import fl.controls.UIScrollBar;
	import fl.controls.ScrollBarDirection;
	import flash.net.NetConnection;
	import flash.net.NetStream;
	import flash.media.Video;
	import flash.display.Loader;
	import flash.display.LoaderInfo;
	import flash.net.*;
	import flash.text.*;
	import flash.media.SoundMixer;
	import flash.display.Bitmap;
	import flash.display.BitmapData;
	import fl.transitions.Tween;
	import fl.transitions.easing.*;
	import flash.text.Font;


	public class LessonsCEE extends BaseCEE {
		private static const OVERVIEW: String = "definition";
		private static const LESSONS: String = "lessons";
		private static const TIPS: String = "tips";
		private static const RESOURCES: String = "resources";
		private static const RELATED: String = "related";
		private var myFormat3: TextFormat;
		private var currentTab: String;
		private var contentItem: ConceptItem;
		private var conceptTxtField: TextField;
		private var glossTxtField: TextField;
		private var vScrollBar: UIScrollBar;
		private var vScrollBar2: UIScrollBar;
		private var flagGlossaOpen: Boolean; //Glossary Tab is closed				
		private var flagfGlossaOpen: Boolean; //Full Glossary Tab is closed
		private var glossary: Glossary;
		private var relatedItemsArr: Array;
		private var dw_quizgood;
		private var myFont2: Font = new Font1();
		private var versionField: TextField;
		private var videoHolder: VideoHolder;
		private var fl_Loader: Loader;
		private var dwactivevid = 0;
		private var fl_quizloader: Loader;
		private var fl_PICLoader: Loader;
		private var fl_PICLoader2: Loader;
		private var fl_ToLoad: Boolean = true; //This variable keeps track of whether you want to load or unload the SWF		
		private var vscrollglss: Boolean = false;
		private var vscrollconcept: Boolean = false;
		//private var myFont:Font = new Font1();
		private var isfullscreenset: Boolean;
		//private var ppLines:Number=70;		
		//private var ppLines:Number=48; <--on Hope's computer - font difference - count the # of lines on a full printed page to get this # - 54 for Dave's box
		private var ppLines: Number = 54
		private var videoObj: Object;
		private var cRelated_txt: TextField;
		private static const PAUSE_ME: String = "pauseMe";
		private var videoMC: MovieClip;
		private var dprintOver: Boolean = false;
		private var dprintLessons: Boolean = false;
		private var dprintTips: Boolean = false;
		private var dprintOnline: Boolean = false;
		private var dprintQuiz: Boolean = false;

		private var quiz: Quiz;
		private var arrayOfQuestions: Array;
		private var numberOfQuestions: int;
		private var correctQuestions: int;
		private var currQuestionNum: int;
		private var currCorrectAnswer: int;
		private var currCorrectAnswerText: String;
		private var currSelectedAnswer: int;
		private var emailAddress: String;
		private var xmlQuiz: String = MainConstants.XMLPATH + MainConstants.XMLQUIZ;
		private var emailButtonOn: Boolean;
		private var printButtonOn: Boolean;


		private var $nc: NetConnection;
		private var $ns: NetStream;
		private var $streampath: String;
		private var $streamurl: String = MainConstants.CEE_SERVER + MainConstants.XMLQUIZ;
		private var quizidSET;
		//private var quizidSET=3;
		//HEADER STRINGS
		private var conceptTitle_str: String;

		//MAX ANSWERS THAT FIX IN DISPLAY
		private var maxAnswers: int;

		//FOR FEEDBACK - SCREEN 3
		private var CORRECT_STR: String;
		private var INCORRECT_STR: String;
		private var correct_feedback: String;
		private var incorrect_feedback: String;
		private var dwthisispos: Number;
		//FOR QUIZCOMPLETED - SCREEN 4
		private var ANSW1_SCREEN4: String;
		private var ANSW2_SCREEN4: String;
		private var ANSW3_SCREEN4: String;
		private var COMPLETE_SCREEN4: String;
		private var questionField: TextField;
		private var lettersArr: Array = new Array("A", "B", "C", "D", "E");
		private var questionIdObj_arr: Array = new Array();
		private var questionAnsObj_arr: Array = new Array();
		private var currentQuestionId: String;
		private var currentQuestionTxt: String;
		private var currentCorrectTxt: String;
		private var btnAnswerId_arr: Array = new Array();
		private var btnAnswerTxt_arr: Array = new Array();
		private var vidpicpath: String;

		public function LessonsCEE() {
			super(MainConstants.XMLLESSONS);
			setup();

		}

		/*******************************************************************
		 * FUNCTION: SETUP FRAME TEXT_FIELDS  FROM XML
		 *******************************************************************/
		override public function setFramesText(_xml: XML): void {

			var passpath = Object(parent).getDpath();

			glossary = new Glossary();
			glossary.setpath(passpath);
			
			//SET CONCEPT TEXT AREA	
			var myFont: Font = new Font1();
			var myFormat: TextFormat = new TextFormat();
			myFormat.font = myFont.fontName;
			myFormat.size = 14;
			//myFormat.color = 0xFF00FF;
			
			conceptTxtField = new TextField();
			conceptTxtField.defaultTextFormat = myFormat;
			conceptTxtField.x = 51;
			conceptTxtField.y = 133;

			conceptTxtField.height = 340;
			conceptTxtField.width = 475;
			conceptTxtField.background = false;
			conceptTxtField.border = false;
			conceptTxtField.multiline = true;
			conceptTxtField.wordWrap = true;
			conceptTxtField.embedFonts = true;

			addChild(conceptTxtField);

			//LOAD CSS AND APPLY TO TEXT AREA
			var GETLISTXML = Object(parent).getDpath();
			var cssUrl: URLRequest = new URLRequest(GETLISTXML + "_VE50DATA/" + MainConstants.CSS_CONCEPT_COPY);
			
			trace("[LEssonsCEE.as:175]" + MainConstants.CSS_CONCEPT_COPY);
			//CSS_CONCEPT_COPY
			var cssLoader: URLLoader = new URLLoader();

			cssLoader.load(cssUrl);
			cssLoader.addEventListener(Event.COMPLETE, cssLoaded);
			function cssLoaded(event: Event): void {
				trace("[LessionsCEE.as:181] cssLoaded");
				var css: StyleSheet = new StyleSheet();
				css.parseCSS(URLLoader(event.target).data);
				conceptTxtField.styleSheet = css; //////////////////////////////////////////////////////////////////////////
				// conceptTxtField.textField.styleSheet = css;
			}	

			this.clickAbove_tf.text = _xml.xclickAbove;			
			var myFormat2: TextFormat = new TextFormat();
			myFormat2.font = myFont2.fontName;
			myFormat2.size = 12;
			myFormat2.color = 0x8DC269;
			myFormat2.bold = true;
			versionField = new TextField();
			versionField.defaultTextFormat = myFormat2;
			versionField.height = 17;
			versionField.width = 50;
			versionField.background = false;
			versionField.border = false;
			versionField.multiline = true;
			versionField.wordWrap = true;
			versionField.x = 415;
			versionField.y = 581;
			versionField.embedFonts = true;
			versionField.text = _xml.xversion2;
			vtxtmc.addChild(versionField);
			this.register_tf.text = _xml.xregister;

			//SET THE CURRENT TAB TO DEFINITION= OVERVIEW
			currentTab = OVERVIEW;

			var myFont3: Font = new Font1();
			myFormat3 = new TextFormat();
			myFormat3.font = myFont.fontName;
			myFormat3.size = 12;


			conceptTxtField.embedFonts = true;
			//SET GLOSSARY TEXT FIELD						
			glossTxtField = new TextField();
			glossTxtField.defaultTextFormat = myFormat3;
			glossTxtField.x = 16;
			glossTxtField.y = 15;
			glossTxtField.height = 273;
			glossTxtField.width = 160;
			glossTxtField.background = false;
			glossTxtField.border = false;
			glossTxtField.multiline = true;
			glossTxtField.wordWrap = true;
			glossTxtField.scrollV = 1;
			glossTxtField.embedFonts = true;
			this.glossary_mc.addChild(glossTxtField);




			var myFont4: Font = new Font1();
			var myFormat4: TextFormat = new TextFormat();
			myFormat4.font = myFont4.fontName;
			myFormat4.size = 12;
			myFormat4.color = 0xFFFFFF;
			myFormat4.underline = true;
			myFormat4.bold = true;
			//CREATE TEXT FIELD FOR RELATED LINKS			
			cRelated_txt = new TextField();
			cRelated_txt.defaultTextFormat = myFormat4;
			cRelated_txt.height = 149;
			cRelated_txt.width = 168;
			cRelated_txt.background = false;
			cRelated_txt.border = false;
			cRelated_txt.multiline = true;
			cRelated_txt.wordWrap = true;
			cRelated_txt.x = 586;
			cRelated_txt.y = 353;
			cRelated_txt.embedFonts = true;
			addChild(cRelated_txt);

			//CREATE VIDEO HOLDER
			videoHolder = new VideoHolder();
			videoHolder.x = 0;
			videoHolder.y = 0;

			addEventListener(HCustomEvent.ADD_GLOSSARY, addGlossary, true);

		}

		/*************************************************************************************
		 * FUNCTIONS: SET THE CONTENT ITEM OBJECT FOR FIRST TIME
		 ************************************************************************************/
		private function glossaryScrollGo() {
			vscrollglss = true;
			vScrollBar = new UIScrollBar();
			vScrollBar.direction = ScrollBarDirection.VERTICAL;
			vScrollBar.width = glossTxtField.width;
			vScrollBar.move(glossTxtField.x + glossTxtField.width, glossTxtField.y);
			vScrollBar.height = glossTxtField.height;
			vScrollBar.scrollTarget = glossTxtField;

			this.glossary_mc.addChild(vScrollBar);
		}
		private function glossaryScrollConcept() {
			vscrollconcept = true;

			vScrollBar2 = new UIScrollBar();
			vScrollBar2.direction = ScrollBarDirection.VERTICAL;
			vScrollBar2.width = conceptTxtField.width;
			vScrollBar2.move(conceptTxtField.x + conceptTxtField.width, conceptTxtField.y);
			vScrollBar2.height = conceptTxtField.height;
			vScrollBar2.scrollTarget = conceptTxtField;

			addChild(vScrollBar2);
		}
		
		public function setConceptText(concept: ConceptItem) {

			contentItem = concept;
			this.title_tf.text = contentItem.conceptName
			conceptTxtField.addEventListener(TextEvent.LINK, linkEvent);
			setRelated();
			dw_quizgood = contentItem.conceptQuiz;
			//trace("dw_quizgood"+dw_quizgood);
			setTabContent(OVERVIEW);
		}

		/*************************************************************************************
		 * FUNCTIONS: SET RELATED CONCEPTS
		 ************************************************************************************/
		public function setRelated() {

			relatedItemsArr = new Array();
			var conItem: ConceptItem;

			var str: String = "";
			if (contentItem.relatedConceptsArr != null) {
			
				var arr: Array = contentItem.relatedConceptsArr;
				
				//EXTRACT RELATED CONCEPTS IDS FROM ARRAY
				//GET FROM MAIN THE CONCEPT ITEM
				//CREATE AN ARRAY OF RELATED CONCEPTS ITEMS ///////////////////////MAYBE WE DONT NEED THIS
				//CREATE A STRING WITH RELATED CONCEPT ITEMS NAMES		
						
				for (var r: int = 0; r < arr.length; r++) {
				
					conItem = Object(parent).getConceptItemPerId(arr[r]);

					relatedItemsArr[r] = conItem;

					str += "<p><b><u><a href= 'event:viewRelated," + arr[r] + "'>" + conItem.conceptName + "</a></u><b></p>\n";
																		
				}
			}
			cRelated_txt.addEventListener(TextEvent.LINK, linkEventRelated);
			cRelated_txt.htmlText = "" + str;
											

		}

		/*************************************************************************************
		 * FUNCTIONS: EVENT  HANDLER FOR TEXT LINKS IN RELATED CONCEPTS
		 ************************************************************************************/
		private function linkEventRelated(e: TextEvent): void {
			var linkContent: Array = e.text.split(",");
			var functionName: String = linkContent[0];
			var args: String = linkContent[1];

			switch (functionName) {
				case "viewRelated":
					var conceptitem: ConceptItem = Object(parent).getConceptItemPerId(args);
					//trace("args                                     "+args);
					Object(parent).setlessonpage(conceptitem);
					//Object(parent).setIDLessonpage(ConceptItem);
					setConceptText(conceptitem);
					break;
				default:
					trace("function not found");
			}
		}

		/*************************************************************************************
		 * FUNCTIONS: SHOW LINK DEFINITION IN THE GLOSSARY
		 ************************************************************************************/
		private function getTabContent(): String {
			/*
			dprintOver
			dprintLessons
			dprintTips
			dprintOnline
			dprintQuiz
			*/
			var tempString: String = "";
			var tempString1: String = "";
			var tempString2: String = "";
			var tempString3: String = "";
			var tempString4: String = "";
			var tempString5: String = "";
			if (dprintOver == true) {
				//trace("string 1 good");
				tempString1 = "<font size='14'><b>Overview</b><BR>" + contentItem.conceptDefinition + "<BR><BR>";
			}
			if (dprintLessons == true) {
				//trace("string 2 good");
				tempString2 = "<font size='14'><b>Lessons</b></font><BR>" + contentItem.conceptLessons + "<BR><BR>";
			}
			if (dprintTips == true) {
				//trace("string 3 good");
				tempString3 = "<font size='14'><b>Tips</b></font><BR>" + contentItem.conceptTips + "<BR><BR>";
			}
			if (dprintOnline == true) {
				//trace("string 4 good");
				tempString4 = "<font size='14'><b>Online Resources</b></font><BR>" + contentItem.conceptResources + "<BR><BR>";
			}
			if (dprintQuiz == true) {
				//trace("string 5 good");
				tempString5 = "<font size='14'><b>Quiz</b></font><BR>" + currentQuestionTxt;
			}
			
			tempString = "<font size='14'><b>" + contentItem.conceptName + "</b></font><BR><BR>" + tempString1 + tempString2 + tempString3 + tempString4 + tempString5 + "<br><br>Copyright © Council for Economic Education. http://www.councilforeconed.org";

			return tempString;
		}
		private function init2(): void {
			vidpicpath = Object(parent).getDpath();
			loadQuizXML(vidpicpath + "_VE50DATA/" + xmlQuiz);
			trace("vidpicpath[LessonsCEE.as:411]: + _VE50DATA/+xmlQuiz  " + vidpicpath + "_VE50DATA/" + xmlQuiz);			
		}
		private function httpStatusHandlerQUIZ(event: HTTPStatusEvent): void {
			//trace("httpStatusHandler: -----------------------------------" + event);
			//trace("status: " + event.status);
			if (event.status == 0) {

				loadQuizXML(vidpicpath + "_VE50DATA/" + xmlQuiz);
			} else {
				loadQuizXML($streamurl);
			}
			//loadLibraryFinal(MainConstants.XMLPATH + dwpasspub);
		}




		/*******************************************************************
		 * FUNCTION:  TO LOAD TEXT FROM A XML FILE
		 *******************************************************************/
		private function loadQuizXML(stream: String): void {
			//TRYI FIRST TO CONNECT TO CEE SERVER 
			//trace("here first");
			var myurlloader: URLLoader = new URLLoader();

			var myurlreq: URLRequest = new URLRequest(stream);
			//myurlreq.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
			myurlloader.load(myurlreq);
			myurlloader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
			myurlloader.addEventListener(Event.COMPLETE, loadData);
			//myurlloader.addEventListener(Event.CONNECT, connectServer);

			function loadData(evt: Event) {
				var _xml: XML = new XML(myurlloader.data);
				currQuestionNum = 0;
				maxAnswers = 5;
				//CREATE THE QUIZ OBJECT WITH 5 ANSWERS PER QUESTION														

				//SET HEADER STRINGS
				//myXML.IMAGE.(@TITLE=="school")
				//trace("_xml.quizconcept.quizid.length() "+_xml.quizconcept.quizid.length());
				for (var i: int = 0; i < _xml.quizconcept.quizid.length(); i++) {
					var dwquiztemp2 = _xml.quizconcept.quizid[i];
					//trace("dwquiztemp2    "+dwquiztemp2);
					//trace("contentItem.conceptID    "+contentItem.conceptID);
					if (dwquiztemp2 == contentItem.conceptID) {
						dwthisispos = i;
						i = _xml.quizconcept.quizid.length();
					}
				};
				//trace(dwthisispos);

				quiz = new Quiz(_xml, maxAnswers, dwthisispos);
				arrayOfQuestions = quiz.questionsArr;
				numberOfQuestions = quiz.numOfQuestions;
				currentQuestionTxt = "";
				//trace("numberOfQuestions "+numberOfQuestions);
				for (var i2: int = 1; i2 < numberOfQuestions + 1; i2++) {
					//trace("Clip here   "+i2);
					currQuestionNum = i2;
					setQuestion(currQuestionNum);
				};

			}
		}
		private function ioErrorHandler(event: IOErrorEvent): void {
			trace("ioErrorHandler: " + event);
		}
		private function setQuestion(questionNum: int): void {

			var _questionObj: Question = arrayOfQuestions[questionNum - 1]
			currentQuestionTxt = currentQuestionTxt + "Question: " + _questionObj.question.toString() + "<BR>";
			//trace("currentQuestionTxt  t"+currentQuestionTxt);
			//question_txt.text =  _questionObj.question.toString();						

			currentQuestionId = _questionObj.thequestionId.toString(); /////////////////////////////////////////////////////////////////////////////////
			//trace("currentQuestionId===="+currentQuestionId);



			var _answers: Array = _questionObj.answers;
			//trace("_questionObj.answers.length       "+_questionObj.answers.length);
			var btnNum: int = _answers.length;
			//trace("btnNum   "+btnNum);
			//if( btnNum > 5){ btnNum = 5; }  //max is 5 buttons
			for (var index: int = 0; index < btnNum; index++) {

				//trace("________________Here");				
				currentQuestionTxt = currentQuestionTxt + "Answer: " + _answers[index].Answer + "<BR>";
			}
			currentQuestionTxt = currentQuestionTxt + "<BR>";
		}
		private function setTabContent(tab: String) {

			currentTab = tab;
			conceptTxtField.htmlText = "";

			if (tab == OVERVIEW) {


				tabOverview_mc.gotoAndStop(2);
				tabLessons_mc.gotoAndStop(1);
				tabTips_mc.gotoAndStop(1);
				tabResources_mc.gotoAndStop(1);
				conceptTxtField.htmlText = contentItem.conceptDefinition;
				
				if (contentItem.conceptResources == "") {
					this.tabResources_mc.visible = false;
				} //NEW
			} else if (tab == LESSONS) {
				tabOverview_mc.gotoAndStop(1);
				tabLessons_mc.gotoAndStop(2);
				tabTips_mc.gotoAndStop(1);
				tabResources_mc.gotoAndStop(1);
				conceptTxtField.htmlText = contentItem.conceptLessons;
				//trace("CONCEPT LESSONS+"+contentItem.conceptLessons);

			} else if (tab == TIPS) {
				tabOverview_mc.gotoAndStop(1);
				tabLessons_mc.gotoAndStop(1);
				tabTips_mc.gotoAndStop(2);
				tabResources_mc.gotoAndStop(1);
				conceptTxtField.htmlText = contentItem.conceptTips;

			} else if (tab == RESOURCES) {
				//conceptTxtField.htmlText ="Resources!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!";			
				//trace("contentItem.conceptResources"+contentItem.conceptResources); //NEW
				conceptTxtField.htmlText = contentItem.conceptResources; //NEW
				tabOverview_mc.gotoAndStop(1);
				tabLessons_mc.gotoAndStop(1);
				tabTips_mc.gotoAndStop(1);
				tabResources_mc.gotoAndStop(2);

			}

			if (vscrollconcept == false && conceptTxtField.numLines > 21) {
				glossaryScrollConcept();
				vScrollBar2.update();
			} else if (vscrollconcept == true && conceptTxtField.numLines > 21) {
				//glossaryScrollConcept();

				vScrollBar2.update();
			} else if (vscrollconcept == true && conceptTxtField.numLines < 22) {
				//glossaryScrollConcept();
				vscrollconcept = false;
				this.removeChild(vScrollBar2);
				//vScrollBar2.update();
			}
			fl_PICLoader = new Loader(); //NEW
			vidpicpath = Object(parent).getDpath();

			var picPath: String = "" + vidpicpath + "_VE50DATA/" + MainConstants.THUMBPIC_PATH + contentItem.conceptID + ".jpg"; //NEW
			fl_PICLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadProdComplete);
			fl_PICLoader.load(new URLRequest(picPath));

			//thumb = Bitmap(fl_PICLoader.content);
			//thumb.smoothing = true;
			//this.videoButton.picholder_mc.addChild(thumb);
			//NEW
			init2();
		}
		private function loadProdComplete(e: Event): void {
			var bit: Bitmap = e.target.content;
			if (bit != null) {
				bit.smoothing = true;
				bit.width = 170;
				bit.height = 170;
			}

			this.videoButton.picholder_mc.addChild(e.target.content);
		}
		//tf.addEventListener(TextEvent.LINK, linkEvent);		

		/*************************************************************************************
		 * FUNCTIONS: EVENT  HANDLER FOR LINKS IN CONTENT TEXT AREA
		 ************************************************************************************/
		private function linkEvent(txtEvt: TextEvent): void {
			//trace("EVENT=============================="+txtEvt.text);
			var functionArr: Array = HelperFunctions.extractFunctionName(txtEvt.text);
			//var functionArr:Array = extractFunctionName( txtEvt.text );
			var functionName: String = functionArr[0];
			var args: String = functionArr[1];
			switch (functionName) {
				case "defineGlossaryTerm":
					//trace("trip 1");
					this.defineGlossaryTerm(args);
					break;

				case "viewLesson":
					this.viewLesson(args);
					break;

				case "viewPublication":
					this.viewPublication(args);
					break;

				case "gotoKeywordSearch":
					this.gotoKeywordSearch(args);
					break;
				case "gotoWebPage":
					this.gotoWebPage(args);
					break;
				default:
					trace("function not found");
			}
		}
		//fullGlossary_btn
		/*************************************************************************************
		 * FUNCTIONS: CLICK TABS OF TEXT AREA
		 ************************************************************************************/
		public function clickOverviewTab(event: MouseEvent): void {
			setTabContent(OVERVIEW);
		}
		public function clickLessonsTab(event: MouseEvent): void {
			setTabContent(LESSONS);
		}
		public function clickTipsTab(event: MouseEvent): void {
			setTabContent(TIPS);
		}
		public function clickResourcesTab(event: MouseEvent): void {
			setTabContent(RESOURCES);
		}
		private function gotoKeywordSearch(str: String): void {
			if (str != null) {}
		}

		/*************************************************************************************
		 * FUNCTIONS:VIEW LESSONS
		 ************************************************************************************/
		private function viewLesson(str: String): void {
			//trace(str);
			if (str != null) {
				//var lessonitem:LessonItem = getLessonPerId( id );
				//pdfFile = lessonitem.pdf_url;
				Object(parent).setPDFLesson(str, false); //isLessonBrowse type = false

				Object(parent).setLastPDFlessonId(str, false); //remember last pdf
			}
		}

		private function gotoWebPage(str: String): void {
			//trace(str);
			if (str != null) {
				//var lessonitem:LessonItem = getLessonPerId( id );
				//pdfFile = lessonitem.pdf_url;
				var request: URLRequest = new URLRequest(str);
				navigateToURL(request, '_blank');
			}
		}
		/*************************************************************************************
		 * FUNCTIONS:VIEW PUBLICATIONS
		 ************************************************************************************/
		private function viewPublication(str: String): void {
			if (str != null) {
				//cRelated_txt.text = "View Publications: "+ str;												
				//trace("In Lessons, Publication Id = "+ str);
				Object(parent).setPublicationLesson(str, false); //isLessonBrowse type = false
				Object(parent).setLastPubId(str, false);
			}
		}

		/*************************************************************************************
		 * FUNCTIONS:DEFINE A GLOSSARY TERM
		 ************************************************************************************/
		private function defineGlossaryTerm(str: String): void {
			//glossTxtField.textField.styleSheet  = glossary.getStyleSheet();
			//glossTxtField.styleSheet  = glossary.getStyleSheet();
			/*
			glossTxtField.htmlText= glossary.defineGlossaryTerm(str);															
			glossTxtField.styleSheet  = glossary.getStyleSheet();			
			 vScrollBar.update();
			 */
			var tempText = glossTxtField.htmlText;
			trace("glossary go");
			glossTxtField.htmlText = glossary.defineGlossaryTerm(str) + "<BR>" + tempText;
			trace("vscrollglss  " + vscrollglss);
			trace("scroll lines  " + glossTxtField.numLines);
			if (vscrollglss == false && glossTxtField.numLines > 19) {
				glossaryScrollGo();
			}

			if (glossTxtField.numLines > 19) {
				vScrollBar.update();
			}
			
			if (!flagGlossaOpen) {
				openGlossary();
			}
		}

		private function openGlossary() { //this.glossary_mc.x =577; 
			var dwx = this.glossary_mc.x;
			var myTween: Tween = new Tween(this.glossary_mc, "x", Regular.easeOut, dwx, 577, .5, true);
			this.glossary_mc.expand_txt.text = "click to hide";
			flagGlossaOpen = true;
			cRelated_txt.visible = false;

		}
		private function closeGlossary() {
			//this.glossary_mc.x =779;  
			//this.glossary_mc.fullGlossBack.x =223;  
			var dwx = this.glossary_mc.x;
			var dwx2 = this.glossary_mc.fullGlossBack.x;
			var myTween: Tween = new Tween(this.glossary_mc, "x", Regular.easeOut, dwx, 779, .5, true);
			var myTween2: Tween = new Tween(this.glossary_mc.fullGlossBack, "x", Regular.easeOut, dwx2, 223, .4, true);
			this.glossary_mc.expand_txt.text = "click to expand";
			this.glossary_mc.fullGlossarybtn_txt.text = "BROWSE FULL GLOSSARY";
			flagGlossaOpen = false;
			flagfGlossaOpen = false;
			conceptTxtField.visible = true;
			if (vscrollconcept == true) {
				vScrollBar2.visible = true;
			}
			cRelated_txt.visible = true;
		}
		private function openFGlossary() {
			//this.glossary_mc.fullGlossBack.x =-555;
			this.glossary_mc.fullGlossarybtn_txt.text = "CLOSE FULL GLOSSARY";
			var dwx2 = this.glossary_mc.fullGlossBack.x;
			var myTween2: Tween = new Tween(this.glossary_mc.fullGlossBack, "x", Regular.easeOut, dwx2, -555, .5, true);
			conceptTxtField.visible = false;
			if (vscrollconcept == true) {
				vScrollBar2.visible = false;
			}
			flagfGlossaOpen = true;
		}
		private function closeFGlossary() {
			//this.glossary_mc.fullGlossBack.x =223;  
			//this.glossary_mc.x =779; 
			var dwx = this.glossary_mc.x;
			var dwx2 = this.glossary_mc.fullGlossBack.x;
			var myTween: Tween = new Tween(this.glossary_mc, "x", Regular.easeOut, dwx, 779, .4, true);
			var myTween2: Tween = new Tween(this.glossary_mc.fullGlossBack, "x", Regular.easeOut, dwx2, 223, .4, true);
			this.glossary_mc.fullGlossarybtn_txt.text = "BROWSE FULL GLOSSARY";
			this.glossary_mc.expand_txt.text = "click to expand";
			conceptTxtField.visible = true;
			cRelated_txt.visible = true;
			if (vscrollconcept == true) {
				vScrollBar2.visible = true;
			}
			flagGlossaOpen = false;
			flagfGlossaOpen = false;
		}
		/*************************************************************************************
		 * FUNCTION: EXPAND AND HIDE THE GLOSSARY PANEL
		 ************************************************************************************/
		private function expandHideGlossary(ev: MouseEvent): void {
			if (flagGlossaOpen) {
				closeGlossary();
			} else {
				openGlossary();
			}
		}

		/*************************************************************************************
		 * FUNCTION: PRINT GLOSSARY TERMS
		 ************************************************************************************/
		private function printGlossary(ev: MouseEvent): void {
			this.myPJ.printText.htmlText = ""
			//trace("PrintGlossary");			 
			this.myPJ.printText.htmlText = "Virtual Economics V.4 : Glossary<br>" + glossTxtField.htmlText + "<br>Copyright © Council for Economic Education. http://www.councilforeconed.org";


			////////////HMD TEST HERE
			var stripf: String = this.myPJ.printText.text
			this.myPJ.printText.htmlText = stripf
			this.myPJ.printText.defaultTextFormat = myFormat3

			var numPages = cleanupText();
			var printJob: PrintJob = new PrintJob();
			//HMD Removed for test
			//var numPages:int = 0;

			if (printJob.start()) {
				//numPages = Math.ceil(myPJ.printText.numLines/ ppLines);
				//numPages = Math.ceil(myPJ.printText.numLines/ ppLines);

				for (var i: int = 0; i < numPages; i++) {
					printJob.addPage(myPJ);
					nextPage();
				}
			}
		}

		/*************************************************************************************
		 * FUNCTION: CLEAR GLOSSARY TERMS
		 ************************************************************************************/
		private function clearGlossary(ev: MouseEvent): void {
			if (vscrollglss == true) {
				//this.glossary_mc.removeChild(vScrollBar);
				this.glossary_mc.removeChild(vScrollBar);
				vscrollglss = false;
			}
			glossTxtField.htmlText = "";
		}
		/*************************************************************************************
		 * FUNCTION: ADD A TERM TO THE GLOSSARY
		 ************************************************************************************/
		private function addGlossary(e: HCustomEvent): void {

			var tempText = glossTxtField.htmlText;

			//glossTxtField.styleSheet  = glossary.getStyleSheet();
			trace("add glossary");
			glossTxtField.htmlText = "<p class='term'>" + e.data.titleText + "</p><p class='def'>" + e.data.contentText + "</p><BR>" + tempText;
			trace("vscrollglss  " + vscrollglss);
			trace("scroll lines  " + glossTxtField.numLines);
			if (vscrollglss == false && glossTxtField.numLines > 19) {
				glossaryScrollGo();
			}

			if (glossTxtField.numLines > 19) {
				vScrollBar.update();
			}

		}
		/*************************************************************************************
		 * FUNCTION: FULL GLOSSARY TERMS
		 ************************************************************************************/
		private function fullGlossary(ev: MouseEvent): void {
			//glossTxtField.htmlText="";				
			//glossTxtField.styleSheet  = glossary.getStyleSheet();
			var fGlos = glossary.getFullGlossary();
			this.glossary_mc.fullGlossBack.init(!flagfGlossaOpen);
			//open Glossary tab
			if (flagfGlossaOpen) {
				closeFGlossary();
			} else {
				openFGlossary();
			}
		}
		/*************************************************************************************
		 * FUNCTION: PRINT TABS - WITH TASKS INVOLVED
		 ************************************************************************************/
		private function nextPage(): void {
			this.myPJ.printText.scrollV = this.myPJ.printText.scrollV + ppLines;
			trace("this.myPJ.printText.scrollV      " + this.myPJ.printText.scrollV);
			trace("ppLines      " + ppLines);
		}

		private function cleanupText(): Number {
			//used to add lines to the bottom of the print area so the last page won't overlap from the previous page.
			var numPages: int = 0;
			numPages = Math.ceil(myPJ.printText.numLines / ppLines);
			trace("Cleanup Text");
			trace("Number of Lines in PJ:" + myPJ.printText.numLines);
			trace("Number of Pages:" + numPages)
			var linestoadd = (numPages * ppLines) - myPJ.printText.numLines;

			for (var ct: int = 0; ct < linestoadd; ct++) {
				trace("Lines added:" + (ct + 1));
				myPJ.printText.htmlText += "<BR>"
			}
			myPJ.printText.scrollV = 0;
			myPJ.myScrollBar.visible = false;
			return numPages
		}

		public function printTabs(ev: MouseEvent): void {
			//add stuff
			cover_mc.visible = true;
			setChildIndex(cover_mc, numChildren - 1);
			printpopup.visible = true;
			setChildIndex(printpopup, numChildren - 1);
			printpopup.select_all.addEventListener(MouseEvent.CLICK, selectAll);
			printpopup.deselect_all.addEventListener(MouseEvent.CLICK, deselectAll);
			printpopup.print_close.addEventListener(MouseEvent.CLICK, closePrint);
			printpopup.print_overview.addEventListener(MouseEvent.CLICK, overviewPrint);
			printpopup.print_lessons.addEventListener(MouseEvent.CLICK, lessonsPrint);
			printpopup.print_tips.addEventListener(MouseEvent.CLICK, tipsPrint);
			printpopup.print_online.addEventListener(MouseEvent.CLICK, onlinePrint);
			printpopup.print_quiz.addEventListener(MouseEvent.CLICK, quizPrint);
			printpopup.print_btn.addEventListener(MouseEvent.CLICK, PrintButton);
			/*
				this.myPJ.printText.htmlText=getTabContent();				
				////////////
				cleanupText();
				
				var printJob:PrintJob = new PrintJob();
				var numPages:int = 0;
			
				if (printJob.start())
				{
					numPages = Math.ceil(myPJ.printText.numLines/ ppLines);
					
					for (var i:int = 0; i < numPages; i++)
					{
						printJob.addPage(myPJ);
						nextPage();
					}
				}*/
		}
		private function selectAll(ev: MouseEvent): void {


			printpopup.print_checkbox1.gotoAndStop(2);
			printpopup.print_checkbox2.gotoAndStop(2);
			printpopup.print_checkbox3.gotoAndStop(2);
			printpopup.print_checkbox4.gotoAndStop(2);
			printpopup.print_checkbox5.gotoAndStop(2);
			dprintOver = true;
			dprintLessons = true;
			dprintTips = true;
			dprintOnline = true;
			dprintQuiz = true;
		}
		private function deselectAll(ev: MouseEvent): void {


			printpopup.print_checkbox1.gotoAndStop(1);
			printpopup.print_checkbox2.gotoAndStop(1);
			printpopup.print_checkbox3.gotoAndStop(1);
			printpopup.print_checkbox4.gotoAndStop(1);
			printpopup.print_checkbox5.gotoAndStop(1);
			dprintOver = false;
			dprintLessons = false;
			dprintTips = false;
			dprintOnline = false;
			dprintQuiz = false;
		}
		private function closePrint(ev: MouseEvent): void {

			printpopup.print_close.removeEventListener(MouseEvent.CLICK, closePrint);
			printpopup.select_all.removeEventListener(MouseEvent.CLICK, selectAll);
			printpopup.deselect_all.removeEventListener(MouseEvent.CLICK, deselectAll);
			printpopup.print_overview.removeEventListener(MouseEvent.CLICK, overviewPrint);
			printpopup.print_lessons.removeEventListener(MouseEvent.CLICK, lessonsPrint);
			printpopup.print_tips.removeEventListener(MouseEvent.CLICK, tipsPrint);
			printpopup.print_online.removeEventListener(MouseEvent.CLICK, onlinePrint);
			printpopup.print_quiz.removeEventListener(MouseEvent.CLICK, quizPrint);
			printpopup.print_btn.removeEventListener(MouseEvent.CLICK, PrintButton);
			printpopup.print_checkbox1.gotoAndStop(1);
			printpopup.print_checkbox2.gotoAndStop(1);
			printpopup.print_checkbox3.gotoAndStop(1);
			printpopup.print_checkbox4.gotoAndStop(1);
			printpopup.print_checkbox5.gotoAndStop(1);
			dprintOver = false;
			dprintLessons = false;
			dprintTips = false;
			dprintOnline = false;
			dprintQuiz = false;
			cover_mc.visible = false;
			printpopup.visible = false;
		}
		private function overviewPrint(ev: MouseEvent): void {
			if (dprintOver == false) {
				printpopup.print_checkbox1.gotoAndStop(2);
				dprintOver = true;
			} else {
				dprintOver = false;
				printpopup.print_checkbox1.gotoAndStop(1);
			}
		}
		private function lessonsPrint(ev: MouseEvent): void {
			if (dprintLessons == false) {
				printpopup.print_checkbox2.gotoAndStop(2);
				dprintLessons = true;
			} else {
				dprintLessons = false;
				printpopup.print_checkbox2.gotoAndStop(1);
			}
		}
		private function tipsPrint(ev: MouseEvent): void {
			if (dprintTips == false) {
				printpopup.print_checkbox3.gotoAndStop(2);
				dprintTips = true;
			} else {
				dprintTips = false;
				printpopup.print_checkbox3.gotoAndStop(1);
			}
		}
		private function onlinePrint(ev: MouseEvent): void {
			if (dprintOnline == false) {
				printpopup.print_checkbox4.gotoAndStop(2);
				dprintOnline = true;
			} else {
				dprintOnline = false;
				printpopup.print_checkbox4.gotoAndStop(1);
			}
		}
		private function quizPrint(ev: MouseEvent): void {
			if (dprintQuiz == false) {
				printpopup.print_checkbox5.gotoAndStop(2);
				dprintQuiz = true;
			} else {
				dprintQuiz = false;
				printpopup.print_checkbox5.gotoAndStop(1);
			}
		}
		private function PrintButton(ev: MouseEvent): void {
			this.myPJ.printText.htmlText = ""
			this.myPJ.printText.htmlText = getTabContent();
			////////////strip formatting
			var stripf: String = this.myPJ.printText.text
			this.myPJ.printText.htmlText = stripf
			this.myPJ.printText.defaultTextFormat = myFormat3

			trace("SEND CLEANUP TEXT")
			var numPages = cleanupText();

			//HMD Try this
			//numPages = Math.ceil(myPJ.printText.numLines/ppLines);
			//trace("this.myPJ.printText.htmlText      "+this.myPJ.printText.text);
			var printJob: PrintJob = new PrintJob();
			//var numPages:int = 0;

			if (printJob.start()) {
				trace("myPJ.printText.numLines-----------------------------------------------   " + myPJ.printText.numLines);
				trace("ppLines-----------------------------------------------   " + ppLines);
				//numPages = Math.ceil(myPJ.printText.numLines/ppLines);
				trace("numPages-----------------------------------------------   " + numPages);
				for (var i: int = 0; i < numPages; i++) {
					printJob.addPage(myPJ);
					nextPage();
				}
			}
			printpopup.print_close.removeEventListener(MouseEvent.CLICK, closePrint);
			printpopup.print_overview.removeEventListener(MouseEvent.CLICK, overviewPrint);
			printpopup.print_lessons.removeEventListener(MouseEvent.CLICK, lessonsPrint);
			printpopup.print_tips.removeEventListener(MouseEvent.CLICK, tipsPrint);
			printpopup.print_online.removeEventListener(MouseEvent.CLICK, onlinePrint);
			printpopup.print_quiz.removeEventListener(MouseEvent.CLICK, quizPrint);
			printpopup.print_btn.removeEventListener(MouseEvent.CLICK, PrintButton);
			printpopup.select_all.removeEventListener(MouseEvent.CLICK, selectAll);
			printpopup.deselect_all.removeEventListener(MouseEvent.CLICK, deselectAll);
			printpopup.print_checkbox1.gotoAndStop(1);
			printpopup.print_checkbox2.gotoAndStop(1);
			printpopup.print_checkbox3.gotoAndStop(1);
			printpopup.print_checkbox4.gotoAndStop(1);
			printpopup.print_checkbox5.gotoAndStop(1);
			dprintOver = false;
			dprintLessons = false;
			dprintTips = false;
			dprintOnline = false;
			dprintQuiz = false;
			cover_mc.visible = false;
			printpopup.visible = false;
		}

		//closeVideo
		/*************************************************************************************
		 * FUNCTION: CLOSE VIDEO
		 ************************************************************************************/
		private function closeVideo(ev: MouseEvent): void {

			if (dwactivevid != 0) {
				SoundMixer.stopAll();
				//videoObj.pauseMe(PAUSE_ME);
				//videoObj.resetScreen();
				if (isfullscreenset == true) {
					stage.removeEventListener(KeyboardEvent.KEY_DOWN, pressESCKey);
					videoHolder.prompttext.text = "";
					isfullscreenset = false;
				}

				videoObj = null;
				videoMC = MovieClip(null);
				videoHolder.holder.stop();
				fl_Loader.unloadAndStop();
				videoHolder.holder.removeChild(fl_Loader);

				videoHolder.holder.visible = false;
				videoHolder.vid_background.gotoAndStop(1);
				videoHolder.picholder_mc.visible = true;
				videoHolder.beginplay_mc.visible = true;
				dwactivevid = 0;

			} else {
				this.cover_mc.visible = false;
				isfullscreenset = false;
				videoHolder.beginplay_mc.removeEventListener(MouseEvent.CLICK, launchVideo);
				videoHolder.x = 0;
				videoHolder.y = 0;
				videoHolder.width = 593;
				videoHolder.height = 466.30;
				conceptTxtField.visible = true;
				//Object(parent).setfullscreen(isfullscreenset);
				removeChild(videoHolder);
				SoundMixer.stopAll();
			}
			//

		}

//MrOlsen - PlayVideo
		/*************************************************************************************
		 * FUNCTION: LAUNCH VIDEO
		 ************************************************************************************/
		private function launchVideoQuiz(event: MouseEvent): void {
		
		if (contentItem.extVid != "") {
			navigateToURL(new URLRequest(contentItem.extVid), "_blank");
		}
		else {
			addChild(videoHolder);
			SoundMixer.stopAll();
			this.cover_mc.visible = true;
			conceptTxtField.visible = false;
			videoHolder.beginplay_mc.visible = true;
			if (dw_quizgood == "1") {
				videoHolder.takequiz_mc.visible = true;
				videoHolder.takequiz_mc.addEventListener(MouseEvent.CLICK, launchQuiz);
			}
			videoHolder.picholder_mc.visible = false;
			fl_PICLoader2 = new Loader(); //NEW
			vidpicpath = Object(parent).getDpath();
			var picPath: String = "" + vidpicpath + "_VE50DATA/" + MainConstants.THUMBPIC_PATH + contentItem.conceptID + ".jpg"; //NEW
			trace("picPath "+picPath);
			videoHolder.presentation_text.htmlText = "<b>" + contentItem.conceptName + "</b>";
			fl_PICLoader2.contentLoaderInfo.addEventListener(Event.COMPLETE, loadProdComplete2);
			fl_PICLoader2.load(new URLRequest(picPath));
			videoHolder.picholder_mc.visible = true;
			//videoHolder.picholder_mc.addChild(e.target.content);
			videoHolder.vid_background.gotoAndStop(1);
			videoHolder.holder.visible = false;
			videoHolder.quizclosebtn.visible = false;
			videoHolder.quizholder.visible = false;
			videoHolder.prompttext.text = "";
			videoHolder.closebtn.addEventListener(MouseEvent.CLICK, closeVideo);
			videoHolder.maxgobutton.addEventListener(MouseEvent.CLICK, TrytoMaximize);
			videoHolder.beginplay_mc.addEventListener(MouseEvent.CLICK, launchVideo);

			//trace("-------------------LAUNCH VIDEO QUIZ---------------------------");
			}
		}

		private function TrytoMaximize(event: MouseEvent): void

		{

			if (isfullscreenset == false) {
				videoHolder.x = -152.6;
				videoHolder.y = -123.25;
				videoHolder.width = 798.5;
				videoHolder.height = 637.35;
				isfullscreenset = true;
				videoHolder.prompttext.text = "Press Esc to exit full screen mode.";
				videoHolder.maxgobutton.visible = false;
				stage.addEventListener(KeyboardEvent.KEY_DOWN, pressESCKey);
			} else if (isfullscreenset == true) {
				videoHolder.prompttext.text = "  ";
				videoHolder.x = 0;
				videoHolder.y = 0;
				videoHolder.width = 593;
				videoHolder.height = 466.30;
				videoHolder.maxgobutton.visible = true;
				stage.removeEventListener(KeyboardEvent.KEY_DOWN, pressESCKey);
				videoHolder.prompttext.text = "  ";
				isfullscreenset = false;
			}

			//Object(parent).setfullscreen(isfullscreenset);
		}
		private function TryMinimize(): void

		{
			if (isfullscreenset == true) {
				videoHolder.x = 0;
				videoHolder.y = 0;
				videoHolder.width = 593;
				videoHolder.height = 466.30;
				videoHolder.prompttext.text = "  ";
				videoHolder.maxgobutton.visible = true;
				stage.removeEventListener(KeyboardEvent.KEY_DOWN, pressESCKey);
				isfullscreenset = false;
			}

			//Object(parent).setfullscreen(isfullscreenset);
		}
		private function pressESCKey(evt: KeyboardEvent): void {
			trace("key select here");
			if (evt.keyCode == 27) {
				trace("key select");
				TryMinimize();
			}
		} //KeyCode = 13 is ENTER key		 

		private function loadProdComplete2(e: Event): void {
			var bit: Bitmap = e.target.content;
			if (bit != null) {
				bit.width = 170;
				bit.height = 170;
				bit.smoothing = true;
			}
			videoHolder.picholder_mc.addChild(e.target.content);
		}

		/*************************************************************************************
		 * FUNCTION: LAUNCH VIDEO
		 ************************************************************************************/
		private function launchVideo(event: MouseEvent): void {
			//videoHolder.beginplay_mc.visible = false;
			//videoHolder.takequiz_mc.visible = false;
			dwactivevid = 1;
			videoHolder.vid_background.gotoAndStop(2);
			videoHolder.holder.visible = true;
			videoHolder.picholder_mc.visible = false;
			videoHolder.beginplay_mc.visible = false;
			//if(fl_ToLoad)
			//{
			var vidfullpath = Object(parent).getDpath();
			//trace("vidfullpath        "+vidfullpath);
			fl_Loader = new Loader();
			fl_Loader.contentLoaderInfo.addEventListener(Event.COMPLETE, movieLoaded);
			//if ((contentItem.conceptID != 14) && (contentItem.conceptID != 46)){
			//var videoPath:String = "" +vidfullpath+ "_VE4DATA/"+MainConstants.VIDEOMOVIEPATH + contentItem.conceptID + ".swf";
			//} else {
			//MrOlsen
			var videoPath: String = "" + MainConstants.VIDEOMOVIEPATH + contentItem.conceptID + ".swf";
			//}
			//trace("videoPath"+videoPath);
			//var videoPath:String = "" + MainConstants.VIDEOMOVIEPATH + "13" + ".swf";

			fl_Loader.load(new URLRequest(videoPath));
			videoHolder.holder.addChild(fl_Loader);
			
	        trace("[LessonsCEE.as:1241]extVid: " + contentItem.extVid);
		}
		public function movieLoaded(myevent: Event): void {
			//var videoObj:Object = videoHolder.holder.getChildAt(1); //ACCESS CODE IN LESSON MC
			//var videoObj:Object = myevent.target.content; //ACCESS CODE IN LESSON MC
			videoObj = myevent.target.content; //ACCESS CODE IN LESSON MC

			myevent.target.content.beginplayMe();
			//var videoMC:MovieClip = MovieClip(myevent.target.content);
			videoMC = MovieClip(myevent.target.content);
			videoObj.beginplayMe();
			videoObj.addEventListener("goEnd", videoEnd, true);
			var str: String = videoObj.toString(); //return "mainControl"				

			//trace("myevent.target.content = " +str);			
			//videoObj.nav_controller.beginplayMe();			
		}
		/*************************************************************************************
		 * FUNCTION: LAUNCH VIDEO
		 ************************************************************************************/
		public function videoEnd(e: Event): void {
			//addChild(videoHolder);					
			videoHolder.beginplay_mc.visible = true;
			//videoHolder.takequiz_mc.visible = true;
			if (dw_quizgood == "1") {
				videoHolder.takequiz_mc.visible = true;
				videoHolder.takequiz_mc.addEventListener(MouseEvent.CLICK, launchQuiz);
			}
			//videoHolder.holder.SoundMixer.stopAll(); 
			videoHolder.holder.stop();
			SoundMixer.stopAll();
			dwactivevid = 0;
			videoHolder.vid_background.gotoAndStop(1);
			if (fl_Loader != null) {
				videoHolder.holder.removeChild(fl_Loader);
			}

			videoHolder.holder.visible = false;
			videoHolder.picholder_mc.visible = true;
			videoHolder.beginplay_mc.visible = true;
			SoundMixer.stopAll();
			//videoHolder.closebtn.addEventListener(MouseEvent.CLICK,closeVideo); 
			//videoHolder.beginplay_mc.addEventListener(MouseEvent.CLICK, launchVideo); 
			//videoHolder.takequiz_mc.addEventListener(MouseEvent.CLICK, launchQuiz); 				
			//trace("-------------------LAUNCH VIDEO QUIZ---------------------------");
		}
		/*************************************************************************************
		 * FUNCTION: LAUNCH QUIZ
		 ************************************************************************************/
		private function launchQuiz(event: MouseEvent): void {
			//trace("did this trip");
			fl_Loader = new Loader();
			SoundMixer.stopAll();
			fl_Loader.contentLoaderInfo.addEventListener(Event.COMPLETE, quizmovieLoaded);
			//var videoPath:String = "" + MainConstants.VIDEOMOVIEPATH + contentItem.conceptID + ".swf";
			var videoPath: String = "" + "quiz.swf";
			//var videoPath:String = "" + MainConstants.VIDEOMOVIEPATH + "13" + ".swf";
			fl_Loader.load(new URLRequest(videoPath));
			videoHolder.quizholder.addChild(fl_Loader);

		}
		public function getDQpath() {
			return vidpicpath;
		}
		public function quizmovieLoaded(myevent: Event): void {
			var quizObj: Object = myevent.target.content; //ACCESS CODE IN LESSON MC
			myevent.target.content.PassID(contentItem.conceptID, vidpicpath);
			var videoMC: MovieClip = MovieClip(myevent.target.content);
			quizObj.PassID(contentItem.conceptID, vidpicpath);
			var qstr: String = quizObj.toString();
			videoHolder.vid_background.gotoAndStop(2);
			videoHolder.quizholder.visible = true;
			videoHolder.beginplay_mc.visible = false;
			videoHolder.quizclosebtn.visible = true;
			videoHolder.picholder_mc.visible = false;
			videoHolder.quizclosebtn.addEventListener(MouseEvent.CLICK, quizclosequiz);
		}
		private function quizclosequiz(ev: MouseEvent): void {
			SoundMixer.stopAll();
			videoHolder.quizholder.removeChild(fl_Loader);
			videoHolder.quizholder.visible = false;
			videoHolder.quizclosebtn.visible = false;
			videoHolder.picholder_mc.visible = true;
			videoHolder.beginplay_mc.visible = true;
			videoHolder.vid_background.gotoAndStop(1);
			//removeChild(videoHolder);
			//SoundMixer.stopAll();  
		}

		public function getConceptId(): String {
			return "" + contentItem.conceptID;
		}

		/*******************************************************************
		 * FUNCTIONS:  SET UP ALL BUTTONS AND TEXTFIELDS
		 *******************************************************************/
		private function setup(): void {
			//this.myPJ.printText.autoSize = TextFieldAutoSize.LEFT;
			//this.close_button2.buttonMode = true; 
			//this.close_button2.mouseChildren = false; 
			//this.close_button2.useHandCursor = true; 
			this.cover_mc.visible = false;
			printpopup.visible = false;
			/*this.about_button.buttonMode = true;
			this.about_button.mouseChildren = false; 
			this.about_button.useHandCursor = true; 			
			if(contentItem.conceptResources==null){
				this.tabResources_mc.visible=false;
			}*/
			this.print_button.buttonMode = true;
			this.print_button.mouseChildren = false;
			this.print_button.useHandCursor = true;

			//VIDEOS AND QUIZ
			this.videoButton.addEventListener(MouseEvent.CLICK, launchVideoQuiz);
			this.videoButton.buttonMode = true;

			//GLOSSARY PANEL BUTTONS			
			this.glossary_mc.glossaryPrint_btn.addEventListener(MouseEvent.CLICK, printGlossary);
			this.glossary_mc.glossaryClear_btn.addEventListener(MouseEvent.CLICK, clearGlossary);
			this.glossary_mc.fullGlossary_btn.addEventListener(MouseEvent.CLICK, fullGlossary);
			this.glossary_mc.fullGlossBack.closeGlossary_btn.addEventListener(MouseEvent.CLICK, fullGlossary);
			this.glossary_mc.expand_btn.addEventListener(MouseEvent.CLICK, expandHideGlossary);


			this.close_button2.addEventListener(MouseEvent.MOUSE_OVER, onCloseOver);
			this.close_button2.addEventListener(MouseEvent.MOUSE_OUT, onCloseOut);
			this.close_button2.addEventListener(MouseEvent.CLICK, onCloseClick);

			//this.about_button.addEventListener(MouseEvent.MOUSE_DOWN, gotoAboutFrm); 			
			this.about2_button.addEventListener(MouseEvent.MOUSE_DOWN, gotoAboutFrm);
			this.print_button.addEventListener(MouseEvent.MOUSE_DOWN, printTabs);

			this.nav_back_button.addEventListener(MouseEvent.MOUSE_OVER, onNavBackOver);
			this.nav_back_button.addEventListener(MouseEvent.MOUSE_OUT, onNavBackOut);
			this.nav_back_button.addEventListener(MouseEvent.CLICK, gotoLastFrm);

			this.nav_home_button.addEventListener(MouseEvent.MOUSE_OVER, onNavHomeOver);
			this.nav_home_button.addEventListener(MouseEvent.MOUSE_OUT, onNavHomeOut);
			this.nav_home_button.addEventListener(MouseEvent.MOUSE_DOWN, gotoHomeFrm);

			this.nav_concepts_button.addEventListener(MouseEvent.MOUSE_OVER, onNavConceptsOver);
			this.nav_concepts_button.addEventListener(MouseEvent.MOUSE_OUT, onNavConceptsOut);
			this.nav_concepts_button.addEventListener(MouseEvent.MOUSE_DOWN, gotoConceptsFrm);

			this.nav_lessons_button.addEventListener(MouseEvent.MOUSE_OVER, onNavLessonsOver);
			this.nav_lessons_button.addEventListener(MouseEvent.MOUSE_OUT, onNavLessonsOut);
			this.nav_lessons_button.addEventListener(MouseEvent.MOUSE_DOWN, gotoSearchFrm);


			this.tabOverview_mc.tab_btn.addEventListener(MouseEvent.MOUSE_OVER, mouseOverTab);
			this.tabLessons_mc.tab_btn.addEventListener(MouseEvent.MOUSE_OVER, mouseOverTab);
			this.tabTips_mc.tab_btn.addEventListener(MouseEvent.MOUSE_OVER, mouseOverTab);
			this.tabResources_mc.tab_btn.addEventListener(MouseEvent.MOUSE_OVER, mouseOverTab);

			this.tabOverview_mc.tab_btn.addEventListener(MouseEvent.MOUSE_OUT, mouseOutTab);
			this.tabLessons_mc.tab_btn.addEventListener(MouseEvent.MOUSE_OUT, mouseOutTab);
			this.tabTips_mc.tab_btn.addEventListener(MouseEvent.MOUSE_OUT, mouseOutTab);
			this.tabResources_mc.tab_btn.addEventListener(MouseEvent.MOUSE_OUT, mouseOutTab);

			this.tabOverview_mc.tab_btn.addEventListener(MouseEvent.CLICK, clickOverviewTab);
			this.tabLessons_mc.tab_btn.addEventListener(MouseEvent.CLICK, clickLessonsTab);
			this.tabTips_mc.tab_btn.addEventListener(MouseEvent.CLICK, clickTipsTab);
			this.tabResources_mc.tab_btn.addEventListener(MouseEvent.CLICK, clickResourcesTab);
		}

		/*******************************************************************
		 * FUNCTIONS:  BUTTONS ROLL OVER & OUT
		 *******************************************************************/
		private function mouseOverTab(evt: MouseEvent): void {
			evt.target.parent.textTab.alpha = .75;
			//trace("evt.target. = "+evt.target..toString() );
		}
		private function mouseOutTab(evt: MouseEvent): void {
			evt.target.parent.textTab.alpha = 1;
		}
		private function onCloseOver(evt: MouseEvent): void {
			this.close_button.gotoAndStop(2);
		}
		private function onCloseOut(evt: MouseEvent): void {
			this.close_button.gotoAndStop(1);
		}
		private function onNavBackOver(evt: MouseEvent): void {
			this.back_icon_roll.gotoAndStop(2);
		}
		private function onNavBackOut(evt: MouseEvent): void {
			this.back_icon_roll.gotoAndStop(1);
		}
		private function onNavHomeOver(evt: MouseEvent): void {
			this.house_mc.gotoAndStop(2);
		}
		private function onNavHomeOut(evt: MouseEvent): void {
			this.house_mc.gotoAndStop(1);
		}
		private function onNavConceptsOver(evt: MouseEvent): void {
			this.nav_concepts_roll.gotoAndStop(2);
		}
		private function onNavConceptsOut(evt: MouseEvent): void {
			this.nav_concepts_roll.gotoAndStop(1);
		}
		private function onNavLessonsOver(evt: MouseEvent): void {
			this.nav_lessons_roll.gotoAndStop(2);
		}
		private function onNavLessonsOut(evt: MouseEvent): void {
			this.nav_lessons_roll.gotoAndStop(1);
		}

	} // Main class

} //end package