Mercurial > hg > digilib-old
view client/digitallibrary/buttons/menu.js @ 16:270e1127c65f vendor
First import of client module
author | robcast |
---|---|
date | Thu, 17 Jan 2002 15:29:52 +0100 |
parents | 2aa1205e3b71 |
children | e6349a389da2 |
line wrap: on
line source
function checkBrowser(){ this.ver = navigator.appVersion; this.dom = document.getElementById ? 1 : 0; this.ie5 = (this.ver.indexOf("MSIE 5")>-1 && this.dom) ? 1 : 0; this.ie4 = (document.all && !this.dom) ? 1 : 0; this.ns5 = (this.dom && parseInt(this.ver) >= 5) ? 1 : 0; this.ns4 = (document.layers && !this.dom) ? 1 : 0; this.ie = (this.ie4 || this.ie5); return this; } browser = new checkBrowser(); function changeBc(obj, color){ var div; if (color == '' && browser.ns4) color = null; if (browser.ns4) div = document.layers[obj]; else if (browser.dom) div = document.getElementById(obj).style; else if (browser.ie) div = document.all[obj].style; if (browser.dom || browser.ie) div.backgroundColor = color; if (browser.ns4) div.bgColor = color; } function makeArray(n){ this.length = n; for (var i = 0; i < n; i++) { this[i] = new Image(); } return this; } function preloadImages() { over = new makeArray(document.images.length); away = new makeArray(document.images.length); for (i = 0; i < document.images.length; i++) { currName = document.images[i].src.slice(0, document.images[i].src.lastIndexOf('.')-1); away[i].src = currName + "0.gif"; over[i].src = currName + "1.gif"; } } function overButton(n) { currButton = document.images[n]; currButton.src = over[n].src; if (showHelp) contextHelp(n); } function awayButton(n) { currButton = document.images[n]; currButton.src = away[n].src; } function overItem(obj) { changeBc("menu" + obj, '#770000'); clearTimeout(timeID); } function awayItem(obj) { changeBc("menu" + obj, ''); timeID = setTimeout("hideMenu()", 700); } var timeID = null; function changeMark(obj) { var object; if (browser.ns4) object = document.layers["menu" + obj].document.images[0]; else if (browser.dom) object = document.getElementById("mark" + obj); else if (browser.ie) object = document.all["mark" + obj]; var path = object.src.slice(0, object.src.lastIndexOf('/')+1); object.src = (object.src.indexOf("nomark") > -1) ? path + "mark.gif" : path + "nomark.gif"; } function showMenu(obj) { menu(obj, true); } function menu(obj, show) { var currObj = "menu" + obj; var idx = 0; while(true) { if (browser.ns4 && document.layers[currObj]) document.layers[currObj].visibility = (show) ? "show" : "hide"; else if (browser.dom && document.getElementById(currObj)) document.getElementById(currObj).style.visibility = (show) ? "visible" : "hidden"; else if (browser.ie && document.all[currObj]) document.all[currObj].style.visibility = (show) ? "visible" : "hidden"; else break; currObj = "menu" + obj + (++idx); } if (!show) activeMenu = ''; else activeMenu = obj; timeID = setTimeout("hideMenu()", 2000); } function hideMenu() { if (activeMenu != '') menu(activeMenu, false); clearTimeout(timeID); } var activeMenu = ''; // just to be sure, that no buffer overflow can arrive var semaphor = true; function contextHelp(n) { if (helpWindow.closed) { changeMark(31); changeHelp(); return; } if ((navigator.appVersion.indexOf("Macintosh") < 0) && semaphor) { semaphor = false; var help = helpText[n].split("|"); helpWindow.focus(); helpWindow.document.open(); helpWindow.document.write('<html><head><title>Context Help</title>'); helpWindow.document.write('<style type="text/css">'); helpWindow.document.write('.title {font-family: Verdana, sans-serif, Arial; font-size: 12px; font-weight: bold; color: #FFFFFF}'); helpWindow.document.write('.text {font-family: Verdana, sans-serif, Arial; font-size: 10px; color: #000000}'); helpWindow.document.write('</style></head><body bgcolor="#CCCCCC" leftmargin="7" topmargin="7" marginwidth="7" marginheight="7" onload="opener.semaphor = true;">'); helpWindow.document.write('<table width="99%" border="0" cellspacing="0" cellpadding="3"><tr><td bgcolor="#666666" class="title">'); helpWindow.document.write(help[0] + '</tr><tr><td class="text">'); helpWindow.document.write(help[1] + '</tr></td></table></body></html>'); helpWindow.document.close(); // stupid workaround because of netscape 6, that doesen't know the opener property // this workaround is still ok cause netscape 6 has eventbuffer checks so no overflow if (browser.ns5) { semaphor = true; } } } function openContextHelp() { if (navigator.appVersion.indexOf("Macintosh") > -1) { openContextHelpMac(); return; } semaphor = false; var winWidth = 270; var winHeight = 130; var xScreen = 0.9*(screen.width-winWidth); var yScreen = 0.8*(screen.height-winHeight); helpWindow = window.open("", "ContextHelp", "width=" + winWidth + ",height=" + winHeight + ",screenX=" + xScreen + ",screenY=" + yScreen + ",left=" + xScreen + ",top=" + yScreen); helpWindow.focus(); helpWindow.document.open(); helpWindow.document.write('<html><head><title>Context Help</title>'); helpWindow.document.write('<style type="text/css">'); helpWindow.document.write('.title {font-family: Verdana, sans-serif, Arial; font-size: 12px; font-weight: bold; color: #FFFFFF}'); helpWindow.document.write('.text {font-family: Verdana, sans-serif, Arial; font-size: 10px; color: #000000}'); helpWindow.document.write('</style></head><body bgcolor="#CCCCCC" leftmargin="7" topmargin="7" marginwidth="7" marginheight="7">'); helpWindow.document.write('<table width="99%" border="0" cellspacing="0" cellpadding="3"><tr><td bgcolor="#666666" class="title">'); helpWindow.document.write('Context Help</tr><tr><td class="text">'); helpWindow.document.write('Move over any button to get some more information about its function</tr></td></table></body></html>'); helpWindow.document.close(); // for some safety reason help-requests have to be blocked while opening the window setTimeout("semaphor = true;", 200); } // because macs have a strange window focus behaviour we have to go a special // way for them - just opening a window that contains all button-descriptions function openContextHelpMac() { var winWidth = 270; var winHeight = 600; var xScreen = 0.9*(screen.width-winWidth); var yScreen = 0.8*(screen.height-winHeight); helpWindow = window.open("", "ContextHelp", "width=" + winWidth + ",height=" + winHeight + ",screenX=" + xScreen + ",screenY=" + yScreen + ",left=" + xScreen + ",top=" + yScreen + ",scrollbars"); helpWindow.focus(); helpWindow.document.open(); helpWindow.document.write('<html><head><title>Context Help Macintosh</title>'); helpWindow.document.write('<style type="text/css">'); helpWindow.document.write('.title {font-family: Verdana, sans-serif, Arial; font-size: 12px; font-weight: bold; color: #FFFFFF}'); helpWindow.document.write('.text {font-family: Verdana, sans-serif, Arial; font-size: 10px; color: #000000}'); helpWindow.document.write('</style></head><body bgcolor="#CCCCCC" leftmargin="7" topmargin="7" marginwidth="7" marginheight="7">'); helpWindow.document.write('<table width="99%" border="0" cellspacing="0" cellpadding="3">'); for (n = 0; n < helpText.length; n++) { help = helpText[n].split("|"); helpWindow.document.write('<tr><td bgcolor="#666666" class="title">'); helpWindow.document.write(help[0] + '</tr><tr><td class="text">'); helpWindow.document.write('<p>' + help[1] + '<br> </p></tr></td>'); } helpWindow.document.write('</table></body></html>'); helpWindow.document.close(); } function closeContextHelp() { if (helpWindow != '' && !helpWindow.closed) { helpWindow.close(); } helpWindow = ''; } function changeHelp() { showHelp = !showHelp; showHelp ? openContextHelp() : closeContextHelp(); } // variable containing the contextwindow var helpWindow = '';