From 47aa42e211772cdcb9f3f0a8cb9330f1621b2c14 Mon Sep 17 00:00:00 2001 From: moodler Date: Sat, 16 Apr 2005 12:30:48 +0000 Subject: [PATCH] Re-arranged static Javascript a bit --- lib/container.js | 96 ------------------------------------- lib/javascript-static.js | 100 +++++++++++++++++++++++++++++++++++++++ lib/javascript.php | 8 ++-- 3 files changed, 104 insertions(+), 100 deletions(-) delete mode 100644 lib/container.js diff --git a/lib/container.js b/lib/container.js deleted file mode 100644 index dde7e44cb4a..00000000000 --- a/lib/container.js +++ /dev/null @@ -1,96 +0,0 @@ -/* - findParentNode (start, elementName, elementClass, elementID) - - Travels up the DOM hierarchy to find a parent element with the - specified tag name, class, and id. All conditions must be met, - but any can be ommitted. Returns the BODY element if no match - found. -*/ -function findParentNode(el, elName, elClass, elId) { - while(el.nodeName != 'BODY') { - if( - (!elName || el.nodeName == elName) && - (!elClass || el.className.indexOf(elClass) != -1) && - (!elId || el.id == elId)) - { - break; - } - el = el.parentNode; - } - return el; -} - -/* - elementToggleHide (element, elementFinder) - - If elementFinder is not provided, toggles the "hidden" class for the specified element. - If elementFinder is provided, then the "hidden" class will be toggled for the object - returned by the function call elementFinder(element). - - If persistent == true, also sets a cookie for this. -*/ -function elementToggleHide(el, persistent, elementFinder) { - if(!elementFinder) { - var obj = el; - } - else { - var obj = elementFinder(el); - } - if(obj.className.indexOf('hidden') == -1) { - obj.className += ' hidden'; - var shown = 0; - } - else { - obj.className = obj.className.replace(new RegExp(' ?hidden'), '') - var shown = 1; - } - - if(persistent == true) { - new cookie('hide:' + obj.id, 1, (shown ? -1 : 356), '/').set(); - } -} - - -function elementCookieHide(id) { - var obj = document.getElementById(id); - var cook = new cookie('hide:' + id).read(); - if(cook != null) { - elementToggleHide(obj, false); - } -} - -function filterByParent(elCollection, parentFinder) { - var filteredCollection = []; - for(var i = 0; i < elCollection.length; ++i) { - var findParent = parentFinder(elCollection[i]); - if(findParent.nodeName != 'BODY') { - filteredCollection.push(elCollection[i]); - } - } - return filteredCollection; -} - -/* - -Is there some specific reason for this function? I think pretty -much every browser worth considering supports getElementById() [Jon] - -function getObj(id) -{ - if (document.getElementById) - { - this.obj = document.getElementById(id); - this.style = document.getElementById(id).style; - } - else if (document.all) - { - this.obj = document.all[id]; - this.style = document.all[id].style; - } - else if (document.layers) - { - this.obj = document.layers[id]; - this.style = document.layers[id]; - } -} -*/ diff --git a/lib/javascript-static.js b/lib/javascript-static.js index 579b640d287..fb258557d78 100644 --- a/lib/javascript-static.js +++ b/lib/javascript-static.js @@ -1,3 +1,5 @@ +// Miscellaneous core Javascript functions for Moodle + function popUpProperties(inobj) { op = window.open(); op.document.open('text/plain'); @@ -96,3 +98,101 @@ function confirm_if(expr, message) { } return confirm(message); } + + +/* + findParentNode (start, elementName, elementClass, elementID) + + Travels up the DOM hierarchy to find a parent element with the + specified tag name, class, and id. All conditions must be met, + but any can be ommitted. Returns the BODY element if no match + found. +*/ +function findParentNode(el, elName, elClass, elId) { + while(el.nodeName != 'BODY') { + if( + (!elName || el.nodeName == elName) && + (!elClass || el.className.indexOf(elClass) != -1) && + (!elId || el.id == elId)) + { + break; + } + el = el.parentNode; + } + return el; +} + +/* + elementToggleHide (element, elementFinder) + + If elementFinder is not provided, toggles the "hidden" class for the specified element. + If elementFinder is provided, then the "hidden" class will be toggled for the object + returned by the function call elementFinder(element). + + If persistent == true, also sets a cookie for this. +*/ +function elementToggleHide(el, persistent, elementFinder) { + if(!elementFinder) { + var obj = el; + } + else { + var obj = elementFinder(el); + } + if(obj.className.indexOf('hidden') == -1) { + obj.className += ' hidden'; + var shown = 0; + } + else { + obj.className = obj.className.replace(new RegExp(' ?hidden'), '') + var shown = 1; + } + + if(persistent == true) { + new cookie('hide:' + obj.id, 1, (shown ? -1 : 356), '/').set(); + } +} + + +function elementCookieHide(id) { + var obj = document.getElementById(id); + var cook = new cookie('hide:' + id).read(); + if(cook != null) { + elementToggleHide(obj, false); + } +} + +function filterByParent(elCollection, parentFinder) { + var filteredCollection = []; + for(var i = 0; i < elCollection.length; ++i) { + var findParent = parentFinder(elCollection[i]); + if(findParent.nodeName != 'BODY') { + filteredCollection.push(elCollection[i]); + } + } + return filteredCollection; +} + +/* + +Is there some specific reason for this function? I think pretty +much every browser worth considering supports getElementById() [Jon] + +function getObj(id) +{ + if (document.getElementById) + { + this.obj = document.getElementById(id); + this.style = document.getElementById(id).style; + } + else if (document.all) + { + this.obj = document.all[id]; + this.style = document.all[id].style; + } + else if (document.layers) + { + this.obj = document.layers[id]; + this.style = document.layers[id]; + } +} +*/ diff --git a/lib/javascript.php b/lib/javascript.php index 12929403b4d..d5df7fc195b 100644 --- a/lib/javascript.php +++ b/lib/javascript.php @@ -9,11 +9,11 @@ echo ''."\n"; } ?> - - + + + +