// $Revision: 1.2 $ // $Date: 2009-02-09 05:40:37 $ ///////////////////////////////////////////////// // 共通変数宣言 // ///////////////////////////////////////////////// var YEARMIN = 1900; // 年チェック最小値 //var YEARMAX = 2100; // 年チェック最大値 var YEARMAX = 3000; // 年チェック最大値 var MONTHMIN = 1; // 月チェック最小値 var MONTHMAX = 12; // 月チェック最大値 var DAYMIN = 1; // 日チェック最小値 var DAYMAX = 31; // 日チェック最大値 var NUMMAX_H = 9999999999.9; // 数値最大値(小数部1桁) var NUMMAX_J = 9999999999.99; // 数値最大値(小数部2桁) var NUMMAX_K = 9999999999.9999999999; // 数値最大値(小数部10桁) var NUMMAX_L = 9999999999.9999999999; // 数値最小値(小数部10桁) var NUMMIN_H = 0; // 数値最小値(小数部1桁) var NUMMIN_J = 0; // 数値最小値(小数部2桁) var NUMMIN_K = 0; // 数値最小値(小数部10桁) var NUMMIN_L = -9999999999.9999999999; // 数値最小値(小数部10桁) var INTEGER_STR = "0123456789"; var DECIMAL_STR = ".0123456789"; var calendarwin; ///////////////////////////////////////////////// // HEADLIST変数にチェックする種別を宣言 // nn:NULL/空文字をチェックする // nu:NULL/空文字をチェックしない ///////////////////////////////////////////////// var HEADLIST = new Array("nn", "nu"); var HEADATTR = new Array("nn", "nu"); var HEADERR = new Array("必須入力領域に値が入力されていません", "削除するレコードを選択してください", "削除可能なレコードは存在しません"); ///////////////////////////////////////////////// // CHECKLIST変数にチェックするTEXT領域の名前を宣言 // INT:1byte整数チェック // DCM:1byte数値チェック(小数含む) // DCH:1byte数値チェック(小数含む フォーマット:9999999999.9) // DCJ:1byte数値チェック(小数含む フォーマット:9999999999.99) // DCK:1byte数値チェック(小数含む フォーマット:9999999999.9999999999) // DCL:1byte数値チェック(小数含む フォーマット:-9999999999.9999999999) // TEXT:1byte/2byte混在テキスト // SBTX:1byteテキストチェック // MBTX:2byteテキストチェック // YEAR:年(1byte整数,範囲:YEARMIN〜YEARMAX) // MNTH:月(1byte整数,範囲:MONTHMIN〜MONTHMAX) // DAY :日(1byte整数,範囲:DAYMIN〜DAYMAX) // DATE :年月日(1byte整数,範囲:YEARMIN〜YEARMAX/MONTHMIN〜MONTHMAX/DAYMIN〜DAYMAX) ///////////////////////////////////////////////// var CHECKLIST = new Array("INT","DCM","DCH","DCJ","DCK","DCL","TEXT","SBTX","MBTX","YEAR","MNTH","DAY","DATE"); ///////////////////////////////////////////////// // CHECKLISTに対応してCHECKATTR変数に呼び出すチェックルーチン名を宣言 // I:chkInteger // G:chkDecimal // H:chkDecimal_H(整数部10桁:小数部1桁:マイナスなし) // J:chkDecimal_J(整数部10桁:小数部2桁:マイナスなし) // K:chkDecimal_K(整数部10桁:小数部10桁:マイナスなし) // L:chkDecimal_L(整数部10桁:小数部10桁:マイナスあり) // T:なし // 1:chk2byte // 2:chkAll2byte // Y:chkYear // M:chkMonth // D:chkDay // W:chkDate ///////////////////////////////////////////////// var CHECKATTR = new Array("I","G","H","J","K","L","T","1","2","Y","M","D","W"); ///////////////////////////////////////////////// // CHECKERRにエラー文言を宣言 ///////////////////////////////////////////////// var CHECKERR = new Array("整数を入力してください", "数値を入力してください", "数値を入力してください フォーマット:9999999999.9", "数値を入力してください フォーマット:9999999999.99", "数値を入力してください フォーマット:9999999999.9999999999", "数値を入力してください フォーマット:±9999999999.9999999999", "文字列を入力してください", "1byte文字で入力してください", "2byte文字で入力してください", "YYYY(4桁西暦)を入力してください", "MM(2桁月)を入力してください", "DD(2桁日)を入力してください", //yy 2005/04/08 start // "YYYY/MM/DDの日付形式にて入力してください"); "yyyy/MM/dd の日付形式にて入力してください", "yyyy/MM/dd HH:mm:ss の日付形式にて入力してください", "特殊文字は使用できません" // 14 //yy 2005/04/08 end ,"yyyy/MM の形式にて入力してください" // 15 ,"HH:mm:ss の形式にて入力してください" // 16 ,"HH:mm の形式にて入力してください" // 17 ); ///////////////////////////////////////////////// // 日付取得 // ///////////////////////////////////////////////// // クライアント日付を出力する際に // 同一の日付値を取得するため外部変数化 // 通常はサーバ側の日付、時間を使用する var dat = new Date(); // クライアント年を取得 function getYear() { return dat.getYear(); } // クライアント月を取得 function getMonth() { var month = dat.getMonth() + 1; if (month < 10) { // 月数の頭に'0'を付加 month= "0" + month; } return month; } // クライアント日を取得 function getDay() { var date = dat.getDate(); if (date < 10) { // 日数の頭に'0'を付加 date= "0" + date; } return date; } ///////////////////////////////////////////////// // 指定FORM中のNAME属性がnnで始まるTEXT領域 // // の入力チェック // // 必須入力項目のチェックに使用する。 // ///////////////////////////////////////////////// function isNull(form) { var i = 0; for (i = 0; i < form.length; i++) { if (form.elements[i].type == "text") { var name = form.elements[i].name; var flag = name.indexOf(HEADLIST[0],4); if (flag != -1 && (form.elements[i].value == "" || form.elements[i].value == null)) { form.elements[i].focus(); return false; } } } return true; } ///////////////////////////////////////////////// // 入力データのチェック ///////////////////////////////////////////////// function checkForm(form) { if (isNull(form) != true) { alert(HEADERR[0]); return false; } var i = 0, k = 0; var flag = false; for (i = 0; i < form.length; i++) { if (form.elements[i].type == "text") { var name = form.elements[i].name; for (k = 0; k < CHECKLIST.length; k++) { flag = name.indexOf(CHECKLIST[k],6); if (flag == 6) { break; } } var res, value; value = form.elements[i].value; if (value == "" || value.length == 0) { res = true; } else { switch(CHECKATTR[k]) { case "I": res = chkInteger(value); break; case "G": res = chkDecimal(value); break; case "H": res = chkDecimal_H(value); break; case "J": res = chkDecimal_J(value); break; case "K": res = chkDecimal_K(value); break; case "L": res = chkDecimal_L(value); break; case "1": res = chk2byte(value); if (res == false) { res = true ; } else { res = false; } break; case "2": res = chkAll2byte(value); break; case "Y": res = chkYear(value); break; case "M": res = chkMonth(value); break; case "D": res = chkDay(value); break; case "W": res = chkDate(value); break; } } if (res == false) { alert(CHECKERR[k]); form.elements[i].focus(); return false; } } } } ///////////////////////////////////////////////// // 汎用 // ///////////////////////////////////////////////// // 文字列長チェック function checkLength(obj, min_length, max_length) { var len; if (obj == null) { return false; } len = getLength(obj.value); if (len < min_length || len > max_length) { dispLengthErr(min_length, max_length); obj.focus(); return false; } return true; } // 入力値のNULLチェック function checkNull(obj) { if(obj != null) { // objが配列である場合 if(obj.length > 0) { var i; for(i = 0; i < obj.length; i++) { if (obj[i].value == null || obj[i].value.length == 0) { alert(HEADERR[0]); obj[i].focus(); return false; } } } // objが配列ではない場合 else { if (obj.value == null || obj.value.length == 0) { alert(HEADERR[0]); obj.focus(); return false; } } } return true; } // チェックボックスが選択されていることをチェック function checkCheckboxSelected(obj) { if(obj != null) { // objが配列である場合 if(obj.length > 0){ var i; for(i = 0; i < obj.length; i++) { // チェックボックスが選択されている場合 if(obj[i] != null && obj[i].checked == true){ return true; } else{ obj[i].focus(); continue; } } alert(HEADERR[1]); return false; } // objが配列ではない場合 else{ // チェックボックスが選択されている場合 if(obj != null && obj.checked == true){ return true; } obj.focus(); alert(HEADERR[1]); return false; } } else { alert(HEADERR[2]); return false; } return false; } ///////////////////////////////////////////////// // 日付チェック // ///////////////////////////////////////////////// // 指定FORM中のYEAR,MONTH,DAYで始まるTEXT領域の // 数値をチェックする // YEARは1900〜2100,MONTHは1〜12,DAYは1〜31をチェック // 年チェック function checkYear(obj) { if (obj == null) { return true; } if (isUndefined(obj) == true) { return true; } if (chkYear(obj.value) == false) { alert(CHECKERR[9]); obj.focus(); return false; } return true; } // 月チェック function checkMonth(obj) { if (obj == null) { return true; } if (isUndefined(obj) == true) { return true; } if (chkMonth(obj.value) == false) { alert(CHECKERR[10]); obj.focus(); return false; } return true; } // 日チェック function checkDay(obj) { if (obj == null) { return true; } if (isUndefined(obj) == true) { return true; } if (chkDay(obj.value) == false) { alert(CHECKERR[11]); obj.focus(); return false; } return true; } // 年月日チェック function checkDate(obj) { if (obj == null) { return true; } if (isUndefined(obj) == true) { return true; } if (chkDate(obj.value) == false) { alert(CHECKERR[12]); obj.focus(); return false; } return true; } // 年月日時分秒チェック function checkDate2(obj) { //if (calendarwin) calendarwin.close(); if (obj == null) { return true; } if (isUndefined(obj) == true) { return true; } if (chkDate(obj.value) == false) { alert(CHECKERR[12]); obj.focus(); return false; } if (chkTime(obj.value) == false) { alert(CHECKERR[13]); obj.focus(); return false; } return true; } function chkTime(value) { var time = value; var hh, mm, ss; // 書式チェック(HH:mm:ss) if (time.length == 0) { return true; } if (time.length < 19) { return false; } if (time.substr(10,1) != " ") { return false; } hh = time.substr(11,2); mm = time.substr(14,2); ss = time.substr(17,2); if (chkInteger(hh) == false) { return false; } if (eval(hh) > 23) { return false; } if (time.substr(13,1) != ":") { return false; } if (chkInteger(mm) == false) { return false; } if (eval(mm) > 59) { return false; } if (time.substr(16,1) != ":") { return false; } if (chkInteger(ss) == false) { return false; } if (eval(ss) > 59) { return false; } return true; } ///////////////////////////////////////////////// // 数値チェック // ///////////////////////////////////////////////// // 整数のみ function checkInteger(obj) { if (obj == null) { return true; } if (isUndefined(obj) == true) { return true; } ztoh(obj); var nstr; var str = obj.value; if (str.charAt(0) == "-") { nstr = str.substr(1); } else { nstr = str; } if (chkInteger(nstr) == false) { alert(CHECKERR[0]); obj.focus(); return false; } return true; } // 小数点含む function checkDecimal(obj) { if (obj == null) { return true; } if (isUndefined(obj) == true) { return true; } ztoh(obj); var nstr; var str = obj.value; if (str.charAt(0) == "-") { nstr = str.substr(1); } else { nstr = str; } if (chkDecimal(nstr) == false) { alert(CHECKERR[1]); obj.focus(); return false; } return true; } // 入力数値の範囲チェック(整数のみ) function checkIntegerRange(obj, min, max) { if (obj == null) { return true; } if (isUndefined(obj) == true) { return true; } if (chkInteger(obj.value) == false) { alert(CHECKERR[0]); obj.focus(); return false; } if (obj.value < min || obj.value > max) { dispRangeErr(min, max); obj.focus(); return false; } return true; } // 入力数値の範囲チェック(小数含む) function checkDecimalRange(obj, min, max) { if (obj == null) { return true; } if (isUndefined(obj) == true) { return true; } if (chkDecimal(obj.value) == false) { alert(CHECKERR[1]); obj.focus(); return false; } if (obj.value < min || obj.value > max) { dispRangeErr(min, max); obj.focus(); return false; } return true; } // 小数点含む(フォーマット:9999999999.9) function checkDecimal_H(obj) { if (obj == null) { return true; } if (isUndefined(obj) == true) { return true; } if (chkDecimal_H(obj.value) == false) { alert(CHECKERR[2]); obj.focus(); return false; } return true; } // 小数点含む(フォーマット:9999999999.99) function checkDecimal_J(obj) { if (obj == null) { return true; } if (isUndefined(obj) == true) { return true; } if (chkDecimal_J(obj.value) == false) { alert(CHECKERR[3]); obj.focus(); return false; } return true; } // 小数点含む(フォーマット:9999999999.9999999999) function checkDecimal_K(obj) { if (obj == null) { return true; } if (isUndefined(obj) == true) { return true; } if (chkDecimal_K(obj.value) == false) { alert(CHECKERR[4]); obj.focus(); return false; } return true; } // 小数点含む(フォーマット:-9999999999.9999999999) function checkDecimal_L(obj) { if (obj == null) { return true; } if (isUndefined(obj) == true) { return true; } if (chkDecimal_L(obj.value) == false) { alert(CHECKERR[5]); obj.focus(); return false; } return true; } // テキスト function checkText(obj) { if (obj == null) { return true; } if (isUndefined(obj) == true) { return true; } //yy 2005/04/08 add start if(!checkPlatformDependentCharacters(obj.value)) { alert(CHECKERR[14]); obj.focus(); return false; } //yy 2005/04/08 add end return true; } // 1byte文字のチェック function checkSingleByte(obj) { if (obj == null) { return true; } if (isUndefined(obj) == true) { return true; } ztoh(obj); if (chk2byte(obj.value) == true) { alert(CHECKERR[7]); obj.focus(); return false; } return true; } // 2byte文字のチェック function checkMultiByte(obj) { if (obj == null) { return true; } if (isUndefined(obj) == true) { return true; } if (chkAll2byte(obj.value) == false) { alert(CHECKERR[8]); obj.focus(); return false; } return true; } ///////////////////////////////////////////////// // 内部関数 // ///////////////////////////////////////////////// function ztoh(te) { var ts = te.value; ts = ts.replace( /[0-9A-Za-z]/g, function(es) { return String.fromCharCode(es.charCodeAt(0) - 65248); }); te.value = ts; } // 年のチェック function chkYear(value) { var year = value; if (year.length == 0) { return true; } if (chkInteger(year) == false) { return false; } if (year < YEARMIN || year > YEARMAX) { return false; } return true; } // 月のチェック function chkMonth(value) { var month = value; if (month.length == 0) { return true; } if (chkInteger(month) == false) { return false; } if (month < MONTHMIN || month > MONTHMAX) { return false; } return true; } // 日のチェック function chkDay(value) { var day = value; if (day.length == 0) { return true; } if (chkInteger(day) == false) { return false; } if (day < DAYMIN || day > DAYMAX) { return false; } return true; } // 年月日のチェック function chkDate(value) { var monthdays0 = new Array(31,28,31,30,31,30,31,31,30,31,30,31); var monthdays1 = new Array(31,29,31,30,31,30,31,31,30,31,30,31); // 閏年 var date = value; var year, month, day; var leapyear = false; var dx; // 書式チェック(YYYY/MM/DD) if (date.length == 0) { return true; } if (date.length < 10) { return false; } year = date.substr(0,4); month = date.substr(5,2); day = date.substr(8,2); if (chkInteger(year) == false) { return false; } if (date.substr(4,1) != "/") { return false; } if (chkInteger(month) == false) { return false; } if (date.substr(7,1) != "/") { return false; } if (chkInteger(day) == false) { return false; } // 範囲チェック if (year < YEARMIN || year > YEARMAX) { return false; } if (month < MONTHMIN || month > MONTHMAX) { return false; } // 閏年? if(((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) { leapyear = true; } if (leapyear == false) { dx = monthdays0[eval(month) - 1]; } else { dx = monthdays1[eval(month) - 1]; } if (day < DAYMIN || day > dx) { return false; } return true; } // 数字チェックを行う(整数) function chkInteger(str) { if (chkChar(str, INTEGER_STR) == false) { return false; } return true; } // 数字チェックを行う(小数含む) function chkDecimal(str) { if (chkChar(str, DECIMAL_STR) == false) { return false; } if (chkDot(str) == false) { return false; } return true; } // 数字チェックを行う(小数含む。整数部10桁、小数部1桁、マイナス無し) function chkDecimal_H(str) { if (chkDecimal(str) == false) { return false; } if (chkFormat(str, 10, 1) == false) { return false; } return true; } // 数字チェックを行う(小数含む。整数部10桁、小数部2桁、マイナス無し) function chkDecimal_J(str) { if (chkDecimal(str) == false) { return false; } if (chkFormat(str, 10, 2) == false) { return false; } return true; } // 数字チェックを行う(小数含む。整数部10桁、小数部10桁、マイナス無し) function chkDecimal_K(str) { if (chkDecimal(str) == false) { return false; } if (chkFormat(str, 10, 10) == false) { return false; } return true; } // 数字チェックを行う(小数含む。整数部10桁、小数部10桁、マイナス有り) function chkDecimal_L(str) { var nstr; if (str.charAt(0) == "-") { nstr = str.substr(1); } else { nstr = str; } if (chkDecimal_K(nstr) == false) { return false; } return true; } // 文字の長さを取得する function getLength(str) { var i, cnt = 0; for(i = 0; i < str.length; i++) { if (isZenkaku(str.charCodeAt(i)) == true) { cnt += 2; } else { cnt++; } } return cnt; } // 2byte文字が含まれているかチェック function chk2byte(str) { var i; for(i = 0; i < str.length; i++) { if (isZenkaku(str.charCodeAt(i)) == true) { return true; // 2byte文字が含まれている } } return false; // 2byte文字は含まれていない } // 全て2byteかチェック function chkAll2byte(str) { var i; for(i = 0; i < str.length; i++) { if (isZenkaku(str.charCodeAt(i)) == false) { return false; } } return true; } // isUndefined function isUndefined(obj) { if (obj.toString() == "undefined") { return true; } return false; } // chkChar function chkChar(str, chkstr) { var flag = false; var i = 0, j = 0; for (i = 0; i < str.length; i++) { flag = false; for(j = 0; j < chkstr.length; j++) { if (str.charAt(i) == chkstr.charAt(j)) { flag = true; break; } } if (flag != true) { return false; } } return true; } // chkDot function chkDot(str) { var first, last; first = str.indexOf("."); last = str.lastIndexOf("."); if (first == last) { return true; } return false; } // chkFormat function chkFormat(str, left, right) { var dot = str.indexOf("."); if (dot == -1) { // 小数点なし if (str.length > left) { return false; } return true; } if (dot > left) { return false; } if ((str.length - dot) > (right + 1)) { return false; } return true; } // isZenkaku function isZenkaku(code) { // ASCIIコード if ((code != 0x9 || code != 0x0A || code != 0x0D || code != 0x20) && (code <= 0x7F)) { return false; } // 半角カナチェック if ((code >= 0xFF6C && code <= 0xFF9F) || (code >= 0xFF66 && code <= 0xFF6B) || (code >= 0xFF61 && code <= 0xFF63) && (code != 0x30FB)) { return false; } return true; } // ブラウザ function getAppName() { return navigator.appName; } ///////////////////////////////////////////////// // エラー表示 ///////////////////////////////////////////////// function dispLengthErr(min, max) { if (min == max) { alert(min + "バイトの値を入力してください"); } else{ alert(min + "バイト〜" + max + "バイトの値を入力してください"); } } function dispRangeErr(min, max) { alert(min + "〜" + max + "の範囲の値を入力してください"); } //////////////////////////////////////////////////////////// // PAGE CONTROLLER FUNCTION //////////////////////////////////////////////////////////// /* * ページ制御 * * param formobj フォームオブジェクト * param row 検索開始行 */ function pageLink( formobj, row ) { formobj.orteusBeginRow.value = row; formobj.submit(); } //yy 2005/04/08 add start /** * 機種依存文字チェック * * 引数文字列に機種依存文字があるかどうかチェックを行う。 * * @param チェック対象文字列 * @return 機種依存文字が存在しない場合はtrue、存在する場合はfalse * * 使用例 サブルーチン扱いの為、単体では使用しない。 */ function checkPlatformDependentCharacters(str) { var characters=""; /* var characters=",〜①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ¬¦'""; characters=characters.concat("㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡㍻∮∑∟⊿〝〟№㏍"); characters=characters.concat("℡㊤㊥㊦㊧㊨㈱㈲㈹㍾㍽㍼纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒"); characters=characters.concat("侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎"); characters=characters.concat("咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓"); characters=characters.concat("﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻"); characters=characters.concat("昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳"); characters=characters.concat("橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏"); characters=characters.concat("焄煜煆煇凞燁燾犱犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛"); characters=characters.concat("皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢"); characters=characters.concat("荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸"); characters=characters.concat("遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕"); characters=characters.concat("鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗"); characters=characters.concat("顥飯飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鶴鸙黑"); */ for(var i=0; i= 0; i--) { if(document.activeElement == document.all(i)){ if (("INPUT" == document.all(i).tagName && "text" == document.all(i).type) || ("INPUT" == document.all(i).tagName && "textarea" == document.all(i).type) || ("INPUT" == document.all(i).tagName && "password" == document.all(i).type) || ("INPUT" == document.all(i).tagName && "image" == document.all(i).type)){ if (keyCode == 13) { //alert("Enter"); return false; } if (keyCode == 9) { //alert("Tab"); //return false; return true; } } //alert(document.all(i).type); if (! ("INPUT" == document.all(i).tagName && "text" == document.all(i).type) && ("textarea" != document.all(i).type) && ("password" != document.all(i).type)){ switch( keyCode ) { // 'BackSpace'キーの無効化 case 8 : // 'BackSpace'キー return false; // 'Alt'キー+'←'('→')キーの無効化 case 37 : // '←'キー case 39 : // '→'キー return ( !event.altKey ); // 'Ctrl'キー+'N'キーの無効化 case 78 : // 'N'キー return ( !event.ctrlKey ); default : return true; } } } } return true; } //yy 2005/07/01 end var subWin; var SUBWINDOW_STATUS = "width=700,height=500,location=no,directories=no,menubar=yes,toolbar=no,scrollbars=yes,resizable=yes,status=yes"; /* 画面サイズ変更 */ function ResizeToMax(obj) { //yy 2007/03/06 start //var sWidth = obj.screen.availWidth; //var sHeight = obj.screen.availHeight; // obj.resizeTo(1024,768); // obj.moveTo(0,0); //yy 2007/03/06 end obj.focus(); } /* 表示メッセージ */ function load() { //alert("load!"); ResizeToMax(self); if (subWin != null && !subWin.closed && subWin.opener.name == self.name ) { //subWin.focus(); subWin.close(); } } /* 画面クローズ */ window.onunload = function() { if (calendarwin != null && !calendarwin.closed && calendarwin.opener.name == self.name ) { calendarwin.close(); } if (subWin != null && !subWin.closed && subWin.opener.name == self.name ) { subWin.close(); } //yy 2007/04/03 start // if (window.opener) { if (window.opener && window.name == "subwin") { //alert(window.name); // window.opener.openFormClear(); } //yy 2007/04/03 end } /** * 検索子画面を呼び出します。
* 予め親画面に用意した、子画面独自のフォーム(WindowOpenForm) * に対して、HTTP の POST メソッドでサーバに送信します。 * * @param {Element} obj 本関数を呼び出したボタンオブジェクトもしくはフォームオブジェクト * @param {String} funcCd 呼び出す子画面の業務ID * @param {Array} args 子画面から値を返す項目のフィールド名の配列。 * @param {Array} rets 子画面から値を返す親画面のフィールド名の配列。 */ function openSearchWindow(obj, funcCd, args, rets) { if (subWin != null && !subWin.closed && subWin.opener.name == self.name ) { subWin.close(); } // 業務IDの引渡し elm = createInputElement('hidden', '_GMCD', funcCd); document.WindowOpenForm.appendChild(elm); // フォームオブジェクトの取得 var formObj = ( obj.action != undefined ) ? obj : obj.form; // フォームオブジェクトへのパラメータの追加 var elm = createInputElement('hidden', 'Form_Name', formObj.name); document.WindowOpenForm.appendChild(elm); // 引数 … args[n] for (i = 0; i < args.length; i++) { elm = createInputElement('hidden', 'itemId_' + i, args[i]); document.WindowOpenForm.appendChild(elm); } // 戻り値 … rets[n] for (i = 0; i < rets.length; i++) { elm = createInputElement('hidden', 'rtnField_' + i, rets[i]); document.WindowOpenForm.appendChild(elm); } subWin = window.open('about:blank', 'subwin', SUBWINDOW_STATUS); subWin.opener = self; document.WindowOpenForm.target = "subwin"; document.WindowOpenForm.submit(); subWin.focus(); setTimeout(afterFocus, 500); } function afterFocus() { //alert("afterFocus"); if (subWin != null && !subWin.closed) subWin.focus(); } function winFocus(){ window.focus(); } if (window.opener && window.name == "subwin") { // window.onload=winFocus; // window.onblur=winFocus; } function createInputElement(type, name, value) { var elm = document.createElement("input"); elm.setAttribute("type", type); elm.setAttribute("name", name); elm.setAttribute("value", value); return elm; } function searchWindowAddParam(name, value) { var elm = createInputElement('hidden', name, value); document.WindowOpenForm.appendChild(elm); } function searchWindowAddParamAry(names, values) { openFormClear(); for (i = 0; i < names.length; i++) { var elm = createInputElement('hidden', names[i], values[i]); document.WindowOpenForm.appendChild(elm); } } function searchWindowAddParamAryObj(names, objs) { for (i = 0; i < names.length; i++) { //if (objs[i]) { if (objs[i] && objs[i].value != '' && objs[i].value != undefined) { var elm = createInputElement('hidden', names[i], objs[i].value); document.WindowOpenForm.appendChild(elm); //document.WindowOpenForm.insertBefore(elm, document.WindowOpenForm.item(0)); } } } /* function searchWindowAddParamAryObj(names, objs) { for (i = 0; i < names.length; i++) { // if (objs[i] && objs[i].value != '' && objs[i].value != undefined) { //alert(names[i] + " " + objs[i].value); // if (document.WindowOpenForm.getElementById(names[i])) { //alert(names[i] + " " + objs[i].value); // //var elm = eval("document.WindowOpenForm." + names[i]); // var elm = document.WindowOpenForm.getElementById(names[i]); // elm.value = objs[i].value; // } // else { var elm = createInputElement('hidden', names[i], objs[i].value); document.WindowOpenForm.appendChild(elm); // } // } } } */ function openFormClear() { if (window.opener && window.name == "subwin") { window.opener.openFormClear(); return; } var len = document.WindowOpenForm.elements.length; //alert("length all:" + document.WindowOpenForm.elements.all.length + " elm:" + document.WindowOpenForm.elements.length); for (i = len - 1; i >= 0; i--) { var elm = document.WindowOpenForm.elements[i]; if (elm == undefined) continue; //alert("openFormClear# tagName:" + elm.tagName + " name:" + elm.getAttribute("name") + " value:" + elm.getAttribute("value")); if (elm.getAttribute("tagName") == "INPUT") document.WindowOpenForm.removeChild(elm); } } document.oncontextmenu = noright; function noright(){ //alert("コンテキストメニューは利用できません。"); //return false; } //yy 2007/01/24 end //yy 2007/06/21 start // var WINDOW_STATUS = "top=0,left=0,width=1024,height=768,location=no,directories=no,menubar=no,toolbar=no,scrollbars=yes,resizable=yes,status=yes"; var WINDOW_STATUS = "width=1024,height=768,location=no,directories=no,menubar=no,toolbar=no,scrollbars=yes,resizable=yes,status=yes"; //yy 2007/06/21 end //yy 2008/09/30 start function checkYM(obj) { if (obj == null) { return true; } if (isUndefined(obj) == true) { return true; } if (chkYM(obj.value) == false) { alert(CHECKERR[15]); obj.focus(); return false; } } function chkYM(date) { if(date.length == 0) return true; //YYYY/MMの年月形式(6桁)かどうかのチェックを行う if(date.length != 7) return false; var res = date.match(/^([0-9]{4})\/([0-9]{2})$/); if(res == null) return false; var year = RegExp.$1; var month = RegExp.$2; // var year = parseInt(date.substring(0,4), 10); // var month = parseInt(date.substring(4,6), 10); // 年チェック if(year < 1000 || year > 3000) { return false; } // 月チェック if(month < 1 || month > 12) { return false; } return true; } //yy 2008/09/30 end //yy 2008/10/14 start function checkHMS(obj) { if (obj == null) { return true; } if (isUndefined(obj) == true) { return true; } if (chkHMS(obj.value) == false) { alert(CHECKERR[16]); obj.focus(); return false; } } function chkHMS(time) { if(time.length != 8) return false; if(!time.match(/^([0-9]{2}):([0-9]{2}):([0-9]{2})$/)) { return false; } var hh = parseInt(RegExp.$1); var mm = parseInt(RegExp.$2); var ss = parseInt(RegExp.$3); if(0 > hh || 23 < hh) { return false; } if(0 > mm || 59 < mm) { return false; } if(0 > ss || 59 < ss) { return false; } return true; } function checkHM(obj) { if (obj == null) { return true; } if (isUndefined(obj) == true) { return true; } if (chkHM(obj.value) == false) { alert(CHECKERR[17]); obj.focus(); return false; } } function chkHM(time) { if(time.length != 5) return false; if(!time.match(/^([0-9]{2}):([0-9]{2})$/)) { return false; } var hh = parseInt(RegExp.$1); var mm = parseInt(RegExp.$2); if(0 > hh || 23 < hh) { return false; } if(0 > mm || 59 < mm) { return false; } return true; } //yy 2008/10/14 end function cursorMove(obj){ if (obj.value.length == 0) return; if (obj.createTextRange) { var rng = obj.createTextRange(); rng.moveStart("character", obj.value.length); rng.moveEnd("character", obj.value.length); rng.select(); } } function removeSlash(obj){ //alert("removeSlash"); var val = obj.value; if (val == '') return val; val = val.replace(/\//g,""); val = val.replace(/:/g,""); obj.value = val; cursorMove(obj); return val; } function removeSlashNoCursor(obj){ var val = obj.value; //alert(val); if (val == '') return val; val = val.replace(/\//g,""); val = val.replace(/:/g,""); obj.value = val; return val; } function editSlashYMD(obj){ if (obj == null) { return true; } if (isUndefined(obj) == true) { return true; } if(obj.value.length == 0) { return true; } removeSlashNoCursor(obj); if(obj.value.length != 8) { alert(CHECKERR[12]); obj.focus(); return false; } var time = obj.value; var edit = time.substring(0,4) + "/" + time.substring(4,6) + "/" + time.substring(6,8); obj.value = edit; if (! checkDate(obj)) return; } function editSlashYMDHMS(obj){ if (obj == null) { return true; } if (isUndefined(obj) == true) { return true; } if(obj.value.length == 0) { return true; } removeSlashNoCursor(obj); //if(chkInteger(obj.value) == false || obj.value.length != 15) { if(obj.value.length != 15) { alert(CHECKERR[13]); obj.focus(); return false; } var time = obj.value; var edit = time.substring(0,4) + "/" + time.substring(4,6) + "/" + time.substring(6,8); edit += time.substring(8,11) + ":" + time.substring(11,13) + ":" + time.substring(13,15); obj.value = edit; if (! checkDate2(obj)) return; } function editSlashYM(obj){ if (obj == null) { return true; } if (isUndefined(obj) == true) { return true; } if(obj.value.length == 0) { return true; } removeSlashNoCursor(obj); if(obj.value.length != 6) { alert(CHECKERR[15]); obj.focus(); return false; } var time = obj.value; var edit = time.substring(0,4) + "/" + time.substring(4,6); obj.value = edit; if (! checkYM(obj)) return; } function editSlashHMS(obj){ if (obj == null) { return true; } if (isUndefined(obj) == true) { return true; } if(obj.value.length == 0) { return true; } removeSlashNoCursor(obj); if(obj.value.length != 6) { alert(CHECKERR[16]); obj.focus(); return false; } var time = obj.value; var edit = time.substring(0,2) + ":" + time.substring(2,4) + ":" + time.substring(4,6); obj.value = edit; if (! checkHMS(obj)) return; } function editSlashHM(obj){ if (obj == null) { return true; } if (isUndefined(obj) == true) { return true; } if(obj.value.length == 0) { return true; } removeSlashNoCursor(obj); if(obj.value.length != 4) { alert(CHECKERR[17]); obj.focus(); return false; } var time = obj.value; var edit = time.substring(0,2) + ":" + time.substring(2,4); obj.value = edit; if (! checkHM(obj)) return; }