//이름 체크
function check_name(ssn2, str)
{
    var chk_str = ssn2.substring(0,1);
    
    if ((chk_str != 1 && chk_str != 2 && chk_str != 3 && chk_str != 4)) {
    // 외국인
        if(!isValid_ForeignName(str))
            return false;
    } else {
    //내국인
        if(!isValid_name(str))
            return false;
    }
    return true;
}

//이름 유효성 체크  - 내국인
function isValid_name(str)
{
     str = str.replace(/(^\s*)|(\s*$)/g, "");
     if( str == '' ){
         alert("이름을 입력하세요");
         return false;
     }

     var retVal = checkSpace( str );
     if( retVal ){
         alert("이름은 띄어쓰기 없이 입력하세요.");
         return false;
     }
     if( !isHangul(str) ) {
         alert("이름을 한글로 입력하세요.");
         return false;
     }
     if( str.length > 10 ) {
         alert("이름은 5자까지만 사용할 수 있습니다.");
         return false;
     }
     return true;
}

//이름 유효성 체크 - 외국인
function isValid_ForeignName( str )
{
    var isENAME = /^[A-Z  ]{3,40}$/;
    if( !isENAME.test( str ) ) { return false; }

    return true;
}

//주민번호 체크
function check_jumin_no(jumin1, jumin2) {
    var chk_str = jumin2.substring(0,1);
    
    if ((chk_str != 1 && chk_str != 2 && chk_str != 3 && chk_str != 4)) {
    // 외국인
        if (!(check_foreign(jumin1 + jumin2))) {
            return 1;
        }
    } else {
    //내국인
        if (!(CheckSSN(jumin1, jumin2))) {
            return 1;
        }
    }
    return 0;
}

//국내인 주민번호 체크
function CheckSSN(no1, no2){
    var year = no1.substring(0,2);
    var month =no1.substring(2,4);
    var day = no1.substring(4,6);
    var sex = no2.substring(0,1);
    
    if((sex !=1 && sex != 2 && sex != 3 && sex != 4) || (no2.length !=7)) return false;
    
    var val=0;
    for(var i=0; i<=5; i++){
        val = val +((i%8+2) * parseInt(no1.substring(i,i+1)));
    }
    
    for(var i=6; i<=11; i++){
        val = val +((i%8+2) * parseInt(no2.substring(i-6,i-5)));
    }
    
    val = 11- (val % 11);
    val = val % 10;
    
    if (val != no2.substring(6,7)) return false;
    return true;
}

//외국인 주민번호 체크
function check_foreign(ssn_no) { 
    var sum=0; 
    var odd=0; 
    buf = new Array(13); 

    for(i=0; i<13; i++) { 
        buf[i]=parseInt(ssn_no.charAt(i));
    } 
    odd = buf[7]*10 + buf[8]; 
    if(odd%2 != 0) { 
        return false; 
    } 
    if( (buf[11]!=6) && (buf[11]!=7) && (buf[11]!=8) && (buf[11]!=9) ) { 
        return false
    } 
    multipliers = [2,3,4,5,6,7,8,9,2,3,4,5]; 
    for(i=0, sum=0; i<12; i++) { 
        sum += (buf[i] *= multipliers[i]); 
    } 
    sum = 11 - (sum%11); 
    if(sum >= 10) { 
        sum -= 10; 
    } 
    sum += 2; 
    if(sum >= 10) { 
        sum -= 10; 
    } 
    if(sum != buf[12]) { 
        return false
    } 
    return true; 
}

