/**************************************************************************/
/*  モジュール名    :   Common.js                                         */
/*  機能            :   JavaScript共通関数                                */
/*  作成日          :   2003/01/17                                        */
/*  作成者          :   株式会社　ソフト　D.Hayashi                       */
/**************************************************************************/
/*  更新履歴        :   9999/99/99  新規作成                              */
/**************************************************************************/

//==========================================================================
//  機能    :   テキストボックス フォーカス処理
//  引数    :   e           :   フォーカスエレメント
//          :   bFocus      :   フォーカス有無
//
// テキストボックスフォーカス用 定数
var TEXT_FOCUS_BCOLOR   = "#ffffcc";  //バックグラウンドカラー
var TEXT_BORDER_DCOLOR  = "#000000";  //デフォルトボーダーカラー
var TEXT_BORDER_COLOR   = "#000000";  //ボーダーカラー
//==========================================================================
function textFocus(e,bFocus){
  if(bFocus){
    e.defaultBorderColor = e.style.borderColor;
    e.defaultBackground = e.style.backgroundColor;
    e.style.borderColor = TEXT_BORDER_COLOR;
    e.style.backgroundColor = TEXT_FOCUS_BCOLOR;
    e.select();
  }else{
    e.style.backgroundColor = e.defaultBackground;
    e.style.borderColor = TEXT_BORDER_DCOLOR;
  }
}

//==========================================================================
//  機能    :   ボタン フォーカス処理
//  引数    :   e           :   フォーカスエレメント
//          :   bFocus      :   フォーカス有無
//
// ボタンフォーカス用 定数
var BTN_FOCUS_BCOLOR    = "#999999";  //バックグラウンドカラー
var BTN_FOCUS_DBCOLOR   = "#cccccc";  //デフォルトバックグラウンドカラー
var BTN_BORDER_DCOLOR   = "#000000";  //デフォルトボーダーカラー
var BTN_BORDER_COLOR    = "#000000";  //ボーダーカラー
//==========================================================================
function btnFocus(e,bFocus){
  if(bFocus){
    e.defaultBorderColor = e.style.borderColor;
    e.defaultBackground = e.style.backgroundColor;
    e.style.borderColor = BTN_BORDER_COLOR;
    e.style.backgroundColor = BTN_FOCUS_BCOLOR;
  }else{
    e.style.backgroundColor = BTN_FOCUS_DBCOLOR;
    e.style.borderColor = BTN_BORDER_DCOLOR;
  }
}

//==========================================================================
//  機能    :   タイトルメニュー マウス処理
//  引数    :   引数    ：  e           :   フォーカスエレメント
//          :           ：  bMouse      :   マウス有無
//
// タイトルメニューマウス処理用 定数
//var TITLE_MOUSEOVER_BCOLOR  = "#ff6633";  //文字色
var TITLE_MOUSEOVER_BCOLOR  = "#cc00cc";  //文字色
//==========================================================================
function titleMenu(e, bMouse){
  if(bMouse){
    e.defaultColor = e.style.color;
    e.style.color = TITLE_MOUSEOVER_BCOLOR;
  }else{
    e.style.color = e.defaultColor;
  }
}

//==========================================================================
//  機能    :   選択行 マウス処理
//  引数    :   e           :   マウスオーバーエレメント
//          :   bMouse      :   フォーカス有無
//
// 選択行マウス処理用 定数
var DATA_MOUSEOVER_BCOLOR = "#FFCC66";  //バックグラウンドカラー
var DATA_MOUSEOVER_COLOR  = "#000000";  //文字色
var DATA_BORDER_COLOR     = "#FFFFFF";  //ボーダーカラー
//==========================================================================
function selectRow(e, bMouse){
  if (bMouse){
    e.defaultBackground = e.style.backgroundColor;
    e.defaultColor = e.style.color;
    e.style.backgroundColor = DATA_MOUSEOVER_BCOLOR;
    e.style.color = DATA_MOUSEOVER_COLOR;
  }else{
    e.style.backgroundColor = e.defaultBackground;
    e.style.color = e.defaultColor;
  }
}

//==========================================================================
//  機能    :   メッセージを表示する
//  引数    :   msg         :   表示文字列
//          :   style       :   (0)注意  (1)エラー
//==========================================================================
function dispMsg(msg,style) {
  if (msg != "") {
    alert(msg);
  }
  return;
}

