/* ####################################################################################################

【画像ロールオーバー機能】

#################################################################################################### */	

var RollOverImage = {
	
	/* ロールオーバー処理用クラス名
	==================================================================================================== */
	className:"rollover",
	
	
	/* 対象エレメントリスト
	==================================================================================================== */
	eleList:[],
	
	
	/* イベント設定
	==================================================================================================== */
	bind:function(obj,type,fn){
		(obj.addEventListener)?obj.addEventListener(type,fn,false):(obj.attachEvent)?obj.attachEvent("on"+type,function(){fn.call(obj,window.event);}):obj["on"+type]=function(e){fn.call(obj,e||window.event);}
	},
	
	
	/* 初期化実行設定
	==================================================================================================== */
	init:function(){
		var arg = arguments;
		for(var i=0,l=arg.length;i<l;i++) this.eleList.push(arg[i]);
		this.bind(window,"load",this.setUp);
	},
	
	
	/* セットアップ
	==================================================================================================== */
	setUp:function(){
		for(var i=0,l=RollOverImage.eleList.length;i<l;i++){
			var ele = document.getElementsByTagName(RollOverImage.eleList[i]);
			for(var j=0,m=ele.length;j<m;j++){
				if(ele[j].className.match(RollOverImage.className)){
					if(ele[j].nodeName.toLowerCase()=="a"){
						var c = ele[j].childNodes;
						for(var k=0,n=c.length;k<n;k++){
							if(c[k].nodeName.toLowerCase()=="img"){
								RollOverImage.preLoad(c[k].src.replace(/_off\./i,"_ov."));
							}
						}
						RollOverImage.bind(ele[j],"mouseover",RollOverImage.mouseover_a);
						RollOverImage.bind(ele[j],"mouseout",RollOverImage.mouseout_a);
					}else{
						RollOverImage.preLoad(ele[j].src.replace(/_off\./i,"_ov."));
						RollOverImage.bind(ele[j],"mouseover",RollOverImage.mouseover);
						RollOverImage.bind(ele[j],"mouseout",RollOverImage.mouseout);
					}
				}
			}
		}
	},
	
	
	/* プリロード
	==================================================================================================== */
	preLoad:function(){
		if(document.images){
	 	var loadedImg = new Array();
	 	var arg = arguments;
	 	for(i=0,l=arg.length;i<l;i++){
	 		loadedImg[i] = new Image();
	 		loadedImg[i].src = arg[i];
	 	}
	 }
	},
	
	
	/* ロールオーバー
	==================================================================================================== */
	mouseover:function(obj){
		var target = (obj.src)?obj:this;
		target.src = target.src.replace(/_off\./i,"_ov.");
	},
	
	
	/* ロールアウト
	==================================================================================================== */
	mouseout:function(obj){
		var target = (obj.src)?obj:this;
		target.src = target.src.replace(/_ov\./i,"_off.");
	},
	
	
	/* ロールオーバー_a
	==================================================================================================== */
	mouseover_a:function(){
		var c = this.childNodes;
		for(var i=0,l=c.length;i<l;i++){
			if(c[i].nodeName.toLowerCase()=="img"){
				RollOverImage.mouseover(c[i]);
			}
		}
	},
	
	
	/* ロールアウト_a
	==================================================================================================== */
	mouseout_a:function(){
		var c = this.childNodes;
		for(var i=0,l=c.length;i<l;i++){
			if(c[i].nodeName.toLowerCase()=="img"){
				RollOverImage.mouseout(c[i]);
			}
		}
	}
	
};

//初期化
RollOverImage.init("img","input","a");