//비밀번호 체크
function check_Passwd_multi(obj1, obj2, checkDual)
{
    var passwd = obj1.value;
    
    if (passwd != "") {
        var re = /[^a-zA-Z0-9]/;
    
        if (re.test(passwd)) {
            alert("비밀번호는 영문,숫자를 사용하여 8~13자까지, 영문은 대소문자를 구분합니다.");
            obj1.select();
            return false;
        }else if((passwd.length < 7) || (passwd.length >13)){
	        alert("비밀번호는 7~13자까지만 허용합니다.");
            obj1.select();
            return false;
        }else {
            //1. 동일문자 4회이상 반복여부 체크 ex) aaaa, 1111
            var count = 0;
	        var continueStr = "";
	        for( var i = 0 ; i < passwd.length ; i++ ) {
	            if(count >= 4) break;
	            if( i != 0 && continueStr != passwd.substring(i,i+1)){
	                count = 0;
	            }
	            continueStr = passwd.substring(i,i+1);
	            count = count + 1;
	        }
	        if(count >= 4){
	            alert("비밀번호가 동일 문자열로 4회이상 반복되었습니다.\n다시 입력하여 주십시요.");
	            obj1.select();
	            return false;
	        }
	        
            //2. 연속문자 4자이상 사용여부 체 ex) abcd, 1234, 9876...
            var firstStr = passwd.substring(0,1);
            var asciicode = passwd.charCodeAt(0);
            var inc_continueStrAscii = String.fromCharCode(asciicode, asciicode+1, asciicode+2, asciicode+3);
            var dec_continueStrAscii = "";
            if( firstStr >= count || asciicode >= passwd.charCodeAt(1) ) {
                dec_continueStrAscii = String.fromCharCode(asciicode, asciicode-1, asciicode-2, asciicode-3);
            }
            if( (passwd.substring(0, count) == inc_continueStrAscii) || passwd.substring(0, count) == dec_continueStrAscii) {
                alert("비밀번호가 연속된 문자열로 되어 있습니다.\n다시 입력하여 주십시요.");
                obj1.select();
                return false;
            }
            
            //3. 금칙어(DB관리)
            if(wrongWordArray.length > 0){
                for(var i=0; i<wrongWordArray.length; i++){
                    if( wrongWordArray[i].toUpperCase() == passwd.toUpperCase() ){
                        alert("죄송합니다.\n입력하신 비밀번호는 SKOPI정책상 금칙어로 등록된 단어로서 사용할 수 없습니다.\n다시 입력하여 주십시요.");
                        obj1.select();
                        return false;
                    }
                }
            }
            
            //4. 비밀번호 및 비밀번호 재확인 비교            
            var passwdRe = obj2.value;
            if ( checkDual == true ){
                if((passwdRe.length < 7) || (passwdRe.length >13)){
			        alert("비밀번호 재확인을 입력하지 않으셨거나 자릿수가 잘못되었습니다.");
			        obj2.select();
			        return false;
			    }else if( passwd != passwdRe ) {
	                alert("비밀번호와 비밀번호 재확인이 서로 다릅니다.");
	                obj2.select();
	                return false;
	            }
            }
            
        }
        
    }else {
        alert("비밀번호는 필수 입력항목입니다. 비밀번호를 입력하세요");
        obj1.focus();
        return false;
    }
    
    return true;
}

// space 가 있으면 true, 없으면 false
function checkSpace( str )
{
     if(str.search(/\s/) != -1){
        return true;
     } else {
        return false;
     }
}
// 한글여부
function isHangul(s)
{
    var len = s.length;

    for (var i = 0; i < len; i++)  {
        if (s.charCodeAt(i) != 32 && (s.charCodeAt(i) < 44032 || s.charCodeAt(i) > 55203))
            return false;
    }
    return true;
}

//숫자입력 필수 : onkeypress
function num_only(  ){
    var evCode = event.keyCode ;
    
    if ( ! ( evCode == 0 || evCode == 8 || ( evCode >= 48 && evCode <= 57 )) ) {
        // 눌러진 키 코드가 Tab 키, BackSpace, 숫자가 아닌 경우
        event.returnValue = false;
    }
}

//숫자입력 필수
function isNumber(val, allowable)
{
    valid = true;
    cmp = "0123456789" + allowable;
    
    for (i=0; i<val.length; i++) {
        if (cmp.indexOf(val.charAt(i)) < 0) {
            valid = false;
            break;
        }
    }   
    return valid;
}

/**
 * 사업자등록번호 포멧처리 onkeyup="makeBizNo(this)"
 * @param field 텍스트 필드
 */
