/*-------------------------------------------------------------------------------
 マルチメディアポータル工房　入力チェック共通関数

---------------------------------------------------------------------------------*/

/***********************************/
/* 半角英数字かどうかチェックする。*/
/***********************************/
function isHankakuEiSu(checkString)
{
    var i;
    ch = "";
    for(i=0; i < checkString.length; i++) {
        ch = checkString.substring(i, i+1);
        if(((ch >= "0") && (ch <= "9")) || ((ch >= "a") && (ch <= "z")) || ((ch >= "A") && (ch <= "Z") ) ) {
            continue;
        } else {
            return false;
        }
    }
    return true;
}

/**********************************************/
/* ログインIDとして正しいかどうかチェック     */
/**********************************************/
function CheckLoginWord(checkString)
{
    var i;
    ch = '';
    for(i=0; i < checkString.length; i++) {
        ch = checkString.substring(i, i+1);
        if(((ch >= '0') && (ch <= '9')) || ((ch >= 'a') && (ch <= 'z')) || ((ch >= 'A') && (ch <= 'Z')) || (ch == '-') || (ch == '_')) {
            continue;
        } else {
            return false;
        }
    }
    return true;
}

/**********************************************/
/* パスワードとして正しいかどうかチェック     */
/**********************************************/
function CheckPassWord(checkString)
{
    var i;
    ch = '';
    for(i=0; i < checkString.length; i++) {
        ch = checkString.substring(i, i+1);
        if(((ch >= '0') && (ch <= '9')) || ((ch >= 'a') && (ch <= 'z')) || ((ch >= 'A') && (ch <= 'Z')) || (ch == '-') || (ch == '_')) {            continue;
        } else {
            return false;
        }
    }
    return true;
}

/**********************************************/
/* メールアドレスとして正しいかどうかチェック */
/**********************************************/
function isMail(checkString)
{
  var i;
  ch = "";
  for(i=0; i < checkString.length; i++) {
    ch = checkString.substring(i, i+1);
    if(((ch >= "0") && (ch <= "9")) || ((ch >= "a") && (ch <= "z")) || ((ch >= "A") && (ch <= "Z"))
        || (ch == "_") || (ch == ".") || (ch == "-") || (ch == "@") || (ch == "/") || (ch == "?") ){
      continue;
    }
    else
    {
      return false;
    }
  }
  return true;
}

/**********************************************/
/* 禁止文字かどうかチェック                   */
/**********************************************/
function iskinsi( checkString )
{
    var i;
    ch = '';
    for(i=0; i < checkString.length; i++) {
        ch = checkString.substring(i, i+1);
    }

    var i;
    ch = '';
    chcode = '';
    for(i=0; i < checkString.length; i++) {
        ch = checkString.substring(i, i+1);
        chcode = ch.charCodeAt(0);

        if ( (ch == ',') || ( ch == '&' ) ) {
            return true;
        }

        if((ch == '\"') || (chcode == 0x27) || (ch == '|') || (chcode == 0xA5) || (chcode == 0x5C)) {
            return true;
        }
    }
    return false;
}

/*************************************/
/* URLとして正しいかどうかチェック   */
/*************************************/
function isUrl(checkString)
{
  var i;
  ch = "";
  for(i=0; i < checkString.length; i++) {
    ch = checkString.substring(i, i+1);
    if(((ch >= "0") && (ch <= "9")) || ((ch >= "a") && (ch <= "z")) || ((ch >= "A") && (ch <= "Z"))
        || (ch == ";") || (ch == "/") || (ch == "?") || (ch == ":") || (ch == "@") || (ch == "&")
        || (ch == "=") || (ch == "+") || (ch == "$") || (ch == ",") || (ch == "-") || (ch == "_")
        || (ch == ".") || (ch == "!") || (ch == "~") || (ch == "*") || (ch == "'") || (ch == "(")
        || (ch == ")") || (ch == "%")) {
      continue;
    } else {
      return false;
    }
  }
  return true;
}

/**********************************************/
/* 電話番号として正しいかどうかチェックする。 */
/**********************************************/
function CheckTelNo(checkString)
{
  var i;
  var ch;
  for(i=0; i < checkString.length; i++) {
    ch = checkString.substring(i, i+1);
    if(((ch>='0')&&(ch<='9'))||(ch=='-')){
    }
    else {
      return false;
    }
  }
  return true;
}

/*********************************/
/* 「,」かどうかチェックする。   */
/*********************************/
function isKANMA(checkString) {

    var i;
    ch = '';
    for(i=0; i < checkString.length; i++) {
        ch = checkString.substring(i, i+1);
        if ((ch == ',')) {
            return true;
        }
    }
    return false;
}

/*********************************/
/* 「&」かどうかチェックする。   */
/*********************************/
function isSpChr(checkString) {

    var i;
    ch = '';
    for(i=0; i < checkString.length; i++) {
        ch = checkString.substring(i, i+1);
        if ((ch == '&')) {
            return true;
        }
    }
    return false;
}

/*********************************/
/* 禁則文字のチェック。          */
/*********************************/
function CheckKinsoku(checkString) {

    var i;
    ch = '';
    chcode = '';
    for(i=0; i < checkString.length; i++) {
        ch = checkString.substring(i, i+1);
        chcode = ch.charCodeAt(0);
        if((ch == '\"') || (chcode == 0x27) || (ch == '|') || (chcode == 0xA5) || (chcode == 0x5C)) {
          return true;
        }
    }
    return false;
}

/*************************************/
/* 入力文字をチェックする。          */
/*************************************/
function CheckString(name,testString,checkLen,hankaku)
{
    var strMsg='';
    var ch='';
    //最初に文字数をチェックする
    if(myLen(testString)>checkLen){
        if(hankaku==0){
            strMsg=name+'が最大入力文字数全角'+(checkLen/2)+'（半角'+checkLen+'文字）を超えています。';
        }
        else{
            strMsg=name+'が最大入力文字数半角'+checkLen+'文字を超えています。';
        }
        return strMsg;
    }

    // 禁則文字をチェックする
    ch=CheckKinsoku2(testString);
    if(ch!=''){
        strMsg='「'+ch+'」は使用できません';
        return strMsg;
    }
    return strMsg;
}

/********************************************/
/* 禁則文字のチェック２                     */
/*  CheckString()関数用の禁則文字チェック   */
/********************************************/
function CheckKinsoku2(checkString)
{
  var i;
  ch = '';
  chcode = '';
  for(i=0; i < checkString.length; i++) {
    ch = checkString.substring(i, i+1);
    chcode = ch.charCodeAt(0);
    if((ch == '\"') || (chcode == 0x27) || (ch == '|') || (chcode == 0xA5) || (chcode == 0x5C)) {
      return ch;
    }
  }
  return '';
}

/***************************************/
/*シフト JIS の文字列のバイト数を数える*/
/***************************************/
function myLen(s) {

    var r = 0;
    for (var i = 0; i < s.length; i++) {
        var c = s.charCodeAt(i);
        // Shift_JIS: 0x0 〜 0x80, 0xa0    , 0xa1     〜 0xdf    , 0xfd     〜 0xff
        // Unicode    : 0x0 〜 0x80, 0xf8f0, 0xff61 〜 0xff9f, 0xf8f1 〜 0xf8f3
        if ( (c >= 0x0 && c < 0x81) || (c == 0xf8f0) || (c >= 0xff61 && c < 0xffa0) || (c >= 0xf8f1 && c < 0xf8f4)) {
            r += 1;
        } else {
            r += 2;
        }
    }
    return r;
}

