<!--
/*==================================================================*/
/* Title   : 教材データベース (共通)                            */
/* Program : 株式会社ゴビ (H.Imanishi)                              */
/*        Copyright (C) 2007-2008 GOV Co.,Ltd. All Rights Reserved. */
/*==================================================================*/
/*----- 全角文字チェック処理 (ASCII文字のみ対応) -----*/
/* 引  数 : fullObject - オブジェクト(this)           */
/*          errField   - エラー項目名                 */
/* 返り値 : 0:ok、1:error                             */
/*----------------------------------------------------*/
function FullStrCheckA(fullObject, errField) {
  var sChar;
  var lLen, iCount;
  var iCheck = 0;  // チェックフラグ(OK:0, Error:1)
  lLen = fullObject.value.length;

  for (iCheck = 0, iCount = 0; iCount < lLen; iCount++) {
    sChar = fullObject.value.charCodeAt(iCount);
    if (255 < sChar) {
    alert(errField + " ： 全て半角英数字で入力して下さい。");
      fullObject.focus();
      iCheck++;
      break;
    }
  }

  // 一つでもエラーがあれば｢1｣を返す。
  if (iCheck == 0) {
    return 0;
  } else {
    return 1;
  }
}

/*------------ 入力文字Byte数チェック処理 ------------*/
/* 引  数 : fullObject - オブジェクト(this)           */
/*          maxLen     - 制限Byte数                   */
/*          errField   - エラー項目名                 */
/* 返り値 : 0 - ok、1 - error                         */
/*----------------------------------------------------*/
function MaxLenBCheck(fullObject, maxLen, errField)
{
  var sChar;
  var lLen, bLen, iCount;
  lLen = fullObject.value.length;
  bLen = 0;

  // 全角なら2バイト、半角なら1バイトで足していく。
  for (iCount = 0; iCount < lLen; iCount++) {
    sChar = fullObject.value.charCodeAt(iCount);
    if (sChar < 8208) {                            // 半角英数字(その他半角文字)
      bLen += 1;
    } else if (8207 < sChar && sChar < 65377) {   // 全角文字(かなカナ英数字記号等々)
      bLen += 2;
    } else if (65376 < sChar && sChar < 65504) {  // 半角カナ文字
      bLen += 1;
    } else if (65503 < sChar && sChar < 65510) {  // 一部全角文字(￥とかこの辺にあった)
      bLen += 2;
    } else if (65509 < sChar) {                     // 半角（謎記号とか少しだけ）
      bLen += 1;
    }
  }

  // 制限文字数を超えていたら｢1｣を返す。
  if (bLen > maxLen) {
    alert(errField + " ： 制限文字数を超えています。");
    fullObject.focus();
    return 1;
  } else {
    return 0;
  }
}

/*------- 数字＆整数値＆マイナス値チェック処理 -------*/
/* 引  数 : fullObject - オブジェクト(this)           */
/*          errField   - エラー項目名                 */
/* 返り値 : 0:ok、1:error                             */
/*----------------------------------------------------*/
function NumIntMinusCheck(NumObject, errField) {
  if (isNaN(NumObject.value) == true) {
    alert(errField + " ： 全て半角数字で入力して下さい。");
    NumObject.focus();
    return 1;
  } else {
    if (NumObject.value < 0) {
      alert(errField + " ： マイナス値は入力できません。");
      NumObject.focus();
      return 1;
    }
    if (NumObject.value.indexOf(".") >= 0) {
      alert(errField + " ： 整数値で入力して下さい。");
      NumObject.focus();
      return 1;
    }
    return 0;
  }
}

/*--------------- 電話番号チェック処理 ---------------*/
/* 引  数 : NumObject - オブジェクト(this)           */
/*          errField  - エラー項目名                 */
/* 返り値 : 0:ok、1:error                             */
/*----------------------------------------------------*/
function NumTelCheck(NumObject, errField) {
  var iCheck = 0;  // チェックフラグ(OK:0, Error:1)
  var sWord;       // 文字取得用変数
  var iCount;      // カウント用変数

  for (iCheck = 0, iCount = 0; iCount < NumObject.value.length; iCount++) {
    sWord = NumObject.value.substr(iCount, 1);
    // 許可文字チェック([0～9],[-]のみ許可)
    if (sWord.match(/[0-9]|\-/i) == null) {
      alert(errField + " ： 半角数字と｢-｣(ハイフン)で入力して下さい。");
      iCheck = 1;
      break;
    }
  }
  return iCheck;
}