//==========================================================================
//  機能    :   文字列の両端の空白を削除する
//  引数    :   strTemp     :   対象文字列
//==========================================================================
function Trim(strTemp) {
  return RTrim(LTrim(strTemp));
}

//==========================================================================
//  機能    :   文字列の右端の空白を削除する
//  引数    :   strTemp     :   対象文字列
//==========================================================================
function RTrim(strTemp) {
  var nLoop = 0;
  var strReturn = strTemp;
  while (nLoop < strTemp.length)
  {
    if ((strReturn.substring(strReturn.length - 1, strReturn.length) == " ") || (strReturn.substring(strReturn.length - 1, strReturn.length) == "　")) {
      strReturn = strTemp.substring(0, strTemp.length - (nLoop + 1));
    } else {
      break;
    }
    nLoop++;
  }
  return strReturn;
}

//==========================================================================
//  機能    :   文字列の左端の空白を削除する
//  引数    :   strTemp     :   対象文字列
//==========================================================================
function LTrim(strTemp) {
  var nLoop = 0;
  var strReturn = strTemp;
  while (nLoop < strTemp.length)
  {
    if ((strReturn.substring(0, 1) == " ") || (strReturn.substring(0, 1) == "　")) {
      strReturn = strTemp.substring(nLoop + 1, strTemp.length);
    } else {
      break;
    }
    nLoop++;
  }
  return strReturn;
}

//==========================================================================
//  機能    :   文字列の置換
//  引数    :   strTemp     :   対象文字列
//          :   strFind     :   置換文字列
//          :   strRep      :   置換文字列
//==========================================================================
function Replace(strTemp, strFind, strRep) {
  var len;
  var data = strTemp;
    do {
      len = data.length;
      data = data.replace(strFind,strRep);
      if (len != data.length) {
        continue;
      }
    } while(len != data.length);
  return data;
  
}

//==========================================================================
//  機能    :   日付オブジェクトを yyyy/mm/dd にフォーマットする
//  引数    :   dd      :   対象文字列
//==========================================================================
function formatDate(dd) {
  var y = dd.getFullYear();
  var m = dd.getMonth() + 1;
  var d = dd.getDate();

  if (m < 10) { m = "0" + m; }
  if (d < 10) { d = "0" + d; }

  return y + "/" + m + "/" + d;
}

