// エラーメッセージ内容
var message ="";

// 未入力項目リスト
var empty_list = "";

// エラー発生判別フラグ
var error_flg = false;

var UTFesc = "\u3042"

// エラーチェックの初期化
//
function initCheck() {
  self.message = "";
  self.empty_list = "";
  self.error_flg = false;
}

// エラーメッセージの生成
//
function createMessage() {
  self.message = getEmptyItemMsg() + self.message;
}

function createMessage2() {
  self.message = getEmptyItemMsg2() + self.message;
}
// エラーメッセージの追加
//
function appendMsg(msg) {
   self.message += msg +"\n";
}

// 未入力項目の追加
//
function appendEmptyItem(msg) {
   self.empty_list += msg +"\n";
}

// 未入力項目メッセージ取得
//
function getEmptyItemMsg() {
   if(empty_list.length > 0) {
  if(UTFesc.length == 1){
     return "\u4EE5\u4E0B\u306E\u9805\u76EE\u304C\u5165\u529B\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\n" + self.empty_list +"\n";
  }else{
     return "%88%C8%89%BA%82%CC%8D%80%96%DA%82%AA%93%FC%97%CD%82%B3%82%EA%82%C4%82%A2%82%DC%82%B9%82%F1%81B\n" + self.empty_list +"\n";
  }
  //return "以下の項目が入力されていません。\n" + self.empty_list +"\n";
   } else {
  return "";
   }
}

// 未入力項目メッセージ取得
//
function getEmptyItemMsg2() {
   if(empty_list.length > 0) {
  if(UTFesc.length == 1){
     return "\u4EE5\u4E0B\u306E\u9805\u76EE\u304C\u5165\u529B\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\n" + self.empty_list;
  }else{
     return "%88%C8%89%BA%82%CC%8D%80%96%DA%82%AA%93%FC%97%CD%82%B3%82%EA%82%C4%82%A2%82%DC%82%B9%82%F1%81B\n" + self.empty_list;
  }
  //return "以下の項目が入力されていません。\n" + self.empty_list;
   } else {
  return "";
   }
}

// 空文字であるかをチェック
//
// @param element : チェックするフォームパラメータ
// @return 空であればtrue
function isEmpty(element) {

  if(element.value == "") {
  return true;
  } else {
  return false;
  }
}

// 半角文字であるかをチェック
//
// @param 入力した文字列
// @return 半角ならtrue、でなければfalse
//
function isByteString(input, allow_spc)
{
  var standard = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
  var i;
  var j;

  for (i=0; i<input.length; i++)
  {
    for (j=0; j<standard.length; j++)
      if (standard.charAt(j) == input.charAt(i))
        break;

      if( allow_spc && input.charAt(i) == " " )
  break;

      if (j == standard.length)
        return false;
  }

  return true;
}

// 全角文字であるかをチェック
//
// @param 入力した文字列
// @return 全角ならtrue、でなければfalse
//
function isWByteString(input)
{

  for (i=0; i<input.length; i++)
  {
      if( !isZenkaku( input.charAt(i) ) ) {
  return false;
      }
  }

  return true;
}

// 指定した文字だけが入力されているかをチェック
//
// @param input : 入力した文字列
// @param target: 指定文字の列
// @return 条件を満たしていればtrue、さもなくばfalse
//
function isValidString(input, target)
{
  var standard = target;
  var i;
  var j;

  for (i=0; i<input.length; i++)
  {
    for (j=0; j<standard.length; j++)
      if (standard.charAt(j) == input.charAt(i))
        break;

    if (j == standard.length)
      return false;
  }

  return true;
}

// 文字数が指定の長さの範囲にあるかをチェック
//
// @param element : チェックするフォームパラメータ
// @param name    : 名称(エラーメッセージに使用)
// @param min     : 下限値
// @param max     : 上限値
// @return 条件を満たしていればtrue
//
function checkLength(element, name, min, max)
{
  var len = getByteLength(element);
  var msg = "";

if( len > max || len < min ) {
  self.error_flg = true;
//  var msg = "入力文字数が正しくありません。("+min+" - "+max+")";
//appendMsg(name + "の入力文字数が正しくありません。("+min+" - "+max+")");
  if(UTFesc.length == 1) appendMsg(name + "\u306E\u5165\u529B\u6587\u5B57\u6570\u304C\u6B63\u3057\u304F\u3042\u308A\u307E\u305B\u3093\u3002\uFF08"+min+"\u3000-\u3000"+max+"\uFF09");
  else appendMsg(name + unescape("%82%CC%93%FC%97%CD%95%B6%8E%9A%90%94%82%AA%90%B3%82%B5%82%AD%82%A0%82%E8%82%DC%82%B9%82%F1%81B%81i"+min+"%81%40-%81%40"+max+"%81j"));
//
// + min + "%20-%20" + max + "%29"
  }

  return msg;
}

//文字数が指定の長さの範囲にあるかをチェック
//範囲内 : true , 範囲外 : false
//Tsuchiya add
function sample(element, name, min, max)
{
  var len = getByteLength(element);
  var msg = "";

if( len > max || len < min ) {
  self.error_flg = true;
//  var msg = "入力文字数が正しくありません。("+min+" - "+max+")";
//appendMsg(name + "の入力文字数が正しくありません。("+min+" - "+max+")");
  if(UTFesc.length == 1) appendMsg(name + "\u306E\u5165\u529B\u6587\u5B57\u6570\u304C\u6B63\u3057\u304F\u3042\u308A\u307E\u305B\u3093\u3002\uFF08"+min+"\u3000-\u3000"+max+"\uFF09");
  else appendMsg(name + unescape("%82%CC%93%FC%97%CD%95%B6%8E%9A%90%94%82%AA%90%B3%82%B5%82%AD%82%A0%82%E8%82%DC%82%B9%82%F1%81B%81i"+min+"%81%40-%81%40"+max+"%81j"));
//
// + min + "%20-%20" + max + "%29"
  }

  return msg;
}

