if (typeof(COMMON_JS) === 'undefined') {

    var COMMON_JS = true;

    $(document).on('click', '.btn-history-back', function() {
        history.back();
    });

    $(document).on('click', '.alertclose' , function() {
        $(this).closest('.alert').hide();
    });

    $(document).ready(function(){
        window.setTimeout(function() {
            $('.alert-auto-close').hide();
        }, 2500);
    });

    $(document).on('click', '#chkall', function() {
        var chk = document.getElementsByName('chk[]');
        for (i = 0; i < chk.length; i++)
            chk[i].checked = this.checked;
    });

    $(document).ready(function() {
        $('.datepicker').datepicker({
            format: 'yyyy-mm-dd',
            language: 'kr',
            autoclose: true,
            todayHighlight: true
        });
    });

    function trim(s) {
        var t = '';
        var from_pos = to_pos = 0;

        for (i = 0; i < s.length; i++) {
            if (s.charAt(i) === ' ') {
                continue;
            } else {
                from_pos = i;
                break;
            }
        }

        for (i = s.length; i >= 0; i--) {
            if (s.charAt(i-1) === ' ') {
                continue;
            } else {
                to_pos = i;
                break;
            }
        }
        t = s.substring(from_pos, to_pos);
        return t;
    }

    function select_submit(f, acttype, actpage) {
        var str = '';

        if ($("input[name='chk[]']:checked", f).length < 1) {
            alert('자료를 하나 이상 선택하세요.');
            return;
        }
        if (acttype === 'delete' && ! confirm('선택한 자료를 정말 삭제 하시겠습니까?')) return;

        f.action = actpage;
        f.submit();
    }

    function deletecheck(){
        if (confirm('정말 삭제하시겠습니까? 삭제하신 후에는 복구가 불가능합니다')) {
            return true;
        } else {
            return false;
        }
    }

    $(document).on('click', '.btn-list-reserve-update', function() {
        if($('#reserve_publish_date').val() == '') {
			alert('예약시간을 설정하세요');
			return false;
		} else {
	        select_submit(document.flist, 'update', $(this).attr('data-list-update-url'));
		}
    });

    $(document).on('click', '.btn-list-update', function() {
        select_submit(document.flist, 'update', $(this).attr('data-list-update-url'));
    });

    $(document).on('click', '.btn-list-delete', function() {
        select_submit(document.flist, 'delete', $(this).attr('data-list-delete-url'));
    });

    $(document).on('click', '.btn-one-delete', function() {
        if (confirm("한번 삭제한 자료는 복구할 방법이 없습니다.\n\n정말 삭제하시겠습니까?")) {
            document.location.href= $(this).attr('data-one-delete-url');
            return true;
        } else {
            return false;
        }
    });

    $(document).on('click', '.list-chkbox, #chkall', function() {
        var $checkedCheckboxes = $('.list-chkbox:checked');
        var $checkboxes = $('.list-chkbox');
        if ($checkedCheckboxes.length) {
            $('.btn-list-update , .btn-list-selected').removeClass('disabled');
        } else {
            $('.btn-list-update , .btn-list-selected').addClass('disabled');
        }
    });

    function makeSerializable(elem) {
      return $(elem).prop('elements', $('*', elem).andSelf().get());
    }



    // 쿠키 입력
    function set_cookie(name, value, expirehours, domain) {
        var today = new Date();
        today.setTime(today.getTime() + (60*60*1000*expirehours));
        document.cookie = cookie_prefix + name + '=' + escape( value) + '; path=/; expires=' + today.toGMTString() + ';';
        if (domain) {
            document.cookie += 'domain=' + domain + ';';
        }
    }

    // 쿠키 얻음
    function get_cookie(cookie_name) {
        var find_sw = false;
        var start, end;
        var i = 0;

        name = cookie_prefix + cookie_name

        for (i = 0; i <= document.cookie.length; i++) {
            start = i;
            end = start + name.length;

            if (document.cookie.substring(start, end) == name) {
                find_sw = true
                break
            }
        }

        if (find_sw === true) {
            start = end + 1;
            end = document.cookie.indexOf(';', start);

            if (end < start) {
                end = document.cookie.length;
            }

            return document.cookie.substring(start, end);
        }
        return '';
    }

    // 쿠키 지움
    function delete_cookie(name) {
        var today = new Date();

        today.setTime(today.getTime() - 1);
        var value = get_cookie(name);
        if (value) {
            document.cookie = cookie_prefix + name + '=' + value + '; path=/; expires=' + today.toGMTString();
        }
    }

    // 숫자에 , 를 출력
    function number_format(data) {

        var tmp = '';
        var number = '';
        var cutlen = 3;
        var comma = ',';
        var i;

        var sign = data.match(/^[\+\-]/);
        if (sign) {
            data = data.replace(/^[\+\-]/, '');
        }

        len = data.length;
        mod = (len % cutlen);
        k = cutlen - mod;
        for (i = 0; i < data.length; i++) {
            number = number + data.charAt(i);

            if (i < data.length - 1) {
                k++;
                if ((k % cutlen) === 0) {
                    number = number + comma;
                    k = 0;
                }
            }
        }

        if (sign !== null) {
            number = sign+number;
        }

        return number;
    }

	function escapeHtml (string) {
	  return String(string).replace(/[&<>"'`=\/]/g, function (s) {
		return entityMap[s];
	  });
	}

    // 글자수 검사
    function check_byte(content, target) {
        var cont = $('#' + content).val();

        // 숫자를 출력
        $('#' + target).text(cont.length);

        return cont.length;
    }

    function resize_textarea(id,mode) {
        if (mode === 'down') {
            $('#' + id).height($('#' + id).height() + 50);
        } else if (mode === 'up') {
            $('#' + id).height($('#' + id).height() - 50);
        } else {
            $('#' + id).height(mode);
        }
    }

	$(document).on('click', '.url-qrcode', function () {
		var toggled = $(this).attr('data-toggled');
		if (toggled == 'on'){
			$("#qrcode-content").hide('fast');
			$('.url-qrcode').attr('data-toggled','off');
		} else {
			$("body").append("<div id='qrcode-content'></div>");
			var url = $(this).attr("data-qrcode-url");
			var x = $(this).offset().top;
			var y = $(this).offset().left;

			$("#qrcode-content").hide();
			$("#qrcode-content").css("top", x + 20).css("left", y);
			$("#qrcode-content").html("<div class='qrcode_code'><img src='https://chart.googleapis.com/chart?cht=qr&chld=H|2&chs=100&chl="+url+"'></div><div class='qrcode_info'>모바일로 QR코드를 스캔하면 해당 링크에 바로 접속할 수 있습니다.</div>").show("fast");
			$('.url-qrcode').attr('data-toggled','off');
			$(this).attr('data-toggled','on');
		}
	});

    /**
     * 우편번호 창
     **/
    var win_zip = function(frm_name, frm_zipcode, frm_address1, frm_address2, frm_address3, frm_address4) {
        if (typeof daum === 'undefined') {
            alert('다음 juso.js 파일이 로드되지 않았습니다.');
            return false;
        }

        var zip_case = 1;   //0이면 레이어, 1이면 페이지에 끼워 넣기, 2이면 새창

        var complete_fn = function(data){
            // 팝업에서 검색결과 항목을 클릭했을때 실행할 코드를 작성하는 부분.

            // 각 주소의 노출 규칙에 따라 주소를 조합한다.
            // 내려오는 변수가 값이 없는 경우엔 공백('')값을 가지므로, 이를 참고하여 분기 한다.
            var fullAddr = ''; // 최종 주소 변수
            var extraAddr = ''; // 조합형 주소 변수

            // 사용자가 선택한 주소 타입에 따라 해당 주소 값을 가져온다.
            if (data.userSelectedType === 'R') { // 사용자가 도로명 주소를 선택했을 경우
                fullAddr = data.roadAddress;

            } else { // 사용자가 지번 주소를 선택했을 경우(J)
                fullAddr = data.jibunAddress;
            }

            // 사용자가 선택한 주소가 도로명 타입일때 조합한다.
            if (data.userSelectedType === 'R'){
                //법정동명이 있을 경우 추가한다.
                if (data.bname !== ''){
                    extraAddr += data.bname;
                }
                // 건물명이 있을 경우 추가한다.
                if (data.buildingName !== ''){
                    extraAddr += (extraAddr !== '' ? ', ' + data.buildingName : data.buildingName);
                }
                // 조합형주소의 유무에 따라 양쪽에 괄호를 추가하여 최종 주소를 만든다.
                extraAddr = (extraAddr !== '' ? ' (' + extraAddr + ')' : '');
            }

            // 우편번호와 주소 정보를 해당 필드에 넣고, 커서를 상세주소 필드로 이동한다.
            var of = document[frm_name];

            of[frm_zipcode].value = data.zonecode;

            of[frm_address1].value = fullAddr;
            of[frm_address3].value = extraAddr;

            if (of[frm_address4] !== undefined){
                of[frm_address4].value = data.userSelectedType;
            }

            of[frm_address2].focus();
        };

        switch(zip_case) {
            case 1 :    //iframe을 이용하여 페이지에 끼워 넣기
                var daum_pape_id = 'daum_juso_page' + frm_zipcode,
                    element_wrap = document.getElementById(daum_pape_id),
                    currentScroll = Math.max(document.body.scrollTop, document.documentElement.scrollTop);
                if (element_wrap === null) {
                    element_wrap = document.createElement('div');
                    element_wrap.setAttribute('id', daum_pape_id);
                    element_wrap.style.cssText = 'display:none;border:1px solid;left:0;width:100%;height:300px;margin:5px 0;position:relative;-webkit-overflow-scrolling:touch;';
                    element_wrap.innerHTML = '<img src="//i1.daumcdn.net/localimg/localimages/07/postcode/320/close.png" id="btnFoldWrap" style="cursor:pointer;position:absolute;right:0px;top:-21px;z-index:1" class="close_daum_juso" alt="접기 버튼">';
                    jQuery('form[name="' + frm_name + '"]').find('input[name="' + frm_address1 + '"]').before(element_wrap);
                    jQuery('#' + daum_pape_id).off('click', '.close_daum_juso').on('click', '.close_daum_juso', function(e){
                        e.preventDefault();
                        jQuery(this).parent().hide();
                    });
                }

                new daum.Postcode({
                    oncomplete: function(data) {
                        complete_fn(data);
                        // iframe을 넣은 element를 안보이게 한다.
                        element_wrap.style.display = 'none';
                        // 우편번호 찾기 화면이 보이기 이전으로 scroll 위치를 되돌린다.
                        document.body.scrollTop = currentScroll;
                    },
                    // 우편번호 찾기 화면 크기가 조정되었을때 실행할 코드를 작성하는 부분.
                    // iframe을 넣은 element의 높이값을 조정한다.
                    onresize : function(size) {
                        element_wrap.style.height = size.height + 'px';
                    },
                    width : '100%',
                    height : '100%'
                }).embed(element_wrap);

                // iframe을 넣은 element를 보이게 한다.
                element_wrap.style.display = 'block';
                break;
            case 2 :    //새창으로 띄우기
                new daum.Postcode({
                    oncomplete: function(data) {
                        complete_fn(data);
                    }
                }).open();
                break;
            default :   //iframe을 이용하여 레이어 띄우기
                var rayer_id = 'daum_juso_rayer' + frm_zipcode,
                    element_layer = document.getElementById(rayer_id);
                if (element_layer === null) {
                    element_layer = document.createElement('div');
                    element_layer.setAttribute('id', rayer_id);
                    element_layer.style.cssText = 'display:none;border:5px solid;position:fixed;width:300px;height:460px;left:50%;margin-left:-155px;top:50%;margin-top:-235px;overflow:hidden;-webkit-overflow-scrolling:touch;z-index:10000';
                    element_layer.innerHTML = '<img src="//i1.daumcdn.net/localimg/localimages/07/postcode/320/close.png" id="btnCloseLayer" style="cursor:pointer;position:absolute;right:-3px;top:-3px;z-index:1" class="close_daum_juso" alt="닫기 버튼">';
                    document.body.appendChild(element_layer);
                    jQuery('#' + rayer_id).off('click', '.close_daum_juso').on('click', '.close_daum_juso', function(e){
                        e.preventDefault();
                        jQuery(this).parent().hide();
                    });
                }

                new daum.Postcode({
                    oncomplete: function(data) {
                        complete_fn(data);
                        // iframe을 넣은 element를 안보이게 한다.
                        element_layer.style.display = 'none';
                    },
                    width : '100%',
                    height : '100%'
                }).embed(element_layer);

                // iframe을 넣은 element를 보이게 한다.
                element_layer.style.display = 'block';
        }
    }
}
