

/*
 * formエレメントのaction属性に値をセットするスクリプト
 * 同じフォームデータに対して、複数のActionを呼び出す場合に使用します
 * サブミットは input type="image" が行うため、このスクリプト内では行いません。
 *
 * @param i inputエレメント(type="image")
 * @param v Actionパス
 */
function setAction (i, v) {
    i.form.action = v;
}

/*
 * 確認のダイアログを表示してから
 * form エレメントの action 属性に値をセットするスクリプト
 * サブミットは input type="image" が行うため、このスクリプト内では行いません。
 *
 * @param i inputエレメント(type="image")
 * @param v Actionパス
 * @param m 確認ダイアログに表示するメッセージ
 */
function setActionAfterConfirm (i, v, m) {
    if ( window.confirm(m) ) {
        i.form.action = v;
    } else {
        return false;
    }
}

/*
 * 確認のダイアログを表示してから
 * formエレメントのaction属性に値をセットし、サブミットするスクリプト
 * setAction(f,v,m)とは動作が異なります。
 * 同じフォームデータに対して、複数のActionを呼び出す場合に使用します
 *
 * @param f サブミットするformオブジェクト
 * @param v Actionパス
 * @param m 確認ダイアログに表示するメッセージ
 */
function submitAction (f, v, m) {

	if ( !isClicked ) {
		if ( window.confirm(m) ) {
	        f.action = v;
	        f.submit();
	    } else {
	        return false;
	    }
	}
}

/*
 * 引数に指定されたformオブジェクトに属するチェックボックス名と
 * 一致する全てのチェックボックスの　checked 属性に true をセットします
 *
 * @param f このスクリプトを呼び出すボタンの属するformオブジェクト
 * @param n チェックボックス名
 */
function doCheckBoxOn(f, n) {
    var fElement= f.elements;
    for (var itr = 0; itr < fElement.length; itr++ ) {
        if ((fElement[itr].type == "checkbox") &&
            (fElement[itr].name == n)) {
            fElement[itr].checked = true;
        }
    }
}

/*
 * 引数に指定されたformオブジェクトに属するチェックボックス名と
 * 一致する全てのチェックボックスの　checked 属性に false をセットします
 *
 * @param f このスクリプトを呼び出すボタンの属するformオブジェクト
 * @param n チェックボックス名
 */
function doCheckBoxOff(f, n) {
    var fElement= f.elements;
    for (var itr = 0; itr < fElement.length; itr++ ) {
        if ((fElement[itr].type == "checkbox") &&
            (fElement[itr].name == n)) {
            fElement[itr].checked = false;
        }
    }
}

/*
 * Indexed Propertyチェックボックス(MultiBox)対応
 *
 * 引数に指定されたformオブジェクトに属するチェックボックス名と
 * 一致する全てのチェックボックスの　checked 属性に true をセットします
 *
 * @param f このスクリプトを呼び出すボタンの属するformオブジェクト
 * @param n チェックボックス名
 */
function doMultiBoxOn(f, n) {
    var fElement= f.elements;
    var index = 0;
    for (var itr = 0; itr < fElement.length; itr++ ) {
        if ((fElement[itr].type == "checkbox") &&
            (fElement[itr].name == (n + "[" + index + "]"))) {
            fElement[itr].checked = true;
            index++;
        }
    }
}

/*
 * Indexed Propertyチェックボックス(MultiBox)対応
 *
 * 引数に指定されたformオブジェクトに属するチェックボックス名と
 * 一致する全てのチェックボックスの　checked 属性に false をセットします
 *
 * @param f このスクリプトを呼び出すボタンの属するformオブジェクト
 * @param n チェックボックス名
 */
function doMultiBoxOff(f, n) {
    var fElement= f.elements;
    var index = 0;
    for (var itr = 0; itr < fElement.length; itr++ ) {
        if ((fElement[itr].type == "checkbox") &&
            (fElement[itr].name == (n + "[" + index + "]"))) {
            fElement[itr].checked = false;
            index++;
        }
    }
}

/*
 * 子画面を表示
 *
 * 規定の形式で子画面を表示します。
 *
 */
function openChildWindow() {
    window.open("","newWindow","width=640,height=480,directories=no,location=no,menubar=no,status=no,toolbar=no,resizable=yes,scrollbars=yes");
}

/*
 * ブラウザの種類を取得
 *
 * ブラウザの種類によって以下の文字列を返します。
 * Netscape6.0以上: gecko
 * Internet Explorer: msie
 * Netscape6.0未満: netscape
 * その他: other
 */
function getBrowser() {
	var ua = navigator.userAgent.toLowerCase();
	if (ua.indexOf("gecko") != -1) {
		return "gecko";
	} else if (ua.indexOf("msie") != -1) {
		return "msie";
	} else if (ua.indexOf("mozilla") != -1) {
		return "netscape";
	} else {
		return "other";
	}
}

/**
 * ボタンの2度押し対策のスクリプト
 * 2度押しを防止したい場合は、
 * FORMエレメントのonsubmit属性に"return alreadyClicked()"と記述してください
 */
var isClicked = false;

function alreadyClicked () {
	 if ( isClicked ) {
	 	return false;
	 }
	 else {
	 	isClicked = true;
	 	return true;
	 }
}

/*
 * ボタンの2度押し対策のスクリプト(ボタン置き換え版)
 * このfunctionは input type="image" エレメントのonclick属性に
 * "return alreadyClickedWithChangingImage()"と記述してください
 */
function alreadyClickedWithChangingImage(img, path) {
	if ( isClicked ) {
		return false;
	}
	else {
		isClicked = true;
		img.src = path;
		return true;
	}
}

