/* -----------------------------------------------------
	ロールオーバー画像変更
----------------------------------------------------- */
imgOn = function() {
	this.setAttribute( 'src', this.getAttribute( 'src' ).replace( '_off.', '_on.' ) );
}
imgOff = function() {
	this.setAttribute( 'src', this.getAttribute( 'src' ).replace( '_on.', '_off.' ) );
}

/* -----------------------------------------------------
	初期設定: ロールオーバー画像変更
----------------------------------------------------- */
function setRollOver(){
	var images = document.getElementsByTagName( 'img' );
	var len = images.length;
	for ( var i=0; i < len; i++ ) {
		var img = images[i];
		img.btnOnMouseOver = imgOn;
		if( img.getAttribute( 'src' ).match( '_off.' ) ) {
			addEvent( img, 'mouseover', 'btnOnMouseOver' );
			addEvent( img, 'mouseout', 'btnOnMouseOut' );
			img.btnOnMouseOut = imgOff;
		}else if ( img.getAttribute( 'src' ).match( '_on.' ) ) {
			addEvent( img, 'mouseover', 'btnOnMouseOver' );
			addEvent( img, 'mouseout', 'btnOnMouseOut' );
			img.btnOnMouseOut = imgOn;
		}
	}
	preload();
	inputRollOver();
}
addEvent( window, 'load', 'setRollOver' );

/* -----------------------------------------------------
	初期設定: インプットロールオーバー画像変更
----------------------------------------------------- */

function inputRollOver(){
	var inputAll = document.getElementsByTagName( 'input' );
	var inputLen = inputAll.length;
	for ( var i=0; i < inputLen; i++ ) {
		var inputObj = inputAll[i];
		inputObj.inputOnMouseOver = inputOn;
		if (inputObj.className.match('_off')){
			addEvent( inputObj, 'mouseover', 'inputOnMouseOver' );
			addEvent( inputObj, 'mouseout', 'inputOnMouseOut' );
			inputObj.inputOnMouseOut = inputOff;
		} else if (inputObj.className.match('_on')) {
			addEvent( inputObj, 'mouseover', 'inputOnMouseOver' );
			addEvent( inputObj, 'mouseout', 'inputOnMouseOut' );
			inputObj.inputOnMouseOut = inputOn;
		}
	}
}

/* -----------------------------------------------------
	インプット用ロールオーバー画像変更
----------------------------------------------------- */
inputOn = function() {
	var cnOn = this.className;
	this.className = cnOn.replace('_off','_on');
}

inputOff = function() {
	var cnOff = this.className;
	this.className = cnOff.replace('_on','_off');
}

/* -----------------------------------------------------
	画像の先読み
----------------------------------------------------- */
function preload(){
	var imgList = document.getElementsByTagName('img');
	for(var i=0; i<imgList.length; i++){
		var imgUrl = imgList.item(i).src;
		var imgObj = new Image();
		var imgObj = imgUrl;
		if(imgUrl.indexOf("_off") > 0){
			var imgObj_on = new Image();
			imgUrl =imgUrl.replace('_off.','_on.');
			var imgObj_on = imgUrl;
		}
	}
}

/* -----------------------------------------------------
	イベント追加
----------------------------------------------------- */
function addEvent( target, eventName, handlerName ) {
	if ( target.attachEvent ) {
		target.attachEvent( 'on' + eventName, function(e){ target[handlerName](e); } );
	} else if ( target.addEventListener ) {
		target.addEventListener(eventName, function(e){ target[handlerName](e); }, false );
	} else {
		var originalHandler = target['on' + eventName];
		if ( originalHandler ) {
			target['on' + eventName] = function(e){ originalHandler(e); target[handlerName](e); };
		} else {
			target['on' + eventName] = target[handlerName];
		}
	}
}
