/**
 * 
 * @version $Revision $
 * @cvs $id $
 */
var __ddMenus = Array();
var __activeDDMenu = null;

if(window.attachEvent){
	window.document.attachEvent('onmousedown', checkMenuActivity, false);
}//end if
else{
	window.document.addEventListener('mousedown', checkMenuActivity, false);
}//end else

/**
 * @param string sId
 * @param Function fnActivate
 * @param Function fnDeactivate
 * @return void
 */
function registerDDMenu(sId, fnActivate, fnDeactivate){

	var oList = window.document.getElementById(sId);
	var node, i, liNodes;
	
	if(__ddMenus[sId] == undefined && oList){
	
		__ddMenus[sId] = Array();
		__ddMenus[sId]['object'] = oList;
		__ddMenus[sId]['fnActivate'] = fnActivate;
		__ddMenus[sId]['fnDeactivate'] = fnDeactivate;
		__ddMenus[sId]['enable'] = false;
		__ddMenus[sId]['interval'] = null;
		
		oList.style.zIndex = 10;
		
		liNodes = oList.getElementsByTagName('li');
		for(i = 0; i < liNodes.length; i++){
		
			node = liNodes[i];
			node.onmouseout = __liOnmouseoutHandler;			
			node.onmouseover = __liOnmouseoverHandler;
			
		}//end for
		
	}//end if
	
}//end function

/**
 * @param string sId
 * @return void
 */
function isRegisteredDDMenu(sId){
	return (__ddMenus[sId] == undefined) ? false : true;
}//end function

/**
 * @param string sId
 * @return void
 */
function enableDDmenu(sId){

	if(__ddMenus[sId] != undefined){
		__ddMenus[sId]['enable'] = true;
	}//end if

}//end function

/**
 * @param string sId
 * @return void
 */
function disableDDmenu(sId){

	if(__ddMenus[sId] != undefined){
		__ddMenus[sId]['enable'] = false;
	}//end if

}//end function

/**
 * 
 * @param string sId
 * @return void
 */
function showDDmenu(sId){

	if(__ddMenus[sId] != undefined){
		
		if(__activeDDMenu){
			
			if(__activeDDMenu == sId){
				return;
			}//end if
			else{
				hideDDmenu(__activeDDMenu);
			}//end else
			
		}//end if
		
		__ddMenus[sId]['object'].style.visibility = 'visible';
		__ddMenus[sId]['interval'] = setInterval( 'checkMenuActivity();', 1000);
		__activeDDMenu = sId;
		
		if(__ddMenus[sId]['fnActivate']){
			__ddMenus[sId]['fnActivate'](sId);
		}//end if
		
	}//end if
	
}//end function

/**
 * 
 * @param string sId
 * @return void
 */
function hideDDmenu(sId){
	if(!sId){
		sId = __activeDDMenu;
	}//end else
	
	if(__ddMenus[sId] != undefined){
	
		clearInterval(__ddMenus[sId]['interval']);
		__ddMenus[sId]['object'].style.visibility = 'hidden';
		__ddMenus[sId]['interval'] = null;
		__activeDDMenu = null;
		
		if(__ddMenus[sId]['fnDeactivate']){
			__ddMenus[sId]['fnDeactivate'](sId);
		}//end if
		
	}//end if
	
}//end function

/**
 * 
 * @return void
 */
function checkMenuActivity(){
	if(__activeDDMenu){
		if(!__ddMenus[__activeDDMenu]['enable']){
			hideDDmenu(__activeDDMenu);
		}//end if
	}//end if
}//end function

/**
 * 
 * @param Event e
 * @return void
 */
function __liOnmouseoverHandler(e){
	enableDDmenu(this.parentNode.id);
}//end function

/**
 * 
 * @return Event e
 */
function __liOnmouseoutHandler(e){
	disableDDmenu(this.parentNode.id);
}//end function

/**
 * 
 * @param Image oImg
 * @return void
 */
function swapImage(oImg){
	var reg = /off\./i;
	
	if(oImg){
		if(!oImg.oSrc){
			oImg.oSrc = oImg.src; 
		}//end if
		
		if(!oImg.rSrc){
			oImg.rSrc = oImg.src.replace(reg, 'on.'); 
		}//end if
		
		oImg.src = oImg.rSrc;
	}//end if
	
}//end function

/**
 * 
 * @param Image oImg
 * @return void
 */
function swapImgRestore(oImg){
	if(oImg){
		oImg.src = oImg.oSrc;
	}//end if
}//end function

/**
 * 
 * @param string sUrl
 * @return void
 */
function showIcone(sUrl){
	var oDiv = window.document.getElementById('iconeMenu');
	oDiv.style.visibility = 'visible';
	oDiv.style.backgroundImage = 'url(' + sUrl + ')';
}//end function

/**
 * 
 * @return void
 */
function hideIcone(){
	var oDiv = window.document.getElementById('iconeMenu');
	oDiv.style.visibility = 'hidden';
}//end function

/**
 * 
 * @param string ...
 * @return void
 */
function preloadImages() { //v3.0
	if(document.images){
	
		if(!document.preloads){
			document.preloads = new Array();
		}//end if
		
		var i = 0, j = document.preloads.length, args = preloadImages.arguments;
		
		for(i = 0; i < args.length; i++){
			if(args[i].indexOf("#")!=0){
				document.preloads[j] = new Image;
				document.preloads[j].src = args[i];
				j++;
			}//end if
		}//end for
		
	}//end if
	
}//end function