// 半角数値であるかをチェック
//
// @param element : チェックするフォームパラメータ
// @param name    : 名称(エラーメッセージに使用)
// @param minus    : 負の値を許可
// @return なし
//
function checkNumeric(element, name, minus) {
    var value = element.value;
    var standard = "-1234567890";
    var isOk = true;
    var i;
    var j;

    for (i=0; i<value.length; i++) {
        for (j=0; j<standard.length; j++)
            if (standard.charAt(j) == value.charAt(i)) { break }

        if (j == standard.length) { isOk = false; break; }
    }

  if(minus){
	if(value.toString().indexOf("-") > 0
	|| value.toString().indexOf("-") != value.toString().lastIndexOf("-")){ isOk = false; }
	if(value.toString().indexOf("-") != -1 && value.length == 1){ isOk = false; }
  }else{
	if(value.toString().indexOf("-") != -1)
	  isOk = false;
  }

  if (!isOk){
    //appendMsg(name + "は半角数値を入力してください。");
    if(UTFesc.length == 1) appendMsg(name + "\u306F\u534A\u89D2\u6570\u5024\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002");
    else appendMsg(name + unescape("%82%CD%94%BC%8Ap%90%94%92l%82%F0%93%FC%97%CD%82%B5%82%C4%82%AD%82%BE%82%B3%82%A2%81B"));
    self.error_flg = true;
  }
}

// 半角数値(小数点含む)であるかをチェック
//
// @param element : チェックするフォームパラメータ
// @param name    : 名称(エラーメッセージに使用)
// @return なし
//


// フォームパラメータの長さチェック
// @param element : チェックする文字列
// @param name    : 名称（エラーメッセージにしよう）
// @param num     : 最大長
// @param e_flg   : 必須であるか（true)
// @return        : 長さが正常であれば true
function checkLength2(element, name, num, e_flg){
  var str = element.value;
  var len = getByteLength(element);
  var local_error = true;

  if(e_flg && str == "") {
     self.error_flg = true;
     appendEmptyItem("[ " + name + " ] ");
     return;
  }

  if(len > num) {
    //appendMsg(name + "が最大長を超えています。");
    if(UTFesc.length == 1) appendMsg(name + "\u304C\u6700\u5927\u9577\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002");
    else appendMsg(name + unescape("%82%AA%8D%C5%91%E5%92%B7%82%F0%92%B4%82%A6%82%C4%82%A2%82%DC%82%B7%81B"));
    return false;
  }
  return true;
}

// フォームパラメータの必須チェック、長さチェック
//
// @param element : チェックするフォームパラメータ
// @param name    : 名称(エラーメッセージに使用)
// @param num     : 最大長
// @param e_flg   : 必須であるか（true)
// @return なし
//
function checkText(element, name, num, e_flg)
{

  var str = element.value;
  var len = getByteLength(element);
  var local_error = true;

  if(e_flg && str == "") {
     self.error_flg = true;
     appendEmptyItem("[ " + name + " ] ");
     return;
  }

  if(len > num) {
    //appendMsg(name + "が最大長を超えています。");
    if(UTFesc.length == 1) appendMsg(name + "\u304C\u6700\u5927\u9577\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002");
    else appendMsg(name + unescape("%82%AA%8D%C5%91%E5%92%B7%82%F0%92%B4%82%A6%82%C4%82%A2%82%DC%82%B7%81B"));
    self.error_flg = true;
  }

  for(i=0;i<len;i++) {

     ch = str.charAt(i);
     cch = str.charCodeAt(i);
     if(ch == "'") {
  //appendMsg(name + "の入力が不適切です。");
  if(UTFesc.length == 1) appendMsg(name + "\u306E\u5165\u529B\u304C\u4E0D\u9069\u5207\u3067\u3059\u3002");
  else appendMsg(name + unescape("%82%CC%93%FC%97%CD%82%AA%95s%93K%90%D8%82%C5%82%B7%81B"));
  self.error_flg = true;
  return;
     } else if(ch != " ") {
        local_error = false;
     }
  }
  if(len > 0 && local_error == true) {
    //appendMsg(name + "の入力が不適切です。");
    if(UTFesc.length == 1) appendMsg(name + "\u306E\u5165\u529B\u304C\u4E0D\u9069\u5207\u3067\u3059\u3002");
    else appendMsg(name + unescape("%82%CC%93%FC%97%CD%82%AA%95s%93K%90%D8%82%C5%82%B7%81B"));
    self.error_flg = true;
    return;
  }
}

//20090512 yamawaki add
// フォームパラメータの必須チェック、長さチェック
// （checkTextからシングルクォーテーションを入力可としただけ）
//
// @param element : チェックするフォームパラメータ
// @param name    : 名称(エラーメッセージに使用)
// @param num     : 最大長
// @param e_flg   : 必須であるか（true)
// @return なし
//
function checkText2(element, name, num, e_flg)
{

  var str = element.value;
  var len = getByteLength(element);
  var local_error = true;

  if(e_flg && str == "") {
    self.error_flg = true;
    appendEmptyItem("[ " + name + " ] ");
    return;
  }

  if(len > num) {
    //appendMsg(name + "が最大長を超えています。");
    if(UTFesc.length == 1) appendMsg(name + "\u304C\u6700\u5927\u9577\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002");
    else appendMsg(name + unescape("%82%AA%8D%C5%91%E5%92%B7%82%F0%92%B4%82%A6%82%C4%82%A2%82%DC%82%B7%81B"));
    self.error_flg = true;
  }

  for(i=0;i<len;i++) {
    ch = str.charAt(i);
    cch = str.charCodeAt(i);
    if(ch != " ") {
      local_error = false;
    }
  }

  if(len > 0 && local_error == true) {
    //appendMsg(name + "の入力が不適切です。");
    if(UTFesc.length == 1) appendMsg(name + "\u306E\u5165\u529B\u304C\u4E0D\u9069\u5207\u3067\u3059\u3002");
    else appendMsg(name + unescape("%82%CC%93%FC%97%CD%82%AA%95s%93K%90%D8%82%C5%82%B7%81B"));
    self.error_flg = true;
    return;
  }
}

