function showHideLayer()
{
	//--------- public definition ----------
	this.showLayer = _showLayer;
	this.hideLayer = _hideLayer;
	this.isLayerDisplay = _isLayerDisplay;
	
	function _showLayer (layerId, needEffectId, timeDelay)
	{
		objLayer=_findObj(layerId);
		objNeedEffect=_findObj(needEffectId);
		if (objLayer!=null)
		{
			with (objLayer)
			{
				style.visibility = 'visible';
				style.display = 'block';
			}
		}
		if (needEffectId!=null && _findObj(needEffectId)!=null) _fadeIn(needEffectId, timeDelay);	
	}
	
	function _hideLayer (layerId, needEffectId, timeDelay)
	{
		objLayer=_findObj(layerId);
		objNeedEffect=_findObj(needEffectId);
		if (objLayer!=null && objNeedEffect!=null) 
		{
			_fadeOut(layerId, needEffectId, timeDelay);
		}
		else
		{
			if (objLayer!=null)
			{
				with (objLayer)
				{
					style.visibility = 'hidden';
					style.display = 'none';
				}
			}
		}
	}

	function _isLayerDisplay(layerId)
	{
		obj=_findObj(layerId);
		if (obj != null && obj.style.visibility =='visible')
			return true;
		else
			return false;
	}
	
	function _findObj(elementId)
	{
		return document.getElementById(elementId);
	}
	
	//------ layer effect function ----------
	function _fadeIn(needEffectId, timeDelay)
	{
		if ((objNeedEffect=_findObj(needEffectId))!=null)
		{
			opVal = 0;
			if (parseFloat(_getIEversion()) >= 6) // for IE 6
			{
				objNeedEffect.filters.item("DXImageTransform.Microsoft.Alpha").opacity = opVal;
				this._doFadeIn(needEffectId, opVal, timeDelay);				
			}
			else if (objNeedEffect.style.MozOpacity) // for mozilla browser i.e. firefox
			{
				objNeedEffect.style.MozOpacity = opVal;
				this._doFadeIn(needEffectId, opVal, timeDelay);
			}

		}
	}

	_doFadeIn = function (needEffectId, opVal, timeDelay)
		{
			objNeedEffect=_findObj(needEffectId)
			if (timeDelay == null || timeDelay.length == 0) timeDelay = 10;
			if (parseFloat(_getIEversion()) >= 6 && opVal < 100) // for IE 6
			{
				opVal = parseInt(opVal)+10;
				objNeedEffect.filters.item("DXImageTransform.Microsoft.Alpha").opacity = opVal;
				timerId = setTimeout ('_doFadeIn("' + needEffectId + '","' + opVal + '","' + timeDelay + '")', timeDelay);	
			}
			else if (objNeedEffect.style.MozOpacity && opVal < 1) // for mozilla browser i.e. firefox			
			{
				opVal = parseFloat(opVal) + 0.05;
				objNeedEffect.style.MozOpacity = opVal;
				timerId = setTimeout ('_doFadeIn("' + needEffectId + '","' + opVal + '","' + timeDelay + '")', timeDelay);	
			}
			else
				clearTimeout (timerId);
		}
	
	
	function _fadeOut (parentNeedEffectId, needEffectId, timeDelay)
	{
		objNeedEffect=_findObj(needEffectId);
		objParentNeedEffect=_findObj(parentNeedEffectId)
		if (objNeedEffect != null)
		{
			if (parseFloat(_getIEversion()) >= 6)
			{
				opVal = 100;
				_doFadeOut(parentNeedEffectId, needEffectId, opVal, timeDelay);
			}
			else if (objNeedEffect.style.MozOpacity)
			{
				opVal = 0.1;
				_doFadeOut(parentNeedEffectId, needEffectId, opVal, timeDelay);
			}
			else
			{
				if (objParentNeedEffect!=null)
				{
					objParentNeedEffect.style.visibility = 'hidden';
					objParentNeedEffect.style.display = 'none';
				}			
			}
		}
		else
		{
			if (objParentNeedEffect!=null)
			{
				objParentNeedEffect.style.visibility = 'hidden';
				objParentNeedEffect.style.display = 'none';
			}
		}
	}
	
	_doFadeOut = function (parentNeedEffectId, needEffectId, opVal, timeDelay)
	{
		objNeedEffect=_findObj(needEffectId);
		if (timeDelay == null || timeDelay.length == 0) timeDelay = 10;
		if (opVal > 0){
			if (parseFloat(_getIEversion()) >= 6) // for IE 6		
			{
				opVal = parseInt(opVal)-20;
				objNeedEffect.filters.item("DXImageTransform.Microsoft.Alpha").opacity = opVal;		
				timerId = setTimeout ('_doFadeOut("' + parentNeedEffectId + '","' + needEffectId + '","' + opVal + '","' + timeDelay + '")', timeDelay);
			}
			else if (objNeedEffect.style.MozOpacity) // for mozilla browser i.e. firefox			
			{
				opVal = parseFloat(opVal) - 0.02;
				objNeedEffect.style.MozOpacity = opVal;
				timerId = setTimeout ('_doFadeOut("' + parentNeedEffectId + '","' + needEffectId + '","' + opVal + '","' + timeDelay + '")', timeDelay);	
			}
		}
		else
		{
			clearTimeout (timerId);
			if ((objParentNeedEffect=_findObj(parentNeedEffectId))!=null)
			{
				objParentNeedEffect.style.visibility = 'hidden';
				objParentNeedEffect.style.display = 'none';
			}
		}
	}
	//-------------------
	function _getIEversion()
	{
		var strUserAgent = navigator.userAgent;
		var indStart = strUserAgent.indexOf ("MSIE ");
		var indEnd = strUserAgent.indexOf (";", indStart);
		var strVer = strUserAgent.substring (indStart + 5, indEnd);
		return strVer;
	}	
}