1 2var MAP = function(){ 3 4 var total_file_size = 0; 5 var $map_form, $map_editor, $board_container; 6 // ìë ë°°ì´ë¤ì map_data[board_code][data] ìì¼ë¡ 2ì°¨ ë°°ì´ë¡ ì¬ì©(ìíì´ì§ êµ¬ì± ëì) 7 var map_data = []; 8 var naver_map = []; 9 var markers = [], infowindows = []; // ë¤ì´ë² ì§ëì© infowindow ë°°ì´ 10 var cluster = []; // ë§ì»¤ í´ë¬ì¤í°ë§ ë°°ì´ 11 var google_cluster_maxzoom = 16; 12 var naver_cluster_maxzoom = 13; 13 var naver_cluster_marker1, naver_cluster_marker2, naver_cluster_marker3, naver_cluster_marker4, naver_cluster_marker5; 14 var isIOS, isSafari, $fr_m_custom, $write_header, m_sticky_container_trigger_top, $toolbarContainer; 15 var target_map, target_marker; // ê¸ì°ê¸° íë©´ì´ë ê²ì물 본문 ë± ë¨ì¼ ì§ëìì ì¬ì© 16 17 /*** 18 * ìëë¡ì´ëì±ìì postê¸ì°ê¸°ì ì´ë¯¸ì§ ì ë¡ë ìë£ì ì²ë¦¬ 19 * @param image 20 */ 21 22 /* 23 var $image_list_obj = {}; 24 //ì´ë¯¸ì§ ììì ì¥ ë¦¬ì¤í¸ ì¶ê° 25 if(!($image_list_obj.length > 0)) { 26 var image_list_html = $("<ul id='image_list' style='display: none'></ul>"); 27 $("body").append(image_list_html); 28 $image_list_obj = image_list_html; 29 } 30 31 var android_que = []; 32 var androidAppPostImageUploadComplete = function(image){ 33 if(image.tmp_idx > 0){ 34 android_que.push(image); 35 if(image.is_last == "Y") androidAppPostImageUploadAllComplete(); 36 } 37 }; 38 39 var androidAppPostImageUploadAllComplete = function(){ 40 androidAppPostImageInsert(android_que[0]); 41 }; 42 43 var androidAppPostImageInsert = function(image){ 44 $map_editor.find('#map_body').froalaEditor('image.insert', CDN_UPLOAD_URL+image.url, true); 45 var img = $froala_obj.find('img[src="'+CDN_UPLOAD_URL+image.url+'"]'); 46 img.data(image); 47 postAddImage(image.tmp_idx,image.size); 48 android_que.splice(0,1); 49 }; 50 51 var postAddImage = function(tmp_idx,size){ 52 var uniq_id = makeUniq('image_'); 53 var hidden_input = $('<input name="temp_images[]" value="' + tmp_idx + '" type="hidden" />'); 54 var li = $('<li>').attr('id',uniq_id).data({'item':uniq_id,size:size}); 55 li.append(hidden_input); 56 $image_list_obj.append(li); 57 }; 58 /** 59 * ì§ë ê²ì물 í´ë¦ ì ì´ë²¤í¸ ì ì¸ 60 * @param b_code 61 * @param $obj ê¸ì°ê¸° íë©´ìì í¸ì¶ ì ìëí° í´ëì¤, ê·¸ ì¸ìë null 62 * @param api 63 * @param category_list 64 */ 65 var mapInitWrite = function(b_code, $obj, api, category_list, placeholder_edit){ 66 $map_form = $('#map_form'); 67 $board_container = $('#board_container'); 68 var board_code = b_code; 69 var map_api = api === 'naver' ? 'naver' : 'google'; 70 var category_data; 71 var current_position; //ê°ì 컨í ì´ë í´ë¦ì DBì¡°í ìì´ ë§ì»¤ë§ ì´ëí기ìí ë³ì 72 if(category_list) category_data = categoryList(category_list); 73 if(typeof markers[board_code] === 'undefined') markers[board_code] = []; 74 if(typeof infowindows[board_code] === 'undefined') infowindows[board_code] = []; 75 if($obj){ 76 $("body").addClass("write_mode"); 77 $map_editor = $obj; 78 if(IE_VERSION < 10){ 79 CKEDITOR.replace( 'map_body',{ 80 filebrowserImageUploadUrl: '/ajax/post_image_upload.cm?board_code='+b_code 81 }); 82 }else{ 83 setFroala('#map_form #map_body', { 84 code : board_code, 85 image_upload_url : "/ajax/post_image_upload.cm", 86 file_upload_url : "/ajax/post_file_upload.cm", 87 file_list_obj : $("#file_list"), 88 'placeholderText': placeholder_edit, 89 'image_display' : 'inline', 90 mobile_custom: true 91 }); 92 } 93 94 $map_form.find('#delete_cover_image').on('click',function(){ 95 deleteCoverImage($map_form); 96 }); 97 98 $map_form.find('#upload_cover_image').setUploadImage({ 99 url : '/ajax/upload_image.cm', 100 formData : {target : 'post', 'temp' : 'Y', 'param_name' : 'cover_image'} 101 }, function (msg, data,res) { 102 $.each(res.cover_image,function(i,file){ 103 if(file.tmp_idx > 0){ 104 $map_form.find('#cover_image').val(file.url); 105 $map_form.find('#cover_image_tmp_no').val(file.tmp_idx); 106 $map_form.find('#delete_cover_image').show(); 107 $board_container.toggleClass('bg_on',true); 108 $board_container.find('._cover_image').css('background-image',"url("+CDN_UPLOAD_URL+file.url+")"); 109 $board_container.find('._cover_image_src').attr('src',CDN_UPLOAD_URL+file.url); 110 } 111 }); 112 }); 113 114 isIOS = /(iPad|iPhone|iPod)/g.test(navigator.userAgent); 115 isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent); 116 $fr_m_custom = $board_container.find('._fr-m-custom'); 117 $write_header = $board_container.find('._write_header'); 118 m_sticky_container_trigger_top = $fr_m_custom.offset().top - $fr_m_custom.height(); 119 $toolbarContainer = $fr_m_custom.find('#toolbarContainer'); 120 if(isIOS && isSafari){ 121 $write_header.css('position', 'absolute'); 122 } 123 var timeoutTime = isIOS && isSafari ? 100 : 10; 124 var resize_time; 125 resizeStickyContainer(); 126 $(window).off('scroll.mobile_write resize.mobile_write').on('scroll.mobile_write resize.mobile_write',function(){ 127 var s_top = $(this).scrollTop(); 128 if(isIOS && isSafari){ 129 $write_header.css({'-webkit-transition': 'none', 'transition': 'none', 'top': 0}); 130 if(s_top > m_sticky_container_trigger_top){ 131 $toolbarContainer.css({'-webkit-transition': 'none', 'transition': 'none', 'top': 0}); 132 } 133 } 134 if(resize_time) { 135 clearTimeout(resize_time); 136 } 137 resize_time = setTimeout(function() { 138 resizeStickyContainer(); 139 }, timeoutTime); 140 }); 141 142 $obj.find('._map_search').keypress(function(e){ 143 if(e.keyCode == '13'){ 144 mapAddressSearch($(this).val(), map_api); 145 } 146 }); 147 148 //ì§ëê²ìí ë¶ì 목 ë°ìì ê¹ì§ í´ë¹ê¸°ë¥ off / ë¶ì 목 ê¸°ë¥ ì¶ê°ì ë¤ì on ìì¼ì¼í¨ 149 //$obj.find('#number').on('keydown').check_callnum(); 150 } 151 152 if(!IS_MOBILE){ 153 $('#map_list_fold_' + board_code).find('._map_container').on('click', function(){ 154 if($(this).attr('data-bcode') === board_code){ 155 var post_id = $(this).attr('id'); 156 var pos_x = parseFloat($('#' + post_id).find('._pos_x_temp').val()); 157 var pos_y = parseFloat($('#' + post_id).find('._pos_y_temp').val()); 158 if(map_api === 'naver'){ 159 if(current_position !== post_id){ //íì¬ ë ìë íì ê³¼ ë¤ë¥¸ 컨í ì´ë í´ë¦ììë§ DBì¡°í 160 infowindows[board_code][post_id].setContent(getInfoWindowData(board_code, post_id)); 161 infowindows[board_code][post_id].open(naver_map[board_code], markers[board_code][post_id]); 162 current_position = post_id; 163 } 164 // í´ë¹ ë§ì»¤ë¥¼ ì§ë ì¤ì¬ì¼ë¡ ì´ë 165 naver_map[board_code].setOptions({ 166 center: new naver.maps.LatLng(pos_y, pos_x),
167 zoom: naver_cluster_maxzoom + 1 168 }); 169 naverMarkCenter(naver_map[board_code]); 170 }else{ 171 var get_data = $('#gmap_' + board_code).gmap3({get: {id: post_id}}); 172 var info_close = $('#gmap_' + board_code).gmap3({get: {name: "infowindow"}}); 173 if(info_close){ 174 info_close.close(); 175 } 176 var map_data = ''; 177 var count = 0; 178 $('#gmap_' + board_code).gmap3({ 179 exec: { 180 id: post_id, 181 func: function(data){ 182 if(count == 4){ 183 map_data = data; 184 } 185 count++; 186 } 187 } 188 }); 189 $('#gmap_' + board_code).gmap3({ 190 map: { 191 options: { 192 center: [pos_y, pos_x], 193 scaleControl: true, 194 maxZoom: 19, 195 minZoom: 3, 196 zoom: google_cluster_maxzoom + 1, 197 mapTypeControl: false, 198 streetViewControl: false, 199 controlSize: 29 200 } 201 }, 202 infowindow: { 203 anchor: get_data, 204 options: {position: [pos_y, pos_x], content: getInfoWindowData(board_code, post_id)} 205 } 206 }); 207 208 var map_comment_count = 0; 209 var like_cnt = 0; 210 var read_cnt = 0; 211 var idx_arr = post_id.split('list_'); 212 map_comment_count = Math.round($('#' + post_id).find('._comment_count').text()); 213 like_cnt = Math.round($('#' + post_id).find('._like_count').text()); 214 read_cnt = Math.round($('#' + post_id).find('._read_count').text()); 215 $('#list_pop_' + idx_arr[1]).find('._comment_count').text(map_comment_count); 216 $('#list_pop_' + idx_arr[1]).find('._like_count').text(like_cnt); 217 $('#list_pop_' + idx_arr[1]).find('._read_count').text(read_cnt); 218 } 219 } 220 }); 221 } 222 223 224 225 document.onkeydown = function(evt) { 226 if(evt.keyCode == 27){ 227 $('html').removeClass('fullboard_on'); 228 $('body').find('#maps_more').remove(); 229 $('body').css('overflow',''); 230 location.hash = ''; 231 //$map_editor.hide(); 232 $('._calendar_modal_back').hide(); 233 if($map_form.find('#add_address_ck').val() == 'N'){ 234 searchDataClear('close'); 235 } 236 $('._cancel').trigger('click'); 237 } 238 } 239 240 241 }; 242 243 function resizeStickyContainer(){ 244 var s_top = $(this).scrollTop(); 245 if(isIOS && isSafari){ 246 $write_header.css({'-webkit-transition': 'top 100ms', 'transition': 'top 100ms', 'top': s_top + 'px'}); 247 $fr_m_custom.toggleClass('m_sticky_container', s_top > m_sticky_container_trigger_top); 248 $fr_m_custom.toggleClass('m_sticky_container_ios', s_top > m_sticky_container_trigger_top); 249 if(s_top > m_sticky_container_trigger_top){ 250 $toolbarContainer.css({'-webkit-transition': 'top 100ms', 'transition': 'top 100ms', 'top': s_top + 'px'}); 251 $map_form.find('#map_body').css('padding-top', '50px'); 252 }else{ 253 $toolbarContainer.css({'-webkit-transition': 'none', 'transition': 'none', 'top': 'auto'}); 254 $map_form.find('#map_body').css('padding-top', ''); 255 } 256 }else{ 257 $fr_m_custom.toggleClass('m_sticky_container', s_top > m_sticky_container_trigger_top); 258 } 259 if($(window).width() >= 768){ 260 if($board_container.hasClass('bg_on')) 261 $board_container.find('#toolbarContainer').toggleClass('pc_sticky_toolbar', s_top > 487); 262 else 263 $board_container.find('#toolbarContainer').toggleClass('pc_sticky_toolbar', s_top > 180); 264 } 265 } 266 267 268 var deleteCoverImage = function(){ 269 $map_form.find('#cover_image').val(''); 270 $map_form.find('#cover_image_tmp_no').val(''); 271 $board_container.toggleClass('bg_on',false); 272 $board_container.find('._cover_image').css('background-image','none'); 273 $board_container.find('._cover_image_src').attr('src',''); 274 $map_form.find('#delete_cover_image').hide(); 275 }; 276 277 var toggleAlarmPopup = function(){ 278 $('#alarm_popup').toggleClass('open'); 279 if($('#alarm_popup').hasClass('open')){ 280 $(window).on('click.alarm_popup',function(event){ 281 var $top_closest = $(event.target).closest('a'); 282 if($top_closest.attr('id')!='dLabel'){ 283 var $closest = $(event.target).closest('ul'); 284 if($closest != null && !$closest.hasClass('dropdown-menu')){ 285 $('#alarm_popup').removeClass('open'); 286 $(window).off('click.alarm_popup'); 287 var alarm_group_list = $('#alarm_popup').find("input[type='checkbox']").is(":checked"); 288 if(alarm_group_list) $('#dLabel').addClass('active'); 289 else $('#dLabel').removeClass('active'); 290 } 291 } 292 }); 293 } 294 }; 295 /** 296 * ë§ì»¤ ìì¹ ë°ì´í° ë°ìì map_data ë°°ì´ì ì ì¥ 297 * @param board_code 298 * @param keyword 299 * @param keyword_type 300 * @param sort 301 * @param category 302 */ 303 var addMapData = function(board_code, keyword, keyword_type, sort, category){ 304 if(typeof map_data[board_code] === 'undefined') map_data[board_code] = []; 305 $.ajax({ 306 type : 'post', 307 data : { 308 'board_code': board_code, 309 'search': keyword, 310 'search_mod': keyword_type, 311 'sort': sort, 312 'status': category 313 }, 314 url : '/ajax/get_map_data.cm', 315 dataType : 'json', 316 async : false, 317 cache : false, 318 success : function(result){ 319 if(result.msg == 'SUCCESS'){ 320 var map_data_array = result.map_data_array; 321 for(var key in map_data_array){ 322 map_data[board_code].push(JSON.parse(map_data_array[key])); 323 } 324 } 325 } 326 }); 327 }; 328 /** 329 * ê²ì물 ìì ì¤ ì¥ì ìì ì°½ì ëì 330 * @param map_api naver, google, null(ì§ë API í¤ê° ìì ë ìì ë¶ê°) 331 */ 332 var mapEditorPop = function(map_api){ 333 if(map_api){ 334 $map_editor.show(); 335 $('._calendar_modal_back').show(); 336 if($map_form.find('#pos_x').val() && $map_form.find('#pos_y').val()){ 337 setMap($map_form.find('#pos_y').val(), $map_form.find('#pos_x').val(), 'N', null, null, map_api, true, 'Y', $map_form.find('#zoom').val(), getMarkerByColorType($map_form.find('#category_color_type').val())); 338 }else{ 339 setMap(37.5666805, 126.9784147, 'N', null, null, map_api, true, 'Y', 17, getMarkerByColorType($map_form.find('#category_color_type').val())); 340 } 341 342 if($map_form.find('#address').val()){ 343 $map_editor.find('._map_search').val($map_form.find('#address').val()); 344 } 345 if($map_form.find('#sub_address').val()){ 346 $map_editor.find('#s_address').val($map_form.find('#sub_address').val()); 347 } 348 if($map_form.find('#phone_number').val()){
349 $map_editor.find('#number').val($map_form.find('#phone_number').val()); 350 } 351 if($map_form.find('#web_address').val()){ 352 $map_editor.find('#h_address').val($map_form.find('#web_address').val()); 353 } 354 355 $("body").off('mousedown.map').on('mousedown.map', function(e){ 356 var t3 = $(e.target); 357 if(t3.closest('._map_moda_content').length == 0){ 358 $map_editor.hide(); 359 $('._calendar_modal_back').hide(); 360 if($map_form.find('#add_address_ck').val() == 'N'){ 361 searchDataClear('back'); 362 } 363 } 364 }); 365 366 $map_editor.find('._map_editor_close').on('click', function(){ 367 $map_editor.hide(); 368 $('._calendar_modal_back').hide(); 369 if($map_form.find('#add_address_ck').val() == 'N'){ 370 searchDataClear('close'); 371 } 372 }); 373 374 $map_editor.find('._map_adress_add').on('click', function(){ 375 if(!$map_editor.find('._map_search').val()){ 376 if(map_api === 'google'){ 377 alert(LOCALIZE.ì¤ëª _주ìì¥ì를ê²ìí´ì£¼ì¸ì()); 378 }else{ 379 alert(LOCALIZE.ì¤ëª _ëë¡ëª ì§ë²ìê²ìí´ì£¼ì¸ì()); 380 } 381 }else{ 382 if(!$map_form.find('#temp_pos_x').val() || !$map_form.find('#temp_pos_y').val()){ 383 alert(LOCALIZE.ì¤ëª _주ìê²ìë²í¼ìëë¬ì£¼ì¸ì()); 384 }else{ 385 searchDataAdd(); 386 } 387 } 388 }); 389 $map_editor.find('#s_address,#number,#h_address').keypress(function(e){ 390 if(e.keyCode == '13'){ 391 if(!$map_editor.find('._map_search').val()){ 392 if(map_api === 'google'){ 393 alert(LOCALIZE.ì¤ëª _주ìì¥ì를ê²ìí´ì£¼ì¸ì()); 394 }else{ 395 alert(LOCALIZE.ì¤ëª _ëë¡ëª ì§ë²ìê²ìí´ì£¼ì¸ì()); 396 } 397 }else{ 398 searchDataAdd(); 399 } 400 } 401 }); 402 }else{ 403 alert(LOCALIZE.ì¤ëª _ì¥ì를ìì í ìììµëë¤()); 404 } 405 }; 406 /** 407 * ì¥ì ê²ì 408 * @param val 409 * @param map_api 410 * @return {boolean} 411 */ 412 var mapAddressSearch = function(val, map_api){ 413 if(val == '') { 414 $map_editor.find('._search_result').hide(); 415 if(map_api === 'google'){ 416 alert(LOCALIZE.ì¤ëª _주ìì¥ì를ê²ìí´ì£¼ì¸ì()); 417 }else{ 418 alert(LOCALIZE.ì¤ëª _ëë¡ëª ì§ë²ìê²ìí´ì£¼ì¸ì()); 419 } 420 return false; 421 } 422 $.ajax({ 423 type : 'POST', 424 data : {keyword: val, map_api: map_api}, 425 url : ('/ajax/map_search.cm'), 426 dataType : 'json', 427 async : true, 428 cache : false, 429 success : function(res){ 430 $map_editor.find('._search_list').empty(); 431 if(res.msg == 'SUCCESS'){ 432 if(res.count > 0){ 433 if(typeof res.data.errorMessage !== 'undefined'){ 434 // ìë¬ ë©ìì§ê° ëì´ìì ë 435 var item = $('<li><span class="txt">' + res.data.errorMessage + '</span></li>') 436 .on('click', function(){ 437 $map_editor.find('._search_result').hide(); 438 }); 439 $map_editor.find('._search_list').append(item); 440 }else{ 441 $.each(res.data, function(e, _data){ 442 var item = $('<li><span class="txt">' + _data.address + '</span></li>').data({ 443 lat : _data.lat, 444 lng : _data.lng, 445 address : _data.address 446 }) 447 .on('click', function(){ 448 $map_editor.find('._map_search').val($(this).data('address')); 449 var tmp = { 450 'lat' : $(this).data('lat'), 451 'lng' : $(this).data('lng'), 452 'address' : $(this).data('address') 453 }; 454 $map_editor.find('._search_result').hide(); 455 var zoom = $map_form.find('#temp_zoom').val() ? $map_form.find('#temp_zoom').val() : 17; 456 if(map_api === 'google'){ 457 var latlng = new google.maps.LatLng($(this).data('lat'), $(this).data('lng')); 458 target_map.setCenter(latlng); 459 target_marker.setPosition(latlng); 460 }else{ 461 var latlng = new naver.maps.LatLng($(this).data('lat'), $(this).data('lng')); 462 target_map.setCenter(latlng); 463 target_marker.setPosition(latlng); 464 } 465 $map_form.find('#temp_pos_x').val($(this).data('lng')); 466 $map_form.find('#temp_pos_y').val($(this).data('lat')); 467 }); 468 $map_editor.find('._search_list').append(item); 469 }); 470 } 471 }else{ 472 var item = $('<li><span class="txt">' + LOCALIZE.ì¤ëª _ê²ìê²°ê³¼ê°ì¡´ì¬íì§ììµëë¤() + '</span></li>') 473 .on('click', function(){ 474 $map_editor.find('._search_result').hide(); 475 }); 476 $map_editor.find('._search_list').append(item); 477 } 478 $map_editor.find('._search_result').show(); 479 }else{ 480 $map_editor.find('._search_result').hide(); 481 } 482 } 483 }); 484 }; 485 /** 486 * apiì ë°ë¥¸ ë§µ ì¤ì 487 * @param lat 488 * @param lng 489 * @param detail 490 * @param $obj 491 * @param m_data 492 * @param map_api 493 * @param editable ì¥ì ìì ê°ë¥ ì¬ë¶ 494 * @param scroll_wheel ì¤í¬ë¡¤í ë¡ íë ì¶ì íì© ì¬ë¶(ì§ë ê²ìí ì¤ì ìì ë°ìì´) 495 * @param zoom 496 * @param marker_url 497 */ 498 var setMap = function(lat,lng,detail,$obj,m_data,map_api,editable,scroll_wheel,zoom,marker_url){ 499 if($obj){ 500 $obj.find('#_gmap').get(0).innerHTML = ''; 501 }else{ 502 $map_editor.find('#_gmap').get(0).innerHTML = ''; 503 } 504 var _marker_url = marker_url ? marker_url : '//static.imweb.me/vendor/images/marker/marker_red.png'; 505 if(map_api === 'naver') 506 setNaverMap(lat,lng,detail,$obj,m_data,editable,scroll_wheel,zoom,_marker_url); 507 else 508 setGoogleMap(lat,lng,detail,$obj,m_data,editable,scroll_wheel,zoom,_marker_url); 509 510 }; 511 /** 512 * 513 * @param lat 514 * @param lng 515 * @param detail 516 * @param $obj 517 * @param m_data 518 * @param editable 519 * @param scroll_wheel 520 * @param zoom 521 * @param marker_url 522 */ 523 var setNaverMap = function(lat,lng,detail,$obj,m_data,editable,scroll_wheel,zoom,marker_url){ 524 var latlng = new naver.maps.LatLng(lat,lng); 525 526 var myOptions = { 527 zoom: parseInt(zoom),
528 useStyleMap: true, 529 center: latlng, 530 mapTypeId: naver.maps.MapTypeId.NORMAL, 531 zoomControl: true, 532 mapTypeControl: false, 533 scaleControl: true, 534 disableDoubleClickZoom: true, 535 scrollWheel: scroll_wheel === 'Y' 536 }; 537 538 if($obj){ 539 target_map = new naver.maps.Map($obj.find('#_gmap').get(0), myOptions); 540 }else{ 541 target_map = new naver.maps.Map($map_editor.find('#_gmap').get(0), myOptions); 542 } 543 544 target_marker = new naver.maps.Marker({ 545 position: latlng, 546 map: target_map, 547 clickable: true, 548 icon: { 549 url : marker_url, 550 size : new naver.maps.Size(27, 35.5), 551 scaledSize : new naver.maps.Size(27, 35.5) 552 } 553 }); 554 555 if(editable){ 556 naver.maps.Event.addListener(target_map, 'click', function(event) { 557 // í´ë¦ ì í´ë¦í ì§ì ì¼ë¡ ë§ì»¤ ë° ì§ë ì´ë 558 target_map.setCenter(event.latlng); 559 target_marker.setPosition(event.latlng); 560 $map_form.find('#temp_pos_x').val(event.latlng._lng); 561 $map_form.find('#temp_pos_y').val(event.latlng._lat); 562 }); 563 naver.maps.Event.addListener(target_map, 'drag', function(event) { 564 // ëëê·¸ ì¤ìë ë§ì»¤ë§ ê°ì´ë°ì ê³ ì 565 target_marker.setPosition(target_map.getCenter()); 566 }); 567 naver.maps.Event.addListener(target_map, 'dragend', function(event) { 568 // ëëê·¸ ì¢ ë£ ìì ê° ì ì¥ 569 var map_center = target_map.getCenter(); 570 target_marker.setPosition(map_center); 571 $map_form.find('#temp_pos_x').val(map_center._lng); 572 $map_form.find('#temp_pos_y').val(map_center._lat); 573 // ëëê·¸ ìë£ë ì§ì ì¼ë¡ ë§ì»¤ í´ë¦ì´ë²¤í¸ ìë¡ ì°ê²° 574 naver.maps.Event.clearListeners(target_marker, 'click'); 575 }); 576 naver.maps.Event.addListener(target_map, 'mouseout', function(event){ 577 $map_form.find('#temp_zoom').val(target_map.getZoom()); 578 }); 579 $map_editor.find('._map_adress_add').on('click', function(){ 580 $map_form.find('#temp_zoom').val(target_map.getZoom()); 581 }); 582 }else{ 583 if(detail === 'Y'){ 584 var info_name = ''; 585 var info_phone_number = ''; 586 var info_address = ''; 587 if(typeof m_data.subject != 'undefined' && m_data.subject != ''){ 588 info_name = '<header><div class="box_tit">' + m_data.subject + '</div></header>'; 589 } 590 if(typeof m_data.address != 'undefined' && m_data.address != ''){ 591 if(typeof m_data.phone_number != 'undefined' && m_data.phone_number != ''){ 592 info_phone_number = '<span class="map_tell" style="display: block">' + m_data.phone_number + '</span>'; 593 info_address = '<p class="map_adress">' + m_data.address + info_phone_number + '</p>'; 594 }else{ 595 info_address = '<p class="map_adress">' + m_data.address + '</p>'; 596 } 597 } 598 599 if(info_name != '' || info_address != ''){ 600 var contentString1 = '<div class="map_info_box">' + info_name + info_address + '</div>'; 601 var infowindow = new naver.maps.InfoWindow({ 602 content : contentString1 603 }); 604 infowindow.open(target_map, target_marker); 605 } 606 607 target_marker.addListener('click', function(){ 608 infowindow.open(target_map, target_marker); 609 }); 610 }else{ 611 target_marker.addListener('click', function(){ 612 if(IS_MOBILE){ 613 var map_link = m_data.sub_address ? 'https://m.map.naver.com/search2/search.nhn?query=' + m_data.address + '%20' + m_data.sub_address + '&sm=sug&style=v5#/map/1' : 'https://m.map.naver.com/search2/search.nhn?query=' + m_data.address + '&sm=sug&style=v5#/map/1'; 614 }else{ 615 var map_link = m_data.sub_address ? 'https://map.naver.com/v5/search/' + m_data.address + '%20' + m_data.sub_address : 'https://map.naver.com/v5/search/' + m_data.address; 616 } 617 window.open(map_link); 618 }); 619 } 620 } 621 }; 622 /** 623 * 624 * @param lat 625 * @param lng 626 * @param detail 627 * @param $obj 628 * @param m_data 629 * @param editable 630 * @param scroll_wheel 631 * @param zoom 632 * @param marker_url 633 */ 634 var setGoogleMap = function(lat,lng,detail,$obj,m_data,editable,scroll_wheel,zoom,marker_url){ 635 var latlng = new google.maps.LatLng(lat,lng); 636 637 var myOptions = { 638 zoom: parseInt(zoom), 639 center: latlng, 640 mapTypeId: 'roadmap', 641 zoomControl: true, 642 mapTypeControl: false, 643 scaleControl: true, 644 streetViewControl: false, 645 rotateControl: false, 646 disableDoubleClickZoom : true, 647 gestureHandling: 'auto', 648 controlSize: 29 649 }; 650 651 var styles = [ 652 { 653 'stylers': [] 654 } 655 ]; 656 657 if($obj){ 658 target_map = new google.maps.Map($obj.find('#_gmap').get(0), myOptions); 659 }else{ 660 target_map = new google.maps.Map($map_editor.find('#_gmap').get(0), myOptions); 661 } 662 target_map.setOptions({styles: styles}); 663 664 target_marker = new google.maps.Marker({ 665 position: latlng, 666 map: target_map, 667 icon: { 668 url: marker_url, 669 size: new google.maps.Size(27, 35.5), 670 scaledSize: new google.maps.Size(27, 35.5) 671 }, 672 shadow: null, 673 title: name 674 }); 675 676 if(editable){ 677 google.maps.event.addListener(target_map, 'click', function(event) { 678 // í´ë¦ ì í´ë¦í ì§ì ì¼ë¡ ë§ì»¤ ë° ì§ë ì´ë 679 target_map.setCenter(event.latLng); 680 target_marker.setPosition(event.latLng); 681 $map_form.find('#temp_pos_x').val(event.latLng.lng()); 682 $map_form.find('#temp_pos_y').val(event.latLng.lat()); 683 }); 684 google.maps.event.addListener(target_map, 'drag', function(event) { 685 // ëëê·¸ ì¤ìë ë§ì»¤ë§ ê°ì´ë°ì ê³ ì 686 target_marker.setPosition(target_map.getCenter()); 687 }); 688 google.maps.event.addListener(target_map, 'dragend', function(event) { 689 // ëëê·¸ ì¢ ë£ ìì ê° ì ì¥ 690 var map_center = target_map.getCenter(); 691 target_marker.setPosition(map_center); 692 $map_form.find('#temp_pos_x').val(map_center.lng()); 693 $map_form.find('#temp_pos_y').val(map_center.lat());
694 // google ì§ë ëëê·¸ ì ê´ì± ë°©ì§ 695 target_map.setCenter(map_center); 696 // ëëê·¸ ìë£ë ì§ì ì¼ë¡ ë§ì»¤ í´ë¦ì´ë²¤í¸ ìë¡ ì°ê²° 697 }); 698 google.maps.event.addListener(target_map, 'mouseout', function(event){ 699 $map_form.find('#temp_zoom').val(target_map.getZoom()); 700 }); 701 $map_editor.find('._map_adress_add').on('click', function(){ 702 $map_form.find('#temp_zoom').val(target_map.getZoom()); 703 }); 704 }else{ 705 if(detail == 'Y'){ 706 var info_name = ''; 707 var info_phone_number = ''; 708 var info_address = ''; 709 if(typeof m_data.subject != 'undefined' && m_data.subject != ''){ 710 info_name = '<header><div class="box_tit">' + m_data.subject + '</div></header>'; 711 } 712 if(typeof m_data.address != 'undefined' && m_data.address != ''){ 713 if(typeof m_data.phone_number != 'undefined' && m_data.phone_number != ''){ 714 info_phone_number = '<span class="map_tell" style="display: block">' + m_data.phone_number + '</span>'; 715 info_address = '<p class="map_adress">' + m_data.address + info_phone_number + '</p>'; 716 }else{ 717 info_address = '<p class="map_adress">' + m_data.address + '</p>'; 718 } 719 } 720 721 if(info_name != '' || info_address != ''){ 722 var contentString1 = '<div class="map_info_box">' + info_name + info_address + '</div>'; 723 var infowindow = new google.maps.InfoWindow({ 724 content : contentString1 725 }); 726 infowindow.open(target_map, target_marker); 727 } 728 729 target_marker.addListener('click', function(){ 730 infowindow.open(target_map, target_marker); 731 }); 732 }else{ 733 target_marker.addListener('click', function(){ 734 var map_link = m_data.sub_address ? 'http://www.google.cn/maps/search/' + m_data.address + '%20' + m_data.sub_address : 'http://www.google.cn/maps/search/' + m_data.address; 735 if(LIMIT_API_LIST.indexOf('google_map') === -1){ 736 map_link = m_data.sub_address ? 'https://www.google.com/maps/search/' + m_data.address + '%20' + m_data.sub_address : 'https://www.google.com/maps/search/' + m_data.address; 737 } 738 window.open(map_link); 739 }); 740 } 741 } 742 }; 743 744 /** 745 * ê²ì물 ìì ì¤ ì¥ì ì ë³´ ì§ì°ê¸° 746 * @param map_api naver, google, null(ì§ë API í¤ê° ìì ë 주ì ë±ë¡ì´ ë¶ê°ë¥íë¯ë¡ ìì ë ë°©ì§) 747 */ 748 var addressDelete = function(map_api){ 749 if(map_api) 750 searchDataClear('delete'); 751 else 752 alert(LOCALIZE.ì¤ëª _ì¥ì를ìì í ìììµëë¤()); 753 }; 754 755 /** 756 * ìì¹ ë°ì´í° ìì ëë ì´ê¸°í 757 * @param type 758 */ 759 var searchDataClear = function(type){ 760 if(type == 'back'){ 761 $map_form.find('#temp_pos_x').val(''); 762 $map_form.find('#temp_pos_y').val(''); 763 $map_form.find('#temp_zoom').val(''); 764 $map_editor.find('._map_search').val(''); 765 $map_editor.find('#s_address').val(''); 766 $map_editor.find('#number').val(''); 767 $map_editor.find('#h_address').val(''); 768 }else if(type == 'close'){ 769 $map_form.find('#temp_pos_x').val(''); 770 $map_form.find('#temp_pos_y').val(''); 771 $map_form.find('#temp_zoom').val(''); 772 $map_editor.find('._map_search').val(''); 773 $map_editor.find('#s_address').val(''); 774 $map_editor.find('#number').val(''); 775 $map_editor.find('#h_address').val(''); 776 }else if(type == 'delete'){ 777 $map_form.find('#add_address_ck').val('N'); 778 $map_form.find('#pos_x').val(126.9784147); 779 $map_form.find('#pos_y').val(37.5666805); 780 $map_form.find('#zoom').val(17); 781 $map_form.find('#temp_pos_x').val(''); 782 $map_form.find('#temp_pos_y').val(''); 783 $map_form.find('#temp_zoom').val(17); 784 $map_form.find('#phone_number').val(''); 785 $map_form.find('#address').val(''); 786 $map_form.find('#sub_address').val(''); 787 $map_form.find('._add_map').removeClass('on'); 788 $map_form.find('._address').text(''); 789 $map_form.find('._phone').text(''); 790 $map_form.find('._web_address').text(''); 791 $map_form.find('#web_address').val(''); 792 $map_editor.find('._map_search').val(''); 793 $map_editor.find('#s_address').val(''); 794 $map_editor.find('#number').val(''); 795 $map_editor.find('#h_address').val(''); 796 } 797 }; 798 799 /** 800 * ìì¹ ë°ì´í° ì¶ê° 801 */ 802 var searchDataAdd = function(){ 803 $map_form.find('#address').val($map_editor.find('._map_search').val()); 804 $map_form.find('#sub_address').val($map_editor.find('#s_address').val());
805 $map_form.find('#phone_number').val($map_editor.find('#number').val()); 806 $map_form.find('#web_address').val($map_editor.find('#h_address').val()); 807 $map_form.find('._add_map').addClass('on'); 808 $map_form.find('._address').text($map_editor.find('._map_search').val()+' '+$map_editor.find('#s_address').val()); 809 $map_form.find('._phone').text($map_editor.find('#number').val()); 810 $map_form.find('._web_address').text($map_editor.find('#h_address').val()); 811 $map_form.find('#add_address_ck').val('Y'); 812 if($map_form.find('#temp_pos_x').val() && $map_form.find('#temp_pos_y').val()){ 813 $map_form.find('#pos_x').val($map_form.find('#temp_pos_x').val()); 814 $map_form.find('#pos_y').val($map_form.find('#temp_pos_y').val()); 815 } 816 $map_form.find('#zoom').val($map_form.find('#temp_zoom').val()); 817 $map_editor.hide(); 818 $('._calendar_modal_back').hide(); 819 }; 820 821 /** 822 * ìì¹ ì ë³´ ì ë ¥ ìë£ 823 * @param map_api 824 */ 825 var mapSubmit = function(map_api){ 826 var address = $map_form.find('input#address').val(); 827 if(address != ''){ 828 if(IE_VERSION < 10){ 829 var body = CKEDITOR.instances.map_body.getData(); 830 var plain_text = $(body).text(); 831 $map_form.find('#body_input').val(body); 832 $map_form.find('#plain_body_input').val(plain_text); 833 $map_form.submit(); 834 }else{ 835 if($map_form.find('#map_body').hasClass('fr-code-view')) FroalaEditor('#map_form #map_body').codeView.toggle(); 836 var body = FroalaEditor('#map_form #map_body').html.get(true); 837 var plain_text = $(body).text(); 838 $map_form.find('#body_input').val(body); 839 $map_form.find('#plain_body_input').val(plain_text); 840 $map_form.submit(); 841 } 842 }else{ 843 alert(LOCALIZE.ì¤ëª _주ì를ì ë ¥íì¸ì()); 844 mapEditorPop(map_api); 845 } 846 }; 847 848 var mapCancel = function(back_url){ 849 if(isIOS && isSafari){ 850 var s_top = $(this).scrollTop(); 851 $write_header.css({'-webkit-transition': 'none', 'transition': 'none', 'position': 'fixed', 'top': 0}); 852 $fr_m_custom.toggleClass('m_sticky_container', s_top > m_sticky_container_trigger_top); 853 $fr_m_custom.toggleClass('m_sticky_container_ios', s_top > m_sticky_container_trigger_top); 854 if(s_top > m_sticky_container_trigger_top){ 855 $toolbarContainer.css({'-webkit-transition': 'none', 'transition': 'none', 'position': 'fixed', 'top': $write_header.height() + 'px'}); 856 }else{ 857 $toolbarContainer.css({'-webkit-transition': 'none', 'transition': 'none', 'top': 'auto'}); 858 } 859 } 860 document.location.href = back_url; 861 }; 862 863 /** 864 * 865 * @param idx 866 * @param back_url 867 * @param board_code 868 * @param map_api naver, google, null(ì§ë API í¤ê° ìì ê²½ì°) 869 * @param scroll_wheel ì¤í¬ë¡¤í ë¡ íë ì¶ì íì© ì¬ë¶ 870 * @param is_ignore window width 무ì ì¬ë¶ 871 */ 872 var getTypeMapView = function(idx,back_url, board_code, map_api, scroll_wheel, is_ignore = true){ 873 const check_ww = window.innerWidth; 874 if(check_ww > 767 && !is_ignore) return false; 875 cancelFullScreen(); 876 $('html').addClass('fullboard_on'); 877 location.hash = '/map'+idx; 878 back_url = back_url+location.hash; 879 var is_update_time = $('._map_view_' + board_code + ' select[name=sort]').val() === 'UPDATE' ? 'Y' : 'N'; 880 $.ajax({ 881 type : 'post', 882 data:{'idx':idx,'board_code':board_code,'back_url':back_url, 'update_time':is_update_time}, 883 url : '/ajax/map_more_view.cm', 884 dataType : 'json', 885 async : false, 886 cache : false, 887 success : function(result){ 888 if(result.msg == 'SUCCESS'){ 889 SNS.init(result.sns_init_data); 890 $('[data-toggle="tooltip"]').tooltip(); 891 var $html = $(result.html); 892 $('body').append($html); 893 if(IS_ANDROID_APP == 'Y'){ 894 var height = 0; 895 var org_height = 0; 896 org_height = $("html,body").height(); 897 height = $("html,body").height()+100; 898 $("html,body").css('height',height); 899 $html.scroll(function(){ 900 $("html,body").scrollTop($(this).scrollTop()); 901 }); 902 }else{ 903 $('body').css('overflow','hidden'); 904 } 905 if(!result.require_login && !result.deny && !result.require_pass){ 906 if(map_api){ 907 var marker_url = '//static.imweb.me/vendor/images/marker/marker_red.png'; 908 var category_list = JSON.parse(result.category_list); 909 if(result.data.category_code){ 910 marker_url = getMarkerByCategoryCode(result.data.category_code, category_list); 911 } 912 setMap(result.data.pos_y, result.data.pos_x, 'N', $('#maps_more'), result.data, map_api, false, scroll_wheel, result.data.zoom, marker_url); 913 }else{ 914 var map_disable_html = '<div class="widget_map_disable"></div>'; 915 $('#_gmap').html(map_disable_html); 916 } 917 } 918 $(window).off('hashchange').on('hashchange',function(){ 919 var old_hash_url_tmp; 920 var old_hash_url; 921 var new_hash_url_tmp; 922 var new_hash_url; 923 old_hash_url_tmp = location.hash.split('#'); 924 if(old_hash_url_tmp[1]){ 925 old_hash_url = old_hash_url_tmp[1].split('map'); 926 } 927 new_hash_url_tmp = back_url.split('#'); 928 new_hash_url = new_hash_url_tmp[1].split('map'); 929 if(!location.hash){ 930 $('body').find('#maps_more').remove(); 931 $('body').css('overflow',''); 932 }else{ 933 if(typeof old_hash_url[1] != 'undefined' && old_hash_url[1] != '' && old_hash_url[1] != 'null'){ 934 if(old_hash_url[1] != new_hash_url[1]){ 935 getTypeMapView(old_hash_url[1], null, board_code, map_api, scroll_wheel); 936 } 937 } 938 } 939 }); 940 POST_COMMENT.init(result.data.code); 941 $('body').find('#map_more_close').off('click').on('click',function(){ 942 $('html').removeClass('fullboard_on'); 943 if(IS_ANDROID_APP == 'Y'){ 944 $("html,body").css('height',org_height); 945 } 946 $('body').find('#maps_more').remove(); 947 $('body').css('overflow',''); 948 location.hash = ''; 949 }); 950 $('body').addClass('map_view'); 951 }else{ 952 alert(result.msg); 953 } 954 } 955 }); 956 }; 957 958 /** 959 * ì ì²´íë©´ 보기 ìíì¼ ë ì ì²´íë©´ í´ì 960 */ 961 var cancelFullScreen = function(){ 962 if (document.fullscreenElement){ 963 document.exitFullscreen(); 964 } else if (document.cancelFullScreen) { 965 document.cancelFullScreen(); 966 } else if (document.mozCancelFullScreen) { // FireFox 967 document.mozCancelFullScreen(); 968 } else if (document.webkitCancelFullScreen) { // Chrome 969 document.webkitCancelFullScreen(); 970 } else if (document.msExitFullscreen) { // IE 971 document.msExitFullscreen(); 972 } 973 }; 974 975 /** 976 * 977 * @param board_code 978 * @param code 979 * @param return_url 980 */ 981 var deleteMap = function (board_code,code,return_url){ 982 if(confirm(LOCALIZE.ì¤ëª _ìì íìê² ìµëê¹())){ 983 $.ajax({ 984 type : 'post',
985 data:{'mcode':code,board_code:board_code}, 986 url : '/ajax/deleteMap.cm', 987 dataType : 'json', 988 success : function(result){ 989 if(result.msg == 'SUCCESS'){ 990 window.location.href = return_url; 991 }else{ 992 alert(result.msg); 993 } 994 } 995 }); 996 } 997 }; 998 999 var mapListToggle = function($obj){ 1000 if($obj.hasClass('fold') === true){ 1001 $obj.removeClass('fold'); 1002 }else{ 1003 $obj.addClass('fold'); 1004 } 1005 }; 1006 1007 var mapSearchToggle = function($obj,type){ 1008 if(type == 'show'){ 1009 $obj.find('.head_wrap').hide(); 1010 $obj.find('.search-wrap').show(); 1011 } 1012 if(type == 'hide'){ 1013 $obj.find('.head_wrap').show(); 1014 $obj.find('.search-wrap').hide(); 1015 } 1016 }; 1017 1018 var mapListChange = function($obj,type){ 1019 if(type=='map'){ 1020 $obj.addClass('fold'); 1021 } 1022 if(type=='list'){ 1023 $obj.removeClass('fold'); 1024 } 1025 }; 1026 1027 /** 1028 * ë¸ë¼ì°ì ìì¹ ì ë³´ ë°ê¸° 1029 * @param force trueì¼ ê²½ì° ìì¹ ì ë³´ ì¿ í¤ê° ìì´ë ê°±ì 1030 */ 1031 var posCreat = function(force){ 1032 if(force || (!getCookie('lng') && !getCookie('lat'))){ 1033 var option = { 1034 enableHighAccuracy:false, 1035 timeout : 5000, 1036 maximumAge: 60000 1037 }; 1038 var geolocation_timeout; 1039 1040 if(IS_ANDROID_APP == 'Y' && APP_VERSION >= 97000){ 1041 window.dozAndroidBridge.getLocationData(); 1042 }else{ 1043 if(navigator.geolocation){ 1044 function success(pos){ 1045 clearTimeout(geolocation_timeout); 1046 var crd = pos.coords; 1047 if(getCookie('lat') != crd.latitude && getCookie('lng') != crd.longitude){ 1048 setCookie('lat', crd.latitude, 7); 1049 setCookie('lng', crd.longitude, 7); 1050 } 1051 } 1052 1053 function error(err){ 1054 clearTimeout(geolocation_timeout); 1055 if(!(!!err)){ 1056 err = {}; 1057 err.code = 1; 1058 } 1059 switch(err.code){ 1060 case 0: //0: 'ìì¹ ì ë³´ ê²ìì 문ì ê° ììµëë¤. 1061 $(function(){ 1062 alert(LOCALIZE.ì¤ëª _ìì¹ì ë³´ê²ìì문ì ê°ììµëë¤()); 1063 }); 1064 break; 1065 case 1: //1: 'íì¬ íì´ì§ìì ì¬ì©ìê° ìì¹ ì ë³´ ê²ìì ê±°ë¶íìµëë¤.', 1066 $(function(){ 1067 alert(LOCALIZE.ì¤ëª _ìì¹ì ë³´ê²ììíì©í´ì£¼ì¸ì()); 1068 }); 1069 break; 1070 case 2: //2: 'ë¸ë¼ì°ì ê° ìì¹ì 보를 ê²ìíì§ ëª»íìµëë¤. 1071 $(function(){ 1072 alert(LOCALIZE.ì¤ëª _ìì¹ì 보를ê²ìíì§ëª»íìµëë¤()); 1073 }); 1074 break; 1075 case 3: //3: 'ë¸ë¼ì°ì ì ìì¹ ì ë³´ ê²ì ìê°ì´ ì´ê³¼ëìµëë¤.' 1076 $(function(){ 1077 alert(LOCALIZE.ì¤ëª _ìì¹ì ë³´ê²ììê°ìì´ê³¼íììµëë¤()); 1078 }); 1079 break; 1080 default: 1081 break; 1082 } 1083 } 1084 1085 geolocation_timeout = setTimeout(error, option.timeout); 1086 navigator.geolocation.getCurrentPosition(success, error, option); 1087 }else{ 1088 alert(LOCALIZE.ì¤ëª _ìì¹ê²ìì´ì§ìëì§ìëë¸ë¼ì°ì ¸ì ëë¤()); 1089 } 1090 } 1091 } 1092 }; 1093 1094 /** 1095 * ë´ ìì¹ ì¤ì¬ì¼ë¡ ì´ë 1096 * @param board_code 1097 * @param map_api 1098 */ 1099 var moveUserPosition = function(board_code, map_api){ 1100 posCreat(true); 1101 userPosCreat(board_code, map_api); 1102 var userLat = getCookie('lat'); 1103 var userLng = getCookie('lng'); 1104 if(map_api === 'naver'){ 1105 if(userLng >= 124 && userLng <= 132 && userLat >= 33 && userLat <= 43){ 1106 naver_map[board_code].setOptions({center : new naver.maps.LatLng(userLat, userLng)}); 1107 } 1108 }else{ 1109 var target_map = $('#gmap_' + board_code).gmap3('get'); 1110 target_map.setCenter(new google.maps.LatLng(userLat, userLng)); 1111 } 1112 }; 1113 1114 /** 1115 * ì±ìì ìì¹ì ë³´ ì ì¡ì í¸ì¶ 1116 */ 1117 var setAndroidLocationData = function(latitude, longitude){ 1118 if(latitude < 0 || longitude < 0){ 1119 alert(LOCALIZE.ì¤ëª _기기ììì¹ì ë³´ê²ìì¤í¨()); 1120 }else{ 1121 if(getCookie('lat') != latitude && getCookie('lng') != longitude){ 1122 setCookie('lat', latitude, 7); 1123 setCookie('lng', longitude, 7); 1124 } 1125 //location.reload(); 1126 } 1127 }; 1128 1129 /** 1130 * ì ë³´ì°½ ë´ì© ìì± 1131 * @param board_code 1132 * @param post_id 1133 * @returns {string} 1134 */ 1135 function getInfoWindowData(board_code, post_id){ 1136 var data = ''; 1137 var idx = post_id.split('list_')[1]; 1138 $.ajax({ 1139 type : 'post', 1140 data : {'idx' : idx, 'board_code' : board_code}, 1141 url : '/ajax/get_map_post_data.cm', 1142 dataType : 'json', 1143 async : false, 1144 cache : false, 1145 success : function(result){ 1146 if(result.msg === 'SUCCESS'){ 1147 var post_data = result.post_data; 1148 var thumb_data = result.thumb_data; 1149 var board_data = result.board_data; 1150 var $map_view = $('._map_view_' + board_code); 1151 var menu_url = $map_view.find('input[name=menu_url]').val(); 1152 var keyword_type = $map_view.find('input[name=keyword_type]').val(); 1153 var category = $map_view.find('select[name=category]').val(); 1154 var keyword = $map_view.find('input[name=keyword]').val(); 1155 var sort = $map_view.find('select[name=sort]').val(); 1156 var page = $map_view.find('ul.pagination > li.active > a').text(); 1157 var sort_str = sort ? '?sort='+sort : '?sort=TIME'; 1158 var category_str = category ? '&category='+category : ''; 1159 var keyword_str = keyword ? '&keyword='+keyword : ''; 1160 var keyword_type_str = keyword_type ? '&keyword_type='+keyword_type : ''; 1161 var page_str = page ? '&page='+page : ''; 1162 var back_link = menu_url + sort_str + category_str + keyword_str + keyword_type_str + page_str; 1163 var show_like_cnt_tag = ""; 1164 var show_cmt_cnt_tag = ""; 1165 var show_read_cnt_tag = ""; 1166 var show_account_tag = ""; 1167 var close_btn = ""; 1168 var like_on = post_data.like_cnt > 0 ? 'on' : ''; 1169 var like_btn_possible = result.like_btn_possible; 1170 1171 if(board_data.show_like_cnt === 'Y'){ 1172 show_like_cnt_tag = "<span class='comment_num no-padding-x no-pointer'>" + 1173 "<i class='icon-bubble vertical-middle' style='margin-right: 5px'></i>" + 1174 "<em class='_comment_count'>" + post_data.comment_cnt + "</em>" + 1175 "</span>"; 1176 } 1177 if(board_data.show_cmt_cnt === 'Y'){ 1178 show_cmt_cnt_tag = "<span class='comment_num no-padding-x like_btn " + like_on + "' id='like_btn_" + post_data.code + "'"; 1179 if(like_btn_possible){ 1180 show_cmt_cnt_tag += " onclick=\"mapClickLike('" + post_data.idx + "', '" + board_data.listing + "', '" + post_data.code + "', '" + result.like_token_key + "', '" + result.like_token + "', false); return false;\""; 1181 } 1182 show_cmt_cnt_tag += ">" + 1183 "<i class='btm bt-heart vertical-middle' style='margin-right: 5px'></i>" + 1184 "<em class='_like_count' id='like_count_" + post_data.code + "'>" + post_data.like_cnt + "</em>" + 1185 "</span>"; 1186 } 1187 if(board_data.show_hit_cnt === 'Y'){ 1188 show_read_cnt_tag = "<span class='comment_num no-padding-x'>" + 1189 "<i class='icon-eye vertical-middle' style='margin-right: 5px'></i>" + 1190 "<em class='_read_count'>
1190" + post_data.read_cnt + "</em>" + 1191 "</span>"; 1192 } 1193 if(board_data.show_account === 'Y'){ 1194 show_account_tag = "<p class='tell'>" + post_data.phone_number + "</p>"; 1195 } 1196 var scroll_wheel = board_data.map_scroll_wheel; 1197 var api = board_data.map_api; 1198 // Google ì§ëë ìì²´ì ì¼ë¡ ë«ê¸° ë²í¼ í¬í¨ 1199 if(api !== 'google'){ 1200 close_btn = "<div class='map_contents_close' style='top: 5px; right: 5px;'>" + 1201 "<a href='javascript:;' onclick=\"MAP.infowindowClose('" + api + "', '" + post_id + "', '" + board_code + "')\"><i class='btl bt-times'></i></a>" + 1202 "</div>"; 1203 } 1204 if(thumb_data){ 1205 data = 1206 "<div style='padding: 9px 15px;'>" + 1207 "<a href='javascript:;' onclick=\"MAP.getTypeMapView('" + idx + "','" + back_link + "', '" + board_code + "', '" + api + "', '" + scroll_wheel + "')\">" + 1208 "<div class='map_container map_container_view map-inner $cover_class _map_container' id='list_pop_" + idx + "'>" + 1209 "<div class='thumb'>" + 1210 "<img src='" + CDN_THUMBNAIL_URL + thumb_data.url + "'>" + 1211 "</div>" + 1212 "<div class='map_contents'>" + 1213 "<div class='head'>" + 1214 "<div class='tit'>" + RemoveTag(post_data.subject) + "</div>" + 1215 "</div>" + 1216 "<div class='p_group'> " + 1217 "<p class='adress'>" + RemoveTag(post_data.address) + "</p>" + 1218 show_account_tag + 1219 "</div>" + 1220 "<div class='btn-gruop btn-group-comment'>" + 1221 show_like_cnt_tag + 1222 show_cmt_cnt_tag + 1223 show_read_cnt_tag + 1224 "</div>" + 1225 close_btn + 1226 "<div class='text-center'><a href='javascript:;' onclick=\"MAP.getTypeMapView('" + idx + "','" + back_link + "', '" + board_code + "', '" + api + "', '" + scroll_wheel + "')\" class='btn btn-xs bg-brand' style='margin-top:15px; letter-spacing: 0; border-radius: 30px;'>" + LOCALIZE.ë²í¼_ìì¸ë³´ê¸°() + "</a></div>" + 1227 "</div>" + 1228 "</div>" + 1229 "</a>" + 1230 "</div>"; 1231 }else{ 1232 data = 1233 "<a href='javascript:;' onclick=\"MAP.getTypeMapView('" + idx + "','" + back_link + "', '" + board_code + "', '" + api + "', '" + scroll_wheel + "')\">" + 1234 "<div class='map_container map-inner $cover_class _map_container' id='list_pop_" + idx + "'>" + 1235 "<div class='map_contents'>" + 1236 "<div class='head'>" + 1237 "<div class='tit'>" + RemoveTag(post_data.subject) + "</div>" + 1238 "</div>" + 1239 "<div class='p_group'> " + 1240 "<p class='adress'>" + RemoveTag(post_data.address) + "</p>" + 1241 show_account_tag + 1242 "</div>" + 1243 "<div class='btn-gruop btn-group-comment'>" + 1244 show_like_cnt_tag + 1245 show_cmt_cnt_tag + 1246 show_read_cnt_tag + 1247 "</div>" + 1248 close_btn + 1249 "<div class='text-center'><a href='javascript:;' onclick=\"MAP.getTypeMapView('" + idx + "','" + back_link + "', '" + board_code + "', '" + api + "', '" + scroll_wheel + "')\" class='btn btn-xs bg-brand' style='margin-top:15px; letter-spacing: 0; border-radius: 30px;'>" + LOCALIZE.ë²í¼_ìì¸ë³´ê¸°() + "</a></div>" + 1250 "</div>" + 1251 "</div>" + 1252 "</a>"; 1253 } 1254 } 1255 } 1256 }); 1257 1258 return data; 1259 } 1260 1261 /** 1262 * ì§ë ìì ë§ì»¤ íì ë° ì ë³´ì°½ ì¤ì 1263 * @param board_code 1264 * @param api 1265 * @param category_list 1266 * @param category 1267 * @param scroll_wheel 1268 * @param marker_clustering 1269 * @param is_refresh ë§ì»¤ ìë¡ê³ ì¹¨ì¼ ê²½ì° ì§ëë ìë¡ ìì±íì§ ìì 1270 */ 1271 var listView = function(board_code,api, category_list, category, scroll_wheel, marker_clustering, is_refresh){ 1272 var id = '#gmap_' + board_code; 1273 if(typeof category === 'undefined') category = ''; 1274 if(typeof markers[board_code] === 'undefined') markers[board_code] = []; 1275 if(typeof infowindows[board_code] === 'undefined') infowindows[board_code] = []; 1276 if(typeof map_data[board_code] === 'undefined') map_data[board_code] = []; 1277 if(typeof is_refresh == 'undefined') is_refresh = false; 1278 var list_data = []; 1279 1280 $.each(map_data[board_code],function(k,v){ 1281 // ì¹´í ê³ ë¦¬ì í´ë¹ëê³ ì¨ê¹ì²ë¦¬ ëì§ ìì ë§ì»¤ë§ íì 1282 if((category === '' || category === v.category_code) && v.is_hide !== 'Y'){ 1283 var value_obj = {}; 1284 value_obj.category_code = v.category_code; 1285 value_obj.id = 'list_' + v.idx; 1286 value_obj.latLng = [v.pos_y, v.pos_x]; 1287 1288 if(api === 'naver'){ 1289 list_data[value_obj.id] = value_obj; 1290 }else{ 1291 value_obj.options = { 1292 icon: { 1293 url: getMarkerByCategoryCode(v.category_code, category_list), 1294 size: new google.maps.Size(27, 35.5), 1295 scaledSize: new google.maps.Size(27, 35.5) 1296 } 1297 }; 1298 list_data.push(value_obj); 1299 } 1300 } 1301 }); 1302 if(api === 'naver'){ 1303 /* ë¤ì´ë² ì§ë ì¤ì ìì */ 1304 var myOptions = { 1305 minZoom : 6, 1306 useStyleMap: true, 1307 mapTypeId : naver.maps.MapTypeId.NORMAL, 1308 zoomControl : true, 1309 zoomControlOptions : { 1310 position : naver.maps.Position.RIGHT_TOP 1311 }, 1312 mapTypeControl : false, 1313 scaleControl : true, 1314 disableDoubleClickZoom : true, 1315 scrollWheel : scroll_wheel === 'Y' 1316 }; 1317 1318 naver_map[board_code] = new naver.maps.Map('gmap_' + board_code, myOptions); 1319 1320 for(var key in list_data){ 1321 var context = list_data[key]; 1322 var position = new naver.maps.LatLng(context.latLng[0], context.latLng[1]); 1323 var marker_url = getMarkerByCategoryCode(context.category_code, category_list); 1324 var marker = new naver.maps.Marker({ 1325 map: naver_map[board_code], 1326 position: position, 1327 clickable: true, 1328 icon: { 1329 url : marker_url, 1330 size : new naver.maps.Size(27, 35.5), 1331 scaledSize : new naver.maps.Size(27, 35.5) 1332 } 1333 }); 1334 var contentString = context.data; 1335 var infowindow = new naver.maps.InfoWindow({ 1336 content: contentString 1337 });
1338 markers[board_code][context.id] = marker; 1339 infowindows[board_code][context.id] = infowindow; 1340 } 1341 1342 /** 1343 * ë§ì»¤ í´ë¦ ì´ë²¤í¸ ì¤ì 1344 * @param post_id 1345 * @return {Function} 1346 */ 1347 function getClickHandler(post_id){ 1348 return function(e) { 1349 var marker = markers[board_code][post_id], 1350 infowindow = infowindows[board_code][post_id]; 1351 1352 if (infowindow.getMap()) { 1353 infowindow.close(); 1354 }else{ 1355 infowindow.setContent(getInfoWindowData(board_code, post_id)); 1356 infowindow.open(naver_map[board_code], marker); 1357 1358 1359 // í´ë¹ ë§ì»¤ë¥¼ ì§ë ì¤ì¬ì¼ë¡ ì´ë 1360 naver_map[board_code].setOptions({center: new naver.maps.LatLng(marker.position._lat, marker.position._lng)}); 1361 naverMarkCenter(naver_map[board_code]); 1362 } 1363 } 1364 } 1365 1366 var leftBound = null, rightBound = null, topBound = null, bottomBound = null; 1367 for(var key in markers[board_code]){ 1368 var marker = markers[board_code][key]; 1369 naver.maps.Event.addListener(marker, 'click', getClickHandler(key)); 1370 var nowLng = marker.position._lng, nowLat = marker.position._lat; 1371 if(nowLng >= 124 && nowLng <= 132 && nowLat >= 33 && nowLat <= 43){ 1372 // êµë´ ë²ì ë´ 1373 if(leftBound === null){ 1374 // 첫 ì¤í ì ë§ì»¤ ì¢í를 ê²½ê³ë¡ ì¤ì 1375 leftBound = nowLng; 1376 rightBound = nowLng; 1377 topBound = nowLat; 1378 bottomBound = nowLat; 1379 }else{ 1380 // ë§ì»¤ê° ì ë¶ ë¤ì´ì¤ë 기ì¤ì¼ë¡ ê²½ê³ ì¤ì (êµë´ íì ì´ë¯ë¡ ìì êµ¬ê° ìê°íì§ ììë ë¨) 1381 if(leftBound > nowLng){ 1382 leftBound = nowLng; 1383 }else if(rightBound < nowLng){ 1384 rightBound = nowLng; 1385 } 1386 if(topBound > nowLat){ 1387 topBound = nowLat; 1388 }else if(bottomBound < nowLat){ 1389 bottomBound = nowLat; 1390 } 1391 } 1392 } 1393 } 1394 if(leftBound !== null){ 1395 // êµë´ì í¬í¨ë ë§ì»¤ë¤ë¡ ê²½ê³ ì¤ì , ë§ì»¤ê° íëë ìì ê²½ì° ê¸°ë³¸ê° ìì¸ìì² 1396 var bounds = new naver.maps.LatLngBounds(new naver.maps.LatLng(topBound, leftBound), new naver.maps.LatLng(bottomBound, rightBound)); 1397 var margin = {top: 10, right: 10, bottom: 10, left: 10}; 1398 if(!IS_MOBILE){ 1399 // ì¢ì¸¡ map-listê° ì°¨ì§íë 340px ëë¹ì ê³µê° ê³ ë ¤ 1400 margin = {top: 10, right: 10, bottom: 10, left: 350}; 1401 } 1402 naver_map[board_code].fitBounds(bounds, margin); 1403 } 1404 if(marker_clustering === 'Y'){ 1405 naver_cluster_marker1 = { 1406 content : '<div style="cursor:pointer;width:53px;height:53px;line-height:53px;font-size:11px;color:#FFFFFF;text-align:center;font-weight:bold;background:url(//static.imweb.me/vendor/images/markerclusterer/m1.png);background-size:contain;"></div>', 1407 size : naver.maps.Size(53, 53), 1408 anchor : naver.maps.Point(27, 27) 1409 }, 1410 naver_cluster_marker2 = { 1411 content : '<div style="cursor:pointer;width:56px;height:56px;line-height:56px;font-size:11px;color:#FFFFFF;text-align:center;font-weight:bold;background:url(//static.imweb.me/vendor/images/markerclusterer/m2.png);background-size:contain;"></div>', 1412 size : naver.maps.Size(56, 56), 1413 anchor : naver.maps.Point(28, 28) 1414 }, 1415 naver_cluster_marker3 = { 1416 content : '<div style="cursor:pointer;width:66px;height:66px;line-height:66px;font-size:11px;color:#FFFFFF;text-align:center;font-weight:bold;background:url(//static.imweb.me/vendor/images/markerclusterer/m3.png);background-size:contain;"></div>', 1417 size : naver.maps.Size(66, 66), 1418 anchor : naver.maps.Point(33, 33) 1419 }, 1420 naver_cluster_marker4 = { 1421 content : '<div style="cursor:pointer;width:78px;height:78px;line-height:78px;font-size:11px;color:#FFFFFF;text-align:center;font-weight:bold;background:url(//static.imweb.me/vendor/images/markerclusterer/m4.png);background-size:contain;"></div>', 1422 size : naver.maps.Size(78, 78), 1423 anchor : naver.maps.Point(39, 39) 1424 }, 1425 naver_cluster_marker5 = { 1426 content : '<div style="cursor:pointer;width:90px;height:90px;line-height:90px;font-size:11px;color:#FFFFFF;text-align:center;font-weight:bold;background:url(//static.imweb.me/vendor/images/markerclusterer/m5.png);background-size:contain;"></div>', 1427 size : naver.maps.Size(90, 90), 1428 anchor : naver.maps.Point(45, 45) 1429 }; 1430 naverClustering(board_code); 1431 } 1432 /* ë¤ì´ë² ì§ë 컨í¸ë¡¤ z-index 100 ê³ ì */ 1433 $('#doz_header').css('z-index', 101); 1434 /* ë¤ì´ë² ì§ë ì¤ì ìë£ */ 1435 }else{ 1436 /* Google ì§ë ì¤ì ìì */ 1437 if(!is_refresh){ 1438 $(id).gmap3({ 1439 map : { 1440 options : { 1441 center : [37.5666805, 126.9784147], 1442 maxZoom : 17, 1443 minZoom : 3, 1444 mapTypeControl : false, 1445 scaleControl : true, 1446 streetViewControl : false, 1447 gestureHandling : 'auto', 1448 controlSize : 29 1449 } 1450 }, 1451 marker : { 1452 values : list_data, 1453 options : { 1454 draggable : false 1455 /* 1456 icon: { 1457 path: google.maps.FORWARD_CLOSED_ARROW, 1458 fillOpacity: 1, 1459 fillColor: 'black', 1460 strokeOpacity: 0, 1461 scale: 1, 1462 anchor: new google.maps.Point(23.0, 42.0) 1463 } 1464 */ 1465 }, 1466 events : { 1467 click : function(marker, event, context){ 1468 var map = $(this).gmap3("get"), 1469 infowindow = $(this).gmap3({get : {name : "infowindow"}}); 1470 if(infowindow){ 1471 infowindow.setContent(getInfoWindowData(board_code, context.
1471id)); 1472 infowindow.open(map, marker); 1473 }else{ 1474 $(this).gmap3({ 1475 infowindow : { 1476 anchor : marker, 1477 options : {content : getInfoWindowData(board_code, context.id)} 1478 } 1479 }); 1480 } 1481 } 1482 } 1483 }, 1484 autofit : {} 1485 }); 1486 }else{ 1487 $(id).gmap3({ 1488 marker : { 1489 values : list_data, 1490 options : { 1491 draggable : false 1492 }, 1493 events : { 1494 click : function(marker, event, context){ 1495 var map = $(this).gmap3("get"), 1496 infowindow = $(this).gmap3({get : {name : "infowindow"}}); 1497 if(infowindow){ 1498 infowindow.setContent(getInfoWindowData(board_code, context.id)); 1499 infowindow.open(map, marker); 1500 }else{ 1501 $(this).gmap3({ 1502 infowindow : { 1503 anchor : marker, 1504 options : {content : getInfoWindowData(board_code, context.id)} 1505 } 1506 }); 1507 } 1508 1509 1510 var map_comment_count = 0; 1511 var like_cnt = 0; 1512 var read_cnt = 0; 1513 var idx_arr = context.id.split('list_'); 1514 map_comment_count = Math.round($('#' + context.id).find('._comment_count').text()); 1515 like_cnt = Math.round($('#' + context.id).find('._like_count').text()); 1516 read_cnt = Math.round($('#' + context.id).find('._read_count').text()); 1517 $('#list_pop_' + idx_arr[1]).find('._comment_count').text(map_comment_count); 1518 $('#list_pop_' + idx_arr[1]).find('._like_count').text(like_cnt); 1519 $('#list_pop_' + idx_arr[1]).find('._read_count').text(read_cnt); 1520 } 1521 } 1522 }, 1523 autofit : {} 1524 }); 1525 } 1526 if(marker_clustering === 'Y'){ 1527 gmap3Clusterer(id, null, board_code); 1528 } 1529 } 1530 1531 /* Google ì§ë ì¤ì ìë£ */ 1532 }; 1533 1534 /** 1535 * ì¹´í ê³ ë¦¬ ì½ëì ë°ë¥¸ ë§ì»¤ ì´ë¯¸ì§ ë°í 1536 * @param category_code 1537 * @param category_list 1538 * @return {string} ë§ì»¤ ì´ë¯¸ì§ url 1539 */ 1540 function getMarkerByCategoryCode(category_code, category_list){ 1541 var marker_url = ''; 1542 var color_type = ''; 1543 if(category_list !== ''){ 1544 $.each(category_list, function(k, v){ 1545 if(category_code === v.category_code){ 1546 color_type = v.color_type; 1547 return false; 1548 } 1549 }); 1550 } 1551 marker_url = getMarkerByColorType(color_type); 1552 return marker_url; 1553 } 1554 1555 /** 1556 * ë§ì»¤ ì»¬ë¬ íì ì ë°ë¥¸ ë§ì»¤ ì´ë¯¸ì§ ë°í 1557 * @param color_type 1558 * @return {string} ë§ì»¤ ì´ë¯¸ì§ url 1559 */ 1560 function getMarkerByColorType(color_type){ 1561 var marker_url = '//static.imweb.me/vendor/images/marker/marker_red.png'; 1562 switch(color_type){ 1563 case 'marker-color-red': 1564 default: 1565 marker_url = '//static.imweb.me/vendor/images/marker/marker_red.png'; 1566 break; 1567 case 'marker-color-pink': 1568 marker_url = '//static.imweb.me/vendor/images/marker/marker_pink.png'; 1569 break; 1570 case 'marker-color-orange': 1571 marker_url = '//static.imweb.me/vendor/images/marker/marker_orange.png'; 1572 break; 1573 case 'marker-color-yellow': 1574 marker_url = '//static.imweb.me/vendor/images/marker/marker_yellow.png'; 1575 break; 1576 case 'marker-color-green': 1577 marker_url = '//static.imweb.me/vendor/images/marker/marker_green.png'; 1578 break; 1579 case 'marker-color-mint': 1580 marker_url = '//static.imweb.me/vendor/images/marker/marker_mint.png'; 1581 break; 1582 case 'marker-color-blue': 1583 marker_url = '//static.imweb.me/vendor/images/marker/marker_blue.png'; 1584 break; 1585 case 'marker-color-violet': 1586 marker_url = '//static.imweb.me/vendor/images/marker/marker_violet.png'; 1587 break; 1588 case 'marker-color-gray': 1589 marker_url = '//static.imweb.me/vendor/images/marker/marker_gray.png'; 1590 break; 1591 case 'marker-color-darkgray': 1592 marker_url = '//static.imweb.me/vendor/images/marker/marker_darkgray.png'; 1593 break; 1594 } 1595 return marker_url; 1596 } 1597 1598 /** 1599 * ì ë³´ì°½ ë«ê¸° 1600 * @param api 1601 * @param id 1602 * @param board_code 1603 */ 1604 var infowindowClose = function(api, id, board_code){ 1605 if(api === 'google'){ 1606 var infowindow = $('#gmap_' + board_code).gmap3({get : {name : "infowindow"}}); 1607 if(infowindow){ 1608 infowindow.close(); 1609 } 1610 }else{ 1611 var infowindow = infowindows[board_code][id]; 1612 if(infowindow.getMap()) infowindow.close(); 1613 } 1614 }; 1615 1616 var mapSecretPost = function($obj,type){ 1617 if(type == 'pc'){ 1618 if($('#secret_input_pc').hasClass('active') === false){ 1619 $obj.find('#secret_input_pc').addClass('active'); 1620 $obj.find('#secret_input_nomember').addClass('active'); 1621 $obj.find('#secret_input_mobile').addClass('active'); 1622 }else{ 1623 $obj.find('#secret_input_pc').removeClass('active'); 1624 $obj.find('#secret_input_nomember').removeClass('active'); 1625 $obj.find('#secret_input_mobile').removeClass('active'); 1626 } 1627 if($('#secret_input_pc').hasClass('active') === true){ 1628 $('#is_secret_input').val('Y'); 1629 }else{ 1630 $('#is_secret_input').val('N'); 1631 } 1632 } 1633 if(type == 'nomember'){ 1634 if($('#secret_input_nomember').hasClass('active') === false){ 1635 $obj.find('#secret_input_pc').addClass('active'); 1636 $obj.find('#secret_input_nomember').addClass('active'); 1637 $obj.find('#secret_input_mobile').addClass('active'); 1638 }else{ 1639 $obj.find('#secret_input_pc').removeClass('active'); 1640 $obj.find('#secret_input_nomember').removeClass('active'); 1641 $obj.find('#secret_input_mobile').removeClass('active'); 1642 } 1643 if($('#secret_input_nomember').hasClass('active') === true){ 1644 $('#is_secret_input').val('Y'); 1645 }else{ 1646 $('#is_secret_input').val('N'); 1647 } 1648 } 1649 if(type == 'mobile'){ 1650 if($('#secret_input_mobile').hasClass('active') === false){ 1651 $obj.find('#secret_input_pc').addClass('active'); 1652 $obj.find('#secret_input_nomember').addClass('active'); 1653 $obj.find('#secret_input_mobile').addClass('active'); 1654 }else{ 1655 $obj.find('#secret_input_pc').removeClass('active'); 1656 $obj.find('#secret_input_nomember').removeClass('active'); 1657 $obj.find('#secret_input_mobile').removeClass('active'); 1658 } 1659 if($('#secret_input_mobile').hasClass('active') === true){ 1660 $('#is_secret_input').val('Y'); 1661 }else{ 1662 $('#is_secret_input').val('N'); 1663 } 1664 } 1665 }; 1666 1667 var postDeleteFile = function(id){ 1668 var obj = $('#'+id); 1669 var size = obj.data('size'); 1670 total_file_size -= size; 1671 obj.remove(); 1672 }; 1673 1674 var postAddFile = function(filename,file_code,tmp_idx,size){ 1675 var uniq_id = makeUniq('upfile_'); 1676 total_file_size += size; 1677 var clear_ico = $('<i class="zmdi zmdi-close"></i>').data({'item':uniq_id,size:size}).click(function(e){ 1678 postDeleteFile(uniq_id); 1679 }); 1680 var hidden_input = ''; 1681 if(file_code.length>0) { 1682 hidden_input = $('<input name="upload_files[]" value="' + file_code + '" type="hidden" />'); 1683 }else if(Math.round(tmp_idx) > 0){ 1684 hidden_input = $('<input name="temp_files[]" value="' + tmp_idx + '" type="hidden" />'); 1685 } 1686 var li = $('<li>').attr('id',uniq_id).data({'item':uniq_id,size:size}); 1687 // XSS ë°©ì§: íì¼ëª ì HTMLë¡ í´ìëì§ ìëë¡ textë¡ ì½ì (KVE-2025-2806) 1688 var $file_name_dom = $('<span></span>'); 1689 $file_name_dom.text(filename); 1690 $file_name_dom.append($('<em></em>').text(' ' + GetFileSize(size))); 1691 li.append($file_name_dom); 1692 li.append(clear_ico); 1693 li.append(hidden_input); 1694 $("#file_list").append(li); 1695 }; 1696 1697 var userPosCreat = function(board_code, map_api){ 1698 var image = '/img/my_location_1x.png'; 1699 if(map_api === 'google'){ 1700 var id = '#gmap_' + board_code; 1701 var list_data = []; 1702 var value_obj = {}; 1703 value_obj.latLng = [getCookie('lat'),getCookie('lng')]; 1704 list_data.push(value_obj); 1705 $(id).gmap3({ 1706 map : { 1707 options : { 1708 center : [37.5666805, 126.9784147], 1709 scaleControl : true, 1710 maxZoom : 17, 1711 minZoom : 3, 1712 mapTypeControl : false, 1713 streetViewControl : false, 1714 controlSize: 29 1715 } 1716 }, 1717 marker : { 1718 values : list_data, 1719 options : { 1720 draggable : false, 1721 icon : image 1722 } 1723 } 1724 }); 1725 }else{ // 기본 ë¤ì´ë² ì§ë 1726 var marker = new naver.maps.Marker({ 1727 position: new naver.maps.LatLng(getCookie('lat'),getCookie('lng')), 1728 map: naver_map[board_code], 1729 icon: image 1730 }); 1731 } 1732 }; 1733 1734 /** 1735 * ê²ìí ìì ¯ ì¹´í ê³ ë¦¬ active (ìì ¯ ì¹´í ê³ ë¦¬ì ì°ëì) 1736 * @param board_code 1737 * @param category 1738 */ 1739 var activeSubMenu = function(board_code, category) { 1740 var $ul = $('ul.' + board_code); 1741 if ($ul.length > 0) { 1742 $ul.find('li.active').removeClass('active').find('a').removeClass('active'); 1743 $ul.find('[href="?category=' + category + '"]').addClass('active').parent('li').addClass('active'); 1744 } 1745 } 1746
1747 /** 1748 * ê²ìí íì´ì§/ê²ì/ì ë ¬ ë³ê²½ 1749 * @param menu_url 1750 * @param board_code 1751 * @param map_api 1752 * @param marker_refresh ë§ì»¤ ìë¡ê³ 침 ì¬ë¶, íì´ì§/ì ë ¬ ë³ê²½ ìì false 1753 * @param target_page 1754 * @param target_category 1755 */ 1756 var searchChange = function(menu_url, board_code, map_api, marker_refresh, target_page, target_category){ 1757 var $map_view = $('._map_view_' + board_code); 1758 var keyword_type = $map_view.find('input[name=keyword_type]').val(); 1759 var category = typeof target_category === 'undefined' ? $map_view.find('select[name=category]').val() : target_category; 1760 var keyword = $map_view.find('input[name=keyword]').val(); 1761 var sort = $map_view.find('select[name=sort]').val(); 1762 var page = typeof target_page === 'undefined' ? $map_view.find('ul.pagination > li.active > a').text() : target_page; 1763 1764 if(sort === 'STREET'){ 1765 if(document.location.protocol !== "https:"){ 1766 alert(getLocalizeString('ì¤ëª _거리ìì ë ¬ì´ì§ìëì§ììµëë¤', '', '거리ì ì ë ¬ì´ ì§ìëì§ ììµëë¤.')); 1767 sort = 'TIME'; 1768 } 1769 } 1770 1771 $.ajax({ 1772 type : 'post', 1773 data : { 1774 'board_code': board_code, 1775 'search': keyword, 1776 'search_mod': keyword_type, 1777 'page': page ? page : false, 1778 'sort': sort, 1779 'status': category 1780 }, 1781 url : '/ajax/get_map_list.cm', 1782 dataType : 'html', 1783 async : false, 1784 cache : false, 1785 success : function(result){ 1786 //ë©ë´ ì¹´í ê³ ë¦¬ ì°ëì active 1787 activeSubMenu(board_code, category); 1788 // ì§ë ê²ì물 ëª©ë¡ ë³ê²½ 1789 var resultHtml = $('<div>' + result +'</div>'); 1790 var mapListHtml = resultHtml.find('.map-list'); 1791 $map_view.find('.map-list').replaceWith(mapListHtml); 1792 // íì´ì§ ë³ê²½, ì ë ¬ ë³ê²½ ììë ë§ì»¤ ë³ëì´ ìì¼ë¯ë¡ ë§ì»¤ë¥¼ ì¬ìì± íì§ ìì 1793 if(marker_refresh){ 1794 var category_list = JSON.parse($map_view.find('input[name=json_category_list]').val()); 1795 var scroll_wheel = $map_view.find('input[name=scroll_wheel]').val(); 1796 var marker_clustering = $map_view.find('input[name=marker_clustering]').val(); 1797 // ë§ì»¤ ì´ê¸°í 1798 clearMap(board_code, map_api, marker_clustering); 1799 // ë§ì»¤ ì ë³´ ë°ìì´ 1800 addMapData(board_code, keyword, keyword_type, sort, category); 1801 // ë§ì»¤ ì¶ê° 1802 listView(board_code, map_api, category_list, category, scroll_wheel, marker_clustering, true); 1803 } 1804 // ê²ì물 목ë¡ê³¼ ì ë³´ì°½ ì°ê²° 1805 mapInitWrite(board_code, null, map_api, category_list); 1806 // íì¬ URL ë³ê²½ 1807 if(history.replaceState){ 1808 //IE 9 ì´í URL ë³ê²½ ìë¨ 1809 var sort_str = sort ? '?sort='+sort : '?sort=TIME'; 1810 var category_str = category ? '&category='+category : ''; 1811 var keyword_str = keyword ? '&keyword='+keyword : ''; 1812 var keyword_type_str = keyword_type ? '&keyword_type='+keyword_type : ''; 1813 var page_str = page ? '&page='+page : ''; 1814 var change_url = menu_url + sort_str + category_str + keyword_str + keyword_type_str + page_str; 1815 history.replaceState(null, null, change_url); 1816 } 1817 if(target_page > 1 && $(window).width() < 768){ 1818 var $fixed_header = $('#inline_header_mobile').find('._fixed_header_section'); 1819 var total_fixed_height = 0; 1820 for(var i = 0; i < $fixed_header.length; i++){ 1821 var target = $fixed_header[i].getBoundingClientRect(); 1822 total_fixed_height += target.height; 1823 } 1824 window.scrollTo(0, $map_view.offset().top - total_fixed_height); 1825 } 1826 if(sort === 'STREET'){ 1827 if(document.location.protocol === "https:"){ 1828 posCreat(); 1829 } 1830 } 1831 //set token 1832 TOKEN.setListToken(); 1833 }, 1834 error : function(result){ 1835 alert(getLocalizeString('ì¤ëª _ê²ì물ìë¶ë¬ì¤ëë°ìì¤í¨íììµëë¤', '', 'ê²ì물ì ë¶ë¬ì¤ë ë°ì ì¤í¨íììµëë¤.')); 1836 } 1837 }); 1838 }; 1839 1840 /** 1841 * ì ë³´ì°½ ë«ê³ ë§ì»¤ ì´ê¸°í 1842 * @param board_code 1843 * @param map_api 1844 * @param marker_clustering 1845 */ 1846 var clearMap = function(board_code, map_api, marker_clustering){ 1847 if(map_api === 'naver'){ 1848 naver_map[board_code].destroy(); 1849 }else{ 1850 if(marker_clustering === 'Y'){ 1851 cluster[board_code].clearMarkers(); 1852 cluster[board_code] = null; 1853 } 1854 var infowindow = $('#gmap_' + board_code).gmap3({get : {name : "infowindow"}}); 1855 if(infowindow){ 1856 infowindow.close(); 1857 } 1858 var gmap_id = '#gmap_' + board_code; 1859 $(gmap_id).gmap3({ 1860 clear : {} 1861 }); 1862 } 1863 markers[board_code] = []; 1864 infowindows[board_code] = []; 1865 map_data[board_code] = []; 1866 }; 1867 1868 /** 1869 * ì¤ì ë ì¹´í ê³ ë¦¬ ìì± 1870 * @param category_list 1871 * @param str_category 1872 * @returns {Array} 1873 */ 1874 var categoryList = function(category_list, str_category){ 1875 var category_type_list_temp = []; 1876 var category_list_default = {};
1877 category_list_default.key = 0; 1878 category_list_default.value = str_category; 1879 category_list_default.color_type = 'marker-color-red'; 1880 category_type_list_temp.push(category_list_default); 1881 1882 if(Array.isArray(category_list)){ 1883 $.each(category_list, function(key, val){ 1884 var _category_list = {}; 1885 var $name = val.name; 1886 var $color = val.color; 1887 _category_list.key = key + 1; 1888 _category_list.value = '<span style="color:' + $color + '">' + RemoveTag($name) + '</span>'; 1889 _category_list.color_type = val.color_type ? val.color_type : 'marker-color-red'; 1890 category_type_list_temp.push(_category_list); 1891 }); 1892 } 1893 return category_type_list_temp; 1894 }; 1895 1896 /** 1897 * ë¶ë¥ 리ì¤í¸ ì¶ë ¥ 1898 * @param $obj 1899 * @param default_code 1900 * @param category_data 1901 */ 1902 var categoryTypeSelect = function($obj,default_code,category_data){ 1903 $obj.find('._category_type_list').setSelectBox({ 1904 option: category_data, 1905 'set' : { 1906 select_custom_cls:'category_select', 1907 custom_cls:'category_dropdown', 1908 width:180 1909 }, 1910 'default' : default_code, 1911 change: function (o) { 1912 $('#category_type').val(o.key); 1913 $('#category_color_type').val(category_data[o.key].color_type); 1914 } 1915 }); 1916 }; 1917 1918 /** 1919 * ë¤ì´ë² ë§ì»¤ í´ë¬ì¤í°ë§(ì¸ì í ë§ì»¤ 묶기) 1920 * @param board_code 1921 */ 1922 var naverClustering = function(board_code){ 1923 var markerArray = []; 1924 for (var key in markers[board_code]){ 1925 markerArray.push(markers[board_code][key]); 1926 } 1927 cluster[board_code] = new MarkerClustering({ 1928 minClusterSize: 2, 1929 maxZoom: naver_cluster_maxzoom, 1930 map: naver_map[board_code], 1931 markers: markerArray, 1932 disableClickZoom: false, 1933 icons: [naver_cluster_marker1, naver_cluster_marker2, naver_cluster_marker3, naver_cluster_marker4, naver_cluster_marker5], 1934 indexGenerator: [10, 100, 1000, 10000, 100000], 1935 stylingFunction : function(clusterMarker, count){ 1936 $(clusterMarker.getElement()).find('div:first-child').text(count); 1937 } 1938 }); 1939 }; 1940 1941 /** 1942 * êµ¬ê¸ ë§ì»¤ í´ë¬ì¤í°ë§(ì¸ì í ë§ì»¤ 묶기) 1943 * @param map_id gmap3ì ì¬ì©íë map ID 1944 * @param options 1945 * @param board_code 1946 */ 1947 var gmap3Clusterer = function(map_id, options, board_code){ 1948 var mapObject = $(map_id).gmap3("get"); 1949 var mapMarkers = $(map_id).gmap3({get: {name: "marker", all: true}}); 1950 var _options = { 1951 imagePath: '//static.imweb.me/vendor/images/markerclusterer/m', 1952 zoomOnClick: true, 1953 maxZoom: google_cluster_maxzoom 1954 }; 1955 if(typeof options !== 'undefined') _options = $.extend(_options, options); 1956 cluster[board_code] = new MarkerClusterer(mapObject, mapMarkers, _options); 1957 }; 1958 1959 /** 1960 * ë¤ì´ë² ë§ì»¤ 1961 */ 1962 var naverMarkCenter = function(naver_map) { 1963 function checkMapListOffset () { 1964 const mapList = document.querySelector('._map-list'); 1965 if (!mapList) return false; 1966 return { 1967 width: mapList.offsetWidth, 1968 left: mapList.offsetLeft 1969 }; 1970 } 1971 1972 function checkMapWidth() { 1973 var map = document.querySelector('._map'); 1974 if (!map) return 0; 1975 return map.offsetWidth; 1976 } 1977 1978 // 리ì¤í¸ê° ììë 리ì¤í¸ë¥¼ ì ì¸í ììì ì¤ì¬ì¼ë¡ ì´ë 1979 if (document.querySelector('body').offsetWidth > 766) { 1980 var listW = checkMapListOffset().width; 1981 var listL = checkMapListOffset().left; 1982 var halfMapWidth = checkMapWidth() / 2; 1983 var mapViewWidth = -1 * ((checkMapWidth() - listW - (listL * 2)) / 2); 1984 mapViewWidth = mapViewWidth - (listW + listL - halfMapWidth); 1985 naver_map.panBy(new naver.maps.Point(mapViewWidth, 0)); 1986 } 1987 } 1988 1989 return { 1990 mapInitWrite: function(b_code,$obj,api,category_list,placeholder_edit) { 1991 mapInitWrite(b_code,$obj,api,category_list,placeholder_edit); 1992 }, 1993 toggleAlarmPopup : function(){ 1994 toggleAlarmPopup(); 1995 }, 1996 addMapData : function(board_code, keyword, keyword_type, sort, category){ 1997 addMapData(board_code, keyword, keyword_type, sort, category); 1998 }, 1999 mapEditorPop : function(map_api){ 2000 mapEditorPop(map_api); 2001 }, 2002 mapAddressSearch : function(val, map_api){ 2003 mapAddressSearch(val, map_api); 2004 }, 2005 addressDelete : function(map_api){ 2006 addressDelete(map_api); 2007 }, 2008 submit : function(map_api){ 2009 mapSubmit(map_api); 2010 }, 2011 mapCancel: function(back_url){ 2012 mapCancel(back_url); 2013 }, 2014 setMap : function(lat,lng,detail,$obj,m_data,map_api,editable,scroll_wheel,zoom,marker_url){ 2015 setMap(lat,lng,detail,$obj,m_data,map_api,editable,scroll_wheel,zoom,marker_url); 2016 }, 2017 getTypeMapView : function(idx,back_url, board_code, map_api,scroll_wheel, is_ignore){ 2018 getTypeMapView(idx,back_url, board_code, map_api,scroll_wheel, is_ignore); 2019 }, 2020 deleteMap : function(board_code,code,return_url){ 2021 deleteMap(board_code,code,return_url); 2022 }, 2023 mapListToggle : function($obj){ 2024 mapListToggle($obj); 2025 }, 2026 mapSearchToggle : function($obj,type){ 2027 mapSearchToggle($obj,type); 2028 }, 2029 mapListChange : function($obj,type){ 2030 mapListChange($obj,type); 2031 }, 2032 posCreat : function(force){ 2033 posCreat(force); 2034 }, 2035 posChange : function(){ 2036 posCreat(true); 2037 }, 2038 moveUserPosition : function(board_code, map_api){ 2039 moveUserPosition(board_code, map_api); 2040 }, 2041 setAndroidLocationData : function(latitude, longitude){ 2042 setAndroidLocationData(latitude, longitude); 2043 }, 2044 listView : function(board_code, api, category_list, category, scroll_wheel, marker_clustering, is_refresh){ 2045 listView(board_code, api, category_list, category, scroll_wheel, marker_clustering, is_refresh); 2046 }, 2047 getMarkerByColorType: function(color_type){ 2048 return getMarkerByColorType(color_type); 2049 }, 2050 mapSecretPost : function($obj,type){ 2051 mapSecretPost($obj,type); 2052 }, 2053 addFile : function(filename,file_code,tmp_idx,size){ 2054 postAddFile(filename,file_code,tmp_idx,size); 2055 }, 2056 infowindowClose:function(api, id, board_code){ 2057 infowindowClose(api, id, board_code); 2058 }, 2059 userPosCreat:function(board_code, map_api){ 2060 userPosCreat(board_code, map_api); 2061 }, 2062 searchChange: function(menu_url, board_code, map_api, marker_refresh, target_page, category){ 2063 searchChange(menu_url, board_code, map_api, marker_refresh, target_page, category); 2064 }, 2065 pageChange: function(menu_url, board_code, map_api, page){ 2066 pageChange(menu_url, board_code, map_api, page); 2067 }, 2068 deleteCoverImage : function(){ 2069 deleteCoverImage(); 2070 }, 2071 categoryTypeSelect : function($obj,default_code,category_data){ 2072 categoryTypeSelect($obj,default_code,category_data); 2073 }, 2074 categoryList : function(category_list, str_category){ 2075 return categoryList(category_list, str_category); 2076 } 2077 }; 2078}();
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.