/* 画像先読み */
var loadImages  = new Object();

var imgObj, imgDir, imgName, imgExt, onmouseover = new String();

var loadComplete = false;

var imgRe = new RegExp("(^.+\/)([^\.\/]+)(\..+)");

var overSuffix = "_on";

var rootKeyword = "common";

var addImg = new Array();

function imgPreLoad() {
	if (document.getElementById) {
		for (i=0; i<document.getElementsByTagName("img").length; i++) {
			imgObj = document.getElementsByTagName("img")[i];
			onmouseover = new String(imgObj.getAttribute("onmouseover"));
			if (onmouseover.indexOf("rollOver") != -1) {
				imgRe.exec(imgObj.src);
				imgDir = RegExp.$1;
				imgName = RegExp.$2;
				imgExt = RegExp.$3;
				imgName = imgName.replace(overSuffix, "");
				imgName2 = imgName + overSuffix;
				loadImages[imgName] = new Image();
				loadImages[imgName].src = imgDir + imgName + imgExt;
				loadImages[imgName2] = new Image();
				loadImages[imgName2].src = imgDir + imgName2 + imgExt;
			}
		}
		for (i=0; i<document.getElementsByTagName("input").length; i++) {
			imgObj = document.getElementsByTagName("input")[i];
			onmouseover = new String(imgObj.getAttribute("onmouseover"));
			if (onmouseover.indexOf("rollOver") != -1) {
				imgRe.exec(imgObj.src);
				imgDir = RegExp.$1;
				imgName = RegExp.$2;
				imgExt = RegExp.$3;
				imgName = imgName.replace(overSuffix, "");
				imgName2 = imgName + overSuffix;
				loadImages[imgName] = new Image();
				loadImages[imgName].src = imgDir + imgName + imgExt;
				loadImages[imgName2] = new Image();
				loadImages[imgName2].src = imgDir + imgName2 + imgExt;
			}
		}
		var basePath = seekRoot(rootKeyword);
		for (i in addImg) {
			loadImages["add" + i] = new Image();
			loadImages["add" + i].src = basePath + addImg[i];
		}
		loadComplete = true;
		return true;
	} else {
		return false;
	}
}


function seekRoot(keyword) {
	if (document.getElementById) {
		var targetSrc;
		var basePath;
		for (i=0; i<document.getElementsByTagName("img").length; i++) {
			targetSrc = document.getElementsByTagName("img")[i].src;
			if (targetSrc.split(keyword).length >= 2) {
				basePath = targetSrc.split(keyword)[0];
				break;
			}
		}
		return basePath;
	}
}
/* // 画像先読み */


/* 画像ロールオーバー */
function rollOver() {
	if (document.getElementById && loadComplete) {
		for (i=0; i<arguments.length; i++) {
			if (typeof(arguments[i])=="string") {
				imgObj = document.getElementById(arguments[i]);
			} else {
				var imgObj = arguments[i];
			}
			imgRe.exec(imgObj.src);
			imgName = RegExp.$2;
			if (imgName.indexOf(overSuffix)==-1) {
				imgName += overSuffix;
			}
			imgObj.src = loadImages[imgName].src;
		}
	}
}

function rollOut() {
	if (document.getElementById && loadComplete) {
		for (i=0; i<arguments.length; i++) {
			if (typeof(arguments[i])=="string") {
				imgObj = document.getElementById(arguments[i]);
			} else {
				var imgObj = arguments[i];
			}
			imgRe.exec(imgObj.src);
			imgName = RegExp.$2.replace(overSuffix, "");
			imgObj.src = loadImages[imgName].src;
		}
	}
}
/* // 画像ロールオーバー */


/* 別ウインドウリンク */
function exWin(url) {
	window.open(url);
	return false;
}
/* // 別ウインドウリンク */


/* クラス名によるタグコレクション取得 */
var tagList= new Array("a", "acronym", "address", "area", "applet", "big", "blockquote", "body", "br", "cite", "code", "dd", "div", "dfn", "dl", "dt", "em", "h1", "h2", "h3", "h4", "h5", "h6", "head", "hr", "html", "img", "kbd", "li", "link", "map", "meta", "noscript", "ol", "p", "param", "pre", "q", "ruby", "samp", "script", "small", "span", "strong", "style", "sub", "sup", "title", "tt", "ul", "var");

function collectionByClass(selector) {
	var count = 0;
	var tagGroup;
	var classValue;
	if (selector.indexOf("\.") != -1) {
		this.tagStr = selector.split("\.")[0];
		this.classStr = selector.split("\.")[1];
		tagGroup = document.getElementsByTagName(this.tagStr);
		for (i in tagGroup) {
			classValue = new String(tagGroup[i].className);
			if (classValue.indexOf(this.classStr) >= 0) {
				this[count] = tagGroup[i];
				count++;
			}
		}
	} else {
		this.tagStr = "*";
		this.classStr = selector;
		for (i in tagList) {
			tagGroup = document.getElementsByTagName(tagList[i]);
			for (j in tagGroup) {
				classValue = new String(tagGroup[j].className);
				if (classValue.indexOf(this.classStr) >= 0) {
					this[count] = tagGroup[j];
					count++;
				}
			}
		}
	}

	this.setStyle = function(property, value) {
		var count = 0;
		while (this[count]) {
			eval("this[count].style." + property + " = " + "\"" + value + "\"");
			count++;
		}
	}
}
/* // クラス名によるタグコレクション取得 */


/* ページ読込時の処理 */
function pageInit() {
	imgPreLoad();
}
window.onload = pageInit;
/* // ページ読込時の処理 */

