var autoExpandTimer=0;
var delay=500;		// ms
var blindSpeed=.2	// ms

var currentScroller = 0;
var doAutoExpand = true;

function revealCategoryItems(objName,bPreventCollapse) {
	if (doAutoExpand) {
		$$('div.submenu').each(function(item) {
			if ( $(item).visible() && item.id != objName) {
				$(item).up('li').down('a.expander img').src = '/_img/newLeftArrowGrey.gif';
				new Effect.BlindUp($(item),{
					duration: blindSpeed,
					queue:'front'
				});
			}
		});

		if ( !$(objName).visible() ) {
			$(objName).up('li').down('a.expander img').src = '/_img/newLeftArrowRed.gif';
			new Effect.BlindDown($(objName),{
				duration: blindSpeed,
				queue: 'end',
				afterFinish:function() { scrollToTop(objName); }
			});

		} else {
			if ( !bPreventCollapse ) {
				$(objName).up('li').down('a.expander img').src = '/_img/newLeftArrowGrey.gif';
				new Effect.BlindUp($(objName),{duration: blindSpeed});
			}
		}
		doAutoExpand = false;
	}
}

function scrollToTop(objName) {
	var thisRandNum = Math.floor(Math.random()*100000+1);
	currentScroller = thisRandNum;

	var distance = 0;
	var pe = new PeriodicalExecuter(function(pe) {
		distance = $(objName).up('li').offsetTop - $('scrollMenu').scrollTop;
		var step = Math.floor(Math.abs(distance) / 3);
		if (step < 1) step = 1;
		if (distance == 0 || thisRandNum != currentScroller) {
			pe.stop();
		} else {
			var prevTop = $('scrollMenu').scrollTop;
			$('scrollMenu').scrollTop += (distance < 0)?-1*step:step;
			if ($('scrollMenu').scrollTop == prevTop)
				pe.stop();
		}
	}, 1/30);
}

function startTimer(objName) {
	autoExpandTimer=setTimeout("revealCategoryItems('" + objName + "',true);",delay);
}
