/**
 * 新規登録に利用するjs
 * @author Gportal
 * @date    $Date: $
 * @version $Revision: $
 *
 */

// チェックフラグ
var regchkflg = 0;

/**
 * （アカウント管理）
 * アカウントないし、ニックネームの
 * 重複チェック用Modalダイアログをオープンする
 * @param chkflg 0: アカウントチェック 1: ニックネームチェック
 *
 */
function mailAdrChk(obj){
    var result = "";
    name = 'parent';
    result = newWindowModal('/barvillage2/mailChk.do?id='+obj.value,name,330,310,'toolbar=no,location=no,status=no,menubar=no,scrollbars=no');

    if(result != undefined){
        // 結果を入力欄に出力
        obj.value = result;
    }
}

/**
 * （アカウント管理）
 * アカウントないし、ニックネームの
 * 重複チェックを行う
 * @param obj フォームオブジェクト名(<form name="フォーム名">)
 * @param chkflg チェック方法 0: アカウントチェック 1:ニックネーム
 *
 */
function accountChk(objvalue, chkflg)
{
    if(doublePushChk(document.chkform.SUBSW.value) == '1'){
        alert('実行中です');
        return false;
    }
    document.chkform.SUBSW.value = '1';

    // H18/04/20
    if(chkflg == 0){
        // 数値以外が入力されていないか
        if(!(objvalue.match(/^[0-9|A-Z|a-z]+$/))){
            alert("IDの入力は半角英数字で４文字～１２文字までです");
		}else if( (objvalue.length < 4) | (objvalue.length > 12) ){
			alert("IDの入力は半角英数字で４文字～１２文字までです");
        }else{
            // idが存在するか
            //LoginChk.idChk(CallBackAccount,objvalue, chkflg);
            LoginChk.existId(objvalue, chkflg, CallBackAccount);
        }
    }else{
	    var dmy,i,count=0;

	    for(i=0;i<objvalue.length;i++){
			dmy=escape(objvalue.charAt(i));
			if(dmy.length < 4){
				count++;
			}else{
				count+=2;
			}
		}
		if( (count < 4) | (count > 16) ){
			alert("ニックネームの入力は全角２～８(半角４～１６)文字までです");
		}else if(objvalue == "ゲスト" || objvalue == "退会されています"){
			alert("使用できない文字列が含まれています");
        }else{
	        // ニックネームが存在するか
	        //LoginChk.idChk(CallBackNickname,objvalue, chkflg);
	        LoginChk.existId(objvalue, chkflg, CallBackNickname);
        }
    }
    document.chkform.SUBSW.value = '0';
}

/**
 * （アカウント管理）
 * submitボタン等の2重押し防止チェック
 * hidden用フラグの戻り値により判定結果を返す
 * @param obj hidden用フラグ
 * @return 判定後の戻り値 1:実行中 0:停止中
 */
function doublePushChk(obj){
    if(obj == 1){
        return 1;
    }else{
        return 0;
    }
}

/**
 * （アカウント管理）
 * 重複チェック後のアカウント用コールバック関数
 * 戻った結果により表示する内容を書き換える
 * @param obj フォームオブジェクト名(<form name="フォーム名">)
 * @param data コールバック後の結果
 *
 */
    function CallBackAccount(data){
        if(data == 0){
            // 正常
            document.getElementById("checking").style.display = "none";
            document.getElementById("displayid").innerHTML = chkform.id.value;
            document.getElementById("ok").style.display = "block";
        }else{
            // 異常
            document.getElementById("checking").style.display = "block";
            document.getElementById("default").style.display = "none";
            document.getElementById("warning").style.display = "block";
            document.getElementById("ok").style.display = "none";
        }
    }

 /**
 * （アカウント管理）
 * 重複チェック後のアカウント用コールバック関数
 * 戻った結果により表示する内容を書き換える
 * @param data コールバック後の結果
 *
 */
    function CallBackNickname(data){
        if(data == 0){
            // 正常
            document.getElementById("checking").style.display = "none";
            document.getElementById("displayid").innerHTML = chkform.id.value;
            document.getElementById("ok").style.display = "block";
        }else{
            // 異常
            document.getElementById("checking").style.display = "block";
            document.getElementById("default").style.display = "none";
            document.getElementById("warning").style.display = "block";
            document.getElementById("ok").style.display = "none";
        }
    }