// フォームパラメータの必須チェック、長さチェック
//
// @param element : チェックするフォームパラメータ
// @param name    : 名称(エラーメッセージに使用)
// @param num     : 最大長
// @param e_flg   : 必須であるか（true)
// @return mojisu : 最大文字数
//
function checkText3(element, name, num, e_flg, mojisu)
{

  var str = element.value;
  var len = getByteLength(element);
  var local_error = true;

  if(e_flg && str == "") {
     self.error_flg = true;
     appendEmptyItem("[ " + name + " ] ");
     return;
  }

  if(len > num) {
    //appendMsg(name + "は" + "" + mojisu + "文字までです。");
    if(UTFesc.length == 1) appendMsg(name + "\u306F" + mojisu + "\u6587\u5B57\u307E\u3067\u3067\u3059\u3002");
    else appendMsg(name + unescape("%82%cd") + mojisu + unescape("%95%b6%8e%9a%82%dc%82%c5%82%c5%82%b7%81B"));
    self.error_flg = true;
  }

  for(i=0;i<len;i++) {

     ch = str.charAt(i);
     cch = str.charCodeAt(i);
     if(ch == "'") {
  //appendMsg(name + "の入力が不適切です。");
  if(UTFesc.length == 1) appendMsg(name + "\u306E\u5165\u529B\u304C\u4E0D\u9069\u5207\u3067\u3059\u3002");
  else appendMsg(name + unescape("%82%CC%93%FC%97%CD%82%AA%95s%93K%90%D8%82%C5%82%B7%81B"));
  self.error_flg = true;
  return;
     } else if(ch != " ") {
        local_error = false;
     }
  }
  if(len > 0 && local_error == true) {
    //appendMsg(name + "の入力が不適切です。");
    if(UTFesc.length == 1) appendMsg(name + "\u306E\u5165\u529B\u304C\u4E0D\u9069\u5207\u3067\u3059\u3002");
    else appendMsg(name + unescape("%82%CC%93%FC%97%CD%82%AA%95s%93K%90%D8%82%C5%82%B7%81B"));
    self.error_flg = true;
    return;
  }
}

// フォームパラメータ(password)の必須チェック、長さチェック
//
// @param element : チェックするフォームパラメータ
// @param name    : 名称(エラーメッセージに使用)
// @param num     : 最大長
// @param e_flg   : 必須であるか（true)
// @return なし
//
function checkPasswd(element, name, num, e_flg)
{

  var str = element.value;
  var len = getByteLength(element);

  if(e_flg && str == "") {
     self.error_flg = true;
     appendEmptyItem("[ " + name + " ] ");
     return;
  }

  if(len > num) {
    //appendMsg(name + "が最大長を超えています。");
    if(UTFesc.length == 1) appendMsg(name + "\u304C\u6700\u5927\u9577\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002");
    else appendMsg(name + unescape("%82%AA%8D%C5%91%E5%92%B7%82%F0%92%B4%82%A6%82%C4%82%A2%82%DC%82%B7%81B"));
    self.error_flg = true;
  }

  for(i=0;i<len;i++) {
     ch = str.charAt(i);
     cch = str.charCodeAt(i);
     if( isTokusyu(ch, cch) ) {
  //appendMsg(name + "に特殊文字が入力されています。");
  if(UTFesc.length == 1) appendMsg(name + "\u306B\u7279\u6B8A\u6587\u5B57\u304C\u5165\u529B\u3055\u308C\u3066\u3044\u307E\u3059\u3002");
  else appendMsg(name + unescape("%82%C9%93%C1%8E%EA%95%B6%8E%9A%82%AA%93%FC%97%CD%82%B3%82%EA%82%C4%82%A2%82%DC%82%B7%81B"));
  self.error_flg = true;
  return;
     }
  }
}

// フォームパラメータの全角チェック、必須チェック、長さチェック
//
// @param element : チェックするフォームパラメータ
// @param name    : 名称(エラーメッセージに使用)
// @param num     : 最大長
// @param e_flg   : 必須であるか（true)
// @return なし
//

// フォームパラメータの半角数値チェック、長さチェック
//
// @param element : チェックするフォームパラメータ
// @param name    : 名称(エラーメッセージに使用)
// @param num     : 最大長
// @param e_flg   : 必須であるか（true)
// @return なし
//
function checkNumText(element, name, num, e_flg)
{
  checkText(element, name, num, e_flg);
  checkNumeric(element, name, false);
}

// フォームパラメータの半角数値チェック、長さチェック
//
// @param element : チェックするフォームパラメータ
// @param name    : 名称(エラーメッセージに使用)
// @param num     : 最大長
// @param e_flg   : 必須であるか（true)
// @return なし
//
function checkNumText2(element, name, num, e_flg)
{
  checkText(element, name, num, e_flg);
  checkNumeric(element, name, true);
}

// フォームパラメータの半角数値(小数点含む)チェック、長さチェック
//
// @param element : チェックするフォームパラメータ
// @param name    : 名称(エラーメッセージに使用)
// @param num     : 最大長
// @param e_flg   : 必須であるか（true)
// @return なし
//
function checkDecText(element, name, num, e_flg)
{
  checkSeisu(element, name, num, e_flg);
  checkSyosu(element, name, 2);
  checkDecimal(element, name, false);
}

