var contractall_default= true; 
var menu, titles, submenus, arrows, bypixels;
var heights = new Array();

var n = navigator.userAgent;
if(/Opera/.test(n)) bypixels = 2;
else if(/Firefox/.test(n)) bypixels = 3;
else if(/MSIE/.test(n)) bypixels = 2;

function expandall()
{
  if(typeof menu!="undefined")
  {
	for(i=0; i<Math.max(titles.length, submenus.length); i++)
	{
	  titles[i].className="title";
	  arrows[i].src = "../Img/expanded.gif";
	  submenus[i].style.display="";
	  submenus[i].style.height = heights[i]+"px";
	}
  }
}

function contractall()
{
  if(typeof menu!="undefined")
  {
    for(i=0; i<Math.max(titles.length, submenus.length); i++)
    {
      titles[i].className="titlehidden";
	  arrows[i].src = "../Img/collapsed.gif";
	  submenus[i].style.display="none";
	  submenus[i].style.height = 0;
	}
  }
}

function init_menu()
{
  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[i].onclick = gomenu;
    arrows[i].onclick = gomenu;
    heights[i] = submenus[i].offsetHeight;
    submenus[i].style.height = submenus[i].offsetHeight+"px";
  }
  if (contractall_default) contractall() 
}

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[i] == ce.parentNode || arrows[i] == ce) sm = i;
    }
    try{
    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);
    }
    }catch(ex){}
}

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 = "../Img/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 = "../Img/expanded.gif";
  }
}

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[i];      
    if(oRegExp.test(oElement.className)) arrReturnElements.push(oElement);
  }
  return (arrReturnElements)
}


