/*
	OSJp Swap Image  for jQuery.js(ver 1.2+)/prototype.js(ver 1.4+)

	<img src="hoge_off.ext" class="swap"> 
	のように、class swap を持ち、"(任意)_off.拡張子" というソース名を持つ
	imgタグに対してマウスオーバーイベントを割り当てる。	

　	変更後のイメージを先読みする
	同時に読み込まれた場合、JQueryのイベントを優先
*/

// 先読み・通常イメージ
var swpImgs = new Array();
var orgImgs = new Array();


// 起動時に、image obj を検索するイベントを追加
if(typeof jQuery != "undefined") 
{
	$(function() { checkimage_jquery(); });
}
else if(typeof Prototype != "undefined") 
{
	Event.observe(window, "load", checkimage_prototype, false);
}

/**
 * for prototype
 */
function checkimage_prototype()
{
	var im = document.images;
	
	// onMouseOver時のイベントハンドラ
	var rollon = function( ev )
	{
		var img =(Event)? Event.element(ev) :this;
		if(img.idx!=undefined)
		{
			img.src = swpImgs[img.idx].src;
		}
	} 

	// onMouseOut時のイベントハンドラ
	var rolloff = function( ev )
	{
		var img = Event.element(ev);
		if(img.idx!=undefined)
		{
			img.src = orgImgs[img.idx].src;
		}
	} 
	
	for (var i=0; i< im.length;i++)
	{
		var c = im[i].getAttributeNode('class');
		if (c != undefined && c.value == "swap")
		{
			// image obj に IDを埋め込み
			im[i].idx = i;
			Event.observe(im[i], "mouseover", rollon , false);
			Event.observe(im[i], "mouseout", rolloff, false);
			
			// swap Image 先読み
			swpImgs[i] = new Image();
			swpImgs[i].src = im[i].src.replace("_off.", "_on.");

			// 通常イメージのコピーを保存（元に戻すために使用）
			orgImgs[i] = new Image();
			orgImgs[i].src = im[i].src;
		}
	}
}

function checkimage_jquery()
{
	$(document.images).each(
		function()
		{
			if ($(this).attr("class") == "swap")
			{
				var img = new Image();
				var key = $(this).attr("src");
				img.src = key.replace("_off.", "_on.");
				swpImgs[key] = img;
				orgImgs[img.src] = new Image();
				orgImgs[img.src].src = key;
			}
		}
	);
	
	$(".swap").hover(
		function()
		{
			$(this).attr("src", swpImgs[$(this).attr("src")].src);
		},
		function()
		{
			$(this).attr("src", orgImgs[$(this).attr("src")].src);
		}
	);
}