function checkDecText2(element, name, num, e_flg)
{
  checkSeisu(element, name, num, e_flg);
  checkSyosu(element, name, 2);
  checkDecimal(element, name, true);
}
// 半角数値(小数点含む)であるかをチェック
//
// @param element : チェックするフォームパラメータ
// @param name    : 名称(エラーメッセージに使用)
// @param minus    : 負の値を許可
// @return なし
//
function checkDecimal(element, name, minus) {
    var value = element.value;
    var standard = "-1234567890.";
    var isOk = true;
    var i;
    var j;

    for (i=0; i<value.length; i++) {
        for (j=0; j<standard.length; j++)
            if (standard.charAt(j) == value.charAt(i)) { break }

        if (j == standard.length) { isOk = false; break; }
    }

  if(value.indexOf(".")!=value.lastIndexOf(".")){ isOk = false; }
  if(value.indexOf(".")!=-1 && value.length == 1){ isOk = false; }

  if(minus){
	if(value.toString().indexOf("-") > 0
	|| value.toString().indexOf("-") != value.toString().lastIndexOf("-")){ isOk = false; }
	if(value.toString().indexOf("-") != -1 && value.length == 1){ isOk = false; }
	if(value.toString().indexOf("-") != -1 && value.toString().indexOf(".") != -1 && value.length == 2){ isOk = false; }
  }else{
	if(value.toString().indexOf("-") != -1)
	  isOk = false;
  }

  if (!isOk){
    //appendMsg(name + "は半角数値を入力してください。");
    if(UTFesc.length == 1) appendMsg(name + "\u306F\u534A\u89D2\u6570\u5024\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002");
    else appendMsg(name + unescape("%82%CD%94%BC%8Ap%90%94%92l%82%F0%93%FC%97%CD%82%B5%82%C4%82%AD%82%BE%82%B3%82%A2%81B"));
    self.error_flg = true;
  }
}

//20090205 yamawaki add function
// 小数点が一つだけであるかをチェック
//
// @param element : チェックするフォームパラメータ
// @param name    : 名称(エラーメッセージに使用)
// @return なし
//
//function checkOnePeriod(element, name) {
function checkOnePeriod(element) {
  var value = element.value;
  var isOk = true;

  if(value.indexOf(".")!=value.lastIndexOf(".")){ isOk = false; }
  if(value.indexOf(".")!=-1 && value.length == 1){ isOk = false; }

  if (!isOk){
    return false;
    //appendMsg(name + "は正常に入力してください。");
    //if(UTFesc.length == 1) appendMsg(name + "\u306F\u6B63\u5E38\u306B\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002");
    //else appendMsg(name + unescape("%u306F%u6B63%u5E38%u306B%u5165%u529B%u3057%u3066%u304F%u3060%u3055%u3044%u3002"));
    //self.error_flg = true;
  }
  return true;
}

//整数部の桁数チェックを行うファンクションです。
function checkSeisu(element, name, num,e_flg){
  if(e_flg && element.value == "") {
     self.error_flg = true;
     appendEmptyItem("[ " + name + " ] ");
     return;
  }

      var value;
      if(element.value.toString().indexOf(".") == -1){
        value = element.value.toString();
      }else{
        value = element.value.toString().substring(0,element.value.toString().indexOf("."));
      }
	if(value.charAt(0) == '-'){
	  value = value.substring(1);
    }

      if(value.length > num){
      self.error_flg = true;
      //appendMsg(name + "の最大長を超えています。");
      if(UTFesc.length == 1) appendMsg(name + "\u306E\u6700\u5927\u9577\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002");
      else appendMsg(name + unescape("%82%CC%8D%C5%91%E5%92%B7%82%F0%92%B4%82%A6%82%C4%82%A2%82%DC%82%B7%81B"));
      }
}

//整数部の桁数チェックを行うファンクションです。
function checkSyosu(element, name, num){
      var value;
      if(element.value.toString().indexOf(".") == -1){
        return;
      }
      value = element.value.toString().substring(element.value.toString().indexOf(".")+1);
      if(value.length > num){
      	self.error_flg = true;
      //appendMsg(name + "の小数桁が最大数を超えています。");
      //▼20090302 yamawaki mod 文言変更
      /*
      if(UTFesc.length == 1) appendMsg(name + "\u306E\u5C11\u6570\u6841\u304C\u6700\u5927\u6570\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002");
      else appendMsg(name + unescape("%82%CC%8F%AD%90%94%8C%85%82%AA%8D%C5%91%E5%90%94%82%F0%92%B4%82%A6%82%C4%82%A2%82%DC%82%B7%81B"));
      */
      if(UTFesc.length == 1) appendMsg(name + "\u306E\u5C0F\u6570\u6841\u304C\u6700\u5927\u6570\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002");
      else appendMsg(name + unescape("%82%CC%8F%AC%90%94%8C%85%82%AA%8D%C5%91%E5%90%94%82%F0%92%B4%82%A6%82%C4%82%A2%82%DC%82%B7%81B"));
      //▲20090302 yamawaki mod
      }
}

// フォームパラメータの半角チェック、長さチェック
//
// @param element : チェックするフォームパラメータ
// @param name    : 名称(エラーメッセージに使用)
// @param num     : 最大長
// @param e_flg   : 必須であるか（true)
// @param allow_spc : 空白を許すか
// @return なし
//

// バイト長を取得
//
// @param element : チェックするフォームパラメータ
// @return バイト長
//
function getByteLength(element) {

  var len = 0;
  var str = element.value;

  for(i=0; i < str.length; i++) {

     if(str.charCodeAt(i) > 255) {
        len += 2;
     } else {
        len += 1;
     }
  }

  return len;
}

