function getCookieVal (offset) {
     var endstr = document.cookie.indexOf (";", offset);
     if (endstr == -1)
       endstr = document.cookie.length;
     return unescape(document.cookie.substring(offset, endstr));
}

function GetCookie (name) {
     var arg = name + "=";
     var alen = arg.length;
     var clen = document.cookie.length;
     var i = 0;
     while (i < clen) {
       var j = i + alen;
       if (document.cookie.substring(i, j) == arg){
         return getCookieVal (j);
    }
       i = document.cookie.indexOf(" ", i) + 1;
       if (i == 0) break; 
     }
     return null;
}

function SetCookie (name, value) {
     var argv = SetCookie.arguments;
     var argc = SetCookie.arguments.length;
     var expires = (argc > 2) ? argv[2] : null;
     var path = (argc > 3) ? argv[3] : null;
     var domain = (argc > 4) ? argv[4] : null;
     var secure = (argc > 5) ? argv[5] : false;
     document.cookie = name + "=" + escape (value) +
       ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
       ((path == null) ? "" : ("; path=" + path)) +
       ((domain == null) ? "" : ("; domain=" + domain)) +
       ((secure == true) ? "; secure" : "");
}

function DeleteCookie (name) {
     var exp = new Date();
     exp.setTime (exp.getTime() - 1);  // This cookie is history
     var cval = GetCookie (name);
     document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}

function getselectvalue( obj )
{
    var i ;
    var value ;

    i = obj.selectedIndex;
        value = obj.options[i].value ;

    return value ;
}

function execheck(form)
{
    var msg = "";

    if (( form.userid.value == "" ) || 
        ( form.userid.value.length < 2) || 
        ( IsZenkakuString( form.userid.value )) ||
        ( ! IsAlphaNumericString( form.userid.value ))) {
       msg = msg + "ユーザIDが正しくありません。2文字以上の半角数字とアルファベットのみ入力可能です。\n";
    }
    
    if (( form.password.value == "" ) || ( form.password.value.length < 4) || 
        ( !IsAlphaNumericString( form.password.value ))) {
       msg = msg + "パスワードが正しくありません。4文字以上の半角英数字のみ入力可能です。\n"
    }
    if (( form.name_kanji1.value == "" ) || ( form.name_kanji2.value == "" )) {
       msg = msg + "お名前(漢字)が正しくありません。\n";
    }
    if (( form.name_kana1.value == "" ) || ( form.name_kana2.value == "" )) {
       msg = msg + "お名前(カナ)が正しくありません。\n";
    }
//    if ( !IsMobileMailAddress( form.keitai_email.value )) {
//       msg = msg + "携帯メールアドレスが正しくありません。\n";
//    }
    if ( !IsMailAddress( form.email.value )) {
       msg = msg + "PC メールアドレス(確認用)が正しくありません。\n";
    }
    if ( getselectvalue( form.age ) == "選択" ) {
       msg = msg + "年齢が選択されていません。\n";
    }
    if ( ! form.agree.checked ) {
       msg = msg + "利用規約に同意されていません。\n";
    }
    if( msg != "" ) {
        alert( msg );
        return false;
    }

    return true;
}

function IsMailAddress( mail ) {
    ml = /.+@.+\..+/; // チェック方式
    if(!mail.match(ml)) {
        return false;
    }

    return true;
}

function IsMobileMailAddress( mail ) 
{
    ml = (/\w+@(docomo|vadafone|softbank|pdn)\.ne\.jp$/)        // チェック方式

    if(!mail.match(ml)) {
        return false;
    }

    return true;
}


/**
* 全角であるかをチェックします。
* 
* @param チェックする値
* @return ture : 全角 / flase : 全角以外
*/
function IsZenkakuString(value) {
  for (var i = 0; i < value.length; ++i) {
    var c = value.charCodeAt(i);
    //  半角カタカナは不許可
    if (c < 256 || (c >= 0xff61 && c <= 0xff9f)) {
      return false;
    }
  }
  return true;
}

/**
 * [関数名] IsAlphaNumericString
 * [機　能] 半角英字チェック
 * [説　明] 文字列の中に半角英字（a-z,A-Z）以外の文字が含まれているか調べる
 *　　　　　半角スペースも半角英字とみなす
 * [引　数]
 * @param  str 文字列
 * @return true(含まれていない) | false(含まれている)
*/
function IsAlphaNumericString(str){
    for(var i=0 ; i<str.length; i++){
        var code=str.charCodeAt(i);
        if ((65<=code && code<=90) || (97<=code && code<=122) || 
            (48<= code && code <=57) ) {
            /* 半角英字（a-z,A-Z）の文字コード範囲 */
            /* 数値（0-9）文字コード範囲 */
            ;
        }else{
            return false;
        }
    }
    return true;
}

function IsNumericString( str ) 
{
    for(var i=0 ; i<str.length; i++){
        var code=str.charCodeAt(i);
        if (48<= code && code <=57) {
            /* 数値（0-9）文字コード範囲 */
            ;
        }else{
            return false;
        }
    }
    return true;
}

function commit(form)
{
    var rtn ;

    rtn = execheck(form) ;
    if (rtn == true ) {
        form.submit();
    }
}

function openagree(){
    window.open( "./agree.html",
                 "Agree",
                 "width=600,height=350,toolbar=no,scrollbars=yes,resizable=yes");
}
