2 M.mod_scormform.init = function(Y) {
3 var scormform = Y.one('#scormviewform');
4 var cwidth = scormplayerdata.cwidth;
5 var cheight = scormplayerdata.cheight;
6 var poptions = scormplayerdata.popupoptions;
7 var launch = scormplayerdata.launch;
8 var currentorg = scormplayerdata.currentorg;
9 var sco = scormplayerdata.sco;
10 var scorm = scormplayerdata.scorm;
11 var launch_url = M.cfg.wwwroot + "/mod/scorm/player.php?a=" + scorm + "¤torg=" + currentorg + "&scoid=" + sco + "&sesskey=" + M.cfg.sesskey + "&display=popup";
12 var course_url = scormplayerdata.courseurl;
15 poptions = poptions + ',resizable=yes'; // Added for IE (MDL-32506).
17 if ((cwidth == 100) && (cheight == 100)) {
18 poptions = poptions + ',width=' + screen.availWidth + ',height=' + screen.availHeight + ',left=0,top=0';
21 cwidth = Math.round(screen.availWidth * cwidth / 100);
24 cheight = Math.round(screen.availHeight * cheight / 100);
26 poptions = poptions + ',width=' + cwidth + ',height=' + cheight;
29 // Hide the form and toc if it exists - we don't want to allow multiple submissions when a window is open.
30 var scormload = function () {
35 var scormtoc = Y.one('#toc');
39 // Hide the intro and display a message to the user if the window is closed.
40 var scormintro = Y.one('#intro');
41 scormintro.setHTML('<a href="' + course_url + '">' + M.util.get_string('popuplaunched', 'scorm') + '</a>');
44 // When pop-up is closed return to course homepage.
45 var scormunload = function () {
46 // Onunload is called multiple times in the SCORM window - we only want to handle when it is actually closed.
47 setTimeout(function() {
49 window.location = course_url;
54 var scormredirect = function (winobj) {
55 Y.on('load', scormload, winobj);
56 Y.on('unload', scormunload, winobj);
57 // Check to make sure pop-up has been launched - if not display a warning,
58 // this shouldn't happen as the pop-up here is launched on user action but good to make sure.
59 setTimeout(function() {
61 var scormintro = Y.one('#intro');
62 scormintro.setHTML(M.util.get_string('popupsblocked', 'scorm'));
66 // Set mode and newattempt correctly.
67 var setlaunchoptions = function() {
68 var mode = Y.one('#scormviewform input[name=mode]:checked');
70 var modevalue = mode.get('value');
71 launch_url += '&mode=' + (modevalue ? modevalue : 'normal');
73 launch_url += '&mode=normal';
76 var newattempt = Y.one('#scormviewform #a');
77 launch_url += (newattempt && newattempt.get('checked') ? '&newattempt=on' : '');
82 winobj = window.open(launch_url,'Popup', poptions);
83 this.target = 'Popup';
84 scormredirect(winobj);
87 // Listen for view form submit and generate popup on user interaction.
89 Y.on('submit', function(e) {
91 winobj = window.open(launch_url, 'Popup', poptions);
92 this.target = 'Popup';
93 scormredirect(winobj);