var ImgSrcChanges={

	varsion:"1.0.1",

	set:function(){
		//対象となるAタグのクラス名
		this.set_class="ImgSrcChanges";
		
		//対象を切り替えるボタンアクション(onclick or onmouseover)
		this.bt_action="onclick";
		
		//ボタンからマウスアウトした際に、対象を元の画像に戻すか true or false
		this.bt_mouseout_back=false;
		
		//プリロードイメージを仕様するか
		this.preloadImgFlag=true;
		
		//border
		this.borderDefaultColor = "2px solid #E6E1DD";
		
		this.borderSelectColor = "2px solid #E6E1DD";
		
		this.is_window = document.getElementById("is_window");
		
		this.targetIds=new Array();
		
		this.window_load();
	},
	
	execute:function(){
		ImgSrcChanges.btaction();
		if(ImgSrcChanges.bt_mouseout_back){
			ImgSrcChanges.targetDefaltImgSet();
		}
	},
	
	btaction:function(){
		var cnt = 0;
		var a=document.getElementsByTagName("a");
		var act=this.bt_action;
		for(var i=0; i<a.length; i++){
			if(a[i].className == this.set_class){
				cnt++;
				if(cnt == 1){
					if(!this.is_window) {
						this.borderConts(a[i]);	
					}				
				}
				if(this.bt_action == "onmouseover"){
					a[i].onmouseover=function(){
						var target=document.getElementById(this.target);
						if(target){
							target.src=this.href;						
						}
					};
				}
				if(this.bt_action == "onclick"){
					a[i].onclick=function(){
						var target=document.getElementById(this.target);
						var img_name = document.getElementById('image_name');
						var img_msg = document.getElementById('large_image_msg');
						if(target){
							target.src=this.href;
							if(img_name) {
								img_name.value=this.name;
								if(img_name.value != "") {
									img_msg.style.display = "";
								}else {
									img_msg.style.display = "none";
								}
							}
							ImgSrcChanges.borderConts(this);
						}
						
						return false;
					};
				}else{
					a[i].onclick=function(){
						return false;
					}
				}
				if(this.bt_mouseout_back){
					a[i].onmouseout=function(){
						var target=document.getElementById(this.target);
						if(target){
							target.src=target.lowsrc;
						}
					};
				}
				if(this.preloadImgFlag){
					this.preload(a[i].href);
				}
				this.targetIds.push(a[i].target);
			}
		}
	},
	
	targetDefaltImgSet:function(){
		var es={};
		var ids= this.targetIds;
		for(var i=0; i<ids.length; i++){
			if(es[ids[i]]){
				ids[i]=null;
			}else{
				es[ids[i]]=true;
				var tarObj=document.getElementById(ids[i]);
				if(tarObj){
					tarObj.lowsrc=tarObj.src;
				}
			}
		}
	},
	
	preload:function(img){
		this.preloadnum=(this.preloadnum >= 0)?this.preloadnum+1:0;
		if(this.preloadnum == 0){
			this.preloadimgs=new Array();
		}
		this.preloadimgs[this.preloadnum]=new Image();
		this.preloadimgs[this.preloadnum].src=img;
	},

	window_load:function(){
		if(window.addEventListener) {
			window.addEventListener("load", this.execute, false);
		}
		else if(window.attachEvent) {
			window.attachEvent("onload", this.execute);
		}
	},
	
	borderConts:function(elm){
		this.borderReset();
		var e = this.getImgElm(elm);
		if(e != ""){
			e.style.border = this.borderSelectColor;
		}
	},
	
	borderReset:function(){
		var a=document.getElementsByTagName("a");
		for(var i=0; i<a.length; i++){
			if(a[i].className == this.set_class){
				var e = a[i];
				var im = this.getImgElm(e);
				im.style.border = this.borderDefaultColor;
			}
		}
	},
	
	getImgElm:function(elm){
		var im = elm.getElementsByTagName("img");
		var e = "";
		if(im.length > 0){
			e = im[0];
		}
		return e;
	}
};
ImgSrcChanges.set();