function makeBizNo() {
    var evCode = event.keyCode ;
    var field = event.srcElement;
    var value = field.value;
    
    if ( ! ( evCode == 0 || evCode == 8 || ( evCode >= 48 && evCode <= 57 )) ) {
        // 눌러진 키 코드가 Tab 키, BackSpace, 숫자가 아닌 경우
        event.returnValue = false;
    }

    if(value.length >= 10){
       var re = /(\d{3})(\d{2})(\d{5})/;
       while (re.test(value)) {
           value = value.replace(re, "$1-$2-$3");
       }
       field.value = value;
    }
}

//사업자등록번호 유효성 체크
function isValid_bizno(obj1, obj2, obj3)
{
    var li_temp, li_lastid;
    
    var objstring1 = obj1.value;
    var objstring2 = obj2.value;
    var objstring3 = obj3.value;
    var objstring = objstring1 + objstring2 + objstring3;
    
    if ( objstring.length == 10 ) {
        var biz_value = new Array(10);
        biz_value[0] = ( parseFloat(objstring1.substring(0 ,1)) * 1 ) % 10;
        biz_value[1] = ( parseFloat(objstring1.substring(1 ,2)) * 3 ) % 10;
        biz_value[2] = ( parseFloat(objstring1.substring(2 ,3)) * 7 ) % 10;
        biz_value[3] = ( parseFloat(objstring2.substring(0 ,1)) * 1 ) % 10;
        biz_value[4] = ( parseFloat(objstring2.substring(1 ,2)) * 3 ) % 10;
        biz_value[5] = ( parseFloat(objstring3.substring(0 ,1)) * 7 ) % 10;
        biz_value[6] = ( parseFloat(objstring3.substring(1 ,2)) * 1 ) % 10;
        biz_value[7] = ( parseFloat(objstring3.substring(2, 3)) * 3 ) % 10;
        
        li_temp = parseFloat(objstring3.substring(3, 4)) * 5 + "0";
        
        biz_value[8] = parseFloat(li_temp.substring(0,1)) + parseFloat(li_temp.substring(1,2));
        biz_value[9] = parseFloat(objstring3.substring(4,5));
        
        li_lastid = (10 - ( ( biz_value[0] + biz_value[1] + biz_value[2] + biz_value[3] + biz_value[4] + biz_value[5] + biz_value[6] + biz_value[7] + biz_value[8] ) % 10 ) ) % 10;
        
        if (biz_value[9] != li_lastid) {
            alert("유효하지 않은 사업자번호입니다.");
            obj3.select();
            return false;
        }else{
            return true;
        }
    }else {
      alert("유효하지 않은 사업자번호입니다.");
      obj3.select();
      return false;
    }
}

//성인인증
function checkAgeAdult(pid1, pid2, adultDay) {
    var strBirth = null;
    
    if(pid2.substring(0,1) == 0 || pid2.substring(0,1) == 9) {
        strBirth = "18" + pid1;
    }else if(pid2.substring(0,1) == 1 || pid2.substring(0,1) == 2) {
        strBirth = "19" + pid1;
    } else {
        strBirth = "20" + pid1;
    }
    
    if(strBirth > adultDay) {
        alert("미성년자는 법정 대리인 자격이 될수 없습니다.\n올바른 주민번호를 입력해 주십시오. ");
        return false;
    }
    return true;
}

//날짜 유효성
function valiDate(ti, yy, mm, dd)
{
    if( yy.value.length != 4){
        alert(ti + "을 입력하지 않으셨거나 잘못되었습니다.");
        yy.focus();
        return false;
    }else if(!isNumber(yy.value, "")) {
        alert("숫자 이외는 입력할 수 없습니다.");
        yy.focus();
        return false;
    }
    if( mm.value < 1 || mm.value > 12){
        alert(ti + "을 입력하지 않으셨거나 잘못되었습니다.");
        mm.focus();
        return false;
    }else if(!isNumber(mm.value, "")) {
        alert("숫자 이외는 입력할 수 없습니다.");
        mm.focus();
        return false;
    }
    if( dd.value < 1 || dd.value > 31){
        alert(ti + "을 입력하지 않으셨거나 잘못되었습니다.");
        dd.focus();
        return false;
    }else if(!isNumber(dd.value, "")) {
        alert("숫자 이외는 입력할 수 없습니다.");
        dd.focus();
        return false;
    }
    
    //날짜 유효성 체크
    mm.value = (mm.value.length < 2)? "0"+mm.value : mm.value;
    dd.value = (dd.value.length < 2)? "0"+dd.value : dd.value;
    var date = yy.value + mm.value + dd.value;
    var aDate = new Date(date.substring(0,4),date.substring(4,6)-1,date.substring(6,8));
    if ( !(aDate.getFullYear() == Math.abs(date.substring(0,4))
        && aDate.getMonth() == Math.abs(date.substring(4,6))-1 
        && aDate.getDate()  == Math.abs(date.substring(6,8))) ) {
        alert("입력하신 " + ti + " 날짜로 유효하지 않습니다. 다시 입력하여 주십시오!");
        yy.value = "";
        mm.value = "";
        dd.value = "";
        return false;
    }   
    return true;
}