//==============================================================================
// 関数名   : formatWaDate
// 機能     : 日付オブジェクトを 和暦形式にフォーマットする
// 引数     : I     :vdate                  : 対象文字列
//          : I     :vmode                  : 変更モード(メモ参照)
//          : I     :vin                    : 入力形式(メモ参照)
// 戻り値   : 変換後日付
// 作成日   : 2002/03/13
// 作成者   : 株式会社  ソフト  D.Hayashi
// メモ     : vmodeの設定値(和暦のモード)
//          : 0     : Ex.平成YY年MM月DD日
//          : 1     : Ex.HYY/MM/DD
//          : vinの設定値
//          : 0     : 西暦から和暦へ変換
//          : 1     : 和暦から西暦へ変換
//          : 西暦はyyyy/mm/ddフォーマットされているとする
//          : 和暦は明治から対応
//------------------+-----------------------+------------------------------------
// 更新履歴 : 9999/99/99  : 新規作成
//==+=======================+=======================+===========================
function formatWaDate(vdate, vmode, vin) {
	var yy;
	var mm;
	var dd;
	var sreturn;
	var bbig;
	
	// 西暦から和暦に変換する
	if (vin == 0) {
		yy = vdate.getFullYear();
		mm = vdate.getMonth() + 1;
		dd = vdate.getDate();
		if (yy > 1989) {
			if (vmode == 0 ) {
				sreturn = "平成";
				yy = yy - 1988;
			}
			else {
				sreturn = "H";
				yy = yy - 1988;
			}
		}
		else if (yy > 1926 && yy < 1989) {
			if (vmode == 0 ) {
				sreturn = "昭和";
				yy = yy - 1925;
			}
			else {
				sreturn = "S";
				yy = yy - 1925;
			}
		}
		else if (yy > 1912 && yy < 1926) {
			if (vmode == 0 ) {
				sreturn = "大正";
				yy = yy - 1911;
			}
			else {
				sreturn = "T";
				yy = yy - 1911;
			}
		}
		else if (yy > 1868 && yy < 1912) {
			if (vmode == 0 ) {
				sreturn = "明治";
				yy = yy - 1867;
			}
			else {
				sreturn = "M";
				yy = yy - 1867;
			}
		}
		else if (yy == 1989) {
			if (mm > 1) {
				bbig = true;
			}
			else if ( dd > 7) {
				bbig = true;
			}
			else {
				bbig = false;
			}
			if (vmode == 0 ) {
				if (bbig) {
					sreturn = "平成元";
					yy = "";
				}
				else {
					sreturn = "昭和";
					yy = yy - 1925;
				}
			}
			else {
				if (bbig) {
					sreturn = "H";
					yy = 1;
				}
				else {
					sreturn = "S";
					yy = yy - 1925;
				}
			}
		}
		else if (yy == 1926) {
			if (mm < 12) {
				bbig = false;
			}
			else if ( dd > 24) {
				bbig = true;
			}
			else {
				bbig = false;
			}
			if (vmode == 0 ) {
				if (bbig) {
					sreturn = "昭和元";
					yy = "";
				}
				else {
					sreturn = "大正";
					yy = yy - 1911;
				}
			}
			else {
				if (bbig) {
					sreturn = "S";
					yy = 1;
				}
				else {
					sreturn = "T";
					yy = yy - 1911;
				}
			}
		}
		else if (yy == 1912) {
			if (mm > 7) {
				bbig = true;
			}
			else if ( mm == 7 && dd > 29) {
				bbig = true;
			}
			else {
				bbig = false;
			}
			if (vmode == 0 ) {
				if (bbig) {
					sreturn = "大正元";
					yy = "";
				}
				else {
					sreturn = "明治";
					yy = yy - 1867;
				}
			}
			else {
				if (bbig) {
					sreturn = "T";
					yy = 1;
				}
				else {
					sreturn = "M";
					yy = yy - 1867;
				}
			}
		}
		else if (yy == 1868) {
			if (mm > 9) {
				bbig = true;
			}
			else if ( mm == 9 && dd > 7) {
				bbig = true;
			}
			else {
				bbig = false;
			}
			if (vmode == 0 ) {
				if (bbig) {
					sreturn = "明治元";
					yy = "";
				}
				else {
				}
			}
			else {
				if (bbig) {
					sreturn = "M";
					yy = 1;
				}
				else {
				}
			}
		}
		if (yy < 10) { yy = "0" + yy; }
		if (mm < 10) { mm = "0" + mm; }
		if (dd < 10) { dd = "0" + dd; }
		if (vmode == 0 ) {
			return sreturn + yy + "年" + mm + "月" + dd + "日";
		}
		else {
			return sreturn + yy + "/" + mm + "/" + dd;
		}
	}
	else {
		if ( vmode == 0) {
			sreturn = vdate.substr(0,2);
			if (sreturn.toUpperCase() == "平成") {
				yy = Number(vdate.substr(2,2)) + 1988;
				mm = vdate.substr(5,2);
				dd = vdate.substr(8,2);
			}
			else if (sreturn.toUpperCase() == "昭和") {
				yy = Number(vdate.substr(2,2)) + 1925;
				mm = vdate.substr(5,2);
				dd = vdate.substr(8,2);
			}
			else if (sreturn.toUpperCase() == "大正") {
				yy = Number(vdate.substr(2,2)) + 1911;
				mm = vdate.substr(5,2);
				dd = vdate.substr(8,2);
			}
			else if (sreturn.toUpperCase() == "明治") {
				yy = Number(vdate.substr(2,2)) + 1867;
				mm = vdate.substr(5,2);
				dd = vdate.substr(8,2);
			}
			else {	// 西暦とする
				return vdate;
			}
			return yy + "/" + mm + "/" + dd;
		}
		else {
			sreturn = vdate.substr(0,1);
			if (sreturn.toUpperCase() == "H") {
				yy = Number(vdate.substr(1,2)) + 1988;
				mm = vdate.substr(4,2);
				dd = vdate.substr(7,2);
			}
			else if (sreturn.toUpperCase() == "S") {
				yy = Number(vdate.substr(1,2)) + 1925;
				mm = vdate.substr(4,2);
				dd = vdate.substr(7,2);
			}
			else if (sreturn.toUpperCase() == "T") {
				yy = Number(vdate.substr(1,2)) + 1911;
				mm = vdate.substr(4,2);
				dd = vdate.substr(7,2);
			}
			else if (sreturn.toUpperCase() == "M") {
				yy = Number(vdate.substr(1,2)) + 1867;
				mm = vdate.substr(4,2);
				dd = vdate.substr(7,2);
			}
			else {	// 西暦とする
				return vdate;
			}
			return yy + "/" + mm + "/" + dd;
		}
		
	}
}

