function AccordionMenu(id)
{
	if(!document.getElementById || !document.getElementsByTagName)
		return false;		
	this.menu 		= document.getElementById(id);
	this.submenus 	= this.menu.getElementsByTagName('div');
	this.speed 		= 3;
	this.oneSmOnly 	= true;
	this.init();
}
AccordionMenu.prototype.init = function()
{
	var mainInstance = this;
	for(var i=0;i<this.submenus.length;i++)
		this.submenus[i].getElementsByTagName('span')[0].onclick = function(){mainInstance.toggleMenu(this.parentNode);};
};
AccordionMenu.prototype.toggleMenu = function(submenu)
{
	if(submenu.className == 'collapsed')
		this.expandMenu(submenu);
	else
		this.collapseMenu(submenu);
};
AccordionMenu.prototype.expandMenu = function(submenu)
{
	var mainInstance = this;
	var fullHeight=0;
	var links=submenu.childNodes;
	for(var i=0;i<links.length;i++)
		fullHeight+=links[i].offsetHeight;
	var moveBy=Math.round(this.speed*links.length);	
	var intId=setInterval(function(){
		var newHeight = submenu.offsetHeight + moveBy;
		if (newHeight < fullHeight)
			submenu.style.height = newHeight + 'px';
		else {
			clearInterval(intId);
			submenu.style.height = '';
			submenu.className = '';
		}
	}, 30);
	this.collapseOthers(submenu);
};
AccordionMenu.prototype.collapseMenu=function(submenu)
{
	var minHeight=submenu.getElementsByTagName('span')[0].offsetHeight;
	var moveBy = Math.round(this.speed*submenu.childNodes.length);
	var mainInstance = this;
	var intId = setInterval(function() {
		var newHeight = submenu.offsetHeight - moveBy;
		if (newHeight > minHeight)
			submenu.style.height = newHeight + 'px';
		else {
			clearInterval(intId);
			submenu.style.height = '';
			submenu.className = 'collapsed';
		}
	}, 30);
};
AccordionMenu.prototype.collapseOthers = function(submenu)
{
	if(!this.oneSmOnly)
		return;
	for(var i=0; i<this.submenus.length;i++)
		if(this.submenus[i]!=submenu && this.submenus[i].className!='collapsed')
			this.collapseMenu(this.submenus[i]);
};