/************************************************************************************************************
(C) www.dhtmlgoodies.com, November 2005

This is a script from www.dhtmlgoodies.com. You will find this and a lot of other scripts at our website.	

Terms of use:
You are free to use this script as long as the copyright message is kept intact. However, you may not
redistribute, sell or repost it without our permission.

Thank you!

www.dhtmlgoodies.com
Alf Magne Kalleland

************************************************************************************************************/

var timeBeforeAutoHideUP = 700;	// Microseconds to wait before auto hiding menu(1000 = 1 second)
var slideSpeed_outUP = 10;	// Steps to move sub menu at a time ( higher = faster)
var slideSpeed_inUP = 10;
	

var slideTimeout_outUP = 25;	// Microseconds between slide steps ( lower = faster)
var slideTimeout_inUP = 10;	// Microseconds between slide steps ( lower = faster)

var showSubOnMouseOverUP = true;	// false = show sub menu on click, true = show sub menu on mouse over
var fixedSubMenuWidthUP = false;	// Width of sub menu items - A number(width in pixels) or false when width should be dynamic

var xOffsetSubMenuUP = 0; 	// Offset x-position of sub menu items - use negative value if you want the sub menu to overlap main menu

var slideDirectionUP = 'down';	// Slide to down or up ?

/* Don't change anything below here */

var activeSubMenuIdUP = false;
var activeMainMenuItemUP = false;
var currentZIndexUP = 1000;		
var autoHideTimerUP = 0;
var submenuObjArrayUP = new Array();
var okToSlideInSubUP = new Array();
var subPositionedUP = new Array();


function stopAutoHideUP()
{
	autoHideTimerUP = -1;
}

function initAutoHideUP()
{
	autoHideTimerUP = 0;
	if(autoHideTimerUP>=0)autoHideUP();
}

function autoHideUP()
{
	
	if(autoHideTimerUP>timeBeforeAutoHideUP)
	{
		
		if(activeMainMenuItemUP){
			activeMainMenuItemUP.className='';
			activeMainMenuItemUP = false;
		}
		
		if(activeSubMenuIdUP){
			var obj = document.getElementById('subMenuDivUP' + activeSubMenuIdUP);
			showSubUP();
		}
	}else{
		if(autoHideTimerUP>=0){
			autoHideTimerUP+=50;
			setTimeout('autoHideUP()',50);
		}
	}
}	

function getTopPosUP(inputObj)
{		
  var returnValue = inputObj.offsetLeft;
  while((inputObj = inputObj.offsetParent) != null)returnValue += inputObj.offsetLeft;
  return returnValue;
}

function getLeftPosUP(inputObj)
{
  var returnValue = inputObj.offsetTop;
  while((inputObj = inputObj.offsetParent) != null)returnValue += inputObj.offsetTop;
  return returnValue;
}

function showSubUP()
{
	var subObj = false;
	if(this && this.tagName){
		var numericId = this.parentNode.id.replace(/[^0-9]/g,'');
		okToSlideInSubUP[numericId] = false;
		var subObj = document.getElementById('subMenuDivUP' + numericId);
		if(activeMainMenuItemUP)activeMainMenuItemUP.className='';
		if(subObj){
			if(!subPositionedUP[numericId]){
				if(slideDirectionUP=='down'){
					subObj.style.top = getLeftPosUP(submenuObjArrayUP[numericId]['parentDiv']) + submenuObjArrayUP[numericId]['parentDiv'].offsetHeight + xOffsetSubMenuUP + 'px';
				}else{
					subObj.style.top = getLeftPosUP(submenuObjArrayUP[numericId]['parentDiv']) + xOffsetSubMenuUP + 'px';
					
				}
				submenuObjArrayUP[numericId]['left'] = subObj.style.top.replace(/[^0-9]/g,'');
				subObj.style.left = getTopPosUP(submenuObjArrayUP[numericId]['parentDiv']) + this.parentNode.offsetWidth +  - subObj.offsetWidth  + 'px';
				subPositionedUP[numericId] = true;
			}				
			subObj.style.visibility = 'visible';
			subObj.style.zIndex = currentZIndexUP;
			currentZIndexUP++;	
			this.className='activeMainMenuItemUP';
			activeMainMenuItemUP = this;
		}
	}else{
		var numericId = activeSubMenuIdUP;
	}
	if(activeSubMenuIdUP && (numericId!=activeSubMenuIdUP || !subObj))slideMenuUP(activeSubMenuIdUP,(slideSpeed_inUP*-1));
	if(numericId!=activeSubMenuIdUP && this && subObj){
		subObj.style.height = '0px';	
		slideMenuUP(numericId,slideSpeed_outUP);
		activeSubMenuIdUP = numericId;
	}else{
		if(numericId!=activeSubMenuIdUP)activeSubMenuIdUP = false;
	}
	if(showSubOnMouseOverUP)stopAutoHideUP();
}