/*---------------- 年月日チェック処理 ----------------*/
/* 引  数 : DateObject - オブジェクト(this)           */
/*          errField   - エラー項目名                 */
/* 返り値 : 0 - ok、1 - error                         */
/*----------------------------------------------------*/
function DateCheck(DateObject, errField){
  var dDate;   // 日付格納配列("/"区切り)
  var maxDay;  // 各月の最大日格納配列

  // 各月の最大日設定
  maxDay = Array(31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

  // 日付用オブジェクトにデータがある場合、日付チェックを行う。
  if( DateObject.value != "" ){
    dDate = DateObject.value.split("/");  // "/"の部分で区切る
    // 配列の数が3つ無い場合エラー(年、月、日)
    if( dDate.length != 3 ){
      alert(errField + " ： 日付は「yyyy/mm/dd」の形式で入力して下さい。");
      DateObject.focus();
      return 1;
    }
    // 年チェック
    if( dDate[0].length != 4 ){
      alert(errField + " ： 年は4桁で入力して下さい。");
      DateObject.focus();
      return 1;
    }else if( dDate[0].indexOf(".") >= 0 ){
      alert(errField + " ： 年が正しくありません。");
      DateObject.focus();
      return 1;
    }else if( isNaN(dDate[0]) == true ){
      alert(errField + " ： 全て半角数字で入力して下さい。");
      DateObject.focus();
      return 1;
    }else if( dDate[0] < 1900 ){
      alert(errField + " ： 年が正しくありません。\n(※．1900年以前は設定できません。)");
      DateObject.focus();
      return 1;
    }

    // 月チェック
    if( dDate[1] < 1 || dDate[1] > 12){
      alert(errField + " ： 月が正しくありません。");
      DateObject.focus();
      return 1;
    }else if( dDate[1].indexOf(".") >= 0 ){
      alert(errField + " ： 月が正しくありません。");
      DateObject.focus();
      return 1;
    }else if( isNaN(dDate[1]) == true ){
      alert(errField + " ： 全て半角数字で入力して下さい。");
      DateObject.focus();
      return 1;
    }

    // 日チェック
    if( dDate[2] < 1 || dDate[2] > maxDay[dDate[1] - 1] ){
      alert(errField + " ： 日が正しくありません。");
      DateObject.focus();
      return 1;
    }else if( dDate[2].indexOf(".") >= 0 ){
      alert(errField + " ： 日が正しくありません。");
      DateObject.focus();
      return 1;
    }else if( isNaN(dDate[2]) == true ){
      alert(errField + " ： 全て半角数字で入力して下さい。");
      DateObject.focus();
      return 1;
    }

    // 閏年チェック(｢4で割り切れて且つ100で割り切れない年｣｢400で割り切れる年｣ = 閏年)
    if( dDate[1] == 2 && dDate[2] == 29 ){
      if( dDate[0] % 4 != 0 || dDate[0] % 100 == 0 ){
        if( dDate[0] % 400 != 0 ){
          alert(errField + " ： 日が正しくありません。\n(※．設定年は閏年ではありません)");
          DateObject.focus();
          return 1;
        }
      }
    }
  }
  return 0;
}

/*-------------- 年月日範囲チェック処理 --------------*/
/*                            (DateCheck関数後に使用) */
/* 引  数 : DateObject1 - オブジェクト1(this)         */
/*          DateObject2 - オブジェクト2(this)         */
/*          errField    - エラー項目名                */
/* 返り値 : 0 - ok、1 - error                         */
/*----------------------------------------------------*/
function DateRangeCheck(DateObject1, DateObject2, errField){
  var dDate1, dDate2;   // 日付格納配列("/"区切り)

  // 日付用オブジェクトにデータがある場合、日付範囲チェックを行う。
  if( DateObject1.value != "" && DateObject2.value != "" ){
    dDate1 = DateObject1.value.split("/");  // "/"の部分で区切る
    dDate2 = DateObject2.value.split("/");  // "/"の部分で区切る

    // ｢DateObject1 > DateObject2｣の場合エラー
    // 年を調べる
    if( Number(dDate1[0]) > Number(dDate2[0]) ){
      alert(errField + " ： 範囲設定が正しくありません。\n(※．[ 左辺 ] < [ 右辺 ] となるように設定して下さい。)");
      DateObject2.focus();
      return 1;
    // 年が同じだった場合、月を調べる
    } else if( Number(dDate1[0]) == Number(dDate2[0]) ){
      if( Number(dDate1[1]) > Number(dDate2[1]) ){
        alert(errField + " ： 範囲設定が正しくありません。\n(※．[ 左辺 ] < [ 右辺 ] となるように設定して下さい。)");
        DateObject2.focus();
        return 1;
      // 月が同じだった場合、日を調べる
      } else if( Number(dDate1[1]) == Number(dDate2[1]) ){
        if( Number(dDate1[2]) > Number(dDate2[2]) ){
          alert(errField + " ： 範囲設定が正しくありません。\n(※．[ 左辺 ] < [ 右辺 ] となるように設定して下さい。)");
          DateObject2.focus();
          return 1;
        }
      }
    }
  }
  return 0;
}

/* レビュー投稿アップロードファイル拡張子チェック処理 */
/*   (※.｢.pdf｣のみ対応版)                            */
/* 引  数 : FileObject - オブジェクト(this)           */
/*          ObjectName - オブジェクトネーム           */
/* 返り値 : 0 - ok、1 - error                         */
/*----------------------------------------------------*/
function ReviewExtCheck(FileObject, ObjectName) {
  var iCheckFlag = 1;  // チェックフラグ(OK:0, Error:1)
  var sExt4, sExt5;    // 拡張子格納変数(4:[.jpg],[.gif],[.png],[.pdf],[.doc],[.xls],[.ppt],[.txt]、5:[.jpeg])

  // 拡張子取得(sExt4:4文字用、sExt5:5文字用 (※.[.]含む))
  sExt4 = FileObject.value.substring(FileObject.value.length - 4, FileObject.value.length);
  sExt5 = FileObject.value.substring(FileObject.value.length - 5, FileObject.value.length);

  // 拡張子チェック([.jpg],[.gif],[.png],[.pdf],[.doc],[.xls],[.ppt],[.txt])
  if (sExt4.match(/\.jpg|\.gif|\.png|\.pdf|\.doc|\.xls|\.ppt|\.txt/i)) {
    iCheckFlag = 0;
  // 拡張子チェック([.jpeg])
  } else if (sExt5.match(/\.jpeg/i)) {
    iCheckFlag = 0;
  // エラー
  } else {
    alert("「" + ObjectName + "」には指定ファイル形式のみ登録可能です。")
    FileObject.focus();
  }
  return iCheckFlag;
}

/*-------------- Image File切り替え処理 --------------*/
/* 引  数 : objImage - 切り替えるオブジェクト名       */
/*          strFile  - 切り替えるImage File名         */
/*----------------------------------------------------*/
function change_image(objImage, strFile) {
  document.images[objImage].src = strFile;
}

/*---------- Focus時のElement背景色変更処理 ----------*/
/* 引  数 : objElem - 対象Element                     */
/*          strNm   - 対象Element名                   */
/*----------------------------------------------------*/
function GotFocus(objElem, strNm) {
  objElem.form.elements[strNm].style.backgroundColor = "#FFFFCC";
}

/*---------- Blur時のElement背景色変更処理 ----------*/
/* 引  数 : objElem - 対象Element                     */
/*          strNm   - 対象Element名                   */
/*----------------------------------------------------*/
function LostFocus(objElem, strNm) {
  objElem.form.elements[strNm].style.backgroundColor = "";
}

/*---------- 画面遷移用 ----------*/
/* 引  数 : sUrl - 移動先         */
/*--------------------------------*/
function btn_moveto(sUrl) {
	window.location.href = sUrl;
	return false;
}

//-->

