/* HOW TO DEAL WITH THE ARRAYS BELOW You can have more than one color
in your menu. You define which color a menu item belongs to by
specifying a class for the <a> tag Example: <a
class="menuGroup1"> which means that this element uses color number
2 (0 = first color). btw: You don't have to specify <a
class="menugroup0"> if a menu item uses the first color. This color
is the default choice if nothing else is defined. */ 
var initActiveMenuItem = -1; 									// If one of the menu items should be initially highlighted.(-1 = none, 0 = first item, 1 = second...) 
var activeSmallSquareColor = ['#ececec','#ec3a0e']; 			// Color of small square at the left of each menu item - only one item in the array if you only have one color 
var colorSquareWidth = 2; 										// Width of small square; 
var marginSquare = 1; 
var bgColorLinks = ["#ececec",'#ec3a0e'];
// Background color for menu links - one element for each menu color
var degreesToDarkenOrLighten = [65,15]; 						// How many percent point to darken/lighten,or change saturation of the color above on mouse over(10-15 percent point is usually enough). 
var changeBrightnessOrSaturation = ['saturation','brightness']; // Possible values: "saturation" and "brightness" - which one to adjust on mouseover 
var textColorMenuItems = ['#646464','#fff']; 
var darkenOnMouseOver = [false,true];
// Darken or Lighten on mouse over (true = darken, false = lighten) //One element for each menu color.
// (Or more or less saturation if that is chosen in changeBrightnessOrSaturation 
var timeStepOpacitySquare =45; 									// Microseconds between each opacity change -> Lower value =faster 
var opacityChangePerStep = 40; 									// Steps - change in opacity - on mouse out = Higher = faster 
var timeStepSwitchBgColor = 10; 								//Microseconds between each text background change(darken or lighten)-> Lower value =faster 
var bgColorStep = [1,1]; 										// lower value = slower bg colorfading. This value should usually be about 10 percent of the degrees tolighten/darken
/************************************************************************************************************
/* Don't change anything below here
************************************************************************************************************/
var activeMenuItem = false; 
var activeMenuLink = false; 
var menuObj;
var brightnessLink = new Array(); 
var saturationLink = new Array(); 
var brightnessLinkMin = new Array(); 
var saturationLinkMin = new Array();
var darkenBrightnessCounter = new Array(); // Darken or lighten - this variable is set manually 
var startHue = new Array(); 
var startSat = new Array(); 
var startBri = new Array(); 

function showMenuItem() { 
	var hsb = toHSV(this.getAttribute('bgColorItem')); 
	currentIndex =this.className.replace(/[^\d]/g,'');
	if(changeBrightnessOrSaturation[currentIndex]=='saturation'){
		if(darkenOnMouseOver[currentIndex]){ 
			var saturation = hsb[1] -(degreesToDarkenOrLighten[currentIndex]/100); 
		}else{ 
			var saturation =hsb[1] + (degreesToDarkenOrLighten[currentIndex]/100); 
			}
		if(saturation<0)saturation=0; 
		if(saturation>1)saturation=1; 
		var rgb = toRgb(hsb[0],saturation,hsb[2]); 
	}else{
		if(darkenOnMouseOver[currentIndex]){ 
			var brightness = hsb[2] -(degreesToDarkenOrLighten[currentIndex]/100); 
		}else{ 
			var brightness =hsb[2] + (degreesToDarkenOrLighten[currentIndex]/100); 
		}
		if(brightness<0)brightness=0; 
		if(brightness>1)brightness=1; 
		var rgb = toRgb(hsb[0],hsb[1],brightness); 
	} 
	this.style.backgroundColor = rgb; 
	this.currentBgColorItem = rgb;
	this.setAttribute('currentBgColorItem',rgb); 
	var obj =this.parentNode.getElementsByTagName('DIV')[0];
	obj.setAttribute('okToHide','0'); 
	obj.okToHide = 0;
	this.setAttribute('okToHide','0'); 
	this.okToHide = 0;
	obj.style.visibility = 'visible'; 
	obj.style.opacity = 0.98;
	obj.style.filter = 'alpha(opacity=98)'; 
} 
			