/* ======================================================================
 * ボタンのイベントハンドラ
 * ====================================================================== */

//==========================================================================
//  入力チェック系
//==========================================================================
//==========================================================================
//  機能    :   テキストボックス入力チェック（日付）
//  引数    :   textbox     :   テキストボックス
//          :   required    :   必須チェック
//          :   name        :   対象名称
//==========================================================================
function checkDate(textbox, required, name) {

  if (required) {
    if (!checkRequiredTextBox(textbox, name)) {
      return false;
    }
  } else if (Trim(textbox.value) == "") {
    return true;
  }
  
  //  フォーマットチェック
  //var datePat = /^(\d{2}|\d{4})(\/)(\d{1,2})\2(\d{1,2})$/;  // ← 年２桁入力を許可する
  var datePat = /^(\d{4})(\/)(\d{1,2})\2(\d{1,2})$/;          // ← 年２桁入力を許可しない
  var matchArray = textbox.value.match(datePat);
  if (matchArray == null) {
    dispMsg("入力形式が正しくありません", 0);
       return false;
  }

  //  要素の分離
  var year  = matchArray[1];
  var month = matchArray[3];
  var day = matchArray[4];

  //  年の範囲チェック
  if (year < 1753) {
    dispMsg("年は １７５３年以降 を入力してください", 0);
    return false;
  }

  //  月の範囲チェック
  if (month < 1 || month > 12) {
    dispMsg("月は １〜１２ を入力してください", 0);
    return false;
  }
  //  日の範囲チェック
  if (day < 1 || day > 31) {
    dispMsg("日は １〜３１ を入力してください", 0);
    return false;
  }

  //  妥当性チェック
  if ((month == 4 || month == 6 || month == 9 || month == 11) && day == 31) {
    dispMsg("日付が正しくありません", 0);
        return false;
  }

  //  閏年チェック
  if (month == 2) {
    var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
    if (day > 29 || (day == 29 && !isleap)) {
      dispMsg("日付が正しくありません", 0);
      return false;
    }
  }

  //  すべて正常
  textbox.value = formatDate(new Date(textbox.value));
  return true;
}

//==========================================================================
//  機能    :   日付範囲チェック
//  引数    :   startDate   :   開始日
//          :   stopDate    :   終了日
//==========================================================================
function checkDateRange(startDate, stopDate){
  if (startDate.value.length > 0 && stopDate.value.length > 0){
    
    var dteStart = new Date(startDate.value);
    var dteStop = new Date(stopDate.value);
    
    if (dteStart > dteStop) {
      dispMsg("日付の範囲が正しくありません", 0);
      return false;
    }
  }
  return true;
}

//==========================================================================
//  機能    :   テキストボックスチェック
//  引数    :   textBox     :   テキストボックス
//          :   required    :   必須チェック
//          :   length      :   長さ
//          :   name        :   対象名称
//==========================================================================
function checkTextbox(textBox, required, length, name) {
  //必須チェックをラッピングしています。
  if (required) {
    if (!checkRequiredTextBox(textBox, name)) {
      return false;
    }
  }
    
  if (textBox.length > length) {
    dispMsg(name + "の文字数が長すぎます", 0);
    textBox.focus();
    return false;
  }
  return true;
}

//==========================================================================
//  機能    :   テキストボックス必須チェック
//  引数    :   textBox     :   テキストボックス
//          :   name        :   対象名称
//==========================================================================
function checkRequiredTextBox(textbox, name) {

  if (Trim(textbox.value) == "") {
    dispMsg(name + "が未入力です。", 0);
    textbox.focus();
       return false;
  }

  //  すべて正常
  return true;
}