function Trim(strVal)
{       
    while (strVal.search(/^\s/) != -1)
        strVal = strVal.replace(/^\s/,"");  
    
    while (strVal.search(/\s$/) != -1)  
        strVal = strVal.replace(/\s$/,"");      
                    
  return strVal;
}

//결혼유무처리
function WeddingChk()
{
    if (document.getElementsByName("wedyn")(0).checked == true) {
    //미혼
        document.getElementById("weddingdate1").disabled = true;
        document.getElementById("weddingdate2").disabled = true;
        document.getElementById("weddingdate3").disabled = true;
        document.getElementById("weddingdate1").readonly = true;
        document.getElementById("weddingdate2").readonly = true;
        document.getElementById("weddingdate3").readonly = true;
        
        document.getElementById("matebd1").disabled = true;
        document.getElementById("matebd2").disabled = true;
        document.getElementById("matebd3").disabled = true;
        
        document.getElementsByName("matebdyn")(0).disabled = true;
        document.getElementsByName("matebdyn")(1).disabled = true;
        
        document.getElementById("childcount").selectedIndex = 0;
        document.getElementById("childcount").disabled = true;    
    }else { 
    //기혼
        document.getElementById("weddingdate1").disabled = false;
        document.getElementById("weddingdate2").disabled = false;
        document.getElementById("weddingdate3").disabled = false;
        document.getElementById("weddingdate1").readonly = false;
        document.getElementById("weddingdate2").readonly = false;
        document.getElementById("weddingdate3").readonly = false;
        
        document.getElementById("matebd1").disabled = false;
        document.getElementById("matebd2").disabled = false;
        document.getElementById("matebd3").disabled = false;
        
        document.getElementsByName("matebdyn")(0).disabled = false;
        document.getElementsByName("matebdyn")(1).disabled = false;
        
        document.getElementById("childcount").disabled = false;
    }
    
    changeChild();
}

//자녀 생일 처리
function changeChild() {
    var maxChild = 5;
    var cntChild = document.getElementById("childcount").selectedIndex;

    if(cntChild > 0){
        document.getElementById("child").style.display = "block";
        
        for(i=1;i<=maxChild;i++){
            if(i>cntChild){//숨김
                document.getElementById("child"+i).style.display = "none";
                document.getElementById("childbd"+i+"1").value = "";
                document.getElementById("childbd"+i+"2").value = "";
                document.getElementById("childbd"+i+"3").value = "";
                document.getElementsByName("childYN"+i)(0).checked = true;
            }else{//표시
                document.getElementById("child"+i).style.display = "block";
                document.getElementById("childbd"+i+"1").value = Trim(document.getElementById("childbd"+i+"1").value);
                document.getElementById("childbd"+i+"2").value = Trim(document.getElementById("childbd"+i+"2").value);
                document.getElementById("childbd"+i+"3").value = Trim(document.getElementById("childbd"+i+"3").value);                
            }
        }
    }else{
        document.getElementById("child").style.display = "none";
    }    
}

//관심분야
function checkInterest()
{
    var checkbox = document.getElementsByName("interest");
    for (var i = 0; i < checkbox.length; i++) {
        if (checkbox[i].checked && checkbox[i].value == "기타"){
            document.getElementById("interestEtc").disabled = false;
        } else {
            document.getElementById("interestEtc").value = "";
            document.getElementById("interestEtc").disabled = true;
        }
    }
}

