/*================================================================================================
 * 関数名：checkNumBytesMin()
 * 概要  ：半角なら、[iMin]文字以上入力する。全角なら、(iMin/2)文字以上入力する。
================================================================================================*/
function checkNumBytesMin(s, iMin) {
  var iNumByte = getNumBytes(s);
  if (iNumByte < iMin) return false;
  return true;
}

/*================================================================================================
 * 関数名：checkNumBytesMax()
 * 概要  ：半角なら、「iMax」文字以下入力する。全角なら、「iMax/2」文字以下入力する。
================================================================================================*/
function checkNumBytesMax(s, iMax) {
  var iNumByte = getNumBytes(s);
  if (iNumByte > iMax) return false;
  return true;
}

/*================================================================================================
 * 関数名：getNumBytes()
 * 概要  ：文字列のバイト数を取得。
 * 戻り値：バイト数。
================================================================================================*/
function getNumBytes(s) {
  if (!s) return 0;
  if (s.length <= 0) return 0;
  if (!Check2Byte(s)) return s.length;

  var iNum = 0;
  for (i=0; i<s.length; i++){
    sChar = s.charAt(i);
    if (Check2Byte(sChar)) iNum = iNum + 2;
    else iNum = iNum + 1;
  }
  return iNum;
}

/*=============================================================================================
 * 関数名：Check2Byte
 * 概要  ：半角文字チェック
 * 戻り値：半角-> False
 *         全角-> True
=============================================================================================*/
function Check2Byte(objForm)
{
  var sMatch = objForm.match(/[^a-z0-9ｱ-ﾝｧ-ｫｯﾞﾟｬ-ｮｦ､!"#$%&'()-=^~\\|@`\[{;+:*\]},<.>\/?_]/i);
  if (sMatch){
    return true;
  }else{
    return false;
  }
}

/*=============================================================================================
 * 関数名：GetByteLength
 * 概要  ：文字列のバイト数を取得
 * 戻り値：文字列のバイト数を取得
=============================================================================================*/
function GetByteLength(objForm)
{
  var strCheck;
  var ct;
  strCheck=unescape(escape(objForm.value).split("%00")[0]);
  var c=strCheck.replace(/[^0-9a-zｱ-ﾝ\!\"\#\$\%\&\'\(\)\-\=\^\~\\\|\@\`\[\{\;\+\:\*\]\}\,\<\.\>\/\?\_\ ]/ig,"##");
  return c.length;
}

/*=============================================================================================
 * 関数名：CheckOneBytesKatakana
 * 概要  ：半角カタカナチェック。
 * 戻り値：半角カタカナ：True
 *                   逆：False
=============================================================================================*/
function CheckOneBytesKatakana(objForm)
{
  var sMatch = objForm.match(/[ｱ-ﾝｧ-ｫｯﾞﾟｬ-ｮｦ､、`｡~-]/);
  if (sMatch){
    return true;
  }else{
    return false;
  }
}

/*=============================================================================================
 * 関数名：CheckSpace
 * 概要  ：スペースチェック。
 * 戻り値：スペースがある：True
 *         スペースがなし：False
=============================================================================================*/
function CheckSpace(objForm)
{
  if ((objForm.indexOf(" ") != -1) || (objForm.indexOf("　") != -1)){
    return true;
  }else{
    return false;
  }
}

