home *** CD-ROM | disk | FTP | other *** search
/ FCE Gold Plus / GOLD.iso / pc / shell.swf / scripts / __Packages / com / screen / TestSelector.as < prev    next >
Text File  |  2007-10-16  |  14KB  |  313 lines

  1. class com.screen.TestSelector
  2. {
  3.    function TestSelector()
  4.    {
  5.    }
  6.    function init(_objScreenData, _objSourceRef)
  7.    {
  8.       var _loc1_ = this;
  9.       trace(">>>>>>>>.--------- ppp1111 :::::; " + _objScreenData);
  10.       trace(">>>>>>>>.--------- ppp2222 :::::; " + _objSourceRef);
  11.       _loc1_.c_objScreenData = _objScreenData;
  12.       _loc1_.c_objSourceRef = _objSourceRef;
  13.       _loc1_.c_objTestData = new Object();
  14.       _loc1_.loadScreen();
  15.    }
  16.    function loadScreen()
  17.    {
  18.       _level101.gotoAndStop("TESTSELECT");
  19.       this.arrange();
  20.    }
  21.    function arrange()
  22.    {
  23.       var _loc2_ = this;
  24.       var objTestSel = _loc2_.c_objScreenData["get"]("objTest").tests;
  25.       trace(">>>>>>>>.--------- ppp33333 -- objTestSel :::  " + objTestSel);
  26.       _loc2_.c_objTestSel = objTestSel;
  27.       _level101.txt_Header.autoSize = true;
  28.       _level101.txt_Header.html = true;
  29.       _level101.txt_Header.htmlText = objTestSel.header.data;
  30.       com.controller.UICoordinator.getInstance().setTitle(objTestSel.Title.data);
  31.       trace(">>>>>>>>.--------- ppp4444 -- objTestSel.footer.data :::  " + objTestSel.footer.data);
  32.       _level101.txt_Footer.htmlText = objTestSel.footer.data;
  33.       var objTests = objTestSel.test;
  34.       var iTotalTests = objTests.length;
  35.       var iStartX = 3;
  36.       var iStartY = 38;
  37.       var iTestGroupDistance = 8;
  38.       var iContinue = 86;
  39.       var iCounter = 1;
  40.       var _iDepthCount = 1;
  41.       var struserName = com.controller.UICoordinator.getInstance().userName;
  42.       _loc2_.c_objTestData.UserName = struserName;
  43.       _level101.mc_MenuScrollPane._visible = true;
  44.       _level101.mc_MenuScrollPane.refreshPane();
  45.       _level101.mc_MenuScrollPane.setScrollContent("mcEmpty");
  46.       _level101.mc_MenuScrollPane.setSize(720,370);
  47.       _level101.mc_Content = _level101.mc_MenuScrollPane.getScrollContent();
  48.       var objTest;
  49.       if(iTotalTests == undefined || iTotalTests == null)
  50.       {
  51.          iTotalTests = 1;
  52.          objTest = objTests;
  53.       }
  54.       var i = 1;
  55.       while(i <= iTotalTests)
  56.       {
  57.          var _loc3_ = _level101.mc_Content.attachMovie("mc_TestSelTemplate","mcTest" + i,i);
  58.          _loc3_._x = iStartX;
  59.          _loc3_._y = iStartY;
  60.          iStartY = _loc3_._y + _loc3_._height;
  61.          if(objTests[i - 1] != null)
  62.          {
  63.             objTest = objTests[i - 1];
  64.          }
  65.          _loc3_.txt_TestTitle.autoSize = true;
  66.          var strTestTitle = objTest.attributes.title;
  67.          _loc3_.txt_TestTitle.text = objTest.attributes.title + " :";
  68.          var iTotalSkills = objTest.skill.length;
  69.          _loc2_.hideAllTestButtons(_loc3_,iTotalSkills);
  70.          var _loc1_ = 1;
  71.          while(_loc1_ <= iTotalSkills)
  72.          {
  73.             var mcPrevButton;
  74.             var _strAddName = "_" + i + "_" + _loc1_;
  75.             var strPath = objTest.attributes.path;
  76.             _loc3_["txt_TestName" + _loc1_].text = objTest.skill[_loc1_ - 1].attributes.name;
  77.             var strSkillName = objTest.skill[_loc1_ - 1].attributes.name;
  78.             var strTestName = "";
  79.             if(strSkillName.toUpperCase() == "Reading".toUpperCase())
  80.             {
  81.                strSkillName = "R";
  82.                strTestName = "reading";
  83.             }
  84.             else if(strSkillName.toUpperCase() == "Listening".toUpperCase())
  85.             {
  86.                strSkillName = "L";
  87.                strTestName = "listening";
  88.             }
  89.             else if(strSkillName.toUpperCase() == "Writing".toUpperCase())
  90.             {
  91.                strSkillName = "W";
  92.                strTestName = "writing";
  93.             }
  94.             else if(strSkillName.toUpperCase() == "Use of English".toUpperCase())
  95.             {
  96.                strSkillName = "UOE";
  97.                strTestName = "useofenglish";
  98.             }
  99.             _loc2_.c_strSkillName = strSkillName;
  100.             _loc2_.c_objTestData["Test" + i] = new Object();
  101.             _loc2_.c_objTestData["Test" + i].SkillName = _loc2_.c_strSkillName;
  102.             var strTest = strTestName + i;
  103.             var strTestTitle = strTestTitle.split(" ").join("");
  104.             var strFileName = String(struserName + strSkillName + strTestTitle);
  105.             var arrKeys111 = _loc2_.c_objScreenData.getKeys();
  106.             var bln = false;
  107.             var objScore = _loc2_.c_objScreenData["get"](strFileName).results;
  108.             _loc2_.c_strScore = objScore.score.data;
  109.             var strStatus = "Not Done";
  110.             var strWritingStatus = "";
  111.             var strScoreTime = "";
  112.             if(objScore == null)
  113.             {
  114.                _loc3_["txt_TimeLeft" + _loc1_].text = "Not Done";
  115.                strScoreTime = objTest.skill[_loc1_ - 1].attributes.time;
  116.                var iTestTime;
  117.                var arrTimeArr = objTest.skill[_loc1_ - 1].attributes.time.split(" ");
  118.                iTestTime = arrTimeArr[0];
  119.                var mcTakeTest = _loc3_["btn_TakeTest_" + _loc1_];
  120.                mcTakeTest._visible = true;
  121.                _loc2_.arrangeTakeTestButton(strTest,strFileName,mcTakeTest,strTestName,iTestTime);
  122.             }
  123.             else
  124.             {
  125.                var blnTestComplete = objScore.attributes.complete;
  126.                var strTime = objScore.time.data;
  127.                if(blnTestComplete == "true")
  128.                {
  129.                   var _strGrade = _loc2_.setGrade(strTestName);
  130.                   strScoreTime = strTime + "  minute(s) taken";
  131.                   if(strSkillName.toUpperCase() == "W".toUpperCase())
  132.                   {
  133.                      if(Number(objScore.totalAttempted.data) == Number(objScore.totalQuestion.data))
  134.                      {
  135.                         strStatus = "The writing section is not marked.";
  136.                         _loc3_.txt_TestStatus2_2._x -= 40;
  137.                      }
  138.                      else
  139.                      {
  140.                         strStatus = "The writing section is not marked.";
  141.                      }
  142.                      strWritingStatus = "The writing section is not marked.";
  143.                      _loc3_.txt_TestStatus2_2.htmlText = "<b>" + strWritingStatus + "</b>";
  144.                   }
  145.                   else
  146.                   {
  147.                      strStatus = "You scored " + objScore.score.data + "%  " + _strGrade;
  148.                   }
  149.                   var mcReviewTest = _loc3_["btn_ReviewResult_" + _loc1_];
  150.                   mcReviewTest._visible = true;
  151.                   mcReviewTest.objRef = _loc2_;
  152.                   mcPrevButton = mcReviewTest;
  153.                   _loc2_.arrangeReviewResultButton(strTest,strFileName,mcReviewTest,strTestName,strTime);
  154.                }
  155.                else
  156.                {
  157.                   strScoreTime = strTime + "  minute(s) remaining";
  158.                   strStatus = "Incomplete";
  159.                   var mcContinue = _loc3_["btn_ContinueTest_" + _loc1_];
  160.                   mcContinue._visible = true;
  161.                   mcContinue.objRef = _loc2_;
  162.                   mcPrevButton = mcContinue;
  163.                   _loc2_.arrangeContinueButton(strTest,strFileName,mcContinue,strTestName,strTime);
  164.                }
  165.                var iTestTime;
  166.                var arrTimeArr = objTest.skill[_loc1_ - 1].attributes.time.split(" ");
  167.                iTestTime = arrTimeArr[0];
  168.                objTest.skill[_loc1_ - 1].attributes.time = strScoreTime;
  169.                objTest.skill[_loc1_ - 1].attributes.result = strStatus;
  170.                var mcRetake = _loc3_["btn_RetakeTest_" + _loc1_];
  171.                mcRetake._visible = true;
  172.                mcRetake._x = mcPrevButton._x + mcPrevButton._width + 5;
  173.                mcRetake.objRef = _loc2_;
  174.                _loc2_.arrangeRetakeButton(strTest,strFileName,mcRetake,strTestName,iTestTime);
  175.             }
  176.             _loc3_["txt_TimeLeft" + _loc1_].text = strScoreTime;
  177.             _loc3_["txt_TestStatus" + _loc1_].htmlText = "<b>" + strStatus + "</b>";
  178.             iCounter += 1;
  179.             _loc1_ = _loc1_ + 1;
  180.          }
  181.          i++;
  182.       }
  183.       _level101.mc_MenuScrollPane.refreshPane();
  184.       _loc2_.setEvents(objScore);
  185.    }
  186.    function setGrade(strTestName)
  187.    {
  188.       var _iTotalQuestions = com.controller.UICoordinator.getInstance().c_objScreenFactory.c_objTest.getTotalTestQuestions();
  189.       var _loc2_ = undefined;
  190.       var _loc1_ = Number(this.c_strScore);
  191.       if(_loc1_ >= 80)
  192.       {
  193.          _loc2_ = "<font color=\'#009900\'>Grade A PASS</font>";
  194.       }
  195.       else if(_loc1_ <= 79 && _loc1_ >= 75)
  196.       {
  197.          _loc2_ = "<font color=\'#009900\'>Grade B PASS</font>";
  198.       }
  199.       else if(_loc1_ <= 74 && _loc1_ >= 60)
  200.       {
  201.          _loc2_ = "<font color=\'#009900\'>Grade C PASS</font>";
  202.       }
  203.       else if(_loc1_ <= 59 && _loc1_ >= 55)
  204.       {
  205.          _loc2_ = "<font color=\'#FF0000\'>Grade D NARROW FAIL</font>";
  206.       }
  207.       else if(_loc1_ <= 54)
  208.       {
  209.          _loc2_ = "<font color=\'#FF0000\'>Grade E FAIL</font>";
  210.       }
  211.       return _loc2_;
  212.    }
  213.    function arrangeTakeTestButton(_strTest, strFileName, mcTakeTest, strTestName, _iTestTime)
  214.    {
  215.       var _loc1_ = this;
  216.       mcTakeTest.objRef = _loc1_;
  217.       mcTakeTest.onRelease = function()
  218.       {
  219.          _level101.mc_MenuScrollPane._visible = false;
  220.          com.controller.UICoordinator.getInstance().fileName = _strTest;
  221.          com.controller.UICoordinator.getInstance().currentTestName = com.controller.UICoordinator.getInstance().convertToASCII(strFileName.toString());
  222.          com.controller.UICoordinator.getInstance().currentMode = "Take";
  223.          var _loc1_ = _strTest.charAt(_strTest.length - 1);
  224.          com.controller.UICoordinator.getInstance().c_iCurrentTestNumber = _loc1_;
  225.          com.controller.UICoordinator.getInstance().skillName = strTestName;
  226.          com.controller.UICoordinator.getInstance().setTestTime(_iTestTime);
  227.          if(strTestName == "listening")
  228.          {
  229.             this.objRef.c_objSourceRef.onProcessComplete("TestSound",strTestName);
  230.          }
  231.          else
  232.          {
  233.             this.objRef.c_objSourceRef.onProcessComplete("INSTRUCTION",strTestName);
  234.          }
  235.       };
  236.    }
  237.    function arrangeReviewResultButton(strTestXML, strFileName, mcReview, strTestName, strTime)
  238.    {
  239.       mcReview.objRef = this;
  240.       mcReview.onRelease = function()
  241.       {
  242.          _level101.mc_MenuScrollPane._visible = false;
  243.          com.controller.UICoordinator.getInstance().currentMode = "Review";
  244.          com.controller.UICoordinator.getInstance().timeLeft = strTime;
  245.          com.controller.UICoordinator.getInstance().fileName = strTestXML;
  246.          com.controller.UICoordinator.getInstance().skillName = strTestName;
  247.          com.controller.UICoordinator.getInstance().currentTestName = com.controller.UICoordinator.getInstance().convertToASCII(strFileName.toString());
  248.          this.objRef.c_objSourceRef.onProcessComplete("ReviewResult",strFileName);
  249.       };
  250.    }
  251.    function arrangeContinueButton(strTestXML, strFileName, mcContinue, strTestName, strTime)
  252.    {
  253.       mcContinue.objRef = this;
  254.       mcContinue.onRelease = function()
  255.       {
  256.          _level101.mc_MenuScrollPane._visible = false;
  257.          com.controller.UICoordinator.getInstance().currentMode = "Continue";
  258.          com.controller.UICoordinator.getInstance().timeLeft = strTime;
  259.          com.controller.UICoordinator.getInstance().fileName = strTestXML;
  260.          com.controller.UICoordinator.getInstance().skillName = strTestName;
  261.          com.controller.UICoordinator.getInstance().currentTestName = com.controller.UICoordinator.getInstance().convertToASCII(strFileName.toString());
  262.          this.objRef.c_objSourceRef.onProcessComplete("INSTRUCTION",strTestXML);
  263.       };
  264.    }
  265.    function arrangeRetakeButton(strTestXML, strFileName, mcRetake, strTestName, _iTestTime)
  266.    {
  267.       mcRetake.objRef = this;
  268.       mcRetake.onRelease = function()
  269.       {
  270.          _level101.mc_MenuScrollPane._visible = false;
  271.          com.controller.UICoordinator.getInstance().currentMode = "Retake";
  272.          com.controller.UICoordinator.getInstance().fileName = strTestXML;
  273.          com.controller.UICoordinator.getInstance().skillName = strTestName;
  274.          com.controller.UICoordinator.getInstance().currentTestName = com.controller.UICoordinator.getInstance().convertToASCII(strFileName.toString());
  275.          com.controller.UICoordinator.getInstance().setTestTime(_iTestTime);
  276.          var _loc1_ = strTestXML.charAt(strTestXML.length - 1);
  277.          com.controller.UICoordinator.getInstance().c_iCurrentTestNumber = _loc1_;
  278.          this.objRef.c_objSourceRef.onProcessComplete("INSTRUCTION",strTestXML);
  279.       };
  280.    }
  281.    function setEvents(_objtest)
  282.    {
  283.       var objRef = this;
  284.       var strEnvironment = com.controller.UICoordinator.getInstance().getOSEnvironment();
  285.       _level101.btn_quit.onRelease = function()
  286.       {
  287.          if(strEnvironment == "Windows" || strEnvironment == "Macintosh")
  288.          {
  289.             trace("Quiiiiiiiiiittttttttting in Side the Test selector");
  290.             getUrl("lingo:closeApplication", "");
  291.          }
  292.          else if(strEnvironment == "Linux")
  293.          {
  294.             fscommand("quit");
  295.          }
  296.       };
  297.    }
  298.    function hideAllTestButtons(_mcTest, _iSkillCount)
  299.    {
  300.       var _loc2_ = _mcTest;
  301.       var _loc3_ = _iSkillCount;
  302.       var _loc1_ = 1;
  303.       while(_loc1_ <= _loc3_)
  304.       {
  305.          _loc2_["btn_TakeTest_" + _loc1_]._visible = false;
  306.          _loc2_["btn_ContinueTest_" + _loc1_]._visible = false;
  307.          _loc2_["btn_RetakeTest_" + _loc1_]._visible = false;
  308.          _loc2_["btn_ReviewResult_" + _loc1_]._visible = false;
  309.          _loc1_ = _loc1_ + 1;
  310.       }
  311.    }
  312. }
  313.