// ClipText v0.14
// IE/Firefox互換 クリップボードへコピー関数
// Copyright (c) 2005 EC studio, All rights reserved.
function ClipText(id){
	var id,ct_id,c_obj,ct_obj;
	
	//設定
	var hidden_id_prefix = 'ClipText_'; //隠しDivタグのidにつけるprefix
	var path_swf = '/javascripts/ClipText.swf'; //ClipText.swfへのパス (必須)
	//表示メッセージ (省略すると非表示)
	var msg_cantuse = 'ご使用のブラウザではクリップボードへコピー機能を利用できません';
	var msg_success = 'クリップボードへコピーしました';
	var msg_fault = 'クリップボードへコピーできませんでした';
	
	//Valueを取得するメソッドを指定
	this.get_value = ClipText_get_value;
	
	//クリップボードへコピー
	if (c_obj = document.getElementById(id)){
		if (document.all){
			if (c_obj.createTextRange){
				textRange = c_obj.createTextRange();
			}else{
				textRange = document.body.createTextRange();
				textRange.moveToElementText(c_obj);
			}
			textRange.execCommand('Copy');
		}else{
			//swfを書き出す隠しDivタグを作成
			ct_id = hidden_id_prefix + id;
			ct_obj = document.getElementById(ct_id);
			
			if (!ct_obj){
				if (document.createElement){
					ct_obj = document.createElement('div');
					ct_obj.setAttribute('id',ct_id);
					document.body.appendChild(ct_obj);
				}else{
					if (msg_cantuse){
						alert(msg_cantuse);
					}
					return false;
				}
			}
			ct_obj.innerHTML = "";
			ct_obj.innerHTML = "<embed src='" + path_swf + "' FlashVars='code=" + encodeURI(this.get_value(c_obj)).replace(/&/g,"%26").replace(/\'/g,"%27") + "' width='0' height='0' type='application/x-shockwave-flash'></embed>";
		}
		if (msg_success){
			alert(msg_success);
		}
		return true;
	}else{
		//失敗
		if (msg_fault){
			alert(msg_fault);
		}
		return false;
	}
}

//コピーするテキストを取得する
function ClipText_get_value(node){
	if (node.value){
		return node.value;
	}else{
		if (node.innerText){
			return node.innerText;
		}else{
			return ClipText_InnerText(node);
		}
	}
}

//Netscape互換 innerText
function ClipText_InnerText(node){
	var regExp = /<\/?[^>]+>/gi;
	var str = node.innerHTML;
	
	str = str.replace(regExp,"");
	
	str = str.replace(/&gt;/g,'>');
	str = str.replace(/&lt;/g,'<');
	str = str.replace(/&amp;/g,'&');
	str = str.replace(/&nbsp;/g,' ');
	
	return str;
}
