1jQuery.expr[':'].focus = function(elem){ 2 return elem === document.activeElement && (elem.type || elem.href); 3}; 4 5 6$(function(){ 7 setSkipNavigation(); 8 setMenuAll(); 9 setGNB(); 10 setHeader(); 11 setFamilyLink(); 12 $('[data-placeHolder]').length ? setPlaceHolder() : false; 13 $('[data-role=checkAll]').length ? checkAll() : false; 14 $('ul.accordion, ol.accordion').length ? setAccordion() : false; 15 $('span.attach').length ? setAttach() : false; 16 $('span.dateFrom').length ? setPeriod() : false; 17 $('div.tabBox').length ? setTab() : false; 18 $('[data-show]').length ? setVisible() : false; 19 $('a[data-target=layer]').length ? setLayer() : false; 20 $('div.searchWrap').length ? setSearch() : false; 21 $('div.sort').length ? setSort() : false; 22 23 /* 2023-09 ê°ì²´ 리ë´ì¼ë¡ ì¤í¬ë¦½í¸ ì¶ê° */ 24 $('.objectWrap').length ? objectWrap.init():false; 25}); 26 27const objectWrap = { 28 more : function(){ 29 const target = '.objectInfoWrap .boxGroup .box'; 30 $(document).on('click',target,function(){ 31 const btn = '.objectTabBox button'; 32 const tabIdx = $(this).data('object-tab') - 1; 33 let top = $('.objectFilterBox').offset().top - 20; 34 35 const winW = $(window).outerWidth(); 36 if(winW < 767){ 37 top = $('.objectFilterBox .right .tabView').eq(tabIdx).offset().top - 20; 38 } 39 $('html, body').animate({'scrollTop':top}); 40 $(btn).eq(tabIdx).trigger('click').focus(); 41 return false; 42 }); 43 }, 44 tab:function(){ 45 const target = '.objectTabBox button'; 46 $(document).on('click',target,function(){ 47 const href= $(this).data('href'); 48 $(this).addClass('on').siblings().removeClass('on'); 49 $(href).addClass('on').siblings('.tabView').removeClass('on'); 50 return false; 51 }); 52 }, 53 tree : function(){ 54 const depth1 = '.kindList .filterTit'; 55 const depth2 = '.listView > .kindTit button'; 56 const depth3 = '.depth2 > li > .kindTit button'; 57 const btnReset = '.objectFilterBox .left .btnReset'; 58 59 $(document).on('click',depth1,function(){ 60 $(this).toggleClass('on').next('.listView').slideToggle('fast'); 61 }); 62 63 $(document).on('click',depth2,function(){ 64 $(this).closest('.kindTit').toggleClass('on').next('.depth2').slideToggle('fast'); 65 if ($(this).closest('.kindTit').next('.depth2').next().is('ul.depth2')){ 66 $(this).closest('.kindTit').next('.depth2').next().slideToggle('fast'); 67 } 68 }); 69 70 $(document).on('click',depth3,function(){ 71 $(this).closest('.kindTit').toggleClass('on').next('ul').slideToggle('fast'); 72 }); 73 $(document).on('click',btnReset,function(){ 74 $('.kindList :checkbox').each(function(){ 75 $(this).prop('checked',false); 76 }); 77 return false; 78 }); 79 80 }, 81 init : function(){ 82 objectWrap.more(); 83 objectWrap.tab(); 84 objectWrap.tree(); 85 } 86} 87 88function setSkipNavigation(){ 89 if(navigator.userLanguage !== "undefined" && navigator.systemLanguage !== "undefined" && navigator.userAgent.match(/trident/i)) { 90 window.addEventListener("hashchange", function(){ 91 var element = document.getElementById(location.hash.substring(1)); 92 if(element){ 93 if(!/^(?:a|select|input|button|textarea)$/i.test(element.tagName)){ 94 element.tabIndex = -1; 95 } 96 element.focus(); 97 } 98 }, false); 99 } 100} 101 102function setGNB(){ 103 var gnb = $('#gnb'); 104 var level1 = $('li > a', gnb); 105 var level2 = $('div > a', gnb); 106 var width = 1023; 107 var mobile = 767; 108 109 /* 2023-10-25 */ 110 $('li', gnb).on('mouseenter',function(){ 111 if(width < $(window).outerWidth()){ 112 $(this).find('>a').addClass('on'); 113 } 114 }).on('mouseleave',function(){ 115 if(width < $(window).outerWidth()){ 116 $(this).find('>a').removeClass('on'); 117 } 118 }) 119 120 level1.on('focus mouseenter', function(){ 121 if(width < $(window).outerWidth()){ 122 gnb.hasClass('on') ? false : gnb.addClass('on'); 123 if(!$(this).hasClass('on')){ 124 level1.removeClass('on'); 125 $(this).addClass('on'); 126 } 127 } 128 }).on('click', function(e){ 129 if(width >= $(window).outerWidth()){ 130 e.preventDefault(); 131 e.stopPropagation(); 132 gnb.hasClass('on') ? false : gnb.addClass('on'); 133 if(!$(this).hasClass('on')){ 134 level1.removeClass('on'); 135 $(this).addClass('on'); 136 }else{ 137 mobile >= $(window).outerWidth() ? $(this).removeClass('on') : false; 138 } 139 } 140 }); 141 142 level2.on('focus mouseenter', function(){ 143 var parent = $(this).parent().prev('a'); 144 145 gnb.hasClass('on') ? false : gnb.addClass('on'); 146 if(!parent.hasClass('on')){ 147 level1.removeClass('on'); 148 parent.addClass('on'); 149 } 150 }); 151 152 /* 2025-09-25 ìì */ 153 // $('*').not(level1).not(level2).on('focus click', function(){ 154 // gnb.hasClass('on') ? gnb.removeClass('on') : false; 155 // level1.removeClass('on'); 156 // console.log('a'); 157 // }); 158 159 $(document).on('focusin click', function (e) { 160 if(e.originalEvent){ 161 if (e && !$(e.originalEvent.target).closest('#gnb').length) { 162 gnb.hasClass('on') ? gnb.removeClass('on') : false; 163 level1.removeClass('on'); 164 } 165 } 166 }); 167 /* //2025-09-25 ìì */ 168 169 gnb.on('mouseleave', function(){ 170 if(width < $(window).outerWidth()){ 171 gnb.hasClass('on') ? gnb.removeClass('on') : false; 172 level1.removeClass('on'); 173 } 174 }); 175} 176 177function setHeader(){ 178 var header = $('#header'); 179 180 $('#header > button').on('click', function(){ 181 header.hasClass('on') ? header.removeClass('on') : header.addClass('on'); 182 }); 183} 184 185function setFamilyLink(){ 186 var link = $('#footer span.family a'); 187 188 link.last().on('keydown', function(e){
189 if(!e.shiftKey && 9 == e.keyCode){ 190 e.preventDefault(); 191 link.first().get(0).focus(); 192 } 193 }).end().first().on('keydown', function(e){ 194 if($(this).hasClass('on') && e.shiftKey && 9 == e.keyCode){ 195 e.preventDefault(); 196 link.last().get(0).focus(); 197 } 198 }).on('click', function(e){ 199 e.preventDefault(); 200 if($(this).hasClass('on')){ 201 $(this).removeClass('on'); 202 }else{ 203 $(this).addClass('on'); 204 } 205 }); 206} 207 208function setPlaceHolder(){ 209 var ph = $('[data-placeHolder]'); 210 211 ph.each(function(){ 212 var type = 'password' == $(this).attr('type') ? true : false; 213 214 if(0 == $.trim($(this).val()).length || $(this).val() == $(this).data('placeholder')){ 215 $(this).val($(this).data('placeholder')).addClass('placeHolder'); 216 if(type){ 217 $(this).attr('type', 'text'); 218 } 219 }else{ 220 $(this).removeClass('placeHolder'); 221 if(type){ 222 $(this).attr('type', 'password'); 223 } 224 } 225 $(this).on('focus', function(){ 226 if(0 == $.trim($(this).val()).length || $(this).val() == $(this).data('placeholder')){ 227 $(this).val('').removeClass('placeHolder'); 228 } 229 if(type){ 230 $(this).attr('type', 'password'); 231 } 232 }).on('focusout', function(){ 233 if(0 == $.trim($(this).val()).length || $(this).val() == $(this).data('placeholder')){ 234 $(this).val($(this).data('placeholder')).addClass('placeHolder'); 235 if(type){ 236 $(this).attr('type', 'text'); 237 } 238 } 239 }); 240 }); 241} 242 243function setSearch(){ 244 $('div.searchWrap').each(function(){ 245 var box = $(this); 246 var text = $(':text', box); 247 var child = $('*', box); 248 var oTqrget = $('ul', box)[0]; 249 250 var observer = new MutationObserver(function(mutations){ 251 mutations.forEach(function(mutation){ 252 var cnt = $(mutation.target).children().length; 253 254 if(0 == cnt){ 255 box.removeClass('on'); 256 }else{ 257 box.addClass('on'); 258 } 259 }); 260 }); 261 262 observer.observe(oTqrget, { 263 childList : true 264 }); 265 266 text.on('focus click keyup', function(){ 267 if('' != $.trim($(this).val()) && !text.hasClass('placeHolder') && 0 != box.find('ul').children().length){ 268 box.addClass('on'); 269 }else{ 270 box.removeClass('on'); 271 } 272 }); 273 274 child.on('focus click', function(e){ 275 e.stopPropagation(); 276 }); 277 278 box.on('mouseleave', function(){ 279 if(!text.is(':focus')){ 280 box.removeClass('on'); 281 } 282 }); 283 284 /* 2025-09-25 ìì */ 285 // $('*').not(child).on('focus click', function(){ 286 // box.removeClass('on'); 287 // }); 288 289 $(document).on('focusin click',function (e) { 290 if(e.originalEvent){ 291 if (e && !$(e.originalEvent.target).closest('.searchWrap').length) { 292 box.removeClass('on'); 293 } 294 } 295 }); 296 /* //2025-09-25 ìì */ 297 }); 298} 299 300function checkAll(){ 301 $('form').on('reset', function(){ 302 setTimeout(function(){ 303 $('[data-role=checkAll]:checked').prop('checked', false).trigger('click'); 304 }, .1); 305 }) 306 307 $('[data-role=checkAll]').each(function(e){ 308 var check = $(this).parents('label').siblings('label').find(':checkbox').length; 309 var live = 0; 310 var all = $(this); 311 312 if($(this).is(':checked')){ 313 $(this).parents('label').addClass('on').siblings('label').find(':checkbox:not(:checked)').trigger('click').parents('label').addClass('on'); 314 } 315 $(this).on('change', function(){ 316 if($(this).is(':checked')){ 317 $(this).parents('label').addClass('on').siblings('label').find(':checkbox:not(:checked)').trigger('click').parents('label').addClass('on'); 318 }else{ 319 $(this).parents('label').removeClass('on').siblings('label').find(':checkbox:checked').trigger('click').parents('label').removeClass('on'); 320 } 321 }).parents('label').siblings('label').find(':checkbox').on('change', function(){ 322 if($(this).is(':checked')){ 323 $(this).parents('label').addClass('on'); 324 if(check == ++live){ 325 all.not(':checked').prop('checked', true).parents('label').addClass('on'); 326 } 327 }else{ 328 $(this).parents('label').removeClass('on'); 329 --live; 330 all.prop('checked', false).parents('label').removeClass('on'); 331 } 332 }); 333 }); 334} 335 336function setAccordion(){ 337 var button = $('ul.accordion > li > *:first-child button, ol.accordion > li > *:first-child button'); 338 339 button.on('click', function(){ 340 $(this).parents('li').hasClass('on') ? $(this).parents('li').removeClass('on') : $(this).parents('li').addClass('on').siblings().removeClass('on'); 341 }); 342} 343 344function setAttach(){ 345 $(document).on('change', 'span.attach input[type="file"]', function(){ 346 $(this).siblings('input[type="text"]').val($(this).val().split('/').pop().split('\\').pop()); 347 }).on('click', 'span.attach button', function(){ 348 $(this).siblings('input[type="file"]').trigger('click'); 349 }); 350} 351 352function setPeriod(){ 353 var mobile = 767; 354 var image = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB8AAAAeCAMAAADjLDWuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACpQTFRF7/P1ZW5yo7G3dH2AdX2BcHl9hIyQcHh8hY2Rx83Px8zPz9TWztPWyM3Q7dPJ7QAAAFhJREFUeNpiYMIPGPADOsqzcWCykOUZGTFZcHkuZkYUwMyJKs/OiAZYSZNnxACkyqP6mxx5dEyq/OC2nxtZmgddnhk9eFlQ5TlZ0KR56Z5+yZQnkD8BAgwAxCsB8sJN47kAAAAASUVORK5CYII='; 355 356 if(mobile >= $(window).outerWidth()){ 357 image = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAMAAADypuvZAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAxQTFRF7/P1Zm9z////o7G3kd5dbgAAAFBJREFUeNpiYCYDMJCliXQwqgmnJkYgICAypDQx4gPYNTESAqOaaKGJCRcY4pqgNCY1hDWNBvlokFOoiT4FC1kVAJmaRtsR9NFEt5YlQIABADDJCR/VMm74AAAAAElFTkSuQmCC'; 358 } 359 360 $('span.dateFrom input').each(function(){ 361 var idx = $('span.dateFrom input').index($(this)); 362 $(this).datepicker({ 363 showOn : 'button', 364 buttonImage : image, 365 buttonImageOnly : false, 366 buttonText : 'ììì¼ ì í', 367 changeYear : false, 368 changeMonth : false, 369 yearRange : '2001:+0', 370 closeText : 'ë«ê¸°', 371 showButtonPanel : false, 372 onClose : function(selectedDate){ 373 $('span.dateTo input').eq(idx).datepicker('option', 'minDate', selectedDate); 374 } 375 }, $.datepicker.regional['ko']); 376 }).mask('0000-00-00', { placeholder : "_ _ _ _-_ _-_ _" }); 377 378 $('span.dateTo input').each(function(){ 379 var idx = $('span.dateTo input').index($(this)); 380 $(this).datepicker({ 381 showOn : 'button', 382 buttonImage : image, 383 buttonImageOnly : false, 384 buttonText : 'ì¢ ë£ì¼ ì í', 385 changeYear : false, 386 changeMonth : false, 387 yearRange : '2001:+0', 388 closeText : 'ë«ê¸°', 389 showButtonPanel : false, 390 onClose : function(selectedDate){ 391 $('span.dateFrom input').eq(idx).datepicker('option', 'maxDate', selectedDate); 392 } 393 }, $.datepicker.regional['ko']); 394 }).mask('0000-00-00', { placeholder : "_ _ _ _-_ _-_ _" }); 395 396 $('button.setDate').on('click', function(){ 397 var day = $(this).data('date'); 398 if(0 > day){ 399 $(this).siblings('span.dateFrom').children('input').datepicker('setDate', null).datepicker('option', 'maxDate', null); 400 $(this).siblings('span.dateTo').children('input').datepicker('setDate', null).datepicker('option', { 'minDate' : null, 'maxDate' : null });
401 }else if(0 == day){ 402 var today = new Date(); 403 404 $(this).siblings('span.dateFrom').children('input').datepicker('setDate', today).datepicker('option', 'maxDate', 0); 405 $(this).siblings('span.dateTo').children('input').datepicker('setDate', today).datepicker('option', { 'minDate' : 0, 'maxDate' : today }); 406 }else{ 407 var today = new Date(); 408 var from = new Date(); 409 from.setDate(from.getDate() - day); 410 411 $(this).siblings('span.dateFrom').children('input').datepicker('setDate', from).datepicker('option', 'maxDate', today); 412 $(this).siblings('span.dateTo').children('input').datepicker('setDate', today).datepicker('option', { 'minDate' : from, 'maxDate' : today }); 413 } 414 }); 415} 416 417function setLayer(){ 418 var link = $('a[data-target="layer"]'); 419 var veil = $('div.pageDisabled'); 420 var showLayer = _getParam('showLayer') ? _getParam('showLayer') : false; 421 var clicked; 422 var mobile = 767; 423 424 link.off().on('click', function(e){ 425 e.preventDefault(); 426 _showLayer($($(this).attr('href'))); 427 clicked = e.target; 428 }); 429 430 if(showLayer){ 431 _showLayer($('#' + showLayer)); 432 } 433 434 function _showLayer(target){ 435 var page = target; 436 var layers = $('div.layer:visible').length; 437 var zIndex = parseInt(page.css('zIndex')); 438 439 if(mobile < $(document).outerWidth()){ 440 page.css({ 441 'margin-top': parseInt(-page.outerHeight() / 2), 442 'margin-left': parseInt(-page.outerWidth() / 2) 443 }); 444 }else{ 445 page.css({ 446 'margin-top': 0, 447 'margin-left': 0 448 }); 449 } 450 451 if(0 != layers){ 452 zIndex = zIndex + 2 * layers; 453 page.css('zIndex', zIndex); 454 veil.css('zIndex', zIndex - 1); 455 } 456 457 veil.show(); 458 page.fadeIn().off().on('click', '[data-action=close]', function(e){ 459 e.preventDefault(); 460 if(0 != layers){ 461 page.css('zIndex', zIndex - 2); 462 veil.css('zIndex', zIndex - 3); 463 }else{ 464 veil.hide(); 465 } 466 page.hide(); 467 clicked.focus(); 468 }).find('div.buttonBox:last > :last').off().on('keydown', function(e){ 469 if(!e.shiftKey && 9 == e.keyCode) { 470 e.preventDefault(); 471 page.find('header button').focus(); 472 } 473 }).end().find('header button').off().on('keydown', function(e){ 474 if(e.shiftKey && 9 == e.keyCode) { 475 e.preventDefault(); 476 page.find('div.buttonBox:last > :last').focus(); 477 } 478 }); 479 } 480} 481 482function setTab(){ 483 var tab = $('div.tabBox'); 484 485 tab.each(function(){ 486 var link = $('> :header > a', $(this)); 487 var indexName = 'idx' + $(this).data('indexname'); 488 var tabID = _getParam(indexName) ? _getParam(indexName) : 0; 489/* 490 var header = $('> :header', $(this)); 491 var headerSize = header.length; 492 493 header.filter(function(index){ 494 var pLeft = 100 / headerSize * index; 495 $(this).css('left', pLeft + '%'); 496 }); 497*/ 498 link.on('click', function(e){ 499 e.preventDefault(); 500 link.parent().removeClass('on'); 501 $($(this).parent().addClass('on').end().attr('href')).show().siblings('div:not(.const)').hide(); 502 if($(this).parents('div:last').hasClass('layer')){ 503 _setLayerPosition($(this).parents('div:last').attr('id')); 504 } 505 }).eq(tabID).trigger('click'); 506 }); 507} 508 509 510function setVisible(){ 511 var origin = $('[data-show]'); 512 513 origin.each(function(){ 514 var type = $(this).prop('tagName').toLowerCase(); 515 516 if('option' == type){ 517 $(this).parent().on('change', function(){ 518 if($('option:selected', this).data('show')){ 519 _setTargetShow($('option:selected', this).data('show')); 520 } 521 if($('option:selected', this).data('hide')){ 522 _setTargetHide($('option:selected', this).data('hide')); 523 } 524 }); 525 }else{ 526 if('checkbox' == $(this).prop('type').toLowerCase()){ 527 $(this).on('change', function(){ 528 var target = $(this).data('show'); 529 530 $(this).prop('checked') ? _setTargetShow(target) : _setTargetHide(target); 531 }); 532 }else if('radio' == $(this).prop('type').toLowerCase()){ 533 var radio = $('[type=radio][name=' + $(this).prop("name") + ']'); 534 535 radio.on('click', function(){ 536 var target = $(this).filter(':checked').data('show'); 537 if(target){ 538 _setTargetShow(target); 539 } 540 radio.filter(':not(:checked)').each(function(){ 541 if($(this).data('show')){ 542 _setTargetHide($(this).data('show')); 543 } 544 });
545 }); 546 } 547 } 548 }); 549} 550 551function setMenuAll(){ 552 var target = '#menuAll'; 553 554 $('a[href="' + target + '"]').on('click', function(e){ 555 var current = e; 556 current.preventDefault(); 557 558 if(!$(this).hasClass('on')){ 559 $(this).addClass('on'); 560 561 $(target).addClass('on').find('a:last').off().on('keydown', function(e){ 562 if(!e.shiftKey && 9 == e.keyCode){ 563 e.preventDefault(); 564 current.currentTarget.focus(); 565 } 566 }).end().find('a:first').off().on('keydown', function(e){ 567 if(e.shiftKey && 9 == e.keyCode){ 568 e.preventDefault(); 569 current.currentTarget.focus(); 570 } 571 }); 572 573 $(this).on('keydown', function(e){ 574 if($(this).hasClass('on') && e.shiftKey && 9 == e.keyCode){ 575 e.preventDefault(); 576 $(target).find('a:last').get(0).focus(); 577 } 578 }); 579 }else{ 580 $(this).removeClass('on'); 581 $(target).removeClass('on'); 582 } 583 }); 584} 585 586function setSort(){ 587 var list = $('div.sort a'); 588 var button = $('div.sort button'); 589 590 list.last().on('keydown', function(e){ 591 if(!e.shiftKey && 9 == e.keyCode){ 592 e.preventDefault(); 593 button.focus(); 594 } 595 }); 596 597 button.on('keydown', function(e){ 598 if($(this).hasClass('on') && e.shiftKey && 9 == e.keyCode){ 599 e.preventDefault(); 600 list.last().focus(); 601 } 602 }).on('click', function(){ 603 if($(this).hasClass('on')){ 604 $(this).removeClass('on'); 605 }else{ 606 $(this).addClass('on'); 607 } 608 }); 609} 610 611function showLoader(){ 612 var loader = $('div.loader'); 613 var veil = $('div.pageDisabled'); 614 615 veil.css('z-index', 9900).show(); 616 loader.show(); 617} 618 619function hideLoader(){ 620 var loader = $('div.loader'); 621 var veil = $('div.pageDisabled'); 622 623 veil.css('z-index', 7777).hide(); 624 loader.hide(); 625} 626 627function _setTargetShow(target){ 628 $('.' + target).show(); 629 setPlaceHolder(); 630} 631 632function _setTargetHide(target){ 633 $('.' + target).hide(); 634} 635 636function _setLayerPosition(layer){ 637 var target = $('#' + layer); 638 var tHeight = target.outerHeight(); 639 640 target.css({ 641 marginTop : -(tHeight / 2) + 'px' 642 }); 643} 644 645function _getParam(param){ 646 var vars = {}; 647 648 window.location.href.replace(/[?&]+([^=&]+)=?([^&]*)?/gi, function(m, key, value){ 649 vars[key] = value !== undefined ? value : ''; 650 } 651 ); 652 653 if(param){ 654 return vars[param] ? vars[param] : null; 655 } 656 657 return vars; 658} 659 660function showSaveLoader(){ 661 var loader = $('div.saveLoader'); 662 var veil = $('div.pageDisabled'); 663 664 veil.css('z-index', 9900).show(); 665 loader.show(); 666} 667 668function hideSaveLoader(){ 669 var loader = $('div.saveLoader'); 670 var veil = $('div.pageDisabled'); 671 672 veil.css('z-index', 7777).hide(); 673 loader.hide(); 674}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.