function clearAlert(){
	document.getElementById("mailaddress_none").style.display = "none";
	document.getElementById("mailaddress_format").style.display = "none";
	document.getElementById("mailaddress_exist").style.display = "none";
	document.getElementById("mailaddress_ok").style.display = "none";
	document.getElementById("mail_none").style.display = "none";
	document.getElementById("sex_none").style.display = "none";
	document.getElementById("year_none").style.display = "none";
	document.getElementById("year_format_err").style.display = "none";
	document.getElementById("year_err").style.display = "none";
	document.getElementById("month_none").style.display = "none";
	document.getElementById("month_format_err").style.display = "none";
	document.getElementById("month_err").style.display = "none";
	document.getElementById("day_none").style.display = "none";
	document.getElementById("day_format_err").style.display = "none";
	document.getElementById("day_err").style.display = "none";
	document.getElementById("birth_err").style.display = "none";
	document.getElementById("secure_none").style.display = "none";
}


/**
 * （アカウント管理）
 * 各入力チェックを行い正常であれば、submit()を実行する
 * @param obj フォームオブジェクト
 *
 */
function submitShiftChk(obj){
	DWREngine.setTimeout(1000);		// DWR実行タイムアウト
	DWREngine.setAsync(false);		// 同期的に実行(false で同期)

	clearAlert();

	if(obj.SUBSW.value == '1'){
		alert('実行中です');
		obj.SUBSW.value = '0';
		return false;
	}
	obj.SUBSW.value = '1';

	// エラーカウント初期化
	errcnt = 0;

	// メールアドレスのチェック
	if ( obj.mailAddress ) {
		var mailAddress = obj.mailAddress.value;
		mailAddress = mailAddress.replace(/(^\s+)|(\s+$)/g, "");	// trim
		mailAddress = mailAddress.toLowerCase();			// 小文字変換

		if ( mailAddress.isEmpty() ) {
			document.getElementById("mailaddress_none").style.display = "block";
			obj.SUBSW.value = '0';
			return false;
		}

		if ( addressChk(mailAddress) == false ) {
			document.getElementById("mailaddress_format").style.display = "block";
			obj.SUBSW.value = '0';
			return false;
		}

		LoginChk.existId(mailAddress, 2, CallBackRegMail);
		if (regchkflg == 2) {
			document.getElementById("mailaddress_exist").style.display = "block";
			obj.SUBSW.value = '0';
			return false;
		}

		obj.mailAddress.value = mailAddress;
	}

	var mailmagRadiochk = 0;
	// メールマガジン配信がチェックされているか
	if (obj.officialMailMagazine.length) {
		for (i = 0; i < obj.officialMailMagazine.length; i++) {
			if (obj.officialMailMagazine[i].checked) {
				mailmagRadiochk = 1;
			}
		}
	} else {
		if (obj.officialMailMagazine.checked) {
			mailmagRadiochk = 1;
		}
	}

	// メールマガジン配信がチェックされているか
	if(mailmagRadiochk == 0){
		document.getElementById("mail_none").style.display = "block";
		obj.SUBSW.value = '0';
		return false;
	}

	var sexualRadiochk = 0;
	// 性別がチェックされているか
	if (obj.sex.length) {
		for (i = 0; i < obj.sex.length; i++) {
			if (obj.sex[i].checked) {
				sexualRadiochk = 1;
			}
		}
	} else {
		if (obj.sex.checked) {
			sexualRadiochk = 1;
		}
	}

	// 性別がチェックされているか
	if(sexualRadiochk == 0){
		document.getElementById("sex_none").style.display = "block";
		obj.SUBSW.value = '0';
		return false;
	}

	// 生まれた年
	if ( obj.birthYear ) {
		var birthYear = obj.birthYear.value;
		if ( birthYear.isEmpty() ) {
			document.getElementById("year_none").style.display = "block";
			obj.SUBSW.value = '0';
			return false;
		}

		if ( !birthYear.match( /^[0-9]+$/ ) ) {
			document.getElementById("year_format_err").style.display = "block";
			obj.SUBSW.value = '0';
			return false;
		}
		if ( 3 >= birthYear.length ||  birthYear.length > 4 ) {
			document.getElementById("year_err").style.display = "block";
			obj.SUBSW.value = '0';
			return false;
		}
	}

	// 誕生日
	if ( obj.birthMonth ) {
		var birthMonth = obj.birthMonth.value;
		if ( birthMonth.isEmpty() ) {
			document.getElementById("month_none").style.display = "block";
			obj.SUBSW.value = '0';
			return false;
		}
		if ( !birthMonth.match( /^[0-9]+$/ ) ) {
			document.getElementById("month_format_err").style.display = "block";
			obj.SUBSW.value = '0';
			return false;
		}
		if(0 >= birthMonth || birthMonth > 12){
			document.getElementById("month_err").style.display = "block";
			obj.SUBSW.value = '0';
			return false;
		}
	}

	if ( obj.birthDay ) {
		var birthDay = obj.birthDay.value;
		if ( birthDay.isEmpty() ) {
			document.getElementById("day_none").style.display = "block";
			obj.SUBSW.value = '0';
			return false;
		}
		if ( !birthDay.match( /^[0-9]+$/ ) ) {
			document.getElementById("day_format_err").style.display = "block";
			obj.SUBSW.value = '0';
			return false;
		}
		if(0 >= birthDay || birthDay > 31){
			document.getElementById("day_err").style.display = "block";
			obj.SUBSW.value = '0';
			return false;
		}
	}

	if ( obj.birthYear && obj.birthMonth && obj.birthDay ) {
		if ( !isValidDate( obj.birthYear.value, obj.birthMonth.value, obj.birthDay.value ) ) {
			document.getElementById("birth_err").style.display = "block";
			regchkflg = 0;
			obj.SUBSW.value = '0';
			return false;
		}
	}

	// 画像認証チェック
	if(!objnullchk(obj.captcharStr.value)){
		document.getElementById("secure_none").style.display = "block";
		obj.SUBSW.value = '0';
		return false;
	}

	obj.SUBSW.value = '0';

	// フォーム送信する
	if(regchkflg == 0){
		// エラーがなければ送信
		obj.submit();
	}
}

