var intervalID;
var scale = 6;
var time = 8;
var browser = '';

var nav = navigator.userAgent.toLowerCase();

if(nav.indexOf("mozilla") != -1 && nav.indexOf("msie") != -1) browser = 'ie';
if(nav.indexOf("opera") != -1) browser = 'opera';
if(nav.indexOf("mozilla") != -1 && nav.indexOf("msie") == -1) browser = 'mozilla';
if(nav.indexOf("safari") != -1) browser = 'safari';
	

function getBoxContentHeight(obj)
{
	var height = 0;
	var s = "";
	
	if (obj.hasChildNodes()) {
   		var children = obj.childNodes;
   		
		for (var i = 0; i < children.length; i++) {
			if(children[i].tagName == 'DIV') {
			   	height += children[i].offsetHeight;
			   	if(browser == 'ie') {
			   		height -= 2; // i hate you, ie  
			   	}
			}
 		}	
	}

	return height;
}


function opencloseSubmenu(name)
{
	var submenu = document.getElementById(name);

	if(!submenu)
		return;
	
	if(submenu.offsetHeight <= 0) {
		
		submenu.setAttribute('height', 1);
		submenu.style.height = submenu.getAttribute('height') + 'px';
		submenu.style.display =	'block';
		
		window.clearInterval(intervalID);
		intervalID = window.setInterval("smoothOpen('" + name + "')", time);	
	}
	else {
		submenu.setAttribute('height', submenu.offsetHeight);
		window.clearInterval(intervalID);
		intervalID = window.setInterval("smoothClose('" + name + "')", time);
	}


}

function smoothOpen(name)
{
	var submenu = document.getElementById(name);

	if(!submenu) {
		window.clearInterval(intervalID);
		return;
	}
	
	var boxContentHeight = getBoxContentHeight(submenu);
	
	submenu.setAttribute('height', parseInt(submenu.getAttribute('height')) + scale);

	if(submenu.getAttribute('height') >= boxContentHeight) {
		submenu.style.height = boxContentHeight + 'px';
		window.clearInterval(intervalID);
		return;
	}

	submenu.style.height = submenu.getAttribute('height') + 'px';
}


function smoothClose(name)
{
	var submenu = document.getElementById(name);

	if(!submenu) {
		window.clearInterval(intervalID);
		return;
	}

	var h = parseInt(submenu.getAttribute('height')) - scale; 
	submenu.setAttribute('height', h < 0 ? 0 : h);

	if(submenu.getAttribute('height') <= 0) {
		submenu.style.display =	'none';
		submenu.setAttribute('height', 0);
		submenu.style.height = '0px';
		window.clearInterval(intervalID);
		return;
	}

	submenu.style.height = submenu.getAttribute('height') + 'px';
}

