/* ログイン画面　クッキー制御 */

// クッキーが存在したらユーザIDとパスワードをセットする
function loadCookie(form) {
    form.userId.value = getCookie("userId");
	return true;
}

// クッキーを取得
function getCookie(key) {
	var tmp = document.cookie + ";";
	var index1 = tmp.indexOf(key, 0);
	if(index1 != -1){
		tmp = tmp.substring(index1,tmp.length);
		var index2 = tmp.indexOf("=",0) + 1;
		var index3 = tmp.indexOf(";",index2);
		return(unescape(tmp.substring(index2,index3)));
	}
	return("");
}

// ログインボタン　クッキーをセット
function setCookie() {
    document.cookie = "userId =" + document.loginForm.userId.value;
    document.loginForm.submit();
    return true;
}


/* ユーザ登録画面　入力チェック */

//「登録」ボタン押下時
function registValidation() {

    var form = document.registerForm;
    var USER_ID = "ユーザID";
    var PASSWORD = "パスワード";
    var NAME_L = "お名前　漢字(姓)";
    var NAME_F = "お名前　漢字(名)";
    var NAME_L_KANA = "お名前　カナ(姓)";
    var NAME_F_KANA = "お名前　カナ(名)";
    var TEL1 = "電話番号(ご自宅)";
    var TEL2 = "電話番号(携帯)";
    var ZIP1 = "郵便番号１";
    var ZIP2 = "郵便番号２";
    var PREF = "都道府県";
    var CITY = "市区町村";
    var TOWN = "町域";
    var BANCHI = "番地";
    var SEX = "性別";
    var BIRTH = "生年月日";
    var PASS_QUESTION_ANSWER = "秘密の質問と秘密の答え";
    var MAIL = "メールアドレス";
    var KAPTCHA = "画像認証コード";

/* ユーザIDチェック */
    var userId = form.userId.value;

	// NULLチェック
	if (!validateRequired(userId, USER_ID)) {
		form.userId.focus();
		return false;
	}

    // 半角英数字チェック
	if (!validateHalfAlphanumeric(userId, USER_ID)) {
		form.userId.focus();
		return false;
    }

    // 桁数チェック
    if (!isNumDigitRange(userId, 3, 20, USER_ID)) {
		form.userId.focus();
		return false;
    }
    
    // 桁数チェック
    if (!isNumDigitRangeMin(userId, 3, USER_ID)) {
		form.userId.focus();
		return false;
    }

/* パスワードチェック */
    var password = form.password.value;
    var password2 = form.password2.value;

	// NULLチェック
	if (!validateRequired(password, PASSWORD)) {
		form.password.focus();
		return false;
	}

    // 半角英数字チェック
	if (!validateHalfAlphanumeric(password, PASSWORD)) {
		form.password.focus();
		return false;
    }

    // 桁数チェック
    if (!isNumDigitRange(password, 3, 20, PASSWORD)) {
		form.password.focus();
		return false;
    }
    // 桁数チェック
    if (!isNumDigitRangeMin(password, 3, PASSWORD)) {
		form.password.focus();
		return false;
    }

    // パスワード再確認チェック
    if (!reconfirCheck(password, password2, PASSWORD)) {
		form.password.focus();
		return false;
    }

/* お名前(漢字)チェック */
    var nameL = form.nameL.value;
    var nameF = form.nameF.value;

	// NULLチェック
	if (!validateRequired(nameL, NAME_L)) {
		form.nameL.focus();
		return false;
	}

    // 全角チェック
	if (!validateZenkaku(nameL, NAME_L)) {
		form.nameL.focus();
		return false;
    }

    // 機種依存文字チェック
    if (!validateSpecialChar(nameL, NAME_L)) {
		form.nameL.focus();
		return false;
    }

	// NULLチェック
	if (!validateRequired(nameF, NAME_F)) {
		form.nameF.focus();
		return false;
	}

    // 全角チェック
	if (!validateZenkaku(nameF, NAME_F)) {
		form.nameF.focus();
		return false;
    }

    // 機種依存文字チェック
    if (!validateSpecialChar(nameF, NAME_F)) {
		form.nameF.focus();
		return false;
    }

/* お名前(カナ)チェック */
    var nameLKana = form.nameLKana.value;
    var nameFKana = form.nameFKana.value;

	// NULLチェック
	if (!validateRequired(nameLKana, NAME_L_KANA)) {
		form.nameLKana.focus();
		return false;
	}

    // 全角カナチェック
	if (!validateZenkaku(nameLKana, NAME_L_KANA) == true) {
		form.nameLKana.focus();
		return false;
    }

    // 全角カナチェック
	if (validateFurigana(nameLKana, NAME_L_KANA) == false) {
		form.nameLKana.focus();
		return false;
    }

    // 機種依存文字チェック
    if (!validateSpecialChar(nameLKana, NAME_L_KANA)) {
		form.nameLKana.focus();
		return false;
    }

	// NULLチェック
	if (!validateRequired(nameFKana, NAME_F_KANA)) {
		form.nameFKana.focus();
		return false;
	}

    // 全角カナチェック
	if (!validateZenkaku(nameFKana, NAME_F_KANA) == true) {
		form.nameFKana.focus();
		return false;
    }

    // 全角カナチェック
	if (validateFurigana(nameFKana, NAME_F_KANA) == false) {
		form.nameFKana.focus();
		return false;
    }

    // 機種依存文字チェック
    if (!validateSpecialChar(nameFKana, NAME_F_KANA)) {
		form.nameFKana.focus();
		return false;
    }

/* 電話番号チェック */
    var tel1 = form.tel1.value;
    var tel2 = form.tel2.value;

	// NULLチェック
    // 固定・携帯のどちらか必須
	if (checkNotNull(tel1) == false && checkNotNull(tel2) == false) {
        alert("電話番号は、ご自宅・携帯電話のどちらかを入力して下さい。");
		form.tel1.focus();
		return false;
	} else

    // 半角数値チェック
	if (tel1 != "" && !validateNumberTel(tel1, TEL1)) {
		form.tel1.focus();
		return false;
	}

    // ご自宅電話番号チェック
	if (tel1 != "" && !validatePhone(tel1, TEL1)) {
		form.tel1.focus();
		return false;
	}

    // 携帯番号チェック
	if (tel2 != "" && !validateMobile(tel2, TEL2)) {
		form.tel2.focus();
		return false;
    }
    // 半角数値チェック
	if (tel2 != "" && !validateNumberTel(tel2, TEL2)) {
		form.tel2.focus();
		return false;
	}

/* 郵便番号チェック */
    var zip1 = form.zip1.value;
    var zip2 = form.zip2.value;

    /* 郵便番号1 */
	// NULLチェック
	if (!validateRequired(zip1, ZIP1)) {
		form.zip1.focus();
		return false;
	}

    // 桁数チェック
    if (!isNumDigit(zip1, 3, ZIP1)) {
		form.zip1.focus();
		return false;
    }

    // 半角数値チェック
	if (zip1 != null && !validateNumber(zip1, ZIP1)) {
		form.zip1.focus();
		return false;
	}

    /* 郵便番号2 */
	// NULLチェック
	if (!validateRequired(zip2, ZIP2)) {
		form.zip2.focus();
		return false;
	}

    // 桁数チェック
    if (!isNumDigit(zip2, 4, ZIP2)) {
		form.zip2.focus();
		return false;
    }

    // 半角数値チェック
	if (zip2 != null && !validateNumber(zip2, ZIP2)) {
		form.zip2.focus();
		return false;
	}

/* 住所チェック */
    var city = form.city.value;
    var town = form.town.value;
    var pref = form.pref.value;

	// NULLチェック
	if (!validateRequired(pref, PREF)) {
		form.pref.focus();
		return false;
	}

	if (!validateRequired(city, CITY)) {
		form.city.focus();
		return false;
	}

	if (!validateRequired(town, TOWN)) {
		form.town.focus();
		return false;
	}

    // 機種依存文字チェック
    if (!validateSpecialChar(city, CITY)) {
		form.city.focus();
		return false;
    }

    // 機種依存文字チェック
    if (!validateSpecialChar(town, TOWN)) {
		form.town.focus();
		return false;
    }

/* 番地チェック */
    var banchi = changeHyphen(form.banchi.value);

    // 生成した文字列で上書き
    form.banchi.value = banchi;

	// NULLチェック
	if (!validateRequired(banchi, BANCHI)) {
		form.banchi.focus();
		return false;
	}

    // 機種依存文字チェック
    if (!validateSpecialChar(banchi, BANCHI)) {
		form.banchi.focus();
		return false;
    }

/*
    // 使用禁止文字チェック
    if (validateSpecialChar(banchi, BANCHI)) {
		form.banchi.focus();
		return false;
    }
*/

/* 生年月日チェック */
    var year = form.year.value;
    var month = form.month.value;
    var date = form.date.value;

	// 選択チェック
	if (year == "" || month == "" || date == "") {
        alert(BIRTH + "を選択してください。");
		form.year.focus();
		return false;
	}


/* 性別チェック */
    var sex = form.sex;

    // 選択チェック
    if (!selectRadioBox(sex, SEX)) {
		sex[0].focus();
		return false;
    }

/* 秘密の答えチェック */
    var passQuestionAnswer = form.passQuestionAnswer.value;

	// NULLチェック
	if (!validateRequired(passQuestionAnswer, PASS_QUESTION_ANSWER)) {
		form.passQuestionAnswer.focus();
		return false;
	}

    // 機種依存文字チェック
    if (!validateSpecialChar(passQuestionAnswer, PASS_QUESTION_ANSWER)) {
		form.passQuestionAnswer.focus();
		return false;
    }

/*
    // 使用禁止文字チェック
    if (validateSpecialChar(passQuestionAnswer, PASS_QUESTION_ANSWER)) {
		form.passQuestionAnswer.focus();
		return false;
    }
*/

/* メールチェック */
    var mail = form.mail.value;
    var mail2 = form.mail2.value;

	// NULLチェック
	if (!validateRequired(mail, MAIL)) {
		form.mail.focus();
		return false;
	}

    // メール形式チェック
    if (!mailCheck(mail, MAIL)) {
		form.mail.focus();
		return false;
    }

    // 半角英数字チェック
	if (!validateHalfAlphanumericMail(mail, MAIL)) {
		form.mail.focus();
		return false;
    }

    // 桁数チェック
    if (!isNumDigitRange(mail, 6, 60, MAIL)) {
		form.mail.focus();
		return false;
    }

    // メール再確認チェック
    if (!reconfirCheck(mail, mail2, MAIL)) {
		form.mail.focus();
		return false;
    }

    // 機種依存文字チェック
    if (!validateSpecialChar(mail, MAIL)) {
		form.mail.focus();
		return false;
    }

/*  画像認証コードチェック */
    var kaptchafield = form.kaptchafield.value;

	// NULLチェック
	if (!validateRequired(kaptchafield, KAPTCHA)) {
		form.kaptchafield.focus();
		return false;
	}
    
    form.submit();
    return true;
}

