// Menu Scrolling

MenuLeftOffset=0;
SubMenuLeftOffset=130;
MenuDivName='menu';
MenuInnerDivName='menuinner';
SubMenuDivName='submenu';
NumMenus=0;
MoveTimeout=null;
MainTimeout=5;
AfterOutTimeout=1500;
MotionStep=20;
TimeoutID=new Array();
MotionAllowed=new Array();
CanShowTransparency=0;
SectionDivName='section';

menuOpened=new Array();
HideInProgress=new Array();
TimeoutHID=new Array();

function browserObject (str)
{
	obj = document.getElementById(str);
	return obj;
}

function initMenuCoords() {
	j=1;
	t=0;
	while (browserObject(MenuDivName+j) != null) {
		if(document.getElementById(MenuDivName+j).style.MozOpacity!=null)
			CanShowTransparency=1;
		menuOpened[j]=0;
		MotionAllowed[j]=1;
		HideInProgress[j]=0;
		j++;
	}
	NumMenus=j-1;
}

function submenuShow(menuindex,transparency) {
	if(document.getElementById(MenuDivName+menuindex).style.top=='')
		document.getElementById(MenuDivName+menuindex).style.top='0px';
	document.getElementById(SubMenuDivName+menuindex).style.top = 154+document.getElementById(MenuDivName+menuindex).parentNode.offsetTop;
        document.getElementById(SubMenuDivName+menuindex).style.left=SubMenuLeftOffset;
	document.getElementById(SubMenuDivName+menuindex).style.visibility = 'visible';
	if(CanShowTransparency==1) {
		document.getElementById(SubMenuDivName+menuindex).style.MozOpacity=transparency;
	}
}

function submenuHide(menuindex) {
	document.getElementById(SubMenuDivName+menuindex).style.visibility = 'hidden';
}

function menuExpand(menuindex) {
	if(menuOpened[menuindex]||MotionAllowed[menuindex]==0)
		return;
	menuOpened[menuindex]=1;
	submenuShow(menuindex,0);
	if(CanShowTransparency==1) {
		MotionAllowed[menuindex]=0;
		LightenObjectUp(menuindex,100,0);
	}
}

function menuShrink(menuindex) {
	if(!menuOpened[menuindex])
		return false;
	menuOpened[menuindex]=0;
	if(CanShowTransparency==1) {
		MotionAllowed[menuindex]=0;
		LightenObjectDown(menuindex,100,0);
	}
	else
		submenuHide(menuindex);
}

function LightenObjectUp(menuindex,distance,curshift) {
	menuindex=parseInt(menuindex);
	WholeWay=Math.abs(distance);
	MoveTimeout=MainTimeout*Math.abs(WholeWay/2-Math.abs(curshift))/WholeWay;
	if(curshift<distance) {
		curshift=curshift+MotionStep;
		if(curshift>distance) {
			CurStep=MotionStep+distance-curshift;
			curshift=distance;
		}
		else
			CurStep=MotionStep;
		document.getElementById(SubMenuDivName+menuindex).style.MozOpacity=(curshift/distance)-0.01;
		TimeoutID[menuindex]=setTimeout('LightenObjectUp(\''+menuindex+'\','+distance+','+curshift+')',MoveTimeout);
	}
	else {
		clearTimeout(TimeoutID[menuindex]);
		TimeoutID[menuindex]=null;
		MotionAllowed[menuindex]=1;
	}
}

function LightenObjectDown(menuindex,distance,curshift) {
	menuindex=parseInt(menuindex);
	WholeWay=Math.abs(distance);
	MoveTimeout=MainTimeout*Math.abs(WholeWay/2-Math.abs(curshift))/WholeWay;
	if(curshift<distance) {
		curshift=curshift+MotionStep;
		if(curshift>distance) {
			CurStep=MotionStep+distance-curshift;
			curshift=distance;
		}
		else
			CurStep=MotionStep;
		document.getElementById(SubMenuDivName+menuindex).style.MozOpacity=(100-curshift)/100-0.01;
		TimeoutID[menuindex]=setTimeout('LightenObjectDown(\''+menuindex+'\','+distance+','+curshift+')',MoveTimeout);
	}
	else {
		submenuHide(menuindex);
		clearTimeout(TimeoutID[menuindex]);
		TimeoutID[menuindex]=null;
		MotionAllowed[menuindex]=1;
	}
}

function MenuDelayedHide(menuindex) {
	if(menuOpened[menuindex]==0||HideInProgress[menuindex]==1)
		return;
	else {
		HideInProgress[menuindex]=1;
		TimeoutHID[menuindex]=setTimeout('WaitAfterOut('+menuindex+')',AfterOutTimeout);
	}
}

function MenuShow(menuindex) {
	document.getElementById(SubMenuDivName+menuindex).style.zIndex=2;
	for(i=1;i<=NumMenus;i++) {
		if(browserObject(SubMenuDivName+i)&&i!=menuindex) {
			document.getElementById(SubMenuDivName+i).style.zIndex=1;
			submenuHide(i);
		}
	}
	if(HideInProgress[menuindex]==1) {
		clearTimeout(TimeoutHID[menuindex]);
		HideInProgress[menuindex]=0;
	}
	else {
		menuExpand(menuindex);
	}
}

function WaitAfterOut(menuindex) {
	if(MotionAllowed[menuindex]==0)
		TimeoutHID[menuindex]=setTimeout('WaitAfterOut('+menuindex+')',100);
	else {
		if(!menuOpened[menuindex])
			return;
		menuShrink(menuindex);
		HideInProgress[menuindex]=0;
		clearTimeout(TimeoutHID[menuindex]);
	}
}
