// Javascript ////////////////////////////////////////////
// 定数
var tagNameArr = Array( "nameerr", "passerr", "urlerr","ofserr");
// エラーコード
var error_str = Array(
"",
// ユーザー名
"* ユーザー名の書式が正しくありません",
"* ユーザー名が短すぎます",
"* ユーザー名が長すぎます",
"* ユーザー名を入力してください",
// パスワード系
"* パスワードの書式が正しくありません",
"* パスワードが短すぎます",
"* パスワードが長すぎます",
"* パスワードを入力してください",
// URL系
"* URLの書式が正しくありません",
"* URLが短すぎます",
"* URLが長すぎます",
"* URLを入力してください",
// オフセット値
"* カウント開始数の書式が正しくありません",
"* カウント開始数が大きすぎます"
);

var NO_ERROR = 0;
var ERROR_WRONG_CHAR = 1;
var ERROR_TOO_SHORTY = 2;
var ERROR_TOO_LONG   = 3;
var ERROR_NO_INPUT   = 4;
//------
var ERROR_NAME_OFFSET = 0;
var ERROR_PASS_OFFSET = 4;
//------
var ERROR_WRONG_NUM = ERROR_PASS_OFFSET+ERROR_NO_INPUT+1;
var ERROR_TOO_BIG   = ERROR_WRONG_NUM +1;

// inputタグ
var INPUT_NAME   = 0;             // ユーザー名
var INPUT_PASS   = INPUT_NAME+1;  // パスワード
var INPUT_OFFSET = INPUT_PASS+1;  // オフセット
var INPUT_DESIGN = INPUT_OFFSET+15; // サンプル画像
var INPUT_CHKBOX = INPUT_DESIGN+3; // 同意チェックボックス

// ＩＤ等の長さ指定
var ID_LENGTH_MIN  = 6;
var ID_LENGTH_MAX  = 16;
var PASS_LENGTH_MIN= 6;
var PASS_LENGTH_MAX= 32;
var OFS_LENGTH_MAX= 9;

function DataCheck( chkstr,smin,smax ){
    var match_ptn = /^[A-Za-z0-9]+$/;
    var str = chkstr.replace(/^[ 　]+|[ 　]+$/g, ""); // trim
    if( str == '' ) return ERROR_NO_INPUT;
    var len = str.length;
    if( len < smin ) return ERROR_TOO_SHORTY;
    if( len > smax ) return ERROR_TOO_LONG;
    if( !match_ptn.test(str)) return ERROR_WRONG_CHAR;
    return NO_ERROR;
}
function NumCheck( chknum ){
    var match_ptn = /^[0-9]+$/;
    var str = chknum.replace(/^[ 　]+|[ 　]+$/g, ""); // trim
    if( str == '' ) return NO_ERROR;
    if( !match_ptn.test(str)) return ERROR_WRONG_NUM;
    if( str.len > OFS_LENGTH_MAX ) return ERROR_TOO_BIG;
    return NO_ERROR;
}

// 入力項目のチェック
// キー入力毎
function InputCheckEx(){
  var tagObj = document.getElementsByTagName('input');
  var non_err= true;
  // ユーザー名チェック
  if(DataCheck( tagObj[INPUT_NAME].value, ID_LENGTH_MIN, ID_LENGTH_MAX ) == NO_ERROR){
      document.getElementById( tagNameArr[INPUT_NAME]).innerHTML = "";
      // パスワードチェック
      if(DataCheck( tagObj[INPUT_PASS].value, PASS_LENGTH_MIN, PASS_LENGTH_MAX ) == NO_ERROR){
	  document.getElementById( tagNameArr[INPUT_NAME]).innerHTML = "";
	  // URLチェック
      if(DataCheck( tagObj[INPUT_NAME].value, ID_LENGTH_MIN, ID_LENGTH_MAX ) == NO_ERROR){
	  document.getElementById( tagNameArr[INPUT_NAME]).innerHTML = "";
	  // オフセットチェック	  
	  if( tagObj[INPUT_OFFSET].type == 'text' ){
	      if(NumCheck( tagObj[INPUT_OFFSET].value ) == NO_ERROR){
		  document.getElementById( tagNameArr[INPUT_NAME]).innerHTML = "";
		  // 同意チェックボックスのチェック
		  if( tagObj[INPUT_CHKBOX].type == 'checkbox' )
		      non_err = tagObj[INPUT_CHKBOX].checked;
	      }else
		  non_err = false;
	  }
      }else
	  non_err = false;
  }else
      non_err = false;

  document.getElementById( "submit" ).disabled = !non_err;
}

/*
// 送信キーが押された時のチェック
function InputCheck(){
  var tagObj = document.getElementsByTagName('input');
  var non_err= true;
  // ユーザー名チェック
  var err_fl1 = DataCheck( tagObj[INPUT_NAME].value, ID_LENGTH_MIN, ID_LENGTH_MAX );
  document.getElementById( tagNameArr[INPUT_NAME]).innerHTML = error_str[err_fl1 +ERROR_NAME_OFFSET];
  // パスワード
  var err_fl2 = DataCheck( tagObj[INPUT_PASS].value, PASS_LENGTH_MIN, PASS_LENGTH_MAX );
  var str_ofs = err_fl2 + (err_fl2 == NO_ERROR ? 0 : ERROR_PASS_OFFSET);
  document.getElementById( tagNameArr[INPUT_PASS]).innerHTML = error_str[str_ofs];
  document.getElementById( "submit" ).disabled = !(err_fl1==NO_ERROR)&&(err_fl2==NO_ERROR);
}
*/