function submitAddressChk(obj){
	DWREngine.setTimeout(1000);		// DWR実行タイムアウト
	DWREngine.setAsync(false);		// 同期的に実行(false で同期)

	clearAlert();

	// cookie有効性チェックを実施する
	if(!checkCookie()){
		return false;
	}

	if(doublePushChk(obj.SUBSW.value) == '1'){
		alert('実行中です');
		obj.SUBSW.value = '0';
		return false;
	}
	obj.SUBSW.value = '1';

	// エラーカウント初期化
	errcnt = 0;

	// メールアドレスチェック
	//retmail = mailaddchk(mailAddress);

	// メールアドレスのチェック
	if ( obj.mailAddress ) {
		var mailAddress = obj.mailAddress.value;
		mailAddress = mailAddress.replace(/(^\s+)|(\s+$)/g, "");	// trim
		mailAddress = mailAddress.toLowerCase();			// 小文字変換

		if ( mailAddress.isEmpty() ) {
			document.getElementById("mailaddress_none").style.display = "block";
			obj.SUBSW.value = '0';
			return false;
		}

		if ( addressChk(mailAddress) == false ) {
			document.getElementById("mailaddress_format").style.display = "block";
			obj.SUBSW.value = '0';
			return false;
		}

		LoginChk.existId(mailAddress, 2, CallBackRegMail);
		if (regchkflg == 2) {
			document.getElementById("mailaddress_exist").style.display = "block";
			obj.SUBSW.value = '0';
			return false;
		}
	}

	obj.SUBSW.value = '0';

	// 小文字で送信する。
	obj.mailAddress.value = mailAddress;

	document.getElementById("mailaddress_ok").style.display = "block";

}

function addressChk(mailAddress){
	DWREngine.setTimeout(1000);		// DWR実行タイムアウト
	DWREngine.setAsync(false);		// 同期的に実行(false で同期)

	// エラーカウント初期化
	errcnt = 0;

	//小文字にしておく
	mailAddress = mailAddress.toLowerCase();

	// メールアドレスチェック
	retmail = mailaddchk(mailAddress);
	if(retmail < 0){
		// 未入力
		if(retmail == -1){
	        errmsg = 'ご利用のメールアドレスを入力してください';
		// 文字数超過
		}else if(retmail == -2){
	    	errmsg = 'メールアドレスは入力可能文字数を超過しています';
		// 禁止文字列
		}else if(retmail == -3){
			errmsg = '「，(カンマ)」は使用できません';
		// 不正メールアドレス
		}else if(retmail == -4){
	    	errmsg = 'メールアドレスが不正です(「@」以降も記載してください)';
		// 携帯メールアドレス
		}else if(retmail == -5){
	    	errmsg = 'ケータイのメールアドレスは使用できません';
		// 前後スペース検知
		}else if(retmail == -6){
			errmsg = 'メールアドレスの前後にはスペースは使用できません';
		// その他使用禁止文字
		}else if(retmail == -7){
			errmsg = 'メールアドレスに使用禁止文字が含まれています';
		}
		//alert(errmsg);
	        return false;
	}
}


/**
 * （アカウント管理）
 * メールアドレス入力チェックを行う
 * @param obj フォームオブジェクト
 *
 */

/**
 * （アカウント管理）
 * 重複チェック後のアカウント用コールバック関数
 * 戻った結果を判定し、その結果をグローバル変数に持たせる
 * 0正常 1失敗
 * @param data コールバック後の結果
 *
 */

function CallBackReg(data){
    if(data == true){
        regchkflg = 1;
    }else{
        regchkflg = 0;
    }
}

 /**
 * （アカウント管理）
 * メールアドレス重複チェック後のアカウント用コールバック関数
 * 戻った結果を判定し、その結果をグローバル変数に持たせる
 * 0正常 1失敗
 * @param data コールバック後の結果
 *
 */

