
//날씨
function getWeatherInfo(){
    $.ajax({
        type : 'post',
        url : '/common/getWeatherInfo.do',
        success : function(data){
            let imgUrl = null;
            if(data.weathercode == "DB01") imgUrl = "맑음";
            else if(data.weathercode == "DB02") imgUrl = "구름조금";
            else if(data.weathercode == "DB03") imgUrl = "구름많음";
            else if(data.weathercode == "DB04") imgUrl = "흐림";
            else if(data.weathercode == "DB05") imgUrl = "비";
            else if(data.weathercode == "DB06") imgUrl = "비/눈";
            else if(data.weathercode == "DB07") imgUrl = "눈";
            else if(data.weathercode == "DB08") imgUrl = "소나기";
            else if(data.weathercode == "DB00") imgUrl = "정보없음";
            else imgUrl = "정보없음";

            let presentTemp = data.prst_TMPR+"℃"
            if(data.weathercode != undefined) {
                let presentTempImg = '<img src="/common/images/weather/'+data.weathercode+'.png" alt="'+imgUrl+' style="height="40px;" ">'
                $("#todayImg").html(presentTempImg);
                $("#todayTemp").html('오늘의 날씨 ' + presentTemp);
            }

        }
    });
}

var mapContainer = document.getElementById('map'), // 지도를 표시할 div
    mapOption = {
        center: new kakao
            .maps
            .LatLng('37.01423130393533', '126.93995173968553'), // 평택지도의 중심좌표
        maxLevel: 9,
        minLevel: 4,
        level: 9, // 지도의 확대 레벨
        disableDoubleClickZoom: true
    };

// 지도를 표시할 div와  지도 옵션으로  지도를 생성합니다
_Map = new kakao
    .maps
    .Map(mapContainer, mapOption);

// 일반 지도와 스카이뷰로 지도 타입을 전환할 수 있는 지도타입 컨트롤을 생성합니다
var mapTypeControl = new kakao
    .maps
    .MapTypeControl();
// 지도에 컨트롤을 추가해야 지도위에 표시됩니다 kakao.maps.ControlPosition은 컨트롤이 표시될 위치를 정의하는데
// TOPRIGHT는 오른쪽 위를 의미합니다
_Map.addControl(mapTypeControl, kakao.maps.ControlPosition.RIGHT);

var zoomControl = new kakao
    .maps
    .ZoomControl();
_Map.addControl(zoomControl, kakao.maps.ControlPosition.RIGHT);




kakao
    .maps
    .event
    .addListener(_Map, 'center_changed', function() {

    // 지도의  레벨을 얻어옵니다
    //var level = map.getLevel();

    // 지도의 중심좌표를 얻어옵니다 
    // var latlng = _Map.getCenter();
    // console.log("latlng = "+latlng)
    // var message = '<p>지도 레벨은 ' + level + ' 이고</p>';
    // message += '<p>중심 좌표는 위도 ' + latlng.getLat() + ', 경도 ' + latlng.getLng() + '입니다</p>';

    // var resultDiv = document.getElementById('result');
    // resultDiv.innerHTML = message;

});




// 지도가 확대 또는 축소되면 마지막 파라미터로 넘어온 함수를 호출하도록 이벤트를 등록합니다
kakao
    .maps
    .event
    .addListener(_Map, 'zoom_changed', function () {
        // 지도의 현재 레벨을 얻어옵니다
        _Level = _Map.getLevel();
         //$(".levelTest").html("map level = "+_Level)
        if (!_TrafficFlag) {
            drawVertexArr();
        }

        if (_Level < 2) {
            parkingMarkerSetSize(50);
            cctvMarkerSetSize(48);
            vmsMarkerSetSize(48);
        } else if (_Level < 4) {
            parkingMarkerSetSize(34);
            cctvMarkerSetSize(32);
            vmsMarkerSetSize(32);
            taasMarkerSetSize(32);
        } else if (_Level < 6) {
            parkingMarkerSetSize(26);
            cctvMarkerSetSize(24);
            vmsMarkerSetSize(24);
            taasMarkerSetSize(24);
        } else {
            parkingMarkerSetSize(20);
            cctvMarkerSetSize(24);
            vmsMarkerSetSize(24);
            taasMarkerSetSize(24);
        }
    });

