// 翻訳翻訳機
var Trans = { "Version": "1.1" };	// 2008-12-18

// 辞書ハッシュ全体配列
var dic_base = [	// 基本辞書
  status, skill, job, hom, map, server, item, term, init
];

var dic_extra = [	// 拡張辞書
  extra1, extra2, extra3
];

// 辞書ハッシュ結合
function HashMerge(arg) {
	var hash = $H({});	// Hashオブジェクト作成

	for (i = 0; i < arg.length; i++) {
		hash = hash.merge($H(arg[i]));	// 辞書結合
	}

	return hash;
}

// 辞書条件付結合
function HashMergeSelect(arg) {
	var hash = $H({});	// Hashオブジェクト作成

	for (i = 0; i < arg.length; i++) {
		if(document.getElementsByName("extra")[i].checked) {
			hash = hash.merge($H(arg[i]));	// 辞書結合
		}
	}

	return hash;
}

// 文章翻訳
function TransDic(arg, hash) {
	// key, valueという値を持つオブジェクトが渡されます。
	hash.each( function( pair ) {
		arg = arg.replace(pair.key, pair.value, 'g');	// 全文置換
	} );

	return arg;
}

// 最終処理
// 特殊記号置換（ハッシュの添字に使えない）
function TransSpecial(arg) {
	if(document.getElementsByName("code")[0].checked) {
		// 翻訳時に起きた文字化け
		arg = arg.replace("?", "ー", 'g');
		arg = arg.replace(", ", "、", 'g');	// 句読点
		arg = arg.replace(". ", "。", 'g');	// 句読点
	}

	return arg;
}

// 翻訳実行
// 引数：入力name名, 出力name名, 配列ハッシュ
function run(arg1, arg2) {
	var Context = document.getElementsByName(arg1)[0].value;

	// 置換（基本辞書、拡張辞書）
	Context = TransDic(Context, HashMerge(dic_base));
	Context = TransDic(Context, HashMergeSelect(dic_extra));
	Context = TransSpecial(Context);	// 最終処理

	document.getElementsByName(arg2)[0].value = Context;
}

// フォーム内テキスト全消去
function DelText(arg) {
	for (i = 0; i < arg.length; i++) {
		document.getElementsByName(arg[i])[0].value = '';
	}
}

// チェック全選択/全解除
function BoxChecked(arg) {
	var count;

	for (count = 0; count < document.form1.extra.length; count++) {
		// チェックボックス 全 ON/OFF
		document.form1.extra[count].checked = arg;
	}
	document.form1.code.checked = arg;
}

// クリップボードにコピー 
// 引数：コピー元のオブジェクト
function CopyText(arg) {
	var obj=document.all && document.all(arg) || document.getElementById && document.getElementById(arg);

	if( obj.value ){
		var doc = document.body.createTextRange();
		doc.moveToElementText(obj);
		doc.execCommand("copy");
		alert('クリップボードにコピーしました。'); 
	} else {
		alert('コピーするデータがありません。'); 
	}
}
