var Toolbar = (function (my) { var INITIAL_TOOLBAR_TIMEOUT = 20000; var TOOLBAR_TIMEOUT = INITIAL_TOOLBAR_TIMEOUT; /** * Opens the lock room dialog. */ my.openLockDialog = function() { // Only the focus is able to set a shared key. if (focus === null) { if (sharedKey) $.prompt("This conversation is currently protected by" + " a shared secret key.", { title: "Secrect key", persistent: false } ); else $.prompt("This conversation isn't currently protected by" + " a secret key. Only the owner of the conference" + + " could set a shared key.", { title: "Secrect key", persistent: false } ); } else { if (sharedKey) { $.prompt("Are you sure you would like to remove your secret key?", { title: "Remove secrect key", persistent: false, buttons: { "Remove": true, "Cancel": false}, defaultButton: 1, submit: function (e, v, m, f) { if (v) { setSharedKey(''); lockRoom(false); } } } ); } else { $.prompt('

Set a secrect key to lock your room

' + '', { persistent: false, buttons: { "Save": true, "Cancel": false}, defaultButton: 1, loaded: function (event) { document.getElementById('lockKey').focus(); }, submit: function (e, v, m, f) { if (v) { var lockKey = document.getElementById('lockKey'); if (lockKey.value) { setSharedKey(Util.escapeHtml(lockKey.value)); lockRoom(true); } } } } ); } } }; /** * Opens the invite link dialog. */ my.openLinkDialog = function() { $.prompt('', { title: "Share this link with everyone you want to invite", persistent: false, buttons: { "Cancel": false}, loaded: function (event) { document.getElementById('inviteLinkRef').select(); } } ); }; /** * Opens the settings dialog. */ my.openSettingsDialog = function() { $.prompt('

Configure your conference

' + ' Participants join muted
' + ' Require nicknames

' + 'Set a secrect key to lock your room: ', { persistent: false, buttons: { "Save": true, "Cancel": false}, defaultButton: 1, loaded: function (event) { document.getElementById('lockKey').focus(); }, submit: function (e, v, m, f) { if (v) { if ($('#initMuted').is(":checked")) { // it is checked } if ($('#requireNicknames').is(":checked")) { // it is checked } /* var lockKey = document.getElementById('lockKey'); if (lockKey.value) { setSharedKey(lockKey.value); lockRoom(true); } */ } } } ); }; /** * Toggles the application in and out of full screen mode * (a.k.a. presentation mode in Chrome). */ my.toggleFullScreen = function() { var fsElement = document.documentElement; if (!document.mozFullScreen && !document.webkitIsFullScreen) { //Enter Full Screen if (fsElement.mozRequestFullScreen) { fsElement.mozRequestFullScreen(); } else { fsElement.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT); } } else { //Exit Full Screen if (document.mozCancelFullScreen) { document.mozCancelFullScreen(); } else { document.webkitCancelFullScreen(); } } }; /** * Shows the main toolbar. */ my.showToolbar = function() { if (!$('#header').is(':visible')) { $('#header').show("slide", { direction: "up", duration: 300}); $('#subject').animate({top: "+=40"}, 300); if (toolbarTimeout) { clearTimeout(toolbarTimeout); toolbarTimeout = null; } toolbarTimeout = setTimeout(hideToolbar, TOOLBAR_TIMEOUT); TOOLBAR_TIMEOUT = 4000; } if (focus != null) { // TODO: Enable settings functionality. Need to uncomment the settings button in index.html. // $('#settingsButton').css({visibility:"visible"}); } // Show/hide desktop sharing button showDesktopSharingButton(); }; /** * Docks/undocks the toolbar. * * @param isDock indicates what operation to perform */ my.dockToolbar = function(isDock) { if (isDock) { // First make sure the toolbar is shown. if (!$('#header').is(':visible')) { Toolbar.showToolbar(); } // Then clear the time out, to dock the toolbar. clearTimeout(toolbarTimeout); toolbarTimeout = null; } else { if (!$('#header').is(':visible')) { Toolbar.showToolbar(); } else { toolbarTimeout = setTimeout(hideToolbar, TOOLBAR_TIMEOUT); } } }; /** * Updates the lock button state. */ my.updateLockButton = function() { buttonClick("#lockIcon", "icon-security icon-security-locked"); }; /** * Hides the toolbar. */ var hideToolbar = function () { var isToolbarHover = false; $('#header').find('*').each(function () { var id = $(this).attr('id'); if ($("#" + id + ":hover").length > 0) { isToolbarHover = true; } }); clearTimeout(toolbarTimeout); toolbarTimeout = null; if (!isToolbarHover) { $('#header').hide("slide", { direction: "up", duration: 300}); $('#subject').animate({top: "-=40"}, 300); } else { toolbarTimeout = setTimeout(hideToolbar, TOOLBAR_TIMEOUT); } }; return my; }(Toolbar || {}));