//// MAIN MENU
//###########################################################################
//## menu HTML
//###########################################################################

if(!menuRoot)
	var menuRoot = '';

var gmenus = new Array();
function gmenu(){
	this.glayer = null;
	this.HTML = null;
	this.gmarker = null;
	this.gmousein = 0;
	this.ganimating = false;
	this.ggoal = 0;
	this.menuXOffset = -500;
	this.menuYOffset = -500;
	this.goffsetX = this.menuXOffset;
	this.goffsetY = this.menuYOffset;
	this.gmenuWidth =100;
	this.gmenuheight = null;
	this.gstep = (browser.mac)?50 : 25;
	this.gtime = 50;
	this.gstate=0;
	this.onShow = function() { return; };
	this.onHide = function() { return; };
	this.gimage = null;
	this.gpaddingTop = 0;
	this.gvertspacing = 0;
	this.gurl = '#';
}
var bFreezeMenu = true;
var winhWidth = 0;
var documentLoaded = false;

function addMenu(imagename, vertspacing, url){
	gmenus[gmenus.length] = new gmenu();
	gmenus[gmenus.length-1].gimage = imagename;
	if(vertspacing)
		gmenus[gmenus.length-1].gvertspacing = vertspacing;
	if(url)
		gmenus[gmenus.length-1].gurl = url;
}

function maintainMenu(i){
    if(!(window.mouseX >= gmenus[i].goffsetX && window.mouseX <= (gmenus[i].goffsetX + gmenus[i].gmenuWidth) && window.mouseY >= (gmenus[i].goffsetY-gmenus[i].gpaddingTop) && window.mouseY <= (gmenus[i].goffsetY + gmenus[i].gmenuheight) )){
		hideMenu(i);		
		//alert('hide');
	}
}

function goMenu(i){
	if( documentLoaded && gmenus[i]){
		if ( gmenus[i].gurl.indexOf('http://') == 0){
			document.location = gmenus[i].gurl;
		}else{
			document.location = menuRoot + gmenus[i].gurl;
		}
	}
}

function showMenu(i){	
	if( documentLoaded && gmenus[i]){
		gmenus[i].ggoal = gmenus[i].gmenuheight;
    	gmenus[i].gmousein = true;
		if(!(browser.mac && browser.ie && browser.version < 5) && !(browser.ns && browser.version > 4.8))
    		placeMenu(i);
    	if (!gmenus[i].ganimating){
        	gmenus[i].onShow();
			clipOut(i);
    	}
	}	
}