function CallBackRegMail(data){
    if(data == true){
        regchkflg = 2;
    }else{
        regchkflg = 0;
    }
}

 /**
 * （アカウント管理）
 * ニックネーム重複チェック後のアカウント用コールバック関数
 * 戻った結果を判定し、その結果をグローバル変数に持たせる
 * @param data コールバック後の結果
 *
 */

function CallBackRegNick(data){
    if(data == true){
        regchkflg = 3;
    }else{
        regchkflg = 0;
    }
}

 /**
 * （アカウント管理）
 * 指定したURLへ、submit()を実行する
 * @param URL 遷移先
 * @param obj フォームオブジェクト
 */
function submitJump(URL, obj){
    // 指定したURLへアクション先を設定
    obj.action = URL;
    obj.submit();
}

function validateSubmitForget( userId ) {
    if( userId.isEmpty() ){
        alert( getMessage( 'errors.required', new Array( '@gamesID' ) ) );
        return false;
    }

    if ( betweenchk( userId, 4, 12 ) != 0 || !userId.match(/^[0-9|a-z]+$/) ) {
		alert( getMessage( 'errors.min.to.maxlength', new Array( '@gamesID', 4, 12 ) ) );
		return false;
	}

	return true;
}

function submitForget( isEnable, url, userId ) {
	if ( !isEnable ) {
		return;
	}

	var form = document.createElement('form');
	form.method = 'POST';
	form.action = url;

	input = document.createElement('input');
	input.name = 'userId';
	input.type = 'hidden';
	input.value = userId;
	form.appendChild(input);

	document.appendChild(form);
    form.submit();
}


/**
 * 新規会員登録用メールアドレスチェック
 * @author aida
 * @param inString 入力文字
 */
