var fadeTimer = null;
function fadeIn(id) {
	clearTimeout(fadeTimer);
	var again = false;
	if(typeof(id) == 'string') var element = document.getElementById(id);
	else if(id == '') var element = null;
	else var element = id;
	
	var others = document.getElementById('menu_sub').getElementsByTagName('DIV');
	for(var i = 0; i < others.length; i++)
	{
		if(element && others[i].id == element.id) continue;
		if(getOpacity(others[i]) > 0)
			setOpacity(others[i], -0.1);
		if(getOpacity(others[i]) > 0)
			again = true;
	}
	
	if(element && getOpacity(element) < 1) {
		setOpacity(element, 0.1);
	}
	if(element && getOpacity(element) < 1)
		again = true;
		
	if(again)
		fadeTimer = setTimeout(function() { fadeIn(element) }, 20);
}


function getOpacity(element) {
	if(typeof element.style.opacity != 'undefined') {
		return parseFloat(element.style.opacity);
	}
	if(typeof element.style.filter != 'undefined') {
		var x = element.style.filter.match(/alpha\(opacity=(\d{1,3})\)/ );
		if(x && typeof(x[1]) != 'undefined') 
			return parseFloat(x[1])/100;
	}
}


function setOpacity(element, opacity) {
	if(typeof element.style.filter != 'undefined') {
		var x = element.style.filter.match(/alpha\(opacity=(\d{1,3})\)/ );
		var total = (x ? parseFloat(x[1]) : 0) + (opacity*100);
		element.style.filter = 'alpha(opacity='+ total +')';
		if(total > 0) element.style.display = 'block';
		else element.style.display = 'none';
	}
	else if(typeof element.style.opacity != 'undefined') {
		if(!element.style.opacity) element.style.opacity = opacity;
		else element.style.opacity = parseFloat(element.style.opacity) + opacity;
		if(element.style.opacity > 0) element.style.display = 'block';
		else element.style.display = 'none';
	}
}
