
var heightnow;
var targetheight;
var block;
var slideinterval;
var divheights = new Array();

var menus = Array('menu_1','menu_2','menu_3','menu_4');

// delay slide in/out
var inertiabase = 1;
var inertiainc = 5;
var slideintervalinc = 1;
var inertiabaseoriginal = inertiabase;

//window.onload = function()
function menuInit(o)
{
	var useragent = navigator.userAgent.toLowerCase();
	var ie = ((useragent.indexOf('msie') != -1) && (useragent.indexOf('opera') == -1) && (useragent.indexOf('webtv') == -1));
	var divs = getElementsByClassName(document, "div", "slideblock");

	for(var i=0; i<divs.length; i++)
	{
		divs[i].style.display = "block";
		var baseheight = (ie) ? divs[i].offsetHeight + "px" : document.defaultView.getComputedStyle(divs[i], null).getPropertyValue('height', null);
		if(i!=o) divs[i].style.display = "none";
    
    var d = new div();
		d.el = divs[i];
		d.ht = baseheight.substring(0, baseheight.indexOf("p"));

		divheights[i] = d;		
	}
}

function div(_el, _ht)
{
	this.el = _el;
	this.ht = _ht;
}

function togglemenu(t)
{
	inertiabase = inertiabaseoriginal;
	clearInterval(slideinterval);
  	block = t.parentNode.nextSibling;
	if(block.className == undefined)
		block = t.parentNode.nextSibling.nextSibling;

	var divs = getElementsByClassName(document, "div", "slideblock");
	for(var i=0; i<divs.length; i++)
	{
    if(block.id != divs[i].id) divs[i].style.display = "none";
  }

	if(block.style.display == "none")
	{
		block.style.display = "block";
		block.style.height = "1px";

		targetheight = divheight(block);
		heightnow = 1;

		slideinterval = setInterval(slideout, slideintervalinc);
	}
	else
	{
		targetheight = 1;
		heightnow = divheight(block);

		slideinterval = setInterval(slidein, slideintervalinc);
	}
}

function slidein()
{
	if(heightnow > targetheight)
	{

		heightnow -= inertiabase;

		inertiabase += inertiainc;
    
    block.style.height = (heightnow > 1) ? heightnow + "px" : targetheight + "px";
	}
	else
	{
		clearInterval(slideinterval);
		block.style.display = "none";
	}
}

function slideout()
{
	if(heightnow < targetheight)
	{
		heightnow += inertiabase;

		inertiabase += inertiainc;
    
    block.style.height = (heightnow < targetheight) ? heightnow + "px" : targetheight + "px";
	}
	else
	{
		clearInterval(slideinterval);
		block.style.height = targetheight + "px";
	}
}

function divheight(d)
{
	for(var i=0; i<divheights.length; i++)
	{
		if(divheights[i].el == d)
		{
			return divheights[i].ht;
		}
	}
}

function getElementsByClassName(oElm, strTagName, strClassName)
{
  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)
  
}