//--------------------------------------------------------------------
// sswaf.js

// サブミット フラグ（サブミット重複防止）
var sswaf_bSubmit = true;

// エレメントの取得
function sswaf_getElement(strID) {

	var objResult = null;
	if (document.all) objResult = document.all(strID);
	else if (document.getElementById) objResult = document.getElementById(strID);

	return objResult;
}

// 読み込み完了時処理
function sswaf_onLoaded() {

	for (var i = 0; i < document.forms.length; ++i) {
		var form = document.forms[i];
		var oElement = sswaf_getElement(form.elements["__FOCUS__"].value);
		if (oElement != null) oElement.focus();


		var e = form.elements;
		for (var i = 0; i < e.length; ++i) {
			if (e[i].type != "text") continue;
			
			e[i].onblur = function () {
				this.value = this.value.replace(/～/g, "〜");
			}
		}
	}

	if (window.onLoaded != null) onLoaded();
}

// 階層 pop 時処理
function sswaf_pop(strFormID, strPop) {

	if (!sswaf_bSubmit) return;

	sswaf_bSubmit = false;
	if (window.prePop != null && !prePop()) {
		sswaf_bSubmit = true;
		return;
	}

	var oForm = sswaf_getElement(strFormID);
	oForm.elements["__POP__"].value = strPop;
	oForm.submit();
}

// サブミット時処理
function sswaf_submit(strFormID, strControlID, strEvent) {

	if (!sswaf_bSubmit) return;

	sswaf_bSubmit = false;
	if (window.onPreSubmit != null && !onPreSubmit(strFormID, strControlID, strEvent)) {
		sswaf_bSubmit = true;
		return;
	}

	var oForm = sswaf_getElement(strFormID);
	oForm.elements["__EVENT__"].value = strEvent;
	oForm.elements["__TARGET__"].value = strControlID;
	if (strEvent == "Focus") oForm.elements["__FOCUS__"].value = strControlID;
	oForm.submit();
}

// クリック イベント発行
function sswaf_fireClickEvent(strFormID, strControlID) {

	sswaf_submit(strFormID, strControlID, "Click");
}

// 更新イベント発行
function sswaf_fireChangeEvent(strFormID, strControlID) {

	sswaf_submit(strFormID, strControlID, "Change");
}

// フォーカス取得イベント発行
function sswaf_fireFocusEvent(strFormID, strControlID) {

	sswaf_submit(strFormID, strControlID, "Focus");
}

// フォーカス消失イベント発行
function sswaf_fireBlurEvent(strFormID, strControlID) {

	sswaf_submit(strFormID, strControlID, "Blur");
}

// 更新イベント発行（値変更付き）
function sswaf_fireChangeEventWithSetValue(strFormID, strControlID, strValue) {

	sswaf_getElement(strControlID).value = strValue;
	sswaf_fireChangeEvent(strFormID, strControlID);
}
