var FADE_SPEED = 500;//"slow";
var PRELOAD_IMAGES_DELAY = 100; // 画像先読みの間隔[ms]

// thickboxで、ウィンドウが開かれたときに呼ばれる関数
function callBackFromTBWindowLoaded(){
	var color = $("#TB_secondLine>span", this).css("color");
	if (color) {
		$(this).css({"border-color": color});
		$("#TB_subtitle", this).css({"color": color});
	}
	$("img.hover", this).hover(function(){
		$(this).attr("src", $(this).attr("src").replace(/\.(jpe?g|gif|png)/, "_on.$1"));
	}, function(){
		$(this).attr("src", $(this).attr("src").replace(/_on\.(jpe?g|gif|png)/, ".$1"));
	});
}
// 配列に値があるかチェックするメソッド
function in_array(needle, haystack) {
	for (var i in haystack) {
		if (haystack[i] == needle) {
			return true;
		}
	}
	return false;
}
$(function(){
	// ウィンドウズFireFoxを判別
	function detectWinFF() {
		var userAgent = navigator.userAgent.toLowerCase();
		if (userAgent.indexOf('windows') != -1 && userAgent.indexOf('firefox')!=-1) {
			return true;
		}
	}
	// オン画像と切り替え画像の先読み
	function preloadOnSwitchImages() {
		// 先読み用画像オブジェクト
		var img = new Image();
		// 待機用タイマーID
		var timerId;
		// 先読み画像リスト
		var preloadSrcList = new Array();

		// オン画像リスト取得
		var preload = $("img.hover").get();
		for (var key in preload) {
			var src = $(preload[key]).hasClass("current") ?
					$(preload[key]).attr("src").replace(/_crt\.(jpe?g|gif|png)/, "_on.$1") :
					$(preload[key]).attr("src").replace(/\.(jpe?g|gif|png)/, "_on.$1");
			if (!in_array(src, preloadSrcList)) {
				preloadSrcList.push(src);
			}
		}
		// 切り替え画像リスト取得
		var preload = $("img.switch").get();
		for (var key in preload) {
			var tmp = $(preload[key]).attr("switch").split(":");
			if (!in_array(tmp[1], preloadSrcList)) {
				preloadSrcList.push(tmp[1]);
			}
		}

		$(img).bind('load', function() {
			// ひとつずつ先読み
			if(preloadSrcList[0]) {
				var src = preloadSrcList.shift();
				if (PRELOAD_IMAGES_DELAY > 0) {
					// 少し待ってから読み込む
					timerId = setTimeout(function(){
						clearTimeout(timerId);
						img.src = src;
					}, PRELOAD_IMAGES_DELAY);
				} else {
					img.src = src;
				}
			}
		}).trigger('load');
	}
	// カレント画像設定("hoge.jpg" → "hoge_crt.gif")
	function changeCurrentImages() {
		var targets = $("img.current").get();
		for (var key in targets) {
			$(targets[key]).attr("src", $(targets[key]).attr("src").replace(/\.(jpe?g|gif|png)/, "_crt.$1"));
		}
	}



	// カスタムthickbox用の奴を隠す
	$(".label, .secondLine, span.titleColor", ".thickbox").hide();
	// 色名をリンクの後ろに表示する
	$(".label").bind("start", function(){
		$(this).parent().after($(this).text());
	});
	$(".label").trigger("start");


	// カレント画像設定("hoge.jpg" → "hoge_crt.jpg")
	changeCurrentImages();
	// オン画像と切り替え画像の先読み
	preloadOnSwitchImages();

	// オンマウス画像設定("hoge.jpg" or "hoge_crt.jpg" → "hoge_on.jpg" およびその逆)
	$("img.hover, .hover:image").hover(function(){
		if ($(this).hasClass("current")) {
			$(this).attr("src", $(this).attr("src").replace(/_crt\.(jpe?g|gif|png)/, "_on.$1"));
		} else {
			$(this).attr("src", $(this).attr("src").replace(/\.(jpe?g|gif|png)/, "_on.$1"));
		}
	}, function(){
		if ($(this).hasClass("current")) {
			$(this).attr("src", $(this).attr("src").replace(/_on\.(jpe?g|gif|png)/, "_crt.$1"));
		} else {
			$(this).attr("src", $(this).attr("src").replace(/_on\.(jpe?g|gif|png)/, ".$1"));
		}
	});

	// 切り替え画像設定
	$("img.switch").hover(function(){
		if (!$(this).attr("switch")) return;
		var tmp = $(this).attr("switch").split(":");
		var target = tmp[0];
		var src = tmp[1];
		$(target).attr("src", src);
	}, function(){});

	// WinFirefox の場合フォントサイズを調整
	//if (detectWinFF()) {
	//	$("#footer").css({"font-size": "11px"});
	//}
	
	// imgTxt
	$(".imgTxt").each(function(){
		var $i=$("img",this).eq(0);
		$("p,div",this).eq(0).css({zIndex:(parseInt($i.css("z-index"),10)||0)-1});
		var i=new Image();
		$(i).bind('load',function(){
			this.$d.css({width:this.width,height:this.height,display:"block",position:"relative"});
			$(this).css({position:"absolute",top:0,left:0});
			$("p,div",this.$d).css({width:this.width-1,height:this.height-1,display:"block",overflow:"auto",position:"absolute",top:0,left:0});
		});
		i.$d=$(this);i.src=$i.attr("src");
	});
});
