
var set_pwd;
var auth_key;

function replace_confirmCode_type()
{
    // 비밀번호 입력창으로 속성을 바꾼다.

    var obj = ELEM("confirmCode");
    var newO = document.createElement('input');

    newO.setAttribute('type','password');

    newO.setAttribute('name', obj.getAttribute('name'));
    newO.setAttribute('id', obj.getAttribute('id'));
    newO.setAttribute('style', obj.getAttribute('style'));
    newO.setAttribute('value', ''); // obj.getAttribute('value'));
    newO.setAttribute('size', obj.getAttribute('size'));

    obj.parentNode.replaceChild(newO,obj);

    ELEM("confirmCode").onfocus = function() {
        ELEM("confirmCode").className='input_field_focus';
    }

    ELEM("confirmCode").onmousedown = function() {
        var code = ELEM("confirmCode").value;
        if (code == "인증번호" || code == "비밀번호") {
            ELEM("confirmCode").value = "";
        }
    }

    ELEM("confirmCode").onblur = function() {
        ELEM("confirmCode").className='input_field';
        var code = ELEM("confirmCode").value;
        if (code == "") {
            ELEM("confirmCode").value = "비밀번호";
        }
    }

    ELEM("confirmCode").focus();

    ELEM("confirmCode").onkeydown = function(event) {
        var keycode = '0';
        if (window.event) keycode = window.event.keyCode;
        else if (event) keycode = event.which;
        if (keycode == 13) {
            on_btnLogin_click();
        }
    }
}

function on_btnPhone_click()
{
        var captcha_code = ELEM("captchaNum").value;
        captcha_code = normalize_captcha(captcha_code);
        if (captcha_code == "" || captcha_code.length > 5 ||
            captcha_code.length < 2)
        {
            ELEM("login_msg").innerHTML = "스팸방지: 좌측의 랜덤문자 네글자를 "
                                        + "정확히 입력해 주시기 바랍니다.";
            return;
        }

        var phone_num = ELEM("phoneNum").value;
        phone_num = normalize_phonenum(phone_num);

        if (phone_num == "휴대전화" || phone_num == "") {
            ELEM("login_msg").innerHTML = "인증받을 휴대전화 번호를 정확히 "
                                        + "입력해 주시기 바랍니다.";
            return;
        }

        ELEM("btnLogin").disabled = false;
        ELEM("confirmCode").disabled = false;

        // 비밀번호 설정된 번호인지를 검사
        var params = "phone_num=" + phone_num;
        call_ajax_text_post("./api-0.1/login.checksetpassword.jsp", params,
          function (result) {
            var result = JSON_parse(result);
            if (! result.ok) {
              ELEM("login_msg").innerHTML = "E0. 인증코드 발송을 실패했습니다. (" + result.ok + ")";
              return;
            }
            
            set_pwd = result.set_pwd
            auth_key = result.auth_key;

            if (result.set_pwd == true) {
                ELEM("login_msg").innerHTML = "비밀번호가 설정된 번호입니다."
                                            + "<br>비밀번호를 입력해주세요.";
                replace_confirmCode_type();
/*
                ELEM("confirmCode").value = "비밀번호";
                ELEM("confirmCode").type = "password";
*/
            } else {
                ELEM("confirmCode").value = "인증번호";
                ELEM("confirmCode").type = "text";
                var params = "phone_num="+phone_num+"&captcha="+captcha_code;
                call_ajax_text_post("./api-0.1/login.sendconfirm.jsp", params,
                  function (result) {
                    var result = JSON_parse(result);
                    if (! result.ok) {
// alert(dump(result));
                      ELEM("login_msg").innerHTML = "E1. 인증코드 발송을 실패했습니다. (" + result.ok + ")";
                      if (result.msg.indexOf('captcha', 0) > 0) {
                          ELEM("login_msg").innerHTML += " 페이지를 릴로드 하고 다시 해 보세요.";
                      }
                      return;
                    }
                 
                    ELEM("login_msg").innerHTML = "인증코드가 휴대폰으로 발송되었습니다. 문자전송이 3분 정도 걸릴수 있습니다.";
                   }
                );
            }

            // 한번 누르면 10초동안 disable 
            ELEM("btnPhone").disabled = true;
            setTimeout('fn_enablePhoneButton();', 10000);
           }
        );
        
}