function hideMenuItem() {
	if(this.getAttribute('initActive')=='1')return;
	if(this.initActive=='1')return; 
	var obj =this.parentNode.getElementsByTagName('DIV')[0];
	obj.setAttribute('okToHide','1'); 
	obj.okToHide = 1;
	this.setAttribute('okToHide','1'); this.okToHide = 1;
	obj.style.visibility = 'visible';
	if(navigator.userAgent.indexOf('Opera')>=0){ 
		obj.style.visibility ='hidden'; 
	}else{ 
		progressHideSquare(obj.id,(opacityChangePerStep*-1));
	} 
	progressShowHideBgColor(this.id); 
} 
			
function progressShowHideBgColor(inputId) { 
	var obj =document.getElementById(inputId); 
	var currentBgColor =obj.getAttribute('currentBgColorItem');
	if(obj.getAttribute('okToHide')=='0')return;
	if(!currentBgColor)currentBgColor = obj.currentBgColorItem;
	if(currentBgColor){ 
		var index = obj.className.replace(/[^\d]/g,''); 
		var hsb = toHSV(currentBgColor);
		if(changeBrightnessOrSaturation[index]=='saturation'){ 
			var saturation = hsb[1]; saturation+=darkenBrightnessCounter[index];
			if((saturation>saturationLink[index] && darkenOnMouseOver[index]) || (saturation<saturationLink[index]&& !darkenOnMouseOver[index]))
				saturation =saturationLink[index]; 
			var rgb = toRgb(startHue[index],saturation,startBri[index]);
			obj.style.backgroundColor = rgb; 
			obj.currentBgColorItem = rgb;
			obj.setAttribute('currentBgColorItem',rgb); 
			if((hsb[1]<saturation && darkenOnMouseOver[index]) || (hsb[1]>saturation && !darkenOnMouseOver[index])){
				setTimeout('progressShowHideBgColor(\'' + inputId +'\')',timeStepSwitchBgColor); 
			}else{ 
				var index =obj.className.replace(/[^\d]/g,''); 
				obj.style.backgroundColor =bgColorLinks[index]; 
			} 
		}else{ 
			var brightness = hsb[2];
			brightness+=darkenBrightnessCounter[index];
			if((brightness>brightnessLink[index] &&darkenOnMouseOver[index]) || (brightness<brightnessLink[index]&& !darkenOnMouseOver[index]))
				brightness =brightnessLink[index]; 
			var rgb = toRgb(startHue[index],startSat[index],brightness);
			obj.style.backgroundColor = rgb; 
			obj.currentBgColorItem = rgb;
			obj.setAttribute('currentBgColorItem',rgb); 
			if((hsb[2]<brightness&& darkenOnMouseOver[index]) || (hsb[2]>brightness&& !darkenOnMouseOver[index])){
					setTimeout('progressShowHideBgColor(\'' + inputId +'\')',timeStepSwitchBgColor); 
			}else{ 
				var index =obj.className.replace(/[^\d]/g,''); 
				obj.style.backgroundColor =bgColorLinks[index]; 
			} 
		} 
	}
} 

function progressHideSquare(inputId,step){ 
	var obj = document.getElementById(inputId);
	if(obj.getAttribute('okToHide')=='0' && step<0)return;
	if(document.all){ 
		var currentOpacity =obj.style.filter.replace(/[^\d]/g,'')/1; 
		if(currentOpacity>=99){ 
		}else if(currentOpacity==11){ 
			obj.style.visibility='hidden'; 
		}else{
			currentOpacity = currentOpacity + step;
			if(currentOpacity<1)
				currentOpacity=1;
			if(currentOpacity>99)
				currentOpacity=9; 
			obj.style.filter ='alpha(opacity=' + currentOpacity + ')';
			setTimeout('progressHideSquare("' + inputId + '",' + (step) +')',timeStepOpacitySquare); 
		}
	}else{ 
		step = step / 100; 
		var currentOpacity = obj.style.opacity/1; 
		if(currentOpacity>=0.99){ 
		}else if(currentOpacity==0.01){ 
			obj.style.visibility='hidden'; 
		}else{
			currentOpacity = currentOpacity + step;
			if(currentOpacity<0.01)
				currentOpacity=0.01;
			if(currentOpacity>0.99)
				currentOpacity=0.99; 
			obj.style.opacity =currentOpacity; 
			setTimeout('progressHideSquare("' + inputId + '",' +(step*100) + ')',timeStepOpacitySquare); 
		} 
	} 
} 

