Thanks; If I chose to use javascript can you suggest a script to use ? I got hold of the type used on
from dynamic drive. One problem is that it doesn't run on firefox (though it is claimed to), and again the behaviour is not what I want. I will like the script to execute on page load rather than on click. Please take a look at it below just in case you can help ammend it to immediately run on page load (the full package can be downloaded from
:
var remember = true; //Remember menu states, and restore them on next visit.
var contractall_default= false; //Should all submenus be contracted by default? (true or false)
var menu, titles, submenus, arrows, bypixels;
var heights = new Array();
var n = navigator.userAgent;
if(/Opera/.test

) bypixels = 2;
else if(/Firefox/.test

) bypixels = 3;
else if(/MSIE/.test

) bypixels = 2;
/////DD added expandall() and contractall() functions/////
function slash_expandall(){
if (typeof menu!="undefined"){
for(i=0; i<Math.max(titles.length, submenus.length); i++){
titles
.className="title";
arrows.src = "slashfiles/expanded.gif";
submenus.style.display="";
submenus.style.height = heights+"px";
}
}
}
function slash_contractall(){
if (typeof menu!="undefined"){
for(i=0; i<Math.max(titles.length, submenus.length); i++){
titles.className="titlehidden";
arrows.src = "slashfiles/collapsed.gif";
submenus.style.display="none";
submenus.style.height = 0;
}
}
}
/////End DD added functions///////////////////////////////
function init(){
menu = getElementsByClassName("sdmenu", "div", document)[0];
titles = getElementsByClassName("title", "span", menu);
submenus = getElementsByClassName("submenu", "div", menu);
arrows = getElementsByClassName("arrow", "img", menu);
for(i=0; i<Math.max(titles.length, submenus.length); i++) {
titles.onclick = gomenu;
arrows.onclick = gomenu;
heights = submenus.offsetHeight;
submenus.style.height = submenus.offsetHeight+"px";
}
if(remember)
restore()
else if (contractall_default) //DD added code
slash_contractall() //DD added code
}
function restore() {
if(getcookie("menu") != null) {
var hidden = getcookie("menu").split(",");
for(var i in hidden) {
titles[hidden].className = "titlehidden";
submenus[hidden].style.height = "0px";
submenus[hidden].style.display = "none";
arrows[hidden].src = "slashfiles/collapsed.gif";
}
}
}
function gomenu(e) {
if (!e)
var e = window.event;
var ce = (e.target) ? e.target : e.srcElement;
var sm;
for(var i in titles) {
if(titles == ce || arrows == ce)
sm = i;
}
if(parseInt(submenus[sm].style.height) > parseInt(heights[sm])-2) {
hidemenu(sm);
} else if(parseInt(submenus[sm].style.height) < 2) {
titles[sm].className = "title";
showmenu(sm);
}
}
function hidemenu(sm) {
var nr = submenus[sm].getElementsByTagName("a").length*bypixels;
submenus[sm].style.height = (parseInt(submenus[sm].style.height)-nr)+"px";
var to = setTimeout("hidemenu("+sm+")", 30);
if(parseInt(submenus[sm].style.height) <= nr) {
clearTimeout(to);
submenus[sm].style.display = "none";
submenus[sm].style.height = "0px";
arrows[sm].src = "slashfiles/collapsed.gif";
titles[sm].className = "titlehidden";
}
}
function showmenu(sm) {
var nr = submenus[sm].getElementsByTagName("a").length*bypixels;
submenus[sm].style.display = "";
submenus[sm].style.height = (parseInt(submenus[sm].style.height)+nr)+"px";
var to = setTimeout("showmenu("+sm+")", 30);
if(parseInt(submenus[sm].style.height) > (parseInt(heights[sm])-nr)) {
clearTimeout(to);
submenus[sm].style.height = heights[sm]+"px";
arrows[sm].src = "slashfiles/expanded.gif";
}
}
function store() {
var hidden = new Array();
for(var i in titles) {
if(titles.className == "titlehidden")
hidden.push(i);
}
putcookie("menu", hidden.join(","), 30);
}
function getElementsByClassName(strClassName, strTagName, oElm){
var arrElements = (strTagName == "*" && document.all)? document.all : oElm.getElementsByTagName(strTagName);
var arrReturnElements = new Array();
strClassName = strClassName.replace(/\-/g, "\\-");
var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
var oElement;
for(var i=0; i<arrElements.length; i++){
oElement = arrElements;
if(oRegExp.test(oElement.className)){
arrReturnElements.push(oElement);
}
}
return (arrReturnElements)
}
function putcookie(c_name,value,expiredays) {
var exdate=new Date();
exdate.setDate(exdate.getDate()+expiredays);
document.cookie = c_name + "=" + escape(value) + ((expiredays==null) ? "" : ";expires="+exdate);
}
function getcookie(c_name) {
if(document.cookie.length > 0) {
var c_start = document.cookie.indexOf(c_name + "=");
if(c_start != -1) {
c_start = c_start + c_name.length + 1;
var c_end = document.cookie.indexOf(";",c_start);
if(c_end == -1)
c_end = document.cookie.length;
return unescape(document.cookie.substring(c_start, c_end));
}
}
return null;
}
window.onload = init;
if(remember) window.onunload = store;