function hideMenu(i){
	if (!bFreezeMenu)
	{
		gmenus[i].ggoal = 0;
		if (!gmenus[i].ganimating ){
			clipOut(i);
			gmenus[i].onHide();
			gmenus[i].gmousein = false;
		}
	}
}
var menuOpened = false;
function clipOut(i){
	if((browser.mac && browser.ie && browser.version < 5) || (browser.ns && browser.version > 4.8)){
		gmenus[i].ganimating = true;
		if (gmenus[i].ggoal){
			gmenus[i].glayer.style.display  = 'block';
		}else{
			gmenus[i].glayer.style.display  = 'none';
		}
		setPageY( gmenus[i].glayer, gmenus[i].goffsetY );
		setTimeout('gmenus['+i+'].ganimating = false;', 250);
	}else{
		var dis = Math.abs(gmenus[i].gstate - gmenus[i].ggoal);
		if (dis > gmenus[i].gstep) {
   		var tempstep = (gmenus[i].gstate > gmenus[i].ggoal)? -gmenus[i].gstep : gmenus[i].gstep;
      gmenus[i].gstate += tempstep;
   	  setPageY(gmenus[i].glayer,gmenus[i].goffsetY-(gmenus[i].gmenuheight-gmenus[i].gstate));
	    setClip(gmenus[i].glayer,gmenus[i].gmenuheight-gmenus[i].gstate,gmenus[i].gmenuWidth,gmenus[i].gmenuheight,0);
   	  gmenus[i].ganimating = true;
   	  setTimeout('clipOut('+i+')',gmenus[i].gtime);
   	}else{
	  	setPageY(gmenus[i].glayer,gmenus[i].goffsetY);
   	  setClip(gmenus[i].glayer,0,gmenus[i].gmenuWidth,gmenus[i].ggoal,0);
      gmenus[i].ganimating = false;
      if (gmenus[i].ggoal == 0 && gmenus[i].glayer.style){
      	gmenus[i].glayer.style.left = -gmenus[i].gmenuWidth;
			}
  	}
	}
}
function menu_onload(){
	for(i=0; i<gmenus.length; i++){
		//FIXME document.images[gmenus[i].gimage] does not always exist
		if(document.images[gmenus[i].gimage]){
		
			gmenus[i].menuXOffset = getPageX(document.images[gmenus[i].gimage]);
			gmenus[i].menuYOffset = getPageY(document.images[gmenus[i].gimage]) + document.images[gmenus[i].gimage].height + gmenus[i].gvertspacing;
			gmenus[i].gmenuWidth = document.images[gmenus[i].gimage].width;
			gmenus[i].gpaddingTop = gmenus[i].menuYOffset - getPageY(document.images[gmenus[i].gimage]);
			gmenus[i].onShow = function() { swapImage(this.gimage, '_over'); };
			gmenus[i].onHide = function() { swapImage(this.gimage, '_out'); };
			gmenus[i].goffsetX = gmenus[i].menuXOffset;
			gmenus[i].goffsetY = gmenus[i].menuYOffset;
		    gmenus[i].glayer = getLayer('gmenu'+i);
		    gmenus[i].gmenuheight = getHeight(gmenus[i].glayer);
		    gmenus[i].ggoal = gmenus[i].gmenuheight;
			setWidth(gmenus[i].glayer,gmenus[i].gmenuWidth);
			if((browser.mac && browser.ie && browser.version < 5) || browser.ns && browser.version > 4.8){
				gmenus[i].glayer.style.display  = 'none';
				placeMenu(i);
			}
			else
		    	setClip(gmenus[i].glayer,0,gmenus[i].gmenuWidth,0,0);
		    if(!gmenus[i].glayer.style){
		        gmenus[i].glayer.visibility = 'visible';
		    }
		}		
	}
	bFreezeMenu = false;
	documentLoaded = true;
}

function placeMenu(i){setPageX(gmenus[i].glayer, gmenus[i].goffsetX );setPageY(gmenus[i].glayer,gmenus[i].goffsetY);}

var menuOpened = false;
var gifOpened = false;
window. mouseX = 0;
window. mouseY = 0;
window. document. onmousemove = function(){
	if( arguments[ 0 ] ){
		window. mouseX = arguments[ 0 ]. pageX;
		window. mouseY = arguments[ 0 ]. pageY;
	}else{
		window. mouseX = event. clientX + document. body. scrollLeft;
		window. mouseY = event. clientY + document. body. scrollTop;
	}
	menuOpened = false;
	for(i=0; i<gmenus.length; i++){
	    if(gmenus[i].gmousein) {
			menuOpened = true;
			maintainMenu(i)
		}	
	}
	if (menuOpened){
		if (!gifOpened){
			gifOpened = true;
			if ( document.getElementById && document.getElementById('giflayer')){
				document.getElementById('giflayer').style.visibility = "visible";
				if (document.getElementById('flashlayer')){
					 if (document.all && browser.mac){
						//trace('show');
					 	document.getElementById('flashlayer').style.display = "none";
					 }
					 else {
					 	document.getElementById('flashlayer').style.visibility = "hidden";
					 }
				}
			}
		}
	}
	else {
		if (gifOpened){
			gifOpened = false;
			if ( document.getElementById && document.getElementById('giflayer')){
				document.getElementById('giflayer').style.visibility = "hidden";
				if (document.getElementById('flashlayer')){
					 if (document.all && browser.mac){
						//trace('hide');
					 	document.getElementById('flashlayer').style.display = "block";
					 }
					 else {
					 	document.getElementById('flashlayer').style.visibility = "visible";
					 }
				}
			}		
		}	
	}
} 
//// END MAIN MENU
