var map_detail; var radius_val = 50; var slider; var fullscreen_flag = 0; /*브라우저에서 플래시 10이상 설치가 안되있다면 로드뷰를 볼 수 없다*/ var flash_enable = false; if(swfobject.getFlashPlayerVersion().major >= 10){ flash_enable = true; } function set_radius(t){ radius_val = t; } /** * 매물 위치 표시 (google) */ function position_google(lat, lng) { lat = parseFloat(lat); lng = parseFloat(lng); var google_map = new google.maps.Map(document.getElementById('google_map'), { center: {lat: lat, lng: lng}, zoom: 16, panControl : false, linksControl: false, zoomControl : true, enableCloseButton: false, scrollwheel : false, streetViewControl : true, mapTypeControlOptions: { position: google.maps.ControlPosition.LEFT_TOP }, zoomControlOptions: { style: google.maps.ZoomControlStyle.LARGE, position: google.maps.ControlPosition.RIGHT_TOP }, streetViewControlOptions: { position: google.maps.ControlPosition.RIGHT_TOP } }); var circle = new google.maps.Circle({ strokeColor: '#75B8FA', strokeOpacity: 0.8, strokeWeight: 2, fillColor: '#CFE7FF', fillOpacity: 0.35, map: google_map, center: {lat: lat, lng: lng}, radius: radius_val }); } /** * 매물 위치 표시 (daum) */ function position_daum(lat, lng, level, maxzoom) { var container = document.getElementById('container'), // 지도와 로드뷰를 감싸고 있는 div 입니다 mapWrapper = document.getElementById('mapWrapper'), // 지도를 감싸고 있는 div 입니다 btnRoadview = document.getElementById('btnRoadview'), // 지도 위의 로드뷰 버튼, 클릭하면 지도는 감춰지고 로드뷰가 보입니다 btnMap = document.getElementById('btnMap'), // 로드뷰 위의 지도 버튼, 클릭하면 로드뷰는 감춰지고 지도가 보입니다 rvContainer = document.getElementById('roadview'), // 로드뷰를 표시할 div 입니다 mapContainer = document.getElementById('point_map'); // 지도를 표시할 div 입니다 // 지도와 로드뷰 위에 마커로 표시할 특정 장소의 좌표입니다 var placePosition = new daum.maps.LatLng(lat, lng); // 지도 옵션입니다 var mapOption = { center: placePosition, // 지도의 중심좌표 level: level // 지도의 확대 레벨 }; // 지도를 표시할 div와 지도 옵션으로 지도를 생성합니다 map_detail = new daum.maps.Map(mapContainer, mapOption); // 일반 지도와 스카이뷰로 지도 타입을 전환할 수 있는 지도타입 컨트롤을 생성합니다 var mapTypeControl = new daum.maps.MapTypeControl(); // 지도에 컨트롤을 추가해야 지도위에 표시됩니다 // daum.maps.ControlPosition은 컨트롤이 표시될 위치를 정의하는데 TOPRIGHT는 오른쪽 위를 의미합니다 map_detail.addControl(mapTypeControl, daum.maps.ControlPosition.TOPRIGHT); // 지도 확대 축소를 제어할 수 있는 줌 컨트롤을 생성합니다 var zoomControl = new daum.maps.ZoomControl(); map_detail.addControl(zoomControl, daum.maps.ControlPosition.RIGHT); if(flash_enable){ // 로드뷰 객체를 생성합니다 var roadviewClient = new daum.maps.RoadviewClient(); var roadview = new daum.maps.Roadview(rvContainer); // 로드뷰의 위치를 특정 장소를 포함하는 파노라마 ID로 설정합니다 // 로드뷰의 파노라마 ID는 Wizard를 사용하면 쉽게 얻을수 있습니다 roadviewClient.getNearestPanoId(placePosition, 50, function(panoId) { if(!panoId){ roadviewClient.getNearestPanoId(placePosition, 100, function(panoId) { roadview.setPanoId(panoId, placePosition); if(!panoId){ roadviewClient.getNearestPanoId(placePosition, 200, function(panoId) { roadview.setPanoId(panoId, placePosition); if(!panoId){ roadviewClient.getNearestPanoId(placePosition, 300, function(panoId) { roadview.setPanoId(panoId, placePosition); if(!panoId){ roadviewClient.getNearestPanoId(placePosition, 500, function(panoId) { roadview.setPanoId(panoId, placePosition); if(!panoId){ msg("success" ,"해당지역 근처에 로드뷰가 없습니다."); } }); } }); } }); } }); } roadview.setPanoId(panoId, placePosition); }); // 로드뷰 초기화가 완료되면 daum.maps.event.addListener(roadview, 'init', function() { // 로드뷰에 특정 장소를 표시할 마커를 생성하고 로드뷰 위에 표시합니다 /* var rvMarker = new daum.maps.Marker({ position: placePosition, map: roadview }); */ // 특정 장소가 잘보이도록 로드뷰의 적절한 시점(ViewPoint)을 설정합니다 // Wizard를 사용하면 적절한 로드뷰 시점(ViewPoint)값을 쉽게 확인할 수 있습니다 roadview.setViewpoint({ pan: 0, tilt: 0, zoom: 0 }); }); } if(radius_val>0){ // 원반경 기준으로 랜덤 좌표를 얻고 중심을 이동시킵니다. var coef = radius_val * 0.0000089; var prev_lat = parseFloat(lat) + coef; var prev_long = parseFloat(lng) + coef / Math.cos(lat * 0.018); var next_lat = parseFloat(lat) - coef; var next_long = parseFloat(lng) - coef / Math.cos(lat * 0.018); var random_lat = (Math.random() * (next_lat - prev_lat) + prev_lat).toFixed(14); var random_lng = (Math.random() * (next_long - prev_long) + prev_long).toFixed(14); map_detail.setCenter(new daum.maps.LatLng(random_lat, random_lng)); // 지도에 표시할 원을 생성합니다 var circle = new daum.maps.Circle({ center : new daum.maps.LatLng(random_lat, random_lng), // 원의 중심좌표 입니다 radius: radius_val, // 미터 단위의 원의 반지름입니다 strokeWeight: 5, // 선의 두께입니다 strokeColor: '#75B8FA', // 선의 색깔입니다 strokeOpacity: 1, // 선의 불투명도 입니다 1에서 0 사이의 값이며 0에 가까울수록 투명합니다 strokeStyle: 'dashed', // 선의 스타일 입니다 fillColor: '#CFE7FF', // 채우기 색깔입니다 fillOpacity: 0.7 // 채우기 불투명도 입니다 }); // 지도에 원을 표시합니다 circle.setMap(map_detail); } // 마우스휠로 자동 확대 축소 안되게 하기 map_detail.setZoomable(false); /*지도에 다음 카테고리 표시 시작*/ var placeOverlay = new daum.maps.CustomOverlay({zIndex:1}), contentNode = document.createElement('div'), // 커스텀 오버레이의 컨텐츠 엘리먼트 입니다 markers = [], // 마커를 담을 배열입니다 currCategory = ''; // 현재 선택된 카테고리를 가지고 있을 변수입니다 var ps = new daum.maps.services.Places(map_detail); daum.maps.event.addListener(map_detail, 'idle', searchPlaces); contentNode.className = 'placeinfo_wrap'; addEventHandle(contentNode, 'mousedown', daum.maps.event.preventMap); addEventHandle(contentNode, 'touchstart', daum.maps.event.preventMap); placeOverlay.setContent(contentNode); addCategoryClickEvent(); function addEventHandle(target, type, callback) { if (target.addEventListener) { target.addEventListener(type, callback); } else { target.attachEvent('on' + type, callback); } } // 카테고리 검색을 요청하는 함수입니다 function searchPlaces() { if (!currCategory) { return; } // 커스텀 오버레이를 숨깁니다 placeOverlay.setMap(null); // 지도에 표시되고 있는 마커를 제거합니다 removeMarker(); ps.categorySearch(currCategory, placesSearchCB, {useMapBounds:true}); } // 장소검색이 완료됐을 때 호출되는 콜백함수 입니다 function placesSearchCB( data, status, pagination ) { if (status === daum.maps.services.Status.OK) { // 정상적으로 검색이 완료됐으면 지도에 마커를 표출합니다 displayPlaces(data); } else if (status === daum.maps.services.Status.ZERO_RESULT) { // 검색결과가 없는경우 해야할 처리가 있다면 이곳에 작성해 주세요 } else if (status === daum.maps.services.Status.ERROR) { // 에러로 인해 검색결과가 나오지 않은 경우 해야할 처리가 있다면 이곳에 작성해 주세요 } } // 지도에 마커를 표출하는 함수입니다 function displayPlaces(places) { // 몇번째 카테고리가 선택되어 있는지 얻어옵니다 // 이 순서는 스프라이트 이미지에서의 위치를 계산하는데 사용됩니다 // var order = document.getElementById(currCategory).getAttribute('data-order'); var order = $('#category_icon > li.on').data('order'); for ( var i=0; i' + place.title + ''; if (place.newAddress) { content += ' ' + place.newAddress + '' + ' (지번 : ' + place.address + ')'; } else { content += ' ' + place.address + ''; } content += ' ' + place.phone + '' + '' + '
'; contentNode.innerHTML = content; placeOverlay.setPosition(new daum.maps.LatLng(place.latitude, place.longitude)); placeOverlay.setMap(map_detail); } // 각 카테고리에 클릭 이벤트를 등록합니다 function addCategoryClickEvent() { var category = document.getElementById('category_icon'); if(category){ children = category.children; for (var i=0; i'; str += ' avatar'; str += '
'; str += '
'; str += '
'+val["title"]+'
'; str += '
'+val["address_name"]+'
'; str += '
'; str += '
'; str += ' '; str += ''; }); $("#hope_list").html(str); } }); } function local(code,lat,lng){ $.getJSON("/product/local/"+lat+"/"+lng+"/"+code+"/"+Math.round(new Date().getTime()),function(data){ if(data){ $.each(data, function(key, val) { if(key=="documents"){ var str = ""; if(val.length<1){ str += ""; } else { $.each(val, function(key1, val1) { phone = ""; if(val1["phone"]!=""){ phone = " " + val1["phone"] + ""; } str += ""; }); } str +="
장소명거리전화번호
자료가 없습니다.
"+val1["place_name"]+" "+val1["distance"]+"m" + phone + "
"; $("#"+code).html(str); } }); } }); } /** * 슬라이드 초기화 * p값이 0이면 gallery 썸네일이 하단, 1이면 썸네일이 우측에 위치하도록 한다. */ function view_init(p,modal){ //상세 540 , 모달 465 if(modal){ var gallery_height = 465; } else { var gallery_height = 540; } var gallery_thumbnail = "horizontal"; if(p=="1") { gallery_height = 400; gallery_thumbnail = "vertical"; } if(p=="2") { ctr='bullets'; global_caption=false; } else { ctr='thumbnails'; global_caption=true; } $(".royalSlider").height(gallery_height); /** * imageScaleMode : fill, fit, fit-if-smaller(Default), none */ $('#gallery-1').css('display', 'block').royalSlider({ fullscreen: { enabled: true, nativeFS: false}, controlNavigation: ctr, transitionType : 'fade', autoPlay: { enabled: false, pauseOnHover: true, delay: 5000 }, autoScaleSlider: false, autoScaleSliderHeight: gallery_height, loop: true, imageAlignCenter:true, navigateByClick: false, numImagesToPreload:2, arrowsNav:true, arrowsNavAutoHide: true, arrowsNavHideOnTouch: true, keyboardNavEnabled: true, fadeinLoadedSlide: true, globalCaption: global_caption, globalCaptionInside: false, thumbs: { orientation: gallery_thumbnail, appendSpan: true, firstMargin: true, paddingBottom: 4 }, sliderTouch: true, imageScaleMode: function(slideObject) { if(fullscreen_flag>0){ return 'fit-if-smaller'; } else { if( slideObject.iH > slideObject.iW){ return 'fit-if-smaller'; } else { return 'fill'; } } } }); var si = $('#gallery-full').royalSlider({ fullscreen: { enabled: true, nativeFS: true }, addActiveClass: true, arrowsNav: false, controlNavigation: 'none', imageScaleMode: "fit-if-smaller", autoScaleSlider: true, autoScaleSliderWidth: 1200, autoScaleSliderHeight: 400, loop: true, fadeinLoadedSlide: false, globalCaption: false, keyboardNavEnabled: true, globalCaptionInside: false, visibleNearby: { enabled: true, centerArea: 0.5, center: true, breakpoint: 650, breakpointCenterArea: 0.64, navigateByCenterClick: true } }).data('royalSlider'); $('#concern_simple_form').ajaxForm({ beforeSubmit : function(){ if($('#concern_simple_form').find("#phone").val()==""){ msg("error" ,"전화번호를 입력해 주세요"); return false; } if($('#concern_simple_form').find("input[name='privacy_chk']:checked").val() != "1"){ msg("error" ,"개인정보 수집이용 동의 필수입력입니다."); return false; } }, success:function(data){ if(data == "1"){ msg("success" ,"등록성공입니다."); } else { msg("error" ,"오류가 발생했습니다"); } } }); $('#concern_form').ajaxForm({ beforeSubmit : function(){ if($('#concern_form').find("#phone").val()==""){ msg("error" ,"전화번호를 입력해 주세요"); return false; } if(!$('#concern_form').find("#concern_agree").prop("checked")){ msg("error" ,"개인정보처리방침에 동의해주시기 바랍니다."); return false; } }, success:function(data){ if(data == "1"){ msg("success" ,"등록성공입니다."); } else { msg("error" ,"오류가 발생했습니다"); } } }); $('#htab').easyResponsiveTabs({ type: 'default', //Types: default, vertical, accordion width: 'auto', //auto or any width like 600px fit: true, // 100% fit in a container tabidentify: 'hor_1', // The tab groups identifier activate: function(event) { // Callback function if tab is switched local($(this).find("a").attr("data-key"),$(this).find("a").attr("data-lat"),$(this).find("a").attr("data-lng")); } }); /* 문의나 예약을 선택하면 로그가 쌓이도록 한다. */ $(".concern_product").click(function(){ var id = $(this).attr("data-id"); var call_view = $(this).attr("data-call-view"); if( $(this).attr("data-type")=="detail_address"){ $(".detail_address").show(); } else { $(".detail_address").hide(); } if($('input[name="privacy_chk"]:radio:checked').val()=="1"){ $("#target_url").attr("src","/product/view_log/?id="+id); } if(call_view=="1"){ $.get("/product/add_call_view/"+id+"/"+$(this).attr("data-member-id")+"/"+Math.round(new Date().getTime()),function(data){ }); } }); $("#request_call").click(function(){ $(".member").fadeIn(0500) }); $(".memberClose").click(function(){ $(".member").fadeOut("normal"); }); /*** * gallery를 정의합니다. * 1. 동영상이 플레이되고 있을 경우에는 마우스오버로 페이지이동이 되지 않지만 플레이가 되고 있지 않을 경우에는 페이지 이동이 된다. * 2. 만약 360도 파노라마가 플레이되고 있을 경우에는 마우스오버로 이동되는 기능이 동작하지 않도록 한다. **/ var video_playing = false; slider = $('#gallery-1').data('royalSlider'); try{ slider.ev.on('rsVideoPlay', function() { video_playing = true; }); slider.ev.on('rsVideoStop', function() { video_playing = false; }); video_playing = true; if($("#panorama_frame").length == 0 && $(".360").length == 0){ $(".rsNavItem").mouseover(function() { if(!video_playing){ $('.royalSlider').royalSlider('goTo', $(this).index() ); } }); } slider.ev.on('rsAfterSlideChange', function() { var zoom_360 = 65; $(".360").each(function(){ init($(this).attr("id"),"/photo/gallery_image/"+$(this).attr("gallery-id")+"/"+$(this).attr("st-id"),zoom_360); }); $(".loading360").fadeOut(); }); $(".rsFullscreenIcn").click(function(){ slider_fullscreen(); }); slider.ev.on('rsSlideClick', function () { if($('.rsTmb:eq('+slider.currSlideId+')').data('link')){ window.open($('.rsTmb:eq('+slider.currSlideId+')').data('link'), "", "width=1120,height=800"); return flase; } if(!slider.isFullscreen && panorama_flag==0){ slider.enterFullscreen(); /** slider_fullscreen(); **/ } }); slider.ev.on('rsEnterFullscreen', function() { fullscreen_flag = 1; $(".rsFullscreenIcn").html("").css("background","none"); $(".rsArrowLeft > .rsArrowIcn").html("").css("background","none"); $(".rsArrowRight > .rsArrowIcn").html("").css("background","none"); $(".rsFullscreenBtn").css("right","20px"); $(".rsArrowRight").css("right","20px"); slider.st.autoScaleSliderWidth= 900; slider.updateSliderSize(true); }); slider.ev.on('rsExitFullscreen', function() { fullscreen_flag = 0; slider.st.autoScaleSliderWidth= 900; slider.st.autoScaleSliderHeight= 580; slider.st.imageScalePadding = 0; $(".rsFullscreenIcn").html("").css("background",""); $(".rsArrowLeft > .rsArrowIcn").html("").css("background",""); $(".rsArrowRight > .rsArrowIcn").html("").css("background",""); $(".rsFullscreenBtn").css("right","0px"); $(".rsArrowRight").css("right","0px"); slider.updateSliderSize(true); }); } catch (exception) { } $(".btn.py").click(function(){ var str = $(this).prev().text(); $(this).prev().text($(this).data("py")); $(this).data("py",str); }); } function slider_fullscreen(){ setTimeout(function(){ resize(); }, 100); if(!slider.isFullscreen || slider.isFullscreen==undefined){ } else{ } } function init_360(){ var zoom_360 = 65; if($(".360").length > 0){ $(".360").each(function(){ init($(this).attr("id"),"/photo/gallery_image/"+$(this).attr("gallery-id")+"/"+$(this).attr("st-id"),zoom_360); }); animate(); } } function slider_fullscreen_btn() { setTimeout(function(){ resize(); }, 100); if (slider && (!slider.isFullscreen || slider.isFullscreen == undefined)) { // Fullscreen 모드로 전환하는 로직 slider.enterFullscreen(); slider.isFullscreen = true; console.log('Entering fullscreen mode'); } else { // Fullscreen 모드를 종료하는 로직 slider.exitFullscreen(); slider.isFullscreen = false; console.log('Exiting fullscreen mode'); } } function enterFullscreen() { var elem = document.documentElement; if (elem.requestFullscreen) { elem.requestFullscreen(); } else if (elem.mozRequestFullScreen) { // Firefox elem.mozRequestFullScreen(); } else if (elem.webkitRequestFullscreen) { // Chrome, Safari and Opera elem.webkitRequestFullscreen(); } else if (elem.msRequestFullscreen) { // IE/Edge elem.msRequestFullscreen(); } } function exitFullscreen() { if (document.exitFullscreen) { document.exitFullscreen(); } else if (document.mozCancelFullScreen) { // Firefox document.mozCancelFullScreen(); } else if (document.webkitExitFullscreen) { // Chrome, Safari and Opera document.webkitExitFullscreen(); } else if (document.msExitFullscreen) { // IE/Edge document.msExitFullscreen(); } }