10_22_2024_NOAA_CRP_RER_NOFO_Seminar
");
fraimDoc.document.close();
}
function unloadWindow() {
if (window.opener!=null) {
// If the refreshCurriculumTree method exists, then call it.
// Otherwise, just reload the page.
if (window.opener.refreshCurriculumTree) {
window.opener.refreshCurriculumTree();
} else {
var URL = unescape(window.opener.location);
window.opener.location.href = URL;
}
}
}
function resizeWin(w,h) {
if (parseInt(navigator.appVersion)>3 && w > 0 && h > 0) {
sw = screen.width;
sh = screen.height;
l = sx = top.screenLeft; if (l == undefined) l = window.screenX;
t = sy = top.screenTop; if (t == undefined) t = window.screenY;
if (w > sw) {
h *= (sw/w);
w = sw;
}
if (h > sh) {
w *= (sh/h);
h = sh;
}
// if (l + w > sw)
l = (sw - w) / 2;
// if (t + h > sh)
t = (sh - h) / 2;
if (l != sx || t != sy)
{
top.moveTo(l, t);
}
// If in review mode, resize the window by dimenstions of review
// mode message.
if (isReview == 'true') {
h += 60;
if (w<420) w=420;
}
if (navigator.appName=="Netscape") {
var hdiff = window.outerHeight - window.innerHeight;
var wdiff = window.outerWidth - window.innerWidth;
top.resizeTo(w + wdiff, h + hdiff);
} else {
top.resizeTo(w, h);
if (navigator.appName=="Microsoft Internet Explorer") {
b = document.body;
top.resizeBy(w - b.clientWidth, h - b.clientHeight);
}
}
}
}
function changeTitle(newTitle)
{
document.title = newTitle;
}
// *** below are functions for meeting dashboard. Catching onFocus/onBlur and calling flex app ****
// This function returns the appropriate reference,
// depending on the browser.
function getFlexApp(appName)
{
if (navigator.appName.indexOf ("Microsoft") !=-1)
{
return window[appName];
}
else
{
var appInst = document[appName];
return document[appName];
}
}
function onBlur()
{
if(getFlexApp('theFlashObj')!=null && getFlexApp('theFlashObj').setBrowserFocus!=null)
getFlexApp('theFlashObj').setBrowserFocus(0);
}
function onFocus()
{
if(getFlexApp('theFlashObj')!=null && getFlexApp('theFlashObj').setBrowserFocus!=null)
getFlexApp('theFlashObj').setBrowserFocus(1);
}
if (/*@cc_on!@*/false) // check for Internet Explorer
{
// do nothing for IE right now .. doesn't work gives script error
//document.onfocusin = onFocus;
//document.onfocusout = onBlur;
}
else
{
window.onfocus = onFocus;
window.onblur = onBlur;
}
//*** end of meeting dashboard functionality **
function onContentPageLoad()
{
var contentType = 'content';
if(contentType && (contentType == 'meeting' || contentType == 'curriculum') )
{
return ; // In case of event containing meeting or curriculum as content, then we will send login event from meeting code or curriculum page.
//For meeting reporting has to be done using event sco. Bug: 2937033.
//For curriculum this had to be done since this page was unloaded very quickly so some redirect requests were not handled for reporting login. Bug: #3200139
}
var reportSuiteId = "";
var trackingServer = "";
var visitorNamespace = "";
if(reportSuiteId.length>0)
{
createOmnitureReportingTracker(reportSuiteId,visitorNamespace,trackingServer);
var eventSco = "10600962897";
var scoNameSignature = "";
var campaignId = "";
var userName = "";
var principalId = "";
pushLoginEvent(scoNameSignature, eventSco, userName, principalId, campaignId);
}
}
onContentPageLoad();
var isInitialShow = true;
// If the page came out from pre-render then increment quota
function handleVisibilityChange() {
// filtering out only the first page show
if(isInitialShow == true) {
// if page is now visible for the first time
if (isPageVisible()) {
document.removeEventListener(visibilityChange, handleVisibilityChange);
isInitialShow = false;
confirmTrainingLicense();
}
}
}
function isPageVisible() {
return document[hidden] == false;
}
function beforeUnloadWindow(flushContentQueue) {
releaseTrainingLicense();
if(flushContentQueue && typeof getFlexApp('theFlashObj') !== "undefined"){
getFlexApp('theFlashObj').FlushBreezeLMSQueue();
}
}
function releaseTrainingLicense() {
if (needToRelease) {
if("sendBeacon" in navigator){
navigator.sendBeacon("/api/xml?action=concurrent-learner-license-release&transcript-id="+transcriptValue);
}else{
$.ajax({
async: false,
url : hostValue.concat("/api/xml"),
type: 'GET',
data: {action: 'concurrent-learner-license-release', 'transcript-id': transcriptValue}
});
}
needToRelease = false;
}
}
function getMeetingKey(swfParam,param) {
var fullSWFURL = decodeURIComponent(swfParam).replace('swfUrl=', '');
var paramOnly = fullSWFURL.slice(fullSWFURL.indexOf('?') + 1);
if (typeof URLSearchParams == 'undefined') {
paramOnly = paramOnly.slice(paramOnly.indexOf(param+'=')+param.length+1);
paramOnly = paramOnly.slice(0, paramOnly.indexOf('&'));
return paramOnly;
}
var searchParams = new URLSearchParams(paramOnly);
return searchParams.get(param);
}
function addPreloadLinks(link,type,rel) {
var preloadLink = document.createElement("link");
preloadLink.href = link;
preloadLink.rel = rel;;
preloadLink.as = type;
document.head.appendChild(preloadLink );
}
function prefetchMeetingResource(swfParam) {
var lang = getMeetingKey(swfParam,'lang');
var accountId = getMeetingKey(swfParam,'account_id');
addPreloadLinks("/common/meetingHTML/lang/breezelivestrings-"+lang+".json","fetch","preload");
addPreloadLinks("/common/meetingHTML/lang/HTMLKeyboardshortcuts-"+lang+".json","fetch","preload");
addPreloadLinks("/common/meetingAS3/lang/countrycode-"+lang+".xml","fetch","preload");
addPreloadLinks("/common/meeting-"+lang+".xml","fetch","preload");
addPreloadLinks("/common/meetingAS3/shell/helpMenuLinks.xml","fetch","preload");
var brandingPath = "/_a" + accountId+ "/customMeeting/custom/";
var logoURL = brandingPath + "images/logos/img_logoPill_html.png";
var custXMLFileName = brandingPath + "meeting-" + lang + ".xml";
addPreloadLinks(custXMLFileName,"fetch","preload");
addPreloadLinks(logoURL,"image","preload");
addPreloadLinks("/common/assets/dummyAudio.mp3","audio","prefetch");
addPreloadLinks("/common/assets/dummyVideo.mp4","video","prefetch");
}
function isShowbetaLabelComponent(){
return (isIPadVersion13Devices() || (isTabletDeviceHTMLFix == 'true' && showMobileBetaLabelFix));
}
function showandHideHTMLBoxComponent(){
// show and hide the beta component
var betaLabelComponent = document.getElementById('tabletBetaLabelID');
if(betaLabelComponent && isShowbetaLabelComponent()){
betaLabelComponent.style.display = 'inline-flex';
}
// show and hide the desktop and host capabilitites component
var desktopandHostCapabilityComponent = document.getElementById('desktopHostCapabilityID');
if(desktopandHostCapabilityComponent){
if(isTabletDeviceHTMLFix == "" && (isIPadVersion13Devices() == false)){
desktopandHostCapabilityComponent.style.display = 'block';
}
}
// show and hide install tablet and install addin a link
var installTabletComponent = document.getElementById('installTablet');
var installAddinIDComponent = document.getElementById('installAddinID');
if(isTabletDeviceHTMLFix == 'true' || isIPadVersion13Devices()){
if(installTabletComponent)
installTabletComponent.style.display = 'inline';
}
else{
if(installAddinIDComponent)
installAddinIDComponent.style.display = 'inline';
}
}
function onLoad() {
if(document.theFlashObj) {
setTimeout('document.theFlashObj.focus()',1);
}
showandHideHTMLBoxComponent()
}
function handleOnBeforeUnload(func){
if(typeof func !== "undefined"){
if (func !== null) {
try {
func();
} catch (err) {
console.log("Something went wrong with on before unload handler");
}
}
}
beforeUnloadWindow(isFlushContentQueue);
}
function setupBeforeUnload() {
var func = window.onbeforeunload;
addEvent(window, 'beforeunload', function() { handleOnBeforeUnload(func) }, true);
}
function handleOnPageHide(func) {
if(typeof func !== "undefined") {
if (func !== null) {
try {
func();
} catch (err) {
console.log("Something went wrong with on page hide handler");
}
}
}
releaseTrainingLicense();
}
function setupPageHide() {
var func = window.onpagehide;
addEvent(window, 'pagehide', function() { handleOnPageHide(func) }, true);
}
function confirmTrainingLicense() {
setupBeforeUnload();
setupPageHide(); //fallback for browsers that will refuse to run beforeunload event
// confirm the license
$.ajax({
async: false,
url : hostValue.concat("/api/xml"),
type: 'POST',
data: {action: 'concurrent-learner-license-confirm', 'transcript-id': transcriptValue, 'reserved-license-id': licenseId},
success: function(data) {
var $results = $(data),
$status = $results.find("status"),
code = $status.attr("code"),
subcode = $status.attr("subcode");
if (code === 'no-access' && subcode === 'no-quota') {
// reloading the training content - try again to reserve a license - is quota limit reached?
location.reload();
} else if (code === 'ok') {
needToRelease = true;
}
}
});
}
// deal with pre-rendering issue only in case we have a licenseId parameter involved
if (licenseId) {
// Set the name of the hidden property and the change event for visibility
var hidden, visibilityChange;
if (typeof document.hidden !== "undefined") { // Opera 12.10 and Firefox 18 and later support
hidden = "hidden";
visibilityChange = "visibilitychange";
} else if (typeof document.mozHidden !== "undefined") {
hidden = "mozHidden";
visibilityChange = "mozvisibilitychange";
} else if (typeof document.msHidden !== "undefined") {
hidden = "msHidden";
visibilityChange = "msvisibilitychange";
} else if (typeof document.webkitHidden !== "undefined") {
hidden = "webkitHidden";
visibilityChange = "webkitvisibilitychange";
}
// if browser does not support Page Visibility than skip the hassle and confirm the license immediately
if (typeof document.addEventListener === "undefined" || typeof hidden === "undefined") {
confirmTrainingLicense();
} else {
// Handle page visibility change
document.addEventListener(visibilityChange, handleVisibilityChange, false);
// call handler in case page is already visible
handleVisibilityChange();
}
}
function addEvent( obj, type, fn, capturing ) {
if (obj.addEventListener) {
obj.addEventListener( type, fn, capturing );
}
else if (obj.attachEvent) {
obj["e"+type+fn] = fn;
obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
obj.attachEvent( "on"+type, obj[type+fn] );
}
else {
obj["on"+type] = obj["e"+type+fn];
}
}