// 기본변수
var mailFormat = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,50}))$/;
var passFormat = /^(?=.*\d)(?=.*[a-zA-Z])(?=.*[0-9])[0-9a-zA-Z]{8,}$/;
var nameFormat = /^[\w\Wㄱ-ㅎㅏ-ㅣ가-힣.\(\)\-_]{2,20}$/;
var nickFormat = /^[\w\Wㄱ-ㅎㅏ-ㅣ가-힣]{2,20}$/;
// 모달 호출
function callModal(mode, showModal, modalName){
var scrollPosition = [
self.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft,
self.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop
];
var html = jQuery('html');
if(mode == 'block'){
jQuery('').css('opacity',0.7).appendTo('body').height(jQuery('#wrapper').height());
jQuery(window).resize(function(){jQuery('#blind_box').height(jQuery('#wrapper').height())});
if(!showModal) {
jQuery('.loader').css("position","fixed");
jQuery('.loader').css("z-index","200000");
jQuery('.loader').css("top",(jQuery( window ).height()-jQuery('#main-header').height())/2+"px");
jQuery('.loader').css("left","50%");
jQuery(".loader").show();
} else if(modalName){
var getLeft = 50-(parseInt(jQuery('#'+modalName).width()/jQuery( window ).width())*50);
var getTop = 20-(parseInt(jQuery('#'+modalName).height()/(jQuery( window ).height()-jQuery('#main-header').height()))*50);
jQuery('#'+modalName).fadeIn(300);
jQuery('#'+modalName).css("position","fixed");
jQuery('#'+modalName).css('z-index', '200000');
jQuery('#'+modalName).css("top",getTop+"%"); //(jQuery( window ).height()-jQuery('#main-header').height())/2+"px"
jQuery('#'+modalName).css("left",getLeft+"%");
}
html.data('scroll-position', scrollPosition);
html.data('previous-overflow', html.css('overflow'));
html.css('overflow', 'hidden');
window.scrollTo(scrollPosition[0], scrollPosition[1]);
} else {
var html = jQuery('html');
var scrollPosition = html.data('scroll-position');
html.css('overflow', html.data('previous-overflow'));
window.scrollTo(scrollPosition[0], scrollPosition[1])
jQuery("#loader").hide();
jQuery(".maskLayer").hide();
}
}
// 길이확인
function lengthCheck(el){
var codeByte = 0;
for (var idx = 0; idx < el.length; idx++) {
var oneChar = escape(el.charAt(idx));
if ( oneChar.length == 1 ) codeByte ++;
else if (oneChar.indexOf("%u") != -1) codeByte += 2;
else if (oneChar.indexOf("%") != -1) codeByte ++;
}
return codeByte;
}
// 여백제거
function allTrim(string){return string.replace(/ /g,"");}jQuery(document).ready(function($) {
var focusMode = false, lastKey=0;
function setCheckBox(id, mode, t){
var labelId = id+'-label', setCheck = ($("#"+id).is(":checked"))?false:true;
if(t == "checkbox")
$("#"+labelId).css("background", "url(/common/img/icon_checkbox"+((setCheck)?"_on":"")+".png) no-repeat 95%");
}
// REQUEST LOGIN
function leonLogin(requestReturn, field){
var log = $("#log"), pwd = $("#pwd"), rememberme = $("#rememberme");
// 공란을 제거한다
log.val(allTrim(log.val()));
pwd.val(allTrim(pwd.val()));
$("#getemail-label").click( function() {setCheckBox("getemail", "click", "checkbox");});
function fieldCheck(requestReturn, fieldName){
var fieldId = $("#"+fieldName), labelId = $("#"+fieldName+"-label"), cautionId = $("#caution-"+fieldName), localMsg = "", localResult = false, f = fieldId.is(":focus");
var msgArry = [];
msgArry[0] = ["빠트린 부분이 있네요. 이메일 주소를 입력해 주세요.", "이메일 형식이 맞지 않습니다. 정확하게 입력해 주세요.", "이메일 주소는 50자를 넘을 수 없습니다."];
msgArry[1] = ["빠뜨린 부분이 있네요. 비밀번호를 입력해 주세요.", "비밀번호는 영문, 숫자가 혼합된 여덟자 이상의 단어입니다.", "비밀번호를 여덟자 이상으로 입력하시기 바랍니다."];
switch(fieldName){
case 'log' : intSet = 0; break;
case 'pwd' : intSet = 1; break;
}
if(lastKey !=13){
$("#error-desc").hide();
$("#error-desc").html("");
}
fieldId.attr('class', '');
if(!focusMode) cautionId.hide();
labelId.hide();
if(fieldId.val() == "" && f) fieldId.addClass("focuson");
else if(fieldId.val() == "") localMsg = msgArry[intSet][0];
else if(fieldName == 'log'){
if(lengthCheck(fieldId.val()) > 50) localMsg = msgArry[intSet][2];
else if(!mailFormat.test(fieldId.val())) localMsg = msgArry[intSet][1];
} else {
if(lengthCheck(fieldId.val()) < 8) localMsg = msgArry[intSet][2];
else if(!passFormat.test(fieldId.val())) localMsg = msgArry[intSet][1];
}
if(localMsg){ // 메시지가 있다면 오류다
if(fieldId.val() != "") labelId.show();
cautionId.show();
cautionId.html(localMsg);
fieldId.attr('class', 'caution');
} else
localResult = true;
if(requestReturn)
return localResult;
else
focusMode = false;
}
if(field != "")
fieldCheck(requestReturn, field);
else {
if(!fieldCheck(true, 'log')) {
focusMode = true;
log.focus();
} else if(!fieldCheck(true, 'pwd')) {
focusMode = true;
pwd.focus();
} else {
callModal("block",false,"");
$.ajax({
type : "post",
dataType: "json",
async : false,
url : "/leonProcessor",
data : {
"m" : "login",
"log" : log.val(),
"pwd" : pwd.val(),
"rememberme" : rememberme.val(),
"url" : $("#redirect-to").val()
}, success: function (data) {
console.log("RESULT : "+data.result+", CODE : "+data.code+", MSG : "+data.message);
switch(data.result){
case "600" :
$("#error-desc").html(""+data.message+"");
$("#error-desc").show();
callModal("unblock",false,"");
break;
case "200" :
location.href=$("#redirect-to").val();
break;
}
},
error: function (request, status, error) {
console.log("code: "+request.status+"\n"+"message: "+request.responseText+"\n"+"error: "+error);
$("#error-desc").html(data.message);
$("#error-desc").show("시스템의 오류로 처리할 수 없습니다. 다시 시도해 보시기 바랍니다.");
callModal("unblock",false,"");
}
});
}
}
}
$("#log").on('blur keyup focus', function (e) {leonLogin(false, "log");});
$("#pwd").on('blur keyup focus', function (e) {leonLogin(false, "pwd");});
$("#requestLogin").click(function (){leonLogin(true, "");});
//$("#log").focus();
$("#rememberme-label").on('click', function (e) {
var setCheck = ($("#rememberme").is(":checked"))?false:true;
$("#rememberme-label").css("background", "url(/common/img/icon_checkbox"+((setCheck)?"_on":"")+".png) no-repeat");
});
$('#pwd').on('keypress', function(e) {
if (e.which == 13) {/* 13 == enter key@ascii */
lastKey = 13;
leonLogin(true, "");
}
});
});