var popupContent;
var p = parent;
var kFlashPath = Ini.KidsFlashPath + "geko/";
var hasFlashObj = false;
var flashLoaded = false;
var InitFlashStr = "";
var fromBack = false;
var preloadFlag = false;
var noteValue = 0;
var waitForNotes = false;
var wordsAr = new Array(0,0,0,0,0,0,0,0,0,0);
var sampleAct = false;
var commFunc = "";
var deflate = -1; // signifies whether to deflate an adventure map activity icon if it's just been completed.
var returnValueAr = [];
var reportTool = parent.reportTool == true;
var levelsLoaded = false; // determines if flash levels have been loaded yet
var KIDS_LOGIN = 218164
var DAILY_SPEAKING = 216585;
var TUTOR_NOTE = 216870;
var LEARNING_OBJECTIVES = 218171;
var INTRO_MOVIE = 217060;
var UNDER_CONST = 201613;
var GAME_STATION = 208291;
var WORD_WIZ = 216588;
var ADV_MAP = 0;
var FAQ = 213;
var L_SHARED_MEDIA = 8;
var gDemoArray1 = [0,0,0,"1-6",0,0,0,0,0,"1-4","2-6","1-21",0,"3-12","1-7","2-23","1-12",0,0,0,0,"5-16"];
var gDemoArray2 = [0,0,0,"1-13",0,0,0,0,0,"3-16","1-5","1-22",0,"1-11","1-16","1-13","1-15",0,0,0,0,0];
var gDemoArray3 = [0,0,0,"1-13",0,0,0,0,0,"3-16","1-5","1-22",0,"1-12","1-18","1-14","1-17",0,0,0,"1-14",0];
function drawTopLinkKids()
{
var s = "";
var textAr = [frame.learnObj, frame.teachers, frame.privacy, frame.logout];
var funcAr = ["learnObjLink()", "tm(204,208229)", "legalPopup(true)", "logout()"];
var indexAr = isAdmin ? [0,1,2,3] : [0,2,3];
for (var i = 0; i < indexAr.length; i++) {
s += "<a href='javascript:p." + funcAr[indexAr[i]] + "'>";
s += "<font class='topLink10'><b>" + textAr[indexAr[i]].toUpperCase() + "</b></font></a>&nbsp;&nbsp;";
if(i != indexAr.length-1)
s += "<font class='topLink10'><b>|</b></font>&nbsp;&nbsp;";
}
return s;
}
var w3;
var wFlash;
function drawMiddle()
{
var s = "";
if (Obj.ClassId == 204 || Obj.ClassId == 208) {
if (Obj.Bdy)
s += expandBody(Obj.Bdy);
} else
s += drawContent(wFlash);
return s;
}
function drawDictionary()
{
var s = "";
s += "	<tr bgcolor=#6699cc>";
s += " <td width=8 height=1 valign=top background=" + BGImg('vert_tile.gif') + ">" + spaceImg(8,1) + "</td>";
s += " <td width=110 valign=top align=right><a href='javascript:transDicLink()'><font class='yellow10'><b>" + frame.dictionary + "</b></font></a></td>";
s += " <td width=51 valign=top></td>";
s += " <td width=8 height=1 valign=top background=" + BGImg('vert_tile_left.gif') + ">" + spaceImg(8,1) + "</td>";
s += " <td width=3 bgcolor=#000033>" + spaceImg(3,1) + "</td>";
s += "	</tr>";
s += "	<tr bgcolor=#6699cc>";
s += " <td width=8 height=1 valign=top background=" + BGImg('vert_tile.gif') + ">" + spaceImg(8,1) + "</td>";
s += " <td colspan=2 width=161 valign=top align=center>" + GImg('lines.gif',149,17) + "</td>";
s += " <td width=8 height=1 valign=top background=" + BGImg('vert_tile_left.gif') + ">" + spaceImg(8,1) + "</td>";
s += " <td width=3 bgcolor=#000033>" + spaceImg(3,1) + "</td>";
s += "	</tr>";
return s;
}
function drawTranslate(introMovie)
{
var s = "";
s += "<form id=theForm name=theForm action=javascript:;>";
s += "	<tr bgcolor=#6699cc>";
s += " <td width=8 height=1 valign=top background=" + BGImg('vert_tile.gif') + ">" + spaceImg(8,1) + "</td>";
s += " <td colspan=2 width=161 valign=top><font class='yellow10'><b>" + frame.translate + "</b></font></td>";
s += " <td width=8 height=1 valign=top background=" + BGImg('vert_tile_left.gif') + ">" + spaceImg(8,1) + "</td>";
s += " <td width=3 bgcolor=#000033>" + spaceImg(3,1) + "</td>";
s += "	</tr>";
s += "	<tr bgcolor=#6699cc>";
s += " <td width=8 height=1 valign=top background=" + BGImg('vert_tile.gif') + ">" + spaceImg(8,1) + "</td>";
s += " <td width=100 valign=middle><input type='text' size='17' id=transWord name=transWord></td>";
s += " <td width=61 valign=middle align=center>" + commImg("go", "javascript:translateWord()", "global/", 24, 24,introMovie) + "</td>";
s += " <td width=8 height=1 valign=top background=" + BGImg('vert_tile_left.gif') + ">" + spaceImg(8,1) + "</td>";
s += " <td width=3 bgcolor=#000033>" + spaceImg(3,1) + "</td>";
s += "	</tr>";
s += "</form>"
return s;
}
function drawTestDiv()
{
if (isIE5_0 && (isGame(cid) || cid == 26 || cid == 22))
return "<div id='testdiv' style='position:absolute; top:0; left:0' onFocus='focusFlash()'></div>";
else
return "";
}
function drawContentArea()
{
var INTRO_MOVIE = (Obj.Id == INTRO_MOVIE);
sw = screen.availWidth;
sh = screen.availHeight;
if (sw > 1024)
sw = 1024;
w3 = sw-224;
wFlash = (fullscreen) ? sw - 21 : w3;
if (Obj.LoginRequired && User.Id == -1) {
var r=(Obj.ReloadedOnce)?serverPath():document.location.href + "&Prop=" + escape("ReloadedOnce=1");
document.location.href=r;
return "";
}
var s = "";
if (w.ckComponents || w.standalone || reportTool || Obj.FlashObj)
s += drawFlashVB(Obj.FlashObj);
if (reportTool) {
w.skipInit = true;
if (cid == 0)
s += drawToolLinks() + drawContent();
else {
s += "<table><tr valign=top><td width=400>"
s += "<B>Activity " + Obj.TNum + ", " + drawTitle() + "</b> (" + oid + ")<br>";
if (isCurriculum()) {
s += "<br>";
var tokens = isRZAct() ? Obj.UTokensRZ.Value : Obj.UTokens.Value;
var tokType = isRZAct() ? "StarTokens" : "ShapeTokens";
s += "Total " + tokType + ": " + tokens + "<br>";
var status = isRZAct() ? Obj.UStatusRZ.Value : Obj.UStatus.Value;
s += "Status " + status;
s += "<P>User's Goto: ClassId:" + uGoto().ClassId + " ObjectId:" + uGoto().Id + " Tier:" + uGoto().Tier + "<br>";
}
if (Obj.History){
var h = Obj.History;
s += "<P><b>Activity History</b><table border=1>";
s += "<tr valign=top><td>Date</td><td>PropId</td><td>Value</td></tr>";
var p = 0;
for (var i=0;i<h.length;i++){
p = h[i].PropId;
if ((isRZAct() && p < 11 && p > 15)
|| (!isRZAct() && !inStation() && p > 10)
|| (inStation() && p < 16))
continue;
s += "<tr><td>" + h[i].Date + "</td>"
s += "<td>" + p + "</td>"
+	"<td>" + h[i].Value + "</td></tr>"
}
s += "</table>";
}
s += "</td><td>"
s += Obj.Bdy ? expandBody(Obj.Bdy) : drawContent();
s += "</td></tr></table>";
}
} else if (Layout == 0)
s += Obj.content;
else if (Layout == 10 || sampleAct) {
if (w.standalone)
s += drawTestDiv();
s += drawContent();
} else if (Layout == 11)
s += expandBody(Obj.Bdy);
else {
s += drawTestDiv();
s += drawMiddle();
s += "<table cellpadding=0 cellspacing=0 border=0><tr><td height=2 bgcolor='#FFFFFF'>" + spaceImg(wFlash,2) + "</td></tr></table>";
s +=	drawFooterBanner(true);
}
s += embedObjects();
s+="<form name='testForm'><input type=hidden name='backTest' value='false'></form>";
return s;
}
function drawKidsThinTop()
{
var s = "";
s += "<TABLE CELLSPACING=0 CELLPADDING=0 BORDER=0 width='100%'>";
s +=	"<TR>";
s += "<TD colspan=2 HEIGHT=19 BGCOLOR='#006699'>&#160;</TD>";
s += "<TD colspan=2 align=right HEIGHT=19 BGCOLOR='#006699' ALIGN='RIGHT'><font color=#ffffff size=2><b>GlobalEnglish Kids</b></font>" + spaceImg(14,19) + "</TD>";
s +=	"</TR>";
s +=	"<TR>";
s += "<TD WIDTH='100%' HEIGHT=2 COLSPAN=4>" + spaceImg(1,2) + "</TD>";
s +=	"</TR>";
s +=	"<TR>";
s += "<td HEIGHT=33 BGCOLOR='#6699cc' align=left nowrap>" + spaceImg(14,33) + "</td><TD HEIGHT=33 BGCOLOR='#6699cc' valign='middle'><font class='pln17'><b>" + frame.directions + "</b></font></TD>";
s += "<TD HEIGHT=33 BGCOLOR='#6699cc' ALIGN='RIGHT' valign='middle'>" + spaceImg(12,11) + "</td>";
s += "<td HEIGHT=33 BGCOLOR='#6699cc' align=right>" + spaceImg(7,33) + "</TD>";
s += "</TR>";
s += "</TABLE>";
return s;
}
function setTransText()
{
return w.startTransOn ? frame.hideTrans : frame.showTrans
}
function hasTransLink()
{
if (lang == "EN")
return false;
var transActAr = [20,15,14,31,32];
for (var i = 0; i < transActAr.length; i++) {
if (cid == transActAr[i])
return true;
}
return false;
}
function drawTitle(justType)
{
var title = "";
if(isCurriculum()){
title = supportText(Obj.CTitle);
if (!justType && !Obj.isReview && hasTitle2(cid)) {
title += ": " + supportText(Obj.Title);
if (isVerB())
title += " (2)";
}
}
else if (isPage(WORD_WIZ))
title = supportText(Obj.Title);
else if (cid == 0)
title = reviewZone ? curricNum(Obj.ANum, frame.adventure) + ":&nbsp;" + reviewTitle : curricNum(Obj.ANum, frame.adventure) + ":&nbsp;" + supportText(Obj.Title);
else if (isPage(FAQ))
title = frame.helpStation;
else if (w.title)
title = w.title;
else if (Obj.Title && (Obj.Title.Xlt || Obj.Title.Txt))
title = supportText(Obj.Title);
else
title = Obj.Title;
return title;
}
function focusFlash()
{
document.flash.focus();
}
function getLevelVars(level)
{
var l = level ? "_level"+ level : "_level" + L_SHARED_MEDIA;
setFlashVar("levelTxt", gameLevels.levelInst, l);
setFlashVar("easy", gameLevels.easy, l);
setFlashVar("medium", gameLevels.medium, l);
setFlashVar("hard", gameLevels.hard, l);
setFlashVar("roundTxt", gameLevels.roundTxt, l);
}
function setFlashVar(varName, value, clipPath)
{
var l = clipPath ? clipPath : "_level0";
document.flash.SetVariable(l + ":" + varName, value);
}
function flashLabel(label, clipPath)
{
if (oid != PRELOAD_PAGE) {
var l = clipPath ? clipPath : "_level2";
document.flash.TCallLabel(l, label);
}
}
var varArray = new Array(); // contains all the variables that are initially sent into the level 0 flash files
function addVar(varName, varValue, checkNull, dontAdd)
{
if (!(checkNull && !varValue) && !dontAdd) {
varArray[varArray.length] = varName;
varArray[varArray.length] = varValue;
}
}
function getFirstVars()
{
for (var i = 0; i < varArray.length; i+=2)
setFlashVar(varArray[i], varArray[i + 1]);
varArray.length = 0;
}
function jScriptTest()
{
setFlashVar("jScriptVar","set");
}
function drawKidsActivityFlash(mainFlash, varStr, mp,ip,tp,swapFlash)
{
if (swapFlash)
document.testForm.backTest.value = "false"
hasFlashObj = true;
var shellFlash = shellPath();
if (reportTool) {
mainFlash = "tools/reporttool.swf";
varStr = "&review=" + w.isReview + "&noPreload=1";
mp = null;
ip = null;
tp = null;
} else if (isCurriculum())
mainFlash = constructMainFlash (mainFlash,isVerB());
if (mainFlash.indexOf("&") >= 0) {
var mainArray = mainFlash.split("&");
mainFlash = mainArray[0];
var pairStr = mainArray[1];
var equalSign = pairStr.indexOf("=");
var pairName = pairStr.substring(0,equalSign);
var pairValue = pairStr.substring(equalSign + 1, pairStr.length);
addVar(pairName, pairValue);
}
var mainPath = mp ? mp : (VerNum.ActFileVer || w.standalone) ? gekoPath(VerNum.ActFileVer[0]) : 0
var introPath = ip ? ip : (VerNum.IntroFileVer || w.standalone) ? gekoPath(VerNum.IntroFileVer) : "";
var tSharedPath = tp ? tp : (VerNum.TsharedFileVer || w.standalone) ? gekoPath(VerNum.TsharedFileVer) : 0;
var lnum = (isAdmin && Obj.Id == MY_JOURNAL) ? MAX_COURSE : Obj.LNum ? Obj.LNum : (User && uGoto()) ? myGoto().LNum : 0;
var advNum = Obj.ANum ? Obj.ANum : (User && uGoto()) ? myGoto().ANum : 0;
addVar("mainFlash", mainFlash); // main flash file location loaded into level 2
addVar("shared", gekoPath(VerNum.SharedVer) + "gsrc/shared.swf"); // shared flash code loaded into level 1
addVar("globalComps", gekoPath(VerNum.GlobalCompsVer) + "gsrc/globalcomps.swf"); // path to globalcomps.swf
var httpStr = "http://";
var cacheDomainStr = Ini.KidsFlashPath;
var httpIndex = cacheDomainStr.indexOf(httpStr);
httpIndex += httpStr.length;
var endDomain = "/"
var domainIndex = cacheDomainStr.indexOf(endDomain, httpIndex + 1);
cacheDomainStr = cacheDomainStr.substring(0,domainIndex);
var nonCacheDomainStr = Ini.ServerPath.substring(0,Ini.ServerPath.length - 1);
addVar("cacheDomain",cacheDomainStr);
addVar("nonCacheDomain",nonCacheDomainStr);
addVar("mainPath", mainPath, true); // prefix path to main flash file
addVar("introPath", introPath); // prefix path to intro flash file
addVar("tSharedPath", tSharedPath, true); // prefix path to tShared flash file
addVar("gekoPath", kFlashPath); // path to the geko directory for flash file bucket.
addVar("serverPath", Ini.ServerPath); // path to dev used for asps
addVar("imgPath", Ini.ImagePath); // path to content folder bucket
addVar("lang", lang);
addVar("howTo", hasHowTo(), true); // determines whether or not to automatically display demo
addVar("sampleAct", sampleAct, true);
addVar("recordAct", w.recordAct);
addVar("isTeacher", isAdmin);
addVar("advNum", advNum);
addVar("lnum", lnum);
addVar("cid", cid);
addVar("id", oid);
addVar("uname", User.UName.toLowerCase());
addVar("cheatsOn", Ini.SiteViewMode);
addVar("bgImg",w.sectionBG,true);
addVar("layout",Layout);
addVar("actTitle", drawTitle());
addVar("sectionId", Sec.Id);
addVar("yoons", yoons);
addVar("waitForNotes", waitForNotes);
addVar("hasSB", hasSB());
addVar("tokens",getStarTokens());
addVar("titleBarColor", w.titleBarColor);
addVar("errorTxt", gNav.errorTxt);
if (User.Goals)
addVar("goalId", User.Goals.Id);
if (isCurriculum() || isPage(WORD_WIZ)) {
var passedTest = sampleAct || (!oldAdv() && myGoto().Tier >= 4 && myGoto().ClassId != 17)
var oldIncAdv = sampleAct || (oldAdv() && !Obj.Incomplete);
var fromVar = isRPAct() ? "rp" : !inAdv() ? Obj.From : "map";
var tCollected = (isPage(WORD_WIZ)) ? 0 : isRZAct() ? Obj.UTokensRZ.Value : (isAdmin || Obj.UTokens.Value == -1) && Obj.TokenAwarded && Obj.TokenAwarded.Value ? Obj.TokenAwarded.Value : Obj.UTokens.Value == -1 ? 8 : Obj.UTokens.Value;
addVar("rzone", isRZAct());
addVar("isGame", isGame(cid));
addVar("tierCompleted", Obj.TierComplete);
addVar("skill", getSkill(Obj.MetaTags)); // activity skill type
addVar("tokensCollected", tCollected); // number of tokens already collected for activity
addVar("From", fromVar); // determines where user accesses activity from
addVar("sharedmedia", gekoPath(VerNum.SharedMedVer) + "gsrc/sharedmedia.swf", null, reportTool); // flash file containing some shared assets loaded into level 8
addVar("rewardMovie", gekoPath() + "flashtemplates/tokenrewards/rewardsIntro.swf",null, reportTool || (cid == 17 && !Obj.isReview)); // path to token reward movie loaded into level 6
addVar("hasLevels", hasGameLevels(cid));
addVar("hintText", Sec.hint, false, !hasHint(cid));
}
var paramArray = varStr.split("&");
for (var i = 0; i < paramArray.length; i++) {
if (paramArray[i].length) {
var pairStr = paramArray[i];
var equalSign = pairStr.indexOf("=");
var pairName = pairStr.substring(0,equalSign);
var pairValue = pairStr.substring(equalSign + 1, pairStr.length);
// Sridharan - Fix for Issue #120 - Start
if(pairName == "noteMsg")
pairValue = pairValue.replace(/RegExp/g, '&');
// Sridharan - Fix for Issue #120 - End
addVar(pairName, pairValue);
}
}
InitFlashStr = shellFlash;
var ratio = 450/775;
var fw = (reportTool && cid == 0) ? 1 : (Layout == 11) ? '100%' : wFlash;
var fh = (reportTool && cid == 0) ? 1 : (Layout == 11) ? '100%' : wFlash * ratio;
var loadingPath = (reportTool || fullscreen) ? InitFlashStr : kFlashPath + "flashtemplates/htmlloading.swf"
if (swapFlash) {
document.flash.movie = loadingPath
document.flash.movie = InitFlashStr;
}
else
return drawFlashObject(loadingPath, fw, fh);
}
function getUserData(clipPath)
{
var s = "";
s += "<UserObj>";
if (myGoto()) {
s += "<Goto>";
s += "<Course>" + myGoto().LNum + "</Course>";
s += "<Adv>" + myGoto().ANum + "</Adv>";
s += "</Goto>"
}
s += "<Id>" + User.Id + "</Id>";
s += "<IsTeacher>" + isAdmin + "</IsTeacher>";
//Shabeer to fix the show/hide translation issue#:168 translation fix
if(User.Site == 4)
s += "<Lang>" + User.Lang + "</Lang>";
else
s += "<Lang>" + lang + "</Lang>";
s += "<HasSB>" + hasSB() + "</HasSB>";
s += "<Tokens>" + getStarTokens() + "</Tokens>";
s += "</UserObj>";
sendXmlStr(s,clipPath,"userXMLData");
}
function getActivityData(clipPath)
{
var s = "";
s += "<ActObj>";
s += "<ServerPath>" + serverPath() + "</ServerPath>";
s += "<FlashPath>" + kFlashPath + "</FlashPath>";
var audPath = (Sec.Id == 223628 && oid != 224027) ? serverPath() : Ini.WavPath;
var imgPath = (Sec.Id == 223628 && oid != 224027) ? serverPath() : Ini.ImagePath;
s += "<AudPath>" + audPath + "</AudPath>";
s += "<ImgPath>" + imgPath + "</ImgPath>";
s += "<ClassId>" + cid + "</ClassId>";
s += "<ObjectId>" + oid + "</ObjectId>";
s += "<CurrentAct>";
if (Obj.LNum)
s += "<AdvNum>" + Obj.ANum + "</AdvNum>";
if (Obj.ANum)
s += "<CrsNum>" + Obj.LNum + "</CrsNum>";
if (Obj.Assign)
s += "<AdvId>" + Obj.Assign.Id + "</AdvId>";
s += "</CurrentAct>";
s += "<ErrorTxt><![CDATA[" + frame.errorTxt + "]]></ErrorTxt>";
s += getDataContentPath();
if (w.getTempSpecificData)
s += getTempSpecificData();
s += "</ActObj>";
sendXmlStr(s,clipPath,"initXMLData");
}
function getDataContentPath() {
var s = "<ContentPath>";
if (w.templateContentPath)
s += templateContentPath();
else
s += Ini.FlashPath + cid + "/" + oid + "/" + oid + ".xml";
s += "</ContentPath>";
return s;
}
function sendXmlStr(xmlStr,clipPath, xmlVar)
{
var s = "<?xml version='1.0' encoding='utf-8' ?>";
s += xmlStr;
setFlashVar(xmlVar,s);
}
function getHeaderData()
{
var s = "<?xml version='1.0' encoding='utf-8' ?>";
s += "<header>";
s += "<sectionTitle>" + sectionTitle + "</sectionTitle>";
s += "<mainPageId>" + mainPageId + "</mainPageId>";
s += "<sectionId>" + Sec.Id + "</sectionId>";
if (w.treasure) {
s += "<myShopRollTxt>" + treasure.myShopRollover+ "</myShopRollTxt>";
s += "<myPassportRollTxt>" + treasure.myPassportRollover+ "</myPassportRollTxt>"
s += "<myTreasureRollTxt>" + treasure.myTreasureRollover+ "</myTreasureRollTxt>"
}
s += "</header>";
setFlashVar("xmlHeaderStr",s,"_level9");
flashLabel("dataSent","_level9")
}
function getNavigatorData(clipPath)
{
if(typeof AdvObj == "undefined")
return;
var s = "<?xml version='1.0' encoding='utf-8' ?><PulldownData ntype='array'>";
for (var i=0, count=0; i < AdvObj.length; i++)
{
s += "<Course ntype='array'>";
for(var j=0; j<AdvObj[i].length; j++, count++)
{
var completed = Number(User.AdventureStatus.substring(count, count+1));
var isGoto = ((i+1) == User.KidsGoto.LNum && (j+1) == User.KidsGoto.ANum);
var visiting = (Obj.LNum == (i+1) && Obj.ANum == (j+1));
var advStatus = (completed ? 4 : isGoto ? 0 : (isAdmin ? 4 : 2)); //teachers will see all activities as completed
advStatus += visiting;
if(advStatus == 5 && !oldAdv())
advStatus = 1; //fix for bug 20884 - User is done with Adv. but hasn't advanced to next one yet.
if(advStatus == 4)
{
if(!isAdmin && isGoto && (isRZAct() || Obj.Id == DAILY_SPEAKING))
advStatus = 5; //special case for when user is in RZ activity, force correct title to appear
else if(Obj.Adv)
{
if(Obj.Course == (i+1) && Obj.Adv == (j+1))
advStatus = 5; //special case for when user is in Journal, force correct title to appear
}
}
if(advStatus == 2 && Obj.Id == WORD_WIZ && Obj.AdvId == AdvObj[i][j].Id)
advStatus = 3; //special case for old Word Wizard -- fixes bug 21661
if(isAdmin && isRZAct() && Obj.ReviewAct == AdvObj[i][j].Id)
advStatus = 5; //special case for admin in RZ activity - fix bug 21657
if(advStatus == 0 && isRZAct())
advStatus = 1; //special case for RZ fixes bug 20953
var active = false;
if(isAdmin){
active = true;
}
else if((i+1) == myGoto().LNum && j < myGoto().ANum){
active = true;
}
else if((i+1) < User.KidsGoto.LNum){
active = true;
}
s+="<Adventure id='" + AdvObj[i][j].Id + "' status='" + advStatus + "'";
s+=" active='" + active + "'>";
s+="<title>"+AdvObj[i][j].Title+"</title>";
s+="</Adventure>";
}
s += "</Course>";
}
s+= "</PulldownData>";
//Sridharan - fix for Issue #50 - 05/11/2010 - Start
if(Obj.LNum)
setCookie('objLnum',Obj.LNum,false,true);
// cond to set User.KidsGoto.LNum value from cookie only for word_wiz
if(Obj.Id == WORD_WIZ){
if(getCookie("objLnum"))
User.KidsGoto.LNum = getCookie("objLnum");
}
//Sridharan - fix for Issue #50 - 05/11/2010 - End
setFlashVar("currentCourse", Obj.Course ? Obj.Course : Obj.LNum ? Obj.LNum : User.KidsGoto.LNum, clipPath);
setFlashVar("yourVisiting", frame.yourVisiting, clipPath);
setFlashVar("yourHere", frame.yourHere, clipPath);
setFlashVar("navXmlStr",s,clipPath);
/*//Sridharan - fix for Issue #50 - 05/18/2010 - Start
if(Obj.ANum == undefined)
setFlashVar("adventureNum", frame.adventure, clipPath);
else
setFlashVar("adventureNum", "Adventure " + Obj.ANum, clipPath);
//Sridharan - fix for Issue #50 - 05/18/2010 - End*/
setFlashVar("adventureNum", frame.adventure, clipPath);
setFlashVar("courseNum", courseVar, clipPath);
}
function getCompsData()
{
clipPath = "_level9";
var s = "<?xml version='1.0' encoding='utf-8' ?>";
s += "<comps>";
s += "<links>";
s += "<translations>";
s += "<login>" + frame.login + "</login>";
s += "<logout>" + frame.logout + "</logout>";
s += "<parents>" + frame.pCenter + "</parents>";
s += "<teachers>" + frame.teachers + "</teachers>";
s += "<help>" + frame.helpCenter + "</help>";
s += "<mypage>" + frame.myPage + "</mypage>";
s += "</translations>";
s += "<rollcolor>" + linksRollColor + "</rollcolor>";
s += "</links>";
s += "<paths>";
s += "<scoreboard>" + gekoPath(VerNum.ScorebrdVer) + "gsrc/scoreBoardrewards.swf</scoreboard>";
s += "<expresscomm>" + gekoPath(VerNum.ExpressVer) + "flashtemplates/expressnote/expressnote_master.swf</expresscomm>";
if (w.scrbrd)
s += "<kidsboard>" + Ini.FlashPath + scrbrd.kidsBoardSwf + "</kidsboard>";
s += "</paths>";
s += "</comps>";
setFlashVar("xmlStr",s,clipPath);
flashLabel("compDataSent",clipPath)
}
function getActIntroData()
{
var s = "<?xml version='1.0' encoding='utf-8' ?>";
s += "<activity>";
var introText = w.ClassObj ? ClassObj.tcIntro : "";
s += "<translations>";
s += "<notRequired>" + introText + "</notRequired>";
if (w.reward) {
s += "<notCap><![CDATA[" + reward.toksLeft + "]]></notCap>";
s += "<earnedAll>" + reward.noneLeft + "</earnedAll>";
}
s += "</translations>";
s += "<type>"+ drawTitle(1) + "</type>";
s += "</activity>";
setFlashVar("xmlStr",s,"_level6");
flashLabel("xmlSent","_level6")
}
function getHelpInfo(clipPath)
{
var s = "<?xml version='1.0' encoding='utf-8' ?>";
s += "<helpinfo>";
s += "<translations>";
s += "<showsub>" + frame.showTrans + "</showsub>";
s += "<hidesub>" + frame.hideTrans + "</hidesub>";
s += "<directions>" + frame.directions + "</directions>";
s += "<mic>" + frame.micCheck + "</mic>";
s += "<showme>" + frame.showMe + "</showme>";
if ((wordMapSec() || isMember(oid,[222559])) && !isMember(oid, [224523,224027,223629]))
s += "<FindTreas>" + findTreasure + "</FindTreas>";
s += "</translations>";
var hasDemo = false;
if (Obj.LNum) {
var demoArray = eval("gDemoArray" + Obj.LNum);
hasDemo = isCurriculum() && demoArray[cid - 13] != 0;
}
s += "<hasdemo>" + hasDemo + "</hasdemo>";
s += "<hasdir>" + hasDirections() + "</hasdir>";
s += "<balloon ntype='array'>";
if (w.helpAr) {
for (var i = 0; i < helpAr.length; i+=2) {
s += "<helpitem>";
var itemName = (helpAr.length == i) ? "default" : helpAr[i + 1];
s += "<helplabel>" + itemName + "</helplabel>"
s += "<txt><![CDATA[" + helpAr[i] + "]]></txt>"
s += "</helpitem>";
}
} else if (w.helpTxt) {
s += "<helpitem>";
s += "<txt><![CDATA[" + w.helpTxt + "]]></txt>"
s += "</helpitem>";
}
s += "</balloon>";
s += "</helpinfo>";
setFlashVar("helpXMLStr",s);
}
function setReturnValue(value)
{
if (value && !isMember(value, returnValueAr))
returnValueAr[returnValueAr.length] = value;
}
function callFlashAsp(dataStr, retVal)
{
document.flash.SetVariable("_level1:dataStr", dataStr);
setReturnValue(retVal);
if (reportTool)
setReturnValue("rTool");
if (returnValueAr.length) {
var returnValue = "";
for (var i = 0; i < returnValueAr.length; i++) {
if (returnValue.length)
returnValue += "|";
returnValue += returnValueAr[i];
}
document.flash.SetVariable("_level1:returnValue", returnValue);
}
returnValueAr = [];
document.flash.TCallLabel("_level1", "setDataKids");
}
function flash_DoFSCommand(command, args)
{
if (eval("window." + command)) {
if (command == "strToObj")
strToObj(args);
else
eval(command + "(\"" + args + "\")");
}
}
function dataSent(value)
{
if (document.cookie)
document.cookie="tTime=0,0,0,'';path=/";
if (value) {
var retAr = value.split("|");
for (var j = 0; j < retAr.length; j++) {
var data = retAr[j];
switch (data) {
case ("rTool") :
if (cid != 0 || w.refreshMapFrame) {
parent.frames[0].location.href = parent.frames[0].location.href
document.location.href = document.location.href;
}
break;
case ("noteSent") :
refreshInbox();
break;
case ("reviewDone") :
tm(204, MY_PROGRESS, null, "ReviewDone=true");
break;
}
}
}
}
function setLevelsLoaded()
{
levelsLoaded = true;
}
function getDirections ()
{
if (noComps())
return "";
return (isPage(WORD_WIZ) || isPage(DAILY_SPEAKING)) ? expandBody(supportText(Obj.Directions)) : (cid == 13) ? expandBody(Obj.MatchDirections.Txt ? Obj.MatchDirections.Txt : Obj.MatchDirections.Xlt) : isCurriculum() ? expandBody(supportText(Obj.CDirect)) + "</font>" : (w.directions) ? expandBody(directions) + "</font>" : (rzState() && w.aMap) ? aMap.RZDirections : w.aMap ? aMap.advMapHelp : "";
}
function setDirections()
{
var dirContent = getDirections();
var params = "width=500,height=500,left=10,top=22,scrollbars=yes,resize=yes";
popupContent = drawKidsThinTop() + "<p><table width=100% cellspacing=0 cellpadding=0><tr><td width=10>" + spaceImg(10,1) + "</td><td><font class='pln12'>" + dirContent + "<p><center><form><a name='#' onclick=window.close()><input type=button value='" + frame.close + "'></a></form></center></td></tr></table>";
launchPopup(null,params);
}
function hasDirections()
{
return getDirections().length > 0;
}
function translateWord()
{
var popupURL = null;
var transStr = "";
if (document.theForm.transWord.value == "")
transStr = "No word entered.";
else if (lang == "EN")
transStr = "Your language is English so there is no translation available.";
else if (lang == "KO-KO" || lang == "ZH-CN" || lang == "ZH-TW")
transStr = "Translation dictionaries for this language will be coming soon.";
else
transStr = "<iframe src='../../templates/bin/reference/td/td.asp?search=" + document.theForm.transWord.value + "&wap=true&lang=" + lang + "&dir=eng2nat&popup=true&iframe=true' width=161 height=240></iframe>";
commFunc = "translateWord()";
transOn = false;
}
function getKidsBoardData(clipPath) {
var s = "";
s += "<kbData>";
s +=	"<username>" + User.UName + "</username>";
var sbState = Layout == 8 ? "show" : "hide";
s +=	"<kbState>" + sbState + "</kbState>";
s +=	"<signTxt>Meet GlobalEnglish Kids!</signTxt>";
s += "</kbData>";
sendXmlStr(s,clipPath,"kbXmlStr");
}
function getSBData(clipPath)
{
var s = "<?xml version='1.0' encoding='utf-8' ?>";
s += "<sbdata>";
s += "<scoreboard>";
s += "<translations>";
s += "<title>" + scrbrd.total + "</title>";
s += "</translations>";
s += "<username>" + User.UName + "</username>";
s += "<tokens>" + getStarTokens() + "</tokens>";
s += "<isTeacher>" + isAdmin + "</isTeacher>";
s += "</scoreboard>";
s += "<reward>";
s += "<translations>";
var feedbackTxt = isCurriculum() ? ClassObj.tcFeedback : "";
var infoTxt = (isRZAct()) ? reward.noneLeftExit : isCurriculum() ? ClassObj.tcExit : "";
s += "<feedback><![CDATA[" + feedbackTxt + "]]></feedback>";
s += "<info>" + infoTxt + "</info>";
if (w.reward) {
s += "<tryagain>" + reward.tryAgain + "</tryagain>";
s += "<replay>" + reward.playAgain + "</replay>";
s += "<map>" + reward.map + "</map>";
s += "<tunnel>" + reward.tunnel + "</tunnel>";
s += "<reviewzone>" + reward.reviewZone + "</reviewzone>";
s += "<conv>" + reward.convStation + "</conv>";
s += "<games>" + reward.gameStation + "</games>";
s += "<music>" + reward.createStation + "</music>";
}
s += "</translations>";
s += "</reward>";
s += "</sbdata>";
setFlashVar("xmlStr",s,clipPath);
flashLabel("xmlSent",clipPath)
}
function hasSB()
{
return hasFeature(50);
}
function sbEnabled()
{
var showSB = getCookie("sbState");
return (showSB == "" || showSB == 1);
}
function defaultSB()
{
var tEarned = getCookie("tokenEarned");
return (tEarned == 1 && (!Obj.UStatus || (Obj.UStatus && Obj.UStatus.Value > 0)) && sbEnabled());
}
function isRPAct()
{
return Obj.From && (Obj.From.indexOf("rp") >= 0);
}
function inAdv()
{
return !Obj.From || isRPAct();
}
function isVerB()
{
return ((Obj.VerB || isRZAct()) && Obj.VersionB && Obj.VersionB.QuestionSet)
}
function noComps()
{
return Sec.Id == 222573;
}
function wordMapSec()
{
return Sec.Id == 223628;
}
var soundPlaying = false;
var soundStarted = false;
var soundCounter = 0;
var timerId;
function playSound(filename, relpath)
{
if (!soundPlaying) {
soundPlaying = true;
if (filename || relpath)
asfPlay(filename, relpath);
}
timerId = setTimeout ('gCheckAudDone()', 100);
}
function stopSound() {
clearTimeout(timerId);
soundCounter = 0;
soundPlaying = false;
soundStarted = false;
asfStop();
}
function gCheckAudDone(){
soundCounter += 1;
if (asfIsPlaying()) {
soundStarted = true;
timerId = setTimeout ('gCheckAudDone()', 100);
} else if (!soundStarted && soundCounter < 100)
timerId = setTimeout ('gCheckAudDone()', 100);
else {
soundCounter = 0;
soundPlaying = false;
soundStarted = false;
ACELPDone();
}
}
function hasHowTo()
{
if (sampleAct) {
var hasDemoAr = [0,0,0,1,0,0,0,0,0,1,1,1,0,1,1,1,1,0,0,0,0];
var demoStr = getCookie("demoState");
var demoStatusAr = demoStr.split(",");
for (var i = 0; i < demoStatusAr.length; i++) {
if (parseInt(demoStatusAr[i]) == cid)
return false;
}
return (hasDemoAr[cid - 13]);
}
if (!inStation() && isCurriculum()) {
var demoArray = eval("gDemoArray" + Obj.LNum);
var demoAct = demoArray[cid - 13];
if (demoAct && Obj.UStatus.Value == 0 && Obj.UTokens.Value == 0) {
var activityInfo = demoAct.split("-");
var adventure = parseInt(activityInfo[0]);
var activity = parseInt(activityInfo[1]);
if (adventure == Obj.ANum && activity == Obj.TNum)
return true;
}
}
if (w.showNonCurrDemo)
return true;
return false;
}
function closeSampleAct()
{
window.close();
}
function hasGameLevels(cid)
{
return isMember(cid,[27,28,29]);
}
function hasHint(cid)
{
return isMember(cid, [26,28]);
}
function subChar(str,c1,c2)
{
var newStr = "";
for (var i = 0; i < str.length; i++) {
var c = str.charAt(i);
if (c == c1)
newStr += c2;
else
newStr += c;
}
return newStr;
}
function isGame(classid)
{
return (isPage(WORD_WIZ) || (classid >= 27 && classid <= 29));
}
function inStation()
{
return (Obj.From && (Obj.From == "games" || Obj.From == "conversation" || Obj.From == "music"));
}
function isCurriculum(objCID)
{
var clsId = objCID ? objCID : cid;
return (clsId >= 13 && clsId <= 34 && !(clsId == 16 && w.isReview));
}
function oldAdv()
{
return ((Obj.LNum < myGoto().LNum) || (Obj.LNum == myGoto().LNum && Obj.ANum < myGoto().ANum));
}
function isRZAct()
{
return Obj.ReviewAct != null;
}
function winObj()
{
return (Obj.FromComm != null) ? opener : this;
}
function numAdvs(crs)
{
var lastAdv = (crs == 3) ? 10 : 12;
return lastAdv;
}
function getSkill(tagAr)
{
if (tagAr) {
for (var j = 0; j < tagAr.length; j++) {
var supertag = tagAr[j];
for (var i = 0; i < skillArray.length; i++) {
if (supertag == skillArray[i])
return i;
}
}
}
return 1;
}
function getMapGoto(levelNum)
{
var goto = hitTheWall() ? myGoto() : (User.KidsGoto.Assign && !levelNum)? User.KidsGoto.Assign : (User.KidsGoto.Id < 10000 || levelNum) ? User.KidsGoto : oldAdvId;
return goto;
}
function journalState()
{
return (myGoto().ClassId == 0 && myGoto().Tier == 4 && uGoto().Tier == 4 || (cid == 0 && notDoneOldAdv() && utier == 4 && testPassed && !journalDone()));
}
function dsIsGoto()
{
if (!(User && User.dSpeak) || (User.Flags & 2))
return false;
var dSpeakDt = new Date(User.dSpeak);
var lastDay = dSpeakDt.getDate();
var lastMonth = dSpeakDt.getMonth();
var dt = User.LoginTime ? new Date(User.LoginTime) : new Date();
var day = dt.getDate();
var month = dt.getMonth();
return (lastDay != day || lastMonth != month);
}
function learnObjLink()
{
var courseNum = Obj.LNum ? Obj.LNum : myGoto().LNum;
var propStr="Teach=1,Course=" + courseNum;
var obj=new Object();
obj.ClassId=204;
obj.Id= LEARNING_OBJECTIVES;
Obj.Prop=propStr.split(',');
launchPopup(doLinkStr(obj),"width=700,height=500,scrollbars=yes,resizable=yes,left=100,top=50");
}
function launchBlastOff(course,type)
{
var loc = serverPath() + "geko/courseMovie.asp";
loc += "?lang=" + lang+ "&Course=" + course + "&Type=" + type;
loc += "&shellPath=" + shellPath("med") + "&gPath=" + kFlashPath + "&sharedPath=" + gekoPath(VerNum.SharedVer);
launchPopup(loc,"width=600,height=365,left=10,top=10");
}
function backLink()
{
history.go(-1);
}
function toMap()
{
var propStr = isCurriculum(cid) || isPage(WORD_WIZ) ? "FromAct=" + oid : null;
tm(0, getMapGoto().Id, null, propStr);
}
function pageLink2(args)
{
var linkAr = args.split("|");
var classId = parseInt(linkAr[0]);
var objectId = parseInt(linkAr[1]);
var asp = linkAr[2].length ? linkAr[2] : null;
var prop = linkAr[3].length ? linkAr[3] : null;
var ext = linkAr[4].length ? linkAr[4] :null
tm(classId, objectId, asp, prop,ext);
}
function pageLink(args)
{
var linkAr = args.split(",");
var classId = parseInt(linkAr[0]);
var objectId = parseInt(linkAr[1]);
var props = null;
if (linkAr.length > 2)
props = subChar(linkAr[2],"|",",");
tm(classId, objectId, null, props);
}
function passportLink(hUserId){
if (isNaN(parseInt(hUserId))) // display user's passport when no UserId is passed
hUserId = User.Id;
var o = new Object;
o.ClassId=204; 
o.Id=212641;
Obj.Prop = ["hUserId="+hUserId,"Layout=11"]
var l = doLinkStr(o);
launchPopup("passport", null, null, l, 20, 20, null, "width=576,height=335,left=20,top=20,menubar=no,scrollbars=0,statusbar=0")
}
function goalLink(idStr) {
var idAr = idStr.split(",");
var cid = parseInt(idAr[0]);
var oid = parseInt(idAr[1]);
var review = parseInt(idAr[2])
if (oid == 219221)
gotoJournalLink();
else if (oid == 216585)
dsLink();
else if (cid == 17 && review == 1)
tm(0, getMapGoto().Id);
else if (review == 1){
var paramStr = "From=rp" + "" + ",VerB=1";
tm(cid,oid,null,paramStr);
}else if (review == 2)
tm(cid,oid,null,"ReviewAct=" + getMapGoto().Id);
else
tm(cid,oid);
}
function toJournal(lnum,anum,advid)
{
tm(204, 219221, null, "Course=" + lnum + ",Adv=" + anum + ",AdvId=" + advid, "Course=" + lnum + ",sec=220246");
}
function gotoJournalLink()
{
toJournal(uGoto().LNum,uGoto().ANum,getMapGoto().Id)
}
function dsLink()
{
document.location.href = "http://" + Ini.ServerPath + "geko/audiouploader/dailyspeaking.asp";
}
function PTLink(){
var o = new Object;
o.ClassId=204; 
o.Id=218152;
var l = doLinkStr(o);
launchPopup("passport", null, null, l, 20, 20, null, "width=700,height=600,left=20,top=20,menubar=no,scrollbars=0,statusbar=0")
}
function legalPop(){
var o = new Object;
o.ClassId=204; 
o.Id=200230;
Obj.Prop = ["Sec=222360"]
var l = doLinkStr(o);
l += "&Layout=0"
launchPopup("legal", null, null, l, 20, 20, null, "width=475,height=520,left=20,top=20,menubar=no,scrollbars=1,statusbar=0")
}
function termsPop()
{
var o = new Object;
o.ClassId=204; 
o.Id=224507;
var l = doLinkStr(o);
l += "&Layout=4"
launchPopup("legal", null, null, l, 20, 20, null, "width=475,height=520,left=20,top=20,menubar=no,scrollbars=1,statusbar=0")
}
function transDicLink()
{
outsideDictionary(lang);
}
function spaceImg(w, h)
{
return GImg("clear.gif", w, h);
}
function drawImg(path, w, h, name, mapName)
{
var s = "";
s += "<img src='" + gImgPath + path + "'";
if (w)
s += " width=" + w;
if (h)
s += " height=" + h;
if (name)
s += " name='" + name + "'";
if (mapName)
s += " ismap usemap='#" + mapName + "'";
s += " border=0>";
return s;
}
function GImg(imgName, w, h, name, mapName)
{
return drawImg("global/" + imgName, w, h, name, mapName);
}
function BGImg(imgName)
{
var s = gImgPath + "global/" + imgName;
return s;
}
function gekoPath(verNum)
{
if (w.standalone)
return "../../../geko/";
var path = VerNum.VersionPath;
if (verNum)
path += "/" + verNum;
path += VerNum.VirtualPath + "geko/";
return path;
}
function shellPath(s)
{
var size = s ? s : (oid == 221800) ? "large" : (fullscreen || noComps()) ? "small" : "med";
var index = "";
var endPath = "geko/gsrc/shell" + size + index + ".swf";
if (w.standalone)
return (sPath + endPath);
return serverPath() + endPath;
}
function initTemplate()
{
pageLoaded = 1;
mainLoaded = true;
if (hasCtrl)
Ctrl = GE_CTRL;
defaultStatus="";
if (!reportTool) {
if (Sec.Id == 223628)
addExtVars("resetUserCookie=1");
Obj.Save = 1;
sTimer = new Date();
loadCook(1);
if (!fullscreen && document.flash && InitFlashStr != "")
document.flash.movie = InitFlashStr;
if(w.HTML_OnLoad)
HTML_OnLoad();
}
}
function flashInit()
{
flashLoaded = true;
if (reportTool && cid == 0)
initAdventure();
if (w.skipInit)
return;
if(document.testForm.backTest.value=="true")
fromBack = true;
document.testForm.backTest.value=true;
if (fromBack && isCurriculum())
callFlashAsp("&action=u&activityId=" + oid, "getuvalue");
if (cid == 0)
initAdventure();
if(w.Flash_OnLoad)
Flash_OnLoad();
}
function checkTransWdKey(e)
{
var returnKey = "13";
var key;
key = w.event.keyCode;
if(returnKey == key) {
translateWord();
return(false);
}
}
function SaveUStr()
{
var pv = "";
//Shabeer on 25-May-2010 to fix the issue#:6
if (User.Prop != null)
var props = User.Prop;
if (isCurriculum())
doTimer();
for (propId in props) {
var prop = props[propId];
if (typeof prop == "object") {
if (null != prop.Value && prop.Value != prop.OldValue) {
var value = ""+prop.Value; // Make sure its an integer
pv += propId + " " + value.length + " " + value + " ";
prop.OldValue = prop.Value;
}
}
}
if ("" != pv)
return escape(pv);
return '';
}
function updateU(strId,intObjectId,strValue){
var propId=strId+"-"+intObjectId;
//Shabeer on 25-May-2010 to fix the issue#:6 - START
//var prop=User.Prop[propId];
var prop = null;
if (User.Prop)
prop=User.Prop[propId];
//Shabeer on 25-May-2010 to fix the issue#:6 - END
if (null==prop){
prop=User.Prop[propId]=new Object();
}
prop.Value=prop.OldValue=strValue;
return prop;
}
function getInbox(newNote)
{
var inbox = getCookie("inbox");
//Condition "clear != inbox" added by Shabeer on 23-Nov-2009 to fix "clear undefined" error Mantis - Issue#:32
if ("clear" != inbox && "undefined" != inbox && "" != inbox && null != inbox)
eval(unescape(unescape(inbox)));
else
inbox = null;
return inbox;
}
function refreshInbox()
{
if (Layout == 7)
getNoteData();
setNoteFlag();
}
function setNoteFlag()
{
waitForNotes = false;
document.flash.TCallLabel("_level1", "noteWaitDone");
}
function closeNote()
{
if (Obj.ViewNoteId)
document.location.href = serverPath() + "templates/bin/kids/dailytutornoteviewer.asp";
}
function convertHex(str)
{
if (str.indexOf("\"") >= 0)
str = str.replace(/\"/g,'\\\"');
var evalstr = "var uniStr = \"" + str + "\"";
eval(evalstr);
return uniStr;
}
function getNoteText(txt)
{
document.flash.SetVariable("_level2:alertStr", txt);
}
function noteActLink(actObj)
{
winObj().tm(actObj.ClassId, actObj.ObjectId);
}
function noteAdvLink(objId)
{
tm(0, parseInt(objId));
}
function blastOff(courseId, next)
{
type = next ? "closeopen" : "closing";
forceFocus = false;
winObj().launchBlastOff(courseId, type);
if (opener != this)
window.close();
}
function gameStation()
{
tm(204,GAME_STATION)
}
function todaysGoalsInfo(goalData) {
var goalObj = eval(goalData);
var jsonStr = JSON.stringify(goalObj);
setFlashVar("goalStr",jsonStr,"_level9.expressComm");
}
function strToObj(str)
{
var noteLevel = Obj.NoteId ? "_level2" : "_level9.expressComm";
eval("var flashObj=" + str);
//Condition flashObj.NoteType != null added by Shabeer on 25-Nov-2009 -  Ref: Mantis Issue#: 25
if (flashObj.NoteType != null && flashObj.NoteType == 10) {
var uname = (Obj.To) ? Obj.To : User.UName;
document.flash.SetVariable(noteLevel+":to", uname);
document.flash.SetVariable(noteLevel+":from", flashObj.TutorName);
document.flash.SetVariable(noteLevel+":noteId", flashObj.noteId);
document.flash.SetVariable(noteLevel+":noteType", flashObj.NoteType);
document.flash.SetVariable(noteLevel+":noteElements", "text");
document.flash.SetVariable(noteLevel+":button", "Adventure");
document.flash.SetVariable(noteLevel+":varStr", flashObj.Txt);
document.flash.SetVariable(noteLevel+":avatar", "Avatar" + (flashObj.Img + 1));
} else {
var dByte = (slang != "EN");
document.flash.SetVariable(noteLevel+":to", flashObj.To);
document.flash.SetVariable(noteLevel+":from", flashObj.From);
document.flash.SetVariable(noteLevel+":subject", flashObj.Subject);
document.flash.SetVariable(noteLevel+":noteId", flashObj.ExpressNoteId);
document.flash.SetVariable(noteLevel+":noteType", flashObj.NoteType);
document.flash.SetVariable(noteLevel+":noteElements", flashObj.NoteElements);
// try-catch added by Shabeer on 23-Nov-2009 to fix the "express undefined error" Ref: Mantis - Issue#:30
try{document.flash.SetVariable(noteLevel+":noInput", convertHex(express.noInput));} catch(e){}
var buttonType = (flashObj.Button == null) ? "none" : flashObj.Button;
document.flash.SetVariable(noteLevel+":bttn", buttonType);
var varStr = "";
for (var i = 0; i < flashObj.Vars.length; i++) {
varStr += dByte ? convertHex(flashObj.Vars[i].Xlt) : flashObj.Vars[i].Value;
if (i < flashObj.Vars.length - 1)
varStr += "|";
}
document.flash.SetVariable(noteLevel+":varStr", varStr);
var notransStr = "";
for (var i = 0; i < flashObj.NoTrans.length; i++) {
notransStr += convertHex(flashObj.NoTrans[i].Value);
if (i < flashObj.NoTrans.length - 1)
notransStr += "|";
}
document.flash.SetVariable(noteLevel+":notransStr", notransStr);
var imgStr = "";
for (var i = 0; i < flashObj.Img.length; i++) {
imgStr += flashObj.Img[i].Path;
if (flashObj.Img[i].FStr)
imgStr += "*" + flashObj.Img[i].FStr;
if (i < flashObj.Img.length - 1)
imgStr += "|";
}
document.flash.SetVariable(noteLevel+":imgStr", imgStr);
if (flashObj.Poll.length) {
var pollObj = flashObj.Poll[0];
var pollDisplay = pollObj.DisplayType == 0 ? "poll" : "graph";
document.flash.SetVariable(noteLevel+":pollDisplay", pollDisplay);
document.flash.SetVariable(noteLevel+":pollId", pollObj.Id);
document.flash.SetVariable(noteLevel+":pollResult", flashObj.ReturnResult);
if (pollObj.DisplayType == 0) {
document.flash.SetVariable(noteLevel+":pollHeader", convertHex(pollObj.Header));
var pollType = pollObj.MultiSelect ? "checkbox" : "radio";
document.flash.SetVariable(noteLevel+":pollType", pollType);
var pc = pollObj.Choice;
var pChoiceStr = "";
for (var i = 0; i<pc.length; i++) {
pChoiceStr += convertHex(pc[i].Txt);
if (i < pc.length - 1)
pChoiceStr += "|";
}
document.flash.SetVariable(noteLevel+":pChoiceStr", pChoiceStr);
} else {
var pollResults = flashObj.PollResults[0];
document.flash.SetVariable(noteLevel+":pollTitle", convertHex(pollResults.Header));
var pChoiceStr = "";
var percentStr = "";
for (i=0; i<pollResults.Choice.length; i++) {
pChoiceStr += convertHex(pollObj.Choice[i].Txt);
percentStr += pollResults.Choice[i].Percent;
if (i < pollResults.Choice.length - 1) {
pChoiceStr += "|";
percentStr += "|";
}
}
document.flash.SetVariable(noteLevel+":pChoiceStr", pChoiceStr);
document.flash.SetVariable(noteLevel+":percentStr", percentStr);
}
}
if (flashObj.Vote.length) {
var voteObj = flashObj.Vote[0];
var voteType = (flashObj.Id== 214726) ? "quest" : (voteObj.VType == 1 || flashObj.Id== 214310) ? "radio" : (voteObj.VType == 2) ? "checkbox" : "select";
document.flash.SetVariable(noteLevel+":voteType", voteType);
var vChoiceStr = "";
for (var i = 0; i < voteObj.Choice.length; i++) {
vChoiceStr += convertHex(voteObj.Choice[i]);
if (i < voteObj.Choice.length - 1)
vChoiceStr += "|";
}
document.flash.SetVariable(noteLevel+":noteOID", flashObj.Id);
document.flash.SetVariable(noteLevel+":vChoiceStr", vChoiceStr);
}
}
document.flash.TCallLabel(noteLevel, "setNoteData");
}
var semiCounter = 0;
function setSemiData(){
if (!levelsLoaded && semiCounter < 20) {
semiCounter += 1;
setTimeout("setSemiData()", 500);
return;
}
if (semiCounter >= 20)	{
var msgStr = "Levels loaded was never set for semi-automated tutor note";
wrtErrAlrt(msgStr);
}
semiCounter = 0;
var semiData = opener.semiData;
semiData = convertHex(semiData);
var noteData = semiData + "<del>10<del>Adventure<del>text"
document.flash.SetVariable("_level2:noteInfo", noteData)
document.flash.TCallLabel("_level2" , "setNoteData" )
}
Array.prototype.______array = '______array';
var JSON = {
org: 'http://www.JSON.org',
copyright: '(c)2005 JSON.org',
license: 'http://www.crockford.com/JSON/license.html',
stringify: function (arg) {
var c, i, l, s = '', v;
switch (typeof arg) {
case 'object':
if (arg) {
if (arg.______array == '______array') {
for (i = 0; i < arg.length; ++i) {
v = this.stringify(arg[i]);
if (s) {
s += ',';
}
s += v;
}
return '[' + s + ']';
} else if (typeof arg.toString != 'undefined') {
for (i in arg) {
v = arg[i];
if (typeof v != 'undefined' && typeof v != 'function') {
v = this.stringify(v);
if (s) {
s += ',';
}
s += this.stringify(i) + ':' + v;
}
}
return '{' + s + '}';
}
}
return 'null';
case 'number':
return isFinite(arg) ? String(arg) : 'null';
case 'string':
l = arg.length;
s = '"';
for (i = 0; i < l; i += 1) {
c = arg.charAt(i);
if (c >= ' ') {
if (c == '\\' || c == '"') {
s += '\\';
}
s += c;
} else {
switch (c) {
case '\b':
s += '\\b';
break;
case '\f':
s += '\\f';
break;
case '\n':
s += '\\n';
break;
case '\r':
s += '\\r';
break;
case '\t':
s += '\\t';
break;
default:
c = c.charCodeAt();
s += '\\u00' + Math.floor(c / 16).toString(16) +
(c % 16).toString(16);
}
}
}
return s + '"';
case 'boolean':
return String(arg);
default:
return 'null';
}
},
parse: function (text) {
var at = 0;
var ch = ' ';
function error(m) {
throw {
name: 'JSONError',
message: m,
at: at - 1,
text: text
};
}
function next() {
ch = text.charAt(at);
at += 1;
return ch;
}
function white() {
while (ch) {
if (ch <= ' ') {
next();
} else if (ch == '/') {
switch (next()) {
case '/':
while (next() && ch != '\n' && ch != '\r') {}
break;
case '*':
next();
for (;;) {
if (ch) {
if (ch == '*') {
if (next() == '/') {
next();
break;
}
} else {
next();
}
} else {
error("Unterminated comment");
}
}
break;
default:
error("Syntax error");
}
} else {
break;
}
}
}
function string() {
var i, s = '', t, u;
if (ch == '"') {
outer: while (next()) {
if (ch == '"') {
next();
return s;
} else if (ch == '\\') {
switch (next()) {
case 'b':
s += '\b';
break;
case 'f':
s += '\f';
break;
case 'n':
s += '\n';
break;
case 'r':
s += '\r';
break;
case 't':
s += '\t';
break;
case 'u':
u = 0;
for (i = 0; i < 4; i += 1) {
t = parseInt(next(), 16);
if (!isFinite(t)) {
break outer;
}
u = u * 16 + t;
}
s += String.fromCharCode(u);
break;
default:
s += ch;
}
} else {
s += ch;
}
}
}
error("Bad string");
}
function array() {
var a = [];
if (ch == '[') {
next();
white();
if (ch == ']') {
next();
return a;
}
while (ch) {
a.push(value());
white();
if (ch == ']') {
next();
return a;
} else if (ch != ',') {
break;
}
next();
white();
}
}
error("Bad array");
}
function object() {
var k, o = {};
if (ch == '{') {
next();
white();
if (ch == '}') {
next();
return o;
}
while (ch) {
k = string();
white();
if (ch != ':') {
break;
}
next();
o[k] = value();
white();
if (ch == '}') {
next();
return o;
} else if (ch != ',') {
break;
}
next();
white();
}
}
error("Bad object");
}
function number() {
var n = '', v;
if (ch == '-') {
n = '-';
next();
}
while (ch >= '0' && ch <= '9') {
n += ch;
next();
}
if (ch == '.') {
n += '.';
while (next() && ch >= '0' && ch <= '9') {
n += ch;
}
}
if (ch == 'e' || ch == 'E') {
n += 'e';
next();
if (ch == '-' || ch == '+') {
n += ch;
next();
}
while (ch >= '0' && ch <= '9') {
n += ch;
next();
}
}
v = +n;
if (!isFinite(v)) {
} else {
return v;
}
}
function word() {
switch (ch) {
case 't':
if (next() == 'r' && next() == 'u' && next() == 'e') {
next();
return true;
}
break;
case 'f':
if (next() == 'a' && next() == 'l' && next() == 's' &&
next() == 'e') {
next();
return false;
}
break;
case 'n':
if (next() == 'u' && next() == 'l' && next() == 'l') {
next();
return null;
}
break;
}
error("Syntax error");
}
function value() {
white();
switch (ch) {
case '{':
return object();
case '[':
return array();
case '"':
return string();
case '-':
return number();
default:
return ch >= '0' && ch <= '9' ? number() : word();
}
}
return value();
}
};
