//***************************************************************************** //* e-Pares (共通) //* All Rights Reserved Copyright(c) Fujitsu Oita Software Laboratories 2002 //* 修正履歴 //* 2003/03/27 Y.Ikeura //* 修正内容:startInitTimer()の処理を変更 //* 2003/03/27 Y.Ikeura //* 修正内容:ToDoを追加(2976行目) //***************************************************************************** // 二重起動チェック変数 var clicked=false // 共通エラーメッセージ項目名 var gErrMsg = 'e110990'; // ログイン画面に戻すためのタイマーID var gTimerId = 0; //***************************************************************************** //* [関数名] //* showAlert //* [機能概要] //* メッセージの指定があれば、メッセージボックスを表示する //* [引数] //* msg: メッセージ文字列 //* (空の場合、メッセージボックスは表示されない) //* [戻り値] //* なし //* [修正履歴] //***************************************************************************** function showAlert(msg){ if (msg != '') { // メッセージが指定された場合のみ alert(msg); // メッセージボックスを表示 } } //***************************************************************************** //* [関数名] //* showComplete //* [機能概要] //* メッセージの指定があれば、メッセージボックスを表示する //* [引数] //* msg: メッセージ文字列 //* (空の場合、メッセージボックスは表示されない) //* [戻り値] //* なし //* [修正履歴]後日ウィンドウ変更する 2003/02/05 //***************************************************************************** function showComplete(msg){ if (msg != '') { // メッセージが指定された場合のみ alert(msg); // メッセージボックスを表示 } } //***************************************************************************** //* [関数名] //* showConfirm //* [機能概要] //* メッセージの指定があれば、確認メッセージボックスを表示する //* [引数] //* msg: メッセージ文字列 //* (空の場合、確認メッセージボックスは表示されない) //* [戻り値] //* Yesなら真/Noならば偽 //* [修正履歴] //* 2002/11/19 作成 FS A.Yamaguchi / 査読 //***************************************************************************** function showConfirm(msg){ if (msg != '') { // メッセージが指定された場合のみ if(!confirm(msg)){ // 確認メッセージボックスを表示 return false; } } return true; } //***************************************************************************** //* [関数名] //* checkText //* [機能概要] //* テキストボックスの入力チェックを行う //* [引数] //* obj:チェック対象オブジェクト //* len:文字バイト数 //* 0:制限無し //* msg: エラーメッセージ //* type:チェック種別 //* 1:全角文字チェック //* 2:全角カナ文字チェック //* 3:半角文字チェック //* 4:英数字文字チェック //* 5:数値チェック(マイナス不可) //* 6:数値チェック(マイナス可) //* 7:数値チェック(マイナス、0不可) //* 8:使用者番号チェック(21億チェック) //* 9:全角・半角文字チェック //* [戻り値] //* なし //* [修正履歴] //* 2002/12/11 作成 FS A.Yamaguchi / 査読 //***************************************************************************** function checkText(obj, len, msg, type){ var msg; // エラーメッセージ // バイト数チェック if (len > 0) { if (chkBytes(obj, msg, len) != true) { return false; } } // 全角文字チェック if (type == 1) { if (chkZenField(obj, msg) != true) { return false; } // 全角カナ文字チェック } else if (type == 2) { if (chkKanaField(obj, msg) != true) { return false; } // 半角文字チェック } else if (type == 3) { if (chkHanField(obj, msg) != true) { return false; } // 英数字文字チェック } else if (type == 4) { if (chkHanAlpNum(obj, msg) != true) { return false; } // 数値チェック(マイナス不可) } else if (type == 5) { if (chkNumField(obj, msg, 0) != true) { return false; } // 数値チェック(マイナス可) } else if (type == 6) { if (chkNumField(obj, msg, 1) != true) { return false; } // 数値チェック(マイナス、0不可) } else if (type == 7) { if (chkHanNumZero(obj, msg) != true) { return false; } // 使用者番号チェック(21億チェック) } else if (type == 8) { if (chkNumField(obj, msg, 0) != true) { return false; } if (chkUserID(obj, msg) != true) { return false; } // $IS FS K.Teshima 2008/02/25 [厚木市ICT] // 全角・半角チェック } else if (type == 9) { // 全角、英数字、半角カナ。記号不可 if (chkZenHanField(obj, msg) != true) { return false; } // $IE FS K.Teshima 2008/02/25 [厚木市ICT] } return true; } //***************************************************************************** //* [関数名] //* chkSelNengetsu //* [機能概要] //* 年月日の指定の正当性を調べる //* [引数] //* objY: 年選択オブジェクト(テキストフィールドもOK) //* objM: 同 月 //* objD: 同 日 //* msg: エラーメッセージ //* [戻り値] //* 年月日の指定が正当なら真/不当なら偽 //* [修正履歴] //* 2002/12/11 作成 FS A.Yamaguchi / 査読 //***************************************************************************** function chkSelNengetsu(objY, objM, objD, msg) { var days; // 日数 yyyy = objY.value; mm = objM.value; dd = objD.value; // 年のチェック(有無・半角数字・桁数) if (yyyy == '') { // 年の指定がない showAlert(msg); objY.focus(); return false; } if (!chkHanNum(yyyy) || // 半角数字でない eval(yyyy) < 1000 || eval(yyyy) > 9999) { // 4桁でない showAlert(msg); objY.focus(); return false; } // 月のチェック(有無・半角数字・範囲) if (mm == '') { // 月の指定がない showAlert(msg); objM.focus(); return false; } if (!chkHanNum(mm) || eval(mm) < 1 || eval(mm) > 12) { showAlert(msg); objM.focus(); return false; } // 日のチェック(有無・半角数字・範囲) if (dd == '') { // 日の指定がない showAlert(msg); objD.focus(); return false; } days = getDays(eval(yyyy), eval(mm)); if (!chkHanNum(dd) || eval(dd) < 1 || eval(dd) > days) { showAlert(msg); objD.focus(); return false; } return true; } //***************************************************************************** //* [関数名] //* chkNengetsuHani //* [機能概要] //* 年月日の大小を調べる //* ※必ず正当性チェック済みで呼び出すこと //* [引数] //* objY1: 年選択オブジェクト(開始)(テキストフィールドもOK) //* objM1: 同 月 (開始) //* objD1: 同 日 (開始) //* objY2: 年選択オブジェクト(終了) //* objM2: 同 月 (終了) //* objD2: 同 日 (終了) //* msg: エラーメッセージ //* [戻り値] //* 開始日<=終了日なら真/開始日>終了日なら偽 //* [修正履歴] //* 2002/12/11 作成 FS A.Yamaguchi / 査読 //***************************************************************************** function chkNengetsuHani(objY1,objM1,objD1,objY2,objM2,objD2,msg) { var sdate; // 開始日 var edate; // 終了日 var y1; var m1; var d1; var y2; var m2; var d2; y1 = objY1.value; m1 = objM1.value; d1 = objD1.value; y2 = objY2.value; m2 = objM2.value; d2 = objD2.value; sdate = joinDate(y1, m1, d1); edate = joinDate(y2, m2, d2); if (edate != 0 && sdate > edate) { // 開始日>終了日はエラー showAlert(msg); objY1.focus(); return false; } return true; } //***************************************************************************** //* [関数名] //* chkHHMMField //* [機能] //* 時刻項目のチェックを行う //* (指定されていて、時刻として不当ならエラー) //* [引数] //* obj: TEXTオブジェクト //* msg: エラーメッセージ //* [戻り値] //* 正当なら真/不当なら偽(エラー処理済み) //* [修正履歴] //* 2002/12/11 作成 FS A.Yamaguchi / 査読 //***************************************************************************** function chkHHMMField(obj,msg) { var inp; inp = obj.value; if (inp == '') { // 指定がなければ return true; // 「正常」とする } if (!chkHHMM(inp)) { showAlert(msg); obj.focus(); obj.select(); return false; } return true; } //***************************************************************************** //* [関数名] //* chkSelHHMM //* [機能] //* 時刻選択項目のチェックを行う //* (指定されていて、時刻として不当ならエラー) //* [引数] //* objHH: 時間選択項目名 //* objMM: 分選択項目名 //* msg: エラーメッセージ //* [戻り値] //* 正当なら真/不当なら偽(エラー処理済み) //* [修正履歴] //* 2002/12/11 作成 FS A.Yamaguchi / 査読 //***************************************************************************** function chkSelHHMM(objHH,objMM,msg) { var st1; var st2; st1 = getSelectValue(objHH); st2 = getSelectValue(objMM); if(st1.length == 1){ st1 = "0" + st1; } if(st2.length == 1){ st2 = "0" + st2; } if(Number(st1 > 24) || Number(st2 > 59)){ showAlert(msg); return false; } if(Number(st1 > 23) && Number(st2 > 0)) { showAlert(msg); return false; } return true; } //***************************************************************************** //* [関数名] //* chkMail //* [機能] //* メールアドレスのチェックを行う('@'と'.'のチェックのみ) //* [引数] //* obj: メールアドレスTEXTオブジェクト //* msg: エラーメッセージ //* [戻り値] //* 正当なら真/不当なら偽(エラー処理済み) //* [修正履歴] //* 2002/12/11 作成 FS A.Yamaguchi / 査読 //***************************************************************************** function chkMail(obj,msg) { var str; var check; str = obj.value; if (str == '') { // 指定がなければ return true; // 「正常」とする } check = /.+@.+\..+/; if (!str.match(check)) { showAlert(msg); obj.focus(); obj.select(); return false; } return true; } //***************************************************************************** //* [関数名] //* chkHissuField //* [機能概要] //* 必須項目のチェックを行う //* (指定されていなければエラー) //* [引数] //* obj: TEXTオブジェクト //* msg: エラーメッセージ //* [戻り値] //* 正当なら真/不当なら偽(エラー処理済み) //* [修正履歴] //***************************************************************************** function chkHissuField(obj, msg) { if (obj.value == '') { showAlert(msg); obj.focus(); obj.select(); return false; } return true; } //***************************************************************************** //* [関数名] //* chkBytes //* [機能] //* 文字列の長さ(バイト数)をチェックする(エラー処理済) //* [引数] //* obj: TEXTオブジェクト //* msg: エラーメッセージ //* leng: 制限長(バイト数) //* [戻り値] //* 文字列の長さ(バイト数) //* [修正履歴] //***************************************************************************** function chkBytes(obj, msg, leng) { if (getBytes(obj.value) > leng) { // 制限長を超える showAlert(msg); obj.focus(); obj.select(); return false; } return true; } //***************************************************************************** //* [関数名] //* chkKana //* [機能概要] //* 指定された文字列が全角カタカナ(空白)かどうかをチェックする //* 数字や()−の記号も可 //* [引数] //* str: 文字列 //* [戻り値] //* 指定文字列がすべて全角カタカナ(空白)なら真/そうでなければ偽 //* [修正履歴] //***************************************************************************** function chkKana(str) { var okChar = "()−0123456789"; var i; var chr; for (i=0; i= 0) { // カタカナ以外でもOK continue; } /* START modify 2004/09/27 TCS)Y.Kiyosuke */ if (getunicode(chr) < getunicode('ァ') || getunicode(chr) > getunicode('ヶ')) { return false; } //if (escape(chr) < escape('ァ') || // escape(chr) > escape('ヶ')) { // return false; //} /* END modify 2004/09/27 TCS)Y.Kiyosuke */ } return true; } //***************************************************************************** //* chkKanaField //* [機能概要] //* カナ項目のチェックを行う //* (指定されていて、全角カタカナ以外の文字を含めばエラー) //* [引数] //* obj: TEXTオブジェクト //* msg: エラーメッセージ //* [戻り値] //* 正当なら真/不当なら偽(エラー処理済み) //* [修正履歴] //***************************************************************************** function chkKanaField(obj, msg) { var inp; inp = obj.value; if (inp == '') { // 指定がなければ return true; // 「正常」とする } if (!chkKana(inp)) { showAlert(msg); obj.focus(); obj.select(); return false; } return true; } //***************************************************************************** //* [関数名] //* chkHanNum //* [機能概要] //* 指定された文字列が半角数字かどうかをチェックする //* [引数] //* str: 文字列文字列 //* [戻り値] //* 指定文字列がすべて半角数字なら真/そうでなければ偽 //* [修正履歴] //***************************************************************************** function chkHanNum(str) { var i; for (i=0; i '9') { return false; } } return true; } //***************************************************************************** //* [関数名] //* chkHanNumMinus //* [機能] //* 指定された文字列が半角数字(マイナス符号許す)かどうかをチェックする //* [引数] //* str: 文字列 //* [戻り値] //* 指定文字列がすべて半角数字(マイナス符号許す)なら真/そうでなければ偽 //* [修正履歴] //***************************************************************************** function chkHanNumMinus(str) { var i; for (i=0; i 0) { // 先頭のみ指定可 return false; } } else if (chr < '0' || chr > '9') { return false; } } return true; } //***************************************************************************** //* [関数名] //* chkHanNumPlusMinus //* [機能] //* 指定された文字列が半角数字(プラス・マイナス符号許す)か //* どうかをチェックする //* [引数] //* str: 文字列 //* [戻り値] //* 指定文字列がすべて半角数字(プラス・マイナス符号許す)なら真/ //* そうでなければ偽 //* [修正履歴] //***************************************************************************** function chkHanNumPlusMinus(str) { var i; for (i=0; i 0) { // 先頭のみ指定可 return false; } } else if (chr < '0' || chr > '9') { return false; } } return true; } //***************************************************************************** //* [関数名] //* chkNumField //* [機能] //* 数字項目のチェックを行う //* (指定されていて、数字以外の文字を含めばエラー) //* [引数] //* obj: TEXTオブジェクト //* msg: エラーメッセージ //* flag: 負号の指定を許すなら1 //* [戻り値] //* 正当なら真/不当なら偽(エラー処理済み) //* [修正履歴] //***************************************************************************** function chkNumField(obj, msg, flag) { var ret; if (flag == 1) { // 負号を許すなら ret = chkHanNumMinus(obj.value); } else { // 負号を許さないなら ret = chkHanNum(obj.value); } if (!ret) { // 数値でなければ showAlert(msg); obj.focus(); obj.select(); return false; } return true; } //***************************************************************************** //* [関数名] //* chkHanNumZero //* [機能概要] //* 数字項目のチェックを行う //* (指定されていて、0以下であればエラー) //* [引数] //* obj: TEXTオブジェクト //* msg: エラーメッセージ //* [戻り値] //* 正当なら真/不当なら偽(エラー処理済み) //* [修正履歴] //* 2002/11/19 作成 FS A.Yamaguchi / 査読 //***************************************************************************** function chkHanNumZero(obj, msg) { var str; var chr; var i; str = obj.value; for (i=0; i '9') { showAlert(msg); obj.focus(); obj.select(); return false; } } if (eval(str) <= 0) { showAlert(msg); obj.focus(); obj.select(); return false; } return true; } //***************************************************************************** //* [関数名] //* chkHanNumHani //* [機能概要] //* 数字項目の範囲チェックを行う //* (数値チェックも行う) //* [引数] //* obj: TEXTオブジェクト //* sval: 範囲の開始値(=はOK) //* eval: 範囲の終了値(=はOK) //* msg: エラーメッセージ //* [戻り値] //* 指定範囲外なら真/指定範囲内なら偽(エラー処理済み) //* [修正履歴] //* 2002/12/16 作成 FS A.Yamaguchi / 査読 //***************************************************************************** function chkHanNumHani(obj, svalue, evalue, msg) { var str; var ret; var i; str = obj.value; // 数値チェック ret = chkHanNumMinus(str); if (ret != true) { // 数値でなければ showAlert(msg); obj.focus(); obj.select(); return false; } // 範囲チェック if (eval(str) < svalue || eval(str) > evalue) { showAlert(msg); obj.focus(); obj.select(); return false; } return true; } //***************************************************************************** //* [関数名] //* isUruu //* [機能概要] //* 指定された年が閏年であれば真を返す //* [引数] //* year: 西暦年 //* [戻り値] //* 閏年なら真/閏年でなければ偽 //* [修正履歴] //***************************************************************************** function isUruu(year) { if (year%4 == 0 && year%100 != 0 || year%400 == 0) { return true; } return false; } //***************************************************************************** //* [関数名] //* getSelectValue //* [機能概要] //* セレクトオブジェクトの選択項目のVALUEを返す //* [引数] //* sel: セレクトオブジェクト //* [戻り値] //* 指定されたセレクトオブジェクトの選択項目のVALUE //* [修正履歴] //***************************************************************************** function getSelectValue(sel) { return(sel[sel.selectedIndex].value); } //***************************************************************************** //* [関数名] //* getDays //* [機能概要] //* 指定された月の日数を返す //* [引数] //* year: 西暦年 //* month: 月 //* [戻り値] //* 指定された月の日数 //* [修正履歴] //***************************************************************************** function getDays(year,month) { var days = new Array(31,28,31,30,31,30,31,31,30,31,30,31); var ret; ret = days[month-1]; if (month == 2 && isUruu(year)) { ret ++; } return(ret); } //***************************************************************************** //* [関数名] //* chgDay //* [機能概要] //* 選択された月に応じた日のコンボボックスを作成する //* [引数] //* selY: 年のセレクトオブジェクト //* selM: 月のセレクトオブジェクト //* selD: 日のセレクトオブジェクト //* [戻り値] //* なし //* [修正履歴] //* 2002/11/19 作成 FS A.Yamaguchi / 査読 //***************************************************************************** function chgDay(selY, selM, selD) { var selYear; // 選択年 var selMonth; // 選択月 var selDay; // 選択日 var days; // 日数 var opt; // オプション var i; // カウンタ selYear = eval(getSelectValue(selY)); selMonth = eval(getSelectValue(selM)); selDay = eval(getSelectValue(selD)); days = getDays(selYear,selMonth); // 指定された年月の日数を求める opt = selD.options; // 日付オプション opt.length = 0; // 選択肢を初期化 for (i=1; i<=days; i++) { opt[opt.length] = new Option(i, i, false, false); } opt.length = days; if (opt.length >= selDay) { // 選択日が日数以下の場合は選択日 opt[selDay-1].selected = true; } else { // 選択日が日数を超えていれば先頭 opt[0].selected = true; } } //***************************************************************************** //* [関数名] //* searchIndex //* [機能概要] //* 配列から要素を探して、そのインデックスを返す //* [引数] //* elem: 探す要素の値 //* arr: 配列 //* [戻り値] //* 要素のインデックス(0〜)/なければ−1 //* [修正履歴] //***************************************************************************** function searchIndex(elem, arr) { var i; for (i=0; i selETime) { // 選択終了時間が先頭より小さい場合は opt[0].selected = true; // 先頭を選択 } else { idx =searchIndex(selETime,times); // 選択終了時間が先頭以上の場合は opt[idx].selected = true; // 選択終了時間を選択 } } //***************************************************************************** //* [関数名] //* checkSelect //* [機能概要] //* コンボボックスが選択されているかをチェックする //* [引数] //* sel: selectオブジェクト //* msg: エラーメッセージ //* [戻り値] //* 正当なら真/不当なら偽(エラー処理済み) //* [修正履歴] //* 2002/11/19 作成 FS A.Yamaguchi / 査読 //***************************************************************************** function checkSelect(sel, msg) { if (sel.selectedIndex < 0) { showAlert(msg); sel.focus(); return false; } return true; } //***************************************************************************** //* [関数名] //* checkRadio //* [機能概要] //* ラジオボタンにチェックがついているかをチェックする //* [引数] //* rad: radioオブジェクト //* msg: エラーメッセージ //* [戻り値] //* 正当なら真/不当なら偽(エラー処理済み) //* [修正履歴] //* 2002/11/19 作成 FS A.Yamaguchi / 査読 //***************************************************************************** function checkRadio(rad, msg) { var chkcnt = 0; // チェック数 var i = 0; // カウンタ if (rad == null) { return false; } if (rad.length > 0) { // 複数チェックボックスの場合 for (i = 0; i < rad.length; i++) { if (rad[i].checked == true) { chkcnt++; } } } else { // チェックボックス1つの場合 if (rad.checked == true) { chkcnt++; } } if (chkcnt == 0) { // チェック無し showAlert(msg); return false; } return true; } //***************************************************************************** //* [関数名] //* checkChkBox //* [機能概要] //* チェックボックスにチェックがついているかをチェックする //* [引数] //* chkbox: checkboxオブジェクト //* msg: エラーメッセージ //* [戻り値] //* 正当なら真/不当なら偽(エラー処理済み) //* [修正履歴] //* 2002/11/19 作成 FS A.Yamaguchi / 査読 //***************************************************************************** function checkChkBox(chkbox, msg) { if (chkbox.checked != true) { showAlert(msg); return false; } return true; } //***************************************************************************** //* [関数名] //* checkMinus //* [機能概要] //* 金額の正負チェックを行う //* マイナスであればエラーメッセージを表示する //* [引数] //* val: 金額の文字列 //* msg: エラーメッセージ文字列 //* [戻り値] //* 正当なら真/不当なら偽(エラー処理済み) //* [修正履歴] //* 2002/11/19 作成 FS A.Yamaguchi / 査読 //***************************************************************************** function checkMinus(val,msg) { val = val.replace(/,/g, ""); // 区切り文字があれば除く if (eval(val) < 0) { showAlert(msg); return false; } return true; } //***************************************************************************** //* [関数名] //* chkNengetsu //* [機能概要] //* 年月日の指定の正当性を調べる //* [引数] //* textY: 年入力用テキストオブジェクト //* textM: 同 月 //* textD: 同 日 //* msg: エラーメッセージ //* flag: 指定なしをエラーとする(メッセージを表示する)なら1 //* [戻り値] // 年月日の指定が正当なら真/不当なら偽 //* [修正履歴] //***************************************************************************** function chkNengetsu(textY,textM,textD,msg,flag) { var days; // 日数 // 年のチェック(有無・半角数字・桁数) if (textY.value == '') { // 年の指定がない if (flag == 1) { showAlert(msg); textY.focus(); return false; } } if (!chkHanNum(textY.value) || // 半角数字でない eval(textY.value) < 1000 || eval(textY.value) > 9999) { // 4桁でない showAlert(msg); textY.focus(); textY.select(); return false; } // 月のチェック(有無・半角数字・範囲) if (textM.value == '') { // 月の指定がない if (flag == 1) { showAlert(msg); textM.focus(); return false; } } if (!chkHanNum(textM.value) || eval(textM.value) < 1 || eval(textM.value) > 12) { showAlert(msg); textM.focus(); textM.select(); return false; } // 日のチェック(有無・半角数字・範囲) if (textD.value == '') { // 日の指定がない if (flag == 1) { showAlert(msg); textD.focus(); return false; } } days = getDays(eval(textY.value), eval(textM.value)); if (!chkHanNum(textD.value) || eval(textD.value) < 1 || eval(textD.value) > days) { showAlert(msg); textD.focus(); textD.select(); return false; } return true; } //***************************************************************************** //* [関数名] //* checkNavigator //* [機能概要] //* OS、ブラウザ名、ブラウザバージョンのチェックを行う //* [引数] //* osArr: 使用可能なOS //* brArr: 同 ブラウザ配列 //* verArr: 同 バージョン(必ずブラウザ配列と同じ配列位置に指定する) //* (例:osArr[0]="Win" //* :osArr[1]="Mac" //* :brArr[0]="Netscape" //* :brArr[1]="Microsoft Internet Explorer" //* :verArr[0]="6.0" //* :verArr[1]="5.5") //* msg: エラーメッセージ文字列 //* [戻り値] //* 正当なら真/不当なら偽 //* [修正履歴] //* 2002/11/19 作成 FS A.Yamaguchi / 査読 //***************************************************************************** function checkNavigator(osArr,brArr,verArr,msg) { var br; // ブラウザ var agent; // ブラウザの文字列 var ver; // バージョン var wkver; // 作業用バージョン var flag; // チェックフラグ var i; // カウンタ var n; // カウンタ br = navigator.appName; agent = navigator.userAgent; // OSのチェック flag = 0; for (i=0; i < osArr.length; i++) { if (agent.indexOf(osArr[i]) >= 0) { // OSが一致した場合 flag = 1; break; } } if (flag == 0) { // 一致しなければエラー showAlert(msg); return false; } // バージョンの取得 wkver = ""; if (br == "Microsoft Internet Explorer") { // IE wkver = agent.substr(agent.indexOf("MSIE") + 5); } else if (br == "Netscape") { // Netscape if (agent.indexOf("Netscape6") != -1) { wkver = agent.substr(agent.indexOf("Netscape6") + 10); } else if(agent.indexOf("Netscape/7") != -1) { wkver = agent.substr(agent.indexOf("Netscape/") + 9); } else if(agent.indexOf("Opera") != -1) { wkver = agent.substr(agent.indexOf("Opera") + 6); br = "Opera"; } else if ((agent.indexOf("rv:") != -1) && (agent.indexOf("Netscape") == -1)) { wkver = agent.substr(agent.indexOf("rv:") + 3); br = "Mozilla"; } if(parseFloat(agent.charAt(8)) < 5) { wkver = agent.substr(8); } } else if (br == "Opera") { // Opera 6 wkver = agent.substr(agent.indexOf("Opera") + 6); } if (wkver == "") { // バージョン不明 showAlert(msg); return false; } n = 0; ver = ""; while (wkver.charAt(n).match(/\d|\.|b/)) { n += 1; ver = wkver.substr(0, n); } // ブラウザ、バージョンのチェック flag = 0; for (i=0; i < brArr.length; i++) { if ((br == brArr[i]) && // ブラウザが一致して (parseFloat(ver) >= parseFloat(verArr[i]))) { // 指定バージョン以上 flag = 1; break; } } if (flag == 0) { // 一致しなければエラー showAlert(msg); return false; } return true; } //***************************************************************************** //* [関数名] //* chkUserID //* [機能] //* 使用者番号が21億を超えていないかチェックする(超えていればエラー) //* [引数] //* obj: 使用者番号の、TEXTオブジェクトの変数名 //* msg: エラーメッセージ //* [戻り値] //* 正当なら真/不当なら偽(エラー処理済み) //* [修正履歴] //***************************************************************************** function chkUserID(obj, msg) { if (eval(obj.value) > 2100000000) { showAlert(msg); obj.focus(); obj.select(); return false; } return true; } //***************************************************************************** //* [関数名] //* getDiffDays //* [機能] //* 指定された2つの日付の差(日付1からの日数)を返す //* [引数] //* y1: 日付1の西暦年 //* m1: 同 月 //* d1: 同 日 //* y2: 日付2の西暦年 //* m2: 同 月 //* d2: 同 日 //* [戻り値] //* 指定された2つの日付の差(日付1からの日数) //* 例)日付2が日付1の2日後  → 2 //* 日付2が日付1の10日前 → -10 //* [修正履歴] //***************************************************************************** function getDiffDays(y1, m1, d1, y2, m2, d2) { var utc1; var utc2; utc1 = Date.UTC(y1, m1-1, d1, 0, 0, 0); utc2 = Date.UTC(y2, m2-1, d2, 0, 0, 0); return((utc2-utc1) / (24*60*60*1000)); } //***************************************************************************** //* [関数名] //* getDayAfterDay //* [機能] //* 指定された日付から指定日数後の日付を求める //* [引数] //* y: 日付1の西暦年 //* m: 同 月 //* d: 同 日 //* after: 差(日数) //* [戻り値] //* 指定された日付から指定日数後の日付(YYYYMMDD形式の8桁の数値) //* [修正履歴] //***************************************************************************** function getDayAfterDay(y, m, d, after) { var utc; var myDate; var y2; var m2; var d2; utc = Date.UTC(y, m-1, d, 0, 0, 0); utc += after*24*60*60*1000; myDate = new Date(); myDate.setTime(utc); y2 = myDate.getFullYear(); m2 = myDate.getMonth() + 1; d2 = myDate.getDate(); return(y2*10000 + m2*100 + d2); } //***************************************************************************** //* [関数名] //* YMDtoText //* [機能] //* YYYYMMDD形式の日付を「YYYY年MM月DD日」の形にして返す //* [引数] //* ymd: YYYYMMDD形式の日付 //* [戻り値] //* 変換結果文字列(「YYYY年MM月DD日」) //* [修正履歴] //***************************************************************************** function YMDtoText(ymd) { var year, month, day, text; year = Math.floor(ymd / 10000); month = Math.floor((ymd % 10000) / 100); day = ymd % 100; text = year.toString(10) + '年' + month.toString(10) + '月' + day.toString(10) + '日'; return text; } //***************************************************************************** //* [関数名] //* setSelectValueNear //* [機能] //* セレクトオブジェクト中の指定された値を持つ項目(なければ近い項目)を //* 選択する //* [引数] //* sel: セレクトオブジェクト //* val: 選択状態にしたい項目の値(VALUE) //* mode: 一致する項目がない場合の処理モード //* 1:直前の項目を選択/2:直後の項目を選択 //* [戻り値] //* なし //* [使用上の注意] //* セレクトオブジェクトはVALUE値で昇順にソートしておくこと! //* [修正履歴] //***************************************************************************** function setSelectValueNear(sel, val, mode) { var opt = sel.options; var i; var idx; idx = -1; for (i=0; i eval(val)) { // 選択肢の値がvalを超えた if (mode == 1) { // 直前の要素を返すなら idx = ((i > 0) ? (i-1) : 0); } else { // 直後の要素を返すなら idx = i; } break; } } if (idx < 0) { // 要素位置が未決定 // (最後までvalを超える値がなかった) idx = opt.length-1; // →最後の要素を選択 } sel.selectedIndex = idx; } //***************************************************************************** //* [関数名] //* setSelectTimeNear //* [機能] //* 時間選択用セレクトオブジェクト中の指定された時間を持つ項目 //* (なければ近い項目)を選択する //* [引数] //* sel: セレクトオブジェクト //* time: 選択状態にしたい時間(HHMM形式) //* mode: 一致する項目がない場合の処理モード //* 1:直前の項目を選択/2:直後の項目を選択 //* [戻り値] //* なし //* [使用上の注意] //* 選択肢は「HH:MM」形式の文字列とする(VALUE値は参照しない) //* [修正履歴] //***************************************************************************** function setSelectTimeNear(sel, time, mode) { var opt = sel.options; var i; var idx; idx = -1; for (i=0; i time) { // 選択肢の時間がtimeを超えた if (mode == 1) { // 直前の要素を返すなら idx = ((i > 0) ? (i-1) : 0); } else { // 直後の要素を返すなら idx = i; } break; } } if (idx < 0) { // 要素位置が未決定 // (最後までtimeを超える値がなかった idx = opt.length-1; // →最後の要素を選択 } sel.selectedIndex = idx; } //***************************************************************************** //* [関数名] //* showStatus //* [機能] //* メッセージの指定があれば、ステータスバーにメッセージを表示する。 //* [引数] //* msg: メッセージ文字列 //* (空の場合、ステータスバーへの表示は行わない) //* [戻り値] //* なし //* [修正履歴] //***************************************************************************** function showStatus(msg){ if (msg != '') { // メッセージが指定された場合のみ status = msg; // ステータスバーにメッセージを表示 } } //***************************************************************************** //* [関数名] //* getIntArray //* [機能] //* 数値型配列の初期値を文字列として受け取り、新規に配列を獲得し、初期 //* 化して返却する //* [引数] //* init: 数値型配列の初期値を文字列で表したもの //* [戻り値] //* 新規獲得後、初期化した数値型配列 //* [覚書] //* 本関数は、 //* arr = new Array(x,y,z); //* により要素数可変の数値型配列を初期化すると、要素数1のときに誤動作 //* ("new Array(5)"と記述すると、5が初期値でなく要素数とみなされる) //* するため、作成した。 //* [修正履歴] //***************************************************************************** function getIntArray(init) { var arr, leng, initArr; initArr = init.split(','); leng = initArr.length; arr = new Array(leng); for (i=0; i?_"; var kana = "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲン゙゚ャュョァィゥェォ"; if ("0"<=chr && chr<="9" || "a"<=chr && chr<="z" || "A"<=chr && chr<="Z" || kana.indexOf(chr,0)>=0 || han.indexOf(chr,0)>=0) { return true; } return false; } //***************************************************************************** //* [関数名] //* getBytes //* [機能] //* 文字列の長さ(バイト数)を返す //* [引数] //* str: 文字列 //* [戻り値] //* 文字列の長さ(バイト数) //* [修正履歴] //***************************************************************************** function getBytes(str) { var leng, i, chr; leng = 0; for (i=0; i?_"; var kana = "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲン゙゚ャュョァィゥェォ"; str = obj.value; for (i=0; i?_"; var kana = "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲン゙゚ャュョァィゥェォ"; str = obj.value; for (i=0; i= 24) { // HHは0〜23 return false; } if (mm >= 60) { // MMは0〜59 return false; } return true; } //***************************************************************************** //* [関数名] //* searchOptValue //* [機能] //* 選択項目オブジェクトから、値を探してその要素インデックスを返す //* [引数] //* val: 探す値(VALUEパラメタの内容) //* opt: 選択項目オブジェクト(options) //* [戻り値] //* 要素のインデックス(0〜)/なければ−1 //* [修正履歴] //***************************************************************************** function searchOptValue(val, opt) { var i; for (i=0; ib→正値/a=b→0/aで囲まれた文字列) //* [引数] //* sel: セレクトオブジェクト //* [戻り値] //* 指定されたセレクトオブジェクトの選択項目の表示テキスト //* [修正履歴] //* 2002/12/24 作成 FS A.Yamaguchi / 査読 //***************************************************************************** function getSelectText(sel) { return(sel[sel.selectedIndex].text); } //***************************************************************************** //* [関数名] //* chgSelKan //* [機能概要] //* 館が変更されたときに、施設選択の選択肢を変更する //* [引数] //* kanObj 館オブジェクト //* shiObj 施設オブジェクト //* shiCode 施設コード配列 //* shiName 施設名配列 //* kanCode 施設の属する館コード配列 //* no 選択肢の設定開始位置(0〜) //* [戻り値] //* なし //* [修正履歴] //* 2002/12/24 作成 FS A.Yamaguchi / 査読 //***************************************************************************** function chgSelKan(kanObj,shiObj,shiCode,shiName,kanCode,no) { var selKan; var opt; var optNo; var i; selKan = getSelectValue(kanObj); // 選択館 opt = shiObj.options; // 施設オプション optNo = no; // 設定開始位置 for (i=0; i= 0); } //***************************************************************************** //* [関数名] //* chgSelShiE //* [機能概要] //* 施設が変更されたときに、設備の選択肢を変更する(館選択がある場合) //* [引数] //* kanObj 館オブジェクト //* shiObj 施設オブジェクト //* setObj 設備オブジェクト //* setCode 設備コード配列 //* setName 設備設名配列 //* kanCode 設備の属する館コード配列 //* shiCode 設備の属する施設コード配列 //* no 選択肢の設定開始位置(0〜) //* [戻り値] //* なし //* [修正履歴] //***************************************************************************** function chgSelShiE(kanObj,shiObj,setObj, setCode,setName,kanCode,shiCode,no) { var selShi; var selKan; var opt; var optNo; var wsetCode; var wsetName; var i; var j; var jj; wsetCode = new Array(); wsetName = new Array(); selShi = getSelectValue(shiObj); // 選択施設 selKan = getSelectValue(kanObj); // 選択館 jj=0; for (i=0; i=wsetCode.length) { wsetCode[jj] = setCode[i]; wsetName[jj] = setName[i]; jj++; } } // 設備オプションを生成する opt = setObj.options; // 設備オプション optNo = no; // 設定開始位置 for (i=0; i 12) { showAlert(msg); objM.focus(); return false; } // 日のチェック(有無・半角数字・範囲) if (dd == '') { // 日の指定がない showAlert(msg); objD.focus(); return false; } if (!chkHanNum(dd) || eval(dd) < 1 || eval(dd) > days[mm-1]) { showAlert(msg); objD.focus(); return false; } return true; } //***************************************************************************** //* [関数名] //* chkAddressObject //* [機能概要] //* 住所項目のチェックを行う //* (指定されていなければエラー) //* [引数] //* address1: 住所1オブジェクトの変数名 //* address2: 住所2オブジェクトの変数名 //* address3: 住所3オブジェクトの変数名 //* text: エラーメッセージ //* [戻り値] //* 正当なら真/不当なら偽(エラー処理済み) //* [修正履歴] //***************************************************************************** function chkAddressObject(address1, address2, address3, text) { if (address1.value == '' && address2.value == '') { return true; } if (address1.value.length == 0) { showAlert(text); address1.focus(); address1.select(); return false; } if (address2.value.length == 0) { showAlert(text); address2.focus(); address2.select(); return false; } return true; } //***************************************************************************** //* [関数名] //* chkFinancialCodeObject //* [機能概要] //* 金融機関コードのチェックを行う //* (指定されていなければエラー) //* [引数] //* zip1: 金融機関コード1のオブジェクト名 //* zip2: 金融機関コード2のオブジェクト名 //* text: エラーメッセージ //* [戻り値] //* 正当なら真/不当なら偽(エラー処理済み) //* [修正履歴] //***************************************************************************** function chkFinancialCodeObject(finance1, finance2, text) { if (finance1.value == '' && finance2.value == '') { showAlert(text); finance1.focus(); finance1.select(); return false; } if (finance1.value.length != 5) { showAlert(text); finance1.focus(); finance1.select(); return false; } if (finance2.value.length != 3) { showAlert(text); finance2.focus(); finance2.select(); return false; } return true; } //***************************************************************************** //* [関数名] //* chkPhoneNoObject //* [機能概要] //* 電話番号項目のチェックを行う //* (指定されていなければエラー) //* [引数] //* phone1: 電話番号項目1オブジェクトの変数名 //* phone2: 電話番号項目2オブジェクトの変数名 //* phone3: 電話番号項目3オブジェクトの変数名 //* text: エラーメッセージ //* [戻り値] //* 正当なら真/不当なら偽(エラー処理済み) //* [修正履歴] //***************************************************************************** function chkPhoneNoObject(phone1, phone2, phone3, flg1, flg2, text) { if (flg1 == '1' && phone1.value == '') { showAlert(text); phone1.focus(); phone1.select(); return false; } if (flg2 == '1' && phone2.value == '') { showAlert(text); phone2.focus(); phone2.select(); return false; } if (phone3.value.length == 0) { showAlert(text); phone3.focus(); phone3.select(); return false; } return true; } //***************************************************************************** //* [関数名] //* chkPhoneNoObject //* [機能概要] //* 電話番号項目のチェックを行う //* (指定されていなければエラー) //* [引数] //* phone1: 電話番号項目1オブジェクトの変数名 //* phone2: 電話番号項目2オブジェクトの変数名 //* phone3: 電話番号項目3オブジェクトの変数名 //* text: エラーメッセージ //* [戻り値] //* 正当なら真/不当なら偽(エラー処理済み) //* [修正履歴] //***************************************************************************** function chkPhoneNoObject(phone1, phone2, phone3, text) { if (phone1.value == '' && phone2.value == '' && phone3.value == '') { return true; } if (phone3.value.length == 0) { showAlert(text); phone3.focus(); phone3.select(); return false; } if (phone2.value.length == 0) { showAlert(text); phone2.focus(); phone2.select(); return false; } if (phone1.value.length == 0) { showAlert(text); phone1.focus(); phone1.select(); return false; } return true; } //***************************************************************************** //* [関数名] //* chkPost //* [機能概要] //* 郵便番号の入力チェックを行う //* [引数] //* spost1: 郵便番号3桁(開始)入力用テキストオブジェクト //* spost2: 同 郵便番号4桁(開始) //* epost1: 同 郵便番号3桁(終了) //* epost2: 同 郵便番号4桁(終了) //* [戻り値] // 郵便番号の指定が正当なら真/不当なら偽 //* [修正履歴] //* 2002/12/12 作成 FS A.Yamaguchi / 査読 //***************************************************************************** function chkPost(spost1,spost2,epost1,epost2) { var stext1; var stext2; var etext1; var etext2; var wk1; var wk2; stext1 = spost1.value; stext2 = spost2.value; etext1 = epost1.value; etext2 = epost2.value; // 郵便番号3桁(開始)のチェック if (stext1 == '') { // 指定なしはNG return false; } if (!chkHanNum(stext1) || // 半角数字でない stext1.length != 3) { // 3桁でない return false; } // 郵便番号4桁(開始)のチェック if (stext2 != '') { if (!chkHanNum(stext2) || // 半角数字でない stext2.length > 4) { // 4桁を超える return false; } } // 郵便番号3桁(終了)のチェック if (etext1 != '') { // 指定なしはOK if (!chkHanNum(etext1) || // 半角数字でない etext1.length != 3) { // 3桁でない return false; } } // 郵便番号4桁(開始)のチェック if (etext2 != '') { if (!chkHanNum(etext2) || // 半角数字でない etext2.length > 4) { // 4桁を超える return false; } } // 開始終了の入力形式チェック // 例) 開始870-0、終了999-NULL → NG // 開始870-0、終了NULL-0 → NG // 開始870-NULL、終了999-0 → NG // 開始870-NULL、終了NULL-0 → NG if (stext2.length > 0 && ((etext1.length > 0 && etext2.length == 0) || (etext1.length == 0 && etext2.length > 0))) { return false; } if (stext2.length == 0 && ((etext1.length > 0 && etext2.length > 0) || (etext1.length == 0 && etext2.length > 0))) { return false; } // 開始終了の大小チェック len = stext2.length; if (len == 0) { wk1 = '0000'; } else if (len == 1) { wk1 = stext2 + '000'; } else if (len == 2) { wk1 = stext2 + '00'; } else if (len == 3) { wk1 = stext2 + '0'; } else { wk1 = stext2; } len = etext2.length; if (len == 0) { wk2 = '9999'; } else if (len == 1) { wk2 = etext2 + '999'; } else if (len == 2) { wk2 = etext2 + '99'; } else if (len == 3) { wk2 = etext2 + '9'; } else { wk2 = etext2; } if (eval(stext1) > eval(etext1)) { // 郵便番号3桁が不正 return false; } if (eval(stext1) == eval(etext1) && // 郵便番号3桁が同一で eval(wk1) > eval(wk2)) { // 郵便番号4桁が不正 return false; } return true; } //***************************************************************************** //* [関数名] //* chkSelHHMM //* [機能] //* 時刻選択項目のチェックを行う //* (指定されていて、時刻として不当ならエラー) //* [引数] //* timeObj: 時間選択項目名 //* text: エラーメッセージコード項目名 //* [戻り値] //* 正当なら真/不当なら偽(エラー処理済み) //* [修正履歴] //* 2002/12/11 作成 FS A.Yamaguchi / 査読 //***************************************************************************** function chkSelHHMM(timeObj,msg) { var msg; // エラーメッセージ var st1; var st2; st1 = timeObj.value; if (st1.length > 4 && st1.length < 3) { showAlert(msg); timeObj.focus(); timeObj.select(); return false; } if(st1.length == 3){ st1 = "0" + st1; } st2 = st1.substring(2,4); st1 = st1.substring(0,2); if(Number(st1 > 24) || Number(st2 > 59)){ showAlert(msg); timeObj.focus(); timeObj.select(); return false; } if(Number(st1 > 23) && Number(st2 > 0)) { showAlert(msg); timeObj.focus(); timeObj.select(); return false; } return true; } //***************************************************************************** //* [関数名] //* chkZipkCodeObject //* [機能概要] //* 郵便番号項目のチェックを行う //* (指定されていなければエラー) //* [引数] //* zip1: 郵便番号1オブジェクトの変数名 //* zip2: 郵便番号2オブジェクトの変数名 //* text: エラーメッセージ //* [戻り値] //* 正当なら真/不当なら偽(エラー処理済み) //* [修正履歴] //***************************************************************************** function chkZipkCodeObject(zip1, zip2, text) { if (zip1.value == '' && zip2.value == '') { return true; } if (zip1.value.length != 3) { showAlert(text); zip1.focus(); zip1.select(); return false; } if (zip2.value.length != 4) { showAlert(text); zip2.focus(); zip2.select(); return false; } return true; } //***************************************************************************** //* [関数名] //* chkInputZipkCodeObject //* [機能概要] //* 郵便番号項目の入力チェックを行う //* (指定されていなければエラー) //* [引数] //* zip1: 郵便番号1オブジェクトの変数名 //* zip2: 郵便番号2オブジェクトの変数名 //* text: エラーメッセージ //* [戻り値] //* 正当なら真/不当なら偽(エラー処理済み) //* [修正履歴] //***************************************************************************** function chkInputZipkCodeObject(zip1, zip2, text) { if ((zip1.value == null) || (zip1.value == '')) { showAlert(text); zip1.focus(); zip1.select(); return false; } if ((zip1.value.length != 0) && (zip1.value.length != 3)) { showAlert(text); zip1.focus(); zip1.select(); return false; } return true; } //***************************************************************************** //* [関数名] //* comma //* [機能概要] //* コンマ編集 //* [引数] //* val: データ //* [戻り値] //* なし //* [修正履歴] //* 2002/12/12 作成 FS T.Koga / 査読 //***************************************************************************** function comma(val){ var minus=val.charAt(0)=="-"?"-":""; if(minus!=""){ val=val.substring(1); } var tmp="",c=0; for(i=0;i="0"&&val.charAt(i)<="9"||val.charAt(i)=="."&&c++==0){ tmp+=val.charAt(i); } } var d="",i=tmp.indexOf("."); if(i!=-1){ d=tmp.substring(i); if(d=="."){ d=""; } tmp=tmp.substring(0,i); } while(tmp.charAt(0)=="0"&&tmp!="0"){ tmp=tmp.substring(1); } val=tmp; tmp=""; for(i=val.length-1;i>=0;i--){ tmp=val.charAt(i)+tmp; if((val.length-i)%3==0&&i!=0){ tmp=","+tmp; } } if(tmp==""&&d!=""){ tmp="0"; } if(minus!=""&&tmp==""){ minus=""; } return minus+tmp+d; } //***************************************************************************** //* [関数名] //* doLogout //* [機能] //* ログアウトの実行処理 //* [引数] //* form: フォームオブジェクト //* [戻り値] //* なし //* [修正履歴] //***************************************************************************** function doLogout(form) { var resultFlg = confirm(form.e110010.value); if (resultFlg == true) { doAction(form, 'rsvLogoutAction.do'); self.close(); } } //***************************************************************************** //* [関数名] //* keycheck //* [機能概要] //* 数字入力チェック //* [引数] //* e: イベント //* [戻り値] //* なし //* [修正履歴] //* 2002/12/12 作成 FS T.Koga / 査読 //***************************************************************************** function keycheck(e){ var c; if ((c=e.keyCode)>0) { return (c>=48&&c<=57)||(c>=96&&c<=105)||(c==8)||(c==9)||(c==46)||(c==37||c==39)||(c=="-".charCodeAt(0)); } else { if((c=e.which)>0){ return (c>=48&&c<=57)||(c==8); } else { if(e.value.match(/\D/)!=null) { e.value=e.value.replace(/\D/g,""); } } } return true } //***************************************************************************** //* [関数名] //* isValidObj //* [機能概要] //* オブジェクトが有効か無効かチェックする //* [引数] //* obj: 対象オブジェクト //* [戻り値] //* 正当なら真/不当なら偽 //* [修正履歴] //* 2003/01/03 作成 OSL K.Nonaka / 査読 //***************************************************************************** function isValidObj(obj) { if (( obj == undefined ) || ( obj == null )) { return false; } return true; } //***************************************************************************** //* [関数名] //* showMessage //* [機能概要] //* hiddenのメッセージを表示する //* [引数] //* obj: 対象オブジェクト //* errorNo: hiddenのname属性 //* mode: 0:showAlert,1:confirm //* [戻り値] //* true/false //* [修正履歴] //* 2003/01/13 作成 OSL K.Nonaka / 査読 //***************************************************************************** function showMessage(obj,errorNo,mode) { if ( 0 == mode ) { showAlert(obj.elements[errorNo].value); return false; } else if ( 1 == mode ) { return confirm(obj.elements[errorNo].value); } } //***************************************************************************** //* [関数名] //* replaceErrMsg //* [機能概要] //* エラーメッセージに配列で指定した項目を置換する //* [引数] //* errMsg: エラーメッセージ //* errStr: 置換を行う文字配列 //* errStr[0]->{0},errStr[1]->{1}… に置換する //* [戻り値] //* エラーメッセージ //* [修正履歴] //* 2003/01/13 作成 OSL K.Nonaka / 査読 //***************************************************************************** function replaceErrMsg(errMsg,errStr) { var i; // カウンタ var str; // 正規表現 var replaceStr; // 正規表現文字列 for ( i = 0 ; i < errStr.length ; i++ ) { str = "\\\{" + i + "\\\}"; replaceStr = new RegExp(str,"g"); errMsg = errMsg.replace(replaceStr, errStr[i]); } return errMsg; } //***************************************************************************** //* [関数名] //* checkChkBoxM //* [機能概要] //* チェックボックスにチェックがついているかをチェックする //* 複数のチェックボックスを調べる場合に使用する //* [引数] //* form: チェックボックスフォーム //* chkArr: checkboxオブジェクトの変数名配列 //* msg: エラーメッセージ //* mode: 0:必須チェック(チェックが無い場合エラーメッセージを表示) //* 1:複数選択チェック(複数チェックの場合もエラー) //* [戻り値] //* 正当なら真/不当なら偽(エラー処理済み) //* [修正履歴] //* 2002/11/19 作成 FS A.Yamaguchi / 査読 //***************************************************************************** function checkChkBoxM(frm, chkArr, msg, mode) { var obj; // オブジェクト var chkcnt; // チェック数 var i; // カウンタ // 初期化 chkcnt = 0; i = 0; //画面上にチェックボックスが1つしかない場合、checkChkBoxの処理へ if ( undefined == frm.elements[chkArr].length ) { return checkChkBox(frm.elements[chkArr], msg); } else { for ( i = 0 ; i < frm.elements[chkArr].length ; i++ ) { if ( true == frm.elements[chkArr][i].checked ) { chkcnt++; } } // チェック無し if ( 0 == chkcnt ) { showAlert(msg); return false; } // 複数チェックされている if(mode == 1 && chkcnt > 1){ showAlert(msg); return false; } return true; } } //***************************************************************************** //* [関数名] //* initMiniMenu //* [機能概要] //* ミニメニューの初期設定を行う //* [引数] //* frm: フォームオブジェクト //* no: 選択位置(1〜) //* num: 選択総数 //* [戻り値] //* なし //* [修正履歴] //* 2003/01/20 作成 FS A.Yamaguchi / 査読 //***************************************************************************** function initMiniMenu(frm, no, num) { var td; var data; var i; var j; if (no < 0) { return; } no = eval(no)+1; if (no < 10) { no = "0" + no; } // メニュー表示順の設定 data = new Array(); for (i=1,j=0; i<=num; i++,j++) { if (i < 10) { data[j] = "0" + i; } else { data[j] = i; } if (no == i) { data[j] = "" + no + ""; // サイズ変更用 } } td = document.all("order"); td.innerHTML = data.join('→') + "
" + td.innerHTML; // メニュー選択の設定 frm.menu.selectedIndex = eval(no)-1; } //***************************************************************************** //* [関数名] //* isChecked //* [機能概要] //* チェックボックスが選択されていない場合はエラーメッセージを表示する //* [引数] //* msg: メッセージ文字列 //* (空の場合、メッセージボックスは表示されない) //* [戻り値] //* なし //* [修正履歴] //***************************************************************************** function isChecked(value, msg) { var i; if (value == null) { // 一覧がない場合も showAlert(msg); // メッセージ表示 return false; } if (value.length > 0) { // 複数チェックボックスの場合 for (i = 0; i < value.length; i++) { if (value[i].checked == true) { return true; } } } else { // チェックボックス1つの場合 if (value.checked == true) { return true; } } showAlert(msg); // チェックがないので return false; // メッセージ表示 } //***************************************************************************** //* [関数名] //* chkAllSpace //* [機能概要] //* 指定された文字列が空白のみでないかどうかチェックする。 //* [引数] //* obj: テキストボックスのオブジェクト //* msg: 偽だった場合のエラーメッセージ //* [戻り値] //* 指定文字列に空白以外の何らかの文字が入っている場合は真 //* 指定文字列がすべて全角あるいは半角の空白なら偽 //* [修正履歴] //* 2003/01/27 OSL Masahiro.ONO //***************************************************************************** function chkAllSpace(obj, msg) { var i; // カウンタ var str; // nameで指定された項目のテキスト値。 var flag; // 正否フラグ // 初期化 str = obj.value; flag = false; // (半角・全角)空白でないなら真。 for ( i = 0 ; i < str.length ; i++ ) { if ( ' ' != str.charAt(i) && ' ' != str.charAt(i) ) { flag = true; break; } } //偽ならアラートの表示 if ( false == flag ) { showAlert(msg); } return flag; } //***************************************************************************** //* [関数名] //* addOption //* [機能概要] //* コンボボックスやリストボックスに指定された要素を追加する。 //* [引数] //* obj: コンボボックス/リストボックスのオブジェクト //* text: 追加する要素のtext値 //* value: 追加する要素のvalue値 //* [戻り値] //* なし //* [修正履歴] //* Pares V2からの移行 //***************************************************************************** function addOption(obj, text, value){ var opt; //現在リストボックス/コンボボックス内にある要素の配列 var optNo; //現在リストボックス/コンボボックス内にある要素の数 var i; //ループ用 opt = obj.options; optNo = opt.length; //同一要素チェック for ( i = 0 ; i < optNo ; i++ ) { if ( opt[i].text == text && opt[i].value == value ) { return; } } opt[optNo] = new Option(text, value, false, false); opt.length = optNo + 1; } //***************************************************************************** //* [関数名] //* removeOption //* [機能概要] //* コンボボックスやリストボックスに指定された要素を削除する。 //* [引数] //* obj: コンボボックス/リストボックスのオブジェクト //* index: 削除される要素が何番目に位置するかを指定する値 //* [戻り値] //* なし //* [修正履歴] //* Pares V2からの移行 //***************************************************************************** function removeOption(obj, index){ var opt; //現在リストボックス/コンボボックス内にある要素の配列 var optNo; //現在リストボックス/コンボボックス内にある要素の数 var i; //ループ用 opt = obj.options; optNo = opt.length; //削除する位置から1つづつデータを詰める。 for ( i = index ; i < optNo - 1 ; i++ ) { opt[i].text = opt[i+1].text; opt[i].value = opt[i+1].value; } opt.length = optNo - 1; //削除後の選択位置の指定 if ( index > opt.length - 1 ) { index = opt.length - 1; } obj.selectedIndex = index; } //***************************************************************************** //* [関数名] //* startInitTimer //* [機能概要] //* ログイン画面に戻るためのタイマー処理を呼び出す。 //* [引数] //* なし //* [戻り値] //* なし //* [修正履歴] //* 2003/02/10 作成 FS F.Inatomi / 査読 //***************************************************************************** function startInitTimer() { gTimerId = setTimeout("initProc()", gTimerValue * 1000); } //****************************************************************************** //* [関数名] //* initProc() //* [機能概要] //* ログイン画面に戻る処理を実行する。 //* [引数] //* なし。 //* [戻り値] //* なし。 //* [修正履歴] //* 2003/02/10 作成 //* - 修正内容を記述 //****************************************************************************** function initProc() { // // @ToDo NetScape4.7対応で注意してください。 By Y.Ikeura 2003.03.27 // (NetScape6.2用でformDispの取得の為にdocument.を追加しています。) // doAction(document.formdisp, gTimeOutAction); } //***************************************************************************** //* [関数名] //* showLAYER //* [機能概要] //* レイアの表示 //* [引数] //* layName: レイアオブジェクトの名称 //* [戻り値] //* なし //* [修正履歴] //* 2003/03/16 作成 SHIRAISHI yoshihiro / 査読 //***************************************************************************** function showLAYER(layName) { if (_dom == 3) { // NN4 getDivFromName(layName).visibility = "show"; } else if (_dom == 4) { // NN6 getDivFromName(layName).visibility = "inherit"; } else { // 上記以外 getDivFromName(layName).visibility = "visible"; } } //***************************************************************************** //* [関数名] //* hideLAYER //* [機能概要] //* レイアの非表示 //* [引数] //* layName: レイアオブジェクトの名称 //* [戻り値] //* なし //* [修正履歴] //* 2003/03/16 作成 SHIRAISHI yoshihiro / 査読 //***************************************************************************** function hideLAYER(layName) { if (_dom == 3) { // NN4 getDivFromName(layName).visibility = "hide"; } else if (_dom == 4) { // NN6 getDivFromName(layName).visibility = "hidden"; } else { // 上記以外 getDivFromName(layName).visibility = "hidden"; } } //***************************************************************************** //* [関数名] //* loadMsgWrite //* [機能概要] //* 開始タグをドキュメントに書き込む //* [引数] //* doc: ドキュメント //* [戻り値] //* なし //* [修正履歴] //* 2003/03/04 作成 M.Niihara / 査読 //***************************************************************************** function loadMsgWrite(doc) { initDispWrite(doc, 1); doc.open(); if (_dom == 3) { // NN4 doc.write(""); } else { // 上記以外 doc.write("
"); } doc.close(); hideLAYER('disp'); } //***************************************************************************** //* [関数名] //* endTagWrite //* [機能概要] //* 終了タグをドキュメントに書き込む //* [引数] //* doc: ドキュメント //* [戻り値] //* なし //* [修正履歴] //* 2003/03/04 作成 M.Niihara / 査読 //***************************************************************************** function endTagWrite(doc) { doc.open(); if (_dom == 3) { // NN4 doc.write(""); } else { // 上記以外 doc.write("
"); } doc.close(); } //***************************************************************************** //* [関数名] //* msgHide //* [機能概要] //* ロード後に、表示を切り替える。 //* [引数] //* なし //* [戻り値] //* なし //* [修正履歴] //* 2003/03/03 作成 M.Niihara / 査読 //***************************************************************************** function msgHide() { hideLAYER('loadmsg'); showLAYER('disp'); } //***************************************************************************** //* [関数名] //* procStart //* [機能概要] //* Actionが呼ばれた直後のレイヤ処理 //* [引数] //* なし //* [戻り値] //* なし //* [修正履歴] //* 2003/03/04 作成 M.Niihara / 査読 //***************************************************************************** function procStart() { if (getDivFromName('disp') != null) { hideLAYER('disp'); showLAYER('loadmsg'); } } //***************************************************************************** //* [関数名] //* initDispWrite //* [機能概要] //* ドキュメントに書き込む //* [引数] //* doc: ドキュメント //* num: 処理種別 0:初期画面 1:その他 //* [戻り値] //* なし //* [修正履歴] //* 2003/03/04 作成 M.Niihara / 査読 //* 2003/03/18 修正 SHIRAISHI yoshihiro / 査読 //* 画面サイズの修正 //***************************************************************************** // IS 修正内容 フレーム分割対応 2003/04/18 FS SHIRAISHI yoshihiro function initDispWrite(doc, num) { doc.open(); if (_dom == 3) { // NN4 doc.write("
 
 








 
"); } else { // 上記以外 doc.write("
 
 








 
"); } doc.close(); if (num == 0) { hideLAYER('loadmsg'); } } // IE 修正内容 フレーム分割対応 2003/04/18 FS SHIRAISHI yoshihiro //***************************************************************************** //* [機能概要] //* ブラウザ判定マクロ。 //* [備考] //* _dom 1:IE4 //* 2:IE5+ //* 3:NN3 //* 4:NN6 //* 0:other //* //* [修正履歴] //* 2003/03/03 作成 M.Niihara / 査読 //***************************************************************************** var _dom = document.all?(document.getElementById?2:1) :(document.getElementById?4 :(document.layers?3:0)); //***************************************************************************** //* [関数名] //* getDivFromName //* [機能概要] //* レイヤオブジェクトを取得する。 //* [引数] //* nm: レイヤ名 //* [戻り値] //* レイヤオブジェクトを返す。 //* [修正履歴] //* 2003/03/03 作成 M.Niihara / 査読 //***************************************************************************** function getDivFromName(nm) { if ((_dom == 4) || (_dom == 2)) { return document.getElementById(nm).style; } else if (_dom == 1) { return document.all(nm).style; } else if (_dom == 3) { var sTargetObject = "document.layers['" + nm + "']"; return eval(sTargetObject); } return null; } //***************************************************************************** //* [関数名] //* chkCityPhoneNoObject //* [機能概要] //* 電話番号項目のチェックを行う //* (指定されていなければエラー) //* [引数] //* phone1: 電話番号項目1オブジェクトの変数名 //* phone2: 電話番号項目2オブジェクトの変数名 //* phone3: 電話番号項目3オブジェクトの変数名 //* flg1: 電話番号項目1のチェックフラグ(1:チェックする) //* flg2: 電話番号項目2のチェックフラグ(1:チェックする) //* text: エラーメッセージ //* [戻り値] //* 正当なら真/不当なら偽(エラー処理済み) //* [修正履歴] //***************************************************************************** function chkCityPhoneNoObject(phone1, phone2, phone3, flg1, flg2, text) { if (flg1 == '1' && phone1.value == '') { showAlert(text); phone1.focus(); phone1.select(); return false; } if (flg2 == '1' && phone2.value == '') { showAlert(text); phone2.focus(); phone2.select(); return false; } if (phone3.value.length == 0) { showAlert(text); phone3.focus(); phone3.select(); return false; } return true; } //***************************************************************************** //* [関数名] //* chkSetPhoneNoObject //* [機能概要] //* 電話番号項目のチェックを行う //* (指定されていなければエラー) //* [引数] //* phone1: 電話番号項目1オブジェクトの変数名 //* text: エラーメッセージ //* [戻り値] //* 正当なら真/不当なら偽(エラー処理済み) //* [修正履歴] //***************************************************************************** function chkSetPhoneNoObject(phone1, phone2, phone3, text) { if (phone1.value == '' && phone2.value == '' && phone3.value == '') { return true; } if (phone3.value.length == 0) { showAlert(text); phone3.focus(); phone3.select(); return false; } return true; } //***************************************************************************** //* [関数名] //* isUnicode(text) //* [機能概要] //* 禁止文字の入力チェックを行う //* [引数] //* obj :入力フィールドオブジェクト //* [戻り値] //* なし //* [修正履歴] //* 2003/04/02 作成 FS D.Fukutomi / 査読 //* - 修正内容を記述 //***************************************************************************** function isUnicode(obj) { var ngChar = "〜‖−¢£¬"; var i; var chr; var text; text = obj.value for (i=0; i= 0) { return false; } } return true; } //******* 以下、インラインフレームのスクロール関連 *******// //***************************************************************************** //* [関数名] //* scrollUp() //* [機能概要] //* インラインフレームをスクロールアップさせる。 //* [引数] //* inFrame :インラインフレームの画面番号 //* [戻り値] //* なし //* [修正履歴] //* 2003/05/26 作成 H.Matsunaga / 査読 //***************************************************************************** var gInFrame; var gScrollCnt; var gId; function scrollUp(inFrame) { gInFrame = inFrame; gScrollCnt = -10; pageScroll(); } //***************************************************************************** //* [関数名] //* scrollDown() //* [機能概要] //* インラインフレームをスクロールダウンさせる。 //* [引数] //* inFrame :インラインフレームの画面番号 //* [戻り値] //* なし //* [修正履歴] //* 2003/05/26 作成 H.Matsunaga / 査読 //***************************************************************************** function scrollDown(inFrame) { gInFrame = inFrame; gScrollCnt = 10; pageScroll(); } //***************************************************************************** //* [関数名] //* pageScroll() //* [機能概要] //* インラインフレームをスクロールさせる。 //* [引数] //* なし //* [戻り値] //* なし //* [修正履歴] //* 2003/05/26 作成 H.Matsunaga / 査読 //***************************************************************************** function pageScroll() { gInFrame.scrollBy(0,gScrollCnt); gId = setTimeout("pageScroll()", 20); } //***************************************************************************** //* [関数名] //* scrollStop() //* [機能概要] //* インラインフレームのスクロールをストップさせる。 //* [引数] //* なし //* [戻り値] //* なし //* [修正履歴] //* 2003/05/26 作成 H.Matsunaga / 査読 //***************************************************************************** function scrollStop() { clearTimeout(gId); } /* START add 2004/09/27 TCS)Y.Kiyosuke */ //***************************************************************************** //* [関数名] //* getunicode() //* [機能概要] //* ネットスケープでescape関数が使用できないため追加 //* [引数] //* 文字列 //* [戻り値] //* unicode //* [修正履歴] //* 2004/09/27 作成 Y.Kiyosuke / 査読 //***************************************************************************** function getunicode(str){ var moji; var uni = ""; for( var i=0;i=48 && moji <=57){ //半角数字 //そのまま表示 uni = uni + str.charAt(i); } else if(moji >=65 && moji <=90){ //アルファベット大文字 //そのまま表示 uni = uni + str.charAt(i); } else if(moji >=97 && moji <=122){ //アルファベット小文字 //そのまま表示 uni = uni + str.charAt(i); } else { //「<」「>」「&」などは変換 uni = uni + "%" + moji.toString(16); } } else { //16進数に変換 uni = uni + "%u" + moji.toString(16); } } return uni; } /* END add 2004/09/27 TCS)Y.Kiyosuke */ //***************************************************************************** //* [関数名] //* chkMailAddress //* [機能] //* メールアドレスのチェックを行う //* (属性(半角英数字,'@','-','_','.','/')、バイト数、形式) //* [引数] //* obj: TEXTオブジェクト //* len: バイト数 //* msg: メッセージ //* [戻り値] //* 正当なら真/不当なら偽 //***************************************************************************** function chkMailAddress(obj,len,msg){ var str, chr, i; str = obj.value; //属性チェック for (i=0; i 0) { if (!chkBytes(obj, msg, len)) { return false; } } //形式チェック if (!chkMail(obj, msg)) { return false; } return true; } //***************************************************************************** //* [関数名] //* chkSNengetsu //* [機能概要] //* 年月日の指定の正当性を調べる //* [引数] //* textY: 年入力用テキストオブジェクト //* textM: 同 月 //* textD: 同 日 //* msg: エラーメッセージ //* flag: 指定なしをエラーとする(メッセージを表示する)なら1 //* [戻り値] // 年月日の指定が正当なら真/不当なら偽 //* [修正履歴] //***************************************************************************** function chkSNengetsu(textSY,textSM,textSD,textEY,textEM,textED,msg,flag) { var days; // 日数 var SYMDFLG; // 開始年月日の入力(なし:0、あり:1) var EYMDFLG; // 終了年月日の入力(なし:0、あり:1) var SEYMDFLG; // 開始終了年月日の入力(なし:0、あり:1) if (textSY.value == '' && textSM.value == '' && textSD.value == '' && textEY.value == '' && textEM.value == '' && textED.value == '') { SEYMDFLG = 0; }else{ SEYMDFLG = 1; } if (textSY.value == '' && textSM.value == '' && textSD.value == '') { SYMDFLG = 0; }else{ SYMDFLG = 1; } if (textEY.value != '' || textEM.value != '' || textED.value != '') { EYMDFLG = 1; }else{ EYMDFLG = 0; } if (SYMDFLG == 0 && EYMDFLG == 1){ return true; }else if (SEYMDFLG == 0){ return true; }else{ // 年のチェック(有無・半角数字・桁数) if (textSY.value == '') { // 年の指定がない if (flag == 1) { showAlert(msg); textSY.focus(); return false; } } if (!chkHanNum(textSY.value) || // 半角数字でない eval(textSY.value) < 1000 || eval(textSY.value) > 9999) { // 4桁でない showAlert(msg); textSY.focus(); textSY.select(); return false; } // 月のチェック(有無・半角数字・範囲) if (textSM.value == '' && EYMDFLG == 0) { // 月の指定がない if (flag == 1) { showAlert(msg); textSM.focus(); return false; } } if (!chkHanNum(textSM.value) || eval(textSM.value) < 1 || eval(textSM.value) > 12) { showAlert(msg); textSM.focus(); textSM.select(); return false; } // 日のチェック(有無・半角数字・範囲) if (textSD.value == '' && EYMDFLG == 0) { // 日の指定がない if (flag == 1) { showAlert(msg); textSD.focus(); return false; } } days = getDays(eval(textSY.value), eval(textSM.value)); if (!chkHanNum(textSD.value) || eval(textSD.value) < 1 || eval(textSD.value) > days) { showAlert(msg); textSD.focus(); textSD.select(); return false; } } return true; } //***************************************************************************** //* [関数名] //* chkENengetsu //* [機能概要] //* 年月日の指定の正当性を調べる //* [引数] //* textY: 年入力用テキストオブジェクト //* textM: 同 月 //* textD: 同 日 //* msg: エラーメッセージ //* flag: 指定なしをエラーとする(メッセージを表示する)なら1 //* [戻り値] // 年月日の指定が正当なら真/不当なら偽 //* [修正履歴] //***************************************************************************** function chkENengetsu(textSY,textSM,textSD,textEY,textEM,textED,msg,flag) { var days; // 日数 var EYMDFLG; // 終了年月日の入力(なし:0、あり:1) if (textSY.value == '' && textSM.value == '' && textSD.value == '' && textEY.value == '' && textEM.value == '' && textED.value == '') { SEYMDFLG = 0; }else{ SEYMDFLG = 1; } if (textEY.value == '' && textEM.value == '' && textED.value == '') { EYMDFLG = 0; }else{ EYMDFLG = 1; } if (textSY.value != '' || textSM.value != '' || textSD.value != '') { SYMDFLG = 1; }else{ SYMDFLG = 0; } if (EYMDFLG == 0 && SYMDFLG == 1){ return true; }else if (SEYMDFLG == 0){ return true; }else{ // 年のチェック(有無・半角数字・桁数) if (textEY.value == '') { // 年の指定がない if (flag == 1) { showAlert(msg); textEY.focus(); return false; } } if (!chkHanNum(textEY.value) || // 半角数字でない eval(textEY.value) < 1000 || eval(textEY.value) > 9999) { // 4桁でない showAlert(msg); textEY.focus(); textEY.select(); return false; } // 月のチェック(有無・半角数字・範囲) if (textEM.value == '') { // 月の指定がない if (flag == 1) { showAlert(msg); textEM.focus(); return false; } } if (!chkHanNum(textEM.value) || eval(textEM.value) < 1 || eval(textEM.value) > 12) { showAlert(msg); textEM.focus(); textEM.select(); return false; } // 日のチェック(有無・半角数字・範囲) if (textED.value == '') { // 日の指定がない if (flag == 1) { showAlert(msg); textED.focus(); return false; } } days = getDays(eval(textEY.value), eval(textEM.value)); if (!chkHanNum(textED.value) || eval(textED.value) < 1 || eval(textED.value) > days) { showAlert(msg); textED.focus(); textED.select(); return false; } } return true; } // $IS FS K.Teshima 2008/02/25 [厚木市ICT] //***************************************************************************** //* [関数名] //* chkZenHanField //* [機能] //* 全角・半角入力かのチェックを行う。 //* (記号のみ不可) //* [引数] //* obj: TEXTオブジェクト //* msg: エラーメッセージ //* [戻り値] //* 正当なら真/不当なら偽(エラー処理済み) //* [修正履歴] //* 2007/11/20 作成 FS A.Yamasaki / 査読 //***************************************************************************** function chkZenHanField(obj, msg) { var str, chr, i, fg; // var han = " -^\\@[;:],./!\"#$%&'()=~|`{+*}<>?_"; var han = "\"'|"; // var kana = "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲン゙゚ャュョァィゥェォ"; var brankCnt = 0; str = obj.value; for (i=0; i=0) { alert(msg); obj.focus(); obj.select(); return false; } if (' ' == chr || ' ' == chr) { brankCnt++; } } // 全角・半角ブランクチェック if ((str.length > 0) && (str.length == brankCnt)) { alert(msg); obj.focus(); obj.select(); return false; } else { return true; } } // $IE FS K.Teshima 2008/02/25 [厚木市ICT]