addEvent(window, "load", function(){

	// <a href="[URI]" rel="external">にtarget="_blank"と同じ効果を付与
	var anchors = document.getElementsByTagName("a");
	for(var i=0; i<anchors.length; i++){
		var a = anchors[i];
		if(a.getAttribute("rel", true) == 'external'){
			a.target = '_blank';
		}
	}
});

/*
 * ページ内のIDによって表示を切り替える
 */
var viewAndHide = function(targetItems, remain){
	if(!is_array(targetItems))
		targetItems = new Array(targetItems);
	this.targets = targetItems;

	// 表示切り替えの際、その他の表示状態を変えないでおくかどうか
	this.remainShown = (remain == true ? true : false);
};

viewAndHide.prototype = {
	/*
	 * 設定に基づき動作
	 */
	show: function(targetItem){
		var t = document.getElementById(this.targets[targetItem]);
		if(t.style.display == 'none'){
			if(!this.remainShown){
				for(var i=0; i<this.targets.length; i++){
					document.getElementById(this.targets[i]).style.display = 'none';
				}
			}
			t.style.display = 'block';
		}
	}
};

/*
 * 自身の値を同じname属性のinput要素にコピー
 */
function shareValue(src){
	var sameNameItems = document.getElementsByName(src.name);
	for(var sameNameItemsIndex=0; sameNameItemsIndex<sameNameItems.length; sameNameItemsIndex++){
		var item = sameNameItems[sameNameItemsIndex];
		if(item.name == src.name){
			switch(item.type){
				case 'checkbox':
				case 'radio':
					if(item.value == src.value)
						item.checked = true;
					break;
				case 'select-one':
					item.selectedIndex == src.selectedIndex;
					break;
				case 'select-multiple':
					for(var i=0; i<src.options.length; i++){
						var srcOption = src.options[i];
						if(srcOption.selected)
							item.options[i].selected = true;
					}
					break;
				default:
					item.value = src.value;
			}
		}
	}
}

/*
 * ラジオボタン等が関連する要素のdisabled属性を切り替える
 */
function toggleDisabled(names, bool){
	for(var i=0; i<names.length; i++){
		var items	=	document.getElementsByName(names[i]);
		for(var j=0; j<items.length; j++){
			items[j].disabled	=	bool;
		}
	}
	
}

// iframeをembedに置き換え
function embedIframe(targetID, uri, options){
	var	t	=	document.getElementById(targetID);
	var	obj	=	document.createElement('embed');
	obj.src	=	uri;
	obj.type	=	"text/html";

	// 高さや幅等が渡されていれば設定
	if(options){
		if(options.width)
			obj.width	=	options.width;
		if(options.height)
			obj.height	=	options.height;
	}

	// IDの位置に埋め込む
	t.appendChild(obj);
}

// イベント追加
function addEvent(elm,listener,fn){
	try{
		elm.addEventListener(listener,fn,false);
	}catch(e){
		elm.attachEvent("on"+listener,fn);
	}
	return;
}

// 変数が配列かどうか
function is_array(variable){
	return Array === variable.constructor;
}

// IEかどうか
navigator.is_ie = function(){
	if(this.is_ie_chached != undefined)
		return this.is_ie_chached;

	if(this.appVersion.indexOf('MSIE') >= 0){
		this.is_ie_chached = true;
		return true;
	}
	this.is_ie_chached = false;
	return false;
}
