if(typeof debug!="function"){
window.debug=function(_1,_2){
try{
if(window.Debug){
Debug.Tracer.error(_1,_2);
}
}
catch(e){
}
};
}
if(typeof log!="function"){
window.log=function(_3,_4){
try{
if(window.Debug){
Debug.Tracer.log(_3,_4);
}
}
catch(e){
}
};
}
if(typeof warn!="function"){
window.warn=function(_5,_6){
try{
if(window.Debug){
Debug.Tracer.warn(_5,_6);
}
}
catch(e){
}
};
}
function _findAPI(_7,_8,_9){
var _a=eval(_7);
if(!window.debug){
window.debug=function(){
};
}
if(typeof _a!="object"||_a==null){
return null;
}
if((typeof _a[_8]=="object"||typeof _a[_8]=="function")&&_a[_8]!=null){
log("_findAPI","found "+_8+" in "+_7);
return _a[_8];
}
if(_9>0){
var _b=null;
try{
if(typeof _a.opener=="object"&&_a.opener!=null&&(_b=_findAPI(_7+".opener",_8,_9-1))!=null){
return _b;
}
}
catch(e){
}
try{
if(typeof _a.parent=="object"&&_a.parent!=null&&_a.parent!==_a&&(_b=_findAPI(_7+".parent",_8,_9-1))!=null){
return _b;
}
}
catch(e){
}
try{
var _c="";
if(typeof _a.opener=="object"&&_a.opener!=null){
_c=_7+".opener";
}else{
if(typeof _a.parent=="object"&&_a.parent!=null){
_c=_7+".parent";
}
}
if(_c!=""){
var _d=_c+".frames",_e=eval(_d);
if(!(_e.length>0)){
_d=wf+".document.getElementsByTagName('iframe')",_e=eval(_d);
}
for(var i=0;i<_e.length;++i){
if(_e[i]!=_a){
if((_b=_findAPI(_d+"["+i+"]",_8,-1))!=null){
return _b;
}
}
}
}
}
catch(e){
}
}
return null;
};
function findAPI(_10,_11,_12){
var _13=_findAPI(_10,_11,_12);
if(!_13){
debug("findAPI",_11+" not found");
}
return _13;
};
function not_impl_in_scorm(){
return {acc:"r",type:"string",def:"",k120:null,k130:null};
};
function time12(t13){
try{
var m=/^\s*P(\d+Y)?(\d+M)?(\d+D)?T(\d+H)?(\d+M)?(\d+\.?\d*S)\s*$/i.exec(t13);
if(m){
var p=function(x){
var r;
r=typeof x=="string"?x.substr(0,x.length-1):"0";
r="00"+r;
r=r.substr(r.length-2);
return r;
};
return p(m[4])+":"+p(m[5])+":"+p(m[6]);
}
}
catch(e){
debug("time12",(e.description||e.message||e));
}
return t13;
};
function time13(t12){
var m=/^\s*(\d+):(\d+)(:(\d+\.?\d*))?\s*$/.exec(t12);
if(m){
var p=function(x){
var r=parseInt(x);
r=isNaN(r)?"0":""+r;
return r;
};
return "PT"+p(m[1])+"H"+p(m[2])+"M"+p(m[4])+"S";
}
return t12;
};
function dump_datamodel(ele,_1f,_20,_21,_22,_23){
var _24=new Object(),ch="";
if(typeof ele=="object"&&typeof ele.n=="object"){
_21(_1f+"._count",{acc:"r",type:"_count",def:"0"});
var _26="";
for(var i in (ele.n)){
if(!_24[i]){
_26+=","+i;
}
}
_21(_1f+"._children",{acc:"r",type:"_children",def:_26.substr(1)});
if(_22&&_23){
var n=eval(_23);
if(isNaN(parseInt(n))){
throw _23+"("+n+") is not a number";
}
n=parseInt(n);
for(var i=0;i<n;++i){
dump_datamodel(ele.n,_1f+"."+i,_20,_21,_22,_23);
}
}else{
dump_datamodel(ele.n,_1f+".n",_20,_21,_22,_23);
}
}else{
if(typeof ele=="object"&&typeof ele.acc=="string"){
if(ele.type!="_count"&&ele.type!="_children"&&!_20[ele.type]){
throw ("type not found\n"+_1f+"\n"+tojs(ele));
}
_21(_1f,ele);
}else{
var _26=[];
for(var i in ele){
if(typeof _24[i]=="undefined"){
_26.push(i);
}
}
if(!/\.(\d+|n)$/.test(_1f)){
_21(_1f+"._children",{acc:"r",type:"_children",def:_26.join(",")});
}
for(var j=0;j<_26.length;++j){
var i=_26[j];
if(typeof _24[i]=="undefined"){
dump_datamodel(ele[i],_1f+"."+i,_20,_21,_22,_23);
}
}
}
}
};
function APITracer(_2a){
var _2b=function(){
var a=arguments,p=[],r,ex="";
for(var i=0;typeof a[i]!="undefined";++i){
p[i]=a[i];
if(typeof a[i]=="string"){
ex+=",'"+a[i].replace(/([\\\'])/g,"\\$1")+"'";
}else{
ex+=",a["+i+"]";
}
}
log("&gt;meth",p.join(", ")+" ");
eval("r=underlayingAPI.meth("+ex.substr(1)+")");
log("&lt;meth",p.join(", ")+" => "+r);
return r;
};
for(var _31 in _2a){
if(typeof _2a[_31]=="function"){
eval("this."+_31+"="+_2b.toString().replace(/meth/g,_31));
}
}
};
function URLParam(_32){
var re=new RegExp("[?&]"+_32+"=([^&]+)","i");
var m=re.exec(location.protocol=="file:"?unescape(location.href):location.href);
if(m){
return unescape(m[1]);
}
};
function getLMSApi(_35){
if(window.AICC_RSP){
log("AICC_RSP",AICC_RSP);
}
var ret={mode:"",api:null};
switch(_35){
case "aicc":
ret=getAPIfromAICC();
break;
case "scorm1.2":
ret=getAPIfromScorm120();
break;
case "scorm1.3":
ret=getAPIfromScorm130();
break;
}
if(!ret.api){
ret=getAPIfromAICC();
}
if(!ret.api){
ret=getAPIfromScorm130();
}
if(!ret.api){
ret=getAPIfromScorm120();
}
if(!ret.api){
ret=getAPIfromPGHOST();
}
lmsapi130=ret.api;
return ret;
};
function getAPIfromAICC(){
var api=null;
if(AICC_URL&&AICC_SID){
log("AICC_URL",AICC_URL);
log("AICC_SID",AICC_SID);
api=new API_130_Over_AICC(AICC_URL,AICC_SID);
}
return {api:api,mode:api?"aicc":""};
};
function getAPIfromScorm120(){
var api=findAPI("window","API",10);
if(api){
api=new API_130_Over_120(api);
}
return {api:api,mode:api?"scorm1.2":""};
};
function getAPIfromScorm130(){
var api=findAPI("window","API_1484_11",10);
return {api:api,mode:api?"scorm1.3":""};
};
function getAPIfromPGHOST(){
var api=null;
var _3b="";
var _3c=URLParam("PGHost_Id");
if(_3c){
log("PGHOST_ID",_3c);
if(PGHost){
try{
var api=PGHost.GetHostScormAPI(_3c);
if(api){
if(typeof api.GetValue!="undefined"){
_3b="scorm1.3";
}else{
api=new API_130_Over_120(api);
_3b="scorm1.2";
}
}
}
catch(e){
}
}
}
return {api:api,mode:api?_3b:""};
};
AICC_URL=URLParam("AICC_URL");
AICC_SID=URLParam("AICC_SID");
AICC_RSP=URLParam("rsp");
var GetParam;
if(AICC_RSP){
var h="<script src=\""+AICC_RSP+"?AICC_URL="+AICC_URL+"&Session_id="+AICC_SID+"&Command=GetParam&Version=2.2\"></script>";
document.write(h);
}
aicc35model={core:{student_id:{acc:"r",type:"string",def:""},student_name:{acc:"r",type:"string",def:""},output_file:not_impl_in_scorm(),credit:{acc:"r",type:"string",def:"credit"},entry:{acc:"r",type:"string",def:"ab-initio"},lesson_location:{acc:"rw",type:"string",def:""},lesson_status:{acc:"rw",type:"string",def:""},path:not_impl_in_scorm(),score:{acc:"rw",type:"number",def:""},time:{acc:"rw",type:"time12",def:"00:00:00"},lesson_mode:{acc:"r",type:"string",def:"normal"}},core_vendor:{acc:"r",type:"string",def:""},core_lesson:{acc:"rw",type:"string",def:""},comments:{acc:"r",type:"string",def:""},evaluation:{course_id:not_impl_in_scorm(),comments_file:not_impl_in_scorm(),interactions_file:not_impl_in_scorm(),objectives_status_file:not_impl_in_scorm(),path_file:not_impl_in_scorm(),performance_file:not_impl_in_scorm()},objectives_status:{_count:{acc:"rw",type:"number",def:"0"},j_id:{n:{acc:"rw",type:"string",def:""}},j_score:{n:{acc:"rw",type:"string",def:""}},j_status:{n:{acc:"rw",type:"string",def:""}}},student_data:{attempt_number:{},mastery_score:{},max_time_allowed:{acc:"r",type:"time12",def:"00:00:00"},time_limit_action:{acc:"r",type:"string",def:"continue,no message"},lesson_status:{n:{acc:"w",type:"number",def:""}},score:{n:{acc:"w",type:"number",def:""}},tries_during_lesson:{acc:"w",type:"number",def:"1"},try_score:{n:{acc:"w",type:"number",def:""}},try_status:{n:{acc:"w",type:"string",def:""}},try_time:{n:{acc:"w",type:"time12",def:""}}},student_demographics:{city:not_impl_in_scorm(),"class":not_impl_in_scorm(),"company":not_impl_in_scorm(),country:not_impl_in_scorm(),experience:not_impl_in_scorm(),familiar_name:not_impl_in_scorm(),instructor_name:not_impl_in_scorm(),job_title:not_impl_in_scorm(),native_language:not_impl_in_scorm(),state:not_impl_in_scorm(),street_address:not_impl_in_scorm(),telephone:not_impl_in_scorm(),years_experience:not_impl_in_scorm()},student_preferences:{audio:{acc:"rw",type:"number",def:"0"},language:{acc:"rw",type:"string",def:"fr"},lesson_type:not_impl_in_scorm(),speed:{acc:"rw",type:"number",def:"0"},text:{acc:"rw",type:"number",def:"0"},text_color:not_impl_in_scorm(),text_location:not_impl_in_scorm(),text_size:not_impl_in_scorm(),video:not_impl_in_scorm(),window:{n:not_impl_in_scorm()}}};
scorm120errors={"0":"No Error","101":"General Exception","201":"Invalid Argument Error","202":"Element can not have children","203":"Element not an array. Cannot have Count","301":"Not initialized","401":"Not implemented error","403":"Element is read only","402":"Invalid set value, Element is a keyword","404":"Element is write only","405":"Incorrect data type"};
scorm120types={CMIIdentifier:{},CMIString255:{},CMIVocabulary:{},"CMIVocabulary or CMIDecimal":{},"CMIDecimal or CMIBlank":{},CMITimeSpan:{},CMIString4096:{},CMIDecimal:{},CMISInteger:{},CMIFeedback:{}};
scorm120model={core:{student_id:{acc:"r",type:"CMIIdentifier",def:""},student_name:{acc:"r",type:"CMIString255",def:""},lesson_location:{acc:"rw",type:"CMIString255",def:""},credit:{acc:"r",type:"CMIVocabulary",def:"credit",enu:["credit","no-credit"]},lesson_status:{acc:"rw",type:"CMIVocabulary",def:"not attempted",enu:["not attempted","browsed","incomplete","completed","failed","passed"]},entry:{acc:"r",type:"CMIVocabulary",def:"",enu:["ab-initio","resume",""]},score:{raw:{acc:"rw",type:"CMIDecimal or CMIBlank",def:""},min:{acc:"rw",type:"CMIDecimal or CMIBlank",def:""},max:{acc:"rw",type:"CMIDecimal or CMIBlank",def:""}},total_time:{acc:"r",type:"CMITimeSpan",def:"00:00:00"},lesson_mode:{acc:"r",type:"CMIVocabulary",def:"normal",enu:["browse","normal","review"]},exit:{acc:"w",type:"CMIVocabulary",def:"suspend",enu:["time-out","suspend","logout",""]},session_time:{acc:"w",type:"CMITimeSpan",def:"00:00:00"}},suspend_data:{acc:"rw",type:"CMIString4096",def:""},launch_data:{acc:"r",type:"CMIString4096",def:""},comments:{acc:"rw",type:"CMIString4096",def:""},comments_from_lms:{acc:"r",type:"CMIString4096",def:""},objectives:{n:{id:{acc:"rw",type:"CMIIdentifier",def:""},score:{raw:{acc:"rw",type:"CMIDecimal or CMIBlank",def:""},min:{acc:"rw",type:"CMIDecimal or CMIBlank",def:""},max:{acc:"rw",type:"CMIDecimal or CMIBlank",def:""}},status:{acc:"rw",type:"CMIVocabulary",def:"not attempted",enu:["not attempted","browsed","incomplete","completed","failed","passed"]}}},student_data:{mastery_score:{acc:"r",type:"CMIDecimal",def:"70"},max_time_allowed:{acc:"r",type:"CMITimeSpan",def:"08:00:00"},time_limit_action:{acc:"r",type:"CMIVocabulary",def:"exit,no message",enu:["exit,no message","exit,message","continue,no message","continue,message"]}},student_preference:{audio:{acc:"rw",type:"CMISInteger",range:[-1,100],def:"0"},language:{acc:"rw",type:"CMIString255",def:"fr"},speed:{acc:"rw",type:"CMISInteger",range:[-100,100],def:"0"},text:{acc:"rw",type:"CMISInteger",range:[-1,1],def:"0"}},interactions:{n:{id:{acc:"w",type:"CMIIdentifier",def:""},objectives:{n:{id:{acc:"w",type:"CMIIdentifier",def:""}}},time:{acc:"w",type:"CMITimeSpan",def:"00:00:00"},type:{acc:"w",type:"CMIVocabulary",def:"",enu:["true-false","choice","fill-in","matching","performance","sequencing","likert","numeric"]},correct_responses:{n:{pattern:{acc:"w",type:"CMIFeedback",def:""}}},weighting:{acc:"w",type:"CMIDecimal",def:"1"},student_response:{acc:"w",type:"CMIFeedback",def:""},result:{acc:"w",type:"CMIVocabulary or CMIDecimal",def:"",enu:["correct","wrong","unanticipated","neutral"]},latency:{acc:"w",type:"CMITimeSpan",def:""}}}};
scorm130errors={"0":"No Error","101":"General Exception","102":"General Initialization Failure","103":"Already Initialized","104":"Content Instance Terminated","111":"General Termination Failure","112":"Termination Before Initialization","113":"Termination After Termination","122":"Retrieve Data Before Initialization","123":"Retrieve Data After Termination","132":"Store Data Before Initialization","133":"Store Data After Termination","142":"Commit Before Initialization","143":"Commit After Termination","201":"General Argument Error","301":"General Get Failure","351":"General Set Failure","391":"General Commit Failure","401":"Undefined Data Model Element","402":"Unimplemented Data Model Element","403":"Data Model Element Value Not Initialized","404":"Data Model Element Is Read only","405":"Data Model Element Is Write Only","406":"Data Model Element Type Mismatch","407":"Data Model Element Value Out Of Range","408":"Data Model dependency not established"};
scorm130types={"characterstring":{},"localized_string_type":{},"time(second,10,2)":{},"timeinterval(second,10,2)":{},"state":{},"real(10,7)":{},"state or real(10,7)":{},"long_identifier_type":{},"depends-of":{},"language_type":{}};
scorm130model={_version:{acc:"r",type:"characterstring",def:"1.0",G12:function(k){
return "1.0";
}},comments_from_learner:{n:{comment:{acc:"rw",type:"localized_string_type",spm:4000,def:""},location:{acc:"rw",type:"characterstring",spm:250,def:""},date_time:{acc:"rw",def:"",type:"time(second,10,2)"}}},comments_from_lms:{n:{comment:{acc:"r",type:"characterstring",spm:250,def:""},location:{acc:"r",type:"characterstring",spm:250,def:""},date_time:{acc:"r",type:"time(second,10,2)",def:""}}},completion_status:{acc:"rw",type:"state",def:"unknown",enu:["completed","incomplete","not attempted","unknown"]},completion_threshold:{acc:"r",type:"real(10,7)",range:[0,1],def:0},credit:{acc:"r",type:"state",def:"credit",enu:["credit","no-credit"]},entry:{acc:"r",type:"state",def:"ab-initio",enu:["ab-initio","resume",""]},exit:{acc:"w",type:"state",def:"",enu:["time-out","suspend","logout","normal",""]},interactions:{n:{id:{acc:"rw",type:"long_identifier_type",spm:4000,def:""},type:{acc:"rw",type:"state",def:"",enu:"true_false, multiple_choice, fill_in, long_fill_in, matching, performance, sequencing, likert, numeric, other".split(", ")},objectives:{n:{id:{acc:"rw",type:"long_identifier_type",spm:4000,def:""}}},timestamp:{acc:"rw",type:"time(second,10,2)",def:""},correct_responses:{n:{pattern:{acc:"rw",type:"depends-of",type2:"cmi.interactions.n.type",def:""}}},weighting:{acc:"rw",type:"real(10,7)",def:"1.000000"},learner_response:{acc:"rw",type:"depends-of",type2:"cmi.interactions.n.type",def:""},result:{acc:"rw",type:"state or real(10,7)",def:"",enu:"correct, wrong, unanticipated, neutral, real".split(", ")},latency:{acc:"rw",type:"timeinterval(second,10,2)",def:""},description:{acc:"rw",type:"localized_string_type",spm:250,def:""}}},launch_data:{acc:"r",type:"characterstring",spm:4000,def:""},learner_id:{acc:"r",type:"long_identifier_type",spm:4000,def:""},learner_name:{acc:"r",type:"localized_string_type",spm:250,def:""},learner_preference:{audio_level:{acc:"rw",type:"real(10,7)",range:[0,"*"],def:"1"},language:{acc:"rw",type:"language_type",spm:250,def:"fr"},delivery_speed:{acc:"rw",type:"real(10,7)",range:[0,"*"],def:"1"},audio_captioning:{acc:"rw",type:"state",def:"no-change",enu:"off, no_change, on, -1, 0, 1".split(", ")}},location:{acc:"rw",type:"characterstring",spm:1000,def:""},max_time_allowed:{acc:"r",type:"timeinterval(second,10,2)",def:""},mode:{acc:"r",type:"state",def:"normal",enu:"browse, normal, review".split(", ")},objectives:{n:{id:{acc:"rw",type:"long_identifier_type",spm:4000,def:""},score:{scaled:{acc:"rw",type:"real(10,7)",range:[-1,1],def:""},raw:{acc:"rw",type:"real(10,7)",def:""},min:{acc:"rw",type:"real(10,7)",def:""},max:{acc:"rw",type:"real(10,7)",def:""}},success_status:{acc:"rw",type:"state",def:"unknown",enu:"passed, failed, unknown".split(", ")},completion_status:{acc:"rw",type:"state",def:"unknown",enu:"completed, incomplete, not_attempted, unknown".split(", ")},description:{acc:"rw",type:"localized_string_type",spm:250,def:""},progress_measure:{acc:"rw",type:"real(10,7)",range:[0,1],def:""},scaled_passing_score:{acc:"rw",type:"real(10,7)",range:[-1,1],def:""}}},scaled_passing_score:{acc:"r",type:"real(10,7)",range:[-1,1],def:""},score:{scaled:{acc:"rw",type:"real(10,7)",range:[-1,1],def:""},raw:{acc:"rw",type:"real(10,7)",def:""},min:{acc:"rw",type:"real(10,7)",def:""},max:{acc:"rw",type:"real(10,7)",def:""}},session_time:{acc:"w",type:"timeinterval(second,10,2)",def:"PT0H0M"},success_status:{acc:"rw",type:"state",def:"unknown",enu:"passed, failed, unknown".split(", ")},suspend_data:{acc:"rw",type:"characterstring",spm:4000,def:""},time_limit_action:{acc:"r",type:"state",def:"continue,no message",enu:["exit,message","continue,message","exit,no message","continue,no message"]},total_time:{acc:"r",type:"timeinterval(second,10,2)",def:""}};
API_120_Over_130=Class.create();
API_120_Over_130.prototype={initialize:function(_3e){
this.API_1484_11=_3e;
},LMSInitialize:function(arg){
return this.API_1484_11.Initialize(arg);
},LMSFinish:function(arg){
return this.API_1484_11.Terminate(arg);
},LMSGetValue:function(_41){
var arg,val="",n;
if(m=/^(cmi)(\..*)?(\._children)/.exec(_41)){
var o=eval("scorm120model"+(m[2]?m[2].replace(/\.\d+/g,".n"):""));
if(typeof o!="object"){
return "";
}
var ch="",_47=new Object();
if(typeof o.n=="object"){
o=o.n;
}
for(var i in o){
if(!_47[i]){
ch+=","+i;
}
}
val=ch.substr(1);
}else{
if(_41=="cmi.core.student_id"){
val=this.API_1484_11.GetValue(arg="cmi.learner_id");
}else{
if(_41=="cmi.core.student_name"){
val=this.API_1484_11.GetValue(arg="cmi.learner_name");
}else{
if(_41=="cmi.core.lesson_status"){
val=this.API_1484_11.GetValue(arg="cmi.completion_status");
if(val=="unknown"||val==""){
val=this.API_1484_11.GetValue(arg="cmi.success_status");
}
}else{
if(_41=="cmi.core.lesson_location"){
val=this.API_1484_11.GetValue(arg="cmi.location");
}else{
if(_41=="cmi.core.lesson_mode"){
val=this.API_1484_11.GetValue(arg="cmi.mode");
}else{
if(_41=="cmi.comments"){
n=parseInt(this.API_1484_11.GetValue(arg="cmi.comments_from_learner._count"));
if(!isNaN(n)){
for(var i=1;i<=n;++i){
val+=this.API_1484_11.GetValue(arg="cmi.comments_from_learner."+n+".comment")+"\r\n";
}
}
}else{
if(_41=="cmi.comments_from_lms"){
n=parseInt(this.API_1484_11.GetValue(arg="cmi.comments_from_lms._count"));
if(!isNaN(n)){
for(var i=1;i<=n;++i){
val+=this.API_1484_11.GetValue(arg="cmi.comments_from_lms."+n+".comment")+"\r\n";
}
}
}else{
if(_41=="cmi.student_data.mastery_score"){
val=this.API_1484_11.GetValue(arg="cmi.scaled_passing_score");
if(val!=""){
var min=this.API_1484_11.GetValue("cmi.score.min");
var max=this.API_1484_11.GetValue("cmi.score.max");
if(min&&max){
val=scaledToRaw(val,min,max);
}
}else{
val=this.API_1484_11.GetValue(arg="cmi.completion_threshold");
}
return ""+val;
}else{
if(_41=="cmi.student_preference.audio"){
val=this.API_1484_11.GetValue(arg="cmi.learner_preference.audio_level");
}else{
if(_41=="cmi.student_preference.language"){
val=this.API_1484_11.GetValue(arg="cmi.learner_preference.language");
}else{
if(_41=="cmi.student_preference.speed"){
val=this.API_1484_11.GetValue(arg="cmi.learner_preference.delivery_speed");
}else{
if(_41=="cmi.student_preference.text"){
val=this.API_1484_11.GetValue(arg="cmi.learner_preference.audio_captioning");
}else{
if(n=/^cmi\.objectives\.(\d+)\.status$/.exec(_41)){
val=this.API_1484_11.GetValue(arg=_41.replace("status","success_status"));
if(val==""||val=="unknown"||!/^bnic/i.test(val)){
val=this.API_1484_11.GetValue(arg=_41.replace("status","completion_status"));
}
}else{
if(n=/^cmi\.interactions\.(\d+)\.type$/.exec(_41)){
val=this.API_1484_11.GetValue(arg=_41);
if(val=="long-fill-in"){
val="fill-in";
}
}else{
if(n=/^(cmi\.interactions\.(\d+))\.time$/.exec(_41)){
val=this.API_1484_11.GetValue(arg=n[1]+".timestamp");
}else{
if(n=/^(cmi\.interactions\.(\d+))\.student_response$/.exec(_41)){
val=this.API_1484_11.GetValue(arg=n[1]+".learner_response");
}else{
arg=_41.replace(".core.",".").replace(".student_data.",".");
val=this.API_1484_11.GetValue(arg);
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
if(/(_time|time_allowed|latency)$/.test(_41)){
val=time12(val);
}
return val;
},LMSSetValue:function(_4b,val){
if(/(_time(_allowed)?|latency)$/.test(_4b)){
val=time13(val);
}
if(_4b=="cmi.core.student_id"){
val=this.API_1484_11.SetValue(arg="cmi.learner_id",val);
}else{
if(_4b=="cmi.core.lesson_status"){
if(val=="passed"||val=="failed"){
val=this.API_1484_11.SetValue(arg="cmi.success_status",val);
}else{
val=this.API_1484_11.SetValue(arg="cmi.completion_status",val);
}
}else{
if(_4b=="cmi.core.lesson_location"){
val=this.API_1484_11.SetValue(arg="cmi.location",val);
}else{
if(_4b=="cmi.core.lesson_mode"){
val=this.API_1484_11.SetValue(arg="cmi.mode",val);
}else{
if(_4b=="cmi.comments"){
n=parseInt(this.API_1484_11.GetValue(arg="cmi.comments_from_learner._count"));
if(!(n>0)){
n=1;
}else{
++n;
}
val=this.API_1484_11.SetValue(arg="cmi.comments_from_learner."+n+".comment",val);
}else{
if(_4b=="cmi.comments_from_lms"){
n=parseInt(this.API_1484_11.GetValue(arg="cmi.comments_from_learner._count"));
if(!(n>0)){
n=1;
}else{
++n;
}
val=this.API_1484_11.SetValue(arg="cmi.comments_from_lms."+n+".comment",val);
}else{
if(_4b=="cmi.student_preference.audio"){
val=this.API_1484_11.SetValue(arg="cmi.learner_preference.audio_level",val);
}else{
if(_4b=="cmi.student_preference.language"){
val=this.API_1484_11.SetValue(arg="cmi.learner_preference.language",val);
}else{
if(_4b=="cmi.student_preference.speed"){
val=this.API_1484_11.SetValue(arg="cmi.learner_preference.delivery_speed",val);
}else{
if(_4b=="cmi.student_preference.text"){
val=this.API_1484_11.SetValue(arg="cmi.learner_preference.audio_captioning",val);
}else{
if(n=/^cmi\.interactions\.(\d+)\.type$/.exec(_4b)){
val=this.API_1484_11.SetValue(arg=_4b,val);
}else{
if(n=/^(cmi\.interactions\.(\d+))\.time$/.exec(_4b)){
val=this.API_1484_11.SetValue(arg=n[1]+".timestamp",val);
}else{
if(n=/^(cmi\.interactions\.(\d+))\.student_response$/.exec(_4b)){
val=this.API_1484_11.SetValue(arg=n[1]+".learner_response",val);
}else{
if(n=/^(cmi\.objectives\.(\d+))\.status$/.exec(_4b)){
if(/^bnic/i.test(_4b)||_4b=="completed"||_4b=="incomplete"||_4b=="not attempted"){
val=this.API_1484_11.SetValue(arg=n[1]+".completion_status",val);
}else{
val=this.API_1484_11.SetValue(arg=n[1]+".success_status",val);
}
}else{
arg=_4b.replace(".core.",".").replace(".student_data.",".");
val=this.API_1484_11.SetValue(arg,val);
}
}
}
}
}
}
}
}
}
}
}
}
}
}
return val;
},LMSCommit:function(arg){
return this.API_1484_11.Commit(arg);
},LMSGetLastError:function(){
var r=this.API_1484_11.GetLastError();
var map={"0":"0","101":"101","102":"101","103":"101","104":"101","111":"101","112":"101","113":"101","122":"101","123":"101","133":"101","142":"101","143":"101","201":"201","301":"202","351":"202","391":"202","401":"401","402":"401","403":"301","404":"403","405":"404","406":"405","407":"405","408":"405"};
if(typeof (map[r])=="string"){
return map[r];
}
return r;
},LMSGetErrorString:function(_50){
return scorm120errors[_50]||_50;
},LMSGetDiagnostic:function(arg){
return this.API_1484_11.GetDiagnostic(arg);
},_test_get:function(_52,_53){
var _54=this,cm="apiobj.LMSGetValue('"+_52+"')";
try{
var r=eval(cm);
this._info("testget",cm+"="+r);
}
catch(e){
debug("testget",cm+" "+(e.description||e.message||e));
}
},_test:function(){
var api=this,f=function(_59,_5a){
api._test_get(_59,_5a);
};
dump_datamodel(scorm120model,"cmi",scorm120types,f,this,"apiobj.LMSGetValue(parentstr+'._count')");
}};
API_130_Over_AICC=Class.create();
API_130_Over_AICC.base=location.href.replace(/\?.*$/,"").replace(/[\x2f\x5c][^\x2f\x5c]+$/,"");
API_130_Over_AICC.prototype={initialize:function(_5b,_5c){
this.AICC_URL=_5b;
this.AICC_SID=_5c;
this.committed=true;
this.score={};
this.objectives=[];
this.aicc_data=null;
this.hacp=this.getHACP();
this.asynchronous=(this.hacp=="xdcom");
log("API_130_Over_AICC","uses "+this.hacp.toUpperCase()+" for HACP");
},initialized:false,lastError:"102",diagnostic:"not initialized",getHACP:function(){
var re=/^\w+:\/+[^\/]+/;
var ma=re.exec(location.href),mb=re.exec(AICC_URL);
var _60=true;
if(ma&&mb&&ma[0]==mb[0]){
_60=false;
}
if(AICC_URL&&AICC_SID&&_60&&/MSIE/.test(navigator.userAgent)){
if(PGHost!=null){
return "pghost";
}
}
if(typeof (GetParam)=="string"&&typeof (AICC_RSP)=="string"){
return "rsp";
}
if(_60&&createXDCom()){
return "xdcom";
}
return "ajax";
},_aicc_data_getcount:function(_61,re){
var _63=this._get(_61);
if(!_63){
return 0;
}
var n=0,pos=0,m,v;
while(m=re.exec(_63.substr(pos))){
v=parseInt(m[1].toString());
if(v>n){
n=v;
}
pos+=_61.indexOf(m[0].toString(),pos)+m[0].toString().length;
}
return n;
},_aicc_get_objectives_ids:function(){
if(this.objectives.length!=0){
return;
}
var _68="objectives_status";
var _69=this._get(_68);
if(!_69){
return 0;
}
var pos=0,m,v,re=/j_id\.(\d+)\s*=\s*([^\r]+)\s*[\r\n]+/i;
while(m=re.exec(_69.substr(pos))){
v=parseInt(m[1].toString());
this.objectives.push({j_index:m[1],id:m[2],score:{}});
pos=_69.indexOf(m[0].toString(),pos)+m[0].toString().length;
}
},_get:function(_6e,key){
return this._put(_6e,key,"??");
},_put:function(_70,key,v){
if(arguments.length==2){
v=key;
key="";
}
this.aicc_data=this.aicc_data.replace(/[\r\n]+/g,"\r\n");
this.aicc_data=this.aicc_data.replace(/[\r\n]\s*;[^\r\n]+/g,"");
var re=new RegExp("\\[\\s*"+_70+"\\s*\\]","i");
var m=re.exec(this.aicc_data);
if(!m){
if(v=="??"){
return "";
}
this.aicc_data=this.aicc_data+"\r\n["+_70+"]\r\n";
m=re.exec(this.aicc_data);
}
if(m){
var _75=this.aicc_data.indexOf(m[0].toString())+m[0].toString().length;
m=/\s*\r\n/.exec(this.aicc_data.substr(_75));
if(m){
_75+=m[0].toString().length;
}else{
this.aicc_data=this.aicc_data.substr(0,_75)+"\r\n"+this.aicc_data.substr(_75);
_75+=2;
}
var _76=this.aicc_data.substr(_75).indexOf("[");
if(_76<0){
_76=this.aicc_data.substr(_75).length;
}
if(key){
re=new RegExp("[\\r\\n]+(\\s*"+key.replace(/\./g,"\\.")+"\\s*=)\\s*","i");
m=re.exec("\r\n"+this.aicc_data.substr(_75,_76)+"\r\n");
if(m){
var _77=this.aicc_data.substr(_75,_76).indexOf(m[1].toString());
_77+=m[1].toString().length;
m=/^[^\r\n]*/.exec(this.aicc_data.substr(_75+_77));
var _78=m[0].toString().length;
if(v=="??"){
return this.aicc_data.substr(_75+_77,_78);
}
this.aicc_data=this.aicc_data.substr(0,_75+_77)+v+this.aicc_data.substr(_75+_77+_78);
this.aicc_data=this.aicc_data.replace(/[\r\n]+/g,"\r\n");
return "true";
}else{
if(v=="??"){
return "";
}
this.aicc_data=this.aicc_data.substr(0,_75+_76)+"\r\n"+key+"="+v+"\r\n"+this.aicc_data.substr(_75+_76);
this.aicc_data=this.aicc_data.replace(/[\r\n]+/g,"\r\n");
return "true";
}
}else{
if(v=="??"){
return this.aicc_data.substr(_75,_76);
}
this.aicc_data=this.aicc_data.substr(0,_75)+"\r\n"+v+"\r\n"+this.aicc_data.substr(_75+_76);
this.aicc_data=this.aicc_data.replace(/[\r\n]+/g,"\r\n");
return "true";
}
}else{
return "false";
}
},_post:function(_79,_7a){
var _7b=_79.toLowerCase();
var _7c="";
var _7d="session_id="+this.AICC_SID+"&command="+_7b+"&version=2.2"+(_7a?"&aicc_data="+escape(_7a):"");
if(_7a){
log("post aicc_data",_7a);
}
switch(this.hacp){
case "pghost":
_7c=PGHost.PostHttpRequest2(AICC_URL,_7d);
break;
case "rsp":
if(_7b=="getparam"){
_7c=GetParam;
}else{
this._submitAiccForm(_7b,AICC_RSP,_7a?_7a:"","scormred_"+_7b+"_target");
_7c=GetParam;
}
break;
case "xdcom":
var _7e={command:_7b,version:"2.2",session_id:this.AICC_SID};
if(_7b=="getparam"){
var _7f=this;
var _80=function(_81){
if(_81.error){
error("API_130_Over_AICC._onAiccResponse",_81.error);
}
_7f._onInitialized(_81);
WApplication.onLMSReady();
};
window.XDcom.request(this.AICC_URL,_7e,_80);
}else{
if(WApplication&&WApplication.navigation.hasExited){
if(_7b!="exitau"){
var wW=150,wH=80;
var wL=(screen.width-wW)/2;
var wT=0;
var _86="height="+wH+",width="+wW+",left="+wL+",top="+wT+",statusbar=no,menubar=no,location=no,toolbar=no,resizable=no";
var _87=window.open("","",_86);
_87.name=_7a;
_87.location.href="./pages/aicc_setter.htm"+"?AICC_URL="+this.AICC_URL+"&AICC_SID="+this.AICC_SID+"&version=2.2";
}
}else{
if(_7a){
_7e.aicc_data=_7a;
}
window.XDcom.request(this.AICC_URL,_7e);
}
}
_7c="error=0";
break;
default:
var _86={method:"post",asynchronous:false,parameters:_7d,onException:function(_88,_89){
warn("Ajax.Request.onError","request failed:"+_89.description);
}};
var _8a=new Ajax.Request(this.AICC_URL,_86);
if(_8a.transport.readyState!=4){
warn("API_130_Over_AICC","Post failed, try with Get");
_86.method="get";
_8a=new Ajax.Request(this.AICC_URL,_86);
}
return _8a.transport;
}
return {responseText:_7c,status:200,statusText:"OK",readyState:4};
},_submitAiccForm:function(cmd,url,_8d,_8e){
var _8f=$("frm_"+cmd);
if(_8f){
Element.remove(_8f);
}
var htf="";
htf+="<form id=\"frm_"+cmd+"\" name=\""+cmd+"\" action=\""+url+"\" method=\"post\">";
htf+="<input type=\"hidden\" name=\"command\" value=\""+cmd+"\">";
htf+="<input type=\"hidden\" name=\"version\" value=\"2.2\">";
htf+="<input type=\"hidden\" name=\"session_id\" value=\""+this.AICC_SID+"\">";
if(cmd=="putparam"){
htf+="<textarea name=\"aicc_data\">"+_8d+"</textarea>";
}
htf+="</form>";
var _91=document.getElementsByTagName("body")[0];
new Insertion.Top(_91,htf);
_8f=$("frm_"+cmd);
if(cmd=="putparam"){
_8f.aicc_data.value=_8d;
}
_8f.target=_8e;
_8f.submit();
Element.remove(_8f);
},_onInitialized:function(_92){
this.lastError="102";
this.diagnostic="not initialized";
log("AICC response",_92.responseText);
try{
var m=/aicc_data\s*=([^\0]*)$/.exec(_92.responseText);
}
catch(e){
m=null;
}
if(!m){
debug("responseText","aicc_data not found");
for(var i in _92){
if(typeof _92[i]!="function"){
debug("transport."+i,_92[i]);
}
}
return "false";
}
this.aicc_data=m[1].toString();
this._total_time=time13(this._get("core","time"));
this._put("core","time","00:00:00");
this.lastError="0";
this.diagnostic="ok";
this.initialized=true;
this.committed=true;
this._aicc_get_objectives_ids();
return "true";
},Initialize:function(arg){
var _96=this._post("GetParam");
if(this.asynchronous){
return "true";
}
return this._onInitialized(_96);
},Terminate:function(arg){
if(!this.committed){
this.Commit("");
}
var _98=this._post("ExitAU");
if(!/error\s*=\s*0/.test(_98.responseText)){
debug("Terminate",_98.responseText);
return "false";
}
return "true";
},Commit:function(arg){
this.lastError="391";
this.diagnostic="General Commit Failure";
var _9a="[core]\r\n"+this._get("core");
if(_9a.charAt(_9a.length-1)!="\n"){
_9a+="\r\n";
}
_9a+="[core_lesson]\r\n"+this._get("core_lesson");
if(_9a.charAt(_9a.length-1)!="\n"){
_9a+="\r\n";
}
_9a+="[objectives_status]\r\n"+this._get("objectives_status");
if(_9a.charAt(_9a.length-1)!="\n"){
_9a+="\r\n";
}
_9a+="[student_preferences]\r\n"+this._get("student_preferences");
if(_9a.charAt(_9a.length-1)!="\n"){
_9a+="\r\n";
}
var _9b=this._post("PutParam",_9a);
if(!/error\s*=\s*0/.test(_9b.responseText)){
debug("Commit",_9b.responseText);
return "false";
}
this.lastError="0";
this.diagnostic="ok";
this.committed=true;
return "true";
},GetValue:function(k){
var v="",m=null,_9f=new Object(),_a0=this;
function get(sec,key){
return _a0._get(sec,key);
};
function put(sec,key,val){
return _a0._put(sec,key,val);
};
this.lastError="0";
this.diagnostic="ok";
if(!this.initialized){
this.lastError="122";
this.diagnostic="Store Data Before Initialization";
return "";
}
if((m=/^(cmi.*)[.]_children$/.exec(k))!=null){
return this._getchildren(m[1].toString());
}
if(k=="cmi.learner_id"){
return get("core","student_id");
}
if(k=="cmi.learner_name"){
return get("core","student_name");
}
if(k=="cmi.credit"){
return /^\s*n/i.test(get("core","credit"))?"no-credit":"credit";
}
if(k=="cmi.entry"){
return get("core","entry");
}
if(k=="cmi.location"){
return get("core","lesson_location");
}
if(k=="cmi.success_status"){
var v=get("core","lesson_status");
if(/^\s*p/i.test(v)){
return "passed";
}
if(/^\s*f/i.test(v)){
return "failed";
}
return "unknown";
}
if(k=="cmi.completion_status"){
var v=get("core","lesson_status");
if(/^\s*[pfc]/i.test(v)){
return "completed";
}
if(/^\s*n/i.test(v)){
return "not attempted";
}
return "incomplete";
}
if(k=="cmi.completion_threshold"){
return get("student_data","mastery_score");
}
if(/^cmi\.score\./.test(k)){
var cmi=this;
eval("v=typeof "+k);
if(v!="undefined"){
v=eval(k);
return v;
}
}
if(k=="cmi.score.raw"){
return get("core","score").split(",")[0];
}
if(k=="cmi.score.max"){
return get("core","score").split(",")[1]||"100";
}
if(k=="cmi.score.min"){
return get("core","score").split(",")[2]||"0";
}
if(k=="cmi.score.scaled"){
var a=get("core","score").split(",");
if(isNaN(parseFloat(a[0]))){
return "";
}
if(isNaN(parseFloat(a[1]))){
a[1]="100";
}
if(isNaN(parseFloat(a[2]))){
a[2]="0";
}
if(parseInt(a[2])<0){
return ""+(-1+2*((parseFloat(a[0])-parseFloat(a[2]))/(parseFloat(a[1])-parseFloat(a[2]))));
}else{
return ""+(0+1*((parseFloat(a[0])-parseFloat(a[2]))/(parseFloat(a[1])-parseFloat(a[2]))));
}
}
if(k=="cmi.total_time"){
return this._total_time;
}
if(k=="cmi.mode"){
return /^\s*b/i.test(get("core","lesson_mode"))?"browse":"normal";
}
if(k=="cmi.launch_data"){
return get("core_vendor");
}
if(k=="cmi.suspend_data"){
return get("core_lesson");
}
if(k=="cmi.comments_from_lms._count"){
return this._aicc_data_getcount("comments",/[<](\d+)[>]/);
}
if(k=="cmi.comments_from_learner._count"){
return "0";
}
if(k=="cmi.objectives._count"){
return ""+this.objectives.length;
}
if((m=/^cmi[.]objectives[.](\d+)[.](.+)$/.exec(k))!=null){
var io=parseInt(m[1]),o=this.objectives[io],ko=m[2];
if(typeof o=="undefined"){
return "";
}
if(typeof o.j_index=="undefined"){
return "";
}
if(eval("typeof o."+ko)!="undefined"){
return eval("o."+ko);
}
if(ko=="id"){
return get("objectives_status","j_id."+m[1]);
}
if(ko=="score.raw"){
return get("objectives_status","j_score."+o.j_index).split(",")[0];
}
if(ko=="score.max"){
return get("objectives_status","j_score."+o.j_index).split(",")[1]||"100";
}
if(ko=="score.min"){
return get("objectives_status","j_score."+o.j_index).split(",")[2]||"0";
}
if(ko=="score.scaled"){
var a=get("objectives_status","j_score."+o.j_index).split(",");
if(isNaN(parseFloat(a[0]))){
return "";
}
if(isNaN(parseFloat(a[1]))){
a[1]="100";
}
if(isNaN(parseFloat(a[2]))){
a[2]="0";
}
if(parseInt(a[2])<0){
return ""+(-1+2*((parseFloat(a[0])-parseFloat(a[2]))/(parseFloat(a[1])-parseFloat(a[2]))));
}else{
return ""+(0+1*((parseFloat(a[0])-parseFloat(a[2]))/(parseFloat(a[1])-parseFloat(a[2]))));
}
}
if(ko=="success_status"){
var v=get("objectives_status","j_status."+o.j_index);
return /^\s*p/i.test(v)?"passed":/^\s*f/i.test(v)?"failed":"unknown";
}
if(ko=="completion_status"){
var v=get("objectives_status","j_status."+o.j_index);
return /^\s*c/i.test(v)?"completed":/^\s*i/i.test(v)?"incomplete":"unknown";
}
}
if(k=="cmi.max_time_allowed"){
return time13(get("student_data","max_time_allowed"));
}
if(k=="cmi.time_limit_action"){
return (/c/i.test(get("student_data","time_limit_action"))?"continue":"exit")+","+(/no/i.test(get("student_data","time_limit_action"))?",no message":"message");
}
if(k=="cmi.learner_preference.audio_level"){
return get("student_preferences","audio");
}
if(k=="cmi.learner_preference.language"){
return get("student_preferences","language");
}
if(k=="cmi.learner_preference.delivery_speed"){
return get("student_preferences","speed");
}
if(k=="cmi.learner_preference.audio_captioning"){
return get("student_preferences","text");
}
if(k=="cmi.student_demographics.email"){
return get("student_demographics","email");
}
if(k=="cmi.student_demographics.subcliid"){
return get("student_demographics","subcliid");
}
if(k=="cmi.student_demographics.transcript_id"){
return get("student_demographics","transcript_id");
}
if((m=/^(cmi.*)[.]_count$/.exec(k))!=null){
return this._getcount(m[1].toString());
}
if(m=/^cmi(\.[^.]+)$/.exec(m)){
this.lasterror="402",this.diagnostic="Unimplemented data model element "+k;
return get("ip_extensions",m[1].toLowerCase(),v);
}
this.lasterror="402",this.diagnostic="Unimplemented data model element";
return "";
},SetValue:function(k,v){
var _ad=this,m=null;
function get(sec,key){
return _ad._get(sec,key);
};
function put(sec,key,val){
return _ad._put(sec,key,val);
};
this.lastError="0";
this.diagnostic="ok";
if(!this.initialized){
this.lastError="132";
this.diagnostic="Store Data Before Initialization";
return "false";
}
this.committed=false;
if(k=="cmi.location"){
return put("core","lesson_location",v);
}
if(k=="cmi.success_status"){
if(v!="unknown"){
return put("core","lesson_status",v);
}
}
if(k=="cmi.completion_status"){
if(v!="unknown"){
return put("core","lesson_status",v);
}
}
if(/^cmi\.score\.(scaled|raw|max|min)$/.test(k)){
var cmi=this;
eval(k+"=v");
}
if(k=="cmi.score.raw"){
var tmp=get("core","score").split(",");
tmp[0]=v;
return put("core","score",tmp.join(","));
}
if(k=="cmi.score.max"){
var tmp=get("core","score").split(",");
tmp[0]=tmp[0]||"";
tmp[1]=v||"100";
return put("core","score",tmp.join(","));
}
if(k=="cmi.score.min"){
var tmp=get("core","score").split(",");
tmp[0]=tmp[0]||"";
tmp[1]=tmp[1]||"100";
tmp[2]=v||"0";
return put("core","score",tmp.join(","));
}
if(k=="cmi.session_time"){
return put("core","time",time12(v));
}
if(k=="cmi.suspend_data"){
return put("core_lesson","",v);
}
if((m=/^cmi[.]objectives[.](\d+)\.(.+)$/.exec(k))!=null){
var io=parseInt(m[1]),o=this.objectives[io],ko=m[2];
if(typeof o=="undefined"){
if(io!=this.objectives.length){
this.lastError="407";
this.diagnostic="invalid objective index "+k;
return "false";
}
if(ko!="id"){
this.lastError="407";
this.diagnostic="objective id not set: "+k;
return "false";
}
o=this.objectives[io]={id:v,score:{}};
if(io==0){
o.j_index=0;
}else{
o.j_index=""+(1+parseInt(this.objectives[io-1].j_index));
}
if(isNaN(parseInt(o.j_index))){
throw Error("failed to compute new j_index");
}
this._put("objectives_status","J_ID."+o.j_index,v);
return "true";
}
if(ko=="id"){
if(o.id.toLowerCase()==(""+v).toLowerCase()){
return "true";
}
this.lastError="407";
this.diagnostic="objective "+io+" has already id "+o.id;
return "false";
}
eval("o."+ko+"=v");
if(ko=="score.raw"){
var t=get("objectives_status","j_score."+o.j_index).split(",");
t[0]=v||"";
return put("objectives_status","j_score."+o.j_index,t.join(","));
}
if(ko=="score.min"){
var t=get("objectives_status","j_score."+o.j_index).split(",");
t[0]=t[0]||"";
t[1]=v||"0";
return put("objectives_status","j_score."+o.j_index,t.join(","));
}
if(ko=="score.max"){
var t=get("objectives_status","j_score."+o.j_index).split(",");
t[0]=t[0]||"";
t[1]=t[1]||"0";
t[2]=v||"100";
return put("objectives_status","j_score."+o.j_index,t.join(","));
}
if(ko=="success_status"){
if(v!="unknown"){
return put("objectives_status","j_status."+o.j_index,v.substr(0,1));
}
}
if(ko=="completion_status"){
if(v!="unknown"&&/^\s*[ncp]/i.test(get("objectives_status","j_status."+o.j_index))){
return put("objectives_status","j_status."+o.j_index,v.substr(0,1));
}
}
}
if(k=="cmi.learner_preference.audio_level"){
return put("student_preferences","audio",v);
}
if(k=="cmi.learner_preference.language"){
return put("student_preferences","language",v);
}
if(k=="cmi.learner_preference.delivery_speed"){
return put("student_preferences","speed",v);
}
if(k=="cmi.learner_preference.audio_captioning"){
return put("student_preferences","text",v);
}
if(m=/^cmi(\.[^.]+)$/.exec(m)){
put("ip_extensions",m[1].toLowerCase(),v);
}
this.lasterror="402",this.diagnostic="Unimplemented data model element";
return "false";
},GetLastError:function(){
return this.lastError;
},GetErrorString:function(arg){
if(!arg){
arg=this.lastError;
}
return scorm130errors[arg.toString()]||arg.toString();
},GetDiagnostic:function(arg){
return this.diagnostic;
},_getchildren:function(k){
var v="",_be=new Object(),cmi=scorm130model,o=eval(k.replace(/[.](\d+|n)/g,".n"));
if(typeof o=="object"&&typeof o.n=="object"){
o=o.n;
}
if(typeof o!="object"||typeof o.acc!="undefined"){
debug("_getchildren",k+" has no children");
this.lastError="401";
this.diagnostic="Undefined Data Model Element";
return "";
}
for(var i in o){
if(!_be[i]){
v+=","+i;
}
}
v=v.substr(1);
return v;
},_getcount:function(k){
var v="",_c4=new Object(),cmi=scorm130model,o=eval(k.replace(/[.](\d+|n)/g,".n"));
if(typeof o!="object"||typeof (o.n)!="object"){
debug("_getcount",k+" has no count."+tojs(o));
this.lastError="401";
this.diagnostic="Undefined Data Model Element";
return "";
}
return "0";
},_test_get:function(_c7,_c8){
var _c9=this;
var cm="apiobj.GetValue('"+_c7+"')";
try{
var r=eval(cm);
this._info("testget13/hacp",cm+"="+r);
}
catch(e){
debug("testget13/hacp",cm+" "+(e.description||e.message||e));
}
},_test:function(){
var api=this,cmi=scorm130model,f=function(_cf,_d0){
api._test_get(_cf,_d0);
};
dump_datamodel(scorm130model,"cmi",scorm130types,f,this,"apiobj.GetValue(parentstr+'._count')");
}};
API_130_Over_120=Class.create();
API_130_Over_120.prototype={initialize:function(_d1){
this.API=_d1;
},Initialize:function(arg){
return this.API.LMSInitialize(arg);
},Terminate:function(arg){
return this.API.LMSFinish(arg);
},GetValue:function(_d4){
var _d5=_d4,m,val="";
if(m=/^(.*)(\._children)$/.exec(_d4)){
var o=eval("scorm130model"+m[1].substr(3).replace(/\.(\d+|n)(\.|$)/g,"[0]$1"));
if(typeof o!="object"){
debug("not an object","scorm130model"+m[1].substr(3).replace(/\.(\d+|n)(\.|$)/g,"[0]$1"));
return "";
}
var ch="",_da=new Object();
if(o.constructor===Array){
o=o[0];
}
for(var i in o){
if(!_da[i]){
ch+=","+i;
}
}
val=ch.substr(1);
}else{
if(_d4=="cmi._version"){
val="1.0";
_d5="";
}else{
if(_d4=="cmi.comments_from_learner._count"){
val=this.API.LMSGetValue(_d5="cmi.comments");
val=val==""?0:1;
}else{
if(m=/^cmi\.comments_from_learner\.(\d+)\.comment$/.exec(_d4)){
val=this.API.LMSGetValue(_d5="cmi.comments");
}else{
if(m=/^cmi\.comments_from_learner\.(\d+)\.(location|date_time)$/.exec(_d4)){
val="";
_d5="";
}else{
if(_d4=="cmi.comments_from_lms._count"){
val=this.API.LMSGetValue(_d5="cmi.comments_from_lms");
val=val==""?0:1;
}else{
if(m=/^cmi\.comments_from_lms\.(\d+)\.comment$/.exec(_d4)){
val=this.API.LMSGetValue(_d5="cmi.comments_from_lms");
}else{
if(m=/^cmi\.comments_from_lms\.(\d+)\.(location|date_time)$/.exec(_d4)){
val="";
_d5="";
}else{
if(_d4=="cmi.completion_status"){
val=this.API.LMSGetValue(_d5="cmi.core.lesson_status");
if(!/^(incomplete|completed|not attempted)$/.test(val)){
val="unknown";
}
}else{
if(_d4=="cmi.completion_threshold"){
val=this.API.LMSGetValue(_d5="cmi.student_data.mastery_score");
}else{
if(_d4=="cmi.credit"){
val=this.API.LMSGetValue(_d5="cmi.core.credit");
}else{
if(_d4=="cmi.entry"){
val=this.API.LMSGetValue(_d5="cmi.core.entry");
}else{
if(m=/^cmi\.interactions\._count$/.exec(_d4)){
val=this.API.LMSGetValue(_d5=_d4);
}else{
if(m=/^cmi\.interactions\.(\d+)\.id$/.exec(_d4)){
val=this.API.LMSGetValue(_d5=_d4);
}else{
if(m=/^cmi\.interactions\.(\d+)\.type$/.exec(_d4)){
val=this.API.LMSGetValue(_d5=_d4);
}else{
if(m=/^cmi\.interactions\.(\d+)\.objectives\._count$/.exec(_d4)){
val=this.API.LMSGetValue(_d5=_d4);
}else{
if(m=/^cmi\.interactions\.(\d+)\.objectives\.(\d+)\.id$/.exec(_d4)){
val=this.API.LMSGetValue(_d5=_d4);
}else{
if(m=/^cmi\.interactions\.(\d+)\.timestamp$/.exec(_d4)){
val=time13(this.API.LMSGetValue(_d5=_d4.replace("timestamp","time")));
}else{
if(m=/^cmi\.interactions\.(\d+)\.correct_responses\._count$/.exec(_d4)){
val=this.API.LMSGetValue(_d5=_d4);
}else{
if(m=/^cmi\.interactions\.(\d+)\.correct_responses\.(\d+)\.pattern$/.exec(_d4)){
val=this.API.LMSGetValue(_d5=_d4);
}else{
if(m=/^cmi\.interactions\.(\d+)\.weighting$/.exec(_d4)){
val=this.API.LMSGetValue(_d5=_d4);
}else{
if(m=/^cmi\.interactions\.(\d+)\.learner_response$/.exec(_d4)){
val=this.API.LMSGetValue(_d5=_d4.replace("learner_response","student_response"));
}else{
if(m=/^cmi\.interactions\.(\d+)\.result$/.exec(_d4)){
val=this.API.LMSGetValue(_d5=_d4);
}else{
if(m=/^cmi\.interactions\.(\d+)\.latency$/.exec(_d4)){
val=time13(this.API.LMSGetValue(_d5=_d4));
}else{
if(m=/^cmi\.interactions\.(\d+)\.description$/.exec(_d4)){
val=time13(this.API.LMSGetValue(_d5=_d4));
}else{
if(_d4=="cmi.launch_data"){
val=this.API.LMSGetValue(_d5=_d4);
}else{
if(_d4=="cmi.learner_id"){
val=this.API.LMSGetValue(_d5="cmi.core.student_id");
}else{
if(_d4=="cmi.learner_name"){
val=this.API.LMSGetValue(_d5="cmi.core.student_name");
}else{
if(_d4=="cmi.learner_preference.audio_level"){
val=this.API.LMSGetValue(_d5="cmi.student_preference.audio");
}else{
if(_d4=="cmi.learner_preference.language"){
val=this.API.LMSGetValue(_d5="cmi.student_preference.language");
}else{
if(_d4=="cmi.learner_preference.delivery_speed"){
val=this.API.LMSGetValue(_d5="cmi.student_preference.speed");
}else{
if(_d4=="cmi.learner_preference.audio_captioning"){
val=this.API.LMSGetValue(_d5="cmi.student_preference.text");
}else{
if(_d4=="cmi.location"){
val=this.API.LMSGetValue(_d5="cmi.core.lesson_location");
}else{
if(_d4=="cmi.max_time_allowed"){
val=this.API.LMSGetValue(_d5="cmi.student_data.max_time_allowed");
}else{
if(_d4=="cmi.mode"){
val=this.API.LMSGetValue(_d5="cmi.core.lesson_mode");
}else{
if(_d4=="cmi.objectives._count"){
val=this.API.LMSGetValue(_d5=_d4);
}else{
if(m=/^cmi\.objectives\.(\d+)\.id$/.exec(_d4)){
val=this.API.LMSGetValue(_d5=_d4);
}else{
if(m=/^cmi\.objectives\.(\d+)\.score.scaled$/.exec(_d4)){
var M=parseFloat(this.API.LMSGetValue(_d4.replace("scaled","max"))||"100");
var m=parseFloat(this.API.LMSGetValue(_d4.replace("scaled","min"))||"0");
var r=parseFloat(this.API.LMSGetValue(_d4.replace("scaled","raw")));
if(!isNaN(r)&&!isNaN(M)&&!isNaN(m)){
val=(m<0)?-1+2*(r-m)/(M-m):(r-m)/(M-m);
}
}else{
if(m=/^cmi\.objectives\.(\d+)\.score.raw$/.exec(_d4)){
val=this.API.LMSGetValue(_d5=_d4);
}else{
if(m=/^cmi\.objectives\.(\d+)\.score.min$/.exec(_d4)){
val=this.API.LMSGetValue(_d5=_d4);
}else{
if(m=/^cmi\.objectives\.(\d+)\.score.max$/.exec(_d4)){
val=this.API.LMSGetValue(_d5=_d4);
}else{
if(m=/^cmi\.objectives\.(\d+)\.success_status$/.exec(_d4)){
val=this.API.LMSGetValue(_d5="cmi.objectives."+m[1]+".status");
if(!/^(p|f|passed|failed)$/.test(val)){
val="unknown";
}
}else{
if(m=/^cmi\.objectives\.(\d+)\.completion_status$/.exec(_d4)){
val=this.API.LMSGetValue(_d5="cmi.objectives."+m[1]+".status");
if(!/^(c|i|n|completed|incomplete|not attempted)$/.test(val)){
val="unknown";
}
}else{
if(m=/^cmi\.objectives\.(\d+)\.description$/.exec(_d4)){
val=this.API.LMSGetValue(_d5=_d4);
}else{
if(m=/^cmi\.objectives\.(\d+)\.progress_measure$/.exec(_d4)){
val="";
_d5="";
}else{
if(m=/^cmi\.objectives\.(\d+)\.scaled_passing_score$/.exec(_d4)){
val="";
_d5="";
}else{
if(m=/^cmi\.score.raw$/.exec(_d4)){
val=this.API.LMSGetValue(_d5=_d4.replace("cmi","cmi.core"));
}else{
if(m=/^cmi\.score.min$/.exec(_d4)){
val=this.API.LMSGetValue(_d5=_d4.replace("cmi","cmi.core"));
}else{
if(m=/^cmi\.score.max$/.exec(_d4)){
val=this.API.LMSGetValue(_d5=_d4.replace("cmi","cmi.core"));
}else{
if(m=/^cmi\.score.scaled$/.exec(_d4)){
var M=parseFloat(this.API.LMSGetValue("cmi.core.score.max")||"100");
var m=parseFloat(this.API.LMSGetValue("cmi.core.score.min")||"0");
var r=parseFloat(this.API.LMSGetValue("cmi.core.score.raw"));
if(!isNaN(r)&&!isNaN(M)&&!isNaN(m)){
val=(m<0)?-1+2*(r-m)/(M-m):(r-m)/(M-m);
}
}else{
if(m=/^cmi\.session_time$/.exec(_d4)){
val=time13(this.API.LMSGetValue(_d5=_d4.replace("cmi","cmi.core")));
}else{
if(m=/^cmi\.success_status$/.exec(_d4)){
val=this.API.LMSGetValue(_d5="cmi.core.lesson_status");
if(!/^(p|f|passed|failed)$/.test(val)){
val="unknown";
}
}else{
if(m=/^cmi\.completion_status$/.exec(_d4)){
val=this.API.LMSGetValue(_d5="cmi.core.lesson_status");
if(!/^(c|i|n|completed|incomplete|not attempted)$/.test(val)){
val="unknown";
}
}else{
if(_d4=="cmi.suspend_data"){
val=this.API.LMSGetValue(_d5=_d4);
}else{
if(_d4=="cmi.time_limit_action"){
val=this.API.LMSGetValue("cmi.student_data.time_limit_action");
}else{
if(_d4=="cmi.total_time"){
val=time13(this.API.LMSGetValue(_d5=_d4.replace("cmi","cmi.core")));
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
return val;
},SetValue:function(_de,_df){
var _e0=_de,_e1=_df,ret="false",m;
if(_de=="cmi.comments_from_learner.comment"){
ret=this.API.LMSSetValue(_e0="cmi.comments",_e1=_df);
}else{
if(_de=="cmi.comments_from_learner.location"){
ret="false";
_e0="";
}else{
if(_de=="cmi.comments_from_learner.date_time"){
ret="false";
_e0="";
}else{
if(_de=="cmi.completion_status"){
_e0="cmi.core.lesson_status";
ret=this.API.LMSSetValue(_e0,_e1=_df);
}else{
if(_de=="cmi.exit"){
ret=this.API.LMSSetValue(_e0=_de.replace("cmi","cmi.core"),_e1=_df);
}else{
if(m=/^cmi\.interactions\.(\d+)\.id$/.exec(_de)){
ret=this.API.LMSSetValue(_e0=_de,_e1=_df);
}else{
if(m=/^cmi\.interactions\.(\d+)\.type$/.exec(_de)){
ret=this.API.LMSSetValue(_e0=_de,_e1=_df);
}else{
if(m=/^cmi\.interactions\.(\d+)\.objectives\.(\d+)\.id$/.exec(_de)){
ret=this.API.LMSSetValue(_e0=_de,_e1=_df);
}else{
if(m=/^cmi\.interactions\.(\d+)\.timestamp$/.exec(_de)){
ret=this.API.LMSSetValue(_e0=_de,_e1=time12(_df));
}else{
if(m=/^cmi\.interactions\.(\d+)\.correct_responses\.(\d+)\.pattern$/.exec(_de)){
ret=this.API.LMSSetValue(_e0=_de,_e1=_df);
}else{
if(m=/^cmi\.interactions\.(\d+)\.weighting$/.exec(_de)){
ret=this.API.LMSSetValue(_e0=_de,_e1=_df);
}else{
if(m=/^cmi\.interactions\.(\d+)\.learner_response$/.exec(_de)){
ret=this.API.LMSSetValue(_e0=_de.replace("learner","student"),_e1=_df);
}else{
if(m=/^cmi\.interactions\.(\d+)\.result$/.exec(_de)){
ret=this.API.LMSSetValue(_e0=_de,_e1=_df);
}else{
if(m=/^cmi\.interactions\.(\d+)\.latency$/.exec(_de)){
ret=this.API.LMSSetValue(_e0=_de,_e1=time12(_df));
}else{
if(m=/^cmi\.interactions\.(\d+)\.description$/.exec(_de)){
ret=this.API.LMSSetValue(_e0=_de,_e1=_df);
}else{
if(_de=="cmi.learner_preference.audio_level"){
ret=this.API.LMSSetValue(_e0="cmi.student_preference.audio",_e1=_df);
}else{
if(_de=="cmi.learner_preference.language"){
ret=this.API.LMSSetValue(_e0="cmi.student_preference.language",_e1=_df);
}else{
if(_de=="cmi.learner_preference.delivery_speed"){
ret=this.API.LMSSetValue(_e0="cmi.student_preference.speed",_e1=_df);
}else{
if(_de=="cmi.learner_preference.audio_captioning"){
ret=this.API.LMSSetValue(_e0="cmi.student_preference.text",_e1=_df);
}else{
if(_de=="cmi.location"){
ret=this.API.LMSSetValue(_e0="cmi.core.lesson_location",_e1=_df);
}else{
if(_de=="cmi.max_time_allowed"){
ret=this.API.LMSSetValue(_e0=_de.replace("cmi","cmi.student_data"),_e1=time12(_df));
}else{
if(m=/^cmi\.objectives\.(\d+)\.id$/.exec(_de)){
ret=this.API.LMSSetValue(_e0=_de,_e1=_df);
}else{
if(m=/^cmi\.objectives\.(\d+)\.score\.scaled$/.exec(_de)){
ret="false";
_e0="";
}else{
if(m=/^cmi\.objectives\.(\d+)\.score\.raw$/.exec(_de)){
ret=this.API.LMSSetValue(_e0=_de,_e1=_df);
}else{
if(m=/^cmi\.objectives\.(\d+)\.score\.min$/.exec(_de)){
ret=this.API.LMSSetValue(_e0=_de,_e1=_df);
}else{
if(m=/^cmi\.objectives\.(\d+)\.score\.max$/.exec(_de)){
ret=this.API.LMSSetValue(_e0=_de,_e1=_df);
}else{
if(m=/^cmi\.objectives\.(\d+)\.success_status$/.exec(_de)){
_e0=_de.replace("success_","");
ret=this.API.LMSSetValue(_e0,_e1=_df);
}else{
if(m=/^cmi\.objectives\.(\d+)\.completion_status$/.exec(_de)){
_e0=_de.replace("success_","");
if(/^(not attempted)$/.test(this.API.LMSGetValue(_e0))){
ret=this.API.LMSSetValue(_e0,_e1=_df);
}else{
ret="false";
}
}else{
if(m=/^cmi\.objectives\.(\d+)\.description$/.exec(_de)){
ret=this.API.LMSSetValue(_e0=_de,_e1=_df);
}else{
if(_de=="cmi.progress_measure"){
ret="false";
_e0="";
}else{
if(_de=="cmi.scaled_passing_score"){
ret="false";
_e0="";
}else{
if(m=/^cmi\.score\.scaled$/.exec(_de)){
ret="false";
_e0="";
}else{
if(m=/^cmi\.score\.raw$/.exec(_de)){
ret=this.API.LMSSetValue(_e0=_de.replace("cmi","cmi.core"),_e1=_df);
}else{
if(m=/^cmi\.score\.min$/.exec(_de)){
ret=this.API.LMSSetValue(_e0=_de.replace("cmi","cmi.core"),_e1=_df);
}else{
if(m=/^cmi\.score\.max$/.exec(_de)){
ret=this.API.LMSSetValue(_e0=_de.replace("cmi","cmi.core"),_e1=_df);
}else{
if(_de=="cmi.session_time"){
ret=this.API.LMSSetValue(_e0=_de.replace("cmi","cmi.core"),_e1=time12(_df));
}else{
if(_de=="cmi.success_status"){
_e0="cmi.core.lesson_status";
ret=this.API.LMSSetValue(_e0,_e1=_df);
}else{
if(_de=="cmi.suspend_data"){
ret=this.API.LMSSetValue(_e0=_de,_e1=_df);
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
return ret;
},Commit:function(arg){
return this.API.LMSCommit(arg);
},GetLastError:function(){
var ret=this.API.LMSGetLastError();
return ret;
},GetErrorString:function(arg){
var ret=arg;
return ret;
},GetDiagnostic:function(arg){
return this.API.LMSGetDiagnostic(arg);
},_test_get:function(_e9,_ea){
var _eb=this,cm="apiobj.GetValue('"+_e9+"')";
try{
var r=eval(cm);
this._info("testget13/12",cm+"="+r);
}
catch(e){
debug("testget13/12",cm+" "+(e.description||e.message||e));
}
},_test:function(){
var api=this,f=function(_f0,_f1){
api._test_get(_f0,_f1);
};
dump_datamodel(scorm130model,"cmi",scorm130types,f,this,"apiobj.GetValue(parentstr+'._count')");
}};
function scormred_api130(){
var _f2=URLParam("AICC_URL"),_f3=URLParam("AICC_SID");
var api=null;
if(typeof ActiveXObject=="undefined"){
Ajax.getTransport=function(){
return new XMLHttpRequest();
};
}
if(typeof _f2=="string"&&_f2.length){
api=new API_130_Over_AICC(_f2,_f3);
}
if(!api){
api=findAPI("window","API_1484_11",10);
}
if(!api){
var _f5=findAPI("window","API",10);
if(_f5){
api=new API_130_Over_120(_f5);
}
}
return api;
};
function scormred_getparam(){
var api=window.lmsapi130=scormred_api130();
if(api){
}else{
return "error=101\r\nerror_text=scormred:no API 1.3 nor 1.2"+r+"\r\n";
}
var r;
try{
r=api.Initialize("");
if(r!="true"){
return "error=101\r\nerror_text=scormred:api.Initialize:"+r+"\r\n";
}
}
catch(e){
return "error=101\r\nerror_text=scormred:api.Initialize:"+(e.description||e.message||e)+"\r\n";
}
window.api=api;
window.unloadfunc=function(){
api.Terminate("");
};
Event.observe(window,"unload",window.unloadfunc,false);
var gv=function(k){
return api.GetValue(k);
};
var gvf=function(k,def){
var r=api.GetValue(k);
if(!isNaN(parseFloat(r))){
return r;
}else{
return def;
}
};
var go=function(k,i){
return "J_ID."+i+"="+gv(k+"."+i+".id")+"\r\n"+"J_Score."+i+"="+gv(k+"."+i+".score.raw")+","+gvf(k+"."+i+".score.max",100)+","+gvf(k+"."+i+".score.min",0)+"\r\n"+"J_Status."+i+"="+(gv(k+"."+i+".success_status").replace(/unknown/i,"")||gv(k+"."+i+".completion_status"))+"\r\n"+"";
};
var gvn=function(k,f){
var n=gvf(k+"._count");
var r=[];
for(var i=0;i<n;++i){
r.push(f(k,i));
}
return r.join("\r\n");
};
return "error=0\r\n"+"error_text=Successful\r\n"+"aicc_data=[core]\r\n"+"student_id="+gv("cmi.learner_id")+"\r\n"+"student_name="+gv("cmi.learner_name")+"\r\n"+"lesson_location="+gv("cmi.location")+"\r\n"+"credit="+gv("cmi.credit")+"\r\n"+"lesson_mode="+(gv("cmi.mode")||"normal")+"\r\n"+"lesson_status="+(gv("cmi.success_status").replace(/unknown/i,"")||gv("cmi.completion_status"))+"\r\n"+"score="+gv("cmi.score.raw")+","+gvf("cmi.score.max","100")+","+gvf("cmi.score.min","0")+"\r\n"+"time="+time12(gv("cmi.total_time"))+"\r\n"+"[core_lesson]\r\n"+gv("cmi.suspend_data")+"\r\n"+"[core_vendor]\r\n"+gv("cmi.launch_data")+"\r\n"+"[comments]\r\n"+"[evaluation]\r\n"+"[objectives_status]\r\n"+gvn("cmi.objectives",go)+"\r\n"+"[student_data]\r\n"+"Mastery_Score="+(gvf("cmi.completion_threshold",0.7)*100)+"\r\n"+"Max_Time_Allowed="+time12(gv("cmi.max_time_allowed"))+"\r\n"+"Time_Limit_Action="+gv("cmi.time_limit_action")+"\r\n"+"[student_demographics]\r\n"+"[student_preferences]\r\n"+"Audio="+gv("cmi.learner_preference.audio_level")+"\r\n"+"Language="+gv("cmi.learner_preference.language")+"\r\n"+"Speed="+gv("cmi.learner_preference.delivery_speed")+"\r\n"+"Text="+gv("cmi.learner_preference.audio_captioning")+"\r\n"+"";
};
function scormred_child_putparam(_107){
var api=window.lmsapi130;
if(api){
var ap2=new API_130_Over_AICC("","");
ap2.aicc_data=_107;
ap2.lastError="0";
ap2.diagnostic="ok";
ap2.initialized=true;
ap2.committed=false;
ap2._aicc_get_objectives_ids();
var ks=["suspend_data","location","completion_status","success_status","core.score.raw","core.score.min","core.score.max","session_time"];
for(var ik=0;ik<ks.length;++ik){
var k="cmi."+ks[ik];
api.SetValue(k,ap2.GetValue(k));
}
var n=ap2.GetValue("cmi.objectives._count");
if(isNaN(parseInt(n))){
n=0;
}
for(var io=0;io<n;++io){
var ks=["id","score.raw","score.max","score.min","score.scaled","completion_status","success_status"];
for(var ik=0;ik<ks.length;++ik){
var k="cmi.objectives."+io+"."+ks[ik];
api.SetValue(k,ap2.GetValue(k));
}
}
ks=["audio_level","language","delivery_speed","audio_captioning"];
for(var ik=0;ik<ks.length;++ik){
var k="cmi.learner_preference."+ks[ik];
api.SetValue(k,ap2.GetValue(k));
}
api.Commit("");
}
};
function scormred_child_exitau(){
var api=window.lmsapi130;
if(api){
api.Terminate("");
if(typeof window.unloadfunc=="function"){
Event.stopObserving(window,"unload",window.unloadfunc,false);
}
}
};

