var global = 0;
var isOpened = 0;
function SDMenu(id)
{
    if (!document.getElementById || !document.getElementsByTagName)
        return false;
    this.menu = document.getElementById(id);
    this.submenus = this.menu.getElementsByTagName("div");
    this.remember = true;
    this.speed = 17;
    this.markCurrent = true;
    this.oneSmOnly = false;
}

SDMenu.prototype.init = function()
{
    var mainInstance = this;
    for (var i = 0; i < this.submenus.length; i++)
    {
        this.submenus[i].getElementsByTagName("span")[0].onclick = function()
        {
            mainInstance.expandncollapse(this.parentNode);
        };
    }
};

SDMenu.prototype.expandncollapse = function(submenu)
{
    if(isOpened == 0)
    {
        var col = this.submenus[global];
        global = submenu.id-1;
        var minHeightC = col.getElementsByTagName("span")[0].offsetHeight;
        var moveByC = Math.round(this.speed * col.getElementsByTagName("a").length);
        var fullHeight = submenu.getElementsByTagName("span")[0].offsetHeight;
        var links = submenu.getElementsByTagName("a");
        for (var i = 0; i < links.length; i++)
            fullHeight += links[i].offsetHeight;
        var moveBy = Math.round(this.speed * links.length);
        var mainInstance = this;
        var intId = setInterval(function()
        {
            var curHeightC = col.offsetHeight;
            var newHeightC = curHeightC - moveByC;
            var curHeight = submenu.offsetHeight;
            var newHeight = curHeight + moveBy;
            var flag = false;
            if (newHeightC > minHeightC&&newHeight < fullHeight)
            {
                submenu.cursor = "default";
                isOpened = 1;
                flag = true;
                col.style.height = newHeightC + "px";
                submenu.style.height = newHeight + "px";
            }
            else
            {
                isOpened = 0;
                col.style.height = "";
                col.className = "collapsed";
                submenu.style.height = "";
                submenu.className = "";
                clearInterval(intId);
            };
        }, 30);
    }
};