function mailaddchk(inString){

	// 未入力
	if(!objnullchk(inString)){
		return -1;
	}

	// 入力文字超過
	resultnum = betweenchk(inString, -1, 128);
	if(resultnum == -2){
		return -2;
    }

	// カンマチェック
	ngString = ",";
	for (i=0;i<inString.length;i++){
		if(ngString.indexOf(inString.charAt(i),0)==0){
			return -3;
		}
	}

	// メールアドレスチェック
	var cnt = 0;
	ngString = "@";
	for (i=0;i<inString.length;i++){
		if(ngString.indexOf(inString.charAt(i),0)==0){
			cnt = cnt + 1;
		}
	}
	// 検知結果
	if(cnt == 0){
		return -4;
	}

    // 携帯メールアドレスチェック
    // ・EZWeb
	add_ezweb = inString.match(/.@.*ezweb.ne.jp.*/);
	// ・ドコモ
	add_docomo = inString.match(/.@.*docomo.ne.jp.*/);
	// ・ボーダフォン
	add_voda = inString.match(/.@.*vodafone.ne.jp.*/);
	// ・ソフトバンク
	add_softbank = inString.match(/.@.*softbank.ne.jp.*/);
	// ・PHS
	add_phs = inString.match(/.@.*pdx.ne.jp.*/);
	// ・Jフォン－北海道
	add_jh_d = inString.match(/.@.*jp-d.ne.jp.*/);
	// ・Jフォン－東北
	add_jh_h = inString.match(/.@.*jp-h.ne.jp.*/);
	// ・Jフォン－東京
	add_jh_t = inString.match(/.@.*jp-t.ne.jp.*/);
	// ・Jフォン－東海
	add_jh_c = inString.match(/.@.*jp-c.ne.jp.*/);
	// ・Jフォン－北陸
	add_jh_r = inString.match(/.@.*jp-r.ne.jp.*/);
	// ・Jフォン－関西
	add_jh_k = inString.match(/.@.*jp-k.ne.jp.*/);
	// ・Jフォン－中国
	add_jh_n = inString.match(/.@.*jp-n.ne.jp.*/);
	// ・Jフォン－四国
	add_jh_s = inString.match(/.@.*jp-s.ne.jp.*/);
	// ・Jフォン－九州
	add_jh_q = inString.match(/.@.*jp-q.ne.jp.*/);
	// ・ディズニー
	add_disney = inString.match(/.@.*disney.ne.jp.*/);
	// ・イーモバイル
	add_emobile = inString.match(/.@.*emnet.ne.jp.*/);

	if(add_ezweb || add_docomo || add_voda || add_phs || add_softbank ||
		add_jh_d || add_jh_h || add_jh_t || add_jh_c || add_jh_r || add_jh_k ||
		add_jh_n || add_jh_s || add_jh_q || add_disney || add_emobile){
		return -5;
    }

	// 入力禁止文字チェック1(前後のスペースを検知)
	if((inString.match(/^ /)) || (inString.match(/ $/))
	|| (inString.match(/^　/)) || (inString.match(/　$/))){
		return -6;
	}

	// 入力禁止文字チェック2
	if((inString.match( /[^a-zA-Z0-9@\.\!\#\$\%\&\'\*\+\-\/\=\?\^\_\`\{\|\}\~]+/))){
		return -7;
	}

	return 0;
}

 /**
 * （トップページ）
 * ログイン処理時に使用する<br>
 * 入力がされていないかどうかをチェックする
 * @param data 入力されたデータ
 *
 */
function objnullchk(data){
  var result = true;
  if(data == null){
    result = false;
  }
  if(data == ""){
    result = false;
  }
  return result;
}

function submitConfirm(form,action){
//	if(form.SUBSW.value == '1'){
//		alert('登録中です');
//		form.SUBSW.value = '0';
//		return false;
//	}
//	form.SUBSW.value = '1';

	form.action = action;
	form.submit();
}

 /**
 * 会員登録完了後のログイン処理時に<br>
 * メインフレームの初期表示ページを指定する場合に使用する。
 *
 * @param url メインフレームの初期表示ページ
 */
function submitLoginForm(url){
	document.loginForm.mainUrl.value = url;
	document.loginForm.submit();
}

/**
 * （アカウント管理）
 * メールアドレス入力チェックを行い正常であれば、submit()を実行する
 * アクションは「/atgames/tempRegist」に遷移させる
 *
 * @param obj フォームオブジェクト
 *
 */
function submitAddressChkSendAction(obj){
	DWREngine.setTimeout(1000);		// DWR実行タイムアウト
	DWREngine.setAsync(false);		// 同期的に実行(false で同期)

	// cookie有効性チェックを実施する
	if(!checkCookie()){
		return false;
	}

	if(doublePushChk(obj.SUBSW.value) == '1'){
		alert('実行中です');
		obj.SUBSW.value = '0';
		return false;
	}

	document.regist.SUBSW.value = '1';

	// エラーカウント初期化
	errcnt = 0;

	//小文字にしておく
	var mailAddress = document.getElementsByName('tempMailAddress')[0].value;
	mailAddress = mailAddress.toLowerCase();

	// メールアドレスチェック
	retmail = mailaddchk(mailAddress);
	if(retmail < 0){
		// 未入力
		if(retmail == -1){
			errmsg = 'ご利用のメールアドレスを入力してください';
		// 文字数超過
		}else if(retmail == -2){
			errmsg = 'メールアドレスは入力可能文字数を超過しています';
		// 禁止文字列
		}else if(retmail == -3){
			errmsg = '「，(カンマ)」は使用できません';
		// 不正メールアドレス
		}else if(retmail == -4){
			errmsg = 'メールアドレスが不正です(「@」以降も記載してください)';
		// 携帯メールアドレス
		}else if(retmail == -5){
			errmsg = 'ケータイのメールアドレスは使用できません';
		// 前後スペース検知
		}else if(retmail == -6){
			errmsg = 'メールアドレスの前後にはスペースは使用できません';
		// その他使用禁止文字
		}else if(retmail == -7){
			errmsg = 'メールアドレスに使用禁止文字が含まれています';
		}
		alert(errmsg);
		obj.SUBSW.value = '0';
		return false;
	}

	// 重複するメールアドレスが存在するか
	LoginChk.existId(mailAddress, 2, CallBackRegMail);
	if (regchkflg == 2) {
		alert('すでに登録されているメールアドレスです');
		regchkflg = 0;
		obj.SUBSW.value = '0';
		return false;
	}

	obj.SUBSW.value = '0';

	// 小文字で送信する。
	obj.mailAddress.value = mailAddress;

	// フォーム送信する
	if(regchkflg == 0){
		// 遷移先アクションを指定する
		obj.action='/barvillage2/tempRegist.do';
		// エラーがなければ送信
		obj.submit();
	}

}



/**
 * （アカウント管理）
 * メールアドレス入力チェックを行い正常であれば、submit()を実行する
 * アクションは「/atgames/tempRegist」に遷移させる
 *
 * @param obj フォームオブジェクト
 *
 */
function submitAddressChkSendAction2(obj){
	DWREngine.setTimeout(1000);		// DWR実行タイムアウト
	DWREngine.setAsync(false);		// 同期的に実行(false で同期)

	// cookie有効性チェックを実施する
	if(!checkCookie()){
		return false;
	}

	if(doublePushChk(obj.SUBSW.value) == '1'){
		alert('実行中です');
		obj.SUBSW.value = '0';
		return false;
	}

	document.regist.SUBSW.value = '1';

	// エラーカウント初期化
	errcnt = 0;

	//小文字にしておく
	var mailAddress = document.getElementsByName('tempMailAddress')[0].value;
	mailAddress = mailAddress.toLowerCase();

	// メールアドレスチェック
	retmail = mailaddchk(mailAddress);
	if(retmail < 0){
		// 未入力
		if(retmail == -1){
			errmsg = 'ご利用のメールアドレスを入力してください';
		// 文字数超過
		}else if(retmail == -2){
			errmsg = 'メールアドレスは入力可能文字数を超過しています';
		// 禁止文字列
		}else if(retmail == -3){
			errmsg = '「，(カンマ)」は使用できません';
		// 不正メールアドレス
		}else if(retmail == -4){
			errmsg = 'メールアドレスが不正です(「@」以降も記載してください)';
		// 携帯メールアドレス
		}else if(retmail == -5){
			errmsg = 'ケータイのメールアドレスは使用できません';
		// 前後スペース検知
		}else if(retmail == -6){
			errmsg = 'メールアドレスの前後にはスペースは使用できません';
		// その他使用禁止文字
		}else if(retmail == -7){
			errmsg = 'メールアドレスに使用禁止文字が含まれています';
		}
		alert(errmsg);
		obj.SUBSW.value = '0';
		return false;
	}

	// 重複するメールアドレスが存在するか
	LoginChk.existId(mailAddress, 2, CallBackRegMail);
	if (regchkflg == 2) {
		alert('すでに登録されているメールアドレスです');
		regchkflg = 0;
		obj.SUBSW.value = '0';
		return false;
	}

	obj.SUBSW.value = '0';

	// 小文字で送信する。
	obj.mailAddress.value = mailAddress;

	// フォーム送信する
	if(regchkflg == 0){
		// 遷移先アクションを指定する
		obj.action='/barvillage2/openId/sendOpenIdRegisterMail.do';
		// エラーがなければ送信
		obj.submit();
	}

	return false;
}

/**
 * （アカウント管理）
 * 各入力チェックを行い正常であれば、submit()を実行する
 * @param obj フォームオブジェクト
 *
 */
function submitChkForOpenId(obj, registerAgain){
	DWREngine.setTimeout(1000);		// DWR実行タイムアウト
	DWREngine.setAsync(false);		// 同期的に実行(false で同期)

	if(obj.SUBSW.value == '1'){
		alert('実行中です');
		obj.SUBSW.value = '0';
		return false;
	}
	obj.SUBSW.value = '1';

	// エラーカウント初期化
	errcnt = 0;

	// IDチェック
	obj.userId.value = obj.userId.value.toLowerCase();
	if(!objnullchk(obj.userId.value)){
		alert('入力されていない項目があります');
		obj.SUBSW.value = '0';
        return false;

    }else if(betweenchk(obj.userId.value, 4, 12) != 0 || (!obj.userId.value.match(/^[0-9|A-Z|a-z]+$/))){
    	account = new Array('ID','4','12');
    	alert(getMessage('errors.min.to.maxlength', account));
        obj.SUBSW.value = '0';
        return false;
    }

    // ニックネームチェック
/*	retnic = nicknamechk(obj.nickname.value);
	if(retnic < 0){
		// 未入力
		if(retnic == -1){
			errmsg = '入力されていない項目があります';
		// 入力文字数不足
		}else if(retnic == -2){
	    	nickname = new Array('ニックネーム','4','16');
	    	errmsg = getMessage('errors.minlength', nickname);
		// 入力文字数超過
		}else if(retnic == -3){
	    	errmsg = 'ニックネームは入力可能文字数を超過しています';
		// 使用禁止文字(カンマ)
		}else if(retnic == -4){
			errmsg = '「，(カンマ)」は使用できません';
		// 禁止ワード
		}else if(retnic == -5){
			errmsg = 'ニックネームに使用禁止文字列が含まれています';
		// 前後スペース検知
		}else if(retnic == -6){
			errmsg = 'ニックネームの前後にはスペースは使用できません';
		// その他禁止文字
		}else if(retnic == -7){
			errmsg = 'ニックネームに使用禁止文字列が含まれています';
		}
		alert(errmsg);
        obj.SUBSW.value = '0';
        return false;
	}
*/
	// パスワードチェック
	obj.password.value = obj.password.value.toLowerCase();
	retpw = passwordchk(obj.password.value);
	if(retpw < 0){
		// 未入力
		if(retpw == -1){
	    	errmsg = '希望するパスワードを入力してください';
		// 入力文字数不足
		}else if(retpw == -2){
	    	password = new Array('パスワード','6','16');
	    	errmsg = getMessage('errors.minlength', password);
		// 入力文字数超過
		}else if(retpw == -3){
	    	errmsg = 'パスワードは入力可能文字数を超過しています';
		// 使用禁止文字
		}else if(retpw == -4){
	    	errmsg = 'パスワードでは' + obj.password.value + 'は使用禁止文字です';
		}
		alert(errmsg);
        obj.SUBSW.value = '0';
        return false;
	}

	// 確認用パスワードチェック
	obj.password_confilm.value = obj.password_confilm.value.toLowerCase();
	// パスワードの入力内容が双方とも同じか
	if(retpw == 0){
		if (obj.password.value != obj.password_confilm.value){
			alert('違うパスワードが入力されています');
			obj.SUBSW.value = '0';
			return false;
		}
	}

    var sexualRadiochk = 0;
    // 性別がチェックされているか
     if (obj.sex.length) {
        for (i = 0; i < obj.sex.length; i++) {
            if (obj.sex[i].checked) {
                sexualRadiochk = 1;
            }
        }
    } else {
        if (obj.sex.checked) {
            sexualRadiochk = 1;
        }
    }

    // 性別がチェックされているか
    if(sexualRadiochk == 0){
        alert('性別が選択されてません');
        obj.SUBSW.value = '0';
        return false;
    }
    // 生まれた年
	if ( obj.birthMonth ) {
		var birthMonth = obj.birthMonth.value;
		if ( birthMonth.isEmpty() ) {
			alert( '入力されていない項目があります' );
	        obj.SUBSW.value = '0';
	        return false;
		}
		if ( !birthMonth.match( /^[0-9]+$/ ) ) {
			alert( getMessage( 'errors.integer', new Array( '誕生日' ) ) );
	        obj.SUBSW.value = '0';
	        return false;
		}
	}
	if ( obj.birthDay ) {
		var birthDay = obj.birthDay.value;
		if ( birthDay.isEmpty() ) {
			alert( '入力されていない項目があります' );
	        obj.SUBSW.value = '0';
	        return false;
		}
		if ( !birthDay.match( /^[0-9]+$/ ) ) {
			alert( getMessage( 'errors.integer', new Array( '誕生日' ) ) );
	        obj.SUBSW.value = '0';
	        return false;
		}
	}
	if ( obj.birthYear ) {
		var birthYear = obj.birthYear.value;
		if ( birthYear.isEmpty() ) {
			alert( '入力されていない項目があります' );
	        obj.SUBSW.value = '0';
	        return false;
		}
		if ( !birthYear.match( /^[0-9]+$/ ) ) {
			alert( getMessage( 'errors.integer', new Array( '生まれた年' ) ) );
	        obj.SUBSW.value = '0';
	        return false;
		}
		if ( birthYear.length > 4 ) {
			alert( getMessage( 'errors.maxlength', new Array( '生まれた年', 4 ) ) );
	        obj.SUBSW.value = '0';
	        return false;
		}
	}
	if ( obj.birthYear && obj.birthMonth && obj.birthDay ) {
		if ( !isValidDate( obj.birthYear.value, obj.birthMonth.value, obj.birthDay.value ) ) {
			alert( '誕生日、生まれた年に存在しない日付が入力されています。もう一度お確かめください' );
	        regchkflg = 0;
	        obj.SUBSW.value = '0';
	        return false;
		}
	}

    // idの重複が存在するか
    LoginChk.existId(obj.userId.value, 0, CallBackReg);
    if (regchkflg == 1) {
        alert('すでにidが登録されています');
        regchkflg = 0;
        obj.SUBSW.value = '0';
        return false;
    }

    obj.SUBSW.value = '0';

    // フォーム送信する
    if(regchkflg == 0){
    	// エラーがなければ送信
    	obj.submit();
    }
}

/**
 * アイテム確認画面へ遷移する
 *
 * @param hairId ヘアスタイルＩＤ
 * @param topId トップスＩＤ
 * @param bottomId ボトムＩＤ
 *
 */
function toSelectItemConfirm(hairId, topId, bottomId) {
	document.regist.action = '/atgames/registDetailSelectItemConfirm.do';
	document.regist.clothesIdHair.value = hairId;
	document.regist.clothesIdTop.value = topId;
	document.regist.clothesIdBottom.value = bottomId;
	document.regist.submit();
}

function submitEdit(kind , obj){
	obj.kind.value = kind;
	obj.action = "/barvillage2/editProfile.do";
	obj.submit();
}

function profileConfirm(kind , obj){
	obj.kind.value = kind;
	obj.action = "/barvillage2/profileConfirm.do";
	if(kind == 1 || kind == 3){
		obj.submit();
	}else if(kind == 2){
		submitAddressChkSendAction3(obj);
	}
	return false;
}

function submitAddressChkSendAction3(obj){
	DWREngine.setTimeout(1000);		// DWR実行タイムアウト
	DWREngine.setAsync(false);		// 同期的に実行(false で同期)

	// cookie有効性チェックを実施する
	if(!checkCookie()){
		return false;
	}

	if(doublePushChk(obj.SUBSW.value) == '1'){
		alert('実行中です');
		obj.SUBSW.value = '0';
		return false;
	}

	obj.SUBSW.value = '1';

	// エラーカウント初期化
	errcnt = 0;

	//小文字にしておく
	var mailAddress = obj.mailAddress.value;
	mailAddress = mailAddress.toLowerCase();

	// メールアドレスチェック
	retmail = mailaddchk(mailAddress);
	if(retmail < 0){
		// 未入力
		if(retmail == -1){
			errmsg = 'ご利用のメールアドレスを入力してください';
		// 文字数超過
		}else if(retmail == -2){
			errmsg = 'メールアドレスは入力可能文字数を超過しています';
		// 禁止文字列
		}else if(retmail == -3){
			errmsg = '「，(カンマ)」は使用できません';
		// 不正メールアドレス
		}else if(retmail == -4){
			errmsg = 'メールアドレスが不正です(「@」以降も記載してください)';
		// 携帯メールアドレス
		}else if(retmail == -5){
			errmsg = 'ケータイのメールアドレスは使用できません';
		// 前後スペース検知
		}else if(retmail == -6){
			errmsg = 'メールアドレスの前後にはスペースは使用できません';
		// その他使用禁止文字
		}else if(retmail == -7){
			errmsg = 'メールアドレスに使用禁止文字が含まれています';
		}
		alert(errmsg);
		obj.SUBSW.value = '0';
		return false;
	}

	// 重複するメールアドレスが存在するか
	LoginChk.existId(mailAddress, 2, CallBackRegMail);
	if (regchkflg == 2) {
		alert('すでに登録されているメールアドレスです');
		regchkflg = 0;
		obj.SUBSW.value = '0';
		return false;
	}

	obj.SUBSW.value = '0';

	// 小文字で送信する。
	obj.mailAddress.value = mailAddress;

	// フォーム送信する
	if(regchkflg == 0){
		// エラーがなければ送信
		obj.submit();
	}

	return false;
}

function editComplete(obj){
	obj.action = "/barvillage2/editComplete.do"
	obj.submit();
}

/*-------------------------------------------------------------------------------------*/

/**
 * メッセージ初期化
 */
function shiftClearAlert(){
	document.getElementById("login_id_none").style.display = "none";
	document.getElementById("login_id_no_exist").style.display = "none";
	document.getElementById("login_pass_none").style.display = "none";
	document.getElementById("login_pass_err").style.display = "none";
	document.getElementById("shift_comp_user").style.display = "none";
}

var bv1userPass;

function shiftInputCheck(obj, action){
	DWREngine.setTimeout(1000);		// DWR実行タイムアウト
	DWREngine.setAsync(false);		// 同期的に実行(false で同期)

	shiftClearAlert();

	if(obj.SUBSW.value == '1'){
		alert('実行中です');
		obj.SUBSW.value = '0';
		return false;
	}
	obj.SUBSW.value = '1';

	// ログインID入力チェック
	if(!objnullchk(obj.userID.value)){
		document.getElementById("login_id_none").style.display = "block";
		obj.SUBSW.value = '0';
		return false;
	}

	// パスワード入力チェック
	if(!objnullchk(obj.password.value)){
		document.getElementById("login_pass_none").style.display = "block";
		obj.SUBSW.value = '0';
		return false;
	}

	// 移行済みかチェック
	ShiftChk.chkShiftUser(obj.userID.value, CallBack);
	if (regchkflg == 0) {
		document.getElementById("login_id_no_exist").style.display = "block";
		regchkflg = 0;
		obj.SUBSW.value = '0';
		return false;
	}else if(regchkflg == 2) {
		document.getElementById("shift_comp_user").style.display = "block";
		regchkflg = 0;
		obj.SUBSW.value = '0';
		return false;
	}

	// 存在するIDかチェック
	ShiftChk.chkShiftUserBv1(obj.userID.value, CallBackBv1User);
	if (bv1userPass == "") {
		document.getElementById("login_id_no_exist").style.display = "block";
		bv1userPass = "";
		obj.SUBSW.value = '0';
		return false;
	}

	// パスワードが正しいかチェック
	if(obj.password.value != bv1userPass){
		document.getElementById("login_pass_err").style.display = "block";
		bv1userPass = "";
		obj.SUBSW.value = '0';
		return false;
	}

	obj.SUBSW.value = '0';
	obj.action = action;
	obj.submit();

}

function CallBack(data){
	if(data == 0){
		regchkflg = 0;
	}else if(data == 1){
		regchkflg = 1;
	}else if(data == 2){
		regchkflg = 2;
	}
}

function CallBackBv1User(data){
	if(data == ""){
		bv1userPass = "";
	}else{
		bv1userPass = data;
	}
}