/* 会員情報変更画面 */

//「登録」ボタン押下時
function registChangeValidation() {

    var form = document.registerForm;

    var NAME_L = "お名前　漢字(姓)";
    var NAME_F = "お名前　漢字(名)";
    var NAME_L_KANA = "お名前　カナ(姓)";
    var NAME_F_KANA = "お名前　カナ(名)";
    var TEL1 = "電話番号(ご自宅)";
    var TEL2 = "電話番号(携帯)";
    var ZIP1 = "郵便番号１";
    var ZIP2 = "郵便番号２";
    var PREF = "都道府県";
    var CITY = "市区町村";
    var TOWN = "町域";
    var BANCHI = "番地";
    var SEX = "性別";
    var BIRTH = "生年月日";
    var MAIL = "メールアドレス";

/* お名前(漢字)チェック */
    var nameL = form.nameL.value;
    var nameF = form.nameF.value;

	// NULLチェック
	if (!validateRequired(nameL, NAME_L)) {
		form.nameL.focus();
		return false;
	}

    // 全角チェック
	if (!validateZenkaku(nameL, NAME_L)) {
		form.nameL.focus();
		return false;
    }

    // 機種依存文字チェック
    if (!validateSpecialChar(nameL, NAME_L)) {
		form.nameL.focus();
		return false;
    }

	// NULLチェック
	if (!validateRequired(nameF, NAME_F)) {
		form.nameF.focus();
		return false;
	}

    // 全角チェック
	if (!validateZenkaku(nameF, NAME_F)) {
		form.nameF.focus();
		return false;
    }

    // 機種依存文字チェック
    if (!validateSpecialChar(nameF, NAME_F)) {
		form.nameF.focus();
		return false;
    }

/* お名前(カナ)チェック */
    var nameLKana = form.nameLKana.value;
    var nameFKana = form.nameFKana.value;

	// NULLチェック
	if (!validateRequired(nameLKana, NAME_L_KANA)) {
		form.nameLKana.focus();
		return false;
	}

    // 全角カナチェック
	if (validateZenkaku(nameLKana, NAME_L_KANA) == true && 
        validateFurigana(nameLKana, NAME_L_KANA) == false) {
		form.nameLKana.focus();
		return false;
    }

    // 機種依存文字チェック
    if (!validateSpecialChar(nameLKana, NAME_L_KANA)) {
		form.nameLKana.focus();
		return false;
    }

	// NULLチェック
	if (!validateRequired(nameFKana, NAME_F_KANA)) {
		form.nameFKana.focus();
		return false;
	}

    // 全角カナチェック
	if (validateZenkaku(nameFKana, NAME_F_KANA) == true && 
        validateFurigana(nameFKana, NAME_F_KANA) == false) {
		form.nameFKana.focus();
		return false;
    }

    // 機種依存文字チェック
    if (!validateSpecialChar(nameFKana, NAME_F_KANA)) {
		form.nameFKana.focus();
		return false;
    }

/* 電話番号チェック */
    var tel1 = form.tel1.value;
    var tel2 = form.tel2.value;

	// NULLチェック
    // 固定・携帯のどちらか必須
	if (checkNotNull(tel1) == false && checkNotNull(tel2) == false) {
        alert("電話番号は、ご自宅・携帯電話のどちらかを入力して下さい。");
		form.tel1.focus();
		return false;
	} else

    // 半角数値チェック
	if (tel1 != "" && !validateNumberTel(tel1, TEL1)) {
		form.tel1.focus();
		return false;
	}

    // ご自宅電話番号チェック
	if (tel1 != "" && !validatePhone(tel1, TEL1)) {
		form.tel1.focus();
		return false;
	}

    // 携帯番号チェック
	if (tel2 != "" && !validateMobile(tel2, TEL2)) {
		form.tel2.focus();
		return false;
    }
    // 半角数値チェック
	if (tel2 != "" && !validateNumberTel(tel2, TEL2)) {
		form.tel2.focus();
		return false;
	}

/* 郵便番号チェック */
    var zip1 = form.zip1.value;
    var zip2 = form.zip2.value;

    /* 郵便番号1 */
	// NULLチェック
	if (!validateRequired(zip1, ZIP1)) {
		form.zip1.focus();
		return false;
	}

    // 桁数チェック
    if (!isNumDigit(zip1, 3, ZIP1)) {
		form.zip1.focus();
		return false;
    }

    // 半角数値チェック
	if (zip1 != null && !validateNumber(zip1, ZIP1)) {
		form.zip1.focus();
		return false;
	}

    /* 郵便番号2 */
	// NULLチェック
	if (!validateRequired(zip2, ZIP2)) {
		form.zip2.focus();
		return false;
	}

    // 桁数チェック
    if (!isNumDigit(zip2, 4, ZIP2)) {
		form.zip2.focus();
		return false;
    }

    // 半角数値チェック
	if (zip2 != null && !validateNumber(zip2, ZIP2)) {
		form.zip2.focus();
		return false;
	}

/* 住所チェック */
    var city = form.city.value;
    var town = form.town.value;
    var pref = form.pref.value;

	// NULLチェック
	if (!validateRequired(pref, PREF)) {
		form.pref.focus();
		return false;
	}

	if (!validateRequired(city, CITY)) {
		form.city.focus();
		return false;
	}

	if (!validateRequired(town, TOWN)) {
		form.town.focus();
		return false;
	}

    // 機種依存文字チェック
    if (!validateSpecialChar(city, CITY)) {
		form.city.focus();
		return false;
    }
    
    // 機種依存文字チェック
    if (!validateSpecialChar(town, TOWN)) {
		form.town.focus();
		return false;
    }

/* 番地チェック */
    var banchi = changeHyphen(form.banchi.value);

    // 生成した文字列で上書き
    form.banchi.value = banchi;

	// NULLチェック
	if (!validateRequired(banchi, BANCHI)) {
		form.banchi.focus();
		return false;
	}
    
    // 機種依存文字チェック
    if (!validateSpecialChar(banchi, BANCHI)) {
		form.banchi.focus();
		return false;
    }
    
/*
    // 使用禁止文字チェック
    if (validateSpecialChar(banchi, BANCHI)) {
		form.banchi.focus();
		return false;
    }
*/

/* 生年月日チェック */
    var year = form.year.value;
    var month = form.month.value;
    var date = form.date.value;

	// 選択チェック
	if (year == "" || month == "" || date == "") {
        alert(BIRTH + "を選択してください。");
		form.year.focus();
		return false;
	}


/* 性別チェック */
    var sex = form.sex;

    // 選択チェック
    if (!selectRadioBox(sex, SEX)) {
		sex[0].focus();
		return false;
    }

/* メールチェック */
    var mail = form.mail.value;
    var mail2 = form.mail2.value;

	// NULLチェック
	if (!validateRequired(mail, MAIL)) {
		form.mail.focus();
		return false;
	}

    // メール形式チェック
    if (!mailCheck(mail, MAIL)) {
		form.mail.focus();
		return false;
    }

    // 半角英数字チェック
	if (!validateHalfAlphanumericMail(mail, MAIL)) {
		form.mail.focus();
		return false;
    }

    // 桁数チェック
    if (!isNumDigitRange(mail, 6, 60, MAIL)) {
		form.mail.focus();
		return false;
    }

    // メール再確認チェック
    if (!reconfirCheck(mail, mail2, MAIL)) {
		form.mail.focus();
		return false;
    }
    form.submit();
    return true;
}


/* 会員情報解除画面 */

//「会員解除」ボタン押下時
function cancelUserValidation() {
    var form = document.registerCancelForm;
    var cancelQ = form.cancelQ;
    var CANCEL_Q = "退会の理由";
    var COMENT = "コメント";
    
    // 選択チェック
    if (!selectRadioBox(cancelQ, CANCEL_Q)) {
		cancelQ[0].focus();
		return false;
    }
    
	/*  コメントチェック */
    var coment = form.coment.value;
    
    // 機種依存文字チェック
    if (!validateSpecialChar(coment, COMENT)) {
		form.coment.focus();
		return false;
    }

    // 桁数チェック
    if (coment != "" && !isNumDigitRange(coment, 0, 200, COMENT)) {
		form.coment.focus();
		return false;
    }
    
	if(confirm("会員を退会致しますが、よろしいですか？")){
	    form.submit();
	    return true;
    }
}

/* パスワード変更画面 */

//「登録」ボタン押下時
function changePasswordValidation() {

    var form = document.changePasswordForm;

/* パスワードチェック */
    var OLD_PASSWORD = "「今までのパスワード」";
    var NEW_PASSWORD = "「新しいパスワード」";
    var oldPassword = form.oldPassword.value;
    var newPassword = form.newPassword.value;
    var newPassword2 = form.newPassword2.value;

	// NULLチェック
	if (!validateRequired(oldPassword, OLD_PASSWORD) ||
        !validateRequired(newPassword, NEW_PASSWORD)) {
		form.newPassword.focus();
		return false;
	}

    // 半角英数字チェック
	if (!validateHalfAlphanumeric(newPassword, NEW_PASSWORD)) {
		form.newPassword.focus();
		return false;
    }

    // 桁数チェック
    if (!isNumDigitRange(newPassword, 3, 20, NEW_PASSWORD)) {
		form.newPassword.focus();
		return false;
    }

    // パスワード再確認チェック
    if (!reconfirCheck(newPassword, newPassword2, NEW_PASSWORD)) {
		form.newPassword.focus();
		return false;
    }

    form.submit();
    return true;
}


/* ＩＤ、パスワード問合わせ画面 */

//「問い合わせ送信」ボタン押下時
function inquiryIdPasswordpValidation() {

    var form = document.registerForm;

    var PASS_QUESTION_ANSWER = "秘密の答え";
    var MAIL = "メールアドレス";

/* 秘密の答えチェック */
    var passQuestionAnswer = form.passQuestionAnswer.value;

	// NULLチェック
	if (!validateRequired(passQuestionAnswer, PASS_QUESTION_ANSWER)) {
		form.passQuestionAnswer.focus();
		return false;
	}

    // 機種依存文字チェック
    if (!validateSpecialChar(passQuestionAnswer, PASS_QUESTION_ANSWER)) {
		form.passQuestionAnswer.focus();
		return false;
    }

/* メールチェック */
    var mail = form.mail.value;

	// NULLチェック
	if (!validateRequired(mail, MAIL)) {
		form.mail.focus();
		return false;
	}

    // メール形式チェック
    if (!mailCheck(mail, MAIL)) {
		form.mail.focus();
		return false;
    }

    // 半角英数字チェック
	if (!validateHalfAlphanumericMail(mail, MAIL)) {
		form.mail.focus();
		return false;
    }

    // 桁数チェック
    if (!isNumDigitRange(mail, 6, 60, MAIL)) {
		form.mail.focus();
		return false;
    }

    // 機種依存文字チェック
    if (!validateSpecialChar(mail, MAIL)) {
		form.mail.focus();
		return false;
    }

    form.submit();
    return true;
}

// ポイント交換画面
function pointExchangeCompleteValidation() {
    var form = document.inquiryForm;
    var POINT_CHANGE = "交換するエステ券選択";
    var pointChange = form.pointChange;

    // 選択チェック
    if (!selectRadioBox(pointChange, POINT_CHANGE)) {
		pointChange[0].focus();
		return false;
    }
    if(confirm("画面の内容でポイント交換を致します。よろしいですか？")){
		form.action = "PointExchangeComplete.do";
		form.submit();
    }
}