function slideMenuUP(menuIndex,speed){
	var obj = submenuObjArrayUP[menuIndex]['divObj'];
	var obj2 = submenuObjArrayUP[menuIndex]['ulObj'];
	var width = obj.offsetHeight + speed;
	if(speed<0){
		if(width<0)width = 0;
		obj.style.height = width + 'px';
		if(slideDirectionUP=='up'){
			obj.style.top = submenuObjArrayUP[menuIndex]['left'] - width + 'px';
			obj2.style.top = '0px';
		}else{
			obj2.style.top = width - submenuObjArrayUP[menuIndex]['width'] + 'px' 
		}
		if(width>0 && okToSlideInSubUP[menuIndex])setTimeout('slideMenuUP(' + menuIndex + ',' + speed + ')',slideTimeout_inUP); else{
			obj.style.visibility = 'hidden';
			obj.style.height = '0px';
			if(activeSubMenuIdUP==menuIndex)activeSubMenuIdUP=false;
		}
		
	}else{
		if(width>submenuObjArrayUP[menuIndex]['width'])width = submenuObjArrayUP[menuIndex]['width'];
		if(slideDirectionUP=='up'){
			obj.style.top = submenuObjArrayUP[menuIndex]['left'] - width + 'px';
			obj2.style.top = '0px';
		}else{
			obj2.style.top = width - submenuObjArrayUP[menuIndex]['width'] + 'px' 
		}		
		
		obj.style.height = width + 'px';
		if(width<submenuObjArrayUP[menuIndex]['width']){
			setTimeout('slideMenuUP(' + menuIndex + ',' + speed + ')',slideTimeout_outUP);
		}else{
			okToSlideInSubUP[menuIndex] = true;
		}
	}
}
function resetPositionUP()
{
	subPositionedUP.length = 0;
}
		
function initLeftMenuUP()
{
	var menuObj = document.getElementById('dhtmlgoodies_menuUP');	
	var mainMenuItemArray = new Array();
	
	var mainMenuItem = menuObj.getElementsByTagName('LI')[0];
	while(mainMenuItem){
		if(mainMenuItem.tagName && mainMenuItem.tagName.toLowerCase()=='li'){
			mainMenuItemArray[mainMenuItemArray.length] = mainMenuItem;
			var aTag = mainMenuItem.getElementsByTagName('A')[0];
			if(showSubOnMouseOverUP)
				aTag.onmouseover = showSubUP;	
			else
				aTag.onclick = showSubUP;	
		}
		mainMenuItem = mainMenuItem.nextSibling;
	}		
	
	var lis = menuObj.getElementsByTagName('A');
	for(var no=0;no<lis.length;no++){
		if(!showSubOnMouseOverUP)lis[no].onmouseover = stopAutoHideUP;
		lis[no].onmouseout = initAutoHideUP;
		lis[no].onmousemove = stopAutoHideUP;
	}
			
	for(var no=0;no<mainMenuItemArray.length;no++){
		var sub = mainMenuItemArray[no].getElementsByTagName('UL')[0];
		if(sub){
			mainMenuItemArray[no].id = 'mainMenuItemUP' + (no+1);
			var div = document.createElement('DIV');
			div.className='dhtmlgoodies_subMenuUP';
			document.body.appendChild(div);
			div.appendChild(sub);
			if(slideDirectionUP=='down'){
				div.style.top = getLeftPosUP(mainMenuItemArray[no]) + mainMenuItemArray[no].offsetHeight + xOffsetSubMenuUP + 'px';
			}else{
				div.style.top = getLeftPosUP(mainMenuItemArray[no]) + xOffsetSubMenuUP + 'px';
			}
			div.style.left = getTopPosUP(mainMenuItemArray[no]) + 'px';
			div.id = 'subMenuDivUP' + (no+1);
			sub.id = 'submenuUlUP' + (no+1);
			sub.style.position = 'relative';	

			if(navigator.userAgent.indexOf('Opera')>=0){
				submenuObjArrayUP[no+1] = new Array();
				submenuObjArrayUP[no+1]['parentDiv'] = mainMenuItemArray[no];
				submenuObjArrayUP[no+1]['divObj'] = div;
				submenuObjArrayUP[no+1]['ulObj'] = sub;
				submenuObjArrayUP[no+1]['width'] = sub.offsetHeight;
				submenuObjArrayUP[no+1]['left'] = div.style.top.replace(/[^0-9]/g,'');
			}
			sub.style.top = 1 - sub.offsetHeight + 'px';	
			
			// if(document.all)div.style.height = '1px';	
				
			if(navigator.userAgent.indexOf('Opera')<0){
				submenuObjArrayUP[no+1] = new Array();
				submenuObjArrayUP[no+1]['parentDiv'] = mainMenuItemArray[no];
				submenuObjArrayUP[no+1]['divObj'] = div;
				submenuObjArrayUP[no+1]['ulObj'] = sub;
				submenuObjArrayUP[no+1]['width'] = sub.offsetHeight;
				
				
				
				submenuObjArrayUP[no+1]['left'] = div.style.top.replace(/[^0-9]/g,'');
				if(fixedSubMenuWidthUP)submenuObjArrayUP[no+1]['width'] = fixedSubMenuWidthUP;
			}	

			if(!document.all)div.style.height = '1px';
				
		}			
	}
		

	
	
	menuObj.style.visibility = 'visible';
	
	window.onresize = resetPositionUP;
}