Browse Source

phpdoc compatibility

MOODLE_20_STABLE
bdaloukas 8 years ago
parent
commit
26325ae71c
  1. 553
      export/html/snakes/js/subModal.js

553
export/html/snakes/js/subModal.js

@ -1,280 +1,273 @@
var gPopupMask = null; var gPopupMask = null;
var gPopupContainer = null; var gPopupContainer = null;
var gPopFrame = null; var gPopFrame = null;
var gReturnFunc; var gReturnFunc;
var gPopupIsShown = false; var gPopupIsShown = false;
var gDefaultPage = "/loading.html"; var gDefaultPage = "/loading.html";
var gHideSelects = false; var gHideSelects = false;
var gReturnVal = null; var gReturnVal = null;
var gTabIndexes = new Array(); var gTabIndexes = new Array();
// Pre-defined list of tags we want to disable/enable tabbing into // Pre-defined list of tags we want to disable/enable tabbing into
var gTabbableTags = new Array("A","BUTTON","TEXTAREA","INPUT","IFRAME"); var gTabbableTags = new Array("A", "BUTTON", "TEXTAREA", "INPUT", "IFRAME");
// If using Mozilla or Firefox, use Tab-key trap. // If using Mozilla or Firefox, use Tab-key trap.
if (!document.all) { if (!document.all) {
document.onkeypress = keyDownHandler; document.onkeypress = keyDownHandler;
} }
/** /**
* Initializes popup code on load. * Initializes popup code on load.
*/ */
function initPopUp() { function initPopUp() {
// Add the HTML to the body // Add the HTML to the body
theBody = document.getElementsByTagName('BODY')[0]; theBody = document.getElementsByTagName('BODY')[0];
popmask = document.createElement('div'); popmask = document.createElement('div');
popmask.id = 'popupMask'; popmask.id = 'popupMask';
popcont = document.createElement('div'); popcont = document.createElement('div');
popcont.id = 'popupContainer'; popcont.id = 'popupContainer';
popcont.innerHTML = '' + popcont.innerHTML = '' +
'<div id="popupInner">' + '<div id="popupInner">' +
'<div id="popupTitleBar">' + '<div id="popupTitleBar">' +
'<div id="popupTitle"></div>' + '<div id="popupTitle"></div>' +
'<div id="popupControls">' + '<div id="popupControls">' +
'<img src="close.gif" onclick="hidePopWin(false);" id="popCloseBox" />' + '<img src="close.gif" onclick="hidePopWin(false);" id="popCloseBox" />' +
'</div>' + '</div>' +
'</div>' + '</div>' +
'<iframe src="'+ gDefaultPage +'" style="width:100%;height:100%;background-color:transparent;" scrolling="auto" frameborder="0" allowtransparency="true" id="popupFrame" name="popupFrame" width="100%" height="100%"></iframe>' + '<iframe src="'+ gDefaultPage +
'</div>'; '" style="width:100%;height:100%;background-color:transparent;" scrolling="auto"' +
theBody.appendChild(popmask); ' frameborder="0" allowtransparency="true" id="popupFrame" name="popupFrame" ' +
theBody.appendChild(popcont); ' width="100%" height="100%"></iframe>' +
'</div>';
gPopupMask = document.getElementById("popupMask"); theBody.appendChild(popmask);
gPopupContainer = document.getElementById("popupContainer"); theBody.appendChild(popcont);
gPopFrame = document.getElementById("popupFrame");
gPopupMask = document.getElementById("popupMask");
// check to see if this is IE version 6 or lower. hide select boxes if so gPopupContainer = document.getElementById("popupContainer");
// maybe they'll fix this in version 7? gPopFrame = document.getElementById("popupFrame");
var brsVersion = parseInt(window.navigator.appVersion.charAt(0), 10);
if (brsVersion <= 6 && window.navigator.userAgent.indexOf("MSIE") > -1) { // check to see if this is IE version 6 or lower. hide select boxes if so
gHideSelects = true; // maybe they'll fix this in version 7?
} var brsVersion = parseInt(window.navigator.appVersion.charAt(0), 10);
if (brsVersion <= 6 && window.navigator.userAgent.indexOf("MSIE") > -1) {
// Add onclick handlers to 'a' elements of class submodal or submodal-width-height gHideSelects = true;
var elms = document.getElementsByTagName('a'); }
for (i = 0; i < elms.length; i++) {
if (elms[i].className.indexOf("submodal") == 0) { // Add onclick handlers to 'a' elements of class submodal or submodal-width-height
// var onclick = 'function (){showPopWin(\''+elms[i].href+'\','+width+', '+height+', null);return false;};'; var elms = document.getElementsByTagName('a');
// elms[i].onclick = eval(onclick); for (i = 0; i < elms.length; i++) {
elms[i].onclick = function(){ if (elms[i].className.indexOf("submodal") == 0) {
// default width and height elms[i].onclick = function(){
var width = 400; // default width and height
var height = 200; var width = 400;
// Parse out optional width and height from className var height = 200;
params = this.className.split('-'); // Parse out optional width and height from className
if (params.length == 3) { params = this.className.split('-');
width = parseInt(params[1]); if (params.length == 3) {
height = parseInt(params[2]); width = parseInt(params[1]);
} height = parseInt(params[2]);
showPopWin(this.href,width,height,null); return false; }
} showPopWin(this.href,width,height,null); return false;
} }
} }
} }
addEvent(window, "load", initPopUp); }
addEvent(window, "load", initPopUp);
/**
* @argument width - int in pixels /**
* @argument height - int in pixels * @argument width - int in pixels
* @argument url - url to display * @argument height - int in pixels
* @argument returnFunc - function to call when returning true from the window. * @argument url - url to display
* @argument showCloseBox - show the close box - default true * @argument returnFunc - function to call when returning true from the window.
*/ * @argument showCloseBox - show the close box - default true
function showPopWin(url, width, height, returnFunc, showCloseBox) { */
// show or hide the window close widget function showPopWin(url, width, height, returnFunc, showCloseBox) {
if (showCloseBox == null || showCloseBox == true) { // show or hide the window close widget
document.getElementById("popCloseBox").style.display = "block"; if (showCloseBox == null || showCloseBox == true) {
} else { document.getElementById("popCloseBox").style.display = "block";
document.getElementById("popCloseBox").style.display = "none"; } else {
} document.getElementById("popCloseBox").style.display = "none";
gPopupIsShown = true; }
disableTabIndexes(); gPopupIsShown = true;
gPopupMask.style.display = "block"; disableTabIndexes();
gPopupContainer.style.display = "block"; gPopupMask.style.display = "block";
// calculate where to place the window on screen gPopupContainer.style.display = "block";
centerPopWin(width, height); // calculate where to place the window on screen
centerPopWin(width, height);
var titleBarHeight = parseInt(document.getElementById("popupTitleBar").offsetHeight, 10);
var titleBarHeight = parseInt(document.getElementById("popupTitleBar").offsetHeight, 10);
gPopupContainer.style.width = width + "px"; gPopupContainer.style.width = width + "px";
gPopupContainer.style.height = (height+titleBarHeight) + "px"; gPopupContainer.style.height = (height+titleBarHeight) + "px";
setMaskSize(); setMaskSize();
// need to set the width of the iframe to the title bar width because of the dropshadow // need to set the width of the iframe to the title bar width because of the dropshadow
// some oddness was occuring and causing the frame to poke outside the border in IE6 // some oddness was occuring and causing the frame to poke outside the border in IE6
gPopFrame.style.width = parseInt(document.getElementById("popupTitleBar").offsetWidth, 10) + "px"; gPopFrame.style.width = parseInt(document.getElementById("popupTitleBar").offsetWidth, 10) + "px";
gPopFrame.style.height = (height) + "px"; gPopFrame.style.height = (height) + "px";
// set the url // set the url
gPopFrame.src = url; gPopFrame.src = url;
gReturnFunc = returnFunc; gReturnFunc = returnFunc;
// for IE // for IE
if (gHideSelects == true) { if (gHideSelects == true) {
hideSelectBoxes(); hideSelectBoxes();
} }
} }
// var gi = 0;
var gi = 0; function centerPopWin(width, height) {
function centerPopWin(width, height) { if (gPopupIsShown == true) {
if (gPopupIsShown == true) { if (width == null || isNaN(width)) {
if (width == null || isNaN(width)) { width = gPopupContainer.offsetWidth;
width = gPopupContainer.offsetWidth; }
} if (height == null) {
if (height == null) { height = gPopupContainer.offsetHeight;
height = gPopupContainer.offsetHeight; }
}
var theBody = document.getElementsByTagName("BODY")[0];
//var theBody = document.documentElement; var scTop = parseInt(getScrollTop(),10);
var theBody = document.getElementsByTagName("BODY")[0]; var scLeft = parseInt(theBody.scrollLeft,10);
//theBody.style.overflow = "hidden";
var scTop = parseInt(getScrollTop(),10); setMaskSize();
var scLeft = parseInt(theBody.scrollLeft,10);
var titleBarHeight = parseInt(document.getElementById("popupTitleBar").offsetHeight, 10);
setMaskSize();
var fullHeight = getViewportHeight();
//window.status = gPopupMask.style.top + " " + gPopupMask.style.left + " " + gi++; var fullWidth = getViewportWidth();
var titleBarHeight = parseInt(document.getElementById("popupTitleBar").offsetHeight, 10); gPopupContainer.style.top = (scTop + ((fullHeight - (height+titleBarHeight)) / 2)) + "px";
gPopupContainer.style.left = (scLeft + ((fullWidth - width) / 2)) + "px";
var fullHeight = getViewportHeight(); }
var fullWidth = getViewportWidth(); }
addEvent(window, "resize", centerPopWin);
gPopupContainer.style.top = (scTop + ((fullHeight - (height+titleBarHeight)) / 2)) + "px"; addEvent(window, "scroll", centerPopWin);
gPopupContainer.style.left = (scLeft + ((fullWidth - width) / 2)) + "px"; window.onscroll = centerPopWin;
//alert(fullWidth + " " + width + " " + gPopupContainer.style.left);
} /**
} * Sets the size of the popup mask.
addEvent(window, "resize", centerPopWin); *
addEvent(window, "scroll", centerPopWin); */
window.onscroll = centerPopWin; function setMaskSize() {
var theBody = document.getElementsByTagName("BODY")[0];
/** var fullHeight = getViewportHeight();
* Sets the size of the popup mask. var fullWidth = getViewportWidth();
*
*/ // Determine what's bigger, scrollHeight or fullHeight / width
function setMaskSize() { if (fullHeight > theBody.scrollHeight) {
var theBody = document.getElementsByTagName("BODY")[0]; popHeight = fullHeight;
} else {
var fullHeight = getViewportHeight(); popHeight = theBody.scrollHeight;
var fullWidth = getViewportWidth(); }
// Determine what's bigger, scrollHeight or fullHeight / width if (fullWidth > theBody.scrollWidth) {
if (fullHeight > theBody.scrollHeight) { popWidth = fullWidth;
popHeight = fullHeight; } else {
} else { popWidth = theBody.scrollWidth;
popHeight = theBody.scrollHeight; }
}
gPopupMask.style.height = popHeight + "px";
if (fullWidth > theBody.scrollWidth) { gPopupMask.style.width = popWidth + "px";
popWidth = fullWidth; }
} else {
popWidth = theBody.scrollWidth; /**
} * @argument callReturnFunc - bool - determines if we call the return function specified
* @argument returnVal - anything - return value
gPopupMask.style.height = popHeight + "px"; */
gPopupMask.style.width = popWidth + "px"; function hidePopWin(callReturnFunc) {
} gPopupIsShown = false;
var theBody = document.getElementsByTagName("BODY")[0];
/** theBody.style.overflow = "";
* @argument callReturnFunc - bool - determines if we call the return function specified restoreTabIndexes();
* @argument returnVal - anything - return value if (gPopupMask == null) {
*/ return;
function hidePopWin(callReturnFunc) { }
gPopupIsShown = false; gPopupMask.style.display = "none";
var theBody = document.getElementsByTagName("BODY")[0]; gPopupContainer.style.display = "none";
theBody.style.overflow = ""; if (callReturnFunc == true && gReturnFunc != null) {
restoreTabIndexes(); // Set the return code to run in a timeout.
if (gPopupMask == null) { // Was having issues using with an Ajax.Request();
return; gReturnVal = window.frames["popupFrame"].returnVal;
} window.setTimeout('gReturnFunc(gReturnVal);', 1);
gPopupMask.style.display = "none"; }
gPopupContainer.style.display = "none"; gPopFrame.src = gDefaultPage;
if (callReturnFunc == true && gReturnFunc != null) { // display all select boxes
// Set the return code to run in a timeout. if (gHideSelects == true) {
// Was having issues using with an Ajax.Request(); displaySelectBoxes();
gReturnVal = window.frames["popupFrame"].returnVal; }
window.setTimeout('gReturnFunc(gReturnVal);', 1); }
}
gPopFrame.src = gDefaultPage; // Tab key trap. iff popup is shown and key was [TAB], suppress it.
// display all select boxes // @argument e - event - keyboard event that caused this function to be called.
if (gHideSelects == true) { function keyDownHandler(e) {
displaySelectBoxes(); if (gPopupIsShown && e.keyCode == 9) {
} return false;
} }
}
// Tab key trap. iff popup is shown and key was [TAB], suppress it.
// @argument e - event - keyboard event that caused this function to be called. // For IE. Go through predefined tags and disable tabbing into them.
function keyDownHandler(e) { function disableTabIndexes() {
if (gPopupIsShown && e.keyCode == 9) return false; if (document.all) {
} var i = 0;
for (var j = 0; j < gTabbableTags.length; j++) {
// For IE. Go through predefined tags and disable tabbing into them. var tagElements = document.getElementsByTagName(gTabbableTags[j]);
function disableTabIndexes() { for (var k = 0 ; k < tagElements.length; k++) {
if (document.all) { gTabIndexes[i] = tagElements[k].tabIndex;
var i = 0; tagElements[k].tabIndex="-1";
for (var j = 0; j < gTabbableTags.length; j++) { i++;
var tagElements = document.getElementsByTagName(gTabbableTags[j]); }
for (var k = 0 ; k < tagElements.length; k++) { }
gTabIndexes[i] = tagElements[k].tabIndex; }
tagElements[k].tabIndex="-1"; }
i++;
} function returnRefresh()
} {
} window.location.reload();
} }
function returnRefresh() // For IE. Restore tab-indexes.
{ function restoreTabIndexes() {
//alert("I am active!"); if (document.all) {
window.location.reload(); var i = 0;
} for (var j = 0; j < gTabbableTags.length; j++) {
var tagElements = document.getElementsByTagName(gTabbableTags[j]);
// For IE. Restore tab-indexes. for (var k = 0 ; k < tagElements.length; k++) {
function restoreTabIndexes() { tagElements[k].tabIndex = gTabIndexes[i];
if (document.all) { tagElements[k].tabEnabled = true;
var i = 0; i++;
for (var j = 0; j < gTabbableTags.length; j++) { }
var tagElements = document.getElementsByTagName(gTabbableTags[j]); }
for (var k = 0 ; k < tagElements.length; k++) { }
tagElements[k].tabIndex = gTabIndexes[i]; }
tagElements[k].tabEnabled = true;
i++; /**
} * Hides all drop down form select boxes on the screen so they do not appear above the mask layer.
} * IE has a problem with wanted select form tags to always be the topmost z-index or layer
} *
} * Thanks for the code Scott!
*/
function hideSelectBoxes() {
/** var x = document.getElementsByTagName("SELECT");
* Hides all drop down form select boxes on the screen so they do not appear above the mask layer.
* IE has a problem with wanted select form tags to always be the topmost z-index or layer for (i=0;x && i < x.length; i++) {
* x[i].style.visibility = "hidden";
* Thanks for the code Scott! }
*/ }
function hideSelectBoxes() {
var x = document.getElementsByTagName("SELECT"); /**
* Makes all drop down form select boxes on the screen visible so they do not
for (i=0;x && i < x.length; i++) { * reappear after the dialog is closed.
x[i].style.visibility = "hidden"; *
} * IE has a problem with wanting select form tags to always be the
} * topmost z-index or layer.
*/
/** function displaySelectBoxes() {
* Makes all drop down form select boxes on the screen visible so they do not var x = document.getElementsByTagName("SELECT");
* reappear after the dialog is closed.
* for (i=0;x && i < x.length; i++){
* IE has a problem with wanting select form tags to always be the x[i].style.visibility = "visible";
* topmost z-index or layer. }
*/ }
function displaySelectBoxes() {
var x = document.getElementsByTagName("SELECT");
for (i=0;x && i < x.length; i++){
x[i].style.visibility = "visible";
}
}

Loading…
Cancel
Save