function parkingMarkerSetSize(size) {
    _ParkingInfoArr.forEach(function (el) {
        if(el.comm_type == 0){
            var imageSrc = '/images/map_icon_pin72.png' // 마커이미지의 주소입니다
        }else if(el.comm_type == 1){
            var imageSrc = '/images/map_icon_pin2.png' // 마커이미지의 주소입니다
        }
            imageSize = new daum
                .maps
                .Size(size, size), // 마커이미지의 크기입니다
            imageOption = {
                offset: new daum
                    .maps
                    .Point(12, 0)
            }; // 마커이미지의 옵션입니다. 마커의 좌표와 일치시킬 이미지 안에서의 좌표를 설정합니다.

        // 마커의 이미지정보를 가지고 있는 마커이미지를 생성합니다
        var markerImage = new daum
            .maps
            .MarkerImage(imageSrc, imageSize, imageOption)
        el
            .parkingMarker
            .setImage(markerImage);
    });
}
function cctvMarkerSetSize(size) {
    _CctvCtlrArr.forEach(function (el) {
    	let src = '/images/cctv/cctv-20.png';
    	if (el.click) {
    		src = '/images/cctv/cctv-21.png'
    	}
        var imageSrc = src, // 마커이미지의 주소입니다
            imageSize = new daum
                .maps
                .Size(size, size), // 마커이미지의 크기입니다
            imageOption = {
                offset: new daum
                    .maps
                    .Point(12, 0)
            }; // 마커이미지의 옵션입니다. 마커의 좌표와 일치시킬 이미지 안에서의 좌표를 설정합니다.

        // 마커의 이미지정보를 가지고 있는 마커이미지를 생성합니다
        var markerImage = new daum
            .maps
            .MarkerImage(imageSrc, imageSize, imageOption)
        el
            .cctvMarker
            .setImage(markerImage);
    });
}
function vmsMarkerSetSize(size) {
    _VmsCtlrArr.forEach(function (el) {
    	let src = '/images/vms/VMS-20.png';
    	if (el.click) {
    		src = '/images/vms/VMS-21.png'
    	}
        var imageSrc = src, // 마커이미지의 주소입니다
            imageSize = new daum
                .maps
                .Size(size, size), // 마커이미지의 크기입니다
            imageOption = {
                offset: new daum
                    .maps
                    .Point(0, 0)
            }; // 마커이미지의 옵션입니다. 마커의 좌표와 일치시킬 이미지 안에서의 좌표를 설정합니다.

        // 마커의 이미지정보를 가지고 있는 마커이미지를 생성합니다
        var markerImage = new daum
            .maps
            .MarkerImage(imageSrc, imageSize, imageOption)
        el
            .vmsMarker
            .setImage(markerImage);
    });
}
function taasMarkerSetSize(size) {
    _TaasInfoArr.forEach(function (el) {
        var imageSrc = '/images/map_icon_taas.png', // 마커이미지의 주소입니다
            imageSize = new daum
                .maps
                .Size(size, size), // 마커이미지의 크기입니다
            imageOption = {
                offset: new daum
                    .maps
                    .Point(0, 0)
            }; // 마커이미지의 옵션입니다. 마커의 좌표와 일치시킬 이미지 안에서의 좌표를 설정합니다.

        // 마커의 이미지정보를 가지고 있는 마커이미지를 생성합니다
        var markerImage = new daum
            .maps
            .MarkerImage(imageSrc, imageSize, imageOption)
        el
            .taasMarker
            .setImage(markerImage);
    });
}

// 마우스 드래그로 지도 이동이 완료되었을 때 마지막 파라미터로 넘어온 함수를 호출하도록 이벤트를 등록합니다
kakao
    .maps
    .event
    .addListener(_Map, 'dragend', function () {
    	
        if (!_TrafficFlag)
            drawVertexArr();
        }
    );

//커서 화살표로 변경
_Map.setCursor('default');

/*kakao.maps.event.addListener(_Map, 'click', function(mouseEvent) {
	    console.log(mouseEvent.latLng);
	});*/
kakao
    .maps
    .event
    .addListener(_Map, 'click', function (mouseEvent) {
    	 	
    	if(!_CustomOverlayFlag && _CustomOverlayClick != null){
    		_CustomOverlayClick.setMap(null);
    	}else{
    		_CustomOverlayFlag =false;
    		
    	}
    	
    	
    	//if(_CustomOverlayClick.getMap() == null){console.log("커스텀클릭갯맵 널이아님");}
       /* // 클릭한 위도, 경도 정보를 가져옵니다
        var latlng = mouseEvent.latLng;

        var message = '클릭한 위치의 위도는 ' + latlng.getLat() + ' 이고, ';
        message += '경도는 ' + latlng.getLng() + ' 입니다';
*/
    });
function init() {

	//소통정보 5분 갱신..
	setInterval(getVertexArr, 1000 * 60 * 5);
	getIncdOcrr();
	getVertexArr();
	getVmsCtlr();
	getCctvCtlr();
	getWeatherInfo();
}

/* mapMenu */

$('#trafficInfo').click(function() {
	if (_TrafficFlag) 
	{
		//getVertexArr();
        drawVertexArr();
		_TrafficFlag = false;
		$('#realtimeMapMenu').attr('title','선택됨');
	}
	else 
	{
		hideVertexArr(_Level);
		_TrafficFlag = true;
		$('#realtimeMapMenu').attr('title','도로 소통정보 보기');
	}
});

