var overKey = "_on";
var activeKey = "_active";

// 無衝突モードにする
jQuery.noConflict();

/*
 * ロード時の自動ロールオーバー
 */
jQuery(function() {
	var classname = ".rollover";
	jQuery(classname).hover(
		function() {
			swapImg(jQuery(this).find("img"), overKey);
		},
		function() {
			swapImg(jQuery(this).find("img"), "");
		}
	);
	jQuery(classname).focus(function() {
			swapImg(jQuery(this).find("img"), overKey);
	});
	jQuery(classname).blur(function() {
			swapImg(jQuery(this).find("img"), "");
	});
});

/*
 * ロード時の自動プリロード
 */
jQuery(function() {
	var images = jQuery('img.preload');
	for (var i = 0; i < images.length; i++) {
		var path = images[i].src;
		var suffix = path.substr(path.lastIndexOf("."));
		var basename = getBasename(path, overKey, activeKey);
		(new Image()).src = basename + overKey + suffix;
	}
});

var navInitializer = function() {
	jQuery('img').each(function(i) {
		if (jQuery(this).attr("id")) {
			var path = jQuery(this).attr("src");
			var suffix = path.substr(path.lastIndexOf("."));
			var basename = getBasename(path, overKey, activeKey);
			(new Image()).src = basename + overKey + suffix;
			var classname = "." + jQuery(this).attr("id");
			
			// 画像のIDと同じclassの要素が親要素にあった場合は、activeにする。
			// IDと同じclass名の要素がなく、かつactiveKeyをもつsrcの画像の場合は、ノーマルにする
			if (jQuery(this).parents(classname).length > 0) {
				jQuery(this).attr("src", basename + activeKey + suffix);
			} else if (jQuery(this).attr("src").indexOf(activeKey) > 0) {
				jQuery(this).attr("src", basename + suffix);
			}
		}
	});
};

/*
 * ロード時の自動ナビゲーション要素変化
 */
jQuery(navInitializer);

function swapImg(img, key) {
	var path = img.attr("src");
	var basename = getBasename(path, overKey, activeKey);
	var suffix = path.substr(path.lastIndexOf("."));
	
	
	path = img.attr("id") && jQuery.find("."+img.attr("id")).length > 0
		 ? basename + activeKey + suffix
		 : basename + key + suffix;

	img.attr("src", path);
}

/*
 * ベース名を取り出す
 */
function getBasename(src, key, activeKey) {
	var path = src.substr(0, src.lastIndexOf('.'));
	if (path.lastIndexOf(key) == (path.length - key.length)) {
		path = path.substr(0, path.length - key.length);
	}
	if (path.lastIndexOf(activeKey) == (path.length - activeKey.length)) {
		path = path.substr(0, path.length - activeKey.length);
	}
	return path;
}
