/*Obfuscated by JCE Pro, http://www.syntropy.se*/

var icodeon;
if(!icodeon){icodeon={};}
else if(typeof icodeon!="object"){throw new Error("namepsace icodeon exists");}
if(!icodeon.AjaxClient){icodeon.AjaxClient={};}
else if(typeof icodeon.AjaxClient!="object"){throw new Error("namepsace icodeon.AjaxClient exists");}
var whS=undefined;
var ICN_XML_HTTP_STATUS_0="";
var ICN_XML_HTTP_STATUS_1="";
var ICN_XML_HTTP_STATUS_2="";
var ICN_XML_HTTP_STATUS_3="";
var ICN_XML_HTTP_STATUS_4="";
var ICN_XML_HTTP_STATUS_5="";
var Sod=undefined;
var JVu=function(){
whS.send(Sod);
}
icodeon.AjaxClient=function(){
this.XuY="SFR";
this.dVd="MOZ";
this.ddj="OPR";
this.ZCS="IE";
this.eeD="KONQ";
this.fNq="OTHER";
this.pVR="NS";
if(window.XMLHttpRequest){
whS=new XMLHttpRequest();
}
else if(typeof ActiveXObject!="undefined"){
var rub=undefined;
var ZHk=[
"Msxml2.XMLHTTP.5.0","Msxml2.XMLHTTP.4.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"
];
var VVF=ZHk.length;
var pnr=false;
for(var oXU=0;oXU<VVF&&!pnr;oXU++){
try{
var hUc=new ActiveXObject(ZHk[oXU]);
rub=ZHk[oXU];
eDR=true;
}catch(iqB){
log.error(iqB.toString())
}
}
if(!pnr){
var iIQ="Could not find reference to system Active X(XMLHTTP.x)";
var aSb="Could not create an HTTP XML Request object";
var ODP="Client Error";
var xKU=
new icodeon.ApplicationError(iIQ,aSb,ODP);
throw xKU;
}
whS=new ActiveXObject(rub);
}
else{
var iIQ="window.XMLHttpRequest and ActiveXObject undefined";
var aSb="Could not create an HTTP XML Request object";
var ODP="Client Error";
var xKU=
new icodeon.ApplicationError(iIQ,aSb,ODP);
throw xKU;
}
var Xer=undefined;
var QGY=undefined;
this.error=undefined;
this.sHR=function(Vcv,LmQ,ELb,onc,iKJ){
icodeon.NavigationBehaviour.lastRequestTimestamp=new Date();
VCr=this;
VCr.error=undefined;
log.info("Service Endpoint: "+LmQ);
log.info("SOAP Action Header: "+onc);
log.info("HTTP request action: "+Vcv);
log.debug("XML HTTP request text: "+this.Vnx(iKJ.documentElement));
var aSb=dsY(whS.readyState);
startTimer(aSb);
whS.open(Vcv,LmQ,ELb);
whS.setRequestHeader('Content-Type','text/xml; charset=utf-8');
whS.setRequestHeader('SOAPAction','\"'+onc+'\"');

if((onc.indexOf("Deliver")!=-1)||(onc.indexOf("Terminate")!=-1)){
whS.onreadystatechange=this.opu;
}
else{
whS.onreadystatechange=this.veR;
}
if(navigator.userAgent.indexOf("Firefox")!=-1){
if(ELb){
Sod=iKJ;
setTimeout("JVu()",50);
}
else{
whS.send(iKJ);
}
}
else{
whS.send(iKJ);
}
}
this.mqj=function(iKJ){
alert("Not implemented");
}
this.opu=function(){
VCr.GBk();
if(whS.readyState==2){
stopTimer();
VCr.mqj(undefined);
}
if(whS.readyState==4){
VCr.HVk();
}
}
this.veR=function(){
VCr.GBk();
if(whS.readyState==4){
var HcY=VCr.HVk();
if(HcY){
toStatus(ICN_XML_HTTP_STATUS_5);
VCr.mqj(whS.responseXML);
}
}
}
this.GBk=function(){
stopTimer();
var aSb=dsY(whS.readyState);
startTimer(aSb);
}
this.HVk=function(){
stopTimer();
var aSb=dsY(whS.readyState);
toStatus(aSb);
var SwF=undefined;
var gtT=undefined;
var Jhw=undefined;
try{
Jhw=whS.status;
gtT=whS.responseXML;
}
catch(xKU){
SwF=xKU;
Jhw=400;
}
log.info("HTTP response status code: "+Jhw);
if(Jhw===0||Jhw==200){
var MMZ=Sarissa.getParseErrorText(gtT);
if(MMZ==Sarissa.PARSED_OK){
return true;
}
else
{
var iIQ=MMZ;
var aSb="Document Parsing Error"
var ODP="Document Fault";
var xKU=new icodeon.ApplicationError(iIQ,aSb,ODP);
VCr.mqj(gtT,xKU);
}
}
else if(Jhw==400){
var aSb=undefined;
if(SwF){
aSb=SwF.toString();
}
else{
aSb=""+Jhw;
}
log.info("HTTP response status: "+aSb);
log.error("XML HTTP response text: "+whS.responseText);
var xKU=new icodeon.ApplicationError(Ilw(Jhw),aSb,"Client Fault");
VCr.mqj(undefined,xKU);
}
else{
var iIQ="HTTP Status Code "+Jhw;
var aSb=Ilw(Jhw);
var ODP="Server Fault";
if(gtT&&gtT.documentElement){
var FZk=gtT.documentElement;
var iIQ=nNN(FZk,"SOAP Fault: ");
var aSb=Ilw(Jhw);
var ODP="Server Fault";
log.info("HTTP response status: "+Ilw(Jhw));
log.error("XML HTTP response text: "+whS.responseText);
log.error(aSb);
}
var xKU=new icodeon.ApplicationError(iIQ,aSb,ODP);
VCr.mqj(undefined,xKU);
}
}
var nNN=function(arJ,aSb){
if(!arJ){return aSb;}
var YYb=undefined;
if(arJ.hasChildNodes()){
var VVF=arJ.childNodes.length
for(var oXU=0;oXU<VVF;oXU++){
YYb=arJ.childNodes[oXU];
if(YYb.nodeType==1){
aSb=nNN(YYb,aSb);
}
else if(YYb.nodeType==3){
aSb+=YYb.nodeValue;
aSb+=": ";
}
}
}
return aSb;
}
var dsY=function(CkG){
if(isUndefined(CkG)){
return ICN_XML_HTTP_STATUS_0;
}
switch(CkG){

case 0:return ICN_XML_HTTP_STATUS_0;
case 1:return ICN_XML_HTTP_STATUS_1;
case 2:return ICN_XML_HTTP_STATUS_2;
case 3:return ICN_XML_HTTP_STATUS_3;
case 4:return ICN_XML_HTTP_STATUS_4;
default:return ICN_XML_HTTP_STATUS_0;
}
}
var Ilw=function(CkG){
switch(CkG){
case 200:
return "HTTP OK";
case 400:
return "HTTP Bad Request";
case 401:
return "HTTP Unauthorized";
case 403:
return "HTTP Forbidden";
case 404:
return "HTTP Not Found";
case 408:
return "HTTP Request Timeout";
case 500:
return "HTTP Internal Server Error";
case 501:
return "HTTP Not Implemented";
case 502:
return "HTTP Bad Gateway";
case 503:
return "HTTP Service Unavailable";
case 504:
return "HTTP Gateway Timeout";
default:
return "HTTP Status "+CkG;
}
}
this.Vnx=function(arJ){
if(arJ){
return new XMLSerializer().serializeToString(arJ);
}
}


this.QoK=function(AVx,mDm,LHl){
if(AVx){
if(mDm){
if(LHl){
AVx.setAttribute(mDm,LHl);
}
}
}
}
this.eop=function(jkm,AVx,EPl){
if(AVx){
this.NXm(AVx);
if(jkm){
AVx.appendChild(EPl.createTextNode(jkm));
}
}
}
this.NXm=function(AVx){
if(AVx){
while(AVx.hasChildNodes()){
AVx.removeChild(AVx.firstChild);
}
}
}
this.xJw=function(rFj,Ywq,EPl){
var AVx=null;
var rpL=browserType();
if(rpL==this.ZCS){
if(Ywq){
AVx=EPl.createNode(1,rFj,Ywq);
}else{
AVx=EPl.createNode(1,rFj,"");
}
}else{
if(Ywq){
AVx=EPl.createElementNS(Ywq,rFj);
}else{
AVx=EPl.createElementNS("",rFj);
}
}
return AVx;
}
this.qxF=function(){
if(isUndefined(QGY)){
QGY=browserType();
}
return QGY;
}
var browserType=function(){
if(document.layers){return "NS";}
if(document.all){
var rAP=navigator.userAgent.toLowerCase();
var veX=(rAP.indexOf("opera")!=-1);
var PFu=(rAP.indexOf("konqueror")!=-1);
if(veX){
return "OPR";
}else{
return(PFu)?"KONQ":"IE";
}
}
if(document.getElementById){
var gpU=navigator.userAgent.toLowerCase();
return(gpU.indexOf("safari")!=-1)?"SFR":"MOZ";
}
return "OTHER";
}
this.toString=function(){
var Uol="Type: "+typeof(this)+"\n";
Uol+="Class: "+"icodeon.AjaxClient"+"\n";
return Uol;
};
};
var icodeon;
if(!icodeon){icodeon={};}
else if(typeof icodeon!="object"){throw new Error("namepsace icodeon exists");}
if(!icodeon.CmiServiceClient){icodeon.CmiServiceClient={};}
else if(typeof icodeon.CmiServiceClient!="object"){throw new Error("namepsace icodeon.CmiServiceClient  exists");}
icodeon.CmiServiceClient=function(Vcv,LmQ,ELb){
icodeon.AjaxClient.call(this);
var JFm=undefined;
var mNj=undefined;
var olp=undefined;
var Ytv=undefined;
var sMb=undefined;
var nJB=undefined;
var oqE=undefined;
var TYZ=undefined;
var responseXML=undefined;
var error=undefined;
this.mUV=function(TNc,Ywq){
var EPl=Sarissa.getDomDocument("http://schemas.xmlsoap.org/soap/envelope/","Envelope");
var rDX=EPl.documentElement;
this.QoK(rDX,"xmlns:xsi","http://www.w3.org/1999/XMLSchema-instance");
this.QoK(rDX,"xmlns:xsd","http://www.w3.org/1999/XMLSchema");
var fRG=this.xJw("Body","http://schemas.xmlsoap.org/soap/envelope/",EPl);
rDX.appendChild(fRG);
var nTC=this.xJw(TNc,"http://www.icodeon.com/services/cmi",EPl);
fRG.appendChild(nTC);
var hYr=this.xJw("RteDataModel","http://www.icodeon.com/services/cmi",EPl);
nTC.appendChild(hYr);
this.QoK(hYr,"pk",JFm);
this.QoK(hYr,"domain",mNj);
this.QoK(hYr,"learner",olp);
this.QoK(hYr,"course",Ytv);
this.QoK(hYr,"org",sMb);
this.QoK(hYr,"sco",nJB);
this.QoK(hYr,"session",oqE);
return EPl;
}
this.invoke=function(TNc,JPd){
TYZ=JPd;
var Ywq="http://www.icodeon.com/services/cmi";
var hXc="http://www.icodeon.com/services/cmi/"+TNc;
var iKJ=this.mUV(TNc,Ywq);
this.sHR(Vcv,LmQ,ELb,hXc,iKJ);
}
this.mqj=function(gtT,xKU){
responseXML=gtT;
error=xKU;
TYZ.call();
}
this.KbB=function(){
return error;
}
this.DIO=function(){
return this.Vnx(responseXML);
}
this.getResponseXml=function(){
return responseXML;
}
this.setDomainID=function(CHr){
mNj=CHr;
}
this.setLearnerID=function(EOU){
olp=EOU;
}
this.setCourseID=function(vYx){
Ytv=vYx;
}
this.setOrgID=function(JbI){
sMb=JbI;
}
this.setScoID=function(NtH){
nJB=NtH;
}
this.setSessionID=function(WnQ){
oqE=WnQ;
}
this.setPrimaryKey=function(OtN){
JFm=OtN;
}
this.toString=function(){
var Uol="Type: "+typeof(this)+"\n";
Uol+="Class: "+"icodeon.CmiServiceClient"+"\n";
return Uol;
};
}
icodeon.CmiServiceClient.prototype=new icodeon.AjaxClient();
icodeon.CmiServiceClient.prototype.constructor=icodeon.CmiServiceClient;
var icodeon;
if(!icodeon){icodeon={};}
else if(typeof icodeon!="object"){throw new Error("namepsace icodeon exists");}
if(!icodeon.Fcs){icodeon.Fcs={};}
else if(typeof icodeon.Fcs!="object"){throw new Error("namepsace icodeon.SequencingServiceClient  exists");}
icodeon.Fcs=function(kZG,Vcv,LmQ,ELb,Cci,plF,pqq){
icodeon.AjaxClient.call(this);
var iIb=kZG;
var mNj=undefined;
var olp=undefined;
var Ytv=undefined;
var sMb=undefined;
var oqE=undefined;
var YxZ=undefined;
var TYZ=undefined;
var responseXML=undefined;
var error=undefined;

this.MuY=function(arJ){
var CVc=arJ.firstChild;
var rIU=undefined;
while(CVc!=null){
var DAJ=CVc.nextSibling;
if(CVc.nodeType==1){
rIU=this.FGQ(CVc.nodeName);
switch(rIU){
case "organizations":
this.MuY(CVc);
break;
case "organization":
this.MuY(CVc);
break;
case "item":
var uZc=CVc.getAttribute("updated");
var ncY=false;
if(isUndefined(uZc)||uZc!="true"){
ncY=true;
}
if(ncY){
arJ.removeChild(CVc);
}
else{
this.MuY(CVc);
}
break;
}
}
CVc=DAJ;
}
};
this.uDg=function(arJ){
arJ.removeAttribute("updated");
var NdH=arJ.childNodes;

var oXU=NdH.length-1;
if(oXU>=0){
do{
if(NdH[oXU].nodeType==1){


this.uDg(NdH[oXU]);
}--oXU;
}
while(oXU>=0);
}
};
this.Ebh=function(arJ){
arJ.removeAttribute("updated");
var CVc=arJ.firstChild;
while(CVc!=null){
var DAJ=CVc.nextSibling;
if(CVc.nodeType==1){
rIU=this.FGQ(CVc.nodeName);
switch(rIU){
case "organizations":
this.Ebh(CVc);
break;
case "organization":
this.Ebh(CVc);
break;
case "item":
this.Ebh(CVc);
break;
case "sequencing":
this.Ebh(CVc);
break;
case "title":
arJ.removeChild(CVc);
break;
case "resource":
arJ.removeChild(CVc);
break;
case "controlMode":
arJ.removeChild(CVc);
break;
case "sequencingRules":
arJ.removeChild(CVc);
break;
case "rollupRules":
arJ.removeChild(CVc);
break;
case "limitConditions":
arJ.removeChild(CVc);
break;
case "presentation":
arJ.removeChild(CVc);
break;
case "dataFromLMS":
arJ.removeChild(CVc);
break;
case "completionThreshold":
arJ.removeChild(CVc);
break;
case "timeLimitAction":
arJ.removeChild(CVc);
break;
}
}
else if(CVc.nodeType==8){
arJ.removeChild(CVc);
}
CVc=DAJ;
}
};
this.FGQ=function(rFj){
var Lap=rFj.indexOf(":");
if(Lap<0){return rFj;}
return rFj.substring(Lap+1,rFj.length);
};
this.mUV=function(TNc,Ywq,OwC){
var cCR="";
var EPl=undefined;
var rDX=undefined;
var fRG=undefined;
var nTC=undefined;
var ZdC=undefined;
var rFj=undefined;
if(!isUndefined(iIb)){
EPl=iIb.getSourceDocumentElement();
rDX=EPl.documentElement;
iIb.setNavigationRequestType(OwC);
iIb.pIu(Cci);
var wWR=false;
if(!isUndefined(Cci)&&Cci=="differential"){
wWR=true;
}
if(wWR){
rDX=rDX.cloneNode(true);
this.uDg(iIb.getSourceDocumentElement().documentElement);
}
rFj=TNc;
nTC=this.xJw(rFj,Ywq,EPl);
if(this.qxF()==this.XuY){
this.QoK(nTC,"xmlns",Ywq);
}
fRG=rDX.firstChild;
var CsN=undefined;
var rIU=fRG.firstChild.nodeName;
if(rIU.indexOf("manifest")!=-1){
CsN=fRG;
ZdC=fRG.firstChild;
}
else{
CsN=fRG.removeChild(fRG.firstChild);
ZdC=CsN.firstChild;
}
var PSP=CsN.childNodes;
var ZCg=PSP.length;
var YYb=undefined;
for(var oXU=0;oXU<ZCg;oXU++){
YYb=CsN.removeChild(PSP[oXU]);
if(wWR){
if(YYb.nodeName.indexOf("manifest")!=-1){
if(TNc=="Terminate"||TNc=="Deliver"){
this.MuY(YYb);
}
this.Ebh(YYb);
}
}
nTC.appendChild(YYb);
}
ZdC.removeAttribute("xmlns");
fRG.appendChild(nTC);
var eHa=this.Vnx(rDX);
return new DOMParser().parseFromString(eHa,"text/xml");
}
EPl=Sarissa.getDomDocument("http://schemas.xmlsoap.org/soap/envelope/","soap:Envelope");
var rDX=EPl.documentElement;
this.QoK(rDX,"xmlns:xsi","http://www.w3.org/1999/XMLSchema-instance");
this.QoK(rDX,"xmlns:xsd","http://www.w3.org/1999/XMLSchema");
if(this.qxF()==this.XuY){
this.QoK(rDX,"xmlns:soap","http://schemas.xmlsoap.org/soap/envelope/");
}
fRG=this.xJw("soap:Body","http://schemas.xmlsoap.org/soap/envelope/",EPl);
rDX.appendChild(fRG);
rFj=TNc;
nTC=this.xJw(rFj,Ywq,EPl);
if(this.qxF()==this.XuY){
this.QoK(nTC,"xmlns",Ywq);
}
fRG.appendChild(nTC);
rFj="manifest";
ZdC=this.xJw(rFj,Ywq,EPl);
rFj="organizations";
var wEb=this.xJw(rFj,Ywq,EPl);
ZdC.appendChild(wEb);
rFj="identifiers";
var fJS=this.xJw(rFj,Ywq,EPl);
wEb.appendChild(fJS);
this.QoK(fJS,"domainID",mNj);
this.QoK(fJS,"learnerID",olp);
this.QoK(fJS,"courseID",Ytv);
this.QoK(fJS,"orgID",sMb);
this.QoK(fJS,"sessionID",oqE);
rFj="navRequest";
var hHf=this.xJw(rFj,Ywq,EPl);
this.eop("_none_",hHf,EPl);
ZdC.appendChild(hHf);
rFj="syncClientServer";
var jsd=this.xJw(rFj,Ywq,EPl);
this.eop(Cci,jsd,EPl);
ZdC.appendChild(jsd);
rFj="mode";
var bjt=this.xJw(rFj,Ywq,EPl);
this.eop(plF,bjt,EPl);
ZdC.appendChild(bjt);
if(!isUndefined(pqq)){
var Iel=pqq.keySet();
var pXZ=Iel.length;
var OGV=undefined;
var jhc=undefined;
var Tqg=this.xJw("overrides",Ywq,EPl);
this.QoK(Tqg,"modelName","minNormalizedMeasure");
for(var oXU=0;oXU<pXZ;oXU++){
OGV=Iel[oXU];
jhc=pqq.get(OGV);
jhc=jhc.toString();
var cQB=this.xJw("override",Ywq,EPl);
this.QoK(cQB,"target",OGV);
this.QoK(cQB,"modelValue",jhc);
Tqg.appendChild(cQB);
}
ZdC.appendChild(Tqg);
}
nTC.appendChild(ZdC);
return EPl;
}
this.invoke=function(TNc,OwC,JPd){
log.info("icodeon.SequencingServiceClient.invoke with WS Operation Name="+TNc);
TYZ=JPd;
var Ywq="http://www.icodeon.com/services/ss";
var hXc="http://www.icodeon.com/services/ss/"+TNc;
var iKJ=this.mUV(TNc,Ywq,OwC);
log.info("Request Type: "+OwC);
this.sHR(Vcv,LmQ,ELb,hXc,iKJ);
}
this.mqj=function(gtT,xKU){
responseXML=gtT;
error=xKU;
if(!error){
log.info("icodeon.SequencingServiceClient.response with no error");
}
else{
log.error("icodeon.SequencingServiceClient.response with error="+error);
}
TYZ.call();
}
this.KbB=function(){
return error;
}
this.DIO=function(){
return this.Vnx(responseXML);
}
this.getResponseXml=function(){
return responseXML;
}
this.setDomainID=function(CHr){
mNj=CHr;
}
this.setLearnerID=function(EOU){
olp=EOU;
}
this.setCourseID=function(vYx){
Ytv=vYx;
}
this.setOrgID=function(JbI){
sMb=JbI;
}
this.setSessionID=function(WnQ){
oqE=WnQ;
}
this.nWw=function(utR){
YxZ=utR;
}
this.toString=function(){
var Uol="Type: "+typeof(this)+"\n";
Uol+="Class: "+"icodeon.SequencingServiceClient"+"\n";
return Uol;
};
}
icodeon.Fcs.prototype=new icodeon.AjaxClient();
icodeon.Fcs.prototype.constructor=icodeon.Fcs;
var icodeon;
if(!icodeon){icodeon={};}
else if(typeof icodeon!="object"){throw new Error("namepsace icodeon exists");}
if(!icodeon.Controller){icodeon.Controller={};}
else if(typeof icodeon.Controller!="object"){throw new Error("namepsace icodeon.Controller exists");}
icodeon.Controller.Model=undefined;
icodeon.Controller.jmB=undefined;
icodeon.Controller.Callback=undefined;
icodeon.Controller.Kuf=undefined;
icodeon.Controller.DdB=undefined;
icodeon.Controller.YkB=undefined;
icodeon.Controller.fYM=undefined;
icodeon.Controller.terminationRequest=undefined;
icodeon.Controller.sequencingRequest=undefined;
icodeon.Controller.execute=function(OwC,ghK,wjN,GxH,ELb){
icodeon.Controller.jmB=undefined;
icodeon.Controller.Callback=undefined;
icodeon.Controller.Kuf=undefined;
icodeon.Controller.DdB=undefined;
icodeon.Controller.YkB=undefined;
icodeon.Controller.dAJ(wjN);
var bRE=undefined;
var kZG=wjN.get("activityTree");
var Kpk=(isUndefined(kZG)||isUndefined(kZG.getElement()));
var EZV=undefined;
if(!Kpk){
var DBQ=kZG.getCurrentActivity();
var cRX=kZG.getScormVersion();
if(!icodeon.SequencingBehaviour.isSequencingFinished){
if(!isUndefined(DBQ)){
var tLj=wjN.get("cocd");
bRE=new icodeon.RunTimeDataModel(tLj,cRX);
EZV=bRE.JoM();
if(EZV){
switch(EZV){
case "time-out":
OwC=icodeon.SequencingEngine.EXIT_ALL;
break;
case "timeout":
OwC=icodeon.SequencingEngine.EXIT_ALL;
break;
case "suspend":
DBQ.csO(true);
kZG.wvR(DBQ);
break;
case "logout":
OwC=icodeon.SequencingEngine.EXIT_ALL;
break;
}
}
}
}
}

switch(OwC){
case icodeon.SequencingEngine.INIT:
icodeon.Controller.CaL(wjN,GxH,ELb);
break;
case icodeon.SequencingEngine.START:
icodeon.Controller.pQv(wjN,GxH,ELb);
break;
case icodeon.SequencingEngine.RESUME_ALL:
icodeon.Controller.idi(wjN,GxH,ELb);
break;
case icodeon.SequencingEngine.PREVIOUS:
icodeon.Controller.DkL(DBQ,bRE);
icodeon.Controller.UfP(wjN,GxH,OwC,ghK,ELb);
break;
case icodeon.SequencingEngine.CONTINUE:
icodeon.Controller.DkL(DBQ,bRE);
icodeon.Controller.UfP(wjN,GxH,OwC,ghK,ELb);
break;
case icodeon.SequencingEngine.CHOICE:
icodeon.Controller.DkL(DBQ,bRE);
icodeon.Controller.UfP(wjN,GxH,OwC,ghK,ELb);
break;
case icodeon.SequencingEngine.EXIT:
icodeon.Controller.DkL(DBQ,bRE);
icodeon.Controller.klM(wjN,GxH,ELb);
break;
case icodeon.SequencingEngine.ABANDON:

icodeon.Controller.kom(wjN,GxH,ELb);
break;
case icodeon.SequencingEngine.EXIT_ALL:
icodeon.Controller.DkL(DBQ,bRE);
icodeon.Controller.mMI(wjN,GxH,OwC,ELb);
break;
case icodeon.SequencingEngine.SUSPEND_ALL:
icodeon.Controller.DkL(DBQ,bRE);
icodeon.Controller.mMI(wjN,GxH,OwC,ELb);
break;
case icodeon.SequencingEngine.ABANDON_ALL:

icodeon.Controller.mMI(wjN,GxH,OwC,ELb);
break;
default:
throw new icodeon.ApplicationError("Unrecognised sequencing request type: "+str_ActionType);
}
};
icodeon.Controller.DkL=
function(DBQ,bRE){
if(!isUndefined(DBQ)){
DBQ.setRunTimeDataModel(bRE);
}
}
icodeon.Controller.AeU=function(){
var SYC;
try{
var dHh=icodeon.Controller.DdB.KbB();
if(dHh){throw dHh;}
var EPl=icodeon.Controller.DdB.getResponseXml();
var kZG=new icodeon.ActivityTree(EPl);
SYC=new icodeon.ModelAndView(icodeon.Controller.Model,icodeon.Controller.jmB);
SYC.put("activityTree",kZG);
SYC.put("organizations",icodeon.Organizations);

var Kpk=isUndefined(kZG.getElement());
var ZoX=false;
if(!Kpk){
if(!isUndefined(kZG.getSuspendedActivity())){
ZoX=true;
}
}
var RZp=icodeon.Controller.Model.get("isSetToLaunch");
if(RZp){
if(ZoX){
icodeon.Controller.execute(icodeon.SequencingEngine.RESUME_ALL,null,icodeon.Controller.Model,icodeon.Controller.Kuf);
}
else{
icodeon.Controller.Model.put("orgID",kZG.getOrgID());
icodeon.Controller.execute(icodeon.SequencingEngine.START,null,icodeon.Controller.Model,icodeon.Controller.Kuf);
}
}
else{
if(ZoX){
SYC.put("isDisabledForStart",false);
SYC.put("isDisabledForMenu",false);
SYC.put("isDisabledForResumeAll",false);
SYC.put("orgID",kZG.getRoot().getIdentifier());
SYC.put("schemaVersion",kZG.getSchemaVersion());
var McJ=SYC.getView();
McJ+="&resumeAll=true&start=true&choice=true";
SYC.HCS(McJ);
icodeon.Controller.Kuf.call(this,SYC);
}
else{
icodeon.Controller.DdB=
icodeon.Controller.BWT(undefined,SYC.getModel(),true);
icodeon.Controller.DdB.invoke("Create",icodeon.SequencingEngine.NONE,icodeon.Controller.wqP);
}
}
}
catch(xKU){
log.error(xKU.message);
SYC=new icodeon.ModelAndView(icodeon.Controller.Model,icodeon.Controller.jmB);
SYC.put("error",xKU);
icodeon.Controller.Kuf.call(this,SYC);
}
}
icodeon.Controller.wqP=function(){
var SYC;
try{
var dHh=icodeon.Controller.DdB.KbB();
if(!isUndefined(dHh)){throw dHh;}
var EPl=icodeon.Controller.DdB.getResponseXml();
var kZG=new icodeon.ActivityTree(EPl);
SYC=new icodeon.ModelAndView(icodeon.Controller.Model,icodeon.Controller.jmB);
SYC.put("activityTree",kZG);
SYC.put("organizations",icodeon.Organizations);

SYC.put("isDisabledForStart",false);
SYC.put("isDisabledForMenu",false);
SYC.put("isDisabledForResumeAll",true);
SYC.put("orgID",kZG.getRoot().getIdentifier());
SYC.put("schemaVersion",kZG.getSchemaVersion());
var McJ=SYC.getView();
McJ+="&resumeAll=false&start=true&choice=true";
SYC.HCS(McJ);
icodeon.Controller.Kuf.call(this,SYC);
}
catch(xKU){
log.error(xKU.message);
SYC=new icodeon.ModelAndView(icodeon.Controller.Model,icodeon.Controller.jmB);
SYC.put("error",xKU);
icodeon.Controller.Kuf.call(this,SYC);
}
}
icodeon.Controller.CRs=function(){
var SYC;
try{
var dHh=icodeon.Controller.DdB.KbB();
if(!isUndefined(dHh)){throw dHh;}
var EPl=icodeon.Controller.DdB.getResponseXml();
var kZG=new icodeon.ActivityTree(EPl);
SYC=new icodeon.ModelAndView(icodeon.Controller.Model,icodeon.Controller.jmB);
SYC.put("activityTree",kZG);
SYC.put("organizations",icodeon.Organizations);

icodeon.Controller.LWZ(SYC,icodeon.SequencingEngine.START,undefined,true);
}
catch(xKU){
log.error(xKU.message);
SYC=new icodeon.ModelAndView(icodeon.Controller.Model,icodeon.Controller.jmB);
SYC.put("error",xKU);
icodeon.Controller.Kuf.call(this,SYC);
}
}
icodeon.Controller.LWZ=function(SYC,OwC,ghK,ELb){
log.info("Navigation request: "+OwC);
icodeon.Controller.fYM=OwC;
icodeon.Controller.terminationRequest=undefined;
icodeon.Controller.sequencingRequest=undefined;
icodeon.NavigationBehaviour.terminationRequest=undefined;
icodeon.NavigationBehaviour.sequencingRequest=undefined;
var kZG=SYC.get("activityTree");
icodeon.NavigationBehaviour.invoke(kZG,OwC,ghK,false);
icodeon.Controller.Model=SYC;
icodeon.Controller.YkB=ghK;
icodeon.Controller.terminationRequest=icodeon.NavigationBehaviour.terminationRequest;
icodeon.Controller.sequencingRequest=icodeon.NavigationBehaviour.sequencingRequest;
if(!isUndefined(icodeon.NavigationBehaviour.terminationRequest)){
icodeon.Controller.kBJ(kZG,icodeon.NavigationBehaviour.terminationRequest,ELb);
}
else{
icodeon.Controller.WBa(ELb);
}
}
icodeon.Controller.kBJ=function(kZG,stK,ELb){
log.info("Termination request: "+stK);

try{
icodeon.TerminationBehaviour.invoke(kZG,stK);
if(!isUndefined(icodeon.TerminationBehaviour.sequencingRequest)){
icodeon.NavigationBehaviour.sequencingRequest=
icodeon.TerminationBehaviour.sequencingRequest;
}
icodeon.Controller.terminationRequest=icodeon.NavigationBehaviour.terminationRequest;
icodeon.Controller.sequencingRequest=icodeon.NavigationBehaviour.sequencingRequest;
icodeon.Controller.gnx(kZG.getObjectivesGlobalToSystem(),stK);

icodeon.Controller.DdB=icodeon.Controller.BWT(kZG,icodeon.Controller.Model,ELb);
icodeon.Controller.DdB.invoke("Terminate",stK,icodeon.Controller.WBa);
}
catch(xKU){
log.error(xKU.message);
SYC=new icodeon.ModelAndView(icodeon.Controller.Model,icodeon.Controller.jmB);
SYC.put("error",xKU);
icodeon.Controller.Kuf.call(this,SYC);
}
}
icodeon.Controller.Cai=function(VMN){
if(VMN==icodeon.SequencingEngine.CONTINUE||VMN==icodeon.SequencingEngine.PREVIOUS||VMN==icodeon.SequencingEngine.CHOICE||VMN==icodeon.SequencingEngine.EXIT||VMN==icodeon.SequencingEngine.ABANDON){
return true;
}
return false;
}
icodeon.Controller.UtX=function(VMN){
if(VMN==icodeon.SequencingEngine.EXIT_ALL||VMN==icodeon.SequencingEngine.SUSPEND_ALL||VMN==icodeon.SequencingEngine.ABANDON_ALL){
return true;
}
return false;
}
icodeon.Controller.WBa=function(ELb){
try{
if(!isUndefined(icodeon.Controller.DdB)&&icodeon.Controller.DdB!=null){
var dHh=icodeon.Controller.DdB.KbB();
if(!isUndefined(dHh)){throw dHh;}
}
var kZG=icodeon.Controller.Model.get("activityTree");
icodeon.SequencingBehaviour.isSequencingFinished=false;

if(icodeon.Controller.sequencingRequest!=icodeon.SequencingEngine.GqE){
if(icodeon.Controller.UtX(icodeon.Controller.fYM)){
icodeon.SequencingBehaviour.isSequencingFinished=true;
}
}
log.info("icodeon.Controller.navigationRequest: "+icodeon.Controller.fYM);
log.info("icodeon.Controller.terminationRequest: "+icodeon.Controller.terminationRequest);
log.info("icodeon.Controller.sequencingRequest: "+icodeon.Controller.sequencingRequest);
if(!icodeon.SequencingBehaviour.isSequencingFinished){
icodeon.SequencingBehaviour.invoke(kZG,icodeon.Controller.sequencingRequest,icodeon.Controller.YkB,false);
}
if(icodeon.SequencingBehaviour.isSequencingFinished){

kZG.setCurrentActivity(undefined);
icodeon.Controller.gnx(kZG.getObjectivesGlobalToSystem(),icodeon.SequencingEngine.EXIT_ALL);
if(icodeon.Controller.sequencingRequest==icodeon.SequencingEngine.CONTINUE){
log.debug("Waking off activity tree with request="+icodeon.Controller.sequencingRequest);
}
var MUe=icodeon.Controller.Model.get("viewRootUrl");
MUe+="?skinID=";
MUe+=icodeon.Controller.Model.get("skinID");
MUe+="&culture=";
MUe+=icodeon.Controller.Model.get("culture");
icodeon.Controller.Model.HCS(MUe);
icodeon.Controller.DdB=icodeon.Controller.BWT(kZG,icodeon.Controller.Model,ELb);

icodeon.Controller.DdB.invoke("Terminate",icodeon.Controller.fYM,icodeon.Controller.EEC);
}
else{
icodeon.Controller.KVH(icodeon.Controller.sequencingRequest);
}
}
catch(xKU){
if(xKU.code&&xKU.code=="SB.2.2-1"){
icodeon.Controller.Model.put("isDisabledForStart",true);
icodeon.Controller.Model.put("isDisabledForMenu",false);
icodeon.Controller.Model.put("isDisabledForResumeAll",true);
icodeon.Controller.Model.put("orgID",kZG.getRoot().getIdentifier());
icodeon.Controller.Model.put("schemaVersion",kZG.getSchemaVersion());
var McJ=icodeon.Controller.Model.getView();
McJ+="&resumeAll=false&start=false&choice=true";
icodeon.Controller.Model.HCS(McJ);
icodeon.Controller.Kuf.call(this,icodeon.Controller.Model);
}
else{
log.error(xKU.message);
SYC=new icodeon.ModelAndView(icodeon.Controller.Model,icodeon.Controller.jmB);
SYC.put("error",xKU);
icodeon.Controller.Kuf.call(this,icodeon.Controller.Model);
}
}
}
icodeon.Controller.KVH=function(uLr){
try{
var kZG=icodeon.Controller.Model.get("activityTree");
if(!isUndefined(icodeon.SequencingBehaviour.deliveryRequest)){
log.info("Delivery request: "+icodeon.SequencingBehaviour.deliveryRequest.getIdentifier());
icodeon.mAu.invoke(kZG,icodeon.SequencingBehaviour.deliveryRequest,false);
var Cci=icodeon.Controller.Model.get("syncClientServer");
if(Cci=="session"&&icodeon.Controller.Cai(icodeon.NavigationBehaviour.sequencingRequest)){
icodeon.Controller.EEC();
}
else{
icodeon.Controller.DdB=icodeon.Controller.BWT(kZG,icodeon.Controller.Model,true);
icodeon.Controller.DdB.invoke("Deliver",uLr,icodeon.Controller.EEC);
}
}
else{
icodeon.Controller.EEC();
}
}
catch(xKU){
log.error(xKU.message);
SYC=new icodeon.ModelAndView(icodeon.Controller.Model,icodeon.Controller.jmB);
SYC.put("error",xKU);
icodeon.Controller.Kuf.call(this,SYC);
}
}
icodeon.Controller.gnx=function(cYa,OwC){
if(!cYa){
if(OwC==icodeon.SequencingEngine.EXIT_ALL||OwC==icodeon.SequencingEngine.SUSPEND_ALL||OwC==icodeon.SequencingEngine.ABANDON_ALL){
var OZU=icodeon.GlobalObjectives.getObjectiveSet();
var VVF=OZU.length;
var fkB=undefined;
for(var oXU=0;oXU<VVF;oXU++)
{
fkB=
icodeon.GlobalObjectives.getObjectiveIfWrittenToBySuspendedActivity(OZU[oXU].getObjectiveID());
if(isUndefined(fkB)){
OZU[oXU].getObjectiveProgressInfo().init();
}
}
}
}
}
icodeon.Controller.EEC=function(){
try{
var dHh=icodeon.Controller.DdB.KbB();
if(!isUndefined(dHh)){throw dHh;}
var kZG=icodeon.Controller.Model.get("activityTree");
var DBQ=kZG.getCurrentActivity();
var hxU=kZG.getSuspendedActivity();
if(!isUndefined(DBQ)){
icodeon.Controller.YiY(kZG,DBQ);
if(DBQ.isActive()){
icodeon.Controller.Model.HCS(icodeon.Controller.RQV(DBQ.getResource()));
}
}
else{
icodeon.Controller.Model.remove("activityTree");
}
icodeon.Controller.Kuf.call(this,icodeon.Controller.Model);
}
catch(xKU){
log.error(xKU.message);
SYC=new icodeon.ModelAndView(icodeon.Controller.Model,icodeon.Controller.jmB);
SYC.put("error",xKU);
icodeon.Controller.Kuf.call(this,SYC);
}
}
icodeon.Controller.RQV=function(OQs){


var jJW=OQs.getURI();

if(isAbsoluteUrl(jJW)){
return jJW;
}
jJW=jJW.split("?").join("&");

var MUe=icodeon.Controller.Model.get("resourceResolverUrl");
MUe+="?courseID="+icodeon.Controller.Model.get("courseID");
MUe+="&uri="+jJW;
return MUe;
};


