﻿/**
 * 新規登録に利用するjs
 * @author Gportal
 * @date    $Date: $
 * @version $Revision: $
 *
 */

// チェックフラグ
var regchkflg = 0;

/**
 * （アカウント管理）
 * アカウントないし、ニックネームの
 * 重複チェック用Modalダイアログをオープンする
 * @param chkflg 0: アカウントチェック 1: ニックネームチェック
 *
 */
function registaccount(obj, chkflg){
    var result = "";

    name = 'parent';
    if(chkflg == 0){
        // アカウントチェック
        result = newWindowModal('/tinierme/acchk.do?id='+obj.value,name,330,310,'toolbar=no,location=no,status=no,menubar=no,scrollbars=no');
    }else{
        // ニックネームチェック
        result = newWindowModal('/tinierme/nickchk.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('Processing');
        return false;
    }
    document.chkform.SUBSW.value = '1';

    // user id
    if(chkflg == 0){
        // 数値以外が入力されていないか
        if(!(objvalue.match(/^[0-9|A-Z|a-z]+$/))){
            alert("Your ID must be within 4 and 12 numbers or letters.");
		}else if( (objvalue.length < 4) | (objvalue.length > 12) ){
			alert("Your ID must be within 4 and 12 numbers or letters.");
        }else{
            // idが存在するか
            LoginChk.existId(CallBackAccount,objvalue, chkflg);
        }
    }else{ // nickname
	    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("Your Nickname must be within 4 and 16 characters.");
		}else if(objvalue == "ゲスト" || objvalue == "Account Closed"){
			alert("Your Nickname contains characters that cannot be used.");
        }else{
	        // ニックネームが存在するか
	        LoginChk.existId(CallBackNickname,objvalue, chkflg);
        }
    }
    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){
   		BadWords.isBad(callback_isBad, chkform.id.value);
   	}else{
        // 異常
   		document.getElementById('error_msg').innerHTML = 'The Nickname you\'ve entered is either already in use or contains invalid characters.';
        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 callback_isBad(data){
  	if(data=='notbad'){
    	// 正常
        document.getElementById("checking").style.display = "none";
        document.getElementById("displayid").innerHTML = chkform.id.value;
        document.getElementById("ok").style.display = "block";
    }else{
        // 異常
    	document.getElementById('error_msg').innerHTML = 'The Nickname contains forbidden words.';
        document.getElementById("checking").style.display = "block";
        document.getElementById("default").style.display = "none";
        document.getElementById("warning").style.display = "block";
        document.getElementById("ok").style.display = "none";
    }
}
/**
 * （アカウント管理）
 * 各入力チェックを行い正常であれば、submit()を実行する
 * @param obj フォームオブジェクト
 *
 */
function submitChk(obj){
	DWREngine.setTimeout(1000);		// DWR実行タイムアウト
	DWREngine.setAsync(false);		// 同期的に実行(false で同期)

	if(obj.SUBSW.value == '1'){
		alert('Processing... Please press the button again.');
		obj.SUBSW.value = '0';
		return false;
	}
	obj.SUBSW.value = '1';

	// FaceBookApユーザは既に入力済みのためチェック無
	if (obj.visit.value === 'fbApUser') {
		//生年月日はチェック
		if ( obj.birthMonth ) {
			var birthMonth = obj.birthMonth.value;
			if ( birthMonth.isEmpty() ) {
				alert( 'Please fill in all required fields.' );
		        obj.SUBSW.value = '0';
		        return false;
			}
			if ( !birthMonth.match( /^[0-9]+$/ ) ) {
				alert( getMessage( 'errors.integer', new Array( 'Birthday' ) ) );
		        obj.SUBSW.value = '0';
		        return false;
			}
		}
		if ( obj.birthDay ) {
			var birthDay = obj.birthDay.value;
			if ( birthDay.isEmpty() ) {
				alert( 'Please fill in all required fields.s' );
		        obj.SUBSW.value = '0';
		        return false;
			}
			if ( !birthDay.match( /^[0-9]+$/ ) ) {
				alert( getMessage( 'errors.integer', new Array( 'Birthday' ) ) );
		        obj.SUBSW.value = '0';
		        return false;
			}
		}
		if ( obj.birthYear ) {
			var birthYear = obj.birthYear.value;
			if ( birthYear.isEmpty() ) {
				alert( 'Please fill in all required fields.' );
		        obj.SUBSW.value = '0';
		        return false;
			}
			if ( !birthYear.match( /^[0-9]+$/ ) ) {
				alert( getMessage( 'errors.integer', new Array( 'Birth Year' ) ) );
		        obj.SUBSW.value = '0';
		        return false;
			}
			if ( birthYear.length > 4 ) {
				alert( getMessage( 'errors.maxlength', new Array( 'Birth Year', 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( 'The values entered are not possible birthday and birth year values. \nPlease try again.' );
		        regchkflg = 0;
		        obj.SUBSW.value = '0';
		        return false;
			}
		}

		obj.SUBSW.value = '0';
		obj.submit();
		return false;
	}

	// エラーカウント初期化
	errcnt = 0;

	// IDチェック
	obj.userId.value = obj.userId.value.toLowerCase();
	if(!objnullchk(obj.userId.value)){
		alert('Please fill in all required fields.');
		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 = 'Please fill in all required fields.';
		// 入力文字数不足
		}else if(retnic == -2){
	    	nickname = new Array('Nickname','4','16');
	    	errmsg = getMessage('errors.minlength', nickname);
		// 入力文字数超過
		}else if(retnic == -3){
			errmsg = 'Your Nickname contains more characters than the maximum allowed.';
		// 使用禁止文字(カンマ)
		}else if(retnic == -4){
			errmsg = 'Comma\'s (\') cannot be used.';
		// 禁止ワード
		}else if(retnic == -5){
			errmsg = 'Your Nickname contains forbidden words.';
		// 前後スペース検知
		}else if(retnic == -6){
			errmsg = 'Spaces cannot be used before or after your Nickname.';
		// その他禁止文字
		}else if(retnic == -7){
			errmsg = 'Your Nickname contains forbidden words.';
		}
		alert(errmsg);
        obj.SUBSW.value = '0';
        return false;
	}

	// ユーザIDとニックネームが同一の場合はエラー
	if (obj.userId.value.toLowerCase() == obj.nickname.value.toLowerCase()) {
		alert(getMessage('errors.same.nickname', null));
		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 = getMessage('errors.required', new Array('password'));
		// 入力文字数不足
		}else if(retpw == -2){
	    	errmsg = getMessage('errors.minlength', new Array('Password', '8'));
		// 入力文字数超過
		}else if(retpw == -3){
			errmsg = getMessage('errors.maxlength', new Array('Password', '16'));
		// 使用禁止文字
		}else if(retpw == -4){
			errmsg = getMessage('errors.invalid', new Array('password'));
		// 組合せ種類不足
		}else if(retpw == -5){
			errmsg = getMessage('errors.notdifferent', null);
		}

		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(getMessage('errors.notsame', new Array('password', 'Password (confirmation)')));
			obj.SUBSW.value = '0';
			return false;
		}
	}

	// Exampleとパスワードが異なっているか
	if ("s3lfyt0wn!" == obj.password.value) {
		alert(getMessage('errors.example', null));
		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('You have not selected a Gender.');
        obj.SUBSW.value = '0';
        return false;
    }

    // 生まれた年
	if ( obj.birthMonth ) {
		var birthMonth = obj.birthMonth.value;
		if ( birthMonth.isEmpty() ) {
			alert( 'Please fill in all required fields.' );
	        obj.SUBSW.value = '0';
	        return false;
		}
		if ( !birthMonth.match( /^[0-9]+$/ ) ) {
			alert( getMessage( 'errors.integer', new Array( 'Birthday' ) ) );
	        obj.SUBSW.value = '0';
	        return false;
		}
	}
	if ( obj.birthDay ) {
		var birthDay = obj.birthDay.value;
		if ( birthDay.isEmpty() ) {
			alert( 'Please fill in all required fields.s' );
	        obj.SUBSW.value = '0';
	        return false;
		}
		if ( !birthDay.match( /^[0-9]+$/ ) ) {
			alert( getMessage( 'errors.integer', new Array( 'Birthday' ) ) );
	        obj.SUBSW.value = '0';
	        return false;
		}
	}
	if ( obj.birthYear ) {
		var birthYear = obj.birthYear.value;
		if ( birthYear.isEmpty() ) {
			alert( 'Please fill in all required fields.' );
	        obj.SUBSW.value = '0';
	        return false;
		}
		if ( !birthYear.match( /^[0-9]+$/ ) ) {
			alert( getMessage( 'errors.integer', new Array( 'Birth Year' ) ) );
	        obj.SUBSW.value = '0';
	        return false;
		}
		if ( birthYear.length > 4 ) {
			alert( getMessage( 'errors.maxlength', new Array( 'Birth Year', 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( 'The values entered are not possible birthday and birth year values. \nPlease try again.' );
	        regchkflg = 0;
	        obj.SUBSW.value = '0';
	        return false;
		}
	}

    // idの重複が存在するか
    LoginChk.existId(CallBackReg,obj.userId.value, 0);
    if (regchkflg == 1) {
		alert('That ID has already been selected.');
        regchkflg = 0;
        obj.SUBSW.value = '0';
        return false;
    }
    // ニックネームの重複が存在するか
    LoginChk.existId(CallBackRegNick,obj.nickname.value, 1);
    if (regchkflg == 3 || obj.nickname.value == "Guest"|| obj.nickname.value == "Account Closed") {
		alert('That Nickname has already been selected.');
        regchkflg = 0;
        obj.SUBSW.value = '0';
        return false;
    }

    BadWords.isBad(callback_isBad_2,obj.nickname.value);
    if (isBad) {
		alert('The Nickname contains forbidden words.');
        regchkflg = 0;
        obj.SUBSW.value = '0';
        return false;
    }

    obj.SUBSW.value = '0';

    // フォーム送信する
    if(regchkflg == 0){
    	// エラーがなければ送信
    	obj.submit();
    }
}
var isBad = true;
function callback_isBad_2(data){
	if(data=='notbad'){
		isBad = false;
	}
}
/**
 * （アカウント管理）
 * メールアドレス入力チェックを行い正常であれば、submit()を実行する
 * @param obj フォームオブジェクト
 *
 */
function submitAddressChk(obj){
	DWREngine.setTimeout(1000);		// DWR実行タイムアウト
	DWREngine.setAsync(false);		// 同期的に実行(false で同期)

	// cookie有効性チェックを実施する
	if(!checkCookie()){
		return false;
	}

	if(doublePushChk(obj.SUBSW.value) == '1'){
		//alert('実行中です');
		alert('Processing');
		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 = 'ご利用のメールアドレスを入力してください';
			errmsg = 'Please enter your E-mail address.';
		// 文字数超過
		}else if(retmail == -2){
	    	//errmsg = 'メールアドレスは入力可能文字数を超過しています';
			errmsg = 'Your E-mail address contains more characters than the maximum allowed.';
		// 禁止文字列
		}else if(retmail == -3){
			//errmsg = '「，(カンマ)」は使用できません';
			errmsg = 'Comma\'s (\') cannot be used.';
		// 不正メールアドレス
		}else if(retmail == -4){
	    	//errmsg = 'メールアドレスが不正です(「@」以降も記載してください)';
			errmsg = 'Invalid E-mail address. \nAn E-mail address must contain an \"@\".';
		// 携帯メールアドレス
		}else if(retmail == -5){
	    	//errmsg = 'ケータイのメールアドレスは使用できません';
			errmsg = 'A mobile phone E-mail address cannot be used.';
		// 前後スペース検知
		}else if(retmail == -6){
			//errmsg = 'メールアドレスの前後にはスペースは使用できません';
			errmsg = 'Spaces cannot be used before or after your E-mail address.';
		// その他使用禁止文字
		}else if(retmail == -7){
			//errmsg = 'メールアドレスに使用禁止文字が含まれています';
			errmsg = 'Your E-mail address contains forbidden words.';
		}
		alert(errmsg);
        obj.SUBSW.value = '0';
        return false;
	}

    // 重複するメールアドレスが存在するか
    LoginChk.existId(CallBackRegMail,mailAddress, 2);
    if (regchkflg == 2) {
        //alert('すでに登録されているメールアドレスです');
		alert('This E-mail address has already been registered.');
        regchkflg = 0;
        obj.SUBSW.value = '0';
        return false;
    }

    obj.SUBSW.value = '0';

	// 小文字で送信する。
	obj.mailAddress.value = mailAddress;

    // フォーム送信する
    if(regchkflg == 0){
    	// エラーがなければ送信
    	obj.submit();
    }
}

 /**
 * （アカウント管理）
 * 重複チェック後のアカウント用コールバック関数
 * 戻った結果を判定し、その結果をグローバル変数に持たせる
 * 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( 'TinierMe ID' ) ) );
        return false;
    }

    if ( betweenchk( userId, 4, 12 ) != 0 || !userId.match(/^[0-9|a-z]+$/) ) {
		alert( getMessage( 'errors.min.to.maxlength', new Array( 'TinierMe ID', 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();
}

/**
 * 規会員登録用パスワードチェック
 *
 * @param inString
 * @return エラーなし:0 / 未入力:-1 / 入力文字数不足:-2 / 入力文字数超過:-3 / 入力禁止文字列:-4 / 組合せ種類不足:-5
 */
function passwordchk(inString) {
	if (!objnullchk(inString)) {
		return -1;
	}

	resultnum = betweenchk(inString, 8, 16);

	if (resultnum == -1) {
		// 入力文字数不足
		return -2;
	}
	if (resultnum == -2) {
		// 入力文字数超過
		return -3;
	}
    if (!inString.match(/^[-0-9a-z\!\"\'\#\$\%\&\(\)\*\+\,\.\/\:\;\<\>\=\?\@\[\]\\\^\_\`\{\}\|\~]+$/)) {
		// 入力禁止文字
		return -4;
	}
    if (!checkTypeCount()) {
    	return -5;
    }

	/**
	 * パスワードに含まれている文字の種類が、3種類以上存在するか判定します。
	 *
	 * @param password
	 * @return 判定結果(存在する:true / 存在しない:false)
	 */
	function checkTypeCount() {
	    var numeric = false;
	    var lowerCaseAlphabet = false;
	    var symbol = false;
	    var type = 0;

		for (var i = 0; i < inString.length; i++) {
	    	var word = inString.substring(i, i+1);

	    	if (word.match("^[0-9]+$")) numeric = true;
	    	if (word.match("^[a-z]+$")) lowerCaseAlphabet = true;
	    	if (word.match("^[\\!\"'#$%&()*+,./:;<>=?@\\[\\]\\\\^_`{}|~]+$")) symbol = true;
	    }

		if (numeric) type++;
		if (lowerCaseAlphabet) type++;
		if (symbol) type++;

	    return type >= 3;
	}

	return 0;
}

/**
 * 新規会員登録用ニックネームチェック
 * @author aida
 * @param inString 入力文字
 */
function nicknamechk(inString){

	if(!objnullchk(inString)){
		// 未入力
		return -1;
	}

	// 入力文字数チェック
	resultnum = betweenchk(inString, 4, 16);
	if(resultnum == -1){
		// 文字数不足
		return -2;
	}else if(resultnum == -2){
		// 文字数超過
		return -3;
	}

/*
	// 入力禁止文字チェック1
	if(inString == "ゲスト"){
		return -4;
    }
*/

	// 入力禁止文字チェック2(カンマ検知)
	ngString=",";
	for (i=0;i<inString.length;i++){
		if(ngString.indexOf(inString.charAt(i),0)>=0){
			return -4;
		}
	}

	// 入力禁止文字チェック3(禁止文字列検知)
	NG.checkBadLanguage(CallBackReg, inString);
	if(regchkflg == 0){
	}else{
		return -5;
	}

	// 入力禁止文字チェック5(前後のスペースを検知)
	if((inString.match(/^ /)) || (inString.match(/ $/))
	|| (inString.match(/^　/)) || (inString.match(/　$/))){
		return -6;
	}

	// 入力禁止文字チェック4(その他使用禁止文字検知)
	ngString="':;\"";
	for (i=0;i<inString.length;i++){
		if(ngString.indexOf(inString.charAt(i),0)>=0){
			return -7;
		}
	}
	return 0;
}

/**
 * 新規会員登録用メールアドレスチェック
 * @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;
	}

//	add_hotmail = inString.match(/.@.*hotmail.com.*/);
//	add_live = inString.match(/.@.*live.com.*/);
//	add_windowslive = inString.match(/.@.*windowslive.com.*/);
//	add_msn = inString.match(/.@.*msn.com.*/);

//	if(add_hotmail || add_live || add_windowslive || add_msn){
//		return -8;
//  }


	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('登録中です');
		alert('Registering');
		form.SUBSW.value = '0';
		return false;
	}
	form.SUBSW.value = '1';
	form.timezonoffset.value = new Date().getTimezoneOffset();
	form.action = action;
	form.submit();
}

 /**
 * 会員登録完了後のログイン処理時に<br>
 * メインフレームの初期表示ページを指定する場合に使用する。
 *
 * @param url メインフレームの初期表示ページ
 */
function submitLoginForm(url){
	document.loginForm.mainUrl.value = url;
	document.loginForm.submit();
}

/**
 * （アカウント管理）
 * メールアドレス入力チェックを行い正常であれば、submit()を実行する
 * アクションは「/tinierme/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('実行中です');
		alert('Processing');
		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 = 'ご利用のメールアドレスを入力してください';
			errmsg = 'Please enter your E-mail address.';
		// 文字数超過
		}else if(retmail == -2){
			//errmsg = 'メールアドレスは入力可能文字数を超過しています';
			errmsg = 'Your E-mail address contains more characters than the maximum allowed.';
		// 禁止文字列
		}else if(retmail == -3){
			//errmsg = '「，(カンマ)」は使用できません';
			errmsg = 'Comma\'s (\') cannot be used.';
		// 不正メールアドレス
		}else if(retmail == -4){
			//errmsg = 'メールアドレスが不正です(「@」以降も記載してください)';
			errmsg = 'Invalid E-mail address. \nAn E-mail address must contain an \"@\".';
		// 携帯メールアドレス
		}else if(retmail == -5){
			//errmsg = 'ケータイのメールアドレスは使用できません';
			errmsg = 'A mobile phone E-mail address cannot be used.';
		// 前後スペース検知
		}else if(retmail == -6){
			//errmsg = 'メールアドレスの前後にはスペースは使用できません';
			errmsg = 'Spaces cannot be used before or after your E-mail address.';
		// その他使用禁止文字
		}else if(retmail == -7){
			//errmsg = 'メールアドレスに使用禁止文字が含まれています';
			errmsg = 'Your E-mail address contains forbidden words.';
		}else if(retmail == -8){
			errmsg = 'We are temporarily having problems with MSN-related mail service providers\n(name@hotmail.com, name@live.com, name@windowslive.com, name@msn.com).\nPlease use a different email address until this problem is resolved.';
		}
		alert(errmsg);
		obj.SUBSW.value = '0';
		return false;
	}

	// 重複するメールアドレスが存在するか
	LoginChk.existId(CallBackRegMail,mailAddress, 2);
	if (regchkflg == 2) {
		//alert('すでに登録されているメールアドレスです');
		alert('This E-mail address has already been registered.');
		regchkflg = 0;
		obj.SUBSW.value = '0';
		return false;
	}

	obj.SUBSW.value = '0';

	// 小文字で送信する。
	obj.mailAddress.value = mailAddress;

	// フォーム送信する
	if(regchkflg == 0){
		// 遷移先アクションを指定する
		obj.action='/tinierme/tempRegist.do';
		// エラーがなければ送信
		obj.submit();
	}

}

/**
 * Item確認画面へ遷移する
 *
 * @param hairId  HairstylesＩＤ
 * @param topId トップスＩＤ
 * @param bottomId ボトムＩＤ
 *
 */
function toSelectItemConfirm(hairId, topId, bottomId ,bodycolorId) {
	document.regist.action = '/tinierme/registDetailSelectItemConfirm.do';
	document.regist.clothesIdHair.value = hairId;
	document.regist.clothesIdTop.value = topId;
	document.regist.clothesIdBottom.value = bottomId;
	document.regist.bodyColorId.value = bodycolorId;
	document.regist.submit();
}
