/* * Create : Yeongmin Han * Date : 2007/12/17 * Ajax webform by Member Regist */ /* 0) Birthday AutoLoad Parts */ function updateDateBox(obj) { var form = document.member_join_input_form; var now = new Date(); var objY = form.year; var objM = form.month; var objD = form.day; var i = 0; if (obj === null) { // Init Year objY.selectedIndex = 0; objM.selectedIndex = 0; objD.selectedIndex = 0; for (i = now.getFullYear(); i >= (now.getFullYear()-100); i--) { objY.options[objY.options.length] = new Option(i.toString(), i.toString()); } for (i = (objM.options.length - 1); i > 0; i--) { objM.options[i] = null; } for (i = (objD.options.length - 1); i > 0; i--) { objD.options[i] = null; } } else { if (obj == objY) { objM.selectedIndex = 0; objD.selectedIndex = 0; for (i = (objM.options.length - 1); i > 0; i--) { objM.options[i] = null; } for (i = (objD.options.length - 1); i > 0; i--) { objD.options[i] = null; } if (objY.selectedIndex > -1) { for (i = 1; i <= 12; i++) { if (i < 10) { objM.options[objM.options.length] = new Option(i.toString(), "0" + i.toString()); } else { objM.options[objM.options.length] = new Option(i.toString(), i.toString()); } } objM.focus(); } } else { if (obj == objM) { objD.selectedIndex = 0; for (i = (objD.options.length - 1); i > 0; i--) { objD.options[i] = null; } if (objM.selectedIndex > 0) { var maxDay; if ((objM.options[objM.selectedIndex].value == "01") || (objM.options[objM.selectedIndex].value == "03") || (objM.options[objM.selectedIndex].value == "05") || (objM.options[objM.selectedIndex].value == "07") || (objM.options[objM.selectedIndex].value == "08") || (objM.options[objM.selectedIndex].value == "10") || (objM.options[objM.selectedIndex].value == "12")) { maxDay = 31; } else { if (objM.options[objM.selectedIndex].value == "02") { if (parseInt(objY.options[objY.selectedIndex].value) % 4 === 0) { maxDay = 29; } else { maxDay = 28; } } else { maxDay = 30; } } for (i = 1; i <= maxDay; i++) { if (i < 10) { objD.options[objD.options.length] = new Option(i.toString(), "0" + i.toString()); } else { objD.options[objD.options.length] = new Option(i.toString(), i.toString()); } } objD.focus(); } } } } return; } function selectByValue(obj, val) { var i = 0; if (!obj.type) { if (obj[0].type == "radio") { for (i = 0; i < obj.length; i++) { if (obj[i].value == val) { obj[i].checked = true; return; } } } } else { if (obj.type.match("select*")) { for (i = 0; i < obj.options.length; i++) { if (obj.options[i].value == val) { obj.selectedIndex = i; return; } } } } } function checkByValue(obj, val){ if(obj.type == "checkbox"){ if(val == "true"){ obj.checked = true; } } } /* 1) User ID Check Part */ function inputUserID() { idkeyup(); var form = document.member_join_input_form; //form.login_id.value = trim(form.login_id.value); form.login_id.value = chg_jun_ban(form.login_id.value); form.login_id.value = form.login_id.value.toUpperCase(); if (form.login_id.value === "") { return false; } if (!checkLengthWithZengaku(form.login_id.value, 12, 4)) { showUserInfoResult2("false/login_id/半角英数字(4~12文字)で入力してください。"); return false; } if (!isValidId(form.login_id.value)) { showUserInfoResult2("false/login_id/半角英数字(4~12文字)で入力してください。"); return false; } if (!left_checkIsZenkaku(form.login_id.value)) { showUserInfoResult2("false/login_id/間違ったID形式です。"); return false; } if (UserInfoCheckbyAjax("login_id", form.login_id.value)) { idCheckOk(); return true; } else { return false; } } /* 2) User Nick Check Part */ function inputnickCheck() { nickkeyup(); var form = document.member_join_input_form; form.nickname.value = trim(form.nickname.value); form.nickname.value = chg_jun_ban(form.nickname.value); if (form.nickname.value.split(" ").join("") === "") { return false; } if (!checkLengthWithZengaku(form.nickname.value, 20, 4)) { showUserInfoResult2("false/nickname/半角英数字(4~20文字),全角(2~10文字)以内で入力してください。"); return false; } if (UserInfoCheckbyAjax("nickname", form.nickname.value)) { nickCheckOk(); return true; } else { return false; } } /* 3) Password Check Part */ function checkpwdstatus() { var form = document.member_join_input_form; var pwd1 = form.login_password.value; var ratingMsgs0 = "false/login_password/6\u6587\u5b57\u4ee5\u4e0a\u300116\u6587\u5b57\u4ee5\u4e0b\u306e\u534a\u89d2\u82f1\u6570\u5b57\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002"; var ratingMsgs1 = "true/login_password/\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30ec\u30d9\u30eb\uff1a\u4f4e"; var ratingMsgs2 = "true/login_password/\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30ec\u30d9\u30eb\uff1a\u4e2d"; var ratingMsgs3 = "true/login_password/\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30ec\u30d9\u30eb\uff1a\u9ad8"; var ratingMsgs4 = "true/login_password/\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30ec\u30d9\u30eb\uff1a\u826f\u597d"; var ratingMsgs5 = "false/login_password/\u0049\u0044\u3068\u540c\u3058\u30d1\u30b9\u30ef\u30fc\u30c9\u306f\u5165\u529b\u3067\u304d\u307e\u305b\u3093\u3002"; var ratingMsgs6 = "false/login_password/\u5168\u3066\u540c\u4e00\u6587\u5b57\u306e\u305f\u3081\u767b\u9332\u3067\u304d\u307e\u305b\u3093\u3002"; var ratingMsgs7 = "false/login_password/\u534a\u89d2\u6570\u5b57\u3068\u534a\u89d2\u82f1\u5b57\u3092\u7d44\u307f\u5408\u308f\u305b\u305f\u30d1\u30b9\u30ef\u30fc\u30c9\u306b\u3057\u3066\u304f\u3060\u3055\u3044\u3002"; var stroutMsg = ""; // if (!pwd1.match(/^[0-9a-zA-Z!@#$%^&*()_+=]{6,16}$/)) { if (!pwd1.match(/^[0-9a-zA-Z]{6,16}$/)) { stroutMsg = ratingMsgs0; if (pwd1.length === 0) { return false; } showUserInfoResult2(stroutMsg); return false; } if(form.login_id.value == pwd1.toUpperCase()){ showUserInfoResult2(ratingMsgs5); return false; } var pwFirstCode = pwd1.charAt(0); var re = new RegExp("[^"+pwFirstCode+"]+"); if(!pwd1.match(re)){ showUserInfoResult2(ratingMsgs6); return false; } if(!(pwd1.match(/[^0-9]+/) && pwd1.match(/[^a-zA-Z]+/))){ showUserInfoResult2(ratingMsgs7); return false; } switch (pwd1.length) { case 16: case 15: case 14: case 13: stroutMsg = ratingMsgs4; break; case 12: case 11: case 10: stroutMsg = ratingMsgs3; break; case 9: case 8: stroutMsg = ratingMsgs2; break; case 7: case 6: stroutMsg = ratingMsgs1; break; } if (showUserInfoResult2(stroutMsg)) { return true; } else { return false; } } function inputUserPwd_F() { var form = document.member_join_input_form; var pwd1 = form.login_password.value; var ratingMsgs5 = "false/login_password/\u0049\u0044\u3068\u540C\u3058\u30D1\u30B9\u30EF\u30FC\u30C9\u306F\u5165\u529B\u3067\u304D\u307E\u305B\u3093\u3002"; var ratingMsgs6 = "false/login_password/\u5168\u3066\u540c\u4e00\u6587\u5b57\u306e\u305f\u3081\u767b\u9332\u3067\u304d\u307e\u305b\u3093\u3002"; var ratingMsgs7 = "false/login_password/\u534a\u89d2\u6570\u5b57\u3068\u534a\u89d2\u82f1\u5b57\u3092\u7d44\u307f\u5408\u308f\u305b\u305f\u30d1\u30b9\u30ef\u30fc\u30c9\u306b\u3057\u3066\u304f\u3060\u3055\u3044\u3002"; var stroutMsg = "false/login_password/6\u6587\u5b57\u4ee5\u4e0a\u300116\u6587\u5b57\u4ee5\u4e0b\u306e\u534a\u89d2\u82f1\u6570\u5b57\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002"; if (pwd1.split(" ").join("") === "") { return false; } if(form.login_id.value == pwd1.toUpperCase()){ showUserInfoResult2(ratingMsgs5); return false; } var pwFirstCode = pwd1.charAt(0); var re = new RegExp("[^"+pwFirstCode+"]+"); if(!pwd1.match(re)){ showUserInfoResult2(ratingMsgs6); return false; } if(!(pwd1.match(/[^0-9]+/) && pwd1.match(/[^a-zA-Z]+/))){ showUserInfoResult2(ratingMsgs7); return false; } if (!checkpwdstatus()) { showUserInfoResult2(stroutMsg); return false; } else { return true; } } function inputUserPwd_R() { var form = document.member_join_input_form; var pwd2 = form.login_password_confirm.value; var stroutMsg = "false/login_password_confirm/6\u6587\u5b57\u4ee5\u4e0a\u300116\u6587\u5b57\u4ee5\u4e0b\u306e\u534a\u89d2\u82f1\u6570\u5b57\u3092\u5165\u3057\u3066\u304f\u3060\u3055\u3044\u3002"; if (pwd2.split(" ").join("") === "") { return false; } if (!checkpwdstatus()) { showUserInfoResult2(stroutMsg); return false; } else { return true; } } function inputcomparePwd() { var form = document.member_join_input_form; var pwd1 = form.login_password.value; var pwd2 = form.login_password_confirm.value; var stroutMsg = "false/login_password_confirm/\u30d1\u30b9\u30ef\u30fc\u30c9\u304c\u4e00\u81f4\u3057\u307e\u305b\u3093\u3002"; if (pwd2.split(" ").join("") === "") { return false; } if (pwd1 == pwd2) { stroutMsg = "true/login_password_confirm/"; } form.login_password_confirm.value == ""; if (showUserInfoResult2(stroutMsg)) { return true; } else { return false; } } /* 4) User NAME Check Part */ function inputusernameCheck() { var form = document.member_join_input_form; form.username.value = trim(form.username.value); form.username.value = chg_jun_ban(form.username.value); if (form.username.value.split(" ").join("") == "") { return false; } if (!checkLengthWithZengaku(form.username.value, 20, 4)) { showUserInfoResult2("false/username/半角英数字(4~20文字),全角(2~10文字)以内で入力してください。"); return false; } if (UserInfoCheckbyAjax("username", form.username.value)) { return true; } else { return false; } } function inputemailCheck(){ mailkeyup(); var form = document.member_join_input_form; var tempmail = trim(form.email.value); if (form.email.value.split(" ").join("") == "") { return false; } if(tempmail.length==0){ showUserInfoResult2("false/email/メールアドレスを入力してください。"); return false; } if(!isValiEmail(tempmail)) { showUserInfoResult2("false/email/メールアドレスの形式に合っていません。こ確認ください。") return false; } //check mobile phone var mailServer = tempmail.indexOf("@"); var tmpphonemail = tempmail.substring(mailServer+1,50); //var blockemail = new Array("docomo.ne.jp","docomo-camera.ne.jp","ebilling.ne.jp","docomo-bill.ne.jp","mobachemail.ne.jp","mail.visualnet.mopera.ne.jp","d.vodafone.ne.jp","h.vodafone.ne.jp","t.vodafone.ne.jp","c.vodafone.ne.jp","r.vodafone.ne.jp","k.vodafone.ne.jp","n.vodafone.ne.jp","s.vodafone.ne.jp","q.vodafone.ne.jp","ezweb.ne.jp","ido.ne.jp","sky.tkk.ne.jp","sky.tkc.ne.jp","sky.tkc.ne.jp","pdx.ne.jp"); // 現在使われているドメインのみ無効 var regObj1 = new RegExp("@(docomo|softbank|disney|ezweb|[dhtkrsnqc]\.vodafone|pdx|d[kij]\.pdx|wm\.pdx|em\.nttpnet|pipopa|.*sky\.tu-ka|.*sky\.tk[ck]|jp-[dhtkrsnqc]|t[2-9]\.ezweb)\.ne\.jp$","i"); var regObj2 = new RegExp("@(bandai\.jp|i\.softbank\.jp|willcom\.com)$","i"); //for (var i = 0; i < blockemail.length; i++ ){ //if (tmpphonemail == blockemail[i]) if (tempmail.match(regObj1) || tempmail.match(regObj2)) { showUserInfoResult4("false/email/携帯電話のメールアドレスは登録できません。"); return false; } //} if(NgEmailCheckbyAjax(tempmail)){ mailCheckOk(); return true; }else{ return false; } } function NgEmailCheckbyAjax(email) { var getorpost = "GET"; var urlfileapp = "http://" + document.location.host + "/regist/callajax/ng_emailchk.php?email=" + encodeURIComponent(email); var senddata = ""; var trueoffalse = true; try { AjaxCore_openSendStatus(getorpost, urlfileapp, trueoffalse, "", showNgEmailResult); return true; } catch (ex) { alert(ex.message); return false; } } function showNgEmailResult(xmlHttp) { var strValue = xmlHttp.responseText.split("/"); var flag = strValue[0]; var objunit = strValue[1]; var returnmsg = strValue[2]; var userEmail = strValue[3]; var elem = document.getElementById("errormsg_"+objunit); var elem2 = document.getElementById(objunit); // 0 == false, 1 == true if (flag == false) { elem.innerHTML = returnmsg; elem.style.display = "block"; elem.style.color = "red"; elem2.focus(); elem2.select(); return false; } else { if (flag == true) { elem.innerHTML = returnmsg; if(returnmsg.length==0) {elem.style.display = "none";} else {elem.style.display = "block";} elem.style.color = "blue"; if(UserInfoCheckbyAjax("email", userEmail)) { mailCheckOk(); return true; }else{ return false; } return true; } } } function compareemailCheck() { var form = document.member_join_input_form; var tempmail1 = form.email.value.split(" ").join(""); var tempmail2 = form.email2.value.split(" ").join(""); if (tempmail1 == "") { showUserInfoResult2("false/email/メールアドレスを入力してください。"); return false; } if (tempmail2 == "") { showUserInfoResult2("false/email2/メールアドレスが一致していません。"); return false; } if (tempmail1!=tempmail2) { showUserInfoResult2("false/email2/メールアドレスが一致していません。"); return false; } showUserInfoResult2("true/email2/"); return true; } function goSubmit() { var form = document.member_join_input_form; arrhiddenset(); arrnickhiddenset(); //id check if (form.login_id.value == "") { showUserInfoResult2("false/login_id/IDを入力してください。"); form.login_id.focus(); return; } if (inputUserID() == false) { return; } var ischeck_id = trim(form.idCheckFlag.value); if (ischeck_id == "false") { form.login_id.focus(); return; } //nick check if (form.nickname.value == "") { showUserInfoResult2("false/nickname/ニックネームを入力してください。"); form.nickname.focus(); return; } if (inputnickCheck() == false) { return; } var ischeck_nick = trim(form.nickCheckFlag.value); if (ischeck_nick == "false") { form.nickname.focus(); return; } //pwd check if (form.login_password.value == "") { showUserInfoResult2("false/login_password/パスワードを入力してください。"); form.login_password.focus(); return; } if (inputUserPwd_F() == false) { return; } if (form.login_password_confirm.value == "") { showUserInfoResult2("false/login_password_confirm/再パスワードを入力してください。"); form.login_password_confirm.focus(); return; } if (inputUserPwd_R() == false) { return; } if (inputcomparePwd() == false) { return; } //email check /* if (form.email.value == "") { showUserInfoResult2("false/email/メールアドレスを入力してください。"); form.email.focus(); return; } if (inputemailCheck() == false) { return; } var ischeck_mail = trim(form.mailCheckFlag.value); if (ischeck_mail == "false") { form.email.value=""; form.email2.value=""; form.email.focus(); return; } if (form.email2.value == "") { showUserInfoResult2("false/email2/確認の為、再入力してください。"); form.email2.focus(); return; } if (compareemailCheck() == false) { form.email2.value=""; form.email2.focus(); return; } */ //name check if (form.username.value == "") { showUserInfoResult2("false/username/氏名を入力してください。"); form.username.focus(); return; } if (inputusernameCheck() == false) { return; } //gender check if(!form.sex[0].checked & !form.sex[1].checked) { showUserInfoResult2("false/sex/性別を入力してください。"); form.sex[0].focus(); return; }else{ showUserInfoResult2("true/sex/"); } //birthday check if(form.year.value!="") { showUserInfoResult2("true/birthday/"); }else{ showUserInfoResult2("false/birthday/生年月日を入力してください。"); form.year.focus(); return; } if(form.month.value!="") { showUserInfoResult2("true/birthday/"); }else{ showUserInfoResult2("false/birthday/生年月日を入力してください。"); form.month.focus(); return; } if(form.day.value!="") { showUserInfoResult2("true/birthday/"); }else{ showUserInfoResult2("false/birthday/生年月日を入力してください。"); form.day.focus(); return; } //address check if(form.address.value!=""){ showUserInfoResult2("true/address/"); }else{ showUserInfoResult2("false/address/お住まいの地域を選択してください。"); form.address.focus(); return; } //secret check if(form.question.value!=""){ showUserInfoResult2("true/secret/"); }else{ showUserInfoResult2("false/secret/秘密の質問を選択してください。"); form.question.focus(); return; } if(!checkanswer()){ form.answer.focus(); return; } //agreement check if(form.agreement.checked){ showUserInfoResult2("true/agreement/"); }else{ showUserInfoResult2("false/agreement/利用規約に同意されていません。"); form.agreement.focus(); return; } //adult check if (isAdult() == false) { if (confirm("未成年のお客様は、会員登録に保護者の同意が必要となります。\n保護者の方に「エムゲームジャパン会員サービス利用規約」をご確認していただき、同意を得てください。\n保護者の方から同意が得られましたら、「OK」を押して進んでください。")) { form.adult_check.value = "1"; } else { form.adult_check.value = "0"; return; } } else { form.adult_check.value = "0"; } form.submit(); } /* ETC UTIL or KeyUP Events */ function idkeyup() { document.member_join_input_form.idCheckFlag.value = "false"; } function nickkeyup() { document.member_join_input_form.nickCheckFlag.value = "false"; } function mailkeyup() { document.member_join_input_form.mailCheckFlag.value = "false"; } function idCheckOk() { document.member_join_input_form.idCheckFlag.value = true; } function nickCheckOk() { document.member_join_input_form.nickCheckFlag.value = true; } function mailCheckOk() { document.member_join_input_form.mailCheckFlag.value = true; } function checkChange(etc, other) { var selectedNum = etc.checked; //document.write(selectedNum); if (selectedNum == false) { other.disabled = true; other.style.backgroundColor = "#D4D0C8"; } else { other.disabled = false; other.style.backgroundColor = "#FFFFFF"; } } function checkquestion() { if(document.member_join_input_form.question.value == ""){ showUserInfoResult2("false/secret/秘密の質問を選択してください。"); //document.member_join_input_form.question.focus(); return; } } function checkanswer() { var answer = document.member_join_input_form.answer.value; if(answer == ""){ return false; } var nbyte = 0; for(var i = 0; i < answer.length; i++) { var code = answer.charCodeAt(i); if(code == 13 || code == 10){ // 改行文字 nbyte += 0; }else if(code < 256 || (code >= 0xff61 && code <= 0xff9f)){ nbyte += 1; }else{ nbyte += 2; } } if(nbyte > 40){ showUserInfoResult2("false/secret/質問の回答は全角20文字以内で入力してください。"); //document.member_join_input_form.answer.focus(); return false; } showUserInfoResult2("true/secret/"); return true; } function arrhiddenset() { var arrtemp = new Array; var j; j = 0; for (var i = 0; i < form.login_id.value.length; i++) { var c = form.login_id.value.charCodeAt(i); arrtemp[j] = form.login_id.value.substring(j, j + 1); j++; } document.member_join_input_form.arr.value = arrtemp; } function arrnickhiddenset() { //--------------------nickname----------------- var arr_nick_temp = new Array; var k; k = 0; for (var i = 0; i < form.nickname.value.length; i++) { var c = form.nickname.value.charCodeAt(i); arr_nick_temp[k] = form.nickname.value.substring(k, k + 1); k++; } document.member_join_input_form.arr_nick.value = arr_nick_temp; } function isAdult() { today = new Date(); var y = (today.getFullYear() - 18).toString(); var year = document.member_join_input_form.year.value; var m = (today.getMonth() + 1)*100; var month = parseInt(document.member_join_input_form.month.value)*100; var d = (today.getDate()); var day = parseInt(document.member_join_input_form.day.value); if (y < year) { return false; } else { if (y == year) { if ((m + d) < (month + day)) { return false; } } } return true; } function f_procActiveErrorMsg(msg) { var strValue = msg.split("/"); var flag = strValue[0]; var objname = strValue[1]; var returnmsg = strValue[2]; if(flag==0) { var actmsg = "false/"+objname+"/"+returnmsg; showUserInfoResult2(actmsg); return; } var objElem = document.getElementById(objname); objElem.focus(); }