/*******************************************************************************

	swap クラス var1.2 (20080121)

	powered  by  http://www.ishinotec.com 
	scripted by KKK


	メソッド
	
		swap.onload(クラス名", over時の画像に付加される文字列", "visit時に付加される文字列");

		例）swap.onload("swap", "_f2", "_f3");
		<head>
			<script src="swap.js"></script>
		</head>
		<body>
			<a href="/page1/index.html"><img class="swap1" src="./test1.jpg" /></a>
		</body>

		over時の画像  "./test1_f2.jpg"
		visit時の画像 "./test1_f3.jpg"
		
		※第3引数が空欄の場合、visit時の画像は第2引数と同じ。

	1.任意のクラスのスワップイメージ。

		例） swap.classNameが"swap"の場合

		○ class="swap"
		○ class="swap test"
		○ class="test1 swap test2"

		× class-"zswap"
		× class-"test zswap"
		× class="test1 zswap test2"

		※設定方法

		<head>
			<script src="swap.js"></script>
		</head>
		<body>
			<a href="#"><img class="swap" src="test1.jpg" /></a>
			<a href="#"><img class="swap" src="test2.jpg" /></a>
			<a href="#"><img class="swap" src="test3.jpg" /></a>
		</body>

	2.任意のカテゴリーのみvisit表現。

		例） swap.classNameが"swap"の場合

		※設定方法

		<head>
			<script src="swap.js"></script>
		</head>
		<body>
			<a href="/page1/index.html"><img class="swap1" src="test1.jpg" /></a>
			<a href="/page1/page2/index.html"><img class="swap2" src="test2.jpg" /></a>
			<a href="/page1/page2/page3/index.html"><img class="swap3" src="test3.jpg" /></a>
		</body>

		○ class="swap1"               ※1
		○ class="swap2 test"          ※2
		○ class="test3 swap1 test2"   ※3

		× class-"zswap1"
		× class-"test zswap2"
		× class="test1 zswap3 test2"
	
		※1 ページとリンクを比較し1階層目まで同じ場合はvisit
		例) 現在のページ http://www.hoge.com/page1/index.html
			<a href="/page1/index.html"><img class="swap1" src="test1.jpg" /></a>
			// visit用画像に差し替え
	
		※2 ページとリンクを比較し2階層目まで同じ場合はvisit
		例) 現在のページ http://www.hoge.com/page1/page2/index.html
			<a href="/page1/page2/index.html"><img class="swap1" src="test1.jpg" /></a>
			// visit用画像に差し替え
	
		※3 ページとリンクを比較し3階層目まで同じ場合はvisit
		例) 現在のページ http://www.hoge.com/page1/page2/page3/index.html
			<a href="/page1/page2/page3/index.html"><img class="swap1" src="test1.jpg" /></a>
			// visit用画像に差し替え
			
		※ swap0及びswapとした場合、通常のswapのみ。
		※ swapのparentNodeが<a href="××">でない場合、通常のswapのみ。
	
*******************************************************************************/

var swap = {

	className  : "",
	over       : "",
	visit      : "",
	spriter    : (window.document.all) ? "/" : "",
	folders    : window.location.pathname.split("/"),
	localhost  : false,
	
	visitCheck : function(elm){

        var reg  = new RegExp("(.*\\b)("+swap.className+")(\\d*)(\\b.*)");
        var num  = Number(elm.className.replace(reg, "$3"));
        var href = elm.parentNode.pathname;
        var ret  = false;

		if(num <= 0 || href == undefined){
			return ret;
		}

		var links = (swap.spriter + href).split("/");

		for(var j = 1 ; j <= num ; j++){
			if(swap.folders[j] != links[j]){
				ret = false;
				break;
			}else{
				ret = true;
			}
		}
		return ret;

	},

	init       : function(){

		if(!window.location.host){
			swap.localhost = true;
		}

		var elms = swap.classCheck();
		var len  = elms.length;
		for(var i = 0 ; i < len ; i++){
			var elm = elms[i];
			elm._up = elm.src;

			if(swap.visitCheck(elm) && swap.localhost == false){
				elm._visit = elm.src.replace(/^(.*)(.jpg|.png|.gif)$/i ,"$1" + swap.visit + "$2");
				var img = new Image();
				img.src = elm._visit;
				elm.src = img.src;
				continue;
			};


			elm._over = elm.src.replace(/^(.*)(.jpg|.png|.gif)$/i ,"$1" + swap.over + "$2");
			var img = new Image();
			img.src = elm._over;
			elm.onmouseover = function(){this.src = this._over};
			elm.onmouseout = function(){this.src = this._up};
		}
	},

	classCheck : function(){
		var reg, ret, elm, len, i;
		reg = new RegExp("\\b"+swap.className+"\\d*"+"\\b"),
		ret = new Array();
		elm = document.images;
		len = elm.length;
		for(i = 0 ; i < len ; i++){
			if(elm[i].className.match(reg)){
				ret.push(elm[i]);
			}
		}
		return ret;
	},

	onload     : function(className, over, visit){

		swap.className  = className;
		swap.over = over;
		swap.visit = visit || over;

		if(window.attachEvent){
			window.attachEvent("onload", swap.init);
		}else if(window.addEventListener){
			window.addEventListener("load", swap.init, true);
		}else {
			return;
		}
	}
}

swap.onload("swap", "_f2", "_f2");

