// 拡張
(function(){
	// 拡張用オブジェクト
	window.ExObj = new Object();
	var ie = (/msie/.test(navigator.userAgent.toLowerCase()))? true:false,
		mb = (window.addEventListener)? true:false;
	ExObj.browser = {"ie":ie,"mb":mb};
	// DOM判定用Documentメソッド追加
	document.ready = function(fn){
		var b = document.getElementsByTagName("body")[0];
		if(b) return fn();
		if(!mb && !ie) window.onload = fn;
		if(mb) document.addEventListener("DOMContentLoaded",fn,false);
		if(ie){
			(function(){
				try{
					document.documentElement.doScroll("left");
				}catch(error){
					window.setTimeout(arguments.callee,1);
					return;
				}
				fn();
			})();
		}
	}
	// イベントリスナ登録削除の統一
	ExObj.addEvent = function(obj,evt,fn,flg){
		flg = (flg)? true:false;
		evt = (ie)? "on"+evt:evt;
		if(ie) obj.attachEvent(evt,fn);
		if(mb) obj.addEventListener(evt,fn,flg);
	}
	ExObj.removeEvent = function(obj,evt,fn,flg){
		flg = (flg)? true:false;
		evt = (ie)? "on"+evt:evt;
		if(ie) obj.detachEvent(evt,fn);
		if(mb) obj.removeEventListener(evt,fn,flg);
	}
	// 簡易のXMLHttpRequestの統一
	if(typeof ActiveXObject == "function" && typeof XMLHttpRequest == "undefined"){
		XMLHttpRequest = function(){
			return new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	// 全角英数→半角英数メソッドをStringオブジェクトに追加
	String.prototype.toHan = function(delKana){
		var s = "", ch = "";
		for(var n=0,l=this.length; n<l; n++){
			var c = this.charCodeAt(n);
			if(c>=65281 && c<=65374) ch = s+String.fromCharCode(c-65248);
			if(c==12540 || c==8722 || c==8213 || c==8208) ch = s+String.fromCharCode(45);
			if(delKana && !(ch!="" || /[!-~]/.test(this.charAt(n)))) continue;
			s = ch||s+this.charAt(n);
			ch = "";
		}
		return s;
	}
	// テキスト選択をキャンセル
	ExObj.cancelSelect = function(obj){
		var f = function(e){
			if(mb) e.preventDefault();
			if(ie) window.event.returnValue = false;
		}
		ExObj.addEvent(obj,"mousemove",f,false);
		ExObj.addEvent(obj,"mousedown",f,false);
		ExObj.addEvent(obj,"dblclick",f,false);
	}
	// ログ表示
	ExObj.log = function(obj,adding){
		var o = document.getElementById("ExConsoleLog");
		var body = document.getElementsByTagName("body")[0];
		var res = "";
		if(!o){
			var o = document.createElement("div");
			o.id = "ExConsoleLog"
			o.style.backgroundColor = "black";
			o.style.width = "50%";
			o.style.textAlign = "left";
			o.style.color = "white";
			o.style.fontSize = "80%";
			o.style.opacity = "0.8";
			o.style.border = "solid 2px black";
			o.style.padding = "10px";
			o.style.position = "absolute";
			o.style.top = "10px";
			o.style.left = "10px";
			o.style.minHeight = "100px";
			o.style.minWidth = "200px";
			ExObj.addEvent(o,"click",function(){
				var p = o.parentNode;
				p.removeChild(o);
			},false);
			if(!body){
				document.ready(function(){
					var d = document.getElementsByTagName("body")[0];
					d.appendChild(o);
				});
			}else{
				body.appendChild(o);
			}
		}
		if(typeof obj != "string"){
			var s = "";
			for(var prop in obj){
				s += "<div>"+prop+":"+obj[prop]+"</div>";
			}
			res = s;
		}else{
			res = obj;
		}
		res = "<div>"+res+"</div>";
		o.innerHTML = (adding)? o.innerHTML+res:res;
	}
})();

// 汎用

(function(){
	ExObj.rolloverBg = function(id,ori,rol){
		var img = new Image();
		img.src = rol;
		document.ready(function(){
			var obj = document.getElementById(id);
			ExObj.addEvent(obj,"mouseover",function(){
				obj.style.backgroundImage = "url("+rol+")";
			},false);
			ExObj.addEvent(obj,"mouseout",function(){
				obj.style.backgroundImage = "url("+ori+")";
			},false);
		});
	}
	ExObj.rolloverBd = function(id,ori,rol){
		document.ready(function(){
			var obj = document.getElementById(id);
			ExObj.addEvent(obj,"mouseover",function(){
				obj.style.borderColor = rol;
			},false);
			ExObj.addEvent(obj,"mouseout",function(){
				obj.style.borderColor = ori;
			},false);
		});
	}
	// メールアドレスの表示
	var mail = function(){
		var e1 = document.getElementById("mailto1");
		if(e1){
			var a = document.createElement("a");
			var addr = "";
			addr += "&#119;&#101;&#98;&#109;&#97;&#115;&#116;";
			addr += "&#101;&#114;&#64;&#116;&#97;&#105;&#108;";
			addr += "&#111;&#114;&#45;&#107;&#97;&#115;&#117;";
			addr += "&#107;&#97;&#98;&#101;&#46;&#99;&#111;&#109;";
			a.href = "mailto:"+addr;
			a.innerHTML = addr;
			e1.innerHTML = "";
			e1.appendChild(a);
		}
	}
	document.ready(mail);
})();