//==========================================================================
//  機能    :   ドロップダウンボックス必須チェック
//  引数    :   selectbox   :   リストボックス
//          :   name        :   対象名称
//==========================================================================
function checkRequiredSelectBox(selectbox, name) {

  if (selectbox.value == "") {
    dispMsg(name + "が未選択です。", 0);
    selectbox.focus();
       return false;
  }

  //  すべて正常
  return true;
}

//==========================================================================
//  機能    :   チェックボックス必須チェック（※nameを引数にする）
//  引数    :   checkbox    :   チェックボックス
//          :   name        :   対象名称
//==========================================================================
function checkRequiredCheckBox(checkbox, name) {

  var c = false;
  var i;
  
  for (i=0;i<document.f[checkbox].length;i++) {
    if (document.f[checkbox][i].checked == true) {
      c = true;
      break;
    }
  }    
  
  if (!c) {
    dispMsg(name + "が未選択です。", 0);
    document.f[checkbox][0].focus();
       return false;
  }

  //  すべて正常
  return true;
}

//==========================================================================
//  機能    :   チェックボックスの選択値を返す（※nameを引数にする） 
//  引数    :   radio       :   オプションボタン
//==========================================================================
function getCheckedValue(radio) {

  var i;
  
  for (i=0;i<document.f[radio].length;i++) {
    if (document.f[radio][i].checked == true) {
      return document.f[radio][i].value;
    }
  }    

  return null;
}

//==========================================================================
//  機能    :   テキストボックス入力チェック（時間）
//  引数    :   textbox     :   テキストボックス
//          :   required    :   必須チェック
//          :   name        :   対象名称
//  備考    :   時要素：hh
//          :   分要素：mm
//          :   区切  [:]
//==========================================================================
function checkTime(textbox, required, name) {

  if (required) {
    if (!checkRequiredTextBox(textbox, name)) {
      return false;
    }
  } else if (Trim(textbox.value) == "") {
    return true;
  }

  //  フォーマットチェック
  var datePat = /^(\d{2})(\:)(\d{2})$/;
  var matchArray = textbox.value.match(datePat);
  if (matchArray == null) {
    dispMsg("入力形式が正しくありません。　例）07:05", 0);
    textbox.focus();
       return false;
  }

  //  要素の分離
  var hour = matchArray[1];
  var minute = matchArray[3];

  //  時の範囲チェック
  if (hour < 0 || hour > 23) {
    dispMsg("時は ００〜２３ を入力してください", 0);
    textbox.focus();
    return false;
  }
  //  分の範囲チェック
  if (minute < 0 || minute > 59) {
    dispMsg("分は ００〜５９ を入力してください", 0);
    textbox.focus();
    return false;
  }

  //  すべて正常
  return true;
}

//==========================================================================
//  機能    :   テキストボックス入力チェック（整数値）
//  引数    :   textbox     :   テキストボックス
//          :   required    :   必須チェック
//          :   name        :   対象名称
//==========================================================================
function checkNum(textbox, required, name) {

  if (required) {
    if (!checkRequiredTextBox(textbox, name)) {
      return false;
    }
  } else if (Trim(textbox.value) == "") {
    return true;
  }

  //  フォーマットチェック
  var pat = /^(\d+)$/;
  var matchArray = textbox.value.match(pat);
  if (matchArray == null) {
    dispMsg(name + "には半角数字を入力してください。　例）123", 0);
    textbox.focus();
       return false;
  }

  //  すべて正常
  return true;
}

//==========================================================================
//  機能    :   テキストボックス入力チェック（IPアドレス）
//  引数    :   textbox     :   テキストボックス
//          :   required    :   必須チェック
//          :   name        :   対象名称
//==========================================================================
function checkIPAddress(textbox, required, name) {

  if (required) {
    if (!checkRequiredTextBox(textbox, name)) {
      return false;
    }
  } else if (Trim(textbox.value) == "") {
    return true;
  }

  //  フォーマットチェック
  var pat = /^(\d{1,3})(\.)(\d{1,3})\2(\d{1,3})\2(\d{1,3})$/;
  var matchArray = textbox.value.match(pat);

  if ((matchArray == null)
    || (matchArray[1] < 0 || matchArray[1] > 255) || (matchArray[3] < 0 || matchArray[3] > 255) || (matchArray[4] < 0 || matchArray[4] > 255) || (matchArray[5] < 0 || matchArray[5] > 255)) {

    dispMsg("入力形式が正しくありません　例）0.0.0.0 〜 255.255.255.255", 0);
    textbox.focus();
       return false;
  }

  //  すべて正常
  return true;
}