// 実在する日付かをチェック
//
// @param year_value : 年
// @param month_value: 月
// @param day_value  : 日
// @param name       : 名称(エラーメッセージに使用)
// @return なし

function checkRealDate(year_value, month_value ,day_value, name)
{
  sec = Date.parse( year_value+"/"+month_value+"/"+day_value );
  date = new Date( sec );

  if( date.getFullYear() != year_value ||
      date.getMonth()+1 != month_value ||
      date.getDate() != day_value ) {
    self.error_flg = true;
    //appendMsg(name + "は実在しない日付です。");
    if(UTFesc.length == 1) appendMsg(name + "\u306F\u5B9F\u5728\u3057\u306A\u3044\u65E5\u4ED8\u3067\u3059\u3002");
    else appendMsg(name + unescape("%82%CD%8E%C0%8D%DD%82%B5%82%C8%82%A2%93%FA%95t%82%C5%82%B7%81B"));
  }
}

// 実在する日付かをチェック(yyyymmdd 形式)
//
// @param year_value : 年
// @param month_value: 月
// @param day_value  : 日
// @param name       : 名称(エラーメッセージに使用)
// @return なし

function checkDate(date_param, name,e_flg){
  checkNumText(date_param,name,8,e_flg);

  // 2003.1.9 j.mizukami
  // 8桁必須にする
  if(getByteLength(date_param)!=8){
    self.error_flg = true;
    if(UTFesc.length == 1) appendMsg(name + "\u306F\uFF18\u6841\u3067\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044\u3002");
    else appendMsg(name + unescape("%82%CD%82W%8C%85%82%C5%93%FC%97%CD%82%B5%82%C4%82%AD%82%BE%82%B3%82%A2%81B"));
	return;
  }

  temp = date_param.value;
  var year=parseInt(temp.substring(0,4),10);
  var month=parseInt(temp.substring(4,6),10) - 1 ;
  var day=parseInt(temp.substring(6,8),10);
  date = new Date(year,month,day);
 if(temp != ""){
  if(date.getFullYear() != year ||
     date.getMonth() != month ||
     date.getDate() != day) {
        self.error_flg = true;
        //appendMsg(name + "は実在しない日付です。");
        if(UTFesc.length == 1) appendMsg(name + "\u306F\u5B9F\u5728\u3057\u306A\u3044\u65E5\u4ED8\u3067\u3059\u3002");
        else appendMsg(name + unescape("%82%CD%8E%C0%8D%DD%82%B5%82%C8%82%A2%93%FA%95t%82%C5%82%B7%81B"));
   }
 }
}

//20110520 add 
// 実在する日付かをチェック（メッセージ無しバージョン）
// @param year_value : 年
// @param month_value: 月
// @param day_value  : 日
// @return true:実在する日付　false:実在しない日付である

function checkRealDateOnly(year_value, month_value ,day_value){
  sec = Date.parse( year_value+"/"+month_value+"/"+day_value );
  date = new Date( sec );

  if( date.getFullYear() != year_value ||
      date.getMonth()+1 != month_value ||
      date.getDate() != day_value ) {
    return false;
  }else{
    return true;
  }
}

//function checkRealDate(date_param,name, e_flg)
//{
//  checkText(date_param,name,10,e_flg);
//  temp = date_param.value;
//  cal = temp.split("/");
//  sec = Date.parse(date_param.value);
//  date = new Date(sec);
// if(temp != ""){
//  if(date.getFullYear() != cal[0] ||
//     date.getMonth()+1 != cal[1] ||
//     date.getDate() != cal[2]) {
//        self.error_flg = true;
//        //appendMsg(name + "は実在しない日付です。");
//        if(UTFesc.length == 1) appendMsg(name + "\u306F\u5B9F\u5728\u3057\u306A\u3044\u65E5\u4ED8\u3067\u3059\u3002");
//        else appendMsg(name + unescape("%82%CD%8E%C0%8D%DD%82%B5%82%C8%82%A2%93%FA%95t%82%C5%82%B7%81B"));
//   }
// }
//}

function isZenkaku( ch ) {
  // %xxxxに変換
  var str = escape( ch ).substring(1);
  // unicode ? (MS-IE4.0)
  if (str.charAt(0) == 'u') {
    var val = parseInt(str.substring(1), 16);
  if (val > 0xff) {
    if (val>=0xff61 && val<=0xff9f) // 半角カナは0xff61〜0xff9f
      return false;
    else
     return true;
  }
  else
    return false;
  }
  else {// シフトJIS 1バイト目(0x81-0x9F,0xE0-0xFC)の判定
    var i = parseInt( escape( ch ).substring( 1, 3 ), 16)  & 0x00ff;
    return ((0x81 <= i && i <= 0x9F) || (0xE0 <= i && i <= 0xFC));
  }
}

// 特殊文字だったらtrueを返す
// 特殊文字は JIS13区
// SJIS 0x8740〜0x879c , unicode 0x2000〜0x27be,0x3220〜0x33fe
// modified by T.Matsufuji @2000.12.03
// 特殊文字は JIS13区+ローマ数字
// unicode 0x2160〜0x2179,0x2460〜0x2473,0x3231〜0x33cd
//         0x2116,0x2121,0x2211,0x221f,0x222e,0x22bf,0x301d,0x301f