function fn_enablePhoneButton()
{
    ELEM("btnPhone").disabled = false;
}

function on_btnLogin_click()
{
        var captcha = ELEM("captchaNum").value;
        captcha = normalize_captcha(captcha);
        if (captcha == "" || captcha.length > 5 || captcha.length < 2) {
            ELEM("login_msg").innerHTML = "스팸방지: 좌측의 랜덤 문자 "
                                 + "네글자를 정확히 입력해 주시기 바랍니다.";
            return;
        }

        var phone_num = ELEM("phoneNum").value;
        phone_num = normalize_phonenum(phone_num);
        if (phone_num == "휴대전화" || phone_num == "") {
            ELEM("login_msg").innerHTML = "인증받을 휴대전화 번호를 정확히 "
                                         +"입력해 주시기 바랍니다.";
            return;
        }

        var confirm = ELEM("confirmCode").value;
        confirm = normalize_number(confirm);

        if (set_pwd == true)
        {

            // 보안번호로 로그인
            if (confirm == "비밀번호" || confirm == "") {
                ELEM("login_msg").innerHTML = "비밀번호를 정확히 입력해 "
                                            + "주시기 바랍니다.";
                return;
            }

// alert("passwd:" + confirm);

            var params = "phone_num="+phone_num+"&captcha="+captcha+"&passwd="+confirm+"&auth_key="+auth_key;

            call_ajax_text_post("./api-0.1/login.confirmpasswd.jsp", params,
              function (result) {
                var result = JSON_parse(result);
                if (! result.ok) {
                  ELEM("login_msg").innerHTML = result.msg;
                                // "인증코드 발송을 실패했습니다.";
                  return;
                }


                set_cookie("sk", result.sk);

                document.location = "/mypage.jsp";
               }
            );
        } else {
            // 인증번호로 로그인 
            if (confirm == "인증번호" || confirm == "") {
                ELEM("login_msg").innerHTML = "인증번호를 정확히 입력해 "
                                          + "주시기 바랍니다.";
                return;
            }

            var params = "phone_num="+phone_num+"&captcha="+captcha+"&confirm="+confirm;

            call_ajax_text_post("./api-0.1/login.confirmcode.jsp", params,
              function (result) {
                var result = JSON_parse(result);
                if (! result.ok) {
                  ELEM("login_msg").innerHTML = result.msg;
                              // "인증코드 발송을 실패했습니다.";
                  return;
                }

                document.location = "/mypage.jsp";
               }
            );
        }
        
}

function load_countsinfo()
{
  var params = "";
  call_ajax_text_post("./api-0.1/login.get_countsinfo.jsp", params,
      function (result) {
            var resp = JSON_parse(result);
            if (! resp.ok) {
              alert(resp.msg);
              return;
            }
    
            ELEM("users_num").innerHTML = resp.userscnt;
            ELEM("contents_num").innerHTML = resp.contscnt;
            ELEM("downloads_num").innerHTML = resp.downscnt;
      }
  );
}


