Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <html >
- <head>
- <meta http-equiv="X-UA-Compatible" content="IE=edge" />
- <title>GradPoint Player</title>
- <link rel="shortcut icon" type="image/vnd.microsoft.icon" href="/favicon.ico" /><link rel="stylesheet" type="text/css" href="/Scripts/ext-3.0.0-2/resources/css/ext-all.css" /><link rel="stylesheet" type="text/css" href="/Styles_vv1D19A9336C1DE00.css" /><link rel="stylesheet" type="text/css" href="/StylesOld_vv1D19A9336C1DE00.css" /><!--[if IE 6]><link rel="stylesheet" type="text/css" href="/IE6Styles.css" /><![endif]--><link rel="stylesheet" type="text/css" href="/resource/2199893/web/styles.css" /><script type="text/javascript" src="/Scripts/ext-3.0.0-2/ext-comb14.js"></script><script type="text/javascript" src="/Scripts/ext-3.0.0-2/locale/ext-lang-en.js"></script><script type="text/javascript">Ext.BLANK_IMAGE_URL = '/p';Ext.chart.Chart.CHART_URL='/Scripts/ext-3.0.0-2/resources/charts.swf';</script><script type="text/javascript">function convertLocalTimeToUtcDateTime(date){return new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds());}</script><script type="text/javascript" language="javascript" src="/Scripts/easyXDM-2.4.12.108/easyXDM.min.js"></script><script type="text/javascript" language="javascript">easyXDM.DomHelper.requiresJSON("/Scripts/easyXDM-2.4.12.108/json2.js");</script>
- <script type="text/javascript" language="javascript">
- var Privileges={None:0,Participate:1,CreateDomain:16,ReadDomain:32,UpdateDomain:64,DeleteDomain:128,CreateUser:256,ReadUser:512,UpdateUser:1024,DeleteUser:2048,CreateCourse:65536,ReadCourse:131072,UpdateCourse:262144,DeleteCourse:524288,CreateSection:1048576,ReadSection:2097152,UpdateSection:4194304,DeleteSection:8388608,GradeAssignment:16777216,GradeForum:33554432,GradeExam:67108864,SetupGradebook:134217728,ControlDomain:268435456,ControlCourse:536870912,ControlSection:1073741824,ReadGradebook:2147483648,ReportDomain:4294967296,ReportCourse:8589934592,ReportSection:17179869184,PostDomainAnnouncements:34359738368,Proxy:68719476736,ReportUser:274877906944,SubmitFinalGrade:549755813888,ControlEnrollment:1099511627776,ReadEnrollment:2199023255552,ReadCourseFull:4398046511104,ControlUser:8796093022208,ReadObjective:17592186044416,UpdateObjective:35184372088832,ReadCredits:70368744177664,UpdateCredits:140737488355328,ManageLicense:281474976710656,All:-1};
- //FrameApi = function(config) {
- // // call parent constructor
- // FrameApi.superclass.constructor.call(this, config);
- //};
- FrameApi = Ext.extend(Ext.util.Observable, {
- /*********Helper methods********/
- constructor: function (config) {
- Ext.apply(this, config);
- this.addEvents(
- 'componentstatechanged',
- 'contentstatechanged',
- 'currentenrollmentchanged',
- 'helprequested',
- 'actionregistered',
- 'vieweropening',
- 'viewerclosed',
- 'editoropening',
- 'editorclosed',
- 'groupsetupopening',
- 'groupsetupclosed',
- 'jswindowopening',
- 'jswindowclosed',
- 'componentsaverequested',
- 'componentsaved',
- 'componentcancelled'
- );
- this.listeners = config.listeners;
- this.componentStates = new Ext.util.MixedCollection();
- this.componentMethods = new Ext.util.MixedCollection();
- this.contentState = {};
- this.actionListeners = new Ext.util.MixedCollection();
- this.enrollmentCache = new Ext.util.MixedCollection();
- FrameApi.superclass.constructor.call(this, config);
- this.on('closegroupsetupwindow', function (o) {
- this.groupEditorClosed(o);
- }, this);
- // this.on('componentsaved', function(type, id, o) {
- // alert('componentsaved:' + type + ',' + id + ',' + o);
- // }, this);
- // this.on('componentcancelled', function(type, id, o) {
- // alert('componentcancelled:' + type + ',' + id + ',' + o);
- // }, this);
- //Override the navToItem function so that links popup in grading (and other) windows that have inline course links
- if(typeof(navToItem) == 'undefined') {
- navToItem = function (itemId) {
- var courseId = FRAME_API.contentState.courseId;
- if(!Ext.isEmpty(courseId)) {
- var url = '%24APPROOT%24/Component/ActivityPlayer?courseid=' + FRAME_API.contentState.courseId + '&itemid=' + encodeURIComponent(itemId);
- window.open(String.escape(url), '', 'scrollbars, resizable, menubar, width=860, height=600');
- }
- }
- }
- },
- findParentApi: function (win) {
- if (win.parent != win) {
- // locate the API:
- try {
- if (win.parent.FRAME_API != null) {
- // try in this window
- return win.parent.FRAME_API;
- }
- }
- catch (e) { }
- // try parent
- return this.findParentApi(win.parent);
- }
- // else give up
- return null;
- },
- init: function (timeToLive) {
- this.recoverPingInterval = null;
- this.recoverPingCount = 0;
- timeToLive = timeToLive || 15;
- this.recoverPingMax = timeToLive;
- setInterval(this.pingServer.createDelegate(this), (timeToLive * 1000 * 28));
- if (Ext.isIE) {
- document.onfocusin = this.pingServer.createDelegate(this);
- }
- else {
- window.onfocus = this.pingServer.createDelegate(this);
- }
- if(this.viewAda) {
- Ext.getBody().addClass('ada-color');
- }
- this.loginWindow = null;
- try {
- //Do not call noConflict, as that kills the SameOrigin case
- this.easyXDM = easyXDM;//.noConflict('FrameAPI');
- this.rpc = new this.easyXDM.Rpc({},
- {
- local: {
- addListeners: function(events, successFn, errorFn){
- if(!Ext.isEmpty(events)) {
- if(typeof(events) == 'string') {
- events = events.split('|');
- }
- for(var i=0; i<events.length; i++) {
- FRAME_API.addListener(events[i], FRAME_API.rpc.onEvent.createDelegate(FRAME_API, [events[i]], 0));
- }
- }
- },
- setShowBeforeUnloadPrompts: function(val) {
- FRAME_API.setShowBeforeUnloadPrompts(val);
- },
- fireEvent: function(eventName, args) {
- return FRAME_API.fireEvent(eventName, args);
- },
- saveComponent: function(componentType, id) {
- return FRAME_API.saveComponent(componentType, id);
- },
- navigate: function(url) {
- FRAME_API.navigate(url);
- },
- getComponentState: function(componentType, id) {
- return FRAME_API.getComponentState(componentType, id);
- },
- callComponentMethod: function(componentType, id, name, args) {
- return FRAME_API.callComponentMethod(componentType, id, name, args);
- },
- getProperties: function() {
- return {
- adminUrl: FRAME_API.adminUrl,
- appVersion: FRAME_API.appVersion,
- appRoot: FRAME_API.appRoot,
- authenticated: FRAME_API.authenticated,
- canProxy: FRAME_API.canProxy,
- canTeachACourse: FRAME_API.canTeachACourse,
- catalogEntries: FRAME_API.catalogEntries,
- contentState: FRAME_API.contentState,
- currentEnrollment: FRAME_API.currentEnrollment,
- enrollments: FRAME_API.enrollments,
- domainId: FRAME_API.domainId,
- domainName: FRAME_API.domainName,
- frameResourceRoot: FRAME_API.frameResourceRoot,
- frameRoot: FRAME_API.frameRoot,
- isAdmin: FRAME_API.isAdmin,
- isProxy: FRAME_API.isProxy,
- menuEntries: FRAME_API.menuEntries,
- proxyUserId: FRAME_API.proxyUserId,
- resourceRoot: FRAME_API.resourceRoot,
- rights: FRAME_API.rights,
- roles: FRAME_API.roles,
- userId: FRAME_API.userId,
- userDisplay: FRAME_API.userDisplay,
- username: FRAME_API.username,
- userspace: FRAME_API.userspace,
- proxyUsername: FRAME_API.proxyUsername,
- proxyUserspace: FRAME_API.proxyUserspace
- };
- },
- hasRight: function(right, rights) {
- return FRAME_API.hasRight(right, rights);
- }
- },
- remote: {
- //Called so the containing frame can initialize event listeners, etc.
- init:{},
- onEvent:{}
- }
- });
- this.rpc.init();
- }
- catch(e) {
- }
- },
- pingServer: function () {
- if (!this.noforceRelogin) {
- Ext.Ajax.request({
- url: this.appRoot + "/ping",
- params: { checkuserid: FRAME_API.userId, proxyuserid: (!Ext.isEmpty(FRAME_API.proxyUserId) && FRAME_API.proxyUserId != FRAME_API.userId) ? FRAME_API.proxyUserId : '' },
- scope: this,
- success: function (response) {
- var result = eval("(" + response.responseText + ")");
- if (!result.authenticated) {
- this.displayModalPopup();
- }
- else {
- if (this.loginWindow) {
- this.loginWindow.close();
- this.loginWindow.destroy();
- this.loginWindow = null;
- }
- this.clearRecoverPing(true);
- }
- },
- failure: function (response) {
- this.displayModalPopup();
- if (this.recoverPingInterval == null && this.recoverPingCount <= 0) {
- this.recoverPingInterval = setInterval(this.recoverPingServer.createDelegate(this), 1000 * 60);
- }
- }
- });
- }
- else {
- Ext.Ajax.request({
- url: this.appRoot + "/ping",
- scope: this,
- success: function (response) {
- var result = eval("(" + response.responseText + ")");
- if (!result.authenticated)
- this.statusDisplay.updateStatus(this.getPingText(this.I18N.notLoggedIn));
- else
- this.statusDisplay.hide();
- },
- failure: function (response) {
- this.statusDisplay.updateStatus(this.getPingText(this.I18N.notConnected));
- }
- });
- }
- },
- getPingText: function (text) {
- return String.format(text, ['<a href="#" onclick="FRAME_API.statusDisplay.hide(); window.open(\'',
- this.appRoot, '/Login.vp/page.htm?ReturnUrl=',
- this.appRoot, '/Close\',\'LoginWindow\',\'width=800, height=600, scrollbars=yes\'); return false;">',
- this.I18N.login, '</a>'].join(''))
- },
- displayModalPopup: function () {
- if (this.loginWindow == null) {
- var passwordField = new Ext.form.TextField({
- xtype: 'textfield',
- id: 'txtpassword',
- inputType: 'password',
- allowBlank: false,
- hideLabel: true,
- cls: 'default_font',
- scope: this,
- blankText: this.I18N.passwordRequired,
- hidden: this.isSSO,
- listeners: {
- specialkey: function (field, e) {
- var key = e.getKey();
- if (key == Ext.EventObject.ENTER) {
- Ext.get('loginOK').dom.click();
- }
- }
- }
- });
- this.loginWindow = new Ext.Window({
- title: this.I18N.login,
- layout: 'form',
- width: 500,
- autoHeight: true,
- bodyCls: 'default_font',
- bodyStyle: 'padding: 10px 10px 25px 10px;',
- closeAction: 'hide',
- modal: true,
- resizable: false,
- shadow: false,
- closable: false,
- defaultButton: 'loginOK',
- items: [{
- xtype: 'label',
- html: String.format(this.I18N.connectionErrorMessage, FRAME_API.userDisplay, Ext.isEmpty(FRAME_API.proxyUsername) ? FRAME_API.username : FRAME_API.proxyUsername),
- forId: "txtpassword",
- cls: 'default_font'
- },
- passwordField, {
- xtype: 'label',
- id: "lblError",
- cls: 'default_font modalPopup-login-error'
- }, {
- xtype: 'label',
- hidden: false,
- html: '<iframe id="ssoiframe" name="ssoiframe" style="width:100%;height:200px;overflow:auto;display:none;"></iframe>'
- }],
- buttons: [{ xtype: 'tbfill' }, {
- text: this.I18N.login,
- id: 'loginOK',
- scope: this,
- handler: this.clickLoginOK
- }]
- });
- this.loginWindow.show();
- }
- },
- clickLoginOK: function () {
- if (this.isSSO) {
- try {
- this.setTimezoneInfoModel();
- var returnUrl = this.absoluteAppRoot + '/SSODone.aspx?DlapCookie=%TOKEN%&mode=login&userid=' + this.userId + '&puserid=' + this.proxyUserId + '&standardOffset=' + this.standardOffset + '&daylightOffset=' + this.daylightOffset + '&standardStartTime=' + this.standardStartTime + '&daylightStartTime=' + this.daylightStartTime;
- var iframeSrc = this.dlapUrl + '/SSOLogin' + '?domainid=' + encodeURIComponent(this.domainId) + '&url=' + encodeURIComponent(returnUrl) + '&token=' + encodeURIComponent(this.dlaptoken);
- document.getElementById('ssoiframe').src = iframeSrc;
- Ext.get(document.getElementById('ssoiframe')).show();
- }
- catch (e) {
- Ext.get(document.getElementById('ssoiframe')).setVisibilityMode(Ext.Element.DISPLAY).hide();
- if (e && e.message) {
- Ext.getCmp("lblError").setText(e.message);
- }
- else {
- Ext.getCmp("lblError").setText(this.I18N.unknownError);
- }
- if (this.loginWindow) {
- this.loginWindow.doLayout();
- }
- }
- }
- else if (Ext.getCmp('txtpassword').isValid()) {
- //reset the error label
- Ext.getCmp("lblError").setText('');
- this.setTimezoneInfoModel();
- var requestUserName = FRAME_API.username;
- if (!Ext.isEmpty(FRAME_API.proxyUsername)) {
- requestUserName = FRAME_API.proxyUserspace + '/' + FRAME_API.proxyUsername + '/' + FRAME_API.userspace + '/' + FRAME_API.username;
- }
- else if (!Ext.isEmpty(FRAME_API.userspace)) {
- requestUserName = FRAME_API.userspace + '/' + FRAME_API.username;
- }
- else {
- requestUserName = FRAME_API.username;
- }
- Ext.Ajax.request({
- params: {
- username: requestUserName,
- password: Ext.get('txtpassword').getValue(),
- standardOffset: this.standardOffset,
- daylightOffset: this.daylightOffset,
- standardStartTime: this.standardStartTime,
- daylightStartTime: this.daylightStartTime
- },
- url: FRAME_API.appRoot + '/Controls/CredentialsUI.ashx?modalPopup=true',
- method: 'POST',
- scope: this,
- callback: this.modalLoginCompleted
- });
- }
- },
- clickLoginDifferentUser: function(){
- if (this.isSSO) {
- try {
- var returnUrl = this.absoluteAppRoot + '/SSODone.aspx?mode=logout';
- var iframeSrc = this.dlapUrl + '/SSOLogout' + '?domainid=' + encodeURIComponent(this.domainId) + '&url=' + encodeURIComponent(returnUrl);
- document.getElementById('ssoiframe').src = iframeSrc;
- Ext.get(document.getElementById('ssoiframe')).show();
- }
- catch (e) {
- Ext.get(document.getElementById('ssoiframe')).setVisibilityMode(Ext.Element.DISPLAY).hide();
- if (e && e.message) {
- Ext.getCmp("lblError").setText(e.message);
- }
- else {
- Ext.getCmp("lblError").setText(this.I18N.unknownError);
- }
- if (this.loginWindow) {
- this.loginWindow.doLayout();
- }
- }
- }
- else {
- FRAME_API.logout();
- }
- },
- ssoComplete: function(success, mode, error){
- if (success) {
- if (this.loginWindow) {
- this.loginWindow.close();
- this.loginWindow.destroy();
- this.loginWindow = null;
- }
- this.clearRecoverPing(true);
- if (mode == 'logout') {
- FRAME_API.logout();
- }
- }
- else {
- Ext.get(document.getElementById('ssoiframe')).setVisibilityMode(Ext.Element.DISPLAY).hide();
- Ext.getCmp("lblError").setText(!Ext.isEmpty(error) ? error : this.I18N.unknownError);
- if (this.loginWindow) {
- this.loginWindow.doLayout();
- }
- }
- },
- modalLoginCompleted: function (options, success, response) {
- if (response && !Ext.isEmpty(response.responseText)) {
- if (success && response.responseText == "OK") {
- if (this.loginWindow) {
- this.loginWindow.close();
- this.loginWindow.destroy();
- this.loginWindow = null;
- }
- this.clearRecoverPing(true);
- }
- else {
- Ext.getCmp("lblError").setText(response.responseText);
- }
- }
- else {
- Ext.getCmp("lblError").setText(this.I18N.unknownError);
- }
- },
- recoverPingServer: function () {
- if (!this.noforceRelogin) {
- if (this.recoverPingCount >= this.recoverPingMax) {
- this.clearRecoverPing(false);
- }
- else {
- this.recoverPingCount++;
- this.pingServer();
- }
- }
- },
- clearRecoverPing: function(resetCount) {
- if (this.recoverPingInterval != null) {
- clearInterval(this.recoverPingInterval);
- this.recoverPingInterval = null;
- }
- if (resetCount){
- this.recoverPingCount = 0;
- }
- },
- TimeZoneInfo: function () { var year = new Date().getFullYear(); var beginDate = new Date(year, 0, 1, 0, 0, 0, 0); var begin = beginDate.getTime(); var end = new Date(year, 11, 31, 23, 59, 59, 999).getTime(); var currentOffset = beginDate.getTimezoneOffset(); this.standardOffset = currentOffset; this.daylightOffset = null; this.daylightStartTime = null; this.standardStartTime = null; for (var day = begin; day < end; day += 86400000) { var testDay = new Date(day); if (currentOffset != testDay.getTimezoneOffset()) { for (var hour = day - 86400000; hour < day; hour += 3600000) { var testHour = new Date(hour); if (currentOffset != testHour.getTimezoneOffset()) { for (var minute = hour - 3600000; minute < hour; minute += 60000) { var testMinute = new Date(minute); if (currentOffset != testMinute.getTimezoneOffset()) { if (currentOffset > testMinute.getTimezoneOffset()) { this.daylightStartTime = testMinute; this.daylightOffset = testMinute.getTimezoneOffset(); this.standardOffset = currentOffset; } else { this.standardStartTime = testMinute; this.standardOffset = testMinute.getTimezoneOffset(); this.daylightOffset = currentOffset; } currentOffset = testDay.getTimezoneOffset(); } } } } } } },
- setTimezoneInfoModel: function () {
- var DateToJson = function (date) { var f = function f(n) { return n < 10 ? '0' + n : n; }; return isFinite(date.valueOf()) ? date.getUTCFullYear() + '-' + f(date.getUTCMonth() + 1) + '-' + f(date.getUTCDate()) + 'T' + f(date.getUTCHours()) + ':' + f(date.getUTCMinutes()) + ':' + f(date.getUTCSeconds()) + 'Z' : null; };
- var zone = new this.TimeZoneInfo();
- this.standardOffset = zone.standardOffset;
- if (zone.daylightOffset) {
- this.daylightOffset = zone.daylightOffset;
- this.standardStartTime = DateToJson(zone.standardStartTime);
- this.daylightStartTime = DateToJson(zone.daylightStartTime);
- }
- },
- statusDisplay: function () {
- var msgCt;
- var message;
- var currentText = "";
- function createBox(text) {
- return ['<div class="gradebook_statusdisplay highlight_color" >', text, '</div>'].join('');
- }
- return {
- updateStatus: function (text) {
- currentText = text;
- if (!msgCt) {
- msgCt = Ext.DomHelper.append(document.body, { id: 'msg-div', style: "position:absolute;z-index:20001" }, true);
- }
- var slideIn = false;
- if (!message) {
- message = Ext.DomHelper.append(msgCt, { html: createBox(text) }, true);
- slideIn = true;
- msgCt.alignTo(document, 't-t');
- }
- else {
- message.update(createBox(text));
- msgCt.alignTo(document, 't-t');
- message.frame();
- }
- if (slideIn) message.slideIn('t');
- },
- hide: function () {
- currentText = "";
- if (message) {
- message.ghost("t", { remove: true });
- message = null;
- }
- },
- getText: function () {
- return currentText;
- }
- };
- } (),
- checkViewClose: function (frame, win) {
- frame.un('load', this.checkViewClose);
- if (frame.dom.contentWindow.location.href == 'about:blank') {
- win.hide();
- }
- },
- resizeViewWindow: function () {
- if (this.viewWindow == null) return;
- if (this.viewWindow.hidden) return;
- var pageSizeObj = Ext.get(document.body).getSize();
- this.viewWindow.setSize(pageSizeObj.width - 64, pageSizeObj.height - 64);
- },
- resizeEditWindow: function () {
- if (this.editWindow == null) return;
- if (this.editWindow.hidden) return;
- var pageSizeObj = Ext.get(document.body).getSize();
- this.editWindow.setSize(pageSizeObj.width - 32, pageSizeObj.height - 24);
- },
- resizeGroupEditWindow: function () {
- if (this.groupEditorWindow == null) return;
- if (this.groupEditorWindow.hidden) return;
- var pageSizeObj = Ext.get(document.body).getSize();
- this.groupEditorWindow.setSize(pageSizeObj.width - 32, pageSizeObj.height - 24);
- },
- editorClosed: function (o) {
- if (typeof o == 'boolean') {
- o = { refreshAll: o };
- }
- if (this.editWindow && this.editWindow.isVisible()) {
- this.editWindow.hide();
- }
- this.fireEvent('editorclosed', o);
- this.fireEvent('jswindowclosed');
- },
- groupEditorClosed: function (o) {
- if (this.groupEditorWindow && this.groupEditorWindow.isVisible()) {
- this.groupEditorWindow.hide();
- }
- this.fireEvent('groupsetupclosed', o);
- this.fireEvent('jswindowclosed');
- },
- /*********Public methods********/
- hasRight: function (right, flags) {
- flags = flags || this.rights;
- flags = flags * 1.0;
- if (flags == -1 || flags == -2) {
- flags = 0xffffff0ff0;
- }
- if (right >= 0x100000000) {
- var flagsHigher = Math.floor(flags / 0x100000000);
- var rightHigher = Math.floor(right / 0x100000000);
- return (rightHigher & flagsHigher) ? true : false;
- }
- else {
- return (right & flags) ? true : false;
- }
- },
- executeCommand: function (cmd, params, options) {
- Ext.Ajax.request(Ext.apply(options, {
- url: this.adminUrl,
- params: Ext.apply(params || {}, {
- cmd: cmd
- }),
- userCallback: options.callback,
- userScope: options.scope,
- scope: this,
- callback: null,
- success: function (response, options) {
- if(!options) {
- options = response.request.options;
- }
- if (options.userCallback) {
- var success = true;
- var details = [];
- var responses = response.responseXML.getElementsByTagName('response');
- if (Ext.isEmpty(responses)) {
- success = false;
- }
- else {
- for (var i = 0; i < responses.length; i++) {
- var detail = {
- code: responses[i].getAttribute('code'),
- message: responses[i].getAttribute('message'),
- detailedMessage: responses[i].textContent
- };
- details.push(detail);
- if (detail.code != 'OK') {
- success = false;
- }
- }
- }
- response.details = details;
- options.userCallback.call(options.userScope || this, options, success, response);
- }
- },
- failure: function (response, options) {
- if(!options) {
- options = response.request.options;
- }
- if (options.userCallback) {
- options.userCallback.call(options.userScope || this, options, false, response);
- }
- }
- }));
- },
- findEnrollment: function (enrollmentId) {
- for (var i = 0; i < this.enrollments.length; i++) {
- var enrollment = this.enrollments[i];
- if (!Ext.isEmpty(enrollment.id) && enrollment.id == enrollmentId) {
- return enrollment;
- }
- }
- if (this.enrollmentCache.containsKey(enrollmentId)) {
- return this.enrollmentCache.get(enrollmentId);
- }
- return null;
- },
- setComponentMethod: function(componentType, id, name, fn, scope) {
- if(Ext.isEmpty(name) || Ext.isEmpty(componentType) || Ext.isEmpty(id) || typeof(fn) != 'function') {
- return;
- }
- componentType = componentType.toLowerCase();
- id = id.toLowerCase();
- name = name.toLowerCase();
- var key = componentType + '|' + id + '|' + name;
- //Update the hash of component properties
- this.componentMethods.replace(key, { fn: fn, scope: scope });
- },
- callComponentMethod: function(componentType, id, name, args) {
- if(Ext.isEmpty(name) || Ext.isEmpty(componentType) || Ext.isEmpty(id)) {
- return;
- }
- componentType = componentType.toLowerCase();
- id = id.toLowerCase();
- name = name.toLowerCase();
- var key = componentType + '|' + id + '|' + name;
- if (!this.componentMethods.containsKey(componentType)) {
- var obj = this.componentMethods.get(key);
- return obj.fn.apply(obj.scope || this, args);
- }
- },
- setComponentState: function (componentType, id, o) {
- componentType = componentType || '';
- id = id || '';
- o = o || {};
- //Update the hash of component properties
- componentType = componentType.toLowerCase();
- id = id.toLowerCase();
- if (!this.componentStates.containsKey(componentType)) {
- this.componentStates.add(componentType, new Ext.util.MixedCollection());
- }
- var stateList = this.componentStates.get(componentType);
- if (stateList.containsKey(id)) {
- o = Ext.apply(stateList.get(id), o);
- }
- stateList.replace(id, o);
- //Update the main content properties
- if (id == 'framecontent') {
- this.contentState = o;
- this.contentState.type = componentType;
- if (!Ext.isEmpty(o.enrollmentId) &&
- (this.currentEnrollment == null || this.currentEnrollment.id != o.enrollmentId)) {
- if (this.enrollmentCache.containsKey(o.enrollmentId)) {
- this.currentEnrollment = this.enrollmentCache.get(o.enrollmentId);
- this.fireEvent('currentenrollmentchanged', this.currentEnrollment);
- }
- else {
- Ext.Ajax.request({
- url: this.appRoot + "/FrameHelper.ashx",
- params: {
- cmd: 'getenrollment',
- enrollmentid: o.enrollmentId
- },
- scope: this,
- callback: function (options, success, response) {
- if (success && !Ext.isEmpty(response.responseText)) {
- this.currentEnrollment = Ext.util.JSON.decode(response.responseText);
- this.enrollmentCache.replace(o.enrollmentId, this.currentEnrollment);
- if (this.currentEnrollment.id != o.enrollmentId) {
- this.enrollmentCache.replace(this.currentEnrollment.id, this.currentEnrollment);
- }
- this.fireEvent('currentenrollmentchanged', this.currentEnrollment);
- }
- }
- });
- }
- }
- this.fireEvent('contentstatechanged', this.contentState);
- }
- //Fire the event for this component
- this.fireEvent('componentstatechanged', componentType, id, o);
- },
- getComponentState: function (componentType, id) {
- componentType = componentType.toLowerCase();
- id = id.toLowerCase();
- var o = null;
- if (this.componentStates.containsKey(componentType)) {
- var stateList = this.componentStates.get(componentType);
- if (stateList.containsKey(id)) {
- o = stateList.get(id);
- }
- }
- return o;
- },
- registerAction: function (componentType, id, action, f, scope) {
- //Update the hash of component properties
- componentType = componentType.toLowerCase();
- id = id.toLowerCase();
- action = action.toLowerCase();
- if (id == 'framecontent') {
- this.actionListeners.replace(action, { handler: f, scope: scope });
- this.fireEvent('actionregistered', action, f, scope);
- }
- },
- getRegisteredActions: function () {
- var list = [];
- this.actionListeners.eachKey(function (key, item) {
- list.push(Ext.apply(item, { action: key }));
- }, this);
- return list;
- },
- setShowBeforeUnloadPrompts: function(val) {
- this.showBeforeUnloadPrompts = val;
- },
- addEvent: function (name) {
- this.addEvents(name);
- },
- logout: function (returnUrl) {
- this.fireEvent('beforelogout');
- var url = this.appRoot + '/SignOff.ashx';
- if(returnUrl) {
- url += '?ReturnUrl=' + encodeURIComponent(returnUrl);
- }
- // Ensure the player frame has had a chance to unload, and allow SCOs to save their data, record time spent, etc.
- setTimeout(function () {
- window.location = url;
- }, 1000);
- },
- proxy: function (name) {
- this.navigate('/Component/Proxy?proxy=' + encodeURIComponent(name));
- },
- unproxy: function () {
- this.navigate('/Component/Proxy');
- },
- navigate: function (url) {
- window.location = this.frameRoot + url;
- },
- saveComponent: function(componentType, id) {
- componentType = componentType.toLowerCase();
- id = id.toLowerCase();
- return this.fireEvent('componentsaverequested', componentType, id);
- },
- launchHelp: function (token) {
- if (this.hasListener('helprequested')) {
- this.fireEvent('helprequested', token);
- }
- else {
- if (Ext.isEmpty(token)) {
- token = 'root';
- var o = this.contentState;
- if (o != null && !Ext.isEmpty(o.helpToken)) {
- token = o.helpToken;
- }
- }
- window.open(this.helpRoot + token, 'bhHelp', 'scrollbars, resizable, toolbar, width=950, height=600');
- }
- },
- viewItem: function (enrollmentId, itemId, title, params) {
- if (this.viewWindow == null) {
- var pageSizeObj = Ext.get(document.body).getSize();
- this.viewWindow = new Ext.Window({
- width: pageSizeObj.width - 64,
- height: pageSizeObj.height - 64,
- layout: 'fit',
- plain: false,
- buttonAlign: 'center',
- shim: true,
- x: 32,
- y: 32,
- modal: true,
- frame: true,
- closable: true,
- closeAction: "hide",
- resizable: true,
- draggable: true,
- listeners: {
- beforehide: function () {
- var frame = this.viewFrame.el.child('iframe', false);
- if (frame.dom.contentWindow.location.href != 'about:blank') {
- frame.on('load', this.checkViewClose.createDelegate(this, [frame, this.viewWindow], false));
- frame.dom.contentWindow.location.replace('about:blank');
- return false;
- }
- return true;
- },
- hide: function () {
- this.fireEvent('viewerclosed');
- this.fireEvent('jswindowclosed');
- },
- scope: this
- }
- });
- }
- else {
- this.viewWindow.remove(this.viewFrame, true);
- }
- var url = this.appRoot + '/Component/ActivityPlayer?id=frameviewitem&showheader=false&enrollmentid=' + enrollmentId + '&itemid=' + itemId;
- if (params != null) {
- for (prop in params) {
- url += '&' + prop + '=' + params[prop];
- }
- }
- this.viewFrame = new Ext.Panel({
- layout: 'fit',
- //autoScroll: true,
- monitorResize: true,
- html: '<iframe class="x-panel-body page_color default_font" style="width:100%;height:100%;" frameborder="0" src="' + url + '" title="' + this.I18N.ItemViewerFrame + '"></iframe>'
- });
- this.viewWindow.add(this.viewFrame);
- this.fireEvent('jswindowopening');
- this.fireEvent('vieweropening');
- this.viewWindow.show();
- this.viewWindow.setTitle(Ext.util.Format.htmlEncode(title));
- this.resizeViewWindow();
- Ext.EventManager.onWindowResize(this.resizeViewWindow, this);
- return false;
- },
- editItem: function (enrollmentId, itemId, title, params) {
- var pageSizeObj = Ext.get(document.body).getSize();
- if (this.editWindow == null) {
- this.editWindow = new Ext.Window({
- width: pageSizeObj.width - 32,
- height: pageSizeObj.height - 24,
- layout: 'fit',
- plain: false,
- buttonAlign: 'center',
- shim: true,
- x: 16,
- y: 4,
- modal: true,
- frame: true,
- closable: false,
- closeAction: "hide",
- resizable: true,
- constrain: true,
- draggable: true
- });
- }
- else {
- this.editWindow.remove(this.editFrame, true);
- this.editFrame = null;
- }
- var url = this.appRoot + "/Component/ItemEditor?id=FrameItemEditor&closable=true&enrollmentid=" + enrollmentId + '&itemid=' + itemId;
- if (params != null) {
- for (prop in params) {
- url += '&' + prop + '=' + params[prop];
- }
- }
- this.editFrame = new Ext.Panel({
- xtype: 'panel',
- layout: 'fit',
- //autoScroll: true,
- monitorResize: true,
- id: 'hdEditFrame',
- html: '<iframe class="x-panel-body page_color default_font" style="width:100%;height:100%;" frameborder="0" src="' + url + '" title="' + this.I18N.ItemEditorFrame + '"></iframe>'
- });
- this.editWindow.add(this.editFrame);
- this.fireEvent('jswindowopening');
- this.fireEvent('editoropening');
- this.editWindow.show();
- this.editWindow.setTitle(Ext.util.Format.htmlEncode(title));
- this.resizeEditWindow();
- Ext.EventManager.onWindowResize(this.resizeEditWindow, this);
- },
- editGroupSet: function (enrollmentId, setId, title, params) {
- var pageSizeObj = Ext.get(document.body).getSize();
- if (this.groupEditorWindow == null) {
- this.groupEditorWindow = new Ext.Window({
- width: pageSizeObj.width - 32,
- height: pageSizeObj.height - 24,
- layout: 'fit',
- plain: false,
- buttonAlign: 'center',
- shim: true,
- x: 16,
- y: 4,
- modal: true,
- frame: true,
- closable: false,
- closeAction: "hide",
- resizable: true,
- constrain: true,
- draggable: true
- });
- }
- else {
- this.groupEditorWindow.remove(this.groupEditorFrame, true);
- this.groupEditorFrame = null;
- }
- var url = this.appRoot + "/Component/GroupSetup?enrollmentId=" + enrollmentId + '&setid=' + setId;
- if (params != null) {
- for (prop in params) {
- url += '&' + prop + '=' + params[prop];
- }
- }
- this.groupEditorFrame = new Ext.Panel({
- xtype: 'panel',
- layout: 'fit',
- //autoScroll: true,
- monitorResize: true,
- id: 'hdGroupEditFrame',
- html: '<iframe class="x-panel-body page_color default_font" style="width:100%;height:100%;" frameborder="0" src="' + url + '" title="' + this.I18N.GroupSetupFrame + '"></iframe>'
- });
- this.groupEditorWindow.add(this.groupEditorFrame);
- this.fireEvent('jswindowopening');
- this.fireEvent('groupsetupopening');
- this.groupEditorWindow.show();
- this.groupEditorWindow.setTitle(title);
- this.resizeGroupEditWindow();
- Ext.EventManager.onWindowResize(this.resizeGroupEditWindow, this);
- },
- sendEmail: function (enrollmentId) {
- var height = Math.min(400, screen.height);
- var width = Math.min(600, screen.width);
- var features = 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,height=' + height + ',width=' + width;
- var contextQuery = '';
- var newWindow = window.open(this.appRoot + "/Learn/Email.aspx?appendcontext=1&enrollmentid=" + enrollmentId + contextQuery, "", features);
- newWindow.focus();
- return false;
- },
- launchConferencing: function () {
- var height = Math.min(600, screen.height);
- var width = Math.min(800, screen.width);
- var features = 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,height=' + height + ',width=' + width;
- var newWindow = window.open(this.appRoot + "/CommCenter", "communications_center", features);
- newWindow.focus();
- return false;
- },
- fireEvent: function () {
- var args, name;
- name = arguments[0], args = 2 <= arguments.length ? [].slice.call(arguments, 1) : [];
- // Allow component hosted in an iframe to listen to the messages
- if (window.parent && (window !== window.parent)) {
- window.parent.postMessage({ eventName: name, args: args }, '*');
- }
- FrameApi.superclass.fireEvent.apply(this, arguments);
- }
- });
- FRAME_API = new FrameApi({
- appVersion: '2016.4.1326',
- appVersionMode: 'Latest',
- authenticated: true,
- appRoot: '',
- frameRoot: '/Frame',
- resourceRoot: '/Resource/2199893',
- frameResourceRoot: '/Frame/Resource/2199893',
- adminUrl: '/Admin/Admin.ashx',
- domainId: '2199893',
- domainName: 'Cary High School',
- userId: '5390010',
- proxyUserId: '5390010',
- proxyUsername: '',
- proxyUserspace: '',
- isProxy: false,
- userspace: 'wcps6429-caryhs-ccl',
- username: '1266784',
- userDisplay: 'Cory McKeel',
- rights: 4398046642176,
- roles: [{ entityType: 'D', name: 'Administrator', privileges: 17454747029344},{ entityType: 'D', name: 'Registrar', privileges: 17402922665760},{ entityType: 'D', name: 'Teacher - Author', privileges: 8319082628864},{ entityType: 'D', name: 'Teacher', privileges: 7767992698624},{ entityType: 'C', name: 'Administrator', privileges: 4950739255296},{ entityType: 'C', name: 'Teacher - Author', privileges: 4950738731008},{ entityType: 'C', name: 'Teacher', privileges: 4950738468864},{ entityType: 'C', name: 'Student', privileges: 131073},{ entityType: 'S', name: 'Administrator', privileges: 4950739255296},{ entityType: 'S', name: 'Teacher - Author', privileges: 4950738731008},{ entityType: 'S', name: 'Teacher', privileges: 4950201597952},{ entityType: 'S', name: 'Student', privileges: 131073}],
- isAdmin: false,
- canConference: false,
- canProxy: false,
- canTeachACourse: false,
- currentEnrollment: null,
- helpRoot: '/Docs/',
- homeLabel: 'Home',
- hideObjectives: false,
- hideSections: true,
- menuEntries: [],
- catalogEntries: [],
- enrollments: [{id: '5390012',courseEnrollment: false,domainId: '2199893',enrollmentStatus: 9,enrollmentStart: '2014-09-09 00:00:00',enrollmentEnd: '2025-03-04 23:59:00',rights: 131073,sectionRights: 0,courseRights: 131073,currentUser: true,userId: '5390010',userFirstName: '',userLastName: '',courseId: '5337368',courseTitle: 'Cary High Algebra II - Part 1',courseDisplay: 'Cary High Algebra II - Part 1',courseReference: '',courseType: 'Range',courseDays: 365,isTeacher: false,isStudent: true,isTestStudent: false,canEdit: false,canConference: false,canReportGrades: false},{id: '5390015',courseEnrollment: false,domainId: '2199893',enrollmentStatus: 9,enrollmentStart: '2014-09-09 00:00:00',enrollmentEnd: '2024-08-20 23:59:00',rights: 131073,sectionRights: 0,courseRights: 131073,currentUser: true,userId: '5390010',userFirstName: '',userLastName: '',courseId: '2723493',courseTitle: 'Cary High Algebra II - Part 2',courseDisplay: 'Cary High Algebra II - Part 2',courseReference: '',courseType: 'Range',courseDays: 365,isTeacher: false,isStudent: true,isTestStudent: false,canEdit: false,canConference: false,canReportGrades: false},{id: '9258098',courseEnrollment: false,domainId: '2199893',enrollmentStatus: 1,enrollmentStart: '2016-01-19 19:00:00',enrollmentEnd: '2025-04-27 23:59:00',rights: 131073,sectionRights: 0,courseRights: 131073,currentUser: true,userId: '5390010',userFirstName: '',userLastName: '',courseId: '5838146',courseTitle: 'CHS Math III - Loughridge/Dunphy (2015 - 2016)',courseDisplay: 'CHS Math III - Loughridge/Dunphy (2015 - 2016)',courseReference: '',courseType: 'Range',courseDays: 365,isTeacher: false,isStudent: true,isTestStudent: false,canEdit: false,canConference: false,canReportGrades: false}],
- showBeforeUnloadPrompts: true,
- viewAda: false,
- showMobileViewMenuItem: false,
- mobileViewEnabled: false,
- noforceRelogin: true,
- dlaptoken: '~66jUAAAAAAAV5eAAWFO_qA.MInmoxKrWxVKVpdNk9fWiB',
- isSSO: false,
- dlapUrl: '//dlap.gradpoint.com',
- absoluteAppRoot: 'https://wcps6429-caryhs-ccl.gradpoint.com',
- objectiveOptions: {
- setowner: '',
- lowgrade: '',
- highgrade: ''
- },
- // Strings
- I18N : {
- ItemViewerFrame: 'Item Viewer Frame',
- ItemEditorFrame: 'Item Editor Frame',
- GroupSetupFrame: 'Group Setup Frame',
- notLoggedIn: 'You are no longer logged in.\u003cbr /\u003ePlease click {0} now.',
- notConnected: 'You have been disconnected.\u003cbr /\u003ePlease connect and click {0}.',
- login: 'Login',
- unknownError: 'Unknown error.',
- passwordRequired:'Password is required',
- connectionErrorMessage:'You have lost your connection. Please log in again so that you can resume your last session and not lose your work.\u003cbr/\u003e',
- loginAsDifferentUser:'Login As a Different User'
- }
- });
- Ext.onReady(function() {
- if (typeof (Ext.QuickTips) != 'undefined') {
- Ext.QuickTips.init();
- }
- var parentApi = FRAME_API.findParentApi(window);
- if(parentApi != null) {
- FRAME_API = parentApi;
- }
- else {
- FRAME_API.init(15);
- }
- });
- </script>
- <style type="text/css">
- html, body
- {
- overflow: hidden;
- }
- #frame-prev-link
- {
- float: left;
- margin-left: 8px;
- margin-right: 2px;
- background: url(/Images/nav_back_normal.gif) no-repeat;
- height: 30px;
- width: 24px;
- cursor:pointer;
- background-position: 4px 2px;
- }
- #frame-next-link
- {
- float: left;
- margin-right: 4px;
- background: url(/Images/nav_next_normal.gif) no-repeat;
- height: 30px;
- width: 24px;
- cursor:pointer;
- background-position: 4px 2px;
- }
- #frame-header-border
- {
- position: absolute;
- top: 97px;
- height: 2px;
- left: 0px;
- right: 0px;
- }
- </style>
- </head>
- <body class="page_color default_font">
- <div class="global_header">
- <div class="top_header">
- <div class="top_left_header no-print"></div>
- <div id="frame-top-right-header" class="top_right_header no-print"></div>
- <div id="frame-top-header-buttons" class="top_header_buttons no-print">
- <div id="h-home-btn" style="display:none;" class="top_header_button">
- <div class="top_header_button_img top_header_home_button" ext:qtip="Home"></div>
- </div>
- <div id="h-course-btn" style="display:none;position:relative;" class="top_header_button">
- <div class="top_header_button_img top_header_courses_button" ext:qtip="Courses"></div>
- <div id="h-course-btn-dropdown" class="sub_header_dropdown" style="position:absolute;right:2px;bottom:2px;"></div>
- </div>
- <div id="h-catalog-btn" style="display:none;" class="top_header_button">
- <div class="top_header_button_img top_header_catalog_button" ext:qtip="Catalog"></div>
- </div>
- <div id="h-admin-btn" style="display:none;" class="top_header_button">
- <div class="top_header_button_img top_header_admin_button" ext:qtip="Administration"></div>
- </div>
- </div>
- </div>
- <div class="sub_header">
- <div id="sh-home" style="display:none">
- <div class="sub_header_list"></div>
- <div id="frame-view-home" class="sub_header_list">
- <a class="no_underline_link" href="javascript:void(0)" onclick="return false;">
- <div id="h-home-link" class="no_underline_link"></div>
- </a>
- </div>
- <div id="frame-calendar" class="sub_header_list">
- <a class="no_underline_link" href="javascript:void(0)" onclick="return false;">
- <div class="no_underline_link">Calendar</div>
- </a>
- </div>
- <div id="frame-teachacourse" class="sub_header_list" style="display:none">
- <a class="no_underline_link" href="javascript:void(0)" onclick="return false;">
- <div class="no_underline_link">Teach a Course</div>
- </a>
- </div>
- </div>
- <div id="sh-courses" style="display:none">
- <div id="frame-view-course" class="sub_header_list" style="display:none">
- <a class="no_underline_link" href="javascript:void(0)" onclick="return false;">
- <div class="no_underline_link">View</div>
- </a>
- </div>
- <div id="frame-view-syllabus" class="sub_header_list" style="display:none">
- <a class="no_underline_link" href="javascript:void(0)" onclick="return false;">
- <div class="no_underline_link">Syllabus</div>
- </a>
- </div>
- <div id="frame-view-gradebook" class="sub_header_list" style="display:none">
- <a class="no_underline_link" href="javascript:void(0)" onclick="return false;">
- <div class="no_underline_link">Gradebook</div>
- </a>
- </div>
- <div id="frame-view-grades" class="sub_header_list" style="display:none">
- <a class="no_underline_link" href="javascript:void(0)" onclick="return false;">
- <div class="no_underline_link">Grades</div>
- </a>
- </div>
- <div id="frame-view-objectives" class="sub_header_list" style="display:none">
- <a class="no_underline_link" href="javascript:void(0)" onclick="return false;">
- <div class="no_underline_link">Objectives</div>
- </a>
- </div>
- <div id="frame-view-testanalytics" class="sub_header_list" style="display:none">
- <a class="no_underline_link" href="javascript:void(0)" onclick="return false;">
- <div class="no_underline_link">Test Analytics</div>
- </a>
- </div>
- <div id="frame-view-activity" class="sub_header_list" style="display:none">
- <a class="no_underline_link" href="javascript:void(0)" onclick="return false;">
- <div class="no_underline_link">Activity</div>
- </a>
- </div>
- <div id="frame-view-finalgrades" class="sub_header_list" style="display:none">
- <a class="no_underline_link" href="javascript:void(0)" onclick="return false;">
- <div class="no_underline_link">Final Grades</div>
- </a>
- </div>
- </div>
- <div id="sh-common" style="display:none">
- <div id="frame-communicate" class="sub_header_list" style="display:none">
- <a class="no_underline_link" href="javascript:void(0)" onclick="return false;">
- <div class="no_underline_link">Communicate</div>
- <div class="sub_header_dropdown"></div>
- </a>
- </div>
- </div>
- <div id="sh-catalog" style="display:none">
- </div>
- <div id="sh-admin" style="display:none">
- <div id="frame-admin-dashboard" class="sub_header_list">
- <a class="no_underline_link" href="javascript:void(0)" onclick="return false;">
- Dashboard
- </a>
- </div>
- <div id="frame-admin-domaindetail" class="sub_header_list">
- <a class="no_underline_link" href="javascript:void(0)" onclick="return false;">
- Administration
- </a>
- </div>
- <div id="frame-admin-users" class="sub_header_list">
- <a class="no_underline_link" href="javascript:void(0)" onclick="return false;">
- Users
- </a>
- </div>
- <div id="frame-admin-courses" class="sub_header_list">
- <a class="no_underline_link" href="javascript:void(0)" onclick="return false;">
- Courses
- </a>
- </div>
- </div>
- <div id="gp-reports-home-tab" class="sub_header_list" style="display:none">
- <a class="no_underline_link" href="javascript:void(0)" onclick="return false;">
- <div class="no_underline_link">Reports</div>
- </a>
- </div>
- <div id="gp-resources-home-tab" class="sub_header_list" style="display:none">
- <a class="no_underline_link" href="javascript:void(0)" onclick="return false;">
- <div class="no_underline_link">Resources</div>
- </a>
- </div>
- <div id="gp-tools" class="sub_header_list" style="display:none">
- <a class="no_underline_link" href="javascript:void(0)" onclick="return false;">
- <div class="no_underline_link">Tools</div>
- <div class="sub_header_dropdown"></div>
- </a>
- </div>
- <div class="sub_header_user">
- <a id="frame-account" class="no_underline_link" href="javascript:void(0)" onclick="return false;">
- <div id="userDropdown" class="no_underline_link"></div>
- <div class="sub_header_dropdown">
- </div>
- </a>
- <a id="frame-logout" class="no_underline_link" style="margin-left: 4px" href="javascript:void(0);" onclick="return false;">
- Log Out
- </a>
- </div>
- </div>
- <div id="hdPageHeader">
- <div class="page_header">
- <span id="hdPageTitle" class="page_title"></span><span id="hdPageTitleSeparator" style="display: none;" class="page_title_separator">: </span><span id="hdCourseTitle" class="course_title"></span><span id="hdCourseSeparator" style="display: none;" class="course_separator"> - </span><span id="hdSectionTitle" class="section_title"></span>
- </div>
- <div class="header_top_right">
- <span id="headerTopRight" style="float:left">
- <div id="frame-edit-link" class="hover_link" style="display: none; float: left; margin-top: 4px"><a class="hover_link" href="javascript:void(0)" onclick="return false;">Edit</a></div>
- <div id="frame-prev-link" ext:qtip="Previous" style="display:none;float:left"></div>
- <div id="frame-next-link" ext:qtip="Next" style="display:none;float:left"></div>
- </span>
- <div id="hdHelp" style="float:left">
- <div class="help_button" ext:qtip='Help'>
- </div>
- </div>
- </div>
- </div>
- <div id="frame-header-border" class="default_border no-print" style="border-top-width:0px;border-left-width:0px;border-right-width:0px;"></div>
- </div>
- <div class="main_content">
- <style>
- /* Make sure these are in this file and that these styles are after all included stylesheets
- or you'll need to change getStylesOnPage*/
- .course_tree_FrameContent .x-tree-col-first {
- }
- .course_tree_FrameContent .x-tree-node-el {
- }
- .peer-review-grid-row-border
- {
- border-width: 0px 0px 1px 0px;
- }
- .peer-review-grid-row-selected .x-grid3-cell-inner
- {
- font-weight:bold;
- }
- .x-tree-grade > div
- {
- width: auto !important;
- }
- .x-tree-grade
- {
- margin-left:0px !important;
- }
- </style>
- <script src="/Scripts/svgweb-20110203/svg.js" data-path="/Scripts/svgweb-20100409"></script><script type="text/javascript" language="javascript">var tinyMCEPreInit = {suffix: '',query: '',base: '/Scripts/tiny_mce-3.5.3'};</script><script type="text/javascript" language="javascript" src="/Scripts/tiny_mce-3.5.3/tiny_mce.js"></script><script type="text/javascript" language="javascript">Ext.ux.TinyMCE.tinymcePlugins = '';Ext.ux.TinyMCE.initTinyMCE({language: 'en', strict_loading_mode: true});var tinymce_base = {theme : 'advanced',language: 'en',skin: 'bh',bh_app_root: '',bh_absolute_app_root: 'https://wcps6429-caryhs-ccl.gradpoint.com',bh_courselink_searchurl: '',theme_advanced_buttons1 : '',theme_advanced_buttons2 : '',theme_advanced_buttons3 : '',theme_advanced_buttons4 : '',theme_advanced_toolbar_location : 'top',theme_advanced_toolbar_align : 'left',theme_advanced_source_editor_height: 400,theme_advanced_source_editor_width: 650,plugin_preview_height: 400,plugin_preview_width: 650,apply_source_formatting: false,gecko_spellcheck: true,convert_fonts_to_spans: true,content_css: '/Scripts/tiny_mce-3.5.3/themes/advanced/skins/bh/content.css',body_class: 'default_font content',forced_root_block: 'div',font_size_style_values: '8pt,10pt,12pt,14pt,18pt,24pt,36pt',theme_advanced_resizing : false,theme_advanced_statusbar_location : 'none',flash_video_player_url: '',flash_video_player_absvideourl: false,media_strict: false,media_types: 'video=mp4,m4v,ogv,webm;silverlight=xap;flash=swf,flv,mp3;shockwave=dcr;quicktime=mov,qt,mpg,mpeg;shockwave=dcr;windowsmedia=avi,wmv,wm,asf,asx,wmx,wvx;realmedia=rm,ra,ram;java=jar;audio=ogg,oga',media_dialog_defaults: { audio_controls: true, video_controls: true },extended_valid_elements : 'a:math,#div[*],video[*],audio[*],style[type],link[!rel<stylesheet|type|href],b/strong,i/em,a[name|href|target|title|onclick],img[class|src|border=0|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name|style],hr[class|width|size|noshade],font[face|size|color|style],span[class|align|style],script[type|src],iframe[src|width|height|name|align|style|frameborder|allowfullscreen],applet[align<bottom?left?middle?right?top|alt|archive|class|code|codebase|height|hspace|id|name|object|style|title|vspace|width],param[id|name|type|value|valuetype<DATA?OBJECT?REF],track[default|kind|label|src|srclang]'};var tinymce_basic = Ext.apply({}, {plugins: 'safari,advlink,math,paste',theme_advanced_buttons1 : 'fontselect,fontsizeselect,|,bold,italic,underline,|,forecolor,backcolor,|,justifyleft,justifycenter,justifyright,|,link,math,|,bullist,numlist'}, tinymce_base);var tinymce_basic_with_links = Ext.apply({}, {plugins: 'safari,advlink,math,courselink,paste',theme_advanced_buttons1 : 'fontselect,fontsizeselect,|,bold,italic,underline,|,forecolor,backcolor,|,justifyleft,justifycenter,justifyright,|,courselink,link,math,|,bullist,numlist'}, tinymce_base);var tinymce_basic_with_links_nomath = Ext.apply({}, {plugins: 'safari,advlink,courselink,paste',theme_advanced_buttons1 : 'fontselect,fontsizeselect,|,bold,italic,underline,|,forecolor,backcolor,|,justifyleft,justifycenter,justifyright,|,courselink,link,|,bullist,numlist'}, tinymce_base);var tinymce_basic_with_images = Ext.apply({}, {plugins: 'safari,advimage,advlink,math,courselink,paste',theme_advanced_buttons1 : 'fontselect,fontsizeselect,|,bold,italic,underline,|,forecolor,backcolor,|,justifyleft,justifycenter,justifyright,|,courselink,link,image,math,|,bullist,numlist'}, tinymce_base);var tinymce_basic_with_images_forum = Ext.apply({}, {plugins: 'safari,advimage,advlink,math,courselink,paste',theme_advanced_buttons1 : 'fontselect,fontsizeselect,|,bold,italic,underline,|,forecolor,backcolor,|,justifyleft,justifycenter,justifyright,|,courselink,link,image,math,|,bullist,numlist'}, tinymce_base);var tinymce_basic_with_images_nocourse = Ext.apply({}, {plugins: 'safari,advimage,advlink,math,paste',theme_advanced_buttons1 : 'fontselect,fontsizeselect,|,bold,italic,underline,|,forecolor,backcolor,|,justifyleft,justifycenter,justifyright,|,link,image,math,|,bullist,numlist'}, tinymce_base);var tinymce_basic_with_images_twoline = Ext.apply({}, {plugins: 'safari,advimage,advlink,math,courselink,paste',theme_advanced_buttons1 : 'fontselect,fontsizeselect,|,justifyleft,justifycenter,justifyright,|,bullist,numlist',theme_advanced_buttons2 : 'bold,italic,underline,|,forecolor,backcolor,|,courselink,link,image,math'}, tinymce_base);var tinymce_extended = Ext.apply({}, {plugins: 'safari,advimage,advlink,media,preview,fullscreen,math,courselink,filelink,paste,table,style',theme_advanced_buttons1 : 'fontselect,fontsizeselect,bold,italic,underline,|,forecolor,backcolor,styleprops',theme_advanced_buttons2 : 'justifyleft,justifycenter,justifyright,|,indent,outdent,|,bullist,numlist,|,image,media,math,|,courselink,filelink,link,anchor,hr',theme_advanced_buttons3 : 'table,row_props,cell_props,row_before,row_after,delete_row,col_before,col_after,delete_col,split_cells,merge_cells,|,preview,fullscreen,code'}, tinymce_base);var tinymce_extended_wide = Ext.apply({}, {plugins: 'safari,advimage,advlink,media,preview,fullscreen,math,courselink,filelink,paste,table,style',theme_advanced_buttons1 : 'fontselect,fontsizeselect,bold,italic,underline,|,justifyleft,justifycenter,justifyright,indent,outdent,bullist,numlist,|,forecolor,backcolor,styleprops',theme_advanced_buttons2 : 'image,media,math,|,courselink,filelink,link,anchor,hr,|,table,row_props,cell_props,row_before,row_after,delete_row,col_before,col_after,delete_col,split_cells,merge_cells,|,preview,fullscreen,code'}, tinymce_base);tinyMCE.addI18n('en.courselink',{desc : 'Insert/edit course link'});tinyMCE.addI18n('en.filelink',{desc : 'Insert/edit file link',frame : 'Upload File Frame'});tinyMCE.addI18n('en.math',{desc : 'Insert/edit equation'});tinyMCE.addI18n('en.math_dlg',{title : 'Insert/edit equation',preview : 'Preview',refresh : 'Refresh',equation : 'Equation',format : 'Format',ascii_math : 'ASCII Math',latex : 'LaTeX',mathml : 'MathML',insert_symbol : 'Insert Symbol',symbol_instructions : 'Click the symbol to insert:',equation_text : 'Text',equation_over : 'Over',equation_under : 'Under'});</script><script type="text/javascript" src="/Scripts/MediaLoader_vv1D19A9336C1DE00.js"></script><script type="text/javascript" src="/Scripts/Player_vv1D19A9336C1DE00.js"></script><script type="text/javascript" src="/Scripts/BoilerPlate_vv1D19A9336C1DE00.js"></script>
- <div id="player_FrameContent" class="default_font page_color" style="position:absolute; top:0px; bottom:0px; left:0px; right:0px;"></div>
- <div style="display:none;">
- <div id="footer_FrameContent" >
- <div id="dropboxStatusAndButtons_FrameContent" class="dropbox_status_and_buttons color_light" style="display:none;">
- <table cellpadding="0" cellspacing="0">
- <tr>
- <td width="100%"><div class="color_light dropbox_status" id="dropboxStatus_FrameContent"></div></td>
- <td style="vertical-align:top;"><div class="dropboxButton" id="dropboxSurvey_FrameContent" ></div></td>
- <td style="vertical-align:top;"><div class="dropboxButton" id="dropboxRubric_FrameContent" ></div></td>
- <td style="vertical-align:top;"><div class="dropboxButton dropboxCompleteButton" id="dropboxCompleted_FrameContent" ></div></td>
- <td style="vertical-align:top;"><div class="dropboxButton" id="dropboxOpenSplit_FrameContent"></div></td>
- <td style="vertical-align:top;"><div class="dropboxButton" id="dropboxOpen_FrameContent"></div></td>
- <td style="vertical-align:top;"><div class="dropboxButton" id="dropboxSaveProgress_FrameContent"></div></td>
- <td style="vertical-align:top;"><div class="dropboxButton" id="dropboxSubmit_FrameContent"></div></td>
- <td style="vertical-align:top;"><div class="dropboxButton" id="dropboxExamStart_FrameContent"></div></td>
- <td style="vertical-align:top;"><div class="dropboxButton" id="dropboxExamPrint_FrameContent"></div></td>
- <td style="vertical-align:top;"><div class="dropboxButton" id="dropboxScoSave_FrameContent"></div></td>
- <td style="vertical-align:top;"><div class="dropboxButton dropboxScoCompleteButton" id="dropboxScoSaveComplete_FrameContent"></div></td>
- <td style="vertical-align:top;">
- <div id="dropboxScoreBox_FrameContent" class="dropboxScoreBox">
- <div id="dropboxScore_FrameContent" ></div>
- </div>
- </td>
- <td style="vertical-align:top;"><div class="dropboxButton" id="dropboxDetails_FrameContent"></div></td>
- <td style="vertical-align:top;"><div class="dropboxButton dropboxReviewPeersButton" id="dropboxPeerReview_FrameContent"></div></td>
- </tr>
- </table>
- <label id="footerLabelSizer_FrameContent" class="x-form-item-label" style="display:none;" ></label>
- </div>
- </div>
- <div id="content_FrameContent" class="page_color default_font">
- <iframe id="contentBody_FrameContent" name="contentBody_FrameContent" title="Course Content API Frame" class="x-panel-body page_color default_font" style="frameBorder:0;width:100%;height:100%;" frameborder="0" src="about:blank" allowfullscreen></iframe>
- </div><!-- Custom CSS and Libs -->
- </div>
- <script type="text/javascript">
- var playerPanel_FrameContent = null;
- Ext.onReady(function() {
- Ext.useShims = true;
- Ext.QuickTips.init();
- var panel = new PlayerPanel({
- playerId: 'FrameContent',
- //Start DF49 – CSS class for the grade status footer.
- isDiscussionBoard:false,
- isTeacher:false,
- //End.
- appRoot: '',
- absoluteFrameRoot: 'https://wcps6429-caryhs-ccl.gradpoint.com/Frame',
- courseId: "5838146",
- sectionId: "",
- enrollmentId: "9258098",
- extraUriData: "",
- courseName: "CHS Math III - Loughridge/Dunphy (2015 - 2016)",
- sectionName: "",
- courseTitle: "CHS Math III - Loughridge/Dunphy (2015 - 2016)",// course-section combined
- sectionTitle: "",
- userDisplayName: "Cory McKeel",
- initialUrl: "/Content/Template.aspx?enrollmentid=9258098&itemid=3217pre",
- prohibitedExts: [],
- componentType: 'courseplayer',
- showEmailLink: false,
- showToc: true,
- showNavNext: true,
- showNavPrev: true,
- showAuthorLink: false,
- showHeader: true,
- hasHeader: false,
- showAdornments: true,
- showRatings: true,
- bhVars: {
- domainId: '2199893',
- domainName: 'Cary High School',
- userSpace: 'wcps6429-caryhs-ccl',
- courseName: 'CHS Math III - Loughridge/Dunphy (2015 - 2016)',
- sectionName: '',
- userId: '5390010',
- userName: '1266784',
- userFirst: 'Cory',
- userLast: 'McKeel',
- userRights: '131073',
- enrollmentFirst: 'Cory',
- enrollmentLast: 'McKeel',
- enrollmentUser: '1266784',
- enrollmentRights: '131073'
- },
- documentRoot: '/Resource/5390010/',
- /* Localizable strings */
- loadingCourseContentMessage: 'Loading course content. Please wait.',
- loadingMessage: 'Loading ...',
- rubricHeaderText: 'Grading criteria for \'{0}\'',
- detailsHeaderText: 'Grading for \'{0}\' - {1}',
- confirmSubmitAssignmentText : 'Are you sure that you want to submit this assignment?',
- completedButtonString: 'Mark this activity complete',
- submitAssignmentText : 'To submit your assignment, choose \'{0}\' and click OK.',
- submitAssignmentTitle : 'Submit Your Assignment',
- saveAssignmentText : 'To save your progress, choose \'{0}\' and click OK.',
- saveAssignmentTitle : 'Save Your Progress',
- errorTitle : 'Error',
- submitWrongAssignmentTypeText : 'To submit this assignment you must choose a file of type \'{0}\'. You chose a file of type \'{1}\'.',
- submitBlankAssignmentTypeText : 'You cannot submit a blank assignment.',
- saveBlankAssignmentTypeText : 'You cannot save a blank assignment.',
- savedAssignmentTitle : 'Saved Your Assignment',
- submittedAssignmentTitle : 'Submitted Your Assignment',
- submittedAssignmentText : 'Successfully submitted your assignment.',
- savedAssignmentText : 'Successfully saved your assignment.',
- serverErrorString: 'Server Error',
- failedSubmittingAssignmentString: 'Failed to submit your assignment!',
- failedSavingAssignmentString: 'Failed to save your assignment!',
- errorWithMessageString: 'ERROR:{0}',
- assignmentSubmitPanelHeader: 'Work for \'{0}\'',
- assignmentAttachmentLabel: 'Attachment',
- assignmentAttachmentsLabel: 'Attachments',
- assignmentURLLabel: 'Web-site address',
- exampleURL: 'Example: http://www.myschool.edu/',
- assignmentCommentsLabel: 'Comments',
- uploadFileMessage: 'Upload file',
- uploadingFileProgressMessage: 'Uploading your file to the server.',
- uploadingFileMessage: 'Uploading...',
- uploadingFileCompleteTitle: 'Upload complete',
- uploadingFileCompleteMessage: 'Finished uploading your file to the server',
- failedUploadingAssignmentString: 'Failed to upload your assignment',
- failedToLoadItemString: 'Failed to load course content. (status:{0}, url:{1})',
- failedLoadingRubricString: 'Failed to load the rubric.',
- failedLoadingGradeDetailsString: 'Failed to load the score details.',
- failedLoadingPeerReviewListString: 'Failed to load peer review list.',
- clickToRetryString: 'Click here to retry.',
- scoSaveCompleteButtonString: 'Save and Close',
- detailsButtonString: 'Details',
- submitButtonString: 'Submit',
- openButtonString: 'Open',
- rubricButtonString: 'Rubric',
- surveyButtonString: 'Survey',
- saveButtonString: 'Save',
- saveProgressString: 'Save your progress',
- saveNotSubmitString: 'Save does not submit your assignment',
- openLatestString: 'Open Saved',
- openLatestTipString: 'Open your saved document for this assignment',
- openSubmittedString: 'Open Submitted',
- openSubmittedTipString: 'Open the document that you submitted for this assignment',
- openOriginalString: 'Open Original',
- openOriginalTipString: 'Open the template document for this assignment',
- useFileWithDateString: 'Use: {0} - saved on {1}',
- useFileString: 'Use: {0}',
- changeFileString: 'Change',
- submittedDateString: 'Submitted: {0}',
- progressSavedString: 'Progress saved: {0}',
- noProgressString: 'No saved progress',
- wantToSubmitWithDateString: 'Do you want to submit {0}, saved on: {1}?',
- wantToSubmitString: 'Do you want to submit {0}?',
- deletePermanentlyConfirmString: 'This will delete {0} permanently and save your progress. Is this what you want to do?',
- submittingDotDotDotString: 'Submitting ...',
- submittingYourAssignmentString: 'Submitting your assignment...',
- deletingAndSavingString: 'Deleting \"{0}\" and saving your progress...',
- savingDotDotDotString: 'Saving...',
- savingYourProgressString: 'Saving your progress...',
- doneSaving: 'Done saving',
- scoSaveError: 'Error: {0}\u003cbr/\u003ePlease try to save again.',
- deleteAndSaveSuccessString: 'Successfully deleted {0} and saved your progress',
- refreshString: 'Refresh',
- closeString: 'Close',
- showExcusedString: 'Show excused items',
- attachmentsLabel: 'Attachments',
- groupSetupString: 'Group Setup',
- saveTitleString: 'Save',
- saveMessageString: 'Successfully saved your data.',
- unknownErrorString: 'Unknown error.',
- _AddAttachment: 'Add attachment',
- _SendMail: 'Send Mail',
- _Edit: 'Edit',
- _Delete: 'Delete',
- _Print: 'Print',
- _PrintStudent: 'Student',
- _PrintTeacher: 'Teacher',
- _PrintBoth: 'Both',
- _Confirm: 'Confirm',
- _InvalidAddress: 'The web-site address must start with \'http://\' or \'https://\'',
- _InvalidAddressCaption: 'Invalid Address',
- _InstructorNote: 'Instructor Note',
- _InstructorNoteFrame: 'Instructor Note Frame',
- _MissingAddress: 'You must specify an address after \'http://\' or \'https://\'',
- _ModifiedFromOriginal: 'Modified from original',
- _GetContentUrl: 'Copy URL for this content to the clipboard',
- _ContentUrlTitle: 'Content URL',
- _ContentUrlInstructions: 'Select the URL below and either press Ctrl+C on your keyboard or right click and choose \"Copy\" from the menu to copy it to the clipboard',
- _Configure: 'Display Options',
- _ShowScores: 'Show scores',
- _SubmitProhibitedFileType: 'The system administrator has prohibited uploading files of type \'{0}\'.',
- _ReviewPeers: 'Review Peers',
- _Rate1Star: 'Click to rate this activity with 1 star',
- _RateNStars: 'Click to rate this activity with {0} stars',
- _AverageRating: 'Average: {0}',
- _Next: 'Next',
- _Previous: 'Previous',
- _ChooseGoogleDoc: 'Choose Google Document',
- _GoogleErrorAuthorize: 'Error Authorizing',
- _GoogleSelectDocument: 'Select a document'
- ,CourseItems: [{id:"3196",text:"01:Systems of Equations",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cimg src=\"/Images/s.gif\" alt=\"Completed\" title=\"\" ext:qtip=\"Completed\" class=\'gradebook_check_image\'/\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eStatus:&nbsp;</td\u003e<td\u003eCompleted</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",children:[{id:"3196pre",iconCls:"icon-unknown",text:"01:Pretest",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cimg src=\"/Images/s.gif\" alt=\"Completed\" title=\"\" ext:qtip=\"Completed\" class=\'gradebook_check_image\'/\u003e\u003c/div\u003e",leaf:true},{id:"alg2gsys",iconCls:"icon-assignment",text:"Graphing Systems of Equations",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e90%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e90%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"alg2asys",iconCls:"icon-assignment",text:"Solving Systems Algebraically",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e90%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e90%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"alg2syin",iconCls:"icon-assignment",text:"Systems of Inequalities",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e80%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e80%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"alg2gr3d",iconCls:"icon-assignment",text:"Graphs in Three Dimensions",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e100%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e100%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"alg2sys3",iconCls:"icon-assignment",text:"Systems with Three Variables",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e60%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e60%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"3196post",iconCls:"icon-unknown",text:"01:Posttest",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e80%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e80%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true}]},{id:"3197",text:"02:Quadratic Functions",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cimg src=\"/Images/s.gif\" alt=\"Completed\" title=\"\" ext:qtip=\"Completed\" class=\'gradebook_check_image\'/\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eStatus:&nbsp;</td\u003e<td\u003eCompleted</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",children:[{id:"3197pre",iconCls:"icon-unknown",text:"02:Pretest",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cimg src=\"/Images/s.gif\" alt=\"Completed\" title=\"\" ext:qtip=\"Completed\" class=\'gradebook_check_image\'/\u003e\u003c/div\u003e",leaf:true},{id:"alg2fac1",iconCls:"icon-assignment",text:"Factoring Quadratics I",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e70%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e70%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"alg2fac2",iconCls:"icon-assignment",text:"Factoring Quadratics II",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e60%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e60%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"alg2queq",iconCls:"icon-assignment",text:"Quadratic Equations",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e70%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e70%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"3197post",iconCls:"icon-unknown",text:"02:Posttest",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e93%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e93.33%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true}]},{id:"3198",text:"03:Complex Numbers",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cimg src=\"/Images/s.gif\" alt=\"Completed\" title=\"\" ext:qtip=\"Completed\" class=\'gradebook_check_image\'/\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eStatus:&nbsp;</td\u003e<td\u003eCompleted</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",children:[{id:"3198pre",iconCls:"icon-unknown",text:"03:Pretest",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cimg src=\"/Images/s.gif\" alt=\"Completed\" title=\"\" ext:qtip=\"Completed\" class=\'gradebook_check_image\'/\u003e\u003c/div\u003e",leaf:true},{id:"alg2copx",iconCls:"icon-assignment",text:"Complex Numbers",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e60%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e60%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"alg2como",iconCls:"icon-assignment",text:"Operations with Complex Numbers",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e70%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e70%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"alg2comp",iconCls:"icon-assignment",text:"Completing the Square",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e60%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e60%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"alg2quad",iconCls:"icon-assignment",text:"The Quadratic Formula",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e60%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e60%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"pcalcomz",iconCls:"icon-assignment",text:"Complex Zeros",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e70%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e70%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"3198post",iconCls:"icon-unknown",text:"03:Posttest",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"failing-score\" style=\"font-weight:normal\"\u003e68%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e68%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true}]},{id:"3200",text:"05:Polynomials",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cimg src=\"/Images/s.gif\" alt=\"Completed\" title=\"\" ext:qtip=\"Completed\" class=\'gradebook_check_image\'/\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eStatus:&nbsp;</td\u003e<td\u003eCompleted</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",children:[{id:"3200pre",iconCls:"icon-unknown",text:"05:Pretest",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cimg src=\"/Images/s.gif\" alt=\"Completed\" title=\"\" ext:qtip=\"Completed\" class=\'gradebook_check_image\'/\u003e\u003c/div\u003e",leaf:true},{id:"pcalpoly",iconCls:"icon-assignment",text:"Global Behavior",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e70%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e70%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"pcalgpol",iconCls:"icon-assignment",text:"Local Behavior",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e80%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e80%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"alg2polf",iconCls:"icon-assignment",text:"Polynomials and Linear Factors",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e80%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e80%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"alg2divp",iconCls:"icon-assignment",text:"Dividing Polynomials",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e60%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e60%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"alg2pole",iconCls:"icon-assignment",text:"Solving Polynomial Equations",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e60%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e60%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"pcalzero",iconCls:"icon-assignment",text:"Real Zeros",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e60%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e60%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"3200post",iconCls:"icon-unknown",text:"05:Posttest",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"failing-score\" style=\"font-weight:normal\"\u003e66%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e66.66%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true}]},{id:"3201",text:"06:Rational and Radical Equations",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cimg src=\"/Images/s.gif\" alt=\"Completed\" title=\"\" ext:qtip=\"Completed\" class=\'gradebook_check_image\'/\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eStatus:&nbsp;</td\u003e<td\u003eCompleted</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",children:[{id:"3201pre",iconCls:"icon-unknown",text:"06:Pretest",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cimg src=\"/Images/s.gif\" alt=\"Completed\" title=\"\" ext:qtip=\"Completed\" class=\'gradebook_check_image\'/\u003e\u003c/div\u003e",leaf:true},{id:"alg2inva",iconCls:"icon-assignment",text:"Inverse Variation",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e80%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e80%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"alg2rat",iconCls:"icon-assignment",text:"Rational Functions ",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e60%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e60%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"alg2rex",iconCls:"icon-assignment",text:"Rational Expressions",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e70%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e70%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"alg2cora",iconCls:"icon-assignment",text:"Combining Rational Expressions",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e60%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e60%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"alg2sora",iconCls:"icon-assignment",text:"Solving Rational Equations",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e70%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e70%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"alg2rad",iconCls:"icon-assignment",text:"Radical Equations",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e60%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e60%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"3201post",iconCls:"icon-unknown",text:"06:Posttest",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e76%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e76.66%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true}]},{id:"3202",text:"07:Exponential and Logarithmic Equations",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cimg src=\"/Images/s.gif\" alt=\"Completed\" title=\"\" ext:qtip=\"Completed\" class=\'gradebook_check_image\'/\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eStatus:&nbsp;</td\u003e<td\u003eCompleted</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",children:[{id:"3202pre",iconCls:"icon-unknown",text:"07:Pretest",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cimg src=\"/Images/s.gif\" alt=\"Completed\" title=\"\" ext:qtip=\"Completed\" class=\'gradebook_check_image\'/\u003e\u003c/div\u003e",leaf:true},{id:"alg2expo",iconCls:"icon-assignment",text:"Exponential Functions",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e60%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e60%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"alg2log",iconCls:"icon-assignment",text:"Logarithmic Functions as Inverses ",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e90%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e90%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"alg2logp",iconCls:"icon-assignment",text:"Properties of Logarithms",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e70%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e70%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"alg2exeq",iconCls:"icon-assignment",text:"Exponential Equations",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e60%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e60%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"alg2loge",iconCls:"icon-assignment",text:"Logarithmic Equations",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e80%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e80%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"3202post",iconCls:"icon-unknown",text:"07:Posttest",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e76%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e76%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true}]},{id:"3203",text:"08:Sequences and Series",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cimg src=\"/Images/s.gif\" alt=\"Completed\" title=\"\" ext:qtip=\"Completed\" class=\'gradebook_check_image\'/\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eStatus:&nbsp;</td\u003e<td\u003eCompleted</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",children:[{id:"3203pre",iconCls:"icon-unknown",text:"08:Pretest",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cimg src=\"/Images/s.gif\" alt=\"Completed\" title=\"\" ext:qtip=\"Completed\" class=\'gradebook_check_image\'/\u003e\u003c/div\u003e",leaf:true},{id:"alg2aseq",iconCls:"icon-assignment",text:"Arithmetic Sequences",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e100%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e100%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"alg2gseq",iconCls:"icon-assignment",text:"Geometric Sequences",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e60%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e60%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"alg2gser",iconCls:"icon-assignment",text:"Geometric Series",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e60%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e60%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"3203post",iconCls:"icon-unknown",text:"08:Posttest",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e86%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e86.66%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true}]},{id:"3205",text:"10:Trigonometric Functions",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cimg src=\"/Images/s.gif\" alt=\"Completed\" title=\"\" ext:qtip=\"Completed\" class=\'gradebook_check_image\'/\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eStatus:&nbsp;</td\u003e<td\u003eCompleted</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",children:[{id:"3205pre",iconCls:"icon-unknown",text:"10:Pretest",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cimg src=\"/Images/s.gif\" alt=\"Completed\" title=\"\" ext:qtip=\"Completed\" class=\'gradebook_check_image\'/\u003e\u003c/div\u003e",leaf:true},{id:"pcalradn",iconCls:"icon-assignment",text:"Radians and Degrees",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e70%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e70%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"pcalunit",iconCls:"icon-assignment",text:"The Unit Circle",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e70%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e70%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"pcalsinc",iconCls:"icon-assignment",text:"Graphs of Sine and Cosine",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e70%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e70%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"pcaltide",iconCls:"icon-assignment",text:"Verifying Identities",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e80%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e80%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"3205post",iconCls:"icon-unknown",text:"10:Posttest",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"failing-score\" style=\"font-weight:normal\"\u003e65%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e65%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true}]},{id:"VGCZN",text:"Review Test Part 1",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cimg src=\"/Images/s.gif\" alt=\"Completed\" title=\"\" ext:qtip=\"Completed\" class=\'gradebook_check_image\'/\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eStatus:&nbsp;</td\u003e<td\u003eCompleted</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",children:[{id:"VBBN7",iconCls:"icon-unknown",text:"Review Test Part 1",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e80%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e80.55%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true}]},{id:"3207",text:"12:Parallel and Perpendicular Lines",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cimg src=\"/Images/s.gif\" alt=\"Completed\" title=\"\" ext:qtip=\"Completed\" class=\'gradebook_check_image\'/\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eStatus:&nbsp;</td\u003e<td\u003eCompleted</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",children:[{id:"3207pre",iconCls:"icon-unknown",text:"12:Pretest",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cimg src=\"/Images/s.gif\" alt=\"Completed\" title=\"\" ext:qtip=\"Completed\" class=\'gradebook_check_image\'/\u003e\u003c/div\u003e",leaf:true},{id:"geoppara",iconCls:"icon-assignment",text:"Proving Lines Parallel",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e100%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e100%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"3207post",iconCls:"icon-unknown",text:"12:Posttest",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e88%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e88%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true}]},{id:"3209",text:"14:Triangles",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cimg src=\"/Images/s.gif\" alt=\"Completed\" title=\"\" ext:qtip=\"Completed\" class=\'gradebook_check_image\'/\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eStatus:&nbsp;</td\u003e<td\u003eCompleted</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",children:[{id:"3209pre",iconCls:"icon-unknown",text:"14:Pretest",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cimg src=\"/Images/s.gif\" alt=\"Completed\" title=\"\" ext:qtip=\"Completed\" class=\'gradebook_check_image\'/\u003e\u003c/div\u003e",leaf:true},{id:"3209post",iconCls:"icon-unknown",text:"14:Posttest",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e80%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e80%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true}]},{id:"3210",text:"15:Quadrilaterals",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cimg src=\"/Images/s.gif\" alt=\"Completed\" title=\"\" ext:qtip=\"Completed\" class=\'gradebook_check_image\'/\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eStatus:&nbsp;</td\u003e<td\u003eCompleted</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",children:[{id:"3210pre",iconCls:"icon-unknown",text:"15:Pretest",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cimg src=\"/Images/s.gif\" alt=\"Completed\" title=\"\" ext:qtip=\"Completed\" class=\'gradebook_check_image\'/\u003e\u003c/div\u003e",leaf:true}]},{id:"3212",text:"17:Proportions and Similarity",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cimg src=\"/Images/s.gif\" alt=\"Completed\" title=\"\" ext:qtip=\"Completed\" class=\'gradebook_check_image\'/\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eStatus:&nbsp;</td\u003e<td\u003eCompleted</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",children:[{id:"3212pre",iconCls:"icon-unknown",text:"17:Pretest",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cimg src=\"/Images/s.gif\" alt=\"Completed\" title=\"\" ext:qtip=\"Completed\" class=\'gradebook_check_image\'/\u003e\u003c/div\u003e",leaf:true},{id:"georatpro",iconCls:"icon-assignment",text:"Ratios and Proportions",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e70%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e70%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"geosimtr",iconCls:"icon-assignment",text:"Similarity in Right Triangles",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e70%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e70%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"3212post",iconCls:"icon-unknown",text:"17:Posttest",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e84%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e84%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true}]},{id:"3213",text:"18:Area and Perimeter",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cimg src=\"/Images/s.gif\" alt=\"Completed\" title=\"\" ext:qtip=\"Completed\" class=\'gradebook_check_image\'/\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eStatus:&nbsp;</td\u003e<td\u003eCompleted</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",children:[{id:"3213pre",iconCls:"icon-unknown",text:"18:Pretest",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cimg src=\"/Images/s.gif\" alt=\"Completed\" title=\"\" ext:qtip=\"Completed\" class=\'gradebook_check_image\'/\u003e\u003c/div\u003e",leaf:true},{id:"geocircar",iconCls:"icon-assignment",text:"Circles and Arcs",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e60%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e60%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"geoareac",iconCls:"icon-assignment",text:"Areas of Circles and Sectors",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e60%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e60%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"3213post",iconCls:"icon-unknown",text:"18:Posttest",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"failing-score\" style=\"font-weight:normal\"\u003e61%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e61.66%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true}]},{id:"3214",text:"19:Circles and Parabolas",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cimg src=\"/Images/s.gif\" alt=\"Completed\" title=\"\" ext:qtip=\"Completed\" class=\'gradebook_check_image\'/\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eStatus:&nbsp;</td\u003e<td\u003eCompleted</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",children:[{id:"3214pre",iconCls:"icon-unknown",text:"19:Pretest",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cimg src=\"/Images/s.gif\" alt=\"Completed\" title=\"\" ext:qtip=\"Completed\" class=\'gradebook_check_image\'/\u003e\u003c/div\u003e",leaf:true},{id:"geochord",iconCls:"icon-assignment",text:"Chords and Arcs",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e100%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e100%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"geoinscr",iconCls:"icon-assignment",text:"Inscribed Angles",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e70%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e70%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"geoangsg",iconCls:"icon-assignment",text:"Angle Measures and Segment Lengths",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e70%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e70%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"3214post",iconCls:"icon-unknown",text:"19:Posttest",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"failing-score\" style=\"font-weight:normal\"\u003e60%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e60%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true}]},{id:"3215",text:"20:Statistical Thinking",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cimg src=\"/Images/s.gif\" alt=\"Completed\" title=\"\" ext:qtip=\"Completed\" class=\'gradebook_check_image\'/\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eStatus:&nbsp;</td\u003e<td\u003eCompleted</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",children:[{id:"3215pre",iconCls:"icon-unknown",text:"20:Pretest",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cimg src=\"/Images/s.gif\" alt=\"Completed\" title=\"\" ext:qtip=\"Completed\" class=\'gradebook_check_image\'/\u003e\u003c/div\u003e",leaf:true},{id:"stadata",iconCls:"icon-assignment",text:"Types of Data",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e60%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e60%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"stacritic",iconCls:"icon-assignment",text:"Critical Thinking",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e70%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e70%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"stasample",iconCls:"icon-assignment",text:"Collecting Sample Data",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e70%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e70%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true},{id:"3215post",iconCls:"icon-unknown",text:"20:Posttest",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan class=\"passing-score\" style=\"font-weight:normal\"\u003e75%\u003c/span\u003e\u003cdiv class=\"gbg-tip\" ext:qtip=\"<table\u003e<tr\u003e<td class='b'\u003eScore:&nbsp;</td\u003e<td\u003e75%</td\u003e</tr\u003e</table\u003e\"\u003e\u003c/div\u003e\u003c/div\u003e",leaf:true}]},{id:"3217",text:"22:The Normal Distribution",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan\u003e \u003c/span\u003e\u003c/div\u003e",children:[{id:"3217pre",iconCls:"icon-unknown",text:"22:Pretest",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan\u003e \u003c/span\u003e\u003c/div\u003e",leaf:true},{id:"stanormal",iconCls:"icon-assignment",text:"The Standard Normal Distribution",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan\u003e \u003c/span\u003e\u003c/div\u003e",leaf:true},{id:"standist",iconCls:"icon-assignment",text:"Applications",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan\u003e \u003c/span\u003e\u003c/div\u003e",leaf:true},{id:"staestim",iconCls:"icon-assignment",text:"Sampling Distributions",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan\u003e \u003c/span\u003e\u003c/div\u003e",leaf:true},{id:"stalimit",iconCls:"icon-assignment",text:"The Central Limit Theorem",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan\u003e \u003c/span\u003e\u003c/div\u003e",leaf:true},{id:"stapopul",iconCls:"icon-assignment",text:"Population Proportion",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan\u003e \u003c/span\u003e\u003c/div\u003e",leaf:true},{id:"3217post",iconCls:"icon-unknown",text:"22:Posttest",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan\u003e \u003c/span\u003e\u003c/div\u003e",leaf:true}]},{id:"430rmodule",text:"Review Test Part 2",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan\u003e \u003c/span\u003e\u003c/div\u003e",children:[{id:"430review",iconCls:"icon-unknown",text:"Review Test Part 2",gradeHtml:"\u003cdiv class=\" gbg-in-ct\" style=\"width:70px;\"\u003e\u003cspan\u003e \u003c/span\u003e\u003c/div\u003e",leaf:true}]}],
- isTeacher: false,
- showExcusedCheckbox: true,
- showExcused: false,
- showScores: true
- ,googleIntEnabled: false
- });
- playerPanel_FrameContent = panel;
- /* Customize the ext yes/no text */
- Ext.MessageBox.buttonText.yes = 'Yes';
- Ext.MessageBox.buttonText.no = 'No';
- Ext.MessageBox.buttonText.ok = 'OK';
- Ext.MessageBox.buttonText.cancel = 'Cancel';
- ////////////////////////////////////////////////////////////
- // API Implementation
- ////////////////////////////////////////////////////////////
- function apiHost()
- {
- this.navToItem = panel.navToItem.createDelegate(panel);
- this.navPrev = panel.navPrev.createDelegate(panel);
- this.navNext = panel.navNext.createDelegate(panel);
- this.navToExternal = panel.navToExternal.createDelegate(panel);
- this.navExit = panel.navExit.createDelegate(panel);
- this.enterItem = panel.enterItem.createDelegate(panel);
- this.leaveItem = panel.leaveItem.createDelegate(panel);
- this.setItemInfoJson = panel.setItemInfoJson.createDelegate(panel);
- this.getSectionSummary = panel.getSectionSummary.createDelegate(panel);
- this.setLoaded = panel.setLoaded.createDelegate(panel);
- this.LMSInitialize = panel.LMSInitialize.createDelegate(panel);
- this.LMSFinish = panel.LMSFinish.createDelegate(panel);
- this.LMSGetValue = panel.LMSGetValue.createDelegate(panel);
- this.LMSSetValue = panel.LMSSetValue.createDelegate(panel);
- this.LMSCommit = panel.LMSCommit.createDelegate(panel);
- this.LMSGetLastError = panel.LMSGetLastError.createDelegate(panel);
- this.LMSGetErrorString = panel.LMSGetErrorString.createDelegate(panel);
- this.LMSGetDiagnostic = panel.LMSGetDiagnostic.createDelegate(panel);
- this.Initialize = panel.Initialize.createDelegate(panel);
- this.Terminate = panel.Terminate.createDelegate(panel);
- this.GetValue = panel.GetValue.createDelegate(panel);
- this.SetValue = panel.SetValue.createDelegate(panel);
- this.Commit = panel.Commit.createDelegate(panel);
- this.GetLastError = panel.GetLastError.createDelegate(panel);
- this.GetErrorString = panel.GetErrorString.createDelegate(panel);
- this.GetDiagnostic = panel.GetDiagnostic.createDelegate(panel);
- }
- // These things are global and will not work with multiple player components on the same page (unless they are included in an iFrame
- goCourseApiHost = new apiHost();
- API = goCourseApiHost;
- API_1484_11 = goCourseApiHost;
- (function() {
- window.frames['contentBody_FrameContent'].location.replace(panel.initialUrl);
- }).defer(500);
- });
- // These things are global and will not work with multiple player components on the same page (unless they are included in an iFrame
- function setItem(newGradingItem) {
- return playerPanel_FrameContent.setItem(newGradingItem);
- }
- function getItem() {
- return playerPanel_FrameContent.getItem();
- }
- function saveItem() {
- return playerPanel_FrameContent.saveItem();
- }
- function setItemPanel(newPanel) {
- return playerPanel_FrameContent.setItemPanel(newPanel);
- }
- function closeItem() {
- return playerPanel_FrameContent.closeItem();
- }
- function itemSaving(item) {
- return playerPanel_FrameContent.itemSaving(item);
- }
- function itemSaved(xmlNode) {
- return playerPanel_FrameContent.itemSaved(xmlNode);
- }
- function configureGroupSetup(sectionId) {
- return playerPanel_FrameContent.configureGroupSetup(sectionId);
- }
- function closeWindows(refresh) {
- return playerPanel_FrameContent.closeWindows(refresh);
- }
- //This is used by the exam review page. We need to figure out a way to make this refresh happen without a global function
- function recordItemTimeSpent() {
- return playerPanel_FrameContent.recordItemTimeSpent();
- }
- var DropboxType={SingleDocument:0,DocumentTemplate:1,MultipleDocuments:2,NotesOnly:3,Url:4,AudioRecording:5};
- var CompletionTrigger={Minutes:0,Submission:1,PassingScore:2,NotSet:-1};
- </script>
- </div>
- <script type="text/javascript">
- var jstz=function(){var b=function(a){a=-a.getTimezoneOffset();return null!==a?a:0},c=function(){return b(new Date(2010,0,1,0,0,0,0))},f=function(){return b(new Date(2010,5,1,0,0,0,0))},e=function(){var a=c(),d=f(),b=c()-f();return new jstz.TimeZone(jstz.olson.timezones[0>b?a+",1":0<b?d+",1,s":a+",0"])};return{determine_timezone:function(){"undefined"!==typeof console&&console.log("jstz.determine_timezone() is deprecated and will be removed in an upcoming version. Please use jstz.determine() instead.");
- return e()},determine:e,date_is_dst:function(a){var d=5<a.getMonth()?f():c(),a=b(a);return 0!==d-a}}}();jstz.TimeZone=function(b){var c=null,c=b;"undefined"!==typeof jstz.olson.ambiguity_list[c]&&function(){for(var b=jstz.olson.ambiguity_list[c],e=b.length,a=0,d=b[0];a<e;a+=1)if(d=b[a],jstz.date_is_dst(jstz.olson.dst_start_dates[d])){c=d;break}}();return{name:function(){return c}}};jstz.olson={};
- jstz.olson.timezones={"-720,0":"Etc/GMT+12","-660,0":"Pacific/Pago_Pago","-600,1":"America/Adak","-600,0":"Pacific/Honolulu","-570,0":"Pacific/Marquesas","-540,0":"Pacific/Gambier","-540,1":"America/Anchorage","-480,1":"America/Los_Angeles","-480,0":"Pacific/Pitcairn","-420,0":"America/Phoenix","-420,1":"America/Denver","-360,0":"America/Guatemala","-360,1":"America/Chicago","-360,1,s":"Pacific/Easter","-300,0":"America/Bogota","-300,1":"America/New_York","-270,0":"America/Caracas","-240,1":"America/Halifax",
- "-240,0":"America/Santo_Domingo","-240,1,s":"America/Asuncion","-210,1":"America/St_Johns","-180,1":"America/Godthab","-180,0":"America/Argentina/Buenos_Aires","-180,1,s":"America/Montevideo","-120,0":"America/Noronha","-120,1":"Etc/GMT+2","-60,1":"Atlantic/Azores","-60,0":"Atlantic/Cape_Verde","0,0":"Etc/UTC","0,1":"Europe/London","60,1":"Europe/Berlin","60,0":"Africa/Lagos","60,1,s":"Africa/Windhoek","120,1":"Asia/Beirut","120,0":"Africa/Johannesburg","180,1":"Europe/Moscow","180,0":"Asia/Baghdad",
- "210,1":"Asia/Tehran","240,0":"Asia/Dubai","240,1":"Asia/Yerevan","270,0":"Asia/Kabul","300,1":"Asia/Yekaterinburg","300,0":"Asia/Karachi","330,0":"Asia/Kolkata","345,0":"Asia/Kathmandu","360,0":"Asia/Dhaka","360,1":"Asia/Omsk","390,0":"Asia/Rangoon","420,1":"Asia/Krasnoyarsk","420,0":"Asia/Jakarta","480,0":"Asia/Shanghai","480,1":"Asia/Irkutsk","525,0":"Australia/Eucla","525,1,s":"Australia/Eucla","540,1":"Asia/Yakutsk","540,0":"Asia/Tokyo","570,0":"Australia/Darwin","570,1,s":"Australia/Adelaide",
- "600,0":"Australia/Brisbane","600,1":"Asia/Vladivostok","600,1,s":"Australia/Sydney","630,1,s":"Australia/Lord_Howe","660,1":"Asia/Kamchatka","660,0":"Pacific/Noumea","690,0":"Pacific/Norfolk","720,1,s":"Pacific/Auckland","720,0":"Pacific/Tarawa","765,1,s":"Pacific/Chatham","780,0":"Pacific/Tongatapu","780,1,s":"Pacific/Apia","840,0":"Pacific/Kiritimati"};
- jstz.olson.dst_start_dates={"America/Denver":new Date(2011,2,13,3,0,0,0),"America/Mazatlan":new Date(2011,3,3,3,0,0,0),"America/Chicago":new Date(2011,2,13,3,0,0,0),"America/Mexico_City":new Date(2011,3,3,3,0,0,0),"Atlantic/Stanley":new Date(2011,8,4,7,0,0,0),"America/Asuncion":new Date(2011,9,2,3,0,0,0),"America/Santiago":new Date(2011,9,9,3,0,0,0),"America/Campo_Grande":new Date(2011,9,16,5,0,0,0),"America/Montevideo":new Date(2011,9,2,3,0,0,0),"America/Sao_Paulo":new Date(2011,9,16,5,0,0,0),"America/Los_Angeles":new Date(2011,
- 2,13,8,0,0,0),"America/Santa_Isabel":new Date(2011,3,5,8,0,0,0),"America/Havana":new Date(2011,2,13,2,0,0,0),"America/New_York":new Date(2011,2,13,7,0,0,0),"Asia/Gaza":new Date(2011,2,26,23,0,0,0),"Asia/Beirut":new Date(2011,2,27,1,0,0,0),"Europe/Minsk":new Date(2011,2,27,2,0,0,0),"Europe/Helsinki":new Date(2011,2,27,4,0,0,0),"Europe/Istanbul":new Date(2011,2,28,5,0,0,0),"Asia/Damascus":new Date(2011,3,1,2,0,0,0),"Asia/Jerusalem":new Date(2011,3,1,6,0,0,0),"Africa/Cairo":new Date(2010,3,30,4,0,0,
- 0),"Asia/Yerevan":new Date(2011,2,27,4,0,0,0),"Asia/Baku":new Date(2011,2,27,8,0,0,0),"Pacific/Auckland":new Date(2011,8,26,7,0,0,0),"Pacific/Fiji":new Date(2010,11,29,23,0,0,0),"America/Halifax":new Date(2011,2,13,6,0,0,0),"America/Goose_Bay":new Date(2011,2,13,2,1,0,0),"America/Miquelon":new Date(2011,2,13,5,0,0,0),"America/Godthab":new Date(2011,2,27,1,0,0,0)};
- jstz.olson.ambiguity_list={"America/Denver":["America/Denver","America/Mazatlan"],"America/Chicago":["America/Chicago","America/Mexico_City"],"America/Asuncion":["Atlantic/Stanley","America/Asuncion","America/Santiago","America/Campo_Grande"],"America/Montevideo":["America/Montevideo","America/Sao_Paulo"],"Asia/Beirut":"Asia/Gaza Asia/Beirut Europe/Minsk Europe/Helsinki Europe/Istanbul Asia/Damascus Asia/Jerusalem Africa/Cairo".split(" "),"Asia/Yerevan":["Asia/Yerevan","Asia/Baku"],"Pacific/Auckland":["Pacific/Auckland",
- "Pacific/Fiji"],"America/Los_Angeles":["America/Los_Angeles","America/Santa_Isabel"],"America/New_York":["America/Havana","America/New_York"],"America/Halifax":["America/Goose_Bay","America/Halifax"],"America/Godthab":["America/Miquelon","America/Godthab"]};
- </script>
- <script type="text/javascript">
- // this is the source from frame.js
- FrameMethods = {
- gp_host: "https://www.pearsonmaterial.com",
- currentEnrollmentId: '',
- isTestStudent: false,
- init: function(config) {
- Ext.QuickTips.init();
- Ext.apply(this, config);
- this.getDomainType();
- //Update the user display name
- Ext.fly('userDropdown').update(FRAME_API.userDisplay);
- Ext.fly('h-home-link').update(FRAME_API.homeLabel);
- //Update the version tooltip for the logo
- // this.versionTooltip = new Ext.ToolTip({
- // title: 'BrainHoney',
- // target: 'frame-top-right-header',
- // html: FRAME_API.appVersion,
- // mouseOffset: [-150, -20],
- // showDelay: 3000
- // });
- Ext.fly('frame-top-right-header').on('dblclick', function() {
- this.showPageDetails();
- }, this);
- //Hook up events for links
- Ext.fly('h-home-btn').on('click', function() { this.launchHome() }, this);
- Ext.fly('h-course-btn').on('click', this.showCoursesMenu, this);
- Ext.fly('h-catalog-btn').on('click', function() {
- if(!Ext.isEmpty(FRAME_API.catalogEntries)) {
- window.location = FRAME_API.frameRoot + '/Component/CatalogHost?catalog=' + encodeURIComponent(FRAME_API.catalogEntries[0].url) + '&name=' + encodeURIComponent(FRAME_API.catalogEntries[0].name);
- }
- }, this);
- Ext.fly('h-admin-btn').on('click', function() {
- window.location = FRAME_API.frameRoot + '/Component/AdminDomainDetail?domainid=' + FRAME_API.domainId;
- }, this);
- Ext.fly('frame-view-home').on('click', function() { this.launchHome() }, this);
- Ext.fly('frame-view-syllabus').on('click', function() { this.launchSyllabus() }, this);
- Ext.fly('frame-view-course').on('click', function() { this.launchCourseViewer() }, this);
- Ext.fly('frame-view-grades').on('click', function() { this.launchGrades() }, this);
- Ext.fly('frame-view-gradebook').on('click', function() { this.launchGradebook() }, this);
- Ext.fly('frame-view-finalgrades').on('click', function() { this.launchFinalGrades() }, this);
- Ext.fly('frame-view-objectives').on('click', function() { this.launchObjectiveSummary() }, this);
- Ext.fly('frame-view-activity').on('click', function () { this.launchActivity() }, this);
- Ext.fly('gp-resources-home-tab').on('click', function() { this.launchGpResources() }, this);
- Ext.fly('gp-reports-home-tab').on('click', function() { this.launchGpReports() }, this);
- Ext.fly('frame-view-syllabus').setVisibilityMode(Ext.Element.DISPLAY);
- Ext.fly('frame-view-course').setVisibilityMode(Ext.Element.DISPLAY);
- Ext.fly('frame-view-grades').setVisibilityMode(Ext.Element.DISPLAY);
- Ext.fly('frame-view-gradebook').setVisibilityMode(Ext.Element.DISPLAY);
- Ext.fly('frame-view-finalgrades').setVisibilityMode(Ext.Element.DISPLAY);
- Ext.fly('frame-view-objectives').setVisibilityMode(Ext.Element.DISPLAY);
- Ext.fly('frame-view-activity').setVisibilityMode(Ext.Element.DISPLAY);
- if (ref = Ext.fly('frame-view-testanalytics')) {
- ref.on('click', function () { this.launchTestAnalytics() }, this);
- ref.setVisibilityMode(Ext.Element.DISPLAY);
- }
- Ext.fly('h-catalog-btn').setVisibilityMode(Ext.Element.DISPLAY);
- Ext.fly('h-admin-btn').setVisibilityMode(Ext.Element.DISPLAY);
- Ext.fly('gp-reports-home-tab').setVisible(false);
- Ext.fly('gp-resources-home-tab').setVisible(true);
- /*Removed the gp-tools condition*/
- Ext.fly('h-home-btn').setVisible(true);
- if(!Ext.isEmpty(FRAME_API.enrollments)) {
- Ext.fly('h-course-btn').setVisible(true);
- }
- else {
- Ext.fly('h-course-btn-dropdown').setVisibilityMode(Ext.Element.DISPLAY);
- Ext.fly('h-course-btn-dropdown').setVisible(false);
- }
- if(!Ext.isEmpty(FRAME_API.catalogEntries)) {
- Ext.fly('h-catalog-btn').setVisible(true);
- }
- // get enrollments and determine the enrollment rights
- var enrollments = FRAME_API.enrollments;
- var studentEnrollment = false;
- var nonStudentEnrollment = false;
- for(var i=0; i<enrollments.length; i++) {
- var enrollment = enrollments[i];
- if(!Ext.isEmpty(enrollment.id) && enrollment.isStudent) {
- studentEnrollment = true;
- }
- if(!Ext.isEmpty(enrollment.id) && (enrollment.canEdit || enrollment.isTeacher || enrollment.canReportGrades || FRAME_API.hasRight(Privileges.ReportCourse, enrollment.courseRights))) {
- nonStudentEnrollment = true;
- }
- }
- /* loop through all enrollments
- turn off reports if all enrollments are student enrollments OR
- there are no enrollments and no admin, teach a course permissions
- alert ("student: " + studentEnrollment +", non-student: " + nonStudentEnrollment + ", teach a course: " + FRAME_API.canTeachACourse + ", admin: " + FRAME_API.isAdmin + ", user id: " + FRAME_API.userId);
- */
- if (studentEnrollment || (enrollments.length == 0 && !FRAME_API.isAdmin && !FRAME_API.canTeachACourse)){
- Ext.fly('gp-reports-home-tab').setVisible(false);
- Ext.fly('gp-reports-home-tab').setStyle('display', 'none');
- Ext.fly('gp-tools').setVisible(false);
- Ext.fly('gp-tools').setStyle('display', 'none');
- }
- if (FRAME_API.hasRight(Privileges.ControlDomain, FRAME_API.rights) || FRAME_API.contentState.type == 'syllabus' || FRAME_API.canTeachACourse) {
- Ext.fly('gp-tools').setVisible(true);
- }
- // turn on reports if there is ateleast one non student enrollment or admin or teach a course permissions
- if ((FRAME_API.isAdmin || FRAME_API.canTeachACourse || nonStudentEnrollment || FRAME_API.canProxy) && (FRAME_API.rights != '0' && FRAME_API.rights != '131072')) {
- Ext.fly('gp-reports-home-tab').setVisible(true);
- }
- if(FRAME_API.isAdmin) {
- Ext.fly('h-admin-btn').setVisible(true);
- }
- Ext.fly('frame-admin-dashboard').on('click', function() {
- var domainId = this.getAdminDomainId();
- window.location = FRAME_API.frameRoot + '/Component/AdminDomainDashboard?domainid=' + domainId;
- }, this);
- Ext.fly('frame-admin-domaindetail').on('click', function() {
- var domainId = this.getAdminDomainId();
- window.location = FRAME_API.frameRoot + '/Component/AdminDomainDetail?domainid=' + domainId;
- }, this);
- Ext.fly('frame-admin-users').on('click', function() {
- var domainId = this.getAdminDomainId();
- window.location = FRAME_API.frameRoot + '/Component/AdminUsers?domainid=' + domainId;
- }, this);
- Ext.fly('frame-admin-courses').on('click', function() {
- var domainId = this.getAdminDomainId();
- window.location = FRAME_API.frameRoot + '/Component/AdminCourses?domainid=' + domainId;
- }, this);
- if(FRAME_API.isProxy) {
- Ext.fly('frame-logout').update(this._Unproxy);
- }
- Ext.fly('frame-logout').on('click', function() {
- if(FRAME_API.isProxy) {
- FRAME_API.unproxy();
- }
- else {
- FRAME_API.logout();
- }
- }, this);
- Ext.fly('hdHelp').on('click', function() {
- FRAME_API.launchHelp();
- }, this);
- Ext.fly('frame-account').on('click', this.showAccountMenu, this);
- Ext.fly('frame-teachacourse').on('click', this.launchTeachACourse, this);
- Ext.fly('frame-calendar').on('click', this.launchCalendar, this);
- Ext.fly('frame-communicate').on('click', this.showCommunicateMenu, this);
- Ext.fly('gp-tools').on('click', this.showToolsMenu, this);
- if(FRAME_API.canTeachACourse) {
- Ext.fly('frame-teachacourse').setStyle('display', '');
- }
- // Add menuitems
- for (var i=0;i < FRAME_API.menuEntries.length;i++)
- {
- var entry = FRAME_API.menuEntries[i];
- var target = '';
- switch (entry.type)
- {
- case 'Home': target = 'sh-home'; break;
- case 'Course': target = 'sh-courses'; break;
- case 'Admin': target = 'sh-admin'; break;
- case 'Top': target = 'frame-top-header-buttons'; break;
- }
- if (entry.type == 'Top') {
- // Create Top menu with the given icon.
- var entryId = entry.id;
- var menuDiv = Ext.DomHelper.append(target, {
- tag: 'div',
- id: 'h-' + entryId + '-btn',
- cls: 'top_header_button',
- children: [{
- tag: 'div',
- cls: 'top_header_button_img custom_top_header_' + entryId,
- 'ext:qtip': entry.text,
- 'data-label': entry.text
- }]
- });
- var icon = this.getIconPath(entry);
- if (icon) {
- Ext.fly(menuDiv).set({ 'style': 'background-image:url(' + icon + ');background-position:50% 50%;background-repeat:no-repeat no-repeat;' });
- }
- Ext.fly(menuDiv).on('click', this.launchCustomMenuItem.createDelegate(this, [
- entry.url, entry.target, entry.features
- ]));
- Ext.fly('h-' + entryId + '-btn').setVisibilityMode(Ext.Element.DISPLAY);
- // Check for submenus for top menu, if any create submenus under top menu.
- if (entry.submenus.length > 0) {
- var subMenu = Ext.DomHelper.append('frame-sub-header', {
- tag: 'div',
- id: 'sh-' + entryId,
- style: 'display:none'
- });
- for (var s = 0; s < entry.submenus.length; s++) {
- this.addSubmenu(entry.submenus[s], subMenu);
- }
- }
- }
- if (!Ext.isEmpty(target))
- {
- var menu = {
- tag: 'div',
- cls: 'sub_header_list',
- children: [{
- tag: 'a',
- cls: 'no_underline_link',
- href: 'javascript:void(0)',
- html: entry.text
- }]
- };
- var div;
- if(entry.type == 'Home') {
- target = Ext.get(target).child('div');
- div = Ext.DomHelper.insertAfter(target, menu);
- }
- else {
- div = Ext.DomHelper.append(target, menu);
- }
- Ext.fly(div).on('click', this.launchCustomMenuItem.createDelegate(this,[entry.url,entry.target,entry.features]));
- }
- }
- for (var i=0;i < FRAME_API.catalogEntries.length;i++)
- {
- // Add the links to the catalog
- var link = {
- tag: 'div',
- cls: 'sub_header_list',
- children: [{
- tag: 'a',
- cls: 'no_underline_link',
- href: FRAME_API.frameRoot +
- '/Component/CatalogHost?catalog=' + encodeURIComponent(FRAME_API.catalogEntries[i].url) +
- '&name=' + encodeURIComponent(FRAME_API.catalogEntries[i].name),
- html: FRAME_API.catalogEntries[i].name
- }]
- };
- Ext.DomHelper.append('sh-catalog', link);
- }
- //Update content from current state (in case some component has set the state before we got initialized)
- this.updateVisualsForCurrentEnrollment(FRAME_API.currentEnrollment);
- //Add listeners for frame/content state changes
- FRAME_API.addListener('currentenrollmentchanged', this.updateVisualsForCurrentEnrollment, this);
- this.updatePageTitle(FRAME_API.contentState);
- //Add listeners for frame/content state changes
- FRAME_API.addListener('contentstatechanged', this.updatePageTitle, this);
- var actions = FRAME_API.getRegisteredActions();
- if(actions != null && actions.length > 0) {
- for(var i=0; i<actions.length; i++) {
- var action = actions[i];
- this.actionRegistered(action.action, action.handler, action.scope);
- }
- }
- FRAME_API.addListener('actionregistered', this.actionRegistered, this);
- //begin change: idle tracking
- //add custom code to do idle tracking
- this.IframeIdleTrackerManager.init(1);
- //idle time limit is set by first parameter, currently 30 minutes in GradPoint - increased to 60 minutes per customer demand 4/20/15
- //the second parameter is idle time limit to show the idle dialog, currently 2 minutes of idle time detection - increased to 5 minutes per customer demand 4/21/15
- //the third parameter is how often to check if idleness reaches the max limit
- this.startIdleTracking(55, 5, 1);
- this.IframeIdleTrackerManager.start();
- //end change: idle tracking
- },
- //begin change: idle tracking
- startIdleTracking: function (idleMax, messageboxIdleMax, trackInterval) {
- this.idleCount = 0;
- this.idleMessageTimer = null;
- this.oldPosition = { x: 0, y: 0 };
- that = this;
- setInterval(function () {
- that.idleCount++;
- //scan the iframe to catch any new ones launched after the page is loaded
- that.IframeIdleTrackerManager.start();
- if (that.idleCount >= idleMax && that.idleMessageTimer == null) {
- that.idleMessageTimer = setTimeout(function () {
- FRAME_API.setShowBeforeUnloadPrompts(false);
- FRAME_API.logout();
- }, messageboxIdleMax * 60 * 1000);
- Ext.MessageBox.confirm(that._AreYouSure, 'Your session is about to timeout. Do you still want to continue your work?', function (result) {
- if (result == 'yes') {
- clearTimeout(that.idleMessageTimer);
- that.idleCount = 0;
- that.idleMessageTimer = null;
- }
- else if (result == 'no') {
- clearTimeout(that.idleMessageTimer);
- FRAME_API.setShowBeforeUnloadPrompts(false);
- FRAME_API.logout();
- }
- });
- }
- }, trackInterval * 60 * 1000);
- window.addEventListener('mousepositionchanged', function (evt) { that.resetIdleCountFromIFrame(evt, that); }, false);
- document.addEventListener('mousemove', function (evt) { that.resetIdleCount(evt, that); }, false);
- },
- resetIdleCount: function (evt, frameObj) {
- if (evt.clientX != frameObj.oldPosition.x || evt.clientY != frameObj.oldPosition.y) {
- frameObj.oldPosition = { x: evt.clientX, y: evt.clientY };
- frameObj.idleCount = 0;
- }
- },
- resetIdleCountFromIFrame: function(evt, frameObj) {
- frameObj.idleCount = 0;
- },
- //end change: idle tracking
- getAdminDomainId: function() {
- if(!Ext.isEmpty(FRAME_API.contentState) &&
- !Ext.isEmpty(FRAME_API.contentState.domainId)) {
- return FRAME_API.contentState.domainId;
- }
- return FRAME_API.domainId;
- },
- updateVisualsForCurrentEnrollment: function(o) {
- if(o != null) {
- //Update the combo box
- this.currentEnrollmentId = '';
- var found = false;
- var enrollments = FRAME_API.enrollments;
- if(!Ext.isEmpty(o.id)) {
- if(FRAME_API.findEnrollment(o.id) != null) {
- this.currentEnrollmentId = o.id;
- found = true;
- }
- else {
- //Add a new record to the combo?
- }
- }
- if(!found && !Ext.isEmpty(o.sectionId)) {
- for(var i=0; i<enrollments.length; i++) {
- var enrollment = enrollments[i];
- if(!Ext.isEmpty(enrollment.id) && enrollment.sectionId == o.sectionId) {
- this.currentEnrollmentId = enrollment.id;
- found = true;
- break;
- }
- }
- }
- if(!found && !Ext.isEmpty(o.courseId)) {
- for(var i=0; i<enrollments.length; i++) {
- var enrollment = enrollments[i];
- if(!Ext.isEmpty(enrollment.id) && enrollment.courseId == o.courseId) {
- this.currentEnrollmentId = enrollment.id;
- found = true;
- break;
- }
- }
- }
- if(!found) {
- this.currentEnrollmentId = o.id;
- }
- //Update the sub links
- Ext.fly('frame-view-course').setVisible(true);
- Ext.fly('frame-view-grades').setVisible(o.isStudent);
- Ext.fly('frame-view-syllabus').setVisible(o.canEdit);
- Ext.fly('frame-view-gradebook').setVisible(o.isTeacher && !o.courseEnrollment);
- Ext.fly('frame-view-finalgrades').setVisible(o.canReportGrades && !o.courseEnrollment);
- Ext.fly('frame-view-objectives').setVisible(!FRAME_API.hideObjectives &&
- (((o.isTeacher || o.isStudent) && !o.courseEnrollment) || FRAME_API.hasRight(Privileges.ReportCourse, o.courseRights)));
- Ext.fly('frame-view-testanalytics').setVisible(((o.isTeacher && !o.courseEnrollment) || FRAME_API.hasRight(Privileges.ReportCourse, o.courseRights)));
- Ext.fly('frame-view-activity').setVisible(o.isStudent);
- Ext.fly('frame-communicate').setVisible((o.isTeacher || o.isStudent) && !o.courseEnrollment && (o.userId == FRAME_API.proxyUserId));
- this.isTestStudent = o.isTestStudent;
- this.updatePageTitle(FRAME_API.contentState);
- }
- },
- actionRegistered: function(action, f, scope) {
- var el = null;
- switch(action) {
- case 'next':
- el = Ext.get('frame-next-link');
- break;
- case 'previous':
- el = Ext.get('frame-prev-link');
- break;
- case 'edit':
- el = Ext.get('frame-edit-link');
- break;
- default:
- break;
- }
- if(el != null) {
- el.dom.style.display = '';
- el.on('click', f, scope);
- }
- },
- updatePageTitle: function (o) {
- if (o != null) {
- Ext.fly('h-home-btn').removeClass('top_header_active_button');
- Ext.fly('h-course-btn').removeClass('top_header_active_button');
- Ext.fly('h-catalog-btn').removeClass('top_header_active_button');
- Ext.fly('h-admin-btn').removeClass('top_header_active_button');
- Ext.fly('sh-home').setStyle('display', 'none');
- Ext.fly('sh-courses').setStyle('display', 'none');
- Ext.fly('sh-catalog').setStyle('display', 'none');
- Ext.fly('sh-admin').setStyle('display', 'none');
- Ext.fly('sh-common').setStyle('display', 'none');
- Ext.select('*[class=*=sub_header_active]').removeClass('sub_header_active');
- //Update the top-level buttons
- var button = null;
- var subMenuId = 'frame-' + o.type;
- var menu = null;
- var hasCommon = false;
- var isHome = false;
- var topType = 'home';
- switch (o.type) {
- case 'admin':
- case 'dualgradingsummary':
- button = Ext.get('h-admin-btn');
- menu = Ext.get('sh-admin');
- if (o.type == 'dualgradingsummary') {
- subMenuId = 'frame-admin-courses';
- }
- break;
- case 'catalog':
- button = Ext.get('h-catalog-btn');
- menu = Ext.get('sh-catalog');
- break;
- case 'syllabus':
- case 'gradebook':
- case 'accessiblegradebook':
- case 'finalgrades':
- case 'studentgrades':
- case 'courseplayer':
- case 'activityplayer':
- case 'contentplayer':
- case 'objectivesummary':
- case 'testanalytics':
- case 'studentactivity':
- button = Ext.get('h-course-btn');
- menu = Ext.get('sh-courses');
- hasCommon = true;
- subMenuId = 'frame-view-' + o.type;
- switch (o.type) {
- case 'objectivesummary':
- subMenuId = 'frame-view-objectives';
- break;
- case 'studentgrades':
- subMenuId = 'frame-view-grades';
- break;
- case 'studentactivity':
- subMenuId = 'frame-view-activity';
- break;
- case 'testanalytics':
- subMenuId = 'frame-view-testanalytics';
- break;
- case 'courseplayer':
- case 'activityplayer':
- case 'contentplayer':
- subMenuId = 'frame-view-course';
- break;
- }
- break;
- case 'announcements':
- case 'recentposts':
- if (!Ext.isEmpty(o.enrollmentId)) {
- button = Ext.get('h-course-btn');
- menu = Ext.get('sh-courses');
- hasCommon = true;
- }
- else {
- button = Ext.get('h-home-btn');
- menu = Ext.get('sh-home');
- hasCommon = true;
- isHome = true;
- }
- subMenuId = 'frame-communicate';
- break;
- case 'home':
- case 'teachacourse':
- case 'calendar':
- default:
- if (!Ext.isEmpty(o.type) && o.type.indexOf('admin-') == 0) {
- button = Ext.get('h-admin-btn');
- menu = Ext.get('sh-admin');
- }
- else {
- if (o.topHeader) {
- topType = o.topHeader;
- hasCommon = false;
- isHome = false;
- }
- else {
- hasCommon = true;
- isHome = true;
- }
- if (o.type == 'home') {
- subMenuId = 'frame-view-home';
- }
- else if (o.subHeader) {
- subMenuId = 'frame-' + o.subHeader;
- }
- button = Ext.get('h-' + topType + '-btn');
- menu = Ext.get('sh-' + topType);
- }
- break;
- }
- if (button) {
- if (!button.isVisible()) {
- button.setVisible(true);
- }
- button.addClass('top_header_active_button');
- }
- if (menu) {
- menu.setStyle('display', '');
- }
- var subMenu = Ext.get(subMenuId);
- if (subMenu) {
- subMenu.addClass('sub_header_active');
- }
- if (hasCommon) {
- Ext.fly('sh-common').setStyle('display', '');
- if (isHome) {
- Ext.fly('frame-communicate').setVisible(true);
- }
- }
- //Update the page title
- if (!Ext.isEmpty(o.pageTitle) ||
- !Ext.isEmpty(o.subTitle1) ||
- !Ext.isEmpty(o.subTitle2)) {
- this.setPageTitle(o.pageTitle, o.subTitle1, o.subTitle2);
- }
- }
- },
- setPageTitle: function(title, subtitle1, subtitle2) {
- if(this.isTestStudent) {
- if(Ext.isEmpty(subtitle2)) {
- if(!Ext.isEmpty(subtitle1)) {
- subtitle1 += ' ';
- }
- else {
- subtitle1 = '';
- }
- subtitle1 += this._AsTestStudent;
- }
- else {
- subtitle2 += ' ' + this._AsTestStudent;
- }
- }
- Ext.fly('hdPageTitle').update(Ext.util.Format.htmlEncode(title));
- Ext.fly('hdCourseTitle').update(Ext.util.Format.htmlEncode(subtitle1));
- Ext.fly('hdSectionTitle').update(Ext.util.Format.htmlEncode(subtitle2));
- var windowTitle = title;
- if (!Ext.isEmpty(title) && (!Ext.isEmpty(subtitle1) || !Ext.isEmpty(subtitle2))) {
- document.getElementById('hdPageTitleSeparator').style.display = '';
- windowTitle += ' - ';
- }
- else {
- document.getElementById('hdPageTitleSeparator').style.display = 'none';
- }
- if (Ext.isEmpty(subtitle1)) {
- document.getElementById('hdCourseTitle').style.display = 'none';
- document.getElementById('hdCourseSeparator').style.display = 'none';
- }
- else {
- document.getElementById('hdCourseTitle').style.display = '';
- document.getElementById('hdCourseSeparator').style.display = '';
- windowTitle += subtitle1;
- }
- if (Ext.isEmpty(subtitle2)) {
- document.getElementById('hdCourseSeparator').style.display = 'none';
- document.getElementById('hdSectionTitle').style.display = 'none';
- }
- else {
- document.getElementById('hdCourseSeparator').style.display = '';
- document.getElementById('hdSectionTitle').style.display = '';
- if (!Ext.isEmpty(subtitle1)) {
- windowTitle += ' - ';
- }
- windowTitle += subtitle2;
- }
- if(this.qtipsRegistered) {
- Ext.QuickTips.unregister('hdPageTitle');
- Ext.QuickTips.unregister('hdCourseTitle');
- Ext.QuickTips.unregister('hdSectionTitle');
- this.qtipsRegistered = false;
- }
- if (!Ext.isEmpty(windowTitle)) {
- document.title = windowTitle + ' - ' + this._TitleBase;
- Ext.QuickTips.register({ target: 'hdPageTitle', text: windowTitle });
- Ext.QuickTips.register({ target: 'hdCourseTitle', text: windowTitle });
- Ext.QuickTips.register({ target: 'hdSectionTitle', text: windowTitle });
- this.qtipsRegistered = true;
- }
- else {
- document.title = this._TitleBase;
- }
- },
- showPageDetails: function() {
- var buf = [],
- rowFormat = '<tr><td style="text-align:right;"><b>{0}</b>: </td><td style="vertical-align:bottom">{1}</td></tr>',
- details,
- state,
- pageSizeObj;
- state = FRAME_API.contentState;
- if(!state) {
- return;
- }
- buf.push('<table cellspacing="0" cellpadding="0">');
- buf.push(String.format(rowFormat, this._Version, FRAME_API.appVersion));
- buf.push(String.format(rowFormat, this._UserId, FRAME_API.userId));
- if (FRAME_API.proxyUserId != FRAME_API.userId) {
- buf.push(String.format(rowFormat, this._ProxyUserId, FRAME_API.proxyUserId));
- }
- buf.push(String.format(rowFormat, this._DomainId, FRAME_API.domainId));
- buf.push(String.format(rowFormat, this._Page, state.type));
- if(state.enrollmentId) buf.push(String.format(rowFormat, this._EnrollmentId, state.enrollmentId));
- if(state.studentEnrollmentId && state.studentEnrollmentId != state.enrollmentId) buf.push(String.format(rowFormat, this._StudentEnrollmentId, state.studentEnrollmentId));
- if(state.courseId) buf.push(String.format(rowFormat, this._CourseId, state.courseId));
- if(state.sectionId) buf.push(String.format(rowFormat, this._SectionId, state.sectionId));
- if(state.groupId) buf.push(String.format(rowFormat, this._GroupId, state.groupId));
- if(state.itemId) buf.push(String.format(rowFormat, this._ItemId, state.itemId));
- buf.push('</table>');
- details = buf.join('');
- pageSizeObj = Ext.get(document.body).getSize();
- (new Ext.Window({
- x: pageSizeObj.width - 250,
- y: 0,
- width: 250,
- height: 125,
- title: this._Details,
- hideBorders: true,
- plain: true,
- modal: false,
- closable: true,
- resizable: false,
- draggable: false,
- layout: 'fit',
- items: [{
- autoScroll: true,
- html: details
- }]
- })).show();
- },
- showCoursesMenu: function() {
- if(Ext.isEmpty(FRAME_API.enrollments)) {
- return;
- }
- if(this.coursesMenu == null) {
- var items = [];
- for(var i=0; i<FRAME_API.enrollments.length; i++) {
- var e = FRAME_API.enrollments[i];
- var text = e.courseDisplay;
- if(e.isTestStudent) {
- text += ' ' + this._AsTestStudent;
- }
- items.push({
- text: Ext.util.Format.htmlEncode(text),
- scope: this,
- href: 'javascript:void(0)',
- handler: this.chooseCourse.createDelegate(this, [e.id])
- });
- }
- this.coursesMenu = new Ext.menu.Menu({
- items: items
- });
- }
- this.coursesMenu.show('h-course-btn');
- },
- chooseCourse: function(eid) {
- var e = FRAME_API.findEnrollment(eid);
- if(e != null && FRAME_API.contentState != null) {
- var handled = false;
- switch(FRAME_API.contentState.type) {
- case 'syllabus':
- if(e.canEdit) {
- this.launchSyllabus(eid);
- handled = true;
- }
- break;
- case 'courseplayer':
- this.launchCourseViewer(eid);
- handled = true;
- break;
- case 'announcements':
- this.launchAnnouncements(eid);
- handled = true;
- break;
- case 'recentposts':
- this.launchNewPosts(eid);
- handled = true;
- break;
- case 'studentgrades':
- if(e.isStudent) {
- this.launchGrades(eid);
- handled = true;
- }
- break;
- case 'gradebook':
- if(e.isTeacher) {
- this.launchGradebook(eid);
- handled = true;
- }
- break;
- case 'finalgrades':
- if(e.canReportGrades) {
- this.launchFinalGrades(eid);
- handled = true;
- }
- break;
- case 'objectivesummary':
- if(e.isTeacher || e.isStudent || FRAME_API.hasRight(Privileges.ReportCourse, e.courseRights)) {
- this.launchObjectiveSummary(eid);
- handled = true;
- }
- break;
- case 'testanalytics':
- if (e.isTeacher) {
- this.launchTestAnalytics(eid);
- handled = true;
- }
- break;
- case 'studentactivity':
- if (e.isStudent) {
- this.launchActivity(eid);
- handled = true;
- }
- break;
- }
- if(!handled) {
- this.launchCourseViewer(eid);
- }
- }
- },
- showAccountMenu: function() {
- if(this.accountMenu == null) {
- var items = [{
- text: Ext.util.Format.htmlEncode(this._UserProfile),
- scope: this,
- href: 'javascript:void(0)',
- handler: this.launchProfile
- },{
- text: Ext.util.Format.htmlEncode(this._TranscriptTitle),
- scope: this,
- href: 'javascript:void(0)',
- handler: this.launchTranscript
- },{
- text: Ext.util.Format.htmlEncode(this._Proxy),
- hidden: !FRAME_API.canProxy,
- scope: this,
- href: 'javascript:void(0)',
- handler: this.proxy
- },{
- text: Ext.util.Format.htmlEncode(this._MobileView),
- hidden: !FRAME_API.showMobileViewMenuItem,
- icon: FRAME_API.mobileViewEnabled ? FRAME_API.appRoot + '/Images/check2.png' : Ext.BLANK_IMAGE_URL,
- scope: this,
- href: 'javascript:void(0)',
- handler: this.changeMobileView
- }];
- if(FRAME_API.currentEnrollment) {
- //Teacher/Author enrollment
- if((FRAME_API.currentEnrollment.rights & (Privileges.ControlCourse | Privileges.ControlSection)) != Privileges.None &&
- FRAME_API.currentEnrollment.id != FRAME_API.currentEnrollment.courseId &&
- FRAME_API.currentEnrollment.id != FRAME_API.currentEnrollment.sectionId) {
- //Find out if we already have a test account
- var testEid = '';
- for(var i=0; i<FRAME_API.enrollments.length; i++) {
- var other = FRAME_API.enrollments[i];
- if(other.isTestStudent &&
- other.courseId == FRAME_API.currentEnrollment.courseId) {
- testEid = other.id;
- break;
- }
- }
- items.push('-', {
- text: Ext.util.Format.htmlEncode(this._ViewAsStudent),
- disabled: Ext.isEmpty(testEid),
- scope: this,
- href: 'javascript:void(0)',
- handler: this.chooseCourse.createDelegate(this, [testEid])
- });
- if(!Ext.isEmpty(testEid)) {
- items.push({
- text: Ext.util.Format.htmlEncode(this._RemoveStudentEnrollment),
- scope: this,
- href: 'javascript:void(0)',
- handler: this.removeStudentEnrollment.createDelegate(this, [testEid, FRAME_API.currentEnrollment.id])
- },{
- text: Ext.util.Format.htmlEncode(this._ResetStudentEnrollment),
- scope: this,
- href: 'javascript:void(0)',
- handler: this.removeStudentEnrollment.createDelegate(this, [testEid, FRAME_API.currentEnrollment.id, true])
- });
- }
- else {
- items.push({
- text: Ext.util.Format.htmlEncode(this._AddStudentEnrollment),
- scope: this,
- href: 'javascript:void(0)',
- handler: this.addStudentEnrollment.createDelegate(this, [FRAME_API.currentEnrollment.id])
- });
- }
- }
- //Test student account
- else if(FRAME_API.currentEnrollment.isTestStudent) {
- //Find the teacher enrollment ID
- var teacherEid = '';
- for(var i=0; i<FRAME_API.enrollments.length; i++) {
- var other = FRAME_API.enrollments[i];
- if((other.rights & (Privileges.ControlCourse | Privileges.ControlSection)) != Privileges.None &&
- other.courseId == FRAME_API.currentEnrollment.courseId) {
- teacherEid = other.id;
- break;
- }
- }
- if (!Ext.isEmpty(teacherEid)) {
- items.push('-', {
- text: Ext.util.Format.htmlEncode(this._ViewAsTeacher),
- scope: this,
- href: 'javascript:void(0)',
- handler: this.chooseCourse.createDelegate(this, [teacherEid])
- },{
- text: Ext.util.Format.htmlEncode(this._RemoveStudentEnrollment),
- scope: this,
- href: 'javascript:void(0)',
- handler: this.removeStudentEnrollment.createDelegate(this, [FRAME_API.currentEnrollment.id, teacherEid])
- },{
- text: Ext.util.Format.htmlEncode(this._ResetStudentEnrollment),
- scope: this,
- href: 'javascript:void(0)',
- handler: this.removeStudentEnrollment.createDelegate(this, [FRAME_API.currentEnrollment.id, teacherEid, true])
- });
- }
- }
- }
- this.accountMenu = new Ext.menu.Menu({
- items: items
- });
- }
- this.accountMenu.show('userDropdown');
- },
- showCommunicateMenu: function() {
- if(this.communicateMenu == null) {
- var menuItems = [{
- text: Ext.util.Format.htmlEncode(this._AnnouncementsTitle),
- scope: this,
- href: 'javascript:void(0)',
- handler: this.launchAnnouncements.createDelegate(this, [null])
- }];
- // show Conferencing only if it makes sense
- var showConf = false;
- var e = FRAME_API.findEnrollment(this.currentEnrollmentId);
- // If it's not setup on the domain, no functions will work, so don't show it.
- if (FRAME_API.canConference) {
- showConf = true;
- if (!Ext.isEmpty(e)) {
- // enrollment-specific menu: show Conference only if it's enabled for this enrollment,
- // teachers always see it as it's the means to enable conferencing on the course
- showConf = e.canConference || e.isTeacher;
- }
- if (showConf) {
- menuItems.push({
- text: Ext.util.Format.htmlEncode(this._Conferencing),
- scope: this,
- href: 'javascript:void(0)',
- handler: this.launchConferencing
- });
- }
- }
- var sendMailItem = null;
- var newPostsItem = null;
- if(!Ext.isEmpty(e) && (e.isTeacher || e.isStudent)) {
- sendMailItem = {
- text: Ext.util.Format.htmlEncode(this._SendMail),
- scope: this,
- href: 'javascript:void(0)',
- handler: function() { this.sendEmail(); }
- };
- newPostsItem = {
- text: Ext.util.Format.htmlEncode(this._NewPosts),
- scope: this,
- href: 'javascript:void(0)',
- handler: function() { this.launchNewPosts(); }
- };
- }
- else if(!Ext.isEmpty(FRAME_API.enrollments)) {
- //Provide a submenu with all enrollments
- var mailItems = [];
- for(var i=0; i<FRAME_API.enrollments.length; i++) {
- var e = FRAME_API.enrollments[i];
- if(e.isTeacher || e.isStudent) {
- var title = e.courseTitle;
- if(!Ext.isEmpty(e.sectionTitle)) {
- title += ' - ' + e.sectionTitle;
- }
- mailItems.push({
- text: Ext.util.Format.htmlEncode(title),
- scope: this,
- href: 'javascript:void(0)',
- handler: this.sendEmail.createDelegate(this, [e.id])
- });
- }
- }
- if(mailItems.length > 0) {
- sendMailItem = {
- text: Ext.util.Format.htmlEncode(this._SendMail),
- href: 'javascript:void(0)',
- hideOnClick: false,
- menu: {
- items: mailItems
- }
- }
- }
- }
- if(sendMailItem != null) {
- menuItems.splice(0, 0, sendMailItem);
- }
- if(newPostsItem != null) {
- menuItems.splice(menuItems.length-1, 0, newPostsItem);
- }
- this.communicateMenu = new Ext.menu.Menu({
- items: menuItems
- });
- // Add the communicate menu items
- for (var i=0;i < FRAME_API.menuEntries.length;i++)
- {
- var entry = FRAME_API.menuEntries[i];
- if (entry.type != 'Home' && entry.type != 'Course' && entry.type != 'Admin')
- {
- if (entry.text == '-')
- {
- this.communicateMenu.addSeparator();
- }
- else
- {
- this.communicateMenu.addItem(new Ext.menu.Item({
- text: Ext.util.Format.htmlEncode(entry.text),
- href: 'javascript:void(0)',
- handler: this.launchCustomMenuItem.createDelegate(this,[entry.url,entry.target,entry.features])
- }));
- }
- }
- }
- }
- this.communicateMenu.show('frame-communicate');
- },
- showToolsMenu: function() {
- if(this.toolsMenu == null) {
- adminToolItem = {
- text: Ext.util.Format.htmlEncode("Admin Tool"),
- scope: this,
- href: 'javascript:void(0)',
- handler: this.launchAdminTool.createDelegate(this, [null])
- };
- courseManagementItem = {
- text: Ext.util.Format.htmlEncode("Course Management"),
- scope: this,
- href: 'javascript:void(0)',
- handler: this.launchCourseManagement.createDelegate(this, [null])
- };
- globalCourseSettingsItem = {
- text: Ext.util.Format.htmlEncode("Global Course Settings"),
- scope: this,
- href: 'javascript:void(0)',
- handler: this.launchGroupSettings.createDelegate(this, [null])
- };
- digitalLibraryDashboardItem = {
- text: Ext.util.Format.htmlEncode("Digital Library Dashboard"),
- scope: this,
- href: 'javascript:void(0)',
- handler: this.launchDigitalLibraryDashboard.createDelegate(this, [null])
- };
- studentTransferItem = {
- text: Ext.util.Format.htmlEncode("Student Transfer"),
- scope: this,
- href: 'javascript:void(0)',
- handler: this.launchStudentTransfer.createDelegate(this, [null])
- };
- var menuItems = [];
- if(FRAME_API.hasRight(Privileges.ControlDomain, FRAME_API.rights)){
- // 1721 = pearson
- // 1722 = customers
- // 1037141 = qa-customers
- if (FRAME_API.domainId == 1721 || FRAME_API.domainId == 1722 || FRAME_API.domainId == 1037141) {
- menuItems.push(adminToolItem);
- }
- menuItems.push(courseManagementItem);
- menuItems.push(digitalLibraryDashboardItem);
- if(window.isDistrict) {
- menuItems.push(studentTransferItem);
- }
- }else if(FRAME_API.canTeachACourse){ // For TeacherAuthor as only Admins and teacher author have access to Teach A Course
- menuItems.push(digitalLibraryDashboardItem);
- }
- // Only show course settings when on Syllabus page
- if(FRAME_API.contentState.type == 'syllabus'){
- menuItems.push(globalCourseSettingsItem);
- }
- this.toolsMenu = new Ext.menu.Menu({
- items: menuItems
- });
- }
- this.toolsMenu.show('gp-tools');
- },
- sendEmail: function(eid) {
- if(this.communicateMenu) {
- this.communicateMenu.hide();
- }
- eid = eid || this.currentEnrollmentId;
- if(!Ext.isEmpty(eid)) {
- FRAME_API.sendEmail(eid);
- }
- },
- launchConferencing: function() {
- if(this.communicateMenu) {
- this.communicateMenu.hide();
- }
- FRAME_API.launchConferencing();
- },
- launchAnnouncements: function(eid) {
- if(this.communicateMenu) {
- this.communicateMenu.hide();
- }
- var extra = '';
- eid = eid || this.currentEnrollmentId;
- var userId = '';
- if(FRAME_API.contentState.type == 'home' &&
- !Ext.isEmpty(FRAME_API.contentState.userId)) {
- userId = FRAME_API.contentState.userId;
- }
- if(!Ext.isEmpty(eid) || !Ext.isEmpty(userId)) {
- extra = '?';
- if(!Ext.isEmpty(eid)) {
- extra += "enrollmentid=" + eid;
- }
- if(!Ext.isEmpty(userId)) {
- if(!Ext.isEmpty(eid)) {
- extra += '&';
- }
- extra += 'userid=' + userId;
- }
- }
- window.location = FRAME_API.frameRoot + "/Component/Announcements" + extra;
- },
- launchNewPosts: function(eid) {
- if(this.communicateMenu) {
- this.communicateMenu.hide();
- }
- var extra = '';
- eid = eid || this.currentEnrollmentId;
- if(!Ext.isEmpty(eid)) {
- extra = "?enrollmentid=" + eid;
- }
- window.location = FRAME_API.frameRoot + "/Component/RecentPosts" + extra;
- },
- launchCalendar: function() {
- if(this.communicateMenu) {
- this.communicateMenu.hide();
- }
- window.location = FRAME_API.frameRoot + "/Component/Calendar";
- },
- launchProfile: function() {
- if(this.accountMenu) {
- this.accountMenu.hide();
- }
- window.location = FRAME_API.frameRoot + "/Component/Profile";
- },
- launchTranscript: function() {
- if(this.accountMenu) {
- this.accountMenu.hide();
- }
- window.location = FRAME_API.frameRoot + "/Component/Transcript";
- },
- proxy: function() {
- if(this.accountMenu) {
- this.accountMenu.hide();
- }
- FRAME_API.fireEvent('jswindowopening');
- Ext.Msg.prompt(this._Proxy, this._ProxyPrompt, function(btn,text) {
- FRAME_API.fireEvent('jswindowclosed');
- if (btn == 'ok') {
- FRAME_API.proxy(text);
- }
- }, this);
- },
- changeMobileView: function () {
- if (this.accountMenu) {
- this.accountMenu.hide();
- }
- Ext.Ajax.request({
- url: FRAME_API.appRoot + '/Learn/UserPrefs.ashx',
- params: {
- category: 'display',
- key: 'mobileviewenabled',
- value: FRAME_API.mobileViewEnabled ? '0' : '1'
- },
- scope: this,
- failure: function(response, options) {
- var message = this._UnknownError;
- if (response && response.message) {
- message = response.message;
- }
- Ext.Msg.alert(this._ErrorTitle, message);
- },
- success: function(response, options) {
- window.location.reload();
- }
- });
- },
- addStudentEnrollment: function(teacherEid) {
- FRAME_API.fireEvent('jswindowopening');
- Ext.Msg.confirm(this._AreYouSure, Ext.util.Format.htmlDecode(this._AddStudentEnrollmentPrompt), function(result) {
- FRAME_API.fireEvent('jswindowclosed');
- if(result != 'yes') return;
- this.doAddStudentEnrollment(teacherEid);
- }, this);
- },
- doAddStudentEnrollment: function(teacherEid) {
- var enrollment = FRAME_API.findEnrollment(teacherEid);
- if(enrollment != null) {
- var start = enrollment.enrollmentStart.replace(' ', 'T') + 'Z',
- end = enrollment.enrollmentEnd.replace(' ', 'T') + 'Z',
- buf;
- if(enrollment.courseType == 'Continuous' && enrollment.courseDays > 0) {
- var today = convertLocalTimeToUtcDateTime(new Date().clearTime());
- start = today.format(Date.patterns.SortableDateTime) + 'Z';
- end = today.add(Date.DAY, enrollment.courseDays).format(Date.patterns.SortableDateTime) + 'Z';
- }
- buf = ['<requests>'];
- buf.push(String.format('<enrollment entityid="{0}" userid="{1}" flags="{2}" status="1" startdate="{3}" enddate="{4}"/>',
- enrollment.courseId,
- FRAME_API.proxyUserId,
- Privileges.Participate,
- start,
- end));
- buf.push('</requests>');
- FRAME_API.executeCommand('createenrollments', null, {
- method: 'POST',
- xmlData: buf.join(''),
- scope: this,
- callback: function(options, success, response) {
- if(success) {
- var newEnrollment = Ext.DomQuery.selectNode('response enrollment', response.responseXML);
- var newEnrollmentId = newEnrollment.getAttributeNode("enrollmentid").value;
- if(!Ext.isEmpty(newEnrollmentId)) {
- this.launchCourseViewer(newEnrollmentId);
- }
- }
- else {
- var message = this._UnknownError;
- for(var i=0; i<response.details.length; i++) {
- var detail = response.details[i];
- if(detail.code != 'OK' && !Ext.isEmpty(detail.message)) {
- message = detail.message;
- break;
- }
- }
- FRAME_API.fireEvent('jswindowopening');
- Ext.Msg.alert(this._ErrorTitle, message, function() {
- FRAME_API.fireEvent('jswindowclosed');
- }, this);
- }
- }
- });
- }
- },
- removeStudentEnrollment: function(testEid, teacherEid, recreate) {
- FRAME_API.fireEvent('jswindowopening');
- Ext.Msg.confirm(this._AreYouSure, Ext.util.Format.htmlDecode(recreate ? this._ResetStudentEnrollmentPrompt : this._RemoveStudentEnrollmentPrompt), function(result) {
- FRAME_API.fireEvent('jswindowclosed');
- if(result != 'yes') return;
- var buf = ['<requests>'];
- buf.push(String.format('<enrollment enrollmentid="{0}"/>', testEid));
- buf.push('</requests>');
- FRAME_API.executeCommand('deleteenrollments', null, {
- method: 'POST',
- xmlData: buf.join(''),
- scope: this,
- callback: function(options, success, response) {
- if(success) {
- if(recreate) {
- this.doAddStudentEnrollment(teacherEid);
- }
- else if(FRAME_API.currentEnrollment.id == teacherEid) {
- window.location.replace(window.location);
- }
- else {
- this.chooseCourse(teacherEid);
- }
- }
- else {
- var message = this._UnknownError;
- for(var i=0; i<response.details.length; i++) {
- var detail = response.details[i];
- if(detail.code != 'OK' && !Ext.isEmpty(detail.message)) {
- message = detail.message;
- break;
- }
- }
- FRAME_API.fireEvent('jswindowopening');
- Ext.Msg.alert(this._ErrorTitle, message, function() {
- FRAME_API.fireEvent('jswindowclosed');
- }, this);
- }
- }
- });
- }, this);
- },
- launchTeachACourse: function() {
- window.location = FRAME_API.frameRoot + "/Component/TeachACourse";
- },
- launchHome: function() {
- var url = FRAME_API.frameRoot + "/Component/Home";
- if(!Ext.isEmpty(this.currentEnrollmentId)) {
- url += '?enrollmentid=' + encodeURIComponent(this.currentEnrollmentId);
- }
- window.location = url;
- },
- launchSyllabus: function(eid) {
- eid = eid || this.currentEnrollmentId;
- var enrollment = FRAME_API.findEnrollment(eid);
- if(!Ext.isEmpty(enrollment)) {
- if(enrollment.canEdit &&
- //Only change locations if it will cause a change
- (FRAME_API.contentState == null ||
- FRAME_API.contentState.type != 'syllabus' ||
- FRAME_API.contentState.enrollmentId == null ||
- FRAME_API.contentState.enrollmentId != enrollment.id)) {
- var url = FRAME_API.frameRoot + '/Component/Syllabus?enrollmentid=' + encodeURIComponent(enrollment.id);
- if (!Ext.isEmpty(FRAME_API.contentState.itemId) &&
- FRAME_API.contentState.enrollmentId == enrollment.id) {
- url += '&itemid=' + encodeURIComponent(FRAME_API.contentState.itemId);
- }
- window.location = url;
- }
- }
- },
- launchCourseViewer: function(eid) {
- eid = eid || this.currentEnrollmentId;
- if(!Ext.isEmpty(eid) &&
- //Only change locations if it will cause a change
- (FRAME_API.contentState == null ||
- FRAME_API.contentState.type != 'courseplayer' ||
- FRAME_API.contentState.enrollmentId == null ||
- FRAME_API.contentState.enrollmentId != eid)) {
- var url = FRAME_API.frameRoot + '/Component/CoursePlayer?enrollmentid=' + encodeURIComponent(eid);
- if (!Ext.isEmpty(FRAME_API.contentState.itemId) &&
- FRAME_API.contentState.enrollmentId == eid) {
- url += '&itemid=' + encodeURIComponent(FRAME_API.contentState.itemId);
- }
- window.location = url;
- }
- },
- launchGrades: function(eid) {
- eid = eid || this.currentEnrollmentId;
- var enrollment = FRAME_API.findEnrollment(eid);
- if(!Ext.isEmpty(enrollment)) {
- if(enrollment.isStudent &&
- //Only change locations if it will cause a change
- (FRAME_API.contentState == null ||
- FRAME_API.contentState.type != 'studentgrades' ||
- FRAME_API.contentState.enrollmentId == null ||
- FRAME_API.contentState.enrollmentId != eid)) {
- var encodedId = encodeURIComponent(eid);
- window.location = FRAME_API.frameRoot + "/Component/StudentGrades?enrollmentid=" + encodedId;
- }
- else {
- this.updateVisualsForCurrentEnrollment(enrollment);
- }
- }
- },
- launchGradebook: function(eid) {
- eid = eid || this.currentEnrollmentId;
- var enrollment = FRAME_API.findEnrollment(eid);
- if(!Ext.isEmpty(enrollment)) {
- if(enrollment.isTeacher &&
- //Only change locations if it will cause a change
- (FRAME_API.contentState == null ||
- FRAME_API.contentState.type != 'gradebook' ||
- FRAME_API.contentState.enrollmentId == null ||
- FRAME_API.contentState.enrollmentId != eid)) {
- var encodedId = encodeURIComponent(eid);
- window.location = FRAME_API.frameRoot + "/Component/Gradebook?enrollmentid=" + encodedId;
- }
- else {
- this.updateVisualsForCurrentEnrollment(enrollment);
- }
- }
- },
- launchFinalGrades: function(eid) {
- eid = eid || this.currentEnrollmentId;
- var enrollment = FRAME_API.findEnrollment(eid);
- if(!Ext.isEmpty(enrollment)) {
- if(enrollment.canReportGrades &&
- //Only change locations if it will cause a change
- (FRAME_API.contentState == null ||
- FRAME_API.contentState.type != 'finalgrades' ||
- FRAME_API.contentState.enrollmentId == null ||
- FRAME_API.contentState.enrollmentId != eid)) {
- var encodedId = encodeURIComponent(eid);
- window.location = FRAME_API.frameRoot + "/Component/FinalGrades?enrollmentid=" + encodedId;
- }
- else {
- this.updateVisualsForCurrentEnrollment(enrollment);
- }
- }
- },
- launchObjectiveSummary: function(eid) {
- eid = eid || this.currentEnrollmentId;
- var enrollment = FRAME_API.findEnrollment(eid);
- if(!Ext.isEmpty(enrollment)) {
- if(FRAME_API.contentState == null ||
- FRAME_API.contentState.type != 'objectivesummary' ||
- FRAME_API.contentState.enrollmentId == null ||
- FRAME_API.contentState.enrollmentId != eid) {
- var encodedId = encodeURIComponent(eid);
- if(FRAME_API.hasRight(Privileges.ReportCourse, enrollment.courseRights)) {
- window.location = FRAME_API.frameRoot + "/Component/ObjectiveSummary?courseid=" + encodeURIComponent(enrollment.courseId);
- }
- else if(enrollment.isStudent) {
- window.location = FRAME_API.frameRoot + "/Component/StudentGrades?showmastery=true&enrollmentid=" + encodedId;
- }
- else {
- window.location = FRAME_API.frameRoot + "/Component/ObjectiveSummary?enrollmentid=" + encodedId;
- }
- }
- }
- },
- // private property
- _keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
- // public method for encoding
- encode : function (input) {
- var output = "";
- var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
- var i = 0;
- input = this._utf8_encode(input);
- while (i < input.length) {
- chr1 = input.charCodeAt(i++);
- chr2 = input.charCodeAt(i++);
- chr3 = input.charCodeAt(i++);
- enc1 = chr1 >> 2;
- enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
- enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
- enc4 = chr3 & 63;
- if (isNaN(chr2)) {
- enc3 = enc4 = 64;
- } else if (isNaN(chr3)) {
- enc4 = 64;
- }
- output = output +
- this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) +
- this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);
- }
- return output;
- },
- // public method for decoding
- decode : function (input) {
- var output = "";
- var chr1, chr2, chr3;
- var enc1, enc2, enc3, enc4;
- var i = 0;
- input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
- while (i < input.length) {
- enc1 = this._keyStr.indexOf(input.charAt(i++));
- enc2 = this._keyStr.indexOf(input.charAt(i++));
- enc3 = this._keyStr.indexOf(input.charAt(i++));
- enc4 = this._keyStr.indexOf(input.charAt(i++));
- chr1 = (enc1 << 2) | (enc2 >> 4);
- chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
- chr3 = ((enc3 & 3) << 6) | enc4;
- output = output + String.fromCharCode(chr1);
- if (enc3 != 64) {
- output = output + String.fromCharCode(chr2);
- }
- if (enc4 != 64) {
- output = output + String.fromCharCode(chr3);
- }
- }
- output = this._utf8_decode(output);
- return output;
- },
- // private method for UTF-8 encoding
- _utf8_encode : function (string) {
- string = string.replace(/\r\n/g,"\n");
- var utftext = "";
- for (var n = 0; n < string.length; n++) {
- var c = string.charCodeAt(n);
- if (c < 128) {
- utftext += String.fromCharCode(c);
- }
- else if((c > 127) && (c < 2048)) {
- utftext += String.fromCharCode((c >> 6) | 192);
- utftext += String.fromCharCode((c & 63) | 128);
- }
- else {
- utftext += String.fromCharCode((c >> 12) | 224);
- utftext += String.fromCharCode(((c >> 6) & 63) | 128);
- utftext += String.fromCharCode((c & 63) | 128);
- }
- }
- return utftext;
- },
- // private method for UTF-8 decoding
- _utf8_decode : function (utftext) {
- var string = "";
- var i = 0;
- var c = c1 = c2 = 0;
- while ( i < utftext.length ) {
- c = utftext.charCodeAt(i);
- if (c < 128) {
- string += String.fromCharCode(c);
- i++;
- }
- else if((c > 191) && (c < 224)) {
- c2 = utftext.charCodeAt(i+1);
- string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
- i += 2;
- }
- else {
- c2 = utftext.charCodeAt(i+1);
- c3 = utftext.charCodeAt(i+2);
- string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
- i += 3;
- }
- }
- return string;
- },
- launchGpReports: function(){
- var encodedUserId = this.encode(FRAME_API.userId);
- if (FRAME_API.isProxy) { encodedUserId = this.encode(FRAME_API.proxyUserId); } else { encodedUserId = this.encode(FRAME_API.userId); }
- var encodedTimestamp = this.encode('' + (new Date().getTime() + 300000) );
- var timezone = jstz.determine();
- var encodedTimezone = this.encode(timezone.name());
- var url = this.gp_host + "/gradpoint/report/index?param1="+encodedUserId+"¶m2="+encodedTimestamp+"¶m3="+encodedTimezone;
- window.open(url,'', 'status, scrollbars, resizable');
- },
- getDomainType: function() {
- var domainId = FRAME_API.domainId;
- FRAME_API.executeCommand("getdomain2", {
- domainid: domainId, select:'data'
- }, {
- callback: function(options, success, response) {
- if(success) {
- var xmlDoc = response.responseXML;
- var domainType
- //get domain type node from response xml
- var domainTypeNode = xmlDoc.getElementsByTagName('domaintype')[0];
- if(domainTypeNode != null && domainTypeNode.childNodes[0] != null) {
- domainType = domainTypeNode.childNodes[0].nodeValue;
- }
- //Check if it is a district or not
- if(domainType != null && domainType == 'DISTRICT') {
- window.isDistrict = true;
- }
- }
- }
- });
- },
- launchStudentTransfer: function(){
- var encodedUserId = this.encode(FRAME_API.userId);
- if (FRAME_API.isProxy) { encodedUserId = this.encode(FRAME_API.proxyUserId); } else { encodedUserId = this.encode(FRAME_API.userId); }
- var encodedTimestamp = this.encode('' + (new Date().getTime() + 300000) );
- var timezone = jstz.determine();
- var encodedTimezone = this.encode(timezone.name());
- var url = this.gp_host + "/gradpoint/studentTransfer/index?param1="+encodedUserId+"¶m2="+encodedTimestamp+"¶m3="+encodedTimezone;
- window.open(url,'', 'status, scrollbars, resizable');
- },
- launchAdminTool: function(){
- var encodedUserId = this.encode(FRAME_API.userId);
- var encodedTimestamp = this.encode('' + (new Date().getTime() + 1800000) );
- var encodedDomainId = this.encode(FRAME_API.domainId);
- var encodedTab = this.encode('ADMIN_TOOL');
- var url = this.gp_host + "/gradpoint/admin/list?param1="+encodedUserId+"¶m2="+encodedTimestamp+"¶m3="+encodedDomainId+"¶m4="+encodedTab;
- window.open(url,'', 'status, scrollbars, resizable');
- },
- launchDigitalLibraryDashboard: function(){
- var encodedDomainId = FRAME_API.domainId;
- var timezone = jstz.determine();
- var encodedTimezone = this.encode(timezone.name());
- var url = FRAME_API.frameRoot +"/Resource/"+encodedDomainId+"/dld/dld.vhtml";
- window.open(url,'_parent', 'status, scrollbars, resizable');
- },
- launchCourseManagement: function(){
- var encodedUserId = this.encode(FRAME_API.userId);
- if (FRAME_API.isProxy) { encodedUserId = this.encode(FRAME_API.proxyUserId); } else { encodedUserId = this.encode(FRAME_API.userId); }
- var encodedTimestamp = this.encode('' + (new Date().getTime() + 1800000) );
- var encodedDomainId = this.encode(FRAME_API.domainId);
- var encodedTab = this.encode('COURSE_MANAGEMENT');
- var url = this.gp_host + "/gradpoint/admin/list?param1="+encodedUserId+"¶m2="+encodedTimestamp+"¶m3="+encodedDomainId+"¶m4="+encodedTab;
- window.open(url,'', 'status, scrollbars, resizable');
- },
- launchGroupSettings: function() {
- var encodedUserId = this.encode(FRAME_API.userId);
- if (FRAME_API.isProxy) { encodedUserId = this.encode(FRAME_API.proxyUserId); } else { encodedUserId = this.encode(FRAME_API.userId); }
- var encodedTimestamp = this.encode('' + (new Date().getTime() + 1800000) );
- var encodedDomainId = this.encode(FRAME_API.domainId);
- var encodedTab = this.encode('REPORTS');
- var encodedCourseId = this.encode(FRAME_API.contentState.courseId);
- var url = this.gp_host + "/gradpoint/groupSettings?param1="+encodedUserId+"¶m2="+encodedTimestamp+"¶m3="+encodedDomainId+"¶m4="+encodedTab+"¶m5="+encodedCourseId;
- window.open(url,'', 'height=600,width=600,status, scrollbars=no, resizable=no');
- },
- launchGpResources: function(){
- var encodedUserId = this.encode(FRAME_API.userId);
- if (FRAME_API.isProxy) { encodedUserId = this.encode(FRAME_API.proxyUserId); } else { encodedUserId = this.encode(FRAME_API.userId); }
- var encodedTimestamp = this.encode('' + (new Date().getTime() + 300000) );
- var timezone = jstz.determine();
- var enrollments = FRAME_API.enrollments;
- var studentEnrollment = false;
- var nonStudentEnrollment = false;
- for(var i=0; i<enrollments.length; i++) {
- var enrollment = enrollments[i];
- if(!Ext.isEmpty(enrollment.id) && enrollment.isStudent) {
- studentEnrollment = true;
- }
- if(!Ext.isEmpty(enrollment.id) && (enrollment.canEdit || enrollment.isTeacher || enrollment.canReportGrades || FRAME_API.hasRight(Privileges.ReportCourse, enrollment.courseRights))) {
- nonStudentEnrollment = true;
- }
- }
- // form url based on student or nonstudent
- var url;
- if ((FRAME_API.isAdmin || FRAME_API.canTeachACourse || nonStudentEnrollment || FRAME_API.canProxy) && (FRAME_API.rights != '0' && FRAME_API.rights != '131072')) {
- url = this.gp_host + "/content-wrapper/static/teacher/teacher_index.htm?param1="+encodedUserId+"¶m2="+encodedTimestamp;
- }
- else {
- url = this.gp_host + "/content-wrapper/static/student/student_index.htm?param1="+encodedUserId+"¶m2="+encodedTimestamp;
- }
- window.open(url,'', 'status, scrollbars, resizable');
- },
- launchTestAnalytics: function (eid) {
- eid = eid || this.currentEnrollmentId;
- var enrollment = FRAME_API.findEnrollment(eid);
- var url;
- if (!Ext.isEmpty(enrollment)) {
- if (FRAME_API.contentState == null ||
- FRAME_API.contentState.type != 'testanalytics' ||
- FRAME_API.contentState.enrollmentId == null ||
- FRAME_API.contentState.enrollmentId != eid) {
- var encodedId = encodeURIComponent(eid);
- if (FRAME_API.hasRight(Privileges.ReportCourse, enrollment.courseRights)) {
- url = FRAME_API.frameRoot + "/Component/TestAnalytics?enrollmentid=" + encodeURIComponent(eid);
- if (!Ext.isEmpty(FRAME_API.contentState.itemId) && FRAME_API.contentState.enrollmentId == eid) {
- url += '&itemid=' + encodeURIComponent(FRAME_API.contentState.itemId);
- }
- window.location = url;
- }
- }
- }
- },
- launchActivity: function (eid) {
- eid = eid || this.currentEnrollmentId;
- var enrollment = FRAME_API.findEnrollment(eid);
- if (!Ext.isEmpty(enrollment)) {
- if (enrollment.isStudent &&
- //Only change locations if it will cause a change
- (FRAME_API.contentState == null ||
- FRAME_API.contentState.type != 'studentactivity' ||
- FRAME_API.contentState.enrollmentId == null ||
- FRAME_API.contentState.enrollmentId != eid)) {
- var encodedId = encodeURIComponent(eid);
- window.location = FRAME_API.frameRoot + "/Component/StudentActivity?enrollmentid=" + encodedId;
- }
- else {
- this.updateVisualsForCurrentEnrollment(enrollment);
- }
- }
- },
- launchCustomMenuItem: function(url, target, features) {
- if (url.indexOf('/') === 0) {
- url = url.substr(1);
- }
- if (url.indexOf('http') !== 0) {
- url = FRAME_API.appRoot + '/' + url;
- }
- if (!Ext.isEmpty(target) || !Ext.isEmpty(features)) {
- window.open(url, target, features);
- return true;
- }
- else {
- try {
- window.location = url;
- }
- catch (err) {
- // workaround IE bug that throws error if cancel is chosen in beforeUnload (bug 255)
- }
- }
- return false;
- },
- //begin change: idle tracking
- IframeIdleTrackerManager: {
- trackInterval: 1,
- init: function (trackInterval) {
- this.trackInterval = trackInterval * 60 * 1000;
- },
- start: function () {
- var frames = document.getElementsByTagName('iframe');
- for (var i = 0; i < frames.length; i++) {
- if (!frames[i].idleTrackInterval) {
- frames[i].idleTrackInterval = this.trackInterval;
- frames[i].addEventListener('mouseover', this.track, false);
- frames[i].addEventListener('mouseout', this.untrack, false);
- }
- }
- },
- stop: function () {
- var frames = document.getElementsByTagName('iframe');
- for (var i = 0; i < frames.length; i++) {
- frames[i].removeEventListener('mouseover', this.track, false);
- frames[i].removeEventListener('mouseout', this.untrack, false);
- }
- },
- track: function (evt) {
- var frame = evt.target;
- if (frame != null && (!frame.idleTracker)) {
- frame.idleTracker = new IframeIdleTracker(frame.idleTrackInterval);
- frame.idleTracker.startTrack(evt);
- }
- },
- untrack: function (evt) {
- var frame = evt.target;
- if (frame != null && frame.idleTracker) {
- frame.idleTracker.stopTrack();
- frame.idleTracker = null;
- }
- }
- }
- //end change: idle tracking
- };
- //begin change: idle tracking
- IframeIdleTracker = function (interval) {
- var trackingInterval = interval || 60000;
- var oldPosition = { x: 0, y: 0 };
- var trackingTimer = null;
- var trackerDiv = null;
- var startTrack = function (evt) {
- if (trackingTimer == null) {
- trackingTimer = setTimeout(function () {
- if (trackerDiv == null && evt != null && evt.target != null) {
- oldPosition = { x: -1, y: -1 };
- var frame = evt.target;
- var offsetRect = getOffsetRect(frame);
- trackerDiv = document.createElement('div');
- trackerDiv.style.height = frame.clientHeight + 'px';
- trackerDiv.style.width = frame.clientWidth + 'px';
- trackerDiv.style.left = offsetRect.left + 'px';
- trackerDiv.style.top = offsetRect.top + 'px';
- trackerDiv.style.zIndex = 20000;
- trackerDiv.style.position = 'absolute';
- trackerDiv.innerHTML = ' ';
- document.body.appendChild(trackerDiv);
- trackerDiv.addEventListener('mousemove', function (mouseEvent) {
- if (oldPosition.x < 0 && oldPosition.y < 0) {
- oldPosition = { x: mouseEvent.clientX, y: mouseEvent.clientY };
- }
- else if (oldPosition.x != mouseEvent.clientX || oldPosition.y != mouseEvent.clientY) {
- dispatchEventFromIFrame();
- oldPosition = { x: mouseEvent.clientX, y: mouseEvent.clientY };
- trackerDiv.parentNode.removeChild(trackerDiv);
- trackerDiv = null;
- }
- }, false);
- }
- }, trackingInterval);
- }
- };
- var stopTrack = function () {
- if (trackingTimer) {
- clearTimeout(trackingTimer);
- }
- };
- var dispatchEventFromIFrame = function () {
- var evt = document.createEvent('Event');
- evt.initEvent('mousepositionchanged', true, true);
- window.dispatchEvent(evt);
- };
- var getOffsetRect = function (elem) {
- var box = elem.getBoundingClientRect();
- var body = document.body;
- var docElem = document.documentElement;
- var scrollTop = window.pageYOffset || docElem.scrollTop || body.scrollTop;
- var scrollLeft = window.pageXOffset || docElem.scrollLeft || body.scrollLeft;
- var clientTop = docElem.clientTop || body.clientTop || 0;
- var clientLeft = docElem.clientLeft || body.clientLeft || 0;
- var top = box.top + scrollTop - clientTop;
- var left = box.left + scrollLeft - clientLeft;
- return { top: Math.round(top), left: Math.round(left) };
- };
- return {
- startTrack: startTrack,
- stopTrack: stopTrack
- };
- };
- //end change: idle tracking
- // end of source from frame.js
- </script>
- <script type="text/javascript" language="javascript">
- var isDistrict = false;
- Ext.onReady(function() {
- FrameMethods.init({
- _ChooseACourse: 'Choose a course',
- _TitleBase: 'GradPoint Player',
- _UserProfile: 'Personal Information',
- _TranscriptTitle: 'Transcript',
- _Proxy: 'Proxy',
- _ProxyPrompt: 'Enter username or ID to proxy as:',
- _Unproxy: 'Unproxy',
- _SendMail: 'Send Mail',
- _AnnouncementsTitle: 'Announcements',
- _Conferencing: 'Conferencing',
- _Details: 'Details',
- _Version: 'Version',
- _AsTestStudent: '(as Test Student)',
- _ViewAsTeacher: 'View as Teacher',
- _ViewAsStudent: 'View as Student',
- _AddStudentEnrollment: 'Add Student Enrollment',
- _RemoveStudentEnrollment: 'Remove Student Enrollment',
- _ResetStudentEnrollment: 'Reset Student Enrollment',
- _AddStudentEnrollmentPrompt: 'This operation will add a test student enrollment to this course. To remove it in the future, choose "Remove Student Enrollment" from this menu.<br/><br/>Do you want to create a test student enrollment now?',
- _RemoveStudentEnrollmentPrompt: 'Are you sure you want to delete this test student enrollment along with all associated grades and data?',
- _ResetStudentEnrollmentPrompt: 'Are you sure you want to remove all grades and data associated with this test student enrollment?',
- _AreYouSure: 'Are You Sure?',
- _ErrorTitle: 'Error',
- _UnknownError: 'Unknown error.',
- _Page: 'Page',
- _ProxyUserId: 'Proxy User ID',
- _UserId: 'User ID',
- _DomainId: 'Domain ID',
- _EnrollmentId: 'Enrollment ID',
- _StudentEnrollmentId: 'Student Enrollment ID',
- _CourseId: 'Course ID',
- _SectionId: 'Section ID',
- _GroupId: 'Group ID',
- _ItemId: 'Item ID',
- _NewPosts: 'New Posts',
- _MobileView: 'Mobile View'
- });
- });
- </script>
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement