//*****************************************************************************
//Copyright (C) 2007 Smart Vision Technology co.,ltd. All Right Reserved. 
//【プロジェクト名】OYAIKU
//【ファイル名】common.js
//【概要】アプリケーション共通スクリプト
//【更新履歴】
//バージョン｜　 日付 　｜　担当者氏名　｜更新内容
//－－－－－＋－－－－－＋－－－－－－－＋－－－－－－－－－－－－－－－－－－
//0.1.0     ｜2007/08/01｜木村学　　　　｜新規作成
//*****************************************************************************

//*****************************************************************************
//【関数名】doaction
//【概要】act要求を設定してsubmitする
//【引数】actcode   ：アクションコード
//【戻り値】なし
//【更新履歴】
//バージョン｜　 日付 　｜　担当者氏名　｜更新内容
//－－－－－＋－－－－－＋－－－－－－－＋－－－－－－－－－－－－－－－－－－
//0.1.0     ｜2007/08/01｜木村学　　　　｜新規作成
//*****************************************************************************
function doaction(actcode) {
	//アクションコードはパラメタ渡し（ブックマークを考慮）
    document.appform.action = "index.php?act=" + actcode;
    document.appform.submit();  //submit
}

//*****************************************************************************
//【関数名】createHttpRequest
//【概要】XMLHttpRequestオブジェクトの生成
//【引数】なし
//【戻り値】XMLHttpRequestオブジェクト
//【更新履歴】
//バージョン｜　 日付 　｜　担当者氏名　｜更新内容
//－－－－－＋－－－－－＋－－－－－－－＋－－－－－－－－－－－－－－－－－－
//0.1.0     ｜2007/08/05｜木村学　　　　｜新規作成
//*****************************************************************************
function createHttpRequest() {
    var ret;
    if(window.XMLHttpRequest) {
        //XMLHttpRequestオブジェクト実装ブラウザ用
        ret = new XMLHttpRequest();
    } else if(window.ActiveXObject) { //Win ie用
        try {
            ret = new ActiveXObject("Msxml2.XMLHTTP"); //MSXML2以降用
        } catch (e) {
            try {
                ret = new ActiveXObject("Microsoft.XMLHTTP"); //旧MSXML用
            } catch (e2) {
                ret = null;
            }
        }
    } else {
        ret = null;
    }
    return ret;
}

//*****************************************************************************
//【関数名】inputcheck
//【概要】入力チェック
//【引数】checkobj：チェック対象オブジェクト情報（配列）
//　　　　        　エントリも配列でエントリ要素番号０がオブジェクトのname
//　　　　        　要素番号１以降がチェック内容
//　　　　        　"msg_要素番号０"という名前のメッセージエレメントが
//　　　　        　あることが前提
//　　　　        　例）checkobj -+- array("name", "need")
//　　　　        　　　          +- array("tel", "need", "numeric")
//【戻り値】true ：エラーなし
//　　　　　false：エラーあり
//【更新履歴】
//バージョン｜　 日付 　｜　担当者氏名　｜更新内容
//－－－－－＋－－－－－＋－－－－－－－＋－－－－－－－－－－－－－－－－－－
//0.1.0     ｜2007/08/10｜木村学　　　　｜新規作成
//*****************************************************************************
function inputcheck(checkobj) {
    var ret = true; //返却値初期化
    for (var i = 0; i < checkobj.length; i++) { //オブジェクト数分チェック処理
        obj = document.all[checkobj[i][0]]; //対象オブジェクト取得
        msgobj = document.all["msg_" + checkobj[i][0]]; //メッセージオブジェクト取得
        msgobj.innerHTML = ""; //エラーメッセージ初期化
        msgobj.style.display = "none"; //エラーメッセージを表示しない
        for (var j = 1; j < checkobj[i].length; j++) { //チェック種類
            switch (checkobj[i][j]) {
            case "need": //入力必須チェック
                if (obj.value == "") {
                    ret = false;
                    msgobj.innerHTML = (msgobj.innerHTML + "<br>入力必須項目です。"); //エラーメッセージ設定
                    msgobj.innerHTML = msgobj.innerHTML.substr(4, msgobj.innerHTML.length - 4); //最初の<br>を削除
                    msgobj.style.display = ""; //メッセージを表示する
                    msgobj.style.color = "red"; //メッセージの文字色＝赤
                }
                break;
            default:
                break;
            }
        }
    }
    if (!ret) { //エラーがあった場合はメッセージボックスでお知らせ
        msgbox("MSG0001", null);
    }
    return ret;
}

//*****************************************************************************
//【関数名】msgbox
//【概要】メッセージ管理
//【引数】msgid ：メッセージID
//　　　　params：メッセージ可変部（配列）
//【戻り値】true ：confirmの場合、ＯＫ
//　　　　　false：confirmの場合、キャンセル
//【更新履歴】
//バージョン｜　 日付 　｜　担当者氏名　｜更新内容
//－－－－－＋－－－－－＋－－－－－－－＋－－－－－－－－－－－－－－－－－－
//0.3.0     ｜2007/08/29｜木村学　　　　｜新規作成
//*****************************************************************************
function msgbox(msgid, param) {
    var msgtext;
    var msgtype;
    var res;
    switch (msgid) {
    case "MSG0001":
        msgtext = "入力に誤りがあります。";
        msgtype = "alert";
        break;
    case "MSG0002":
        msgtext = "@@@0@@@を削除します。よろしいですか？";
        msgtype = "confirm";
        break;
    }
    if (param != null) {
        for (i = 0; i < param.length; i++) {
            msgtext = msgtext.replace("@@@" + i + "@@@", param[i]);
        }
    }
    switch (msgtype) {
    case "alert":
        res = alert(msgtext);
        break;
    case "confirm":
        res = confirm(msgtext);
        break;
    }
    return res;
}
