function getObject(id) { if (!document.getElementById) return document.all[id]; else return document.getElementById(id); //document.getElementById = function() { return null; } } function initializeMenu(menuId, actuatorId) { var menu = getObject(menuId); var actuator = getObject(actuatorId); if (menu == null || actuator == null) return; menu.style.display = getCookie(menuId)!=null ? getCookie(menuId) : "none"; actuator.className = getCookie(actuatorId)!=null ? getCookie(actuatorId) : "off"; //if (window.opera) return; // I'm too tired actuator.onclick = function() { var display = menu.style.display; menu.style.display = (display == "block") ? "none" : "block"; actuator.className = actuator.className=="on" ? "off" : "on"; setCookie(actuatorId,actuator.className); setCookie(menuId,menu.style.display); return false; } } function initMenus() { initializeMenu("mission", "missionAct"); initializeMenu("ref", "refAct"); initializeMenu("com", "comAct"); initializeMenu("rcmar", "rcmarAct"); initializeMenu("access", "accessAct"); getObject("access").style.display = "block"; } /********************************************************************************* dw_cookies.js - cookie functions for www.dyn-web.com Recycled from various sources **********************************************************************************/ // Modified from Bill Dortch's Cookie Functions (hidaho.com) // (found in JavaScript Bible) function setCookie(name,value,days,path,domain,secure) { var expires, date; if (typeof days == "number") { date = new Date(); date.setTime( date.getTime() + (days*24*60*60*1000) ); expires = date.toGMTString(); } document.cookie = name + "=" + escape(value) + ((expires) ? "; expires=" + expires : "") + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + ((secure) ? "; secure" : ""); } // Modified from Jesse Chisholm or Scott Andrew Lepera ? // (found at both www.dansteinman.com/dynapi/ and www.scottandrew.com/junkyard/js/) function getCookie(name) { var nameq = name + "="; var c_ar = document.cookie.split(';'); for (var i=0; i this.maxSize || size < this.minSize ) size = this.defaultSize; this.curSize = this.defaultSize; // create curSize property to use in calculations sizerEl = document.getElementById('sizer'); if (sizerEl) sizerEl.style.display = "block"; // if neither set nor setDefaults populates adjustList, apply sizes to body and td's if (this.adjustList.length == 0) { this.setDefaults( this.sizeUnit, this.defaultSize, this.minSize, this.maxSize, ['body', 'td'] ); } if ( size != this.defaultSize ) this.adjust( size - this.defaultSize ); }, adjust: function(n) { if ( !this.curSize ) return; // set in init var alist, size, list, i, j; // check against max/minSize if ( n > 0 ) { if ( this.curSize + n > this.maxSize ) n = this.maxSize - this.curSize; } else if ( n < 0 ) { if ( this.curSize + n < this.minSize ) n = this.minSize - this.curSize; } if ( n == 0 ) return; this.curSize += n; // loop through adjustList, calculating size, checking max/min alist = this.adjustList; for (i=0; alist[i]; i++) { size = this.curSize * alist[i]['ratio']; // maintain proportion size = Math.max(alist[i]['min'], size); size = Math.min(alist[i]['max'], size); list = dw_getElementsBySelector( alist[i]['sel'] ); for (j=0; list[j]; j++) { list[j].style.fontSize = size + this.sizeUnit; } } setCookie( "fontSize", this.curSize, 180, "/" ); }, reset: function() { var alist = this.adjustList, list, i, j; for (i=0; alist[i]; i++) { list = dw_getElementsBySelector( alist[i]['sel'] ); for (j=0; list[j]; j++) { // Reset adjustList elements to their default sizes //list[j].style.fontSize = alist[i]['dflt'] + this.sizeUnit; list[j].style.fontSize = ''; // restores original font size } } this.curSize = this.defaultSize; deleteCookie("fontSize", "/"); } } // resource: simon.incutio.com/archive/2003/03/25/getElementsBySelector function dw_getElementsBySelector(selector) { if (!document.getElementsByTagName) return []; var nodeList = [document], tokens, bits, list, col, els, i, j, k; selector = selector.normalize(); tokens = selector.split(' '); for (i=0; tokens[i]; i++) { if ( tokens[i].indexOf('#') != -1 ) { // id bits = tokens[i].split('#'); var el = document.getElementById( bits[1] ); if (!el) return []; if ( bits[0] ) { // check tag if ( el.tagName.toLowerCase() != bits[0].toLowerCase() ) return []; } for (j=0; nodeList[j]; j++) { // check containment if ( nodeList[j] == document || dw_contained(el, nodeList[j]) ) nodeList = [el]; else return []; } continue; } else if ( tokens[i].indexOf('.') != -1 ) { // class bits = tokens[i].split('.'); col = []; for (j=0; nodeList[j]; j++) { els = dw_getElementsByClassName( bits[1], bits[0], nodeList[j] ); for (k=0; els[k]; k++) { col[col.length] = els[k]; } } nodeList = []; for (j=0; col[j]; j++) { nodeList.push(col[j]); } continue; } else { // element els = []; for (j = 0; nodeList[j]; j++) { list = nodeList[j].getElementsByTagName(tokens[i]); for (k = 0; list[k]; k++) { els.push(list[k]); } } nodeList = els; } } return nodeList; } function dw_getElementsByClassName(sClass, sTag, oCont) { var result = [], list, i; var re = new RegExp("\\b" + sClass + "\\b", "i"); oCont = oCont? oCont: document; if ( document.getElementsByTagName ) { if ( !sTag || sTag == "*" ) { list = oCont.all? oCont.all: oCont.getElementsByTagName("*"); } else { list = oCont.getElementsByTagName(sTag); } for (i=0; list[i]; i++) if ( re.test( list[i].className ) ) result.push( list[i] ); } return result; } // returns true of oNode is contained by oCont (container) function dw_contained(oNode, oCont) { if (!oNode) return; // in case alt-tab away while hovering (prevent error) while ( oNode = oNode.parentNode ) if ( oNode == oCont ) return true; return false; } if (!Array.prototype.push) { // ie5.0 Array.prototype.push = function() { for (var i=0; arguments[i]; i++) this[this.length] = arguments[i]; return this[this.length-1]; // return last value appended } } String.prototype.normalize = function() { var re = /\s\s+/g; return this.trim().replace(re, " "); } String.prototype.trim = function() { var re = /^\s+|\s+$/; return this.replace(re, ""); }