//가입경로 Visable 처리
function changeKnow(){
  var know_sel = document.getElementById("knowcd1");
  if(know_sel.selectedIndex==1)
  { //인터넷검색
      document.getElementById("otherSite").style.display = 'none';
      document.getElementById("know").style.display = 'none';
      document.getElementById("site").style.display = '';
      if(document.getElementById("actionGubun").value != "U"){
      document.getElementById("site").selectedIndex = 0;
      document.getElementById("site").focus();
      }
      changeSite();
  }else if(know_sel.selectedIndex==3)
  { //동호회/팬클럽
      document.getElementById("site").style.display = 'none';
      document.getElementById("otherSite").style.display = 'none';
      document.getElementById("know").style.display = '';
      if(document.getElementById("actionGubun").value != "U"){
      document.getElementById("know").value = "";
      document.getElementById("know").focus();
      }      
  }else if(know_sel.selectedIndex==7)
  { //다른 사이트의 Skopi 사진인화 코너
      document.getElementById("site").style.display = 'none';
      document.getElementById("know").style.display = 'none';
      document.getElementById("otherSite").style.display = '';
      if(document.getElementById("actionGubun").value != "U"){
      document.getElementById("otherSite").selectedIndex = 0;
      document.getElementById("otherSite").focus();
      }
      changeotherSite(); 
  }else if(know_sel.selectedIndex==10)
  { //기타
      document.getElementById("site").style.display = 'none';
      document.getElementById("otherSite").style.display = 'none';
      document.getElementById("know").style.display = '';  
      if(document.getElementById("actionGubun").value != "U"){
      document.getElementById("know").value = "";
      document.getElementById("know").focus();
      }  
  }else
  {
      document.getElementById("site").style.display = 'none';
      document.getElementById("otherSite").style.display = 'none';
      document.getElementById("know").style.display = 'none';
  }
}

function changeSite(){
  var site_sel = document.getElementById("site");
  if(site_sel.selectedIndex==9)
  { //기타
      document.getElementById("know").style.display = '';
      if(document.getElementById("actionGubun").value != "U"){
      document.getElementById("know").value = "";
      document.getElementById("know").focus();
      }
  }else
  {
      document.getElementById("know").style.display = 'none';
  }
}

function changeotherSite(){
  var otherSite_sel = document.getElementById("otherSite");
  if(otherSite_sel.selectedIndex==6)
  {//기타
      document.getElementById("know").style.display = '';
      if(document.getElementById("actionGubun").value != "U"){
      document.getElementById("know").value = "";
      document.getElementById("know").focus();
      }      
  }else
  {
      document.getElementById("know").style.display = 'none';
  }
}

//////////////////////////////////////////////////////////////////////////////////////////////////////
//서비스도움말  JS
//////////////////////////////////////////////////////////////////////////////////////////////////////
//답변방법 선택
function fnAnsTypeChk()
{
    if (document.getElementsByName("ansType")(0).checked == true) {
    //이메일
        document.getElementById("email").disabled = false;
        document.getElementById("email").readonly = false;
        
        document.getElementById("tel1").disabled = true;
        document.getElementById("tel2").disabled = true;
        document.getElementById("tel3").disabled = true;
        document.getElementById("tel1").readonly = true;
        document.getElementById("tel2").readonly = true;
        document.getElementById("tel3").readonly = true;
            
    }else { 
    //전화
        document.getElementById("email").disabled = true;
        document.getElementById("email").readonly = true;
        
        document.getElementById("tel1").disabled = false;
        document.getElementById("tel2").disabled = false;
        document.getElementById("tel3").disabled = false;
        document.getElementById("tel1").readonly = false;
        document.getElementById("tel2").readonly = false;
        document.getElementById("tel3").readonly = false;
    }
}

//SMS수신
function fnSmsSendYn()
{
    var checkbox = document.getElementsByName("smsSendYn");
    if (checkbox[0].checked && checkbox[0].value == "Y"){
		//SMS수신
		document.getElementById("cpno1").disabled = false;
		document.getElementById("cpno2").disabled = false;
		document.getElementById("cpno3").disabled = false;
		document.getElementById("cpno1").readonly = false;
		document.getElementById("cpno2").readonly = false;
		document.getElementById("cpno3").readonly = false;
    } else {
		document.getElementById("cpno1").disabled = true;
		document.getElementById("cpno2").disabled = true;
		document.getElementById("cpno3").disabled = true;
		document.getElementById("cpno1").readonly = true;
		document.getElementById("cpno2").readonly = true;
		document.getElementById("cpno3").readonly = true;
    }
}