//==========================================================================
//  機能    :   テキストボックス入力チェック（メールアドレス）
//  引数    :   textbox     :   テキストボックス
//          :   required    :   必須チェック
//          :   name        :   対象名称
//==========================================================================
function checkMailAddress(textbox, required, name) {

  if (required) {
    if (!checkRequiredTextBox(textbox, name)) {
      return false;
    }
  } else if (Trim(textbox.value) == "") {
    return true;
  }
//  var pat = /^([\w_\-]+)(\.?)([\w_\-]+)@([\w_\-]+)\.([\w_\-]+)(\.?)([\w_\-]*)([a-z]*)[a-z]$/;
  var pat = /^([\w_\.\-]*)[\w_\-]@([\w_\-]+)\.([\w_\.\-]*)[a-z][a-z]$/;
//  var pat = /^([\w\.\-]+)@([\w_\-]+)\.([\w_\.\-]*)[a-z][a-z]$/;
  var matchArray = textbox.value.match(pat);

  if (matchArray == null) {
    dispMsg("入力形式が正しくありません　例）hoge@foo.co.jp", 0);
    textbox.focus();
       return false;
  }

  pat = /(.+)\.\.(.+)$/;
  matchArray = textbox.value.match(pat);
  if (matchArray == null) {
    pat = /^\.|\.$/;
    matchArray = textbox.value.match(pat);
    if (matchArray == null) {
      //  すべて正常
      return true;
    }
    else {
      dispMsg("入力形式が正しくありません　例）hoge@foo.co.jp", 0);
      textbox.focus();
         return false;
    }
  }
  else {
    dispMsg("入力形式が正しくありません　例）hoge@foo.co.jp", 0);
    textbox.focus();
       return false;
  }

  //  すべて正常
  return true;

}

//==========================================================================
//  機能    :   テキストボックス入力チェック（URL）
//  引数    :   textbox     :   テキストボックス
//          :   required    :   必須チェック
//          :   name        :   対象名称
//==========================================================================
function checkURL(textbox, required, name) {

  if (required) {
    if (!checkRequiredTextBox(textbox, name)) {
      return false;
    }
  } else if (Trim(textbox.value) == "") {
    return true;
  }

  //  フォーマットチェック
  var pat = /^(\w+):\/\/([\w\.\-]+)\/([\w~]+\/)*((\w+\..+)|)$/;
  var matchArray = textbox.value.match(pat);

  if (matchArray == null) {
    dispMsg("入力形式が正しくありません　例）http://www.somedomain.co.jp/", 0);
    textbox.focus();
    return false;
  }

  //  すべて正常
  return true;
}

//==========================================================================
//  機能    :   テキストボックス入力チェック（コード）
//  引数    :   textbox     :   テキストボックス
//          :   required    :   必須チェック
//          :   name        :   対象名称
//==========================================================================
function checkCode(textbox, required, name) {

   if (required) {
    if (!checkRequiredTextBox(textbox, name)) {
      return false;
    }
  } else if (Trim(textbox.value) == "") {
    return true;
  }

  //  フォーマットチェック
   var pat = /^(\d{4})$/;
  var matchArray = textbox.value.match(pat);
  if (matchArray == null) {
    dispMsg("数値４桁で入力してください。　例）1234", 0);
    textbox.focus();
    return false;
  }
  //  すべて正常
   return true;
}