function isTokusyu( ch, cch ) {
  // %xxxxに変換
  var str = escape( ch ).substring(1);

  // unicode ? (MS-IE4.0)
  if (str.charAt(0) == 'u') {
    var val = parseInt(str.substring(1), 16);
    return ((val>=0x2160 && val<=0x2179) ||
      (val>=0x2460 && val<=0x2473) ||
      (val>=0x3231 && val<=0x33cd) ||
      val == 0x2116 ||
      val == 0x2121 ||
      val == 0x2211 ||
      val == 0x221f ||
      val == 0x222e ||
      val == 0x22bf ||
      val == 0x301d ||
      val == 0x301f );
  }
  else {// シフトJIS
    //var i = parseInt( str.substring(1), 16);
    //return (i>=0x8740 && i<=0x879c);
    //return ((i>=0x8740 && i<=0x879c) || (i>=0xeeef && i<=0xeef8));
    return (cch == 0xfffd);
  }
}

// 半角英数文字の場合trueを返す（半角カナはfalse）
function isANK( ch ) {
  // %xxxxに変換
  var str = escape( ch ).substring(1);
  // unicode ? (MS-IE4.0)
  if (str.charAt(0) == 'u') {
    return !(parseInt(str.substring(1), 16) > 0xff);
  }
  else {// シフトJIS 1バイト目(0x81-0x9F,0xE0-0xFC)の判定
    var i = parseInt( escape( ch ).substring( 1, 3 ), 16)  & 0x00ff;
    return (i<=0x7f);
  }
}

//半角フリガナ用カナチェック
function checkHanKata(element, name, num, e_flg)
{
  var str = element.value;
  var len = getByteLength(element);
  var local_error = true;

  if(e_flg && str == "") {
     self.error_flg = true;
     appendEmptyItem("[ " + name + " ] ");
     return;
  }

  if(len > num) {
    //appendMsg(name + "が最大長を超えています。");
    if(UTFesc.length == 1) appendMsg(name + "\u304C\u6700\u5927\u9577\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002");
    else appendMsg(name + unescape("%82%AA%8D%C5%91%E5%92%B7%82%F0%92%B4%82%A6%82%C4%82%A2%82%DC%82%B7%81B"));

    self.error_flg = true;
  }
    //if(!isValidString(str," ｱｲｳｴｵｶｷｸｹｺｻｼｽｾｿﾀﾁﾂﾃﾄﾅﾆﾇﾈﾉﾊﾋﾌﾍﾎﾏﾐﾑﾒﾓﾔﾕﾖﾗﾘﾙﾚﾛﾜﾝｬｭｮｯｧｨｩｪｫｰﾞﾟ-1234567890@&=+%;/?:!*'(),$-_.#~abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")){

  if(UTFesc.length == 1){
    //20070109 半角カナのヲ(uFF66)がチェックから漏れていた
    if(!isValidString(str,"\uFF65ABCDEFGHIJKLMNOPQRSTUVWXYZ\uFF71\uFF72\uFF73\uFF74\uFF75\uFF76\uFF77\uFF78\uFF79\uFF7A\uFF7B\uFF7C\uFF7D\uFF7E\uFF7F\uFF80\uFF81\uFF82\uFF83\uFF84\uFF85\uFF86\uFF87\uFF88\uFF89\uFF8A\uFF8B\uFF8C\uFF8D\uFF8E\uFF8F\uFF90\uFF91\uFF92\uFF93\uFF94\uFF95\uFF96\uFF97\uFF98\uFF99\uFF9A\uFF9B\uFF9C\uFF9D\uFF6C\uFF6D\uFF6E\uFF6F\uFF67\uFF68\uFF69\uFF6A\uFF6B\uFF70\uFF9E\uFF9F\uFF66-1234567890@abcdefghijklmnopqrstuvwxyz+!\"#$%&'()=^~\\|;<>*:_?/][}{.,` ")){
    appendMsg(name + "\u306B\u534A\u89D2\u30AB\u30BF\u30AB\u30CA\u4EE5\u5916\u306E\u6587\u5B57\u304C\u5165\u529B\u3055\u308C\u3066\u3044\u307E\u3059");
    self.error_flg = true;
    return;
    }
  }else{
    if(!isValidString(str,"%8E%A5abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ+()!\"#$%&'()=^~\\|;:_?/][}{>`*/.,<%B1%B2%B3%B4%B5%B6%B7%B8%B9%BA%BB%BC%BD%BE%BF%C0%C1%C2%C3%C4%C5%C6%C7%C8%C9%CA%CB%CC%CD%CE%CF%D0%D1%D2%D3%D4%D5%D6%D7%D8%D9%DA%DB%DC%DD%AC%AD%AE%AF%A7%A8%A9%AA%AB%B0%DE%DF-1234567890 ")){
      appendMsg(name + unescape("%82%C9%94%BC%8Ap%83J%83%5E%83J%83i%88%C8%8AO%82%CC%95%B6%8E%9A%82%AA%93%FC%97%CD%82%B3%82%EA%82%C4%82%A2%82%DC%82%B7"));
    self.error_flg = true;
    return;
    }

  }
    //appendMsg(name + "に半角カタカナ以外の文字が入力されています");
    //if(UTFesc.length == 1) appendMsg(name + "\u306B\u534A\u89D2\u30AB\u30BF\u30AB\u30CA\u4EE5\u5916\u306E\u6587\u5B57\u304C\u5165\u529B\u3055\u308C\u3066\u3044\u307E\u3059");
    //else appendMsg(name + unescape("%82%C9%94%BC%8Ap%83J%83%5E%83J%83i%88%C8%8AO%82%CC%95%B6%8E%9A%82%AA%93%FC%97%CD%82%B3%82%EA%82%C4%82%A2%82%DC%82%B7"));


}

//CompanyProducts用製品分類チェック
function checkProductsID(roughid,middleid,name,e_flg)
{
  var str1 = roughid.value;
  var str2 = middleid.value;

  if(e_flg && ( str1 == "" || str2 == "" )) {
     self.error_flg = true;
     appendEmptyItem("[ " + name + " ] ");
     return;
  }
}