icodeon.Controller.YiY=function(kZG,DBQ){
var dXP=kZG.getScormVersion();
var OQs=DBQ.getResource();
icodeon.Controller.Model.put("organizations",icodeon.Organizations);
icodeon.Controller.Model.put("orgID",kZG.getRoot().getIdentifier());
icodeon.Controller.Model.put("schemaVersion",kZG.getSchemaVersion());
icodeon.Controller.Model.put("pk",kZG.getID());

icodeon.Controller.Model.put("scoID",DBQ.getIdentifier());
icodeon.Controller.Model.put("mostRecentScoID",DBQ.getIdentifier());
icodeon.Controller.Model.put("title",DBQ.getTitle());
icodeon.Controller.Model.put("tracked",DBQ.isTracked());
icodeon.Controller.Model.put("attemptCount",DBQ.getActivityProgressInfo().getAttemptCount());
icodeon.Controller.Model.put("completionThreshold",DBQ.getCompletionThreshold());
icodeon.Controller.Model.put("launchData",DBQ.getLaunchData());
icodeon.Controller.Model.put("maxTimeAllowed",DBQ.getMaxTimeAllowed(dXP));
icodeon.Controller.Model.put("scaledPassingScore",DBQ.getScaledPassingScore(dXP));
icodeon.Controller.Model.put("timeLimitAction",DBQ.getTimeLimitAction());
icodeon.Controller.Model.put("objectiveSet",DBQ.getObjectiveSet());
icodeon.Controller.Model.put("scormType",OQs.getScormType());
icodeon.Controller.Model.put("isDisabledForExit",false);
icodeon.Controller.Model.put("isDisabledForAbandon",false);
icodeon.Controller.Model.put("isDisabledForMenu",false);
icodeon.Controller.Model.put("activityTree",kZG);
icodeon.Controller.Model.put("canSequenceForContinue",DBQ.canSequence(icodeon.SequencingEngine.CONTINUE));
icodeon.Controller.Model.put("canSequenceForPrevious",DBQ.canSequence(icodeon.SequencingEngine.PREVIOUS));
icodeon.Controller.Model.put("isDisabledForContinue",DBQ.isDisabledForContinue());
icodeon.Controller.Model.put("isDisabledForPrevious",DBQ.isDisabledForPrevious());
icodeon.Controller.Model.put("isDisabledForChoice",DBQ.isDisabledForChoice());
icodeon.Controller.Model.put("isHiddenForPrevious",DBQ.isHiddenForPrevious());
icodeon.Controller.Model.put("isHiddenForContinue",DBQ.isHiddenForContinue());
icodeon.Controller.Model.put("isHiddenForExit",DBQ.isHiddenForExit());
icodeon.Controller.Model.put("isHiddenForChoice",DBQ.isHiddenForChoice());
if(!DBQ.isActive()){
icodeon.Controller.Model.put("isDisabledForExit",true);
icodeon.Controller.Model.put("isDisabledForAbandon",true);
icodeon.Controller.Model.put("isDisabledForExitAll",false);
icodeon.Controller.Model.put("isDisabledForSuspendAll",false);
icodeon.Controller.Model.put("isDisabledForAbandonAll",false);
}
if(dXP<2004){
icodeon.Controller.Model.put("isDisabledForSuspendAll",true);
icodeon.Controller.Model.put("isDisabledForAbandonAll",true);
}
icodeon.Controller.Model.put("isDisabledForAbandonAll",true);
};
icodeon.Controller.dAJ=function(wjN){
wjN.put("isDisabledForStart",true);
wjN.put("isDisabledForResumeAll",true);
wjN.put("isDisabledForPrevious",true);
wjN.put("isDisabledForContinue",true);
wjN.put("isDisabledForChoice",true);
wjN.put("isDisabledForExit",true);
wjN.put("isDisabledForAbandon",true);
wjN.put("isDisabledForMenu",true);
wjN.put("isHiddenForPrevious",true);
wjN.put("isHiddenForContinue",true);
wjN.put("isHiddenForChoice",true);
wjN.put("isDisabledForExitAll",true);
wjN.put("isDisabledForSuspendAll",true);
wjN.put("isDisabledForAbandonAll",true);
wjN.put("scormType","asset");
wjN.put("scoID",undefined);
wjN.put("title","");
wjN.put("tracked",true);
wjN.put("objectiveSet",[]);
wjN.put("error",undefined);
}
icodeon.Controller.BWT=function(kZG,wjN,ELb){
var LmQ=wjN.get("SSRunEndPoint");
var MUe=wjN.get("context");
var Cci=wjN.get("syncClientServer");
var NjP=wjN.get("mode");
var pqq=wjN.get("minNormalizedMeasure");
if(typeof(ELb)=="undefined"){ELb=true;}
log.info("Context: "+MUe);
log.info("SSRunEndPoint: "+LmQ);
log.info("Sync Client Server: "+Cci);
var xDd=new icodeon.Fcs(kZG,"POST",LmQ,ELb,Cci,NjP,pqq);
xDd.setDomainID(wjN.get("domainID"));
xDd.setLearnerID(wjN.get("learnerID"));
xDd.setCourseID(wjN.get("courseID"));
xDd.setOrgID(wjN.get("orgID"));
xDd.setSessionID(wjN.get("sessionID"));
xDd.nWw(icodeon.Controller.fYM);
return xDd;
}
icodeon.Controller.CaL=function(wjN,GxH,ELb){
icodeon.SequencingBehaviour.isSequencingFinished=false;
wjN.remove("activityTree");
var MUe=wjN.get("viewInitUrl");
MUe+="?skinID=";
MUe+=wjN.get("skinID");
MUe+="&culture=";
MUe+=wjN.get("culture");
icodeon.Controller.jmB=MUe;
icodeon.Controller.DdB=icodeon.Controller.BWT(undefined,wjN,ELb);
icodeon.Controller.Kuf=GxH;
icodeon.Controller.Model=wjN;
icodeon.Controller.nNu=icodeon.SequencingEngine.INIT;
icodeon.Controller.DdB.invoke("Resume",icodeon.SequencingEngine.NONE,icodeon.Controller.AeU);
};
icodeon.Controller.pQv=function(wjN,GxH,ELb){
icodeon.SequencingBehaviour.isSequencingFinished=false;
wjN.remove("activityTree");
var MUe=wjN.get("viewInitUrl");
MUe+="?skinID=";
MUe+=wjN.get("skinID");
MUe+="&culture=";
MUe+=wjN.get("culture");
icodeon.Controller.jmB=MUe;
icodeon.Controller.DdB=icodeon.Controller.BWT(undefined,wjN,ELb);
icodeon.Controller.Kuf=GxH;
icodeon.Controller.Model=wjN;
icodeon.Controller.nNu=icodeon.SequencingEngine.START;
icodeon.Controller.DdB.invoke("Create",icodeon.SequencingEngine.START,icodeon.Controller.CRs);
};
icodeon.Controller.idi=function(wjN,GxH,ELb){
icodeon.SequencingBehaviour.isSequencingFinished=false;
var MUe=undefined;
var SYC=new icodeon.ModelAndView(wjN,MUe);
icodeon.Controller.Kuf=GxH;
icodeon.Controller.LWZ(SYC,icodeon.SequencingEngine.RESUME_ALL,undefined,ELb);
};
icodeon.Controller.UfP=function(wjN,GxH,OwC,ghK,ELb){
var MUe=undefined;
var SYC=new icodeon.ModelAndView(wjN,MUe);
icodeon.Controller.Kuf=GxH;
icodeon.Controller.LWZ(SYC,OwC,ghK,ELb);
};
icodeon.Controller.klM=function(wjN,GxH,ELb){
var MUe=wjN.get("viewEndUrl");
MUe+="?skinID=";
MUe+=wjN.get("skinID");
MUe+="&culture=";
MUe+=wjN.get("culture");
var SYC=new icodeon.ModelAndView(wjN,MUe);
icodeon.Controller.Kuf=GxH;
icodeon.Controller.LWZ(SYC,icodeon.SequencingEngine.EXIT,undefined,ELb);
};
icodeon.Controller.kom=function(wjN,GxH,ELb){
var MUe=wjN.get("viewEndUrl");
MUe+="?skinID=";
MUe+=wjN.get("skinID");
MUe+="&culture=";
MUe+=wjN.get("culture");
var SYC=new icodeon.ModelAndView(wjN,MUe);
icodeon.Controller.Kuf=GxH;
icodeon.Controller.LWZ(SYC,icodeon.SequencingEngine.ABANDON,undefined,ELb);
};
icodeon.Controller.mMI=function(wjN,GxH,OwC,ELb){
var MUe=wjN.get("viewRootUrl");
MUe+="?skinID=";
MUe+=wjN.get("skinID");
MUe+="&culture=";
MUe+=wjN.get("culture");
var SYC=new icodeon.ModelAndView(wjN,MUe);
icodeon.Controller.Kuf=GxH;
icodeon.Controller.LWZ(SYC,OwC,undefined,ELb);
};
var icodeon;
if(!icodeon){icodeon={};}
else if(typeof icodeon!="object"){throw new Error("namepsace icodeon exists");}
if(icodeon.ModelAndView){throw new Error("namepsace icodeon.ModelAndView exists");}
if(icodeon.Model){throw new Error("namepsace icodeon.Model exists");}
if(icodeon.Entity){throw new Error("namepsace icodeon.Entity exists");}
icodeon.Entity=function(mam,DbR){
this.key=mam;
this.value=DbR;
this.toString=function(){
return this.key+"="+this.value;
};
};
icodeon.Model=function(){
this.model=[];
this.get=function(mam){
var hvm=this.model[mam];
if(typeof(hvm)!="undefined"&&hvm!==null){
return hvm.value;
}
};
this.remove=function(mam){
var VVF=this.model.length;
var Lap;
for(var oXU=0;oXU<VVF;oXU++){
if(this.model[oXU].key==mam){
Lap=oXU;
break;
}
}
if(!isUndefined(Lap)){
return this.model.splice(Lap,1);
}
};
this.put=function(mam,DbR){
this.remove(mam);
this.model.push(new icodeon.Entity(mam,DbR));
var VVF=this.model.length;
for(var oXU=0;oXU<VVF;oXU++){
this.model[this.model[oXU].key]=this.model[oXU];
}
};
this.toString=function(){
var Uol="Type: "+typeof(this)+"\n";
Uol+="length: "+this.model.length+"\n";
for(var oXU=0;oXU<this.model.length;oXU++){
Uol+=this.model[oXU].toString()+"\n";
}
return Uol;
};
};
icodeon.ModelAndView=function(wjN,McJ){
icodeon.Model.call(this);
this.model=wjN.model;
this.getModel=function(){
return wjN;
};
this.getView=function(){
return McJ;
};
this.HCS=function(Oxl){
McJ=Oxl;
};
this.toString=function(){
var Uol="Type: "+typeof(this)+"\n";
Uol+="model objects: "+this.getModel().length+"\n";
Uol+="view: "+this.getView()+"\n";
return Uol;
};
};
icodeon.ModelAndView.prototype=new icodeon.Model();
icodeon.ModelAndView.prototype.constructor=icodeon.ModelAndView;