$('#cctvInfo').click(function() {
        $(".cctv").toggleClass("on");
	if (_CctvFlag)
	{
		showCctv();
		_CctvFlag = false;
		$('#cctvMapMenu').attr('title','선택됨');
	}
	else
	{
		hideCctv();
		_CctvFlag = true;
		$('#cctvMapMenu').attr('title','CCTV 보기');
	}
});


$('#inciInfo').click(function() {
    $(".outbreak").toggleClass("on");
	if (_InciFlag) 
	{
		showIncd();
		_InciFlag = false;
		$('#incdMapMenu').attr('title','선택됨');
	}
	else 
	{
		hideIncd();
		_InciFlag = true;
		$('#incdMapMenu').attr('title','돌발 보기');
	}
});

$('#roadInfo').click(function (){
    $(".road").toggleClass("on");
    let left;
    let title;
    let display;
    if(_RoadFlag){
        display  = 'block';
        title    = '선택됨';
    }else{
        display = 'none';
        title = '도로목록 보기';
    }
    _RoadFlag = !_RoadFlag;
    $('.left-list').css('display', display);
    $(this).attr('title', title);
    _Map.relayout();
})
$('#parkingInfo').click(function() {
	if (_ParkingFlag) 
	{
		
		showParking();
		_ParkingFlag = false;
		$('#parkingMapMenu').attr('title','선택됨');
	}
	else 
	{
		
		hideParking();
		_ParkingFlag = true;
		$('#parkingMapMenu').attr('title','주차 보기');
	}
});
$('#VMSInfo').click(function(){
    $(".vms").toggleClass("on");
	if(_VmsFlag){
		showVms();
		_VmsFlag = false;
		$('#vmsMapMenu').attr('title','선택됨');
	}else{
		hideVms();
		_VmsFlag = true;
		$('#vmsMapMenu').attr('title','VMS 보기');
	}
});
$('#TaasInfo').click(function() {
	if (_TaasFlag) 
	{
		showTaas();
		_TaasFlag = false;
		$('#taasMapMenu').attr('title','선택됨');
	}
	else 
	{
		hideTaas();
		_TaasFlag = true;
		$('#taasMapMenu').attr('title','교통안전 보기');
	}
});
/*
function onClickTrafficInfo(){
    if (_TrafficFlag) {
        drawVertexArr();
        _TrafficFlag = false;
        $('#realtimeMapMenu').attr('title','선택됨');
    } else {
        hideVertexArr(_Level);
        _TrafficFlag = true;
        $('#realtimeMapMenu').attr('title','도로소통정보 보기');
    }
}
function onClickCctvInfo(){
    if (_CctvFlag) {
        showCctv();
        //document.getElementById('map').focus();
        $('#cctvMapMenu').attr('title','선택됨');
        _CctvFlag = false;
    } else {
        hideCctv();
        _CctvFlag = true;
        $('#cctvMapMenu').attr('title','CCTV 보기');
    }
}

function onClickInciInfo(){
    if (_InciFlag) {
        showIncd();
        _InciFlag = false;
        $('#incdMapMenu').attr('title','선택됨');
    } else {
        hideIncd();
        _InciFlag = true;
        $('#incdMapMenu').attr('title','돌발 보기');
    }
}
function onClickParkingInfo(){
    if (_ParkingFlag) {

        showParking();
        _ParkingFlag = false;
        $('#parkingMapMenu').attr('title','선택됨');
    } else {

        hideParking();
        _ParkingFlag = true;
        $('#parkingMapMenu').attr('title','주차 보기');
    }
}
function onClickVmsInfo(){
    if (_VmsFlag) {
        showVms();
        _VmsFlag = false;
        $('#vmsMapMenu').attr('title','선택됨');
    } else {
        hideVms();
        _VmsFlag = true;
        $('#vmsMapMenu').attr('title','VMS 보기');
    }
}
function onClickTaasInfo(){
    if (_TaasFlag) {
        showTaas();
        _TaasFlag = false;
        $('#taasMapMenu').attr('title','선택됨');
    } else {
        hideTaas();
        _TaasFlag = true;
        $('#taasMapMenu').attr('title','교통안전 보기');
    }
}
*/
var _updnFlag = true;
$('#mapSizeBtn').click(function () {

    if (_updnFlag) {
        $('#mapSizeBtn').removeClass('dn');
        $('#mapSizeBtn').addClass('up');

        updateSizeMap(_updnFlag);
        _updnFlag = false;
    } else {
        $('#mapSizeBtn').removeClass('up');
        $('#mapSizeBtn').addClass('dn');
        updateSizeMap(_updnFlag);
        _updnFlag = true;
    }

});

function updateSizeMap(updnFlag) {

    if (updnFlag) {
        $('#contentList').hide();
        $('#map').css('height', '970');
        $('#mapSizeBtn').attr('title','지도 접기');
        $('#mapSizeBtn').text('접기');
    } else {
        $('#contentList').show();
        $('#map').css('height', '690');
        $('#mapSizeBtn').attr('title','지도 펼치기');
        $('#mapSizeBtn').text('펼치기');
    }
    _Map.relayout();
}