// 日付け比較用メソッド最初のパラメータのほうが過去であればOK
// 開始日と終了日が同じときもOK
// それ以外はアウト
function compDate(start,end,name)
{
  if(start.value > end.value){
     self.error_flg = true;
     //appendMsg(name+"の整合性がとれていません。");
    if(UTFesc.length == 1) appendMsg(name + "\u306E\u6574\u5408\u6027\u304C\u3068\u308C\u3066\u3044\u307E\u305B\u3093\u3002");
    else appendMsg(name + unescape("%82%CC%90%AE%8D%87%90%AB%82%AA%82%C6%82%EA%82%C4%82%A2%82%DC%82%B9%82%F1%81B"));

     return;
  }
}

//全角ひらがな・カタカナ・英数のみが入力されているか
// @param str : 入力文字
// @return 入力されていればtrue それ以外の文字が入力されていればfalse
function ZenkakuCheck(str) {
   if( str.match( /[^ぁ-んァ-ン０-９Ａ-Ｚａ-ｚ　\sー]+/ ) ) {
      return false;
   }
   return true;
}

function isZenkaku2( ch ) {
  // %xxxxに変換
  var str = escape( ch ).substring(1);
  // unicode ? (MS-IE4.0)
  if (str.charAt(0) == 'u') {
    var val = parseInt(str.substring(1), 16);
    if (val > 0xff) {
      if (val>=0xff61 && val<=0xff9f){ // 半角カナは0xff61〜0xff9f
        return true;
      }else{  //全角文字
        return ZenkakuCheck(ch);
      }
    }else{
      return false;
    }
  }else{// シフトJIS 1バイト目(0x81-0x9F,0xE0-0xFC)の判定 半角英数
    return true;
  }
}

//半角・全角ひらがな・カタカナ・英数のみが入力されているか(漢字が入力されていないか)
//⇒サーバで半角変換を行なう時等に変換できない文字がないかチェック用に使用
// @param str : 入力文字
// @return 入力されていればtrue それ以外の文字が入力されていればfalse
function InputNotKanjiCheck(input) {
  for (i=0; i<input.length; i++){
      if( !isZenkaku2( input.charAt(i) ) ) {
          return false;
      }
  }
  return true;
}

//20080711 ADD ST
/*
  チェックデジットが正しいかチェック
   @param cd : コード
   @return     true:OK false:NG
*/
function chkdedi(cd){

	if ( cd.length == 13 || cd.length == 9 ){
	}else{
		return false;
	}

	var fulljan = ("0000000000000" + cd).slice(-13);
	var keta_a = parseFloat(fulljan.substr(0,1)) * 1;
	    keta_a = keta_a + parseFloat(fulljan.substr(1,1)) * 3;
	    keta_a = keta_a + parseFloat(fulljan.substr(2,1)) * 1;
	    keta_a = keta_a + parseFloat(fulljan.substr(3,1)) * 3;
	    keta_a = keta_a + parseFloat(fulljan.substr(4,1)) * 1;
	    keta_a = keta_a + parseFloat(fulljan.substr(5,1)) * 3;
	    keta_a = keta_a + parseFloat(fulljan.substr(6,1)) * 1;
	    keta_a = keta_a + parseFloat(fulljan.substr(7,1)) * 3;
	    keta_a = keta_a + parseFloat(fulljan.substr(8,1)) * 1;
	    keta_a = keta_a + parseFloat(fulljan.substr(9,1)) * 3;
	    keta_a = keta_a + parseFloat(fulljan.substr(10,1)) * 1;
	    keta_a = keta_a + parseFloat(fulljan.substr(11,1)) * 3;

	var chkd = 10-(keta_a%10);

	if(chkd ==  parseFloat(fulljan.substr(12,1))){
		return true;
	}else{
		return false;
	}
}
//20080711 ADD ED

//20081106 yamawaki add st
/*
  半角数値チェック　１文字入力ごとに判定用
   @param event : キーコード
   @return     true:半角数値である false:半角数値でない
*/
function chkKeyCodeIsNum(event){
	if(event.keyCode != 0){
		var key  = event.keyCode
	}else{
		var key  = event.charCode
	}
//	if(key == 0) return;
	if(event.keyCode==9 || event.keyCode==13) return true;
	if((key < "0".charCodeAt(0) || "9".charCodeAt(0) < key) && key!=8 && key!=37 && key!=39)return false;
	return true;
}
//20081106 yamawaki add ed

//20081226 yamawaki add st
/*
  半角数値＋ピリオドチェック　１文字入力ごとに判定用
   @param event : キーコード
   @return     true:半角数値である false:半角数値でない
*/
function chkKeyCodeIsNumPeriod(event){
	if(event.keyCode != 0){
		//IE(FxでもBSや←キーはこちら)
		var key  = event.keyCode
	}else{
		//Fxではevent.charCodeにて取得
		var key  = event.charCode
	}
//	if(key == 0) return;
	//FxのTab,Enter
	if(event.keyCode==9 || event.keyCode==13) return true;
	//8(FxのBS) 37(Fxの←) 39(Fxの→)
	if( (key < "0".charCodeAt(0) || "9".charCodeAt(0) < key) && key != ".".charCodeAt(0) && key!=8 && key!=37 && key!=39)return false;
	return true;
}
//20081226 yamawaki add ed

