function MM_preloadImages() {
	if (document.images) {
		//	引数を取得
		var imgFiles = MM_preloadImages.arguments;
		//	イメージの配列が空なら新規作成／既存なら追加準備
		if (document.preloadArray==null)
			document.preloadArray = new Array();
		//	イメージの追加位置を初期化
		var i = document.preloadArray.length;
		//	パラメータの件数分（先頭が#でないものだけ）配列に追加
		with (document){
			for (var j = 0; j < imgFiles.length; j++){
				if (imgFiles[j].charAt(0)!="#"){
					preloadArray[i] = new Image;
					preloadArray[i++].src = imgFiles[j];
				}
			}
		}
	}
}
//v2.0	入れ替えたイメージを元に戻す
function MM_swapImgRestore() {
	//	入れ替えたイメージがある場合のみ実行
	if (document.MM_swapImgData != null){
		//	イメージ入れ替えの件数÷２回繰り返す（１つおきに処理）
		for (var i = 0; i < (document.MM_swapImgData.length - 1); i += 2)
			//	２つ１組の１番目の項目のソースに２番目の項目を設定
			document.MM_swapImgData[i].src = document.MM_swapImgData[i+1];
	}
}
//v2.0	状況に応じてイメージを入れ替え
function MM_swapImage() { 
	var i,j=0,
		objStr,obj,
		swapArray=new Array,
		oldArray=document.MM_swapImgData;
	//	引数を３つ１組で扱い、全引数分を処理する
	for (i = 0; i < (MM_swapImage.arguments.length - 2); i += 3) {
		//	現在位置（ネスケ以外では現在位置の次）の引数を確認
		objStr = MM_swapImage.arguments[(navigator.appName == 'Netscape')?i:i+1];
		//	引数がレイヤ処理でレイヤオブジェクトが無い場合
		//	または引数がall処理でallオブジェクトが無い場合
		if ((objStr.indexOf('document.layers[')==0 && document.layers==null) ||
				(objStr.indexOf('document.all[') ==0 && document.all ==null))
			//	レイヤまたはallを除いてドキュメントアイテムを指示するように変更
			objStr = 'document' + objStr.substring(objStr.lastIndexOf('.'),objStr.length);
		//	引数で指示されたオブジェクトを参照可能にする
		obj = eval(objStr);
		if (obj != null) {
			//	２つ１組で、１番目には指示されたオブジェクトを設定
			swapArray[j++] = obj;
			//	２番目には旧配列が空か旧配列の１番目が指定オブジェクトでない時は
			//	オブジェクトのソースを、そうでない時は旧配列の要素をそのまま設定
			swapArray[j++] = (oldArray==null || oldArray[j-1]!=obj)? obj.src: oldArray[j];
			//	オブジェクトのソースに引数の現在位置＋２の項目を設定
			obj.src = MM_swapImage.arguments[i+2];
		}
	}
	//	作成した配列をドキュメントに持たせる
	document.MM_swapImgData = swapArray; //used for restore
}

