/**
 * window.onload promotion
 * @param func   function
 * 
 * html:
 * <script type="text/javascript" src="foo.js"></script>
 * javascript:
 * windowAddEvent(function(){ alert('window is loaded.') });
 *
 */
function windowAddEvent(func){
	if (window.addEventListener) { //for W3C DOM
		window.addEventListener("load", func, false);
	} else if (window.attachEvent) { //for IE
		window.attachEvent("onload", func);
	}
}

/**
 * new image load
 * @param src   images source
 * @return obj  object HTMLImageElement
 *
 * javascript:
 * newImage('./images/foo.gif');
 *
 */

function newImage(src) {
	if (document.images) {
		var obj = new Image();
		obj.src = src;
		return obj;
	} else {
		return false;
	}
}

/**
 * Aタグ内に特定のクラスを持つ画像について、
 * 画像置換を設置する。
 * 
 */

function addChangeImageEvent(){

	var addFileNameRule = '-over';     //画像置換のファイル規則 例) foo.gif ←→ foo-over.gif
	var className       = 'aligncenter'; //画像置換を設置するAタグのクラス名

	//ブラウザ判定 サポート：IE5～、Mozilla、Opera
	if(!document.getElementById) return false;
	//画像置換するimgタグの有無
	if(document.getElementsByTagName("img")){
		var TagNameA = document.getElementsByTagName('img');
	} else {
		return false;
	}

	var TagNameACount = TagNameA.length;
	if(TagNameACount < 0 ) return false;
	for (var i = 0; i < TagNameACount; i++){
		if (TagNameA[i].className == className) {
			newImage(TagNameA[i].getAttribute('src'));
			TagNameA[i].onmouseover = function() {
				var onmouseoverSrc = this.getAttribute("src");
				var ext = onmouseoverSrc.substring(onmouseoverSrc.lastIndexOf('.'), onmouseoverSrc.length);
				this.setAttribute('src', onmouseoverSrc.replace(ext, addFileNameRule + ext));
			};
			TagNameA[i].onmouseout = function() {
				var onmouseoutSrc = this.getAttribute("src");
				var ext = onmouseoutSrc.substring(onmouseoutSrc.lastIndexOf('.'), onmouseoutSrc.length);
				this.setAttribute('src', onmouseoutSrc.replace(addFileNameRule + ext,ext));
			};
		}
	}
	return true;
}


//Aタグ内に特定のクラスを持つ画像について、マウスオーバー/アウトによる画像置換を設置する。
windowAddEvent(function(){addChangeImageEvent()});
