// ----------- ロールオーバー関数 --------------

function rollover( layerName, imgid, imgfile )
{
	var layerObj = refLayer( layerName );
	
	layerObj.document.images[imgid].src = imgfile;
}


//	--------------- レイヤー内のイメージを参照する関数 ---------------

function getDivImage( layerObj,imgName )
{
	if ( NN4 )
	{
		return layerObj.document.images[ imgName ] ;
	}
	else
	{
		return document.images[ imgName ] ;
	}
}



//	--------------- レイヤーを参照する関数 ---------------

function refLayer( layerName )
{
	if ( NN4 )
	{
		return getNN4LayerFormat( layerName ) ;
	}
	else if ( IE4 )
	{
		return document.all[ layerName ] ;
	}
	else
	{
		return document.getElementById( layerName ) ;
	}
}

function getNN4LayerFormat( target )
{
	var SEARCH_LEVEL = 2 ;
	var ERROR_MSG    = "レイヤーを" +SEARCH_LEVEL+ "階層まで検索した結果\n" +
	                   "【 " +target+ " 】は見つかりませんでした" ;

	var inc       = new Array( SEARCH_LEVEL ) ;
	var parentLay = new String( 'document.layers' ) ;
	var dynaFunc  = new String( '' ) ;
	var lyrFormat = null ;

	for( var i=0; i<inc.length; i++ )
	{
		if( i != 0 ) parentLay += "[ inc["+( i-1 )+"] ].document.layers" ;

		dynaFunc += "for( inc[" +i+ "] in " +parentLay+ " ) { if( inc[ " +i+ " ] != 'length' && lyrFormat == null ) { " +
			            "if( inc[ " +i+ "] == target ) { lyrFormat = " +parentLay+ "[inc[ " +i+ " ]] ; break ; } " ;
	}

	for( var i=0; i<inc.length; i++ ) dynaFunc += "}}" ;

	eval( dynaFunc ) ;

	if ( !lyrFormat )
	{
		alert( ERROR_MSG ) ;
		return ;
	}

	return lyrFormat ;
}




//	--------------- レイヤーを初期化する関数 ---------------

function initLayer( layerObj )
{
	if ( NN6 )
	{
		layerObj.style.width = layerObj.offsetWidth ;
		layerObj.style.height = layerObj.offsetHeight ;
	}
	else if( IE4 || IE5 )
	{
		layerObj.style.pixelLeft   = layerObj.offsetLeft ;
		layerObj.style.pixelTop    = layerObj.offsetTop ;
		layerObj.style.pixelWidth  = layerObj.offsetWidth ;
		layerObj.style.pixelHeight = layerObj.offsetHeight ;
	}
}


//	--------------- レイヤーの表示・非表示 ---------------

function getLayerVisibility( layerObj )
{
	if ( NN4 )
	{
		return ( layerObj.visibility == "show" ) ;
	}
	else
	{
		return ( layerObj.style.visibility == "visible" ) ;
	}
}

function hideLayer( layerObj )
{
	if ( NN4 )
	{
		layerObj.visibility = "hide" ;
	}
	else
	{
		layerObj.style.visibility = "hidden" ;
	}
}

function showLayer( layerObj )
{
	if ( NN4 )
	{
		layerObj.visibility = "show" ;
	}
	else
	{
		layerObj.style.visibility = "visible" ;
	}
}





//	--------------- レイヤーを動かす ---------------

function movLayerTo( layerObj, x, y )
{
	if ( NN4 )
	{
		layerObj.moveTo( x, y ) ;
	}
	else if ( NN6 )
	{
		layerObj.style.left = x ;
		layerObj.style.top  = y ;
	}
	else
	{
		layerObj.style.pixelLeft = x ;
		layerObj.style.pixelTop  = y ;
	}
}

function movLayerBy( layerObj, x, y )
{
	if ( NN4 )
	{
		layerObj.moveBy( x, y ) ;
	}
	else if ( NN6 )
	{
		layerObj.style.left = getLayerPosition( layerObj, 'left' ) + x ;
		layerObj.style.top  = getLayerPosition( layerObj, 'top' ) + y ;
	}
	else if ( IE4 || (MAC && IE5) )
	{
		layerObj.style.pixelLeft += x ;
		layerObj.style.pixelTop  += y ;
	}
	else
	{
		layerObj.style.pixelLeft = layerObj.offsetLeft + x ;
		layerObj.style.pixelTop  = layerObj.offsetTop  + y ;
	}
}





//	--------------- レイヤーの値を取得 ---------------

function getLayerSize( layerObj, value )
{
	if( value == "width" )
	{
		if ( NN4 )
		{
			return layerObj.document.width ;
		}
		else if ( NN6 )
		{
			return parseInt( layerObj.style.width ) ;
		}
		else if ( IE4 )
		{
			return layerObj.style.pixelWidth ;
		}
		else
		{
			return layerObj.offsetWidth ;
		}
	}
	if( value == "height" )
	{
		if ( NN4 )
		{
			return layerObj.document.height ;
		}
		else if ( NN6 )
		{
			return parseInt( layerObj.style.height ) ;
		}
		else if ( IE4 )
		{
			return layerObj.style.pixelHeight ;
		}
		else
		{
			return layerObj.offsetHeight ;
		}
	}
}



//	--------------- レイヤーの座標を取得 ---------------

function getLayerPosition( layerObj, value )
{
	if( value == "top" )
	{
		if ( NN4 )
		{
			return layerObj.top ;
		}
		else if ( NN6 )
		{
			return parseInt( layerObj.style.top ) ;
		}
		else if ( IE4 )
		{
			return layerObj.style.pixelTop ;
		}
		else
		{
			return layerObj.offsetTop ;
		}
	}
	if( value == "right" )
	{
		if ( NN4 )
		{
			return layerObj.left + getLayerSize( layerObj, "width" ) ;
		}
		else if ( NN6 )
		{
			return parseInt( layerObj.style.left + getLayerSize( layerObj, "width" )  ) ;
		}
		else if ( IE4 )
		{
			return layerObj.style.pixelLeft + getLayerSize( layerObj, "width" ) ;
		}
		else
		{
			return layerObj.offsetLeft + getLayerSize( layerObj, "width" ) ;
		}
	}
	if( value == "bottom" )
	{
		if ( NN4 )
		{
			return layerObj.top + getLayerSize( layerObj, "height" ) ;
		}
		else if ( NN6 )
		{
			return parseInt( layerObj.style.top + getLayerSize( layerObj, "height" ) ) ;
		}
		else if ( IE4 )
		{
			return layerObj.style.pixelTop + getLayerSize( layerObj, "height" ) ;
		}
		else
		{
			return layerObj.offsetTop + getLayerSize( layerObj, "height" ) ;
		}
	}
	if( value == "left" )
	{
		if ( NN4 )
		{
			return layerObj.left ;
		}
		else if ( NN6 )
		{
			return parseInt( layerObj.style.left ) ;
		}
		else if ( IE4 )
		{
			return layerObj.style.pixelLeft ;
		}
		else
		{
			return layerObj.offsetLeft ;
		}
	}
}