function dhtmlgoodies_initMenu() { 
	menuObj = document.getElementById('dhtmlgoodies_menu'); 
	for(var no=0;no<bgColorLinks.length;no++){ 
	var hsbArray =toHSV(bgColorLinks[no]); 
	brightnessLink.push(hsbArray[2]);
	saturationLink.push(hsbArray[1]); 
	startHue.push(hsbArray[0]);
	startSat.push(hsbArray[1]); 
	startBri.push(hsbArray[2]);
	if(darkenOnMouseOver[no]){ 
		brightnessLinkMin.push(Math.max(hsbArray[2]- (degreesToDarkenOrLighten[no]/100),0));
		saturationLinkMin.push(Math.max(hsbArray[1] -(degreesToDarkenOrLighten[no]/100),0));
		darkenBrightnessCounter.push(bgColorStep[no]/100); 
	}else{
		brightnessLinkMin.push(Math.min(hsbArray[2] +(degreesToDarkenOrLighten[no]/100),1));
		saturationLinkMin.push(Math.min(hsbArray[1] +(degreesToDarkenOrLighten[no]/100),1));
		darkenBrightnessCounter.push((bgColorStep[no]/100)*-1); 
	}
	} 
	var listItems = menuObj.getElementsByTagName('LI'); 
	for(var no=0;no<listItems.length;no++){ 
		var menuLink =listItems[no].getElementsByTagName('A')[0]; 
		if(menuLink){
			if(!menuLink.className)
				menuLink.className = 'menuGroup0'; 
			var groupIndex = menuLink.className.replace(/[^\d]/g,''); 
			listItems[no].id= 'listItem' + no; var height = menuLink.offsetHeight;
			menuLink.style.display='block'; 
			menuLink.style.height=height + 'px';
			menuLink.style.lineHeight=height + 'px'; 
			menuLink.onmouseover =showMenuItem; 
			menuLink.onmouseout = hideMenuItem;
			menuLink.style.backgroundColor = bgColorLinks[groupIndex];
			menuLink.setAttribute('bgColorItem',bgColorLinks[groupIndex]);
			menuLink.bgColorItem = bgColorLinks[groupIndex];
			menuLink.setAttribute('currentBgColorItem',bgColorLinks[groupIndex]);
			menuLink.currentBgColorItem = bgColorLinks[groupIndex]; 
			menuLink.id ='listLink' + no; menuLink.style.color = textColorMenuItems[groupIndex];
			var colorDiv = document.createElement('DIV'); colorDiv.innerHTML ='<span><\/span>'; 
			colorDiv.style.height = height + 'px';
			colorDiv.style.width = colorSquareWidth + 'px';
			colorDiv.style.backgroundColor = activeSmallSquareColor[groupIndex];
			colorDiv.style.marginRight = marginSquare + 'px';
			colorDiv.style.visibility = 'hidden'; colorDiv.id = 'colorSquare' + no;
			colorDiv.style.opacity = 0.99; // Not possible to use 1 because of JSflickering in Firefox colorDiv.style.filter = 'alpha(opacity=100)';
			if(initActiveMenuItem==no){ 
				colorDiv.style.visibility = 'visible';
				if(changeBrightnessOrSaturation[groupIndex]=='saturation'){
					menuLink.style.backgroundColor =toRgb(startHue[groupIndex],saturationLinkMin[groupIndex],startBri[groupIndex]);
					}else{ 
						menuLink.style.backgroundColor =toRgb(startHue[groupIndex],startSat[groupIndex],brightnessLinkMin[groupIndex]);
					} 
					menuLink.initActive = '1'; menuLink.setAttribute('initActive','1'); 
				}
				listItems[no].appendChild(colorDiv);
				listItems[no].appendChild(menuLink); 
				var clearDiv =document.createElement('DIV'); 
				clearDiv.style.clear='both';
				listItems[no].appendChild(clearDiv); 
				clearDiv.innerHTML ='<span></span>'; 
				var currentWidth =(listItems[no].offsetWidth - colorDiv.offsetWidth - marginSquare);
				menuLink.style.width = currentWidth + 'px';
				while(listItems[no].offsetHeight>=(menuLink.offsetHeight*2)){
					currentWidth--; 
					menuLink.style.width = currentWidth + 'px'; 
				}
				listItems[no].style.overflow='hidden'; 
		} 
	}
} 
window.onload =dhtmlgoodies_initMenu; 