/***********************************************/ 
/* getElementsByClassName定義 */
/***********************************************/ 

document.getElementsByClassName = function (className) {
    var i, j, eltClass;
//alert("hello");
    var objAll = document.getElementsByTagName ? document.getElementsByTagName("*") : document.all;
    var objCN = new Array();
    for (i = 0; i < objAll.length; i++) {
        eltClass = objAll[i].className.split(/\s+/);
        for (j = 0; j < eltClass.length; j++) {
            if (eltClass[j] == className) {
                objCN.push(objAll[i]);
                break;
            }
        }
    }
    return objCN;
}


/***********************************************/ 
/* ロールオーバー画像切り替え関係 */
/***********************************************/ 

var switchingClassname = "SImg"; //ロールオーバーしたいimgに付加するclass名

/* ロールオーバー、アウト時の動作 */
function swapImage(e){
	e = (e) ? e : event;
	var imgTag = (e.srcElement) ? e.srcElement : e.target;
	imgTag.src = imgTag.src.replace("_f1","_f2");
}

function restoreImage(e){
	e = (e) ? e : event;
	var imgTag = (e.srcElement) ? e.srcElement : e.target;
	imgTag.src = imgTag.src.replace("_f2","_f1");
}


/* ロールオーバー、アウト時の動作（クリッカブルマップ用） */
function swapImageMap(e){
	e = (e) ? e : event;
	var areaTag = (e.srcElement) ? e.srcElement : e.target;
	var mapTag = areaTag.parentNode;
	var mapTagId = mapTag.id;
	var imgTags = document.getElementsByClassName(switchingClassname);
	//ここでマウスオーバーしたareaがどこなのか判定（_f○○の数字を知るため）
	for(var i = j = 0; i < mapTag.getElementsByTagName('area').length; i++){
		if(mapTag.getElementsByTagName('area')[i].shape != null){
			j++;
			if(mapTag.getElementsByTagName('area')[i] == areaTag){
				var areaNo = j+1;
			}
		}
	}
	//全imgタグからマウスオーバーがあったareaタグの親のmapタグのidと同じusemapを持つimgタグを探し画像名を置換
	for(var i = 0; i < imgTags.length; i++){
		if(imgTags[i].useMap){
			var useMap = imgTags[i].useMap.split("#")[1];
			if(useMap == mapTagId){
				var mapImgTag = imgTags[i];
				mapImgTag.src = mapImgTag.src.replace("_f1","_f" + areaNo);
			}
		}
	}
}

function restoreImageMap(e){
	e = (e) ? e : event;
	var areaTag = (e.srcElement) ? e.srcElement : e.target;
	var mapTag = areaTag.parentNode;
	var mapTagId = mapTag.id;
	var imgTags = document.getElementsByClassName(switchingClassname);
	//全imgタグからマウスオーバーがあったareaタグの親のmapタグのidと同じusemapを持つimgタグを探し画像名を置換
	for(var i = 0; i < imgTags.length; i++){
		if(imgTags[i].getAttribute("usemap")){
			var useMap = imgTags[i].getAttribute("usemap").split("#")[1];
		}
		if(useMap == mapTagId){
			var mapImgTag = imgTags[i];
			mapImgTag.src = mapImgTag.src.replace(/_f[0-9][0-9]?/,"_f1");
		}
	}
}

/* 特定のクラス名でロールオーバー起動 */
function rolloverImgset(){
	if(document.getElementsByClassName(switchingClassname) != ""){
		var imgTags = document.getElementsByClassName(switchingClassname);
		var len = imgTags.length;
		var getMapTag = document.getElementsByTagName('map');
		var mapLen = getMapTag.length;
		var swapImages = new Array();
		for(var i = 0; i < len; i++) {
			if(imgTags[i].useMap) { //mapタグ
				for(var a = 0; a < mapLen; a++) {
					if(imgTags[i].useMap.split('#')[1] == getMapTag[a].id) { //マウスオーバーがあった画像のusemapと同じidを持つmapタグなら処理
						var areaLen = getMapTag[a].getElementsByTagName('area').length;
						swapImages[i] = new Array();
						for(var b = 0; b < areaLen; b++) {
							swapImages[i][b] = new Image();
							swapImages[i][b].src = imgTags[i].src.replace("_f1","_f" + (b + 2)); //画像プリロード
						}
						getMapTag[a].onmouseover = swapImageMap;
						getMapTag[a].onmouseout = restoreImageMap;
					}
				}
			}
			else{ //imgタグ
				swapImages[i] = new Image();
				swapImages[i].src = imgTags[i].src.replace("_f1","_f2"); //画像プリロード
				imgTags[i].onmouseover = swapImage;
				imgTags[i].onmouseout = restoreImage;
			}
		}
	}else{
		return false;
	}
}





/***********************************************/ 
/* popup window */
/***********************************************/ 

function popWin(theURI,windowName,Width,Height){
	PopUpWin = window.open(
		theURI,windowName,'scrollbars=1,width=' + Width + ',height=' + Height + ',resizable=1,directories=0,toolbar=0,status=1,location=0'
		);
	PopUpWin.focus();
	}





/***********************************************/ 
/* IE6でロールオーバーをCSSで行う際のちらつきをおさえる */
/***********************************************/ 

try {
	document.execCommand('BackgroundImageCache', false, true);
} catch(e) {}









window.onload = rolloverImgset;