window.onload = function()
{
    ELEM("captchaNum").value = "";
    ELEM("phoneNum").value = "휴대전화";
    ELEM("confirmCode").value = "인증번호";

    ELEM("captchaNum").onmouseover = function(event) {
        tip_captcha();
    }

    ELEM("captchaNum").onmouseout = function(event) {
        UnTip();
    }
    
    ELEM("block_spam").onmouseover = function(event) {
        tip_captcha();
    }

    ELEM("block_spam").onmouseout = function(event) {
        UnTip();
    }
    
    ELEM("phoneNum").onmouseover = function(event) {
        Tip('휴대폰 번호를 공백없이<br>입력해 주시기 바랍니다.');
    }

    ELEM("phoneNum").onmouseout = function(event) {
        UnTip();
    }

    ELEM("confirmCode").onmouseover = function(event) {
        fn_confirmCodeToolTip();
    }

    ELEM("confirmCode").onmouseout = function(event) {
        UnTip();
    }
    
    
    ELEM("phoneNum").onkeydown = function(event) {
        var keycode = '0';
        if (window.event) keycode = window.event.keyCode;
        else if (event) keycode = event.which;
        if (keycode == 13) {
            if (!ELEM("btnPhone").disabled) {
                on_btnPhone_click();
            } 
        }
    }

    ELEM("confirmCode").onkeydown = function(event) {
        var keycode = '0';
        if (window.event) keycode = window.event.keyCode;
        else if (event) keycode = event.which;
        if (keycode == 13) {
            if (!ELEM("btnLogin").disabled) {
                on_btnLogin_click();
            }
        }
    }
    
    ELEM("btnPhone").onclick = function() {
        on_btnPhone_click();
    };

    ELEM("btnLogin").onclick = function() {
        on_btnLogin_click();
    };


    ELEM("phoneNum").onfocus = function() {
        ELEM("phoneNum").className='input_field_focus'; 
    }

    ELEM("phoneNum").onblur = function() {
        ELEM("phoneNum").className='input_field'; 
        var phone_num = ELEM("phoneNum").value;
        phone_num = normalize_phonenum(phone_num);
        if (phone_num == "") {
            ELEM("phoneNum").value = "휴대전화";
        }
    }

    ELEM("phoneNum").onclick = function() {
        var phone_num = ELEM("phoneNum").value;
        if (phone_num == "휴대전화") {
            ELEM("phoneNum").value = "";
        }
    }

    ELEM("phoneNum").onmousedown = function() {
        var phone_num = ELEM("phoneNum").value;
        if (phone_num == "휴대전화") {
            ELEM("phoneNum").value = "";
        }
    }

    ELEM("confirmCode").onfocus = function() {
        ELEM("confirmCode").className='input_field_focus'; 
    }

    ELEM("confirmCode").onmousedown = function() {
        var code = ELEM("confirmCode").value;
        if (code == "인증번호" || code == "비밀번호") {
            ELEM("confirmCode").value = "";
        }
    }

    ELEM("confirmCode").onblur = function() {
        ELEM("confirmCode").className='input_field';
        var code = ELEM("confirmCode").value;
        if (code == "") {
            ELEM("confirmCode").value = "인증번호";
        }
    }

    load_countsinfo();

    ELEM("login_help").onmouseover = function() {
        Tip("<b>로그인 도움말</b><br>" +
            "로그인 할 수가 없습니까?<br>" +
            "비밀번호를 잊어버렸습니까?<br>" +
            "내전화번호가 비밀번호로 잠겨 있습니까?<br>");
    }
    ELEM("login_help").onmouseout = function() { UnTip(); }

    ELEM("btnPhone").onmouseover = function() {
        Tip("<b>인증받기</b><br>" +
            "인증을 하려면, 스팸방지코드 4문자와<br>" +
            "휴대폰번호를 입력하셔야 합니다.<br>");
    }
    ELEM("btnPhone").onmouseout = function() { UnTip(); }

    ELEM("captcha").innerHTML = captchaCode;

    if (get_cookie("sk") == "") {
        ELEM("mypage_link").innerHTML = "";
    } else {
        ELEM("mypage_link").innerHTML = "※ <a href=./mypage.jsp>마이페이지로가기</a>";
    }
};

function tip_captcha()
{
   Tip('<b>스팸방지</b>를 위해서<br>좌측의 문자 네글자를 <br>'+
       '공백없이 입력해 주세요.<br>');
}

function fn_confirmCodeToolTip()
{
    if (set_pwd == true) {
        Tip('비밀번호를 입력하세요');
    } else {
        Tip('휴대폰으로 전달된<br>로그인 인증번호를 입력하세요');
    }
}