//////////////////////////////////////////////////////////////////////////////////////////////////////
//팝업
//////////////////////////////////////////////////////////////////////////////////////////////////////
//이메일 중복 체크 페이지 오픈
function openWinEmailDup(email) {
    var arrMatch = email.match(/^(\".*\"|[;A-Za-z0-9_-]([A-Za-z0-9_-]|[\+\.])*)@(\[\d{1,3}(\.\d{1,3}){3}]|[A-Za-z0-9][A-Za-z0-9_-]*(\.[A-Za-z0-9][A-Za-z0-9_-]*)+)$/);
     
    if(arrMatch == null){
        alert("E-mail(ID)를 입력하지 않았거나 정확한 이메일 주소가 아닙니다. \n\n (예 : name@domain.com)");
        return false;
    }else{
        sss = window.open("/web/jsp/front/custcent/member/MemberIdDuplicationPopup.jsp?email="+email,"win1","width=500,height=267");
        sss.focus();
    }
}

//메시지 팝업
function openMessagePopup(msgId, param){
    var sss = window.open ("/web/jsp/front/custcent/member/MessagePopup.jsp?msgId=" + msgId, "확인", "resizable=no scrollbars=no " + param ) ;
    sss.focus();    
}

//우편번호 찾기 
function openZipPopup(formName, addrName1, addrName2, zipName1, zipName2){
    var url = "/web/jsp/front/common/pop/PostSearchPopup.jsp?formName=" + formName
		     + "&addrName1=" + addrName1 
		     + "&addrName2=" + addrName2 
		     + "&zipName1=" + zipName1 
		     + "&zipName2=" + zipName2;
    var feature = "width=415, height=185, menubar=0,toolbar=0,location=0,status=0,scrollbars=0,resizable=0";
    window.open(url, "zip", feature);
}

function openZipPopupBack(formName, addrName1, addrName2, zipName1, zipName2){
    var url = "/web/jsp/back/co/pop/PostSearchPopup.jsp?formName=" + formName
		     + "&addrName1=" + addrName1 
		     + "&addrName2=" + addrName2 
		     + "&zipName1=" + zipName1 
		     + "&zipName2=" + zipName2;
    var feature = "width=415, height=185, menubar=0,toolbar=0,location=0,status=0,scrollbars=0,resizable=0";
    window.open(url, "zip", feature);
}

//주문번호검색
function openOrderNoSearchPopup(orderGubun, openerFormName, inUrl, callPage)
{
    var param = "?orderGubun=" + orderGubun +"&openerFormName=" + openerFormName +"&inUrl=" + inUrl + "&callPage=" + callPage;
    var url = "/web/jsp/front/common/pop/OrderNoSearchPopup.jsp" + param;
    var feature = "width=600, height=257, menubar=0,toolbar=0,location=0,status=0,scrollbars=0,resizable=0";
    window.open(url, "ordername", feature);
}

//팝업사이즈 조절
function popResize(winWidth, winHeight) {

    document.body.style.overflow='hidden';

    var clintAgent = navigator.userAgent;
    var foxHeight = 60;
    var ieHeight = 60;
    var ie7Height = 80;

    if ( clintAgent.indexOf("MSIE") != -1 ) // IE 일 경우
    {
        if(clintAgent.indexOf("MSIE 7")!= -1){
            window.resizeTo(winWidth, winHeight + ie7Height);
        } else {
            window.resizeTo(winWidth, winHeight + ieHeight);
        }
    }else    // IE 가 아닐 경우
    {
        window.resizeTo(winWidth, winHeight + foxHeight);
    }
}

//focus 이동
function fnMoveNextfocus(curObj, curMaxlen, nextObj)
{
    if(curObj.value.length >= curMaxlen){
        nextObj.focus();
    }
}
