function fn_userID_focus(str_alert){// 아이디 중복확인 포커스 alert(str_alert); $("#user_email").focus(); } $(document).ready(function() { $("#btn_idDupCheckny").click(function(){ var userID = $("#user_email").val(); if(!dvf_testEmail(userID)){ fn_userID_focus("회원 이메일이 유효하지 않습니다."); }else if(userID.indexOf("@hotmail.com")>1){ fn_userID_focus("hotmail.com 메일은 정책상 사용할 수 없습니다.\n다른 이메일 주소를 사용하세요."); }else if(userID.indexOf("@msn.com")>1){ fn_userID_focus("msn.com 메일은 정책상 사용할 수 없습니다.\n다른 이메일 주소를 사용하세요."); }else if(userID.indexOf("@live.com")>1){ fn_userID_focus("live.com 메일은 정책상 사용할 수 없습니다.\n다른 이메일 주소를 사용하세요."); }else if(userID.indexOf("@outlook.com")>1){ fn_userID_focus("outlook.com 메일은 정책상 사용할 수 없습니다.\n다른 이메일 주소를 사용하세요."); }else{ var param = 'userID='+ userID; $.ajax({ url: '/service/mypage/svc_dupid_check.booking.asp', type: 'POST', data: param, dataType: 'json', error: function() { alert("회원이메일 중복 확인 중 오류 발생. 잠시 후 이용바랍니다."); }, success: function(p_data) { if (p_data.isDupID == "Null"){ //중복아니면 alert("사용가능한 이메일 입니다"); $("#checkedID").val(userID); $("#user_email").attr("readonly",true); $("#user_email").addClass("gray"); $("#btn_idDupCheck").css("display","none"); //------------------------------------------ $("#user_name_kor").val(""); $("#user_name_kor").focus(); $("#bookrty").val(""); $("#msgmail").empty(); $("#msgmail").append("사용가능한 이메일 주소입니다."); $(".agreelayer1").css("display","block"); $("#uhpon").css("display","block"); $(".cenlst").css("display","block"); $("#agr_area").css("display","block"); } else if (p_data.isDupID == "Reject"){ alert("가입이 불가능한 아이디입니다. 다시 확인해주세요."); $("#user_email").focus(); } else if (p_data.isDupID == "Drop"){ alert("탈퇴한 회원의 아이디 입니다"); $("#user_email").focus(); } else { $("#checkedID").val(userID); $("#user_name_kor").val(p_data.isDupID); $("#user_name_kor").attr("readonly",true); $("#hid_userSeq").val(p_data.stduser); $("#bookrty").val("ARL"); $("#msgmail").empty(); $("#msgmail").append("유학네트에 가입되어 있는 이메일 주소입니다."); $(".agreelayer1").css("display","none"); $("#uhpon").css("display","none"); //$(".cenlst").css("display","none");tnm $("#area_office_title").empty(); $("#area_office").empty(); $("#area_office").append(""+p_data.tnm+"가 담당지사 입니다."); } } }); } return false; }); $("#btnSubmit_reserve").click(function(){ if(document.getElementById("checkedID").value==""){ alert("이메일 주소를 입력 후 회원가입 여부 확인을 먼저 확인하여 주세요."); document.getElementById("user_email").focus(); return false; } if(document.getElementById("user_name_kor").value==""){ alert("이름을 입력하여 주세요."); document.getElementById("user_name_kor").focus(); return false; } if(document.getElementById("bookrty").value ==""){ if(document.getElementById("counsel_hand_phone2").value==""){ alert("연락처를 정확히 기입하셔야 예약현황을 받아보실 수 있습니다.."); document.getElementById("counsel_hand_phone2").focus(); return false; } if(document.getElementById("counsel_hand_phone3").value==""){ alert("연락처를 정확히 기입하셔야 예약현황을 받아보실 수 있습니다."); document.getElementById("counsel_hand_phone3").focus(); return false; } } var chktpy = $("input[name='ct']:checked").val(); if(chktpy =="" || chktpy == undefined){ alert("상담방식을 선택하여 주세요."); return false; } if(document.getElementById("bookrty").value ==""){ if(document.getElementById("as-network").value==""){ alert("방문하시고자 하는 센터를 선택하여 주세요."); document.getElementById("as-network").focus(); return false; } } var cleanDate1 = $("#counsel_want_date1").val(); var cleanDate2 = $("#counsel_want_date2").val(); var cleanDate3 = $("#counsel_want_date3").val(); if(cleanDate1=="" && cleanDate2=="" && cleanDate3==""){ alert("희망 상담일을 하나 이상 선택하여 주세요."); document.getElementById("counsel_want_date1").focus(); return false; } if(document.getElementById("bookrty").value ==""){ if($("input:checkbox[name='agree1']:checked").length == 0){ alert("회원가입 및 이용약관 동의를 부탁드립니다."); $("#agree1").focus(); return false; } } if (document.getElementById("chk_tackbae").checked == false){ alert('개인정보 수집 및 이용에 동의를 하셔야 서비스를 이용하실 수 있습니다.'); return false; } var param = "txtphone1="+ $("#counsel_hand_phone1").val() +"-"+ $("#counsel_hand_phone2").val() +"-"+ $("#counsel_hand_phone3").val(); param += "&sel_phone=1"; param += "&user_email="+ fnISNULL($("#user_email").val(), ""); param += "&div_method=1097001"; param += "&branch_cd="+ fnISNULL($("#as-network").val(), ""); param += "&want_date1="+ fnISNULL(cleanDate1, ""); param += "&want_time1="+ fnISNULL($("#counsel_want_time1").val(), "") + fnISNULL($("#counsel_want_time1_min").val(), ""); param += "&want_date2="+ fnISNULL(cleanDate2, ""); param += "&want_time2="+ fnISNULL($("#counsel_want_time2").val(), "") + fnISNULL($("#counsel_want_time2_min").val(), ""); param += "&want_date3="+ fnISNULL(cleanDate3, ""); param += "&want_time3="+ fnISNULL($("#counsel_want_time3").val(), "") + fnISNULL($("#counsel_want_time3_min").val(), ""); param += "&contents="+ escape(document.getElementById("counsel_txt_content").value); param += "&bookrty="+ document.getElementById("bookrty").value; param += "&hid_userSeq="+ document.getElementById("hid_userSeq").value; param += "&user_name_kor="+ escape(document.getElementById("user_name_kor").value); param += "&chktpy="+ chktpy; $.ajax({ url: '/service/counsel/svc_counsel_reserv_write_ok2.asp', type: 'POST', data: param, dataType: 'json', //timeout: 3000, error: function(p_req, p_status, p_err) { alert("["+ p_status + "]"+"상담예약 접수가 실패되었습니다.[ERRORCODE:1]"); }, success: function(p_data) { if (p_data.result == 'y'){ alert('감사합니다.상담 예약이 접수되었습니다.\n담당EP확인 후 원하는 상담방식으로 답변드리겠습니다.'); document.location.href="/"; }else{ alert('상담 예약이 실패되었습니다.[ERRORCODE:10]'); } } }); }); }); function checkNum(pa){ var pattern = /^[0-9]+$/; var chkVal = eval("document.frm_reservation_counsel."+pa).value; if(!/^[0-9]+$/.test(chkVal)){ alert("숫자만 입력하여 주세요."); eval("document.frm_reservation_counsel."+pa).value=""; eval("document.frm_reservation_counsel."+pa).focus(); return false; } } function submit_check_reserve(){ if(f_submit_reserve()){ if( $("#reservedOk").val() == "True" ){ if(confirm('이미 상담 예약을 하셨습니다. 상담예약을 추가로 하시겠습니까?')){ return true; }else{ return false; } }else{ return true; } }else{ return false; } } function f_submit_reserve(){ var frm = document.frm_reservation_counsel; if(IsEmptyNew("counsel_want_date1", "희망상담일 1", 0)){ return false; } if(!IsAfterToday2(frm.counsel_want_date1, "희망 상담일 1")) return false; if(IsEmptyNew("counsel_want_time1", "희망상담일1 시간대 시간", 0)){ return false; } if(IsEmptyNew("counsel_want_time1_min", "희망상담일1 시간대 분", 0)){ return false; } if(frm.counsel_want_date2.value){ if(IsEmptyNew("counsel_want_time2", "희망상담일2의 시간", 0)){ return false; } if(IsEmptyNew("counsel_want_time2_min", "희망상담일2의 분", 0)){ return false; } } if(frm.counsel_want_date3.value){ if(IsEmptyNew("counsel_want_time3", "희망상담일3의 시간", 0)){ return false; } if(IsEmptyNew("counsel_want_time3_min", "희망상담일3의 분", 0)){ return false; } } if(frm.counsel_txt_content.value){ if(!ChkLenByByte_min(frm.counsel_txt_content, 2000)){ frm.counsel_txt_content.focus(); return false; } } return true; } function f_setTwoDigit(str){ if(str.length == 1) return "0"+str; else return str; } /** * 입력값이 NULL인지 체크 * @param string * @return : "" */ function fnISNULL(str, cstr) { if (str == null || str == "") { return cstr; }else{ return str; } } /** * 입력 필드의 문자 크기이하 입력.. (한글까지 고려하여 계산됨) * @param obj 대상 폼태그(Object) * @param len 비교할 길이 * @return */ function ChkLenByByte_min(obj, len){ var src = obj.value; var srcLen = GetLenByByte(src); if (srcLen <= len) { return true; } else { var delLen = srcLen - len; obj.focus(); Alert("이 항목은 영문 " + len + "자 (한글은 " + Math.floor(len/2) + "자) 이하 입력해야 합니다 \n" + "입력 내용에서 영문 " + delLen + "자 (한글은 " + Math.ceil(delLen/2) + "자)를 지워주시기 바랍니다"); return false; } } /** * 입력 필드의 문자 크기를 얻는다.. (한글까지 고려하여 계산됨) * @param String 문자열 * @return int 문자열의 길이 */ function GetLenByByte(value) { var byteLength = 0; for (var inx = 0; inx < value.length; inx++) { var oneChar = escape(value.charAt(inx)); if ( oneChar.length == 1 ) { byteLength ++; } else if (oneChar.indexOf("%u") != -1) { byteLength += 2; } else if (oneChar.indexOf("%") != -1) { byteLength += oneChar.length/3; } } return byteLength; } function CheckStr(strOriginal, strFind, strChange){ var position, strOri_Length; position = strOriginal.indexOf(strFind); while (position != -1){ strOriginal = strOriginal.replace(strFind, strChange); position = strOriginal.indexOf(strFind); } strOri_Length = strOriginal.length; return strOri_Length; } function ValidateNumber_counsel(objname){ var frm = document.frm_reservation_counsel; var obj = new Object(eval("frm."+objname)); var val = obj.value; var isNum = /^[0-9]+$/; if( !isNum.test(val) ) { alert("숫자만 사용할 수 있습니다."); obj.value=""; obj.focus(); return false; } return true; } /** * 입력값에 스페이스 이외의 의미있는 값이 있는지 체크 * @param obj Object * @return true : 공백 */ function IsEmptyNew2(obj) { if (obj.value == null || obj.value.replace(/ /gi,"") == "") { return true; } return false; } function IsEmptyNew(objname, objname_kor, jamo_type) { var frm = document.frm_reservation_counsel; var obj = new Object(eval("frm."+objname)); var val1 = obj.value; if (CheckStr(val1, " ", "")==0) { if(jamo_type == 1){ alert(objname_kor+"를 입력해 주세요"); }else{ alert(objname_kor+"을 입력해 주세요"); } obj.value=""; //obj.focus(); return true; } return false; } function MailCheck(obj) { var Messenger_Type = document.frm_reservation_counsel.Messenger_Type.value; if (Messenger_Type == "스카이프" || Messenger_Type == "카카오톡") { if (obj.value == "") { alert(Messenger_Type + " 아이디를 입력해 주세요"); obj.value=""; obj.focus(); return false; } } else { if (!isEmail(obj.value)) { alert(Messenger_Type + " 아이디(이메일)를 입력해 주세요"); obj.value=""; obj.focus(); return false; } } return true; } function isEmail(s) { return s.search(/^\s*[\w\~\-\.]+\@[\w\~\-]+(\.[\w\~\-]+)+\s*$/g)>=0; } /** * 입력값에 포함된 모든 스페이스 문자를 제거 후 리턴 * @param str Value * @return ret 스페이스가 제거된 문자열 */ function RemoveSpaces(str) { var ret = ""; if (str.length == 0) return ret; for (var i=0; i= 1) { alert(message); } } /** * 메세지를 알리는 메세지박스 표시 후 Element에 지정된 obj tag 로 focus * @param obj focus 를 가질 Object * @param message 메세지박스에 보여질 메세지 * @return */ function AlertFocus(obj, message ) { if ( message != '') Alert( message ); obj.focus(); if (obj.type == 'text' && obj.value.length >=1 ) obj.select(); return ; } /** * 입력된 문자열이 일자의 월로 변환가능한지 확인 * @param month 문자열 * @return true : 가능할 경우 */ function IsMonth(month) { if (month.length > 2) return false; month = ParseInt(month); if ((month <= 0) || (month > 12)) return false; return true; } /** * 입력된 문자열이 일자의 일로 변환가능한지 확인 * @param year 년 * @param month 월 * @param day 일 * @return true : 가능할 경우 */ function IsDay(year, month, day) { if (day.length > 2) return false; year = ParseInt(year); month = ParseInt(month); day = ParseInt(day); if ((day <= 0) || (day > GetEndDay(year, month))) return false; return true; } /** * 해당 년, 월의 마지막 일자를 가져온다 * @param year 년 * @param month 월 * @return 마지막 일자 */ function GetEndDay(year,month){// if ((month==1)||(month==3)||(month==5)||(month==7)||(month==8)||(month==10)||(month==12)) return 31; else { if(month==2) { if ((year%4==0) && ((year/4)%200!=0)) return 29; else return 28; } else { return 30; } } } /** * 문자열을 정수로 변환하여 리턴 * @param str 문자열 * @return 정수 */ function ParseInt(str) { return parseInt(str, 10); } /** * 입력된 문자열이 일자 Format 확인 * @param str 문자열 * @return true 일자 , false */ function IsDate ( obj ) { str = RemoveSpaces(obj.value); str = RemovePeriod(obj.value); if (!IsNumPeriod(obj)) { obj.value = ''; AlertFocus(obj, "날짜는 YYYYMMDD의 형식으로 입력하십시오"); return false; } if (str.length != 8) { obj.value = ''; AlertFocus(obj, "날짜는 YYYYMMDD의 형식으로 입력하십시오"); return false; } var year = str.substring(0,4); var month = str.substring(4,6); var day = str.substring(6,8); if ( ParseInt( year ) >= 1900 && IsMonth( month ) && IsDay( year,month ,day) ) return true; else { obj.value = ''; AlertFocus(obj, "날짜는 YYYYMMDD의 형식으로 입력하십시오"); return false; } } /** * 오늘까지 남은 일수를 반환한다. 오늘 이후의 일자에 대해서는 음수값을 반환한다. * @param obj Object * @return int 남은 일수 */ function GetDaysToToday(obj) { var numstr = RemovePeriod(obj.value); var user_day = new Date(numstr.substr(0,4), ParseInt(numstr.substr(4,2))-1, ParseInt(numstr.substr(6))); user_day = user_day.getTime(); var today = new Date(); today = today.getTime(); var day_gab = Math.floor( (today - user_day) / (60*60*24*1000) ); return day_gab; } /** * 입력된 일자가 오늘 이후의 일자인지 확인한다. * @param obj Object * @return true : 오늘 이후의 일자일 경우, false */ function IsAfterToday2(obj, ment) { if (IsEmptyNew2(obj)) {alert('날짜가 없습니다.'); return false;} if (!IsDate(obj)) { return false; } var day_gab = GetDaysToToday(obj) + 1; if( day_gab > 0) { Alert("\""+ ment +"\"에는 내일 이후의 날짜를 입력하셔야 합니다"); return false; } return true; } //---------------------------------------------------- //---------------------------------------------------- // 서비스로 보내질 컨텐츠성 데이타를 암호화한다 //---------------------------------------------------- function f_sendDataToServiceByEncode(str){ return escape(str.replace(/\+/ig, "+")); } //---------------------------------------------------- //---------------------------------------------------- //템플릿 치환변수 디코드 function f_unescapeNdecode(p_fldID, p_val) { p_val = unescape(p_val).replace(/<\/?[^>]+>/gi, '') return p_val; } //---------------------------------------------------- //---------------------------------------------------- // 서비스에서 encode되어 받은 데이터를 디코드한다. //---------------------------------------------------- function f_recievedDataToServiceByDecode(str){ str = unescape(str); return str.replace(/+/ig, "+"); } //---------------------------------------------------- //----------------------------------------------------