data.cmi.scaled_passing_score = String(v); 
data.cmi.scaled_passing_score = v; 
function onItemDeliver(item) // onDeliver called from sequencing process (deliverSubProcess){		var url = item.href, v;	// create api if associated resouce is of adl:scormType=sco	if (item.sco)	{		// get data in cmi-1.3 format		var data = getAPI(item.foreignId);				// add ADL Request namespace data		data.adl = {nav : {request_valid: {}}};				/*obsolete		for (var k in controlState) 		{			data.adl.nav.request_valid[k.toLowerCase()] = String(controlState[k]);		}		*/		// TODO walk tocState items for adl.nav.request_valid.{target=ID} = ...				var validRequests=msequencer.mSeqTree.getValidRequests();		//for target IDs..do it as well				//we only set Continue, Previous and Choice according to specification		data.adl.nav.request_valid['continue']=String(validRequests['mContinue']);		data.adl.nav.request_valid['previous']=String(validRequests['mPrevious']);		var choice=validRequests['mChoice'];				for (var k in choice) {			//TODO set target			//data.adl.nav.request_valid['choice'].{k}=true;			//data.adl.nav.request_valid['choice'];		}				// add some global values for all sco's in package		data.cmi.learner_name = globalAct.learner_name;		data.cmi.learner_id = globalAct.learner_id;		data.cmi.cp_node_id = item.foreignId;		data.cmi.session_time = undefined;		data.cmi.completion_threshold = item.completionThreshold;		data.cmi.launch_data = item.dataFromLMS;		data.cmi.time_limit_action = item.timeLimitAction;		data.cmi.max_time_allowed = item.attemptAbsoluteDurationLimit;//		sclogdump(item.objectives["$"]);				//get shared objectie data and sync to CMI								//this works, but the implementation has to be checked (search for first primary?)		if (item.objectives) 		{			for (k in item.objectives) {				v=item.objectives[k];				if (v.primary==true) {			// REQ_74.3, compute scaled passing score from measure					if (v.satisfiedByMeasure && v.minNormalizedMeasure!==undefined) 					{						v = v.minNormalizedMeasure;					}					else if (v.satisfiedByMeasure) 					{						v = 1.0;					}					else 					{						v = undefined;					}					data.cmi.scaled_passing_score = String(v);					break; //we found the unique primary objective..so stop				}				}		}				// assign api for public use from sco- only for debug		pubAPI=data;				currentAPI = window[Runtime.apiname] = new Runtime(data, onCommit, onTerminate);	}	// deliver resource (sco)	// customize GUI		syncSharedCMI(item);			updateNav();	updateControls();		scoStartTime = currentTime();	//clear existing completion status in case of 2nd attempt	if (currentAPI) {		if (currentAPI.GetValueIntern("cmi.entry")!="resume") {    		err = currentAPI.SetValueIntern("cmi.completion_status","unknown");    		err = currentAPI.SetValueIntern("cmi.success_status","unknown");			err = currentAPI.SetValueIntern("suspend_data","ab-initio");		} 		//previous session has ended		if (item.exit=="time-out") {			//session has ended, reset times to defaults			err = currentAPI.SetValueIntern("cmi.session_time","PT0H0M0S");			err = currentAPI.SetValueIntern("cmi.total_time","PT0H0M0S");			}	}	setResource(item.id, item.href+"?"+item.parameters, this.config.package_url);	}
6251	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/6251/2eaa635aa2baea81cb1b9a000057296db56d3a99/main.js/clean/Modules/Scorm2004/scripts/main.js