//==========================================================================
//  機能    :   テキストボックス入力チェック（電話番号）
//  引数    :   textbox     :   テキストボックス
//          :   required    :   必須チェック
//          :   name        :   対象名称
//==========================================================================
function checkPhone(textbox, required, name) {

   if (required) {
    if (!checkRequiredTextBox(textbox, name)) {
      return false;
    }
  } else if (Trim(textbox.value) == "") {
    return true;
  }

  //  フォーマットチェック
   var pat = /^(\d+\-\d+\-\d+|\d+\-\d{4})$/;
  var matchArray = textbox.value.match(pat);
  if (matchArray == null) {
    dispMsg("入力形式が正しくありません。　例）076-123-4567", 0);
    textbox.focus();
    return false;
  }
  //  すべて正常
   return true;
}

//==========================================================================
//  機能    :   テキストボックス入力チェック（郵便番号）
//  引数    :   textbox     :   テキストボックス
//          :   required    :   必須チェック
//          :   name        :   対象名称
//==========================================================================
function checkZipcode(textbox, required, name) {

  if (required) {
    if (!checkRequiredTextBox(textbox, name)) {
      return false;
    }
  } else {
    if (textbox.value == "") {
      return true;
    }
  }
  
  //  フォーマットチェック
  var pat = /^\d{3}-\d{4}$/;
  var matchArray = textbox.value.match(pat);
  
  if (matchArray == null) {
    dispMsg("入力形式が正しくありません　例）123-4567", 0);
    textbox.focus();
       return false;
  }
  
  //  すべて正常
  return true;
}

//==========================================================================
//  機能    :   テキストエリア入力チェック（コメント）
//  引数    :   textarea    :   テキストボックス
//==========================================================================
function checkComment(textarea) {
  if (textarea.innerHTML.length > 256) {
    dispMsg("文字列が長すぎます。", 0);
    textarea.focus();
    return false;
  }
  //  すべて正常
  return true;
}

//==========================================================================
//  機能    :   テキストボックス入力チェック（パスワード）
//  引数    :   textbox     :   テキストボックス
//          :   required    :   必須チェック
//          :   lmax        :   最大文字数
//          :   lmin        :   最小文字数
//          :   name        :   対象名称
//==========================================================================
function checkPassword(textbox, required,lmax, lmin, name) {

   if (required) {
    if (!checkRequiredTextBox(textbox, name)) {
      return false;
    }
  } else if (Trim(textbox.value) == "") {
    return true;
  }

  //  フォーマットチェック
   var pat = /^([-_0-9A-Za-z]+)$/;
  var matchArray = textbox.value.match(pat);
  if (matchArray == null) {
    dispMsg("パスワードに使用できない文字が含まれています。", 0);
    textbox.focus();
    return false;
  }

	//  文字数チェック
  if (Trim(textbox.value).length > lmax) {
    dispMsg(name + "の文字数が長すぎます。" + "\r\n" + "最大文字数は" + lmax + "です。", 0);
    textbox.focus();
    return false;
  }
  
  if (Trim(textbox.value).length < lmin) {
    dispMsg(name + "の文字数が短すぎます。" + "\r\n" + "最小文字数は" + lmin + "です。", 0);
    textbox.focus();
    return false;
  }
  //  すべて正常
  return true;
} 

//==========================================================================
//  機能    :   テキストボックス入力チェック（パスワード１，２）
//==========================================================================
function checkPasswords(textBox1, textBox2, name1, name2) {

  if (!checkRequiredTextBox(textBox1, name1)) {
    return false;
  }
  if (!checkRequiredTextBox(textBox2, name2)) {
    return false;
  }
  if (textBox1.value != textBox2.value) {   
    dispMsg("パスワードが違います", 0);
    textBox1.focus();
    return false;
  }

  //  すべて正常
  return true;
}

function js_backPage(URL) {
  if(URL=="history"){
    history.back();
    return true
  }else{
    location.href = URL;
    return true
  }
}

//==========================================================================
//  機能    :   テキストエリア必須チェック
//  引数    :   textarea    :   テキストエリア
//          :   name        :   対象名称
//==========================================================================
function checkRequiredTextArea(textarea, name) {
  var data

  if (Trim(textarea.value).length == 0) {
    dispMsg(name + "が未入力です。", 0);
    textarea.focus();
    return false;
  }
  else {
    data = Replace(textarea.value,"\r\n","");
    if (Trim(data).length == 0) {
      dispMsg(name + "が未入力です。", 0);
      textarea.value = "";
      textarea.focus();
      return false;
    }
  }
  //  すべて正常
  return true;
}