//20090410 yamawaki add st
// フォームパラメータ(password)の全角チェック
//
// @param element : チェックするフォームパラメータ
// @param name    : 名称(エラーメッセージに使用)
// @return なし
//
function checkPasswdZen(element, name)
{
  var str = element.value;

  //20090410 yamawaki add st
  if(!isByteCharString(str,true)) {
    //appendMsg(name + "に半角英数字以外が入力されています。");
    if(UTFesc.length == 1) appendMsg(name + "\u306B\u534A\u89D2\u82F1\u6570\u5B57\u4EE5\u5916\u304C\u5165\u529B\u3055\u308C\u3066\u3044\u307E\u3059\u3002");
    else appendMsg(name + unescape("%82%C9%94%BC%8A%70%89%70%90%94%8E%9A%88%C8%8A%4F%82%AA%93%FC%97%CD%82%B3%82%EA%82%C4%82%A2%82%DC%82%B7%81B"));
    self.error_flg = true;
  }
}

// 半角英数（記号含む）であるかをチェック
//
// @param 入力した文字列
// @return 半角ならtrue、でなければfalse
//
function isByteCharString(input, allow_spc)
{
  var standard = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-\\*(),.｢｣^%+/_#$!~|={}[]:;@`";
  var i;
  var j;

  for (i=0; i<input.length; i++){
    for (j=0; j<standard.length; j++){
      if (standard.charAt(j) == input.charAt(i)){
        break;
      }
      if( allow_spc && input.charAt(i) == " " ){
        break;
      }
      if (j == standard.length-1){
        return false;
      }
    }
  }
  return true;
}
//20090410 yamawaki add ed


//href="javascript:submitButton_add(form1,0);"に対応するため必要。
//標準モードだとエラーになるブラウザがあります。※form1だと変数を探しに行ってエラー。document.form1だとエレメントを探しに行く。
try{
  if (window.addEventListener) {
	window.addEventListener("load" , function(){ form1 = document.getElementsByName("form1")[0];} ,false );
  };
}catch(e){  };


function headerFrame(){
try{

	if (window.name == "header"){

		var func = function(){
			//ページの高さにフレームrowsをあわせる。
			var header = document.body.offsetHeight;if (header <= 0) return false;
			var frame = parent.document.getElementsByTagName("frameset")[0].rows;
			var frameS = frame.split(",");
			var str = header + ",";
			for (var i=1;i < frameS.length;i++){
				str = str + frameS[i]  + ",";
			}
			str = str.substring(0,str.length-1);
			parent.document.getElementsByTagName("frameset")[0].rows = str;
		};
		func();

		//特定ページのみページ内容変更時に再度フレーム高さ調整
		var loca = location.href.split("/");var loca2 = loca[loca.length-1].split("?");
		if (loca2[0] == "SetListAjaxModHeader.jsp") {
			window.addEventListener("DOMSubtreeModified", func, false);
			//window.addEventListener("click", func, false);
		}
	};
}catch(e){  };
};

if (window.addEventListener ) window.addEventListener("load", headerFrame, false);

//ターゲット先のコントロール。基本blank。
function IosCsvTarget(obj){
 if (!isIos || !obj) return;
 obj.target = "_blank";
};

//20101202 ADD アンドロイド追加。isIos判定修正
var isIphone = navigator.appVersion.match(/iphone/gi) ? true : false;
var isIpad = navigator.appVersion.match(/ipad/gi) ? true : false;
var isAndroid = navigator.appVersion.match(/android/gi) ? true : false;
var isAndroid2X = navigator.appVersion.match(/android 2/gi) ? true : false;
var isIos = isIphone || isIpad || isAndroid;



//ipad,iphoneはデバイスサイズでios.css読み込ませて下記を実現しているが
//Androidは多様なデバイスがあるため
if (isIos) {
	var ios_head = document.createElement("div");
	ios_head.innerHTML = "<link media=all href='/order/css/ios.css' type='text/css' rel='stylesheet'>";
	document.getElementsByTagName("head")[0].appendChild(ios_head.firstChild);

	//アンドロイド専用。
	if (isAndroid){
		ios_head.innerHTML = "<link media=all href='/order/css/android.css' type='text/css' rel='stylesheet'>";
		document.getElementsByTagName("head")[0].appendChild(ios_head.firstChild);
	};
};

//Android3.X系でスクロールが効かなくなる現象の解消策
if(isAndroid && !isAndroid2X){
   try{
	new function(){

		//Android3.X系はメインフレーム＞フレーム＞フレームの階層構造の場合に不具合がでやすい.
		//直近がbodyなら2階層目で実行されている
		if(window.parent.name == "body") return false;

		var frame1 = parent.parent.parent.document.getElementsByTagName("frame");
		var frame2 = parent.parent.document.getElementsByTagName("frame");
		var frame3 = parent.document.getElementsByTagName("frame");

		//フレームをスクロール状態に。なぜか全部やればいいわけでもないらしい
		frame1[0].scrolling = "yes";
		frame1[1].scrolling = "yes";
		//frame2[0].scrolling = "yes";
		frame2[1].scrolling = "yes";
		frame3[0].scrolling = "yes";
		//frame3[1].scrolling = "yes"
	};

	new function(){
		
		//なぜかDOMノードに変更が加わるとスクロールされるようになる。ロード時、タッチ時に実行。なぜかロードだけだとだめ
		function hoge(){
			var div = document.createElement('div'); 
			div.style.position = "absolute";
			div.style.height = "0px";
			div.style.width = "0px";
			div.style.overflow = "hidden";
			var body = document.getElementsByTagName("body")[0];
			body.appendChild(div);
		};

		window.addEventListener("touchstart",hoge,false);
		window.addEventListener("load",hoge,false);

		//フッターフレームをページ最下部にセットしようとするとなぜか見切れてしまう。
		//if(window.parent.name != "order2") return false;
		//window.addEventListener("load",
		//	function (){
		//		var frameset = parent.document.getElementsByTagName("frameset")[0];
		//		if (frameset.rows != "*,0") frameset.rows = "*,*";
		//	}
		//,false);
	};
   }catch